.family-shell{max-width:1220px;margin:0 auto;padding:40px 34px 65px;color:var(--ink)}.family-heading{display:flex;gap:20px;justify-content:space-between;align-items:center;margin-bottom:20px}.family-heading h2{font:750 29px Manrope,Arial,sans-serif;letter-spacing:-.9px;margin:8px 0}.family-heading p{font:13px/1.6 'DM Sans',Arial,sans-serif;color:var(--muted);margin:0}.family-heading #familyTopActions{display:flex;gap:9px;flex-wrap:wrap}.family-notice{padding:12px 15px;border-radius:9px;background:#edf4ec;font-size:12px;line-height:1.6}.family-notice.error{background:#fff0ed;color:#8b3b31}.family-mode{display:flex;gap:7px;margin-bottom:14px}.family-mode button,.family-tabs button{border:0;background:none;color:var(--muted);font:600 12px 'DM Sans',Arial,sans-serif;cursor:pointer;padding:10px 12px;border-radius:8px}.family-mode button.selected,.family-tabs button.selected{background:#e7efe7;color:var(--green)}.family-layout{display:grid;grid-template-columns:255px minmax(0,1fr);gap:20px;align-items:start}.family-roster,.family-student-detail{background:white;border:1px solid var(--line);border-radius:13px;overflow:hidden}.family-roster-head{display:flex;justify-content:space-between;align-items:center;padding:18px 17px 10px}.family-roster-head h3{font:700 15px Manrope,Arial,sans-serif;margin:0}.family-roster-head span{font:12px 'DM Mono',monospace;color:var(--muted)}.family-filter{display:block;margin:7px 15px 15px;color:var(--muted);font-size:10px}.family-filter select{width:100%;margin-top:6px}.family-student{display:block;width:100%;text-align:left;border:0;border-left:3px solid transparent;background:white;padding:13px 16px;color:var(--ink);cursor:pointer}.family-student:hover{background:#f7f9f5}.family-student.selected{background:#edf4ec;border-left-color:var(--green)}.family-student strong{display:block;font-size:12px;overflow-wrap:anywhere}.family-student span{font-size:10px;color:var(--muted);display:block;line-height:1.6;margin-top:3px}.family-small{font-size:10px;line-height:1.65;color:var(--muted)}.family-roster>.family-small{padding:0 17px 14px}.family-empty{padding:28px 22px;text-align:center;color:var(--muted);font-size:12px;line-height:1.7}.family-empty h3{font:700 17px Manrope,Arial,sans-serif;color:var(--ink);margin:0 0 9px}.family-empty p{margin:0 0 15px}.family-welcome{background:white;border:1px solid var(--line);border-radius:12px;padding:35px}.family-student-head{display:flex;justify-content:space-between;gap:15px;align-items:center;padding:21px 23px}.family-student-head h3{font:750 24px Manrope,Arial,sans-serif;margin:6px 0;overflow-wrap:anywhere}.family-student-head p{font-size:11px;color:var(--muted);margin:0}.family-retention{padding:11px 23px;background:#f0f4ee;font-size:10px;line-height:1.65;color:#4b6251}.family-retention.due-soon{background:#fff6e6;color:#755a2e}.family-tabs{display:flex;flex-wrap:wrap;gap:3px;padding:11px 15px;border-bottom:1px solid var(--line)}#familyTabContent{padding:17px 23px}.family-panel-actions{display:flex;justify-content:flex-end;margin-bottom:10px}.family-record{display:flex;align-items:center;gap:16px;padding:16px 0;border-bottom:1px solid var(--line)}.family-record:last-child{border-bottom:0}.family-record>div:first-child{flex:1;min-width:0}.family-record h4{font:700 13px Manrope,Arial,sans-serif;margin:0 0 5px;overflow-wrap:anywhere}.family-record p{font-size:11px;line-height:1.6;color:var(--muted);margin:0;overflow-wrap:anywhere}.family-record small{display:block;font-size:10px;color:var(--muted);margin-top:6px}.family-grade{text-align:right;flex-shrink:0}.family-grade b{display:block;font-size:17px;color:var(--green)}.family-grade span{display:block;font-size:10px;color:var(--muted);margin-top:5px}.family-chip{font-size:10px;padding:7px 9px;background:#edf3eb;border-radius:20px;color:var(--green)}.family-award-card>div.family-award-symbol{flex:0 0 40px;width:40px;height:40px;display:grid;place-items:center;background:#fcf3d9;color:#a77c25;border-radius:50%;font-size:23px}.family-award-card>div:nth-child(2){flex:1;min-width:0}.family-year-end{margin:24px 0 5px;padding:18px;border-radius:10px;background:#f8f6f0}.family-year-end h4{font-size:13px;margin:0 0 9px}.family-year-end p{font-size:11px;line-height:1.7;margin:0 0 13px}.family-actions{display:flex;gap:9px;flex-wrap:wrap}.family-handoff-list{background:#eef3e9;border:1px solid #dce6d5;border-radius:12px;padding:18px;margin-bottom:18px}.family-handoff-list h3{font-size:14px;margin:0 0 12px}.family-handoff-list>div{display:flex;align-items:center;justify-content:space-between;gap:12px;font-size:12px}.family-old-threads{margin-top:20px;padding:17px;border:1px solid var(--line);border-radius:10px;background:#fff}.family-old-threads summary{font-size:12px;cursor:pointer;font-weight:700}.family-old-threads p{font-size:11px;color:var(--muted);line-height:1.6}.family-old-threads button{margin:4px 7px 0 0}.family-dialog{border:1px solid var(--line);border-radius:15px;background:#fff;width:min(540px,calc(100% - 30px));max-height:92vh;overflow:auto;padding:24px;color:var(--ink);box-shadow:0 24px 80px #10251c40}.family-dialog::backdrop{background:#12251db8}.family-dialog-head{display:flex;justify-content:space-between;gap:16px;align-items:start}.family-dialog h2{font:700 21px Manrope,Arial,sans-serif;margin:0;line-height:1.3;overflow-wrap:anywhere}.family-muted{font-size:11px;color:var(--muted);line-height:1.65;margin:12px 0 16px}.family-fields{display:flex;flex-direction:column;gap:13px}.family-fields label,.family-message-form label,#familyTabContent>label{font-size:11px;font-weight:700;color:#506057;display:flex;flex-direction:column;gap:6px}.family-fields input,.family-fields select,.family-fields textarea,.family-filter select,.family-record select,.family-message-form textarea,#familyTabContent>label select{border:1px solid var(--line);border-radius:7px;padding:10px 11px;background:white;font:12px 'DM Sans',Arial,sans-serif;color:var(--ink);max-width:100%}.family-fields textarea,.family-message-form textarea{resize:vertical;line-height:1.6}.family-field-pair{display:grid;grid-template-columns:1fr 1fr;gap:12px}.family-field-pair label{min-width:0}.family-field-pair input{width:100%}.family-dialog-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:22px}.family-form-error{font-size:11px;background:#fff0ed;color:#8b3b31;border-radius:7px;padding:10px 12px;line-height:1.6}.family-prewrap{white-space:pre-wrap}.family-messages{display:flex;flex-direction:column;gap:12px;margin-top:15px}.family-message{padding:13px;border-radius:10px;background:#f4f5f1;max-width:94%;align-self:start;overflow-wrap:anywhere}.family-message.from-self{background:#eaf2e7;align-self:end}.family-message>div{display:flex;gap:12px;align-items:center;justify-content:space-between;font-size:10px}.family-message time{font-size:9px;color:var(--muted)}.family-message p{white-space:pre-wrap;font-size:12px;line-height:1.7;margin:8px 0 0}.family-message-form{margin-top:15px;padding-top:15px;border-top:1px solid var(--line);display:flex;flex-direction:column;align-items:stretch;gap:10px}.family-message-form button{align-self:flex-end}.family-invite{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:20px;border:1px solid #c9dccb;background:#eff7ec;border-radius:12px;margin-bottom:18px}.family-invite h3{font:700 16px Manrope,Arial,sans-serif;margin:0 0 6px}.family-invite p{font-size:11px;line-height:1.6;color:var(--muted);margin:0}.family-print-report,.family-print-award{display:none}
@media(max-width:850px){.family-shell{padding:30px 18px 45px}.family-layout{grid-template-columns:1fr}.family-roster #familyRosterList{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));max-height:240px;overflow:auto}.family-roster>.family-small{display:none}.family-heading{align-items:start;flex-direction:column}.family-student-head{padding:18px}.family-tabs{padding:10px}#familyTabContent{padding:14px 18px}.family-invite{align-items:start;flex-direction:column}}@media(max-width:520px){.family-record{align-items:start;flex-wrap:wrap}.family-award-card button{margin-left:56px}.family-dialog{padding:20px}.family-dialog-actions{flex-wrap:wrap}.family-dialog-actions .btn{flex:1}.family-message>div{align-items:start;flex-direction:column;gap:4px}.family-handoff-list>div{align-items:start;flex-direction:column}}
@media print{.family-print-report{display:block;font:12px/1.5 Arial,sans-serif;color:#111;max-width:7.5in;margin:auto}.family-print-brand{font:10px Arial,sans-serif;letter-spacing:1px;text-transform:uppercase;color:#365640}.family-print-report h1{font-size:26px;margin:10px 0 3px}.family-print-report h2{font-size:17px;margin:23px 0 9px;border-bottom:1px solid #777;padding-bottom:5px}.family-print-report h3{font-size:14px;margin-bottom:5px}.family-print-report p{white-space:pre-wrap;overflow-wrap:anywhere}.family-print-report table{width:100%;border-collapse:collapse;table-layout:fixed}.family-print-report th,.family-print-report td{padding:8px 7px;text-align:left;vertical-align:top;border-bottom:1px solid #ddd;overflow-wrap:anywhere}.family-print-report th{font-size:11px}.family-print-report thead{display:table-header-group}.family-print-report tr{break-inside:avoid}.family-print-report article{break-inside:avoid}.family-print-report footer{margin-top:30px;border-top:1px solid #999;padding-top:12px;font-size:10px;color:#555}.family-print-award{display:flex;min-height:9.5in;box-sizing:border-box;align-items:center;color:#243f2d;font-family:Georgia,serif;padding:22px;border:3px solid #46664d;break-after:page}.family-certificate-inner{width:100%;padding:35px 25px;text-align:center;border:1px solid #b9aa73;min-height:7.8in;display:flex;flex-direction:column;justify-content:center}.family-certificate-star{font-size:54px;color:#aa872e;margin-bottom:16px}.family-print-award h1{font-size:33px;line-height:1.25;margin:22px 0;overflow-wrap:anywhere}.family-print-award h2{font-size:36px;margin:16px 0 24px;overflow-wrap:anywhere}.family-certificate-description{white-space:pre-wrap;font-size:17px;line-height:1.7;overflow-wrap:anywhere}.family-certificate-signature{display:flex;justify-content:space-around;gap:25px;margin-top:55px;font-size:14px}.family-certificate-signature>div{flex:1;border-top:1px solid #63806b;padding-top:10px}.family-certificate-signature span{display:block;font:10px Arial,sans-serif;margin-top:5px;color:#607866}}
@media print{.family-print-award.compact .family-certificate-inner{padding:20px}.family-print-award.compact .family-certificate-star{font-size:32px;margin-bottom:8px}.family-print-award.compact h1{font-size:26px;margin:12px 0}.family-print-award.compact h2{font-size:28px;margin:12px 0 18px}.family-print-award.compact .family-certificate-description{font-size:13px;line-height:1.4}.family-print-award.compact .family-certificate-signature{margin-top:30px}}
.family-record-actions{display:flex;gap:6px;flex-wrap:wrap}
.family-shell{scroll-margin-top:110px}
