.family-scrim{grid-template-columns:minmax(0,1fr);padding:16px}
.family-dialog{width:min(1120px,100%);max-width:100%;min-width:0;padding:24px;max-height:92vh;overflow:auto}
.family-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px}
.family-head .family-step{font-size:13px;color:var(--pri-t);margin-top:8px}
.family-head h2{margin:6px 0;font-size:24px}.family-head p{margin:0;color:var(--muted)}
.family-help{background:var(--pri-s);color:var(--pri-t);padding:14px 16px;border-radius:var(--r-sm);line-height:1.7;font-size:13px}
.family-layout{display:grid;grid-template-columns:var(--split-left,220px) minmax(0,1fr);gap:24px;align-items:start}
.family-students{position:relative;min-width:0;display:flex;flex-direction:column;gap:10px}
.family-students h3{font-size:16px;margin:0 0 4px}
.family-student-list{display:flex;flex-direction:column;gap:10px;max-height:320px;overflow:auto}
.family-select{display:flex;align-items:center;justify-content:center;width:44px;min-height:44px;flex:none;cursor:pointer}
.family-select input{accent-color:var(--pri)}
.family-student{display:flex;gap:8px;align-items:center}.family-student input,.family-ack input{width:20px;height:20px;flex:none}
.family-student button{font:inherit;border:1px solid var(--line2);border-radius:var(--r-sm);background:var(--panel);padding:10px 12px;min-height:56px;flex:1;min-width:0;text-align:left;cursor:pointer;color:var(--ink)}
.family-student button.on{background:var(--pri-s);border-color:var(--pri)}
.family-student small{display:block;margin-top:4px;color:var(--muted);font-size:12px}
.family-main{min-width:0}.family-paper{padding:24px;background:var(--panel);border:1px solid var(--line2);border-radius:var(--r-md);text-align:left;color:var(--ink)}
.family-paper header small{color:var(--pri-t);font-size:12px}.family-paper h2{font-size:20px;margin:8px 0;overflow-wrap:anywhere}
.family-paper h3{font-size:16px;margin:24px 0 8px}.family-paper p{font-size:14px;line-height:1.8;white-space:pre-wrap;overflow-wrap:anywhere;margin:4px 0}
.family-paper header p,.family-paper footer{font-size:12px;color:var(--muted)}.family-paper footer{border-top:1px solid var(--line);margin-top:24px;padding-top:12px;line-height:1.7}
.family-editor{margin-top:24px}.family-editor h3{font-size:18px}.family-fields{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.family-fields textarea{min-height:100px;width:100%;resize:vertical}.family-ack{display:flex;gap:10px;align-items:flex-start;font-size:14px;line-height:1.7;margin:20px 0}
.family-editor .acts{display:flex;flex-wrap:wrap;gap:10px;margin:12px 0}.family-error{padding:12px 16px;border-radius:var(--r-sm);background:var(--bad-s);color:var(--bad);margin-bottom:16px;line-height:1.7;overflow-wrap:anywhere}
.family-dialog .btn{min-height:44px}.family-dialog [data-output]{margin-top:16px}.family-dialog [data-output] textarea{width:100%;white-space:pre-wrap}
@media(max-width:700px){
  .family-scrim{padding:8px}.family-dialog{width:100%;padding:16px}.family-layout{grid-template-columns:minmax(0,1fr);gap:16px}.family-fields{grid-template-columns:minmax(0,1fr)}.family-paper{padding:16px}.family-head h2{font-size:20px}
  .family-layout>.split-h{display:none}.family-student-list{max-height:160px}
  .shell[data-route="brief"] .head>.right{width:100%;max-width:100%;min-width:0;justify-content:flex-start}
  .shell[data-route="brief"] .mp{grid-template-columns:minmax(0,1fr)}
  .shell[data-route="brief"] #mp-left{max-height:180px;overflow:auto}
  .shell[data-route="brief"] .clshead .grow{min-width:0}
  .shell[data-route="brief"] .stats4{grid-template-columns:repeat(2,minmax(0,1fr))}
  .shell[data-route="brief"] .brcards{grid-template-columns:minmax(0,1fr)}
  .shell[data-route="brief"] .brcard footer{flex-wrap:wrap}
}
@media print{
  @page parent-material{size:A4;margin:16mm}
  #print-sheet.parent-print{display:block}
  #print-sheet.parent-print .family-paper{page:parent-material;border:0;border-radius:0;padding:0;background:white;color:black;break-before:page;break-inside:auto}
  #print-sheet.parent-print .family-paper:first-child{break-before:auto}
  #print-sheet.parent-print h2{font-size:18pt;margin:4mm 0}
  #print-sheet.parent-print h3{font-size:12pt;margin:6mm 0 2mm;break-after:avoid}
  #print-sheet.parent-print p{font-size:11pt;line-height:1.8;white-space:pre-wrap;overflow-wrap:anywhere;orphans:3;widows:3}
  #print-sheet.parent-print footer,#print-sheet.parent-print header p,#print-sheet.parent-print header small{color:black;font-size:9pt}
}
