/* Shared layout fixes verified against the portal's phone/tablet audit. */
.page,.card,.page-head>*,.card-head>*,.grid-2>*,.grid-side>*,.row-2>*,.row-3>*{min-width:0}
.page-head h1,.card h2,.card h3{overflow-wrap:anywhere}
.class-grid{grid-template-columns:repeat(auto-fill,minmax(min(100%,300px),1fr))}
.table-wrap{max-width:100%;overflow-x:auto;overscroll-behavior-x:contain;-webkit-overflow-scrolling:touch}
.table-wrap:focus-visible{outline:2px solid #956b10;outline-offset:2px}
.card:not(.flush)>.table-wrap{margin-inline:-20px;max-width:calc(100% + 40px)}
.table-wrap .table.rows{margin:0;width:100%}
.table-wrap details.pop[open] form{position:static;width:min(320px,calc(100vw - 64px));margin-top:8px}
.inline>label{max-width:100%;min-width:0}
.inline>label>input,.inline>label>select{width:100%;min-width:0}
.inline>input,.inline>select{max-width:100%;min-width:0}
.calendar-dialog{max-height:calc(100dvh - 32px);overflow-y:auto;overscroll-behavior:contain}
.menu-close{display:none}
@media(max-width:1100px){.week{display:none}.agenda{display:block}}
@media(max-width:860px){
 body.menu-open{overflow:hidden}
 .side{height:100dvh;padding-bottom:env(safe-area-inset-bottom,0px)}
 .menu-close{display:grid;place-items:center;position:absolute;right:8px;top:8px;z-index:1;width:44px;height:44px;border:0;border-radius:8px;background:transparent;color:#fff;font-size:28px;cursor:pointer}
 .menu-close:focus-visible{outline:2px solid #e5b745;outline-offset:-3px}
 input:not([type=checkbox]):not([type=radio]),select,textarea{font-size:16px;min-height:44px}
 .btn,.btn.sm{min-height:44px}
 button.link{min-height:40px;padding:8px 6px}
 label.check{min-height:40px}
 input[type=checkbox],input[type=radio]{flex-shrink:0}
 .user-create-form>label,.user-row>label,.user-row>.user-field{grid-template-rows:20px 44px;height:69px;grid-auto-rows:auto}
 .user-create-form>label>input,.user-create-form>label>select,.user-row input:not([type=checkbox]),.user-row select,.user-row .btn{height:44px;min-height:44px}
 .user-value{min-height:44px}
 #memberForm .row-2>label:not(:has(>textarea)),#memberForm .row-3>label:not(:has(>textarea)){grid-template-rows:20px 44px;height:69px}
 #memberForm .row-2>label>input,#memberForm .row-2>label>select,#memberForm .row-3>label>input,#memberForm .row-3>label>select{height:44px;min-height:44px}
 #memberForm .address-search-field{height:auto!important;grid-template-rows:20px 44px auto!important}
 .address-search-field [role=listbox]{top:72px;max-height:min(250px,45dvh)}
 .address-search-field [role=option]{min-height:44px}
 .sigpad-head{align-items:center}
 .sigpad canvas{touch-action:none}
 .calendar-agenda-tools{flex-wrap:wrap}
 .copy-row{flex-wrap:wrap}
 .copy-row input{flex:1 1 180px;min-width:0}
 .login-wrap{padding:20px 16px;min-height:100dvh}
 .login-card{padding:24px;max-width:100%}
}
@media(max-width:860px) and (max-height:500px){
 .side .brand{padding:10px 16px 8px}.side .brand img{width:64px;height:64px}.side .brand-caption{margin-top:5px;font-size:9px}.side-foot{padding:8px 12px}
 .login-card img{width:96px;height:96px}
}
@media(max-width:560px){
 .card-head{align-items:flex-start;gap:12px;flex-wrap:wrap}
 .card-head>.inline{width:100%}
 .card-head .inline input,.card-head .inline select{flex:1 1 120px}
 .filters>.btn,.filters>button{flex:0 1 auto}
 .actions{flex-wrap:wrap}
 .btn{max-width:100%;white-space:normal;text-align:center}
 .mini-stats{flex-wrap:wrap;gap:12px 20px}
 .tabs a{min-height:44px;display:inline-flex;align-items:center}
}

.side-foot .me{min-width:0;flex:1}.side-foot .me>span:last-child{min-width:0}.side-foot .me strong{max-width:100%}.side-foot .link{flex:none}

@media(max-width:860px){.topbar .menu-btn{width:44px;height:44px;flex:none}.topbar-title{min-width:0;overflow-wrap:anywhere}.table td>a:not(.btn){display:inline-flex;align-items:center;min-height:32px;max-width:100%;overflow-wrap:anywhere}.inbox-folder,.inbox-filters a{min-height:44px}.inbox-account details[open]{flex-basis:100%;width:100%}.inbox-page .inbox-account details[open] form{position:static;width:100%;margin-top:12px}.side-foot .link{padding:8px 2px}}

@media (min-width:861px) and (max-width:1180px),(pointer:coarse){
 input:not([type=checkbox]):not([type=radio]),select,textarea{font-size:16px;min-height:44px}.btn,.btn.sm{min-height:44px}button.link{min-height:40px;padding:8px 6px}label.check{min-height:40px}
 .user-create-form>label,.user-row>label,.user-row>.user-field{grid-template-rows:20px 44px;height:69px;grid-auto-rows:auto}.user-create-form>label>input,.user-create-form>label>select,.user-row input:not([type=checkbox]),.user-row select,.user-row .btn{height:44px;min-height:44px}.user-value{min-height:44px}
 #memberForm .member-field:not(:has(>textarea)){grid-template-rows:20px 44px;height:69px}#memberForm .member-field>input,#memberForm .member-field>select{height:44px;min-height:44px}#memberForm .address-search-field{height:auto!important;grid-template-rows:20px 44px auto!important}.address-search-field [role=listbox]{top:72px}.inbox-folder,.inbox-filters a{min-height:44px}
}
@media (pointer:coarse) and (max-width:1366px){.week{display:none}.agenda{display:block}}
