/* IFL 2026-10-23: readable layouts without changing printing or accounting. */
.app-main{min-width:0;width:100%;font-size:1rem;line-height:1.65}
.app-main :is(.card,.cards,.refresh-columns,.member-tools,.device-guide,form,fieldset){min-width:0;max-width:100%}
.app-main .card{padding:clamp(18px,2.2vw,28px)}
.app-main :is(p,li,dd,small,label,.notice){overflow-wrap:anywhere}
.app-main :is(p,li){line-height:1.65}.app-main small{font-size:.875rem;line-height:1.6}
.app-main :is(h1,h2,h3){overflow-wrap:anywhere;line-height:1.35}
.app-main .cards{grid-template-columns:repeat(auto-fit,minmax(min(100%,240px),1fr));align-items:stretch}
.app-main .refresh-kpis .stat{font-size:clamp(1.4rem,2.4vw,2rem);line-height:1.3;margin:12px 0;overflow-wrap:anywhere}
.app-main .cards .card{height:auto}.app-main .member-badge{white-space:normal;line-height:1.5;max-width:100%;padding:7px 12px}
.app-main :is(button,.btn){max-width:100%;min-height:44px!important;white-space:normal;line-height:1.45;vertical-align:middle}
.app-main :is(input:not([type=checkbox]):not([type=radio]):not([type=hidden]),select,textarea){min-width:0;max-width:100%;font-size:1rem;line-height:1.5}
.app-main label+button,.app-main form>button{margin-block-start:12px}
.app-main :is(input,select,textarea)+button{margin-inline-start:10px;margin-block-start:12px}
.app-main :is(.form-actions,.member-actions,.job-actions,.device-actions){gap:12px;align-items:center;flex-wrap:wrap}
.app-main :is(.form-actions,.member-actions,.job-actions,.device-actions)>button{margin:0}
.app-main .setup-copy{gap:14px;align-items:flex-start;margin-block:12px 20px}
.app-main .setup-copy :is(input,textarea,button){margin:0!important}
.app-main .member-device form{margin-block:16px}.app-main .member-device details>form+form{margin-top:22px}
.app-main .device-picker{gap:16px}.app-main .device-picker>button{margin:0}
.app-main .device-connection label{margin-bottom:10px}
.app-main .job{align-items:flex-start;gap:12px;padding:16px 12px}
.app-main .job>span{min-width:0;overflow-wrap:anywhere}.app-main .job input[type=checkbox]{flex:none;margin-top:4px}
.app-main input[type=checkbox],.app-main input[type=radio]{accent-color:#207649;min-width:20px;min-height:20px;flex-shrink:0}
.app-main :is(.check-row,.member-check){gap:12px;line-height:1.6;min-height:44px;white-space:normal}
.ui-table-scroll,.app-main .table-scroll{max-width:100%;min-width:0;overflow-x:auto;-webkit-overflow-scrolling:touch;overscroll-behavior-x:contain}
.ui-table-scroll{margin-block:14px;border:1px solid #d9e5dd;border-radius:10px}
.ui-table-scroll:focus-visible{outline:3px solid #70bd8b;outline-offset:3px}
.ui-table-scroll table{min-width:100%}.ui-table-scroll table.ui-wide-table,.app-main .table-scroll table:has(th:nth-child(5)){min-width:720px}.app-main th{min-width:6rem}.history-table th:nth-child(2),.history-table td:nth-child(2){min-width:13rem}.app-main :is(td,th){font-size:.9375rem;line-height:1.6;vertical-align:top;padding:12px 14px}
.app-main :is(td,th){overflow-wrap:anywhere}.app-main td form{max-width:100%;margin-block:4px}
.app-main td :is(button,.btn){white-space:normal}.app-main td input{min-width:5rem}
.ui-cell-label{display:none}.ui-cell-value{min-width:0;overflow-wrap:anywhere}
.app-main .upload-file-row{display:grid;grid-template-columns:minmax(0,1fr);gap:12px;padding:16px;min-width:0;max-width:100%}
.upload-file-info{min-width:0}.upload-file-title{display:block;font-size:1rem;line-height:1.6;overflow-wrap:anywhere}
.upload-file-meta{display:block;color:#4e6256;font-size:.875rem;margin-top:5px}
.app-main .upload-file-actions{display:flex;gap:8px;flex-wrap:nowrap;justify-content:flex-end;min-width:0}
.app-main .upload-file-actions .btn{width:auto;min-width:44px;padding:9px 13px;margin:0;flex:0 0 auto;white-space:nowrap}
.app-main .upload-file-actions .upload-move{width:44px;padding:8px;font-size:1.15rem}
.app-main .upload-content{min-width:0;padding:22px 16px}.app-main .upload-plus{display:block;position:relative;flex:0 0 68px;width:68px;height:68px;margin:0 auto 14px}
.quota-overview .quota-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;margin-block:18px}
.quota-overview .quota-meter{padding:18px;background:#f4f9f6;border:1px solid #d3e5d9;border-radius:14px;min-width:0}
.quota-meter h3{margin:0 0 12px;font-size:1rem}.quota-available{display:flex;gap:10px;align-items:baseline;flex-wrap:wrap;margin-bottom:12px}
.quota-available strong{font-size:2rem;line-height:1.2;color:#1c653d;font-variant-numeric:tabular-nums}
.quota-meter progress{display:block;width:100%;height:18px;appearance:none;border:0;border-radius:20px;background:#dbe6df;overflow:hidden;accent-color:#278653}
.quota-meter progress::-webkit-progress-bar{background:#dbe6df;border-radius:20px}.quota-meter progress::-webkit-progress-value{background:#278653;border-radius:20px}.quota-meter progress::-moz-progress-bar{background:#278653;border-radius:20px}
.quota-meter.is-low progress::-webkit-progress-value{background:#a45d0b}.quota-meter.is-low progress::-moz-progress-bar{background:#a45d0b}
.quota-meter.is-empty .quota-available strong{color:#a02f3d}.quota-meter p{margin:10px 0 0}
.app-main .device-visibility{display:flex;gap:12px;flex-wrap:wrap;align-items:center;margin:20px 0}
.app-main .device-visibility label{display:flex!important;align-items:center;gap:12px;flex:1 1 280px;min-width:0;padding:13px 16px;margin:0;border:1px solid #ccdcd2;border-radius:12px;background:#f5f9f6;cursor:pointer;font-size:1rem;font-weight:600}
.app-main .device-visibility label:has(:checked){background:#e7f4eb;border-color:#6ea981}
.app-main .device-visibility input{width:22px;height:22px;margin:0!important;flex:0 0 22px}
.app-main .device-visibility button{margin:0}.device-visible-count{font-size:.9375rem;color:#4b6255;margin-bottom:16px}
@media(max-width:1100px){
 .mobile-menu{display:inline-flex;align-items:center;justify-content:center;width:44px;min-height:44px;background:none;color:#244332}
 .app-nav{display:none}.app-nav.open{display:block;position:absolute;z-index:8;top:68px;bottom:0;width:min(300px,88vw);overflow-y:auto;box-shadow:8px 0 25px #173e3426}
 .app-main{padding:22px;max-width:100%}
}
@media(max-width:1024px){
 .ui-table-scroll:has(.history-table){border:0;overflow:visible}
 .history-table{display:block!important;min-width:0!important;width:100%;background:transparent}
 .history-table thead,.history-table tr:has(>th){position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}
 .history-table tbody{display:grid;gap:16px}
 .history-table tbody>tr:not(:has(th)){display:block;background:#fff;border:1px solid #d3e1d8;border-radius:12px;padding:10px 16px}
 .history-table td{min-width:0!important;display:grid;grid-template-columns:minmax(85px,25%) minmax(0,1fr);gap:14px;padding:10px 0;border-bottom:1px solid #e4ece6;font-size:1rem}
 .history-table td:last-child{border-bottom:0}.history-table .ui-cell-label{display:block;color:#4e6658;font-weight:600}
 .history-table .ui-cell-value{display:block}.history-table td button{margin:0;text-align:left}
}
@media(max-width:600px){
 .app-header{padding-inline:12px;gap:8px}.header-user{display:none}.app-header .header-spacer{min-width:0}
 .app-header .headtitle{display:none}.app-header .header-logout{padding:8px;font-size:.8125rem}
 .app-main{padding:16px}.app-main .card{padding:18px}.app-main .compact-fields{grid-template-columns:minmax(0,1fr)!important}
 .app-main .setup-copy{flex-direction:column}.app-main .setup-copy>*{width:100%}
 .app-main .quota-grid{grid-template-columns:minmax(0,1fr)}.app-main .upload-file-actions{justify-content:flex-start}
 .app-main .history-table td{grid-template-columns:85px minmax(0,1fr);gap:12px}
 .app-main :is(input,select,textarea)+button{margin-inline-start:0}
 .app-main .device-visibility label{flex-basis:100%}.app-main .device-visibility button{width:100%}
}

.app-main [hidden]{display:none!important}
.app-main label:has(>input:not([type=checkbox]):not([type=radio]):not([type=hidden])),.app-main label:has(>select,>textarea){display:flex;flex-direction:column;align-items:stretch;gap:7px}

.app-header .header-logout,.app-header .brand{min-height:44px;display:inline-flex;align-items:center}.app-nav a{min-height:44px}.app-main .card summary{min-height:44px;padding-block:10px}

.app-main label{font-size:1rem!important}.app-main :is(button,.btn){font-size:.9375rem!important}.app-main .upload-file-actions .upload-move{font-size:1.15rem!important}

@media(max-width:1100px){.app-nav.open{top:var(--ui-header-height,68px)}}
@media(max-width:600px){.app-header{height:auto;min-height:68px;flex-wrap:wrap;padding-block:10px}.app-header .header-logout{max-width:100%;white-space:normal}}

.app-main :is(input:not([type=checkbox]):not([type=radio]):not([type=hidden]),select,textarea){min-height:44px!important}
