/* Shared sizing prevents a wide table or long address stretching its container. */
[hidden]{display:none!important}
main,#app,.card,form,fieldset,label,.calendar-day,.calendar-item,.adult-contact{min-width:0}
.grid{grid-template-columns:repeat(3,minmax(0,1fr))}
.split{grid-template-columns:repeat(2,minmax(0,1fr))}
input,select,textarea{max-width:100%;min-width:0;font-size:16px}
fieldset{margin:0;max-width:100%}
legend{max-width:100%;white-space:normal;line-height:1.5}
h1,h2,h3,p,a,small,td,th,dd,.tag{overflow-wrap:anywhere}
.card>table{display:block;max-width:100%;overflow-x:auto;overscroll-behavior-x:contain}
th,td{min-width:85px}
.master-schedule{max-width:100%;overscroll-behavior-x:contain}
.master-schedule table{display:table}
.table-scroll{max-width:100%;min-width:0;overflow-x:auto;overscroll-behavior-x:contain}
.table-scroll table{display:table;min-width:650px}
.scroll-hint{display:none}
.role-options label,.choice-options label{min-height:44px}
.role-options input,.choice-options input{flex-shrink:0}
button,.export-button{min-height:44px;line-height:1.4;white-space:normal}
.actions{row-gap:12px}
.login{width:100%;max-width:490px}
.login form{gap:16px}
.login [data-password-target]{background:#edf1fa;color:#344f8c;border-color:#ccd5e8}
#forgot-password{display:block;margin-top:20px;background:#fff2f2;color:#a51f2b;border:1px solid #e8bcc0;min-height:44px}
#forgot-password:hover{background:#ffe7e9}
.login>form+button,.login>form+a{margin-top:20px}
#invitation-result:not(:empty){margin-top:20px}
#invitation-result input{margin-top:8px}
#round-edit-controls{display:grid;gap:12px;margin-top:18px}
#round-new{margin-top:16px}
#nav-toggle{display:none}
.calendar-toolbar{gap:12px}
.training-controls label,#schedule-controls label{max-width:100%;min-width:0}
.training-controls select{width:100%}
.contact-qr img{flex-shrink:0;max-width:100%;height:auto;aspect-ratio:1}
@media (max-width:1100px){main{padding:24px}.split,.grid{grid-template-columns:1fr}.calendar-board{grid-template-columns:1fr}}
@media (min-width:761px) and (max-width:900px){aside{position:fixed;width:200px;overflow-y:auto;padding:26px 18px}main{margin-left:200px;width:calc(100% - 200px)}aside footer{display:block}}
@media (max-width:760px){
 body{display:block}
 aside{position:static;inset:auto;width:100%;padding:16px 18px;display:grid;grid-template-columns:56px minmax(0,1fr) auto;gap:4px 12px;overflow:visible}
 aside .school-logo{width:56px;height:56px;margin:0;grid-column:1;grid-row:1 / 3;padding:2px}
 aside>h2{display:block;grid-column:2;grid-row:1;font-size:16px;margin:0;align-self:end}
 aside>small{display:block;grid-column:2;grid-row:2;letter-spacing:1px;font-size:8px;align-self:start}
 #nav-toggle:not([hidden]){display:block;grid-column:3;grid-row:1 / 3;background:#304776;border:1px solid #52678d;padding:9px 12px;align-self:center}
 aside nav{display:none;grid-column:1 / -1;margin:0}
 aside.menu-open nav{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px;margin-top:14px}
 aside nav button{padding:11px 9px;min-width:0;font-size:13px}
 aside footer{display:none}
 main{margin:0;width:100%;padding:18px;max-width:none}
 header{font-size:9px;gap:12px;align-items:center;letter-spacing:1px;padding-bottom:16px}
 h1{font-size:34px;line-height:1.15}
 h2{font-size:19px}.hero{padding:23px 0 12px}
 .card{padding:18px;margin:14px 0}.card h2:first-child{margin-top:4px}
 .grid,.split,.calendar-board{grid-template-columns:minmax(0,1fr);gap:14px}
 .calendar-day{padding:14px}.calendar-item{padding:14px}
 .calendar-toolbar{display:grid;grid-template-columns:1fr 1fr}
 .calendar-toolbar label{grid-column:1 / -1;max-width:none}
 .calendar-toolbar button{width:100%;padding:10px}
 #schedule-controls{display:grid;grid-template-columns:minmax(0,1fr);align-items:stretch}
 #schedule-controls label{width:100%}
 .training-controls{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:10px}
 .training-controls label{grid-column:1 / -1;grid-row:1}
 .training-controls button{width:100%;padding:9px 6px;font-size:13px}
 #training-viewer{padding:10px}
 .training-reading{padding:18px;min-height:0}.training-paragraphs{font-size:17px}
 .training-paragraphs p:first-child{font-size:25px}.slide-transcript{padding:14px}
 .contact-qr{display:flex;flex-direction:column;align-items:flex-start;gap:16px}
 .contact-qr img{width:160px}
 .resolution{font-size:23px}
 .timer{font-size:clamp(48px,17vw,86px);margin:24px 0}
 .actions{display:grid;grid-template-columns:minmax(0,1fr);width:100%}
 .actions>button,.actions>.export-button{text-align:center;width:100%}
 .role-options,.choice-options{gap:8px}
 .role-options label,.choice-options label{padding:10px;font-size:13px}
 dl{grid-template-columns:minmax(0,1fr);gap:4px}dd{margin-bottom:10px}
 .scroll-hint{display:block;margin-top:10px;font-size:11px}
}
@media print{aside,#nav-toggle,#forgot-password{display:none!important}main{margin:0;width:100%;padding:0}.card>table{display:table;overflow:visible}.table-scroll{overflow:visible}.table-scroll table{min-width:0}.scroll-hint{display:none}th,td{min-width:0}.actions{display:none}}

#clear-invitation,#cancel-contact-edit{margin-top:16px}#contact-editor{max-width:100%}

.feedback-text{white-space:pre-wrap;overflow-wrap:anywhere}fieldset{min-width:0} @media print{aside,.hero,#message,button,form,.scroll-hint{display:none!important}.card{break-inside:avoid;border-color:#bbb}main{margin:0!important;padding:0!important}body{background:white!important}}
