.family-page{max-width:960px;margin:24px auto;padding:16px}.family-page h1{font-size:clamp(1.6rem,5vw,2.5rem)}.family-page h2{font-size:1.4rem}.family-section{padding-block:24px;border-top:1px solid var(--line,#ddd)}.family-section .field{display:flex;flex-direction:column;gap:8px;margin:16px 0}.family-section input:not([type=checkbox]):not([type=radio]),.family-page form>label.field input,.family-link{width:100%;min-width:0;padding:12px;border:1px solid var(--line,#bbb);border-radius:10px;background:var(--card,#fff);color:inherit;font:inherit}.family-check{display:flex;align-items:flex-start;gap:12px;margin:18px 0;line-height:1.5}.family-check input{flex:0 0 auto;width:20px;height:20px;margin-top:3px}.family-student,.family-device{display:flex;gap:20px;align-items:center;justify-content:space-between;padding:20px 0;border-bottom:1px solid var(--line,#ddd)}.family-student h3{margin:0}.family-student p{margin:8px 0}.family-picker{display:grid;gap:16px;margin:24px 0}.family-picker button{display:flex;align-items:center;gap:16px;min-height:76px;text-align:left}.family-feedback:empty{display:none}.family-feedback{margin:16px 0}.family-identity{display:flex;align-items:center;gap:12px;flex-wrap:wrap;padding:14px 18px;background:var(--card,#fff);border:2px solid #e7bb29;border-radius:14px;margin-bottom:20px}.family-identity span{color:var(--muted,#676b70)}.family-identity button{margin-left:auto}.family-status{border-radius:10px;background:#e9f4e8;color:#234c2e;padding:14px}.family-registration{border:1px solid var(--line,#ddd);border-radius:12px;margin:16px 0;padding:16px}.family-registration label{display:block;margin:12px 0}.family-qr{display:block;width:240px;max-width:100%;height:auto;margin:16px auto}.family-link{overflow-wrap:anywhere}.family-attribution{display:block;color:var(--muted,#676b70);margin-top:4px}.family-table-wrap{overflow-x:auto;max-width:100%}.family-table{width:100%;border-collapse:collapse;min-width:500px}.family-table th,.family-table td{text-align:left;padding:14px 10px;border-bottom:1px solid var(--line,#ddd);vertical-align:top}.family-table small{display:block;color:var(--muted,#676b70);margin-top:4px}.video-report-dialog{border:0;border-radius:22px;padding:28px;max-width:900px;width:calc(100% - 32px);max-height:90vh;overflow:auto;color:var(--text,#242729);background:var(--card,#fff);font:inherit}.video-report-dialog::backdrop{background:#0009}.video-view-notice{font-size:.9rem;margin-top:12px}.video-report-button{margin-top:12px}#videoOverview{margin-top:20px}.family-page summary{cursor:pointer;font-weight:800;padding:16px 0}@media(max-width:600px){.family-page{margin:8px auto;padding:8px}.family-page>.card{padding:20px}.family-student,.family-device{align-items:flex-start;flex-direction:column}.family-student .actions{width:100%}.family-identity button{margin-left:0}.family-page .top{align-items:flex-start}.video-report-dialog{padding:20px}.family-table{font-size:.9rem}}@media(prefers-color-scheme:dark){.family-status{background:#203e2b;color:#c2e4bc}}

/* Keep complete titles and viewing records within narrow phone screens. */
.content,.settings-grid>.card,#videoOverview,.parent-shell .card{min-width:0}
.video-report-dialog h2,#videoOverview h2,.video-activity-table th,.video-activity-table td{overflow-wrap:anywhere;word-break:normal}
.video-activity-table{min-width:0;table-layout:fixed;width:100%}
.video-activity-table th:first-child{width:38%}
.video-activity-table .btn{max-width:100%;white-space:normal}
.settings-disclosure,.usage-history{border-top:1px solid var(--line,#ddd);margin-top:20px}
.settings-disclosure>summary,.usage-history>summary{cursor:pointer;font-size:1.1rem;font-weight:900;padding:16px 0;min-height:48px}
.settings-disclosure>summary:focus-visible,.usage-history>summary:focus-visible{outline:2px solid var(--gold);outline-offset:3px}
.parent-shell .content{padding-right:32px}.parent-shell .settings-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
.parent-classes{margin-top:20px}.parent-class-list{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(230px,100%),1fr));gap:12px}
.parent-class{display:grid;text-align:left;gap:8px;white-space:normal;overflow-wrap:anywhere}.parent-class small{font-weight:600}.parent-class span{font-size:.85rem;color:var(--muted)}
@media(max-width:820px){.parent-shell .content{padding-right:20px}.parent-shell .nav{grid-template-columns:repeat(4,minmax(0,1fr))}.parent-shell .nav button{min-width:0}.parent-shell .settings-grid{grid-template-columns:minmax(0,1fr)}}
@media(max-width:600px){
 .video-activity-table,.video-activity-table tbody,.video-activity-table tr,.video-activity-table td{display:block;width:100%;min-width:0}
 .video-activity-table thead{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}
 .video-activity-table tr{border-bottom:1px solid var(--line,#ddd);padding:12px 0}
 .video-activity-table td{border:0;padding:8px 0}.video-activity-table td::before{content:attr(data-label);display:block;font-size:.8rem;font-weight:900;color:var(--muted);margin-bottom:4px}
 .video-report-dialog{max-width:calc(100vw - 24px)}
}

/* Tab icons describe the destination even when roles have different tab counts. */
.side .nav button[data-view="home"]:before{content:'⌂'}
.side .nav button[data-view="groups"]:before{content:'⬡'}
.side .nav button[data-view="announcements"]:before{content:'◆'}
.side .nav button[data-view="members"]:before{content:'◎'}
.side .nav button[data-view="messages"]:before{content:'◌'}
.side .nav button[data-view="settings"]:before{content:'⚙'}
@media(max-width:820px){.parent-shell .side{background:var(--card,#fff)}}

.family-page .btn{max-width:100%;white-space:normal;overflow-wrap:anywhere}.family-page .actions{flex-wrap:wrap}
