/* Common compact sizing: all screens keep readable text and touch targets. */
:root{--radius:12px;--ui-space:12px}
body{line-height:1.55}h1{letter-spacing:0}h2{font-size:19px;line-height:1.45}h3{font-size:17px;line-height:1.45}
.main{padding-top:24px}.page-heading{margin-bottom:16px}.card{padding:18px;margin-bottom:12px}
.stack{gap:12px}.field{gap:5px}.form-grid{gap:12px}.space-top{margin-top:14px}
.card p+p{margin-top:6px}.copy-notes{gap:4px}.detail-description{margin:12px 0}.detail-description.compact{margin:0}
.btn{min-height:44px;padding:8px 12px;line-height:1.45}.actions{gap:8px}
input,select,textarea{padding:8px 10px;min-height:44px}textarea{min-height:80px}
fieldset{padding:12px;border-radius:9px}.form-footer{padding-top:12px}.upload-box{padding:16px}
.help-note,.callout{padding:10px 12px;margin-top:10px;margin-bottom:10px;border-radius:8px}
.test-strip{margin-bottom:14px}.hero{padding:20px;margin-bottom:14px;gap:12px}.hero h2{font-size:23px;margin:8px 0}.hero .btn{margin-top:14px}.hero .hero-number{font-size:52px}
.stats{gap:10px;margin-bottom:18px}.stat{padding:12px 14px}.stat strong{font-size:24px}
.section-head{margin-bottom:10px}.event-card{gap:12px}.card-head{margin-bottom:8px}.event-info{margin-bottom:8px;gap:8px}
.counts{gap:6px 12px;margin-top:10px;padding-top:8px;align-items:baseline}.counts b{font-size:16px}
.metric-list{display:flex;flex-wrap:wrap;gap:6px 14px;margin:10px 0}
.metric-list>div{display:flex;align-items:baseline;flex-wrap:wrap;gap:4px 8px;padding:0;border:0;background:none;min-width:0;max-width:100%}
.metric-list dt{font-size:14px}.metric-list dd{font-size:16px;margin:0}.metric-list .quantity{font-weight:600}
.summary-grid{display:grid;grid-template-columns:minmax(0,1fr);gap:0;margin-top:8px;border:1px solid var(--line);border-radius:8px;background:var(--white)}
.summary-row{padding:0;min-width:0;border-bottom:1px solid var(--line)}.summary-row:last-child{border-bottom:0}
.summary-row>summary,.summary-row.is-empty{display:flex;align-items:center;flex-wrap:wrap;gap:6px 10px;padding:8px 10px;min-height:44px}
.summary-row>summary{cursor:pointer;list-style:none}.summary-row>summary::-webkit-details-marker{display:none}
.summary-row>summary:before{content:'›';font-size:20px;color:var(--muted);line-height:1}.summary-row[open]>summary:before{transform:rotate(90deg)}
.summary-row strong{flex:1 1 10em;font-size:14px;font-weight:600;line-height:1.5}
.summary-row .quantity{font-size:16px}.summary-zero{display:flex;align-items:baseline;flex-wrap:wrap;gap:4px}
.summary-row>.member-list{padding:0 12px 8px;margin:0}.member-list{gap:2px;margin-top:4px}.member-list li{padding:2px 0}
.summary-row>summary:focus-visible{outline:3px solid var(--accent);outline-offset:2px}
.member-picker-control{margin-top:6px}.member-picker-heading{display:flex;align-items:center;flex-wrap:wrap;gap:8px 16px;border-bottom:1px solid var(--line);margin-bottom:4px}
.member-picker-heading .check{font-weight:600}.member-picker{gap:0}.member-picker .check{min-height:44px;align-items:center}
.member-picker .member-name{min-width:0}.group-picker{border-top:1px solid var(--line);padding-top:6px;margin-top:8px}
summary{min-height:44px;padding-top:8px;padding-bottom:8px;cursor:pointer}summary .read-unit{vertical-align:baseline}
.picker{margin-top:8px;padding-top:8px}.picker h3{font-size:16px}.picker .small{margin-top:4px}
.year-custom{display:grid;gap:5px}.year-custom label{font-size:14px}.year-custom input{max-width:14em}
.class-filter{gap:4px;margin:10px 0 6px}.internal-summary{padding-top:12px}.classified-people{gap:6px;margin-top:10px}
.classified-people>div{display:grid;grid-template-columns:minmax(4em,max-content) minmax(0,1fr);gap:8px;align-items:start}
.classified-people .member-list{margin:0}.classified-people p{margin:0}
.member-class-row,.saved-attendance{padding:8px 0;gap:8px}.member-class-list{margin-top:10px}
.response-table td{padding:8px}.response-note>.detail-description{display:block;font-size:14px}.response-note p{font-size:12px;line-height:1.5}
.attendance-pending{margin-top:12px}.attendance-row{padding:10px 0;gap:6px}.attendance-results{padding-top:10px}.attendance-results>h3{margin-bottom:6px}
.survey-day{padding:8px 0;gap:8px}.choice-list{gap:4px}.plan-day{gap:8px}.plan-day>label{gap:4px}
.study-candidate{padding:12px;gap:8px}.stage-list{gap:2px}.stage-list li{padding:4px 8px;font-size:14px}
.day-summary,.group-person-list>article,.group-actuals>li{padding:8px 0}.day-summary h4,.group-person-list h4{margin-bottom:6px}
.group-person-list{gap:4px}.group-actuals>li:has(.detail-description:empty) .detail-description{margin:0}
.catalog-section{padding-top:12px;margin-top:12px}.catalog-item{padding:10px 0;gap:6px}.catalog-item .actions{gap:6px}
.detail-aside .stack{gap:10px}.timeline li{padding:6px 0}.table td,.table th{padding:9px}
dialog{padding:18px;scroll-padding:16px}dialog h2{margin-bottom:10px}dialog .actions{margin-top:12px}
.fixed-copy,.copy-notes p,.help-note,.callout,.button-copy,h1,h2,h3,h4,legend{text-wrap:pretty;line-break:strict;word-break:normal}
@media(max-width:700px){
 body{font-size:16px}.small,small,.help-note,.card .small,.fixed-copy.small{font-size:14px}
 .main{padding:18px 12px 100px}.card{padding:12px}.page-heading{gap:8px;margin-bottom:12px}
 .page-heading h1{font-size:22px}.page-heading>div>p{font-size:14px}.page-heading>.btn{padding:8px 12px}
 .topbar{padding-left:12px;padding-right:12px;gap:8px}.user-menu{gap:8px}.top-title{letter-spacing:0}
 .hero h2{font-size:21px}.hero{padding:16px}.hero .hero-number{font-size:44px}
 .answer-buttons label{min-height:44px;padding:8px 5px;line-height:1.5}
 .response-table tr{padding:8px 0;gap:4px 8px;align-items:center}.response-table td{padding:0}
 .response-table .empty-note{display:none}.response-table td:nth-child(3)>p{margin-top:0}
 .survey-day{grid-template-columns:minmax(0,1fr) minmax(7em,auto);gap:8px;font-size:14px}.survey-day select{font-size:16px}
 .study-candidate{padding:10px}.plan-day{padding:10px}.stage-list li{font-size:14px}
 .report-table tbody,.member-table tbody{gap:8px}.report-table tr,.member-table tr{padding:10px;gap:6px}
 .report-table td,.member-table td{padding:0}.report-table td:before,.member-table td:before{font-size:13px}
 .member-class-row,.saved-attendance{gap:8px}.summary-row strong{flex-basis:10em}
}
/* Narrow content and enlarged fonts reflow; controls are never clipped or shrunk. */
@supports(container-type:inline-size){
 .choice-list{container-type:inline-size}
 @container (max-width:18em){.survey-day{grid-template-columns:minmax(0,1fr)}.survey-day select{max-width:100%}}
}
@media(max-width:360px){.main{padding-left:10px;padding-right:10px}.summary-row>summary,.summary-row.is-empty{padding:8px}.top-title{font-size:13px}}

#group-plans-form{container-type:inline-size}.plan-fields{display:grid;grid-template-columns:minmax(0,1fr);gap:8px}.plan-fields>label{display:grid;gap:4px;min-width:0;font-size:14px}
@container (min-width:20em){.plan-fields{grid-template-columns:minmax(0,1fr) minmax(0,1.2fr)}}
