:root{--bg:#f4f0e8;--surface:#fffdf8;--surface-2:#f7f2e9;--text:#292832;--muted:#76716c;--line:#58412b24;--blue:#8a6736;--blue-hover:#70502a;--blue-soft:#efe5d4;--green:#248a3d;--green-soft:#eef8f0;--orange:#a05a00;--orange-soft:#fff7e8;--red:#d70015;--red-soft:#fff1f2;--radius:22px}.workspaceHeading{justify-content:space-between;align-items:center;gap:16px;margin-bottom:28px;display:flex}.workspaceHeading h1,.workspaceLogin h1{letter-spacing:-.035em;margin:0;font-size:clamp(27px,4vw,40px);line-height:1.2}.workspaceHeading .kicker{margin-bottom:8px}.workspaceTabs{background:var(--blue-soft);border-radius:16px;flex-wrap:wrap;gap:6px;width:fit-content;margin-bottom:28px;padding:5px;display:flex}.workspaceTabs button,.segmentedControl button{cursor:pointer;background:0 0;border:0;border-radius:12px;padding:10px 16px;font-size:16px}.workspaceTabs button.active,.segmentedControl button.active{background:var(--surface);font-weight:650;box-shadow:0 2px 7px #32281414}.workspaceSection{border:1px solid var(--line);background:var(--surface);border-radius:var(--radius);margin:0 0 24px;padding:24px}.workspaceSection h2{margin:0 0 18px;font-size:20px}.workspaceSection input,.workspaceSection select,.workspaceModal input,.workspaceModal select,.workspaceLogin input{border:1px solid var(--line);background:var(--surface);width:100%;min-width:0;min-height:44px;color:var(--text);border-radius:12px;padding:10px 12px;font-size:16px}.workspaceModal form{gap:16px;display:grid}.workspaceModal label,.reportForm label{gap:6px;display:grid}.workspaceModal label>span,.reportForm label>span{color:var(--muted);font-size:14px}.workspaceFilters{align-items:center;gap:10px;margin-bottom:18px;display:flex}.workspaceFilters input[type=search]{flex:1}.workspaceFilters select,.workspaceFilters input:not([type=search]){width:auto;max-width:165px}.clubCompactGrid{grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;display:grid}.clubCompact{border:1px solid var(--line);background:var(--surface-2);border-radius:18px;min-width:0;position:relative}.clubMain{text-align:left;cursor:pointer;background:0 0;border:0;border-radius:18px;gap:6px;width:100%;padding:20px;display:grid}.clubMain small,.clubMain span{color:var(--muted);font-size:14px;font-weight:400}.clubMain strong{padding-right:20px;font-size:19px}.clubMain b{color:var(--blue);margin-top:7px;font-size:14px;font-weight:550}.moreMenu.clubQuickMenu{position:absolute;top:12px;right:12px}.clubContacts{flex-wrap:wrap;gap:12px;padding:0 20px 15px;display:flex}.contactCall{color:var(--text);border-radius:10px;flex-direction:column;padding:4px;font-size:15px;text-decoration:none;display:inline-flex}a.contactCall{color:var(--blue)}.contactCall small{color:var(--muted);font-size:12px}.contactGrid{flex-wrap:wrap;gap:12px;display:flex}.classQuickGrid{grid-template-columns:repeat(5,minmax(0,1fr));gap:10px;margin-top:14px;display:grid}.classQuickGrid button{justify-content:space-between;align-items:center;display:flex}.choiceList{overscroll-behavior:contain;flex-wrap:wrap;gap:8px;max-height:260px;padding:4px;display:flex;overflow-y:auto}.choiceList button,.selectionCart button{background:var(--surface-2);border:1px solid var(--line);cursor:pointer;border-radius:12px;padding:9px 13px;font-size:16px}.selected{background:var(--blue-soft)!important;border-color:var(--blue)!important}.selectionCart{flex-wrap:wrap;gap:8px;margin-bottom:16px;display:flex}.segmentedControl{background:var(--blue-soft);border-radius:15px;gap:4px;padding:4px;display:flex}.workspaceLogin .setupCard{gap:18px;margin-top:28px;display:grid}.workspaceLogin label{gap:6px;display:grid}.muted{color:var(--muted);font-size:14px}.modalCard.workspaceModal{width:min(1050px,100vw - 32px);max-height:85vh;overscroll-behavior:contain;max-height:85dvh;overflow-y:auto}.workspaceModal .detailHeader{z-index:2;background:var(--surface);padding:6px 0 14px;position:sticky;top:-24px}:is(.workspaceModal:has(form),.workspaceModal:has(.compactHistory)){width:min(620px,100vw - 32px)}.directoryRosters{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;display:grid}.directoryRosters>section{border:1px solid var(--line);border-radius:18px;min-width:0;overflow:hidden}.directoryRosters>section:only-child{grid-column:1/-1}.directoryRosters header{background:var(--surface-2);justify-content:space-between;align-items:center;gap:10px;padding:14px 16px;display:flex}.directoryRosters h3{margin:0;font-size:18px}.directoryRosters header small{color:var(--muted)}.directoryStudentList{overscroll-behavior:contain;-webkit-overflow-scrolling:touch;height:min(52vh,540px);padding:8px;overflow-y:auto}.directoryStudentList button{border:1px solid var(--line);background:var(--surface);cursor:pointer;text-align:left;border-radius:11px;grid-template-columns:minmax(0,1fr) auto 32px;align-items:center;gap:10px;width:100%;margin-bottom:6px;padding:10px 12px;display:grid}.directoryStudentList button small{color:var(--muted);font-size:13px}.rosterModalActions{justify-content:flex-end;gap:8px;display:flex}.periodChoices{grid-template-columns:1fr 1fr;gap:12px;margin:20px 0;display:grid}.periodChoices button{border:1px solid var(--line);background:var(--surface-2);cursor:pointer;border-radius:15px;gap:5px;padding:18px 12px;display:grid}.periodChoices small{color:var(--muted);font-size:14px}.periodChoices b{font-size:16px;font-weight:500}.reportForm{grid-template-columns:1fr 1fr;gap:16px;display:grid}.studentSearchList{gap:8px;display:grid}.studentSearchList>article{border:1px solid var(--line);background:var(--surface-2);border-radius:14px;overflow:hidden}.studentSearchButton{cursor:pointer;text-align:left;background:0 0;border:0;justify-content:space-between;align-items:center;gap:14px;width:100%;padding:13px 16px;display:flex}.studentSearchButton small{color:var(--muted);font-size:14px}.studentSearchButton:disabled{opacity:.65}.whereaboutsItem{border:1px solid var(--line);background:var(--surface-2);border-radius:15px;justify-content:space-between;align-items:center;gap:16px;margin:10px 0;padding:14px 16px;display:flex}.whereaboutsItem>div{min-width:0}.whereaboutsItem>div:first-child{gap:3px;display:grid}.whereaboutsItem span{font-size:15px}.whereaboutsItem small{color:var(--muted);font-size:13px}.whereaboutsItem.overdue{background:var(--orange-soft);border-color:#a05a0038}.whereaboutsItem>div:last-child{flex-shrink:0;align-items:center;gap:8px;display:flex}.whereaboutsHint{color:var(--orange)!important;white-space:normal!important}.compactHistory{border-top:1px solid var(--line);padding:12px 0}.compactHistory p{margin:4px 0;font-size:15px}.compactHistory small,.reportHistory small{color:var(--muted);font-size:13px}.reportHistory{margin-top:15px}.reportHistory small{display:block}.courseEndTime{color:var(--muted);margin:8px 0 0;font-size:15px}.periodControlGroup{border:1px solid var(--line);border-radius:16px;padding:16px}.periodControlGroup h3{margin:0 0 12px;font-size:17px}.periodControlGroup>div{flex-wrap:wrap;gap:8px;display:flex}.substituteGrant{justify-content:space-between;align-items:center;gap:12px;display:flex}.workspaceFooter{color:var(--muted);text-align:center;margin:28px 0 0;font-size:12px}.loginCategories,.homeShortcuts{gap:12px;margin-top:28px;display:grid}.entryRow{border:1px solid var(--line);background:var(--surface);width:100%;min-height:52px;color:var(--text);text-align:left;cursor:pointer;border-radius:16px;justify-content:space-between;align-items:center;gap:16px;padding:15px 18px;font-size:16px;display:flex}.entryRow b{font-weight:600}.entryRow>span{color:var(--muted);font-size:14px}.entryRow:active,.pickerRows button:active,.initials button:active,.clubMain:active{background:var(--blue-soft);transform:scale(.99);box-shadow:inset 0 0 0 1px #8a673626}.teacherPicker{width:100%;min-width:0}.initials{flex-wrap:wrap;gap:5px;padding:2px 0 16px;display:flex}.initials button{border:1px solid var(--line);background:var(--surface-2);width:36px;height:36px;color:var(--text);cursor:pointer;border-radius:11px;font-size:15px}.pickerRows{overscroll-behavior:contain;-webkit-overflow-scrolling:touch;grid-template-columns:1fr 1fr;gap:8px;max-height:min(50vh,420px);padding:2px;display:grid;overflow-y:auto}.pickerRows button{border:1px solid var(--line);background:var(--surface-2);text-align:left;min-height:46px;color:var(--text);cursor:pointer;border-radius:13px;justify-content:space-between;align-items:center;gap:12px;padding:12px 14px;font-size:16px;display:flex}.pickerRows button span{color:var(--muted);font-size:14px}.backChoice{justify-self:start}.topActions .accountMenu>summary{white-space:nowrap;letter-spacing:normal;border-radius:14px;justify-content:center;align-items:center;gap:7px;width:auto;min-width:44px;height:auto;min-height:44px;padding:8px 12px;font-size:14px;font-weight:500;line-height:1.35;display:flex}.accountMenu>summary span{color:var(--muted);font-size:12px}.accountMenu>div{min-width:160px;right:0}.previewBanner{border:1px solid var(--line);color:var(--muted);background:var(--surface-2);border-radius:14px;justify-content:space-between;align-items:center;gap:10px;margin-bottom:18px;padding:12px 16px;font-size:14px;display:flex}.directorySelects{grid-template-columns:minmax(104px,1fr) minmax(0,2fr);display:grid}.workspaceFilters.directorySelects select{width:100%;min-width:0;max-width:none}.schoolClassQuery>summary,.pageChanges>summary,.incidentPanel>summary{cursor:pointer;justify-content:space-between;align-items:center;gap:10px;min-height:44px;font-size:16px;font-weight:550;list-style:none;display:flex}.schoolClassQuery>summary:after,.pageChanges>summary:after,.incidentPanel>summary:after{content:"⌄";color:var(--muted)}.schoolClassQuery[open]>summary{margin-bottom:16px}.clubAttendAction{margin:0 18px 18px}.classQuickGrid{grid-template-columns:repeat(2,minmax(0,1fr))}.reportForm,.reportForm label{min-width:0}.reportForm input[type=time],.workspaceFilters input[type=date]{-webkit-appearance:none;box-sizing:border-box;width:100%;min-width:0;max-width:100%}.reportForm input[type=time]::-webkit-date-and-time-value{text-align:left}.dismissalInline{color:var(--orange);margin-top:6px;font-size:13px;display:block}.pageChanges>summary{margin-bottom:0}.pageChanges[open]>summary{margin-bottom:16px}.schoolAlerts{max-width:1096px;margin:18px auto 0;padding:0 28px}.schoolAlerts>details{background:var(--red-soft);border:1px solid #d7001533;border-radius:16px}.schoolAlerts summary{cursor:pointer;align-items:center;gap:12px;padding:13px 17px;font-size:15px;list-style:none;display:flex}.schoolAlerts summary>span{flex:1;font-weight:600}.schoolAlerts summary>b{font-size:14px;font-weight:500}.schoolAlerts summary>i{font-style:normal}.schoolAlerts .modalCard{background:var(--surface)}.schoolAlertList{overscroll-behavior:contain;max-height:40vh;padding:0 16px 14px;overflow-y:auto}.schoolAlertList article{border-top:1px solid var(--line);justify-content:space-between;align-items:center;gap:12px;padding:10px 0;display:flex}.schoolAlertList article>div{gap:3px;display:grid}.schoolAlertList small{color:var(--muted);font-size:13px}.staffVisibility .pickerRows{grid-template-columns:1fr}.visibilityRows{gap:6px;max-height:50vh;display:grid;overflow-y:auto}.visibilityRows label{border:1px solid var(--line);border-radius:12px;align-items:center;gap:12px;padding:12px;display:flex}.visibilityRows input{width:20px;height:20px}.visibilityRows small{color:var(--muted);margin-left:auto}@media (max-width:520px){.topActions .accountMenu>summary{padding:8px;font-size:13px}.topbar .wordmarkText strong{font-size:16px}.wordmarkText small{font-size:10px}.classQuickGrid,.pickerRows{grid-template-columns:1fr}.schoolAlerts{padding:0 18px}.workspaceHeading{margin-bottom:20px}.workspaceTabs{z-index:3;-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);background:#f1ede5e6;position:sticky;top:8px}.workspaceSection select,.workspaceSection input,.reportForm label{min-width:0;max-width:100%}.studentRow .studentRowMain{min-height:44px;padding-top:5px;padding-bottom:5px}.studentIdentity>strong{font-size:16px}.studentIdentity .whereaboutsHint{text-overflow:ellipsis;max-width:100%;display:block;overflow:hidden;white-space:nowrap!important}.rowState em{font-size:11px}.compactSession .sessionTitle h2{font-size:16px}}@media (max-width:800px){.clubCompactGrid{grid-template-columns:repeat(2,minmax(0,1fr))}.classQuickGrid{grid-template-columns:repeat(4,minmax(0,1fr))}.directoryRosters{gap:8px}.directoryStudentList button{grid-template-columns:1fr 22px;gap:4px;padding:10px 8px}.directoryStudentList button small{grid-area:2/1;font-size:12px}.directoryStudentList button>span{grid-area:1/2/3}}@media (max-width:520px){.workspace.pageShell{padding-top:28px}.workspaceSection{padding:16px}.workspaceTabs{flex-wrap:nowrap;width:100%}.workspaceTabs button{white-space:nowrap;flex:1;padding:10px 7px;font-size:14px}.clubCompactGrid{grid-template-columns:1fr}.clubMain{padding:17px}.classQuickGrid{grid-template-columns:repeat(3,minmax(0,1fr))}.workspaceFilters{flex-wrap:wrap}.workspaceFilters input[type=search]{flex-basis:100%}.workspaceFilters select,.workspaceFilters input:not([type=search]){flex:1;width:calc(50% - 10px)}.reportForm{grid-template-columns:1fr}.studentSearchButton{flex-direction:column;align-items:flex-start;gap:3px}.whereaboutsItem{flex-direction:column;align-items:flex-start;gap:8px}.whereaboutsItem>div:last-child{justify-content:space-between;width:100%}.workspaceModal{padding:18px!important}.directoryRosters header{flex-direction:column;align-items:flex-start;padding:12px}.directoryRosters h3{font-size:16px}.directoryRosters .rosterFooter{padding:8px;font-size:10px}}*{box-sizing:border-box}html{background:var(--bg);-webkit-text-size-adjust:100%;-moz-text-size-adjust:100%;text-size-adjust:100%;overflow-x:clip}body{min-height:100vh;color:var(--text);background:var(--bg);-webkit-font-smoothing:antialiased;margin:0;font-family:-apple-system,BlinkMacSystemFont,SF Pro Display,SF Pro Text,PingFang SC,Microsoft YaHei,sans-serif;font-size:17px;line-height:1.5;overflow-x:clip}button,input,select,textarea{font:inherit}button{color:inherit}button,summary{-webkit-tap-highlight-color:transparent}:is(button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,summary:focus-visible){outline-offset:2px;outline:3px solid #8a673647}.topbar{z-index:30;border-bottom:1px solid var(--line);-webkit-backdrop-filter:saturate(180%)blur(20px);background:#f8f4ece6;justify-content:space-between;align-items:center;gap:18px;min-height:64px;padding:10px max(22px,50vw - 590px);display:flex;position:sticky;top:0}.wordmark{cursor:pointer;text-align:left;background:0 0;border:0;align-items:center;gap:9px;padding:0;display:flex}.wordmark:before{content:"";background:url(/school-crest.png) 50%/contain no-repeat;flex:none;width:33px;height:40px}.wordmarkText,.wordmarkText strong,.wordmark small{display:block}.wordmarkText strong{letter-spacing:-.25px;font-size:18px;font-weight:680}.wordmark small{color:var(--muted);margin-top:1px;font-size:12px;font-weight:500}.topActions{align-items:center;gap:10px;display:flex}.cornerButton{border:1px solid var(--line);cursor:pointer;min-height:38px;color:var(--text);background:#ffffffb8;border-radius:999px;padding:0 13px;font-size:14px;font-weight:600}.cornerButton:hover{background:var(--surface);border-color:#0000002e}.textButton{min-height:40px;color:var(--blue);cursor:pointer;background:0 0;border:0;border-radius:999px;padding:0 12px;font-size:15px;font-weight:600}.textButton:hover{background:#8a673614}.pageShell{width:min(1180px,100% - 40px);margin:0 auto;padding:64px 0 96px}.narrowPage{width:min(600px,100% - 40px)}.narrowSetup{width:min(720px,100% - 40px)}.landing{padding-top:92px}.intro{max-width:830px}.kicker,.pageHeading>p{color:var(--blue);letter-spacing:.01em;margin:0 0 14px;font-size:15px;font-weight:650}.intro h1{letter-spacing:-.055em;margin:0;font-size:clamp(44px,6.5vw,76px);font-weight:690;line-height:1.05}.introText{max-width:680px;color:var(--muted);letter-spacing:-.015em;margin:26px 0 0;font-size:21px;line-height:1.6}.entryGrid{grid-template-columns:1fr 1fr;gap:14px;margin-top:62px;display:grid}.entryCard{border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);text-align:left;cursor:pointer;grid-template-columns:auto 1fr auto;align-items:center;gap:18px;min-height:128px;padding:24px 26px;transition:transform .18s,border-color .18s,box-shadow .18s;display:grid}.entryCard:hover{border-color:#0000002b;transform:translateY(-2px);box-shadow:0 12px 34px #0000000e}.entryIndex{width:40px;height:40px;color:var(--muted);background:var(--bg);border-radius:50%;place-items:center;font-size:13px;font-weight:650;display:grid}.entryCard strong,.entryCard small{display:block}.entryCard strong{letter-spacing:-.02em;margin-bottom:6px;font-size:21px;font-weight:650}.entryCard small{color:var(--muted);font-size:15px}.entryCard b{color:var(--blue);font-size:32px;font-weight:300}.facts{border-top:1px solid var(--line);border-bottom:1px solid var(--line);grid-template-columns:repeat(3,1fr);margin-top:52px;padding:28px 0;display:grid}.facts>div{border-left:1px solid var(--line);padding:0 26px}.facts>div:first-child{border-left:0;padding-left:0}.facts strong,.facts span{display:block}.facts strong{letter-spacing:-.025em;font-size:27px;font-weight:650}.facts strong small{font-size:16px}.facts span{color:var(--muted);margin-top:4px;font-size:14px}.demoHelp{color:var(--muted);margin-top:22px;font-size:14px}.demoHelp summary{cursor:pointer;width:fit-content;color:var(--blue);font-weight:600}.demoHelp div{border:1px solid var(--line);background:#ffffff9e;border-radius:14px;margin-top:12px;padding:14px 16px}.demoHelp p{margin:3px 0}.pageHeading{max-width:810px;margin-bottom:38px}.pageHeading h1{letter-spacing:-.045em;margin:0;font-size:clamp(36px,5vw,54px);font-weight:680;line-height:1.08}.pageHeading>div{color:var(--muted);margin-top:18px;font-size:19px;line-height:1.6}.pageHeading>div p{margin:0}.loginCard{border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);gap:18px;padding:30px;display:grid}.rosterShortcut{border:1px solid var(--line);background:#fffdf8b3;border-radius:18px;justify-content:space-between;align-items:center;gap:18px;margin-top:14px;padding:18px 20px;display:flex}.rosterShortcut strong,.rosterShortcut small{display:block}.rosterShortcut strong{font-size:16px;font-weight:670}.rosterShortcut small{color:var(--muted);margin-top:3px;font-size:13px}.personalClubGrid{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;display:grid}.personalGradeColumn{overscroll-behavior:contain;scrollbar-gutter:stable;-webkit-overflow-scrolling:touch;align-content:start;gap:12px;min-width:0;height:clamp(360px,62vh,690px);display:grid;overflow-y:auto}.personalClubCard{border:1px solid var(--line);background:var(--surface);border-radius:20px;flex-direction:column;min-height:100%;display:flex;overflow:hidden}.personalClubCard>header{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;gap:18px;padding:18px 20px;display:flex}.personalClubCard>header small{color:var(--blue);font-size:12px;font-weight:680}.personalClubCard h2{letter-spacing:-.025em;margin:2px 0 0;font-size:21px}.personalClubCard>header>div>strong{color:var(--muted);white-space:nowrap;margin-top:5px;font-size:13px;font-weight:600;display:block}.personalClubCard>header>button{min-height:38px;padding:0 15px}.personalStudentGrid{overscroll-behavior:contain;-webkit-overflow-scrolling:touch;flex:1;grid-template-columns:repeat(2,minmax(0,1fr));align-content:start;gap:1px;min-height:0;padding:8px 14px;display:grid;overflow-y:auto}.personalStudent{border-bottom:1px solid var(--line);min-width:0;padding:10px 48px 10px 8px;position:relative}.personalStudentGrid .studentInfoMenu>.studentInfoPanel{position:fixed;top:50%;left:50%;right:auto;transform:translate(-50%,-50%)}.personalStudent:has(.studentInfoMenu[open]){z-index:60}.personalStudentGrid .studentInfoPanel small,.personalStudentGrid .studentInfoPanel p{text-align:left;white-space:normal;overflow:visible}.personalStudentGrid b,.personalStudentGrid small{text-overflow:ellipsis;white-space:nowrap;display:block;overflow:hidden}.personalStudentGrid b{font-size:15px;font-weight:640}.personalStudentGrid small{color:var(--muted);font-size:11px}.personalStudentGrid p{color:var(--muted);text-align:center;grid-column:1/-1}.personalGradeEmpty{border:1px solid var(--line);min-height:170px;color:var(--muted);background:var(--surface);text-align:center;border-radius:20px;place-content:center;gap:6px;display:grid}.personalGradeEmpty strong{color:var(--text);font-size:18px}label{gap:8px;min-width:0;display:grid}label>span,.adminToolbar>div>span{color:var(--muted);font-size:14px;font-weight:600}input,select{width:100%;min-height:50px;color:var(--text);background:var(--surface);border:1px solid #00000029;border-radius:13px;outline:none;padding:0 14px}.dateField{width:100%;min-width:0;max-width:100%;overflow:hidden}input[type=date]{-webkit-appearance:none;appearance:none;width:100%;min-width:0;max-width:100%;display:block;overflow:hidden}input[type=date]::-webkit-date-and-time-value{text-align:left;min-width:0}textarea{width:100%;color:var(--text);background:var(--surface);resize:vertical;border:1px solid #00000029;border-radius:13px;outline:none;padding:12px 14px}input:focus,select:focus,textarea:focus{border-color:var(--blue);box-shadow:0 0 0 4px #8a67361f}.primaryButton,.secondaryButton,.dangerButton{cursor:pointer;white-space:nowrap;border:0;border-radius:999px;min-height:48px;padding:0 20px;font-weight:650}.primaryButton{color:#fff;background:var(--blue)}.primaryButton:hover{background:var(--blue-hover)}.secondaryButton{color:var(--blue);background:var(--blue-soft)}.secondaryButton:hover{background:#e7d8bf}.dangerButton{color:var(--red);background:var(--red-soft)}button:disabled{cursor:not-allowed;opacity:.52}.formNote{color:var(--muted);text-align:center;margin:0;font-size:14px}.inlineNotice,.privateReminder{border:1px solid var(--line);background:var(--surface);border-radius:15px;margin-bottom:22px;padding:16px 18px}.inlineNotice{color:var(--orange);background:var(--orange-soft)}.identityRow{color:var(--muted);justify-content:flex-end;align-items:center;gap:8px;margin-bottom:18px;font-size:15px;display:flex}.identityRow>span{color:var(--text);font-weight:600}.controlPanel{border:1px solid var(--line);background:var(--surface);border-radius:18px;grid-template-columns:1.5fr 1fr auto;align-items:end;gap:14px;padding:20px;display:grid}.compactControls{grid-template-columns:minmax(220px,360px) auto;justify-content:start}.privateReminder{color:var(--orange);background:var(--orange-soft);gap:14px;margin-top:18px;font-size:15px;display:flex}.privateReminder span{color:#704a18}.listHeader{justify-content:space-between;align-items:end;gap:20px;margin:38px 0 16px;display:flex}.listHeader h2{letter-spacing:-.025em;margin:0 0 4px;font-size:27px}.listHeader p{color:var(--muted);margin:0;font-size:15px}.savedTag{color:var(--green);background:var(--green-soft);border-radius:999px;padding:7px 11px;font-size:13px;font-weight:650}.studentGrid{grid-template-columns:1fr;gap:7px;display:grid}.rosterGroup+.rosterGroup{margin-top:26px}.rosterGroupTitle{justify-content:space-between;align-items:baseline;gap:12px;margin:0 2px 10px;display:flex}.rosterGroupTitle h3{letter-spacing:-.015em;margin:0;font-size:18px}.rosterGroupTitle span{color:var(--muted);font-size:13px}.leaveRoster{background:#fff7e68c;border:1px solid #a05a0033;border-radius:20px;padding:16px}.absentRoster{background:#ffeef07a;border:1px solid #d700152e;border-radius:20px;padding:16px}.rosterTableHeader{color:var(--muted);grid-template-columns:minmax(130px,.8fr) minmax(240px,1.5fr) minmax(100px,.55fr) minmax(120px,auto);gap:14px;padding:0 14px 7px;font-size:12px;font-weight:600;display:grid}.rosterTableHeader span:last-child{text-align:right}.studentRowMain{border:1px solid var(--line);background:var(--surface);text-align:left;cursor:pointer;border-radius:16px;grid-template-columns:minmax(130px,.8fr) minmax(240px,1.5fr) minmax(100px,.55fr) minmax(120px,auto);align-items:center;gap:14px;width:100%;min-height:62px;padding:10px 14px;display:grid}.studentRow:hover .studentRowMain{border-color:#8a673652}.studentRow strong,.studentRow small{text-overflow:ellipsis;white-space:nowrap;min-width:0;display:block;overflow:hidden}.studentIdentity strong{letter-spacing:-.015em;margin-bottom:2px;font-size:19px;font-weight:700}.studentIdentity small i{font-style:normal}.studentRow small{color:var(--muted);font-size:12px}.studentClub strong{color:#4b4b50;margin-bottom:2px;font-size:13px;font-weight:520}.studentLocation{min-width:0;color:var(--muted);text-overflow:ellipsis;white-space:nowrap;font-size:13px;overflow:hidden}.mobileLocation{font-style:normal;display:none}.rowState{flex:none;justify-items:end;gap:5px;display:grid}.rowState b{color:var(--muted);background:var(--bg);border-radius:999px;padding:7px 11px;font-size:13px;font-weight:650}.rowState em{color:var(--muted);font-size:11px;font-style:normal;font-weight:500}.studentRow.leave .studentRowMain{background:var(--orange-soft);border-color:#a05a003d}.studentRow.leave .rowState b{color:var(--orange);background:#ffedc8}.studentRow.pendingLeave .studentRowMain{background:var(--blue-soft);border-color:#8a673652;box-shadow:inset 0 0 0 1px #8a673614}.studentRow.pendingLeave .rowState b{color:var(--blue);background:#e8d9c0}.studentRow.absent .studentRowMain{background:var(--red-soft);border-color:#d7001538}.studentRow.absent .rowState b{color:var(--red);background:#ffe0e3}.studentRow.incidentResolved .studentRowMain{background:var(--green-soft);border-color:#248a3d33}.studentRow.incidentResolved .rowState b{color:var(--green);background:#dff2e3}.studentRow.left .studentRowMain{color:var(--muted);background:#e9e9ed;border-color:#0000}.studentRow.left strong{color:#77777c}.studentRow.left .rowState b{color:var(--muted);background:#ffffffb3}.studentRowMain:disabled{opacity:1;cursor:default}.moreMenu.studentInfoMenu{z-index:5;display:block;position:absolute;top:calc(50% - 21px);right:8px;transform:none}.studentRow:has(.studentInfoMenu[open]){z-index:60}.studentRow{position:relative}.studentRowMain{padding-right:58px}.studentInfoPanel{max-height:min(70vh,560px);overflow-y:auto}.studentInfoMenu>.studentInfoPanel{border-radius:20px;width:min(360px,100vw - 32px);padding:18px}.studentInfoPanel dl{gap:8px;margin:0;display:grid}.studentInfoPanel dt,.studentInfoPanel dd{margin:0;font-size:13px}.studentInfoPanel dt{color:var(--muted)}.studentHistory{border-top:1px solid var(--line);margin-top:16px;padding-top:12px}.studentHistory h3{margin:0 0 8px;font-size:14px}.studentHistory article{border-top:1px solid var(--line);padding:9px 0}.studentHistory article p{margin:4px 0;font-size:13px}.studentHistory time,.studentHistory small{color:var(--muted);white-space:normal;font-size:12px;display:block;overflow:visible}.historyMore{align-self:start}.teacherContacts{padding:8px 0}.teacherContacts h4{color:var(--muted);margin:0 0 6px;font-size:12px;font-weight:600}.teacherContacts>div{flex-wrap:wrap;align-items:center;gap:6px 12px;padding:4px 0;font-size:13px;display:flex}.teacherContacts a{background:var(--blue-soft);color:var(--blue);font-variant-numeric:tabular-nums;border-radius:8px;padding:3px 8px}.teacherContacts small{color:var(--muted)}.historyMore>div{width:min(310px,100vw - 32px);max-height:60vh;padding:12px;overflow-y:auto}.historyMore>div p{margin:8px;font-size:14px}.historyCard:has(.historyMore[open]){overflow:visible}.singleTeamRoster{grid-template-columns:minmax(0,1fr)}.singleTeamRoster .personalGradeColumn{grid-template-rows:minmax(0,1fr)}.singleTeamRoster .personalClubCard{height:100%;min-height:0}.teamRosterFilter{max-width:360px;margin-bottom:18px}.modalBackdrop>.modalCard{border-radius:24px}.contactList a{background:var(--blue-soft);border-radius:10px;padding:0 8px}.emptyState{color:var(--muted);text-align:center;grid-column:1/-1;padding:38px 20px}.sessionPanel{border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);margin-top:34px;padding:28px}.sessionTitle{justify-content:space-between;align-items:start;gap:20px;display:flex}.sessionTitle p{color:var(--muted);margin:0 0 6px;font-size:14px}.sessionTitle h2{letter-spacing:-.025em;margin:0;font-size:24px}.sessionTitle>strong{color:var(--blue);font-size:27px;font-weight:650}.sessionFields{border-top:1px solid var(--line);grid-template-columns:1fr 1fr;gap:16px;margin-top:26px;padding-top:24px;display:grid}.switchLabel{align-self:end;align-items:center;gap:10px;min-height:50px;display:flex}.switchLabel input{width:20px;min-height:20px;accent-color:var(--blue)}.switchLabel span{color:var(--text);font-size:16px}.wideField{grid-column:1/-1}.submitButton{width:100%;margin-top:24px}.compactSession{max-width:760px}.sessionNote{margin-top:24px}.incidentPanel{background:var(--surface);border:1px solid #d700152e;border-radius:20px;margin-top:24px;padding:22px;box-shadow:0 10px 30px #5000080a}.incidentHeading{justify-content:space-between;align-items:center;gap:16px;display:flex}.incidentHeading .kicker{color:var(--red);margin:0 0 2px}.incidentHeading h2{letter-spacing:-.025em;margin:0;font-size:25px}.incidentHeading>strong{min-width:42px;color:var(--red);background:var(--red-soft);text-align:center;border-radius:999px;padding:7px 11px;font-size:14px}.incidentHint{color:var(--muted);margin:8px 0 18px;font-size:14px}.incidentList{gap:10px;display:grid}.incidentList article{background:var(--red-soft);border:1px solid #d7001529;border-radius:15px;grid-template-columns:minmax(220px,1fr) minmax(180px,auto) auto;align-items:center;gap:16px;padding:15px 16px;display:grid}.incidentList article.resolved{background:var(--green-soft);border-color:#248a3d29}.incidentList article>div:first-child{gap:2px;display:grid}.incidentList article>div:first-child strong{font-size:18px}.incidentList article span,.incidentList article small{color:var(--muted);font-size:12px}.incidentContacts,.incidentResult{gap:3px;display:grid}.incidentContacts a{color:var(--blue);font-size:13px;text-decoration:none}.incidentResult b{color:var(--green);font-size:14px}.incidentActions{flex-wrap:wrap;justify-content:flex-end;gap:8px;display:flex}.incidentActions button{min-height:38px;padding:0 13px;font-size:13px}.adminIncidents{margin-bottom:14px}.adminPage{padding-top:50px}.segmented{background:#0000000e;border-radius:999px;gap:4px;width:fit-content;margin-bottom:28px;padding:4px;display:flex}.segmented button{min-height:40px;color:var(--muted);cursor:pointer;background:0 0;border:0;border-radius:999px;padding:0 17px;font-weight:600}.segmented button.active{color:var(--text);background:var(--surface);box-shadow:0 1px 4px #0000001a}.adminToolbar{border:1px solid var(--line);background:var(--surface);border-radius:18px;grid-template-columns:minmax(220px,1fr) auto;align-items:end;gap:18px;padding:20px;display:grid}.compactAdminToolbar{grid-template-columns:minmax(220px,360px)}.adminToolbar>div{gap:8px;display:grid}.statsToolbar{grid-template-columns:1fr 1fr 1fr 1fr auto}.statsActions{grid-template-columns:1fr 1fr;align-items:end}.metricGrid{grid-template-columns:repeat(3,1fr);gap:12px;margin:20px 0;display:grid}.overviewMetrics{grid-template-columns:repeat(4,1fr)}.metricGrid>div{border:1px solid var(--line);background:var(--surface);border-radius:18px;padding:22px}.metricGrid strong,.metricGrid span{display:block}.metricGrid strong{letter-spacing:-.035em;font-size:32px}.metricGrid strong small{color:var(--muted);font-size:17px;font-weight:500}.metricGrid span{color:var(--muted);margin-top:6px;font-size:14px}.tableCard{border:1px solid var(--line);background:var(--surface);border-radius:18px;overflow:hidden}.tableHeader,.tableRow{align-items:center;gap:16px;padding:14px 18px;display:grid}.tableHeader{color:var(--muted);background:var(--surface-2);font-size:13px;font-weight:650}.tableRow{border-top:1px solid var(--line);min-height:57px;font-size:15px}.tableRow strong{font-weight:620}.five{grid-template-columns:1.7fr 1fr 1.2fr .8fr .7fr}.four{grid-template-columns:1.7fr 1fr 1fr 1fr}.three{grid-template-columns:1.6fr 1fr .7fr}.successText{color:var(--green);font-weight:600}.mutedText{color:var(--muted)}.dataGuide{border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);margin:20px 0;padding:28px}.dataGuide h2{letter-spacing:-.025em;margin:0 0 22px;font-size:24px}.dataGuide ol{counter-reset:data;gap:12px;margin:0;padding:0;list-style:none;display:grid}.dataGuide li{border-top:1px solid var(--line);counter-increment:data;grid-template-columns:150px 1fr;gap:18px;padding:14px 0;display:grid}.dataGuide li strong:before{content:"0" counter(data) "  ";color:var(--muted);font-size:13px}.dataGuide li span,.dataGuide>p{color:var(--muted)}.dataGuide>p{margin:20px 0 0;font-size:14px}.compact{margin-top:20px}.singleMetric{grid-template-columns:1fr;max-width:none}.historyCard{border:1px solid var(--line);background:var(--surface);border-radius:18px;margin-top:20px;overflow:hidden}.sectionTitle{border-bottom:1px solid var(--line);justify-content:space-between;align-items:baseline;gap:18px;padding:20px 22px;display:flex}.sectionTitle h2{letter-spacing:-.02em;margin:0;font-size:21px}.sectionTitle span{color:var(--muted);font-size:13px}.miniAddButton{width:30px;height:30px;color:var(--blue);background:var(--blue-soft);cursor:pointer;border:0;border-radius:50%;margin-left:8px;font-size:20px;line-height:1}.historyList{padding:4px 22px}.historyList>div{border-top:1px solid var(--line);grid-template-columns:68px minmax(0,1fr) auto auto;align-items:start;gap:10px;padding:14px 0;display:grid}.historyList>div:first-child{border-top:0}.historyList time{color:var(--muted);font-variant-numeric:tabular-nums;font-size:14px}.historyList p{gap:3px;margin:0;font-size:15px;display:grid}.historyList p small{color:var(--muted);font-size:13px}.historyList strong{margin-right:8px;font-weight:650}.historyEntry.undone p>span{color:var(--muted);text-decoration:line-through}.undoMeta{text-decoration:none}.undoButton{min-height:32px;color:var(--blue);background:var(--blue-soft);cursor:pointer;border:0;border-radius:999px;padding:0 12px;font-size:13px;font-weight:650}.managerTabs{margin-top:6px}.managerFilters{border:1px solid var(--line);background:var(--surface);border-radius:18px;grid-template-columns:1.4fr 1fr 1.2fr;gap:12px;margin-bottom:16px;padding:18px;display:grid}.managerFilters.singleFilter{grid-template-columns:minmax(260px,520px)}.managerLayout{grid-template-columns:minmax(340px,.9fr) minmax(460px,1.1fr);align-items:start;gap:16px;display:grid}.managerList,.editorCard,.exportCard{border:1px solid var(--line);background:var(--surface);border-radius:20px;overflow:hidden}.managerList{max-height:720px;overflow-y:auto}.managerList .sectionTitle{z-index:2;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:#f7f2e9f2;position:sticky;top:0}.managerRow{border:0;border-top:1px solid var(--line);text-align:left;cursor:pointer;background:0 0;justify-content:space-between;align-items:center;gap:16px;width:100%;min-height:68px;padding:12px 18px;display:flex}.managerRow:hover,.managerRow.selected{background:var(--blue-soft)}.managerRow strong,.managerRow small{display:block}.managerRow strong{margin-bottom:3px;font-size:16px;font-weight:640}.managerRow small,.managerRow>span:last-child{color:var(--muted);font-size:12px}.managerRow>span:last-child{text-align:right;max-width:180px}.classManagerRow>strong{flex:none;margin:0}.classManagerRow>span{min-width:0;color:var(--muted);text-align:right;text-overflow:ellipsis;white-space:nowrap;margin-left:auto;font-size:13px;overflow:hidden}.editorCard{min-height:300px}.editorFields{grid-template-columns:1fr 1fr;gap:15px;padding:22px;display:grid}.editorActions{justify-content:flex-end;gap:10px;margin:0 22px 22px;display:flex}.detailView{min-height:300px}.detailHeader{border-bottom:1px solid var(--line);background:var(--surface-2);justify-content:space-between;align-items:center;gap:18px;min-height:92px;padding:20px 22px;display:flex}.detailHeader .kicker{margin-bottom:3px;font-size:12px}.detailHeader h2{letter-spacing:-.025em;margin:0;font-size:25px}.detailMore{align-self:center}.detailGrid{grid-template-columns:1fr 1fr;gap:10px;margin:0;padding:22px;display:grid}.detailGrid>div{background:var(--surface-2);border-radius:14px;min-width:0;padding:14px 16px}.detailGrid .detailWide{grid-column:1/-1}.detailGrid dt,.detailGrid dd{margin:0}.detailGrid dt{color:var(--muted);font-size:12px;font-weight:600}.detailGrid dd{overflow-wrap:anywhere;margin-top:4px;font-size:15px;font-weight:620}.detailNote{text-align:left;padding:0 22px 20px}.adminDetailModal{width:min(700px,100%);padding:0;overflow:visible}.adminDetailModal .detailView{max-height:min(680px,100vh - 100px);overflow-y:auto}.adminDetailModal>form{max-height:min(680px,100vh - 100px);padding-bottom:1px;overflow-y:auto}.adminDetailModal>.modalActions{border-top:1px solid var(--line);margin:0;padding:14px 22px 20px}.checkboxRow{align-items:center;gap:10px;min-height:46px;display:flex}.checkboxRow input{width:20px;min-height:20px;accent-color:var(--blue)}.checkboxRow span{color:var(--text);font-size:15px}.editorSave{width:calc(100% - 44px);margin:0 22px 22px}.editorEmpty{min-height:300px;color:var(--muted);text-align:center;place-items:center;padding:30px;display:grid}.membershipHistory{border-top:1px solid var(--line);margin:0 22px 22px;padding-top:20px}.membershipHistory h3{margin:0 0 10px;font-size:16px}.membershipHistory p{border-top:1px solid var(--line);grid-template-columns:1fr auto;gap:3px 12px;margin:0;padding:11px 0;display:grid}.membershipHistory p:first-of-type{border-top:0}.membershipHistory p strong{font-size:14px}.membershipHistory p span,.membershipHistory p small{color:var(--muted);font-size:12px}.membershipHistory p small{grid-column:1/-1}.linkedRecords{border-top:1px solid var(--line);margin:0 22px 22px;padding-top:8px}.linkedRecords .sectionTitle{padding:14px 0}.linkedRecords .sectionTitle h3{margin:0;font-size:17px}.linkedRecords .sectionTitle>button,.linkedRecords article button{min-height:34px;color:var(--blue);background:var(--blue-soft);cursor:pointer;border:0;border-radius:999px;padding:0 12px;font-size:12px;font-weight:650}.linkedRecords>article{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;gap:12px;padding:12px 0;display:flex}.linkedRecords article strong,.linkedRecords article small{display:block}.linkedRecords article strong{font-size:14px}.linkedRecords article small{color:var(--muted);margin-top:3px;font-size:12px}.linkedRecords article>div{gap:6px;display:flex}.linkedEmpty{color:var(--muted);margin:14px 0;font-size:13px}.linkedStudentList{overscroll-behavior:contain;-webkit-overflow-scrolling:touch;grid-template-columns:repeat(2,minmax(0,1fr));align-content:start;height:min(330px,42vh);min-height:180px;display:grid;overflow-y:auto}.linkedStudentList>button{border:0;border-bottom:1px solid var(--line);cursor:pointer;text-align:left;background:0 0;justify-content:space-between;align-items:center;gap:8px;min-width:0;padding:11px 8px;display:flex}.linkedStudentList>button:hover{background:var(--surface-2)}.linkedStudentList>button strong{text-overflow:ellipsis;white-space:nowrap;font-size:14px;overflow:hidden}.linkedStudentList>button small{color:var(--muted);white-space:nowrap;font-size:11px}.exportCard{padding:28px}.exportCard h2{letter-spacing:-.025em;margin:0;font-size:26px}.exportCard>div>p{color:var(--muted);margin:8px 0 0}.exportFields{grid-template-columns:1fr 1fr;gap:14px;margin-top:24px;display:grid}.exportActions{gap:10px;margin-top:18px;display:flex}.exportCard>.formNote{text-align:left;margin-top:18px}.backupList{border:1px solid var(--line);background:var(--surface-2);border-radius:16px;margin-top:26px;overflow:hidden}.backupList .sectionTitle{padding:14px 16px}.backupList article{border-top:1px solid var(--line);justify-content:space-between;align-items:center;gap:18px;padding:13px 16px;display:flex}.backupList article>span,.backupList article small{display:block}.backupList article small{color:var(--muted);margin-top:3px;font-size:12px}.backupActions{flex-direction:row;flex:none;align-items:center;gap:6px;display:flex}.backupList article button{min-height:34px;color:var(--blue);background:var(--surface);cursor:pointer;border:0;border-radius:999px;padding:0 12px}.simpleLanding{width:min(760px,100% - 40px);padding-top:120px}.simpleIntro h1{font-size:clamp(48px,8vw,76px)}.simpleLanding .entryGrid{margin-top:44px}.simpleLanding .entryCard{grid-template-columns:1fr auto;min-height:148px}.simpleLanding .entryCard strong{font-size:25px}.homeSchedule{margin-top:30px}.homeSchedule>header{justify-content:space-between;align-items:baseline;gap:18px;margin-bottom:10px;padding:0 2px;display:flex}.homeSchedule>header p{color:var(--text);margin:0;font-size:14px;font-weight:680}.homeSchedule>header span{color:var(--muted);font-size:12px}.scheduleGrid{grid-template-columns:1fr 1fr;gap:10px;display:grid}.scheduleGrid article{border:1px solid var(--line);background:#fffefac2;border-radius:18px;grid-template-columns:auto 1fr auto;align-items:center;gap:14px;min-height:92px;padding:16px 18px;display:grid}.scheduleGrid article>b{color:#9a6c31;background:#f2e4cf;border-radius:50%;place-items:center;width:34px;height:34px;font-size:12px;font-weight:700;display:grid}.scheduleGrid article span{display:grid}.scheduleGrid article strong{color:var(--text);font-size:14px;font-weight:650}.scheduleGrid article small{color:var(--muted);font-size:12px}.scheduleGrid time{color:var(--text);font-variant-numeric:tabular-nums;font-size:16px;font-weight:620}.listActions{justify-content:flex-end;align-items:center;gap:10px;display:flex}.periodTabs{margin:-12px 0 20px}.offlineNotice{color:var(--red);background:var(--red-soft);border:1px solid #d7001533;border-radius:14px;margin-bottom:18px;padding:14px 16px;font-size:14px}.floatingSave{z-index:45;right:max(18px,50vw - 590px);bottom:max(18px, env(safe-area-inset-bottom));color:#5f4526;-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);background:#f7f2e9c7;border:1px solid #ffffffb8;min-height:54px;padding:0 24px;position:fixed;box-shadow:0 10px 28px #402d1b29}.floatingSave:hover{background:#f7f2e9e6}.pageChanges{margin-top:28px}.markNote{text-overflow:ellipsis;white-space:nowrap;max-width:210px;overflow:hidden;color:var(--orange)!important}.modalBackdrop{z-index:70;-webkit-backdrop-filter:blur(10px);background:#00000047;place-items:center;padding:20px;display:grid;position:fixed;inset:0}.modalCard{background:#fffffff5;border:1px solid #fff9;border-radius:24px;width:min(520px,100%);max-height:min(760px,100vh - 40px);padding:28px;overflow-y:auto;box-shadow:0 24px 80px #00000038}.modalCard h2{letter-spacing:-.035em;margin:0;font-size:32px}.modalCard>div:first-child>p:last-child{color:var(--muted);margin:8px 0 22px}.modalActions{justify-content:flex-end;gap:9px;margin-top:22px;display:flex}.fileDownloadBackdrop{z-index:100}.fileDownloadCard header{justify-content:space-between;align-items:center;gap:12px;display:flex}.fileDownloadCard h2{font-size:24px}.downloadFilename{overflow-wrap:anywhere;border:1px solid var(--line);background:var(--surface-2);border-radius:12px;padding:14px;font-weight:600}.downloadMessage{overflow-wrap:anywhere;font-size:14px;line-height:1.6}.fileDownloadActions{gap:10px;margin-top:20px;display:grid}.fileDownloadActions button{width:100%;min-height:44px}.batchLeaveCard{width:min(680px,100%)}.temporaryScheduleCard{width:min(600px,100%)}.choiceGroup{border:0;margin:18px 0 0;padding:0}.choiceGroup legend{color:var(--muted);margin-bottom:8px;font-size:13px;font-weight:650}.choiceButtons{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;display:grid}.choiceButtons.threeChoices{grid-template-columns:repeat(3,minmax(0,1fr))}.choiceButtons button{border:1px solid var(--line);min-height:44px;color:var(--muted);background:var(--surface-2);cursor:pointer;border-radius:13px;font-size:14px;font-weight:650}.choiceButtons button.active{color:var(--text);background:var(--blue-soft);border-color:#a4743559;box-shadow:inset 0 0 0 1px #a4743514}.temporaryTimeGrid{background:var(--surface-2);border-radius:16px;grid-template-columns:64px 1fr auto 1fr;align-items:center;gap:8px;margin-top:14px;padding:14px;display:grid}.temporaryTimeGrid span{color:var(--text);font-size:13px;font-weight:650}.temporaryTimeGrid b{color:var(--muted);font-size:12px;font-weight:500}.temporaryTimeGrid input{min-width:0}.commonNoteRow{border-bottom:1px solid var(--line);grid-template-columns:1fr auto;align-items:end;gap:10px;padding-bottom:18px;display:grid}.rosterDownloadActions{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:8px;display:flex}.rosterFooter{color:var(--muted);font-variant-numeric:tabular-nums;margin:16px 0 8px;font-size:12px;line-height:1.6}.personalClubCard>.rosterFooter{margin:12px 16px}.exitedList{margin-top:16px}.exitedList article{border-bottom:1px solid var(--line);justify-content:space-between;gap:16px;padding:14px 0;display:flex}.exitedList article>div{gap:4px;min-width:0;display:grid}.exitedList article>div:last-child{text-align:right}.exitedList small,.exitedList span{color:var(--muted);font-size:14px}.batchLeaveList{max-height:min(380px,44vh);overflow-y:auto}.batchLeaveList label{border-bottom:1px solid var(--line);grid-template-columns:180px 1fr;align-items:center;gap:12px;padding:10px 2px}.batchLeaveList label>span{color:var(--text);font-size:16px}.batchLeaveList label small{color:var(--muted);margin-top:2px;font-size:12px;font-weight:500;display:block}.contactList{gap:10px;display:grid}.contactList>div{background:var(--bg);border-radius:14px;gap:5px;padding:14px 16px;display:grid}.contactList span{color:var(--muted);justify-content:space-between;gap:18px;font-size:14px;display:flex}.contactList a{min-height:40px;color:var(--blue);align-items:center;font-weight:650;text-decoration:none;display:inline-flex}.contactList em{font-style:normal}.tableRow strong small{color:var(--muted);font-size:12px;font-weight:500}.moreMenu{align-self:end;position:relative}.moreMenu summary{border:1px solid var(--line);background:var(--surface);cursor:pointer;letter-spacing:2px;border-radius:50%;place-items:center;width:42px;height:42px;line-height:1;list-style:none;display:grid}.moreMenu summary::-webkit-details-marker{display:none}.moreMenu[open] summary{color:var(--blue);background:var(--blue-soft)}.moreMenu>div{z-index:50;border:1px solid var(--line);-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);background:#fffdf8fa;border-radius:16px;width:220px;padding:7px;display:grid;position:absolute;top:calc(100% + 8px);right:0;box-shadow:0 18px 50px #362a1f29}.moreMenu>div>span{color:var(--muted);padding:8px 10px 4px;font-size:11px;font-weight:700}.moreMenu>div button{cursor:pointer;text-align:left;background:0 0;border:0;border-radius:10px;min-height:38px;padding:0 10px;font-size:14px}.moreMenu>div button:hover{background:var(--surface-2)}.moreMenu>div .dangerText{color:var(--red)}.teacherMore{margin-bottom:4px}.adminOverviewTop{grid-template-columns:minmax(210px,280px) 1fr auto;align-items:end;gap:14px;margin-top:20px;display:grid}.gradeFilter{background:#e2d9cfa6;border-radius:14px;align-items:center;gap:3px;min-height:50px;padding:4px;display:flex}.gradeFilter button{cursor:pointer;min-height:42px;color:var(--muted);white-space:nowrap;background:0 0;border:0;border-radius:11px;flex:1;padding:0 12px;font-size:14px;font-weight:600}.gradeFilter button.active{color:var(--text);background:var(--surface);box-shadow:0 1px 5px #36251e1a}.adminSummary{color:var(--muted);align-items:center;gap:22px;margin:20px 0 12px;padding:0 2px;font-size:14px;display:flex}.adminSummary strong{color:var(--text);font-size:19px}.adminSummary small{margin-left:auto}.periodProgressGrid{grid-template-columns:1fr 1fr;gap:12px;margin:20px 0 8px;display:grid}.periodProgressCard{border:1px solid var(--line);background:var(--surface);border-radius:20px;overflow:hidden}.periodProgressCard>summary{cursor:pointer;justify-content:space-between;align-items:center;gap:18px;min-height:92px;padding:18px 20px;list-style:none;display:flex}.periodProgressCard>summary::-webkit-details-marker{display:none}.periodProgressCard>summary span{gap:3px;display:grid}.periodProgressCard>summary strong{font-size:17px;font-weight:680}.periodProgressCard>summary small{color:var(--muted);font-size:12px}.periodProgressCard>summary>b{color:var(--text);letter-spacing:-.04em;font-variant-numeric:tabular-nums;font-size:30px;font-weight:650}.periodProgressCard>summary>b em{color:var(--muted);letter-spacing:0;font-size:16px;font-style:normal;font-weight:520}.disclosureDots{width:30px;height:30px;color:var(--muted);background:var(--surface-2);letter-spacing:1px;border-radius:50%;place-items:center;font-size:11px;font-style:normal;display:grid}.periodProgressCard[open]>summary{background:var(--surface-2)}.periodProgressCard>div{border-top:1px solid var(--line);padding:16px 20px 18px}.periodProgressCard>div header{justify-content:space-between;align-items:center;gap:14px;display:flex}.periodProgressCard>div header strong{font-size:13px}.periodProgressCard>div header button{min-height:34px;color:var(--blue);background:var(--blue-soft);cursor:pointer;border:0;border-radius:999px;padding:0 12px;font-size:12px;font-weight:650}.periodProgressCard>div p{color:var(--muted);margin:12px 0 0;font-size:13px;line-height:1.75}.comparisonTable{border:1px solid var(--line);background:var(--surface);border-radius:20px;overflow:visible}.comparisonTable>header,.comparisonTable>article{grid-template-columns:minmax(220px,1.4fr) minmax(130px,.8fr) minmax(130px,.8fr) minmax(140px,.8fr) 54px;align-items:center;gap:14px;padding:12px 18px;display:grid}.comparisonTable>header{color:var(--muted);background:var(--surface-2);border-radius:20px 20px 0 0;font-size:12px;font-weight:650}.comparisonTable>header span:last-child{text-align:center}.comparisonTable>header>button,.mobileAttendanceSort>button{color:var(--muted);font:inherit;text-align:left;cursor:pointer;background:0 0;border:0;border-radius:10px;gap:3px;padding:6px 9px;display:grid}.comparisonTable>header>button.active,.mobileAttendanceSort>button.active{color:var(--blue);background:var(--blue-soft)}.comparisonTable>header>button small,.mobileAttendanceSort>button small{font-size:11px;font-weight:400}.mobileAttendanceSort{display:none}.comparisonTable>article{border-top:1px solid var(--line);min-height:78px}.comparisonTable>article:nth-child(2){border-top:0}.comparisonClub strong,.comparisonClub small{display:block}.comparisonClub strong{font-size:16px;font-weight:650}.comparisonClub small{color:var(--muted);margin-top:3px;font-size:12px}.attendanceMark{width:100%;color:inherit;text-align:left;cursor:pointer;background:0 0;border:0;grid-template-columns:28px 1fr;align-items:center;column-gap:8px;padding:0;display:grid}.attendanceMark>em{font-style:normal;display:none}.attendanceMark>b{width:28px;height:28px;color:var(--muted);background:var(--bg);border-radius:50%;grid-row:1/3;place-items:center;font-size:16px;display:grid}.attendanceMark.done>b{color:#fff;background:var(--green)}.attendanceMark small{min-width:0;color:var(--text);text-overflow:ellipsis;white-space:nowrap;font-size:13px;overflow:hidden}.attendanceMark time{color:var(--muted);font-variant-numeric:tabular-nums;font-size:11px}.absenceSummary{color:var(--muted);cursor:pointer;white-space:nowrap;background:0 0;border:0;align-items:baseline;gap:5px;padding:0;font-size:12px;display:flex}.absenceSummary b{color:var(--text);font-size:16px}.attendanceMark:hover small,.absenceSummary:hover{color:var(--blue)}.adminRosterModal{max-width:680px}.adminRosterList{overscroll-behavior:contain;border:1px solid var(--line);-webkit-overflow-scrolling:touch;border-radius:16px;height:min(480px,52vh);min-height:180px;overflow-y:auto}.adminRosterList article{border-top:1px solid var(--line);justify-content:space-between;align-items:center;gap:18px;padding:11px 14px;display:flex}.adminRosterList article:first-child{border-top:0}.adminRosterList article>span:last-child{text-align:right}.adminRosterList strong,.adminRosterList small,.adminRosterList b{display:block}.adminRosterList strong{font-size:15px}.adminRosterList b{font-size:13px}.adminRosterList small{color:var(--muted);margin-top:2px;font-size:11px}.adminRosterList article.leave b{color:var(--orange)}.adminRosterList article.absent b{color:var(--red)}.clubMore{place-self:center}.clubMore>div{width:290px;max-height:min(560px,72vh);padding:6px;overflow-y:auto}.menuGroup{border-top:1px solid var(--line);padding:11px}.menuGroup:first-child{border-top:0}.menuGroup header{justify-content:space-between;align-items:baseline;gap:12px;margin-bottom:8px;display:flex}.menuGroup header strong{font-size:14px;font-weight:680}.menuGroup header small{color:var(--muted);font-size:11px}.menuGroup>div{grid-template-columns:1fr 1fr;gap:5px;display:grid}.menuGroup>div button{min-height:36px;color:var(--text);background:var(--surface-2);cursor:pointer;text-align:center;border:0;border-radius:9px;padding:0 9px;font-size:12px}.menuGroup>div button:hover{background:var(--blue-soft)}.menuGroup>.menuContact{width:100%;min-height:38px;color:var(--blue);background:var(--blue-soft);text-align:left;cursor:pointer;border:0;border-radius:9px;justify-content:space-between;align-items:center;margin:0 0 8px;padding:8px 10px;font-size:12px;display:flex}.contactHeading{color:var(--muted);margin:18px 0 12px;font-size:14px}.attendanceGroup>div button:last-child{grid-column:1/-1}.adminDisclosure{border:1px solid var(--line);background:var(--surface);border-radius:18px;margin-top:16px}.adminDisclosure>summary{cursor:pointer;justify-content:space-between;align-items:center;gap:12px;padding:17px 20px;list-style:none;display:flex}.adminDisclosure>summary::-webkit-details-marker{display:none}.adminDisclosure>summary span{font-weight:650}.adminDisclosure>summary small{color:var(--muted)}.adminDisclosure .historyCard{border:0;border-top:1px solid var(--line);border-radius:0 0 18px 18px;margin:0}button:not(:disabled),summary,a{transition:transform .12s,box-shadow .12s,filter .12s,background-color .12s}button:not(:disabled):active,summary:active,a:active{filter:brightness(.96);transform:scale(.975);box-shadow:inset 0 2px 7px #362a1f24}.managerRow:active,.studentRowMain:not(:disabled):active,.linkedStudentList>button:active,.moreMenu>div button:active{background:var(--blue-soft)}.toast{z-index:60;max-width:min(520px,100% - 32px);color:var(--text);-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);text-align:center;background:#fffdf8f0;border:1px solid #8a67363d;border-radius:16px;padding:13px 17px;font-size:14px;font-weight:600;position:fixed;bottom:28px;left:50%;transform:translate(-50%);box-shadow:0 14px 40px #34261224}@media (max-width:860px){.five{grid-template-columns:1.5fr 1fr 1fr .8fr .7fr;min-width:760px}.tableCard{overflow-x:auto}.comparisonTable>header,.comparisonTable>article{grid-template-columns:minmax(180px,1.2fr) minmax(120px,.8fr) minmax(120px,.8fr) minmax(125px,.7fr) 48px}.managerLayout{grid-template-columns:1fr}.managerList{max-height:520px}}@media (max-width:680px){body,input,select,textarea{font-size:16px}.topbar{min-height:60px;padding:8px 15px}.wordmark:before{width:28px;height:34px}.wordmark small{display:none}.pageShell,.narrowPage,.narrowSetup{width:min(100% - 28px,1180px);padding:42px 0 72px}.landing{padding-top:58px}.simpleLanding{padding-top:82px}.intro h1{font-size:44px}.introText{margin-top:20px;font-size:18px}.entryGrid,.metricGrid,.overviewMetrics{grid-template-columns:1fr}.entryGrid{margin-top:42px}.entryCard{min-height:108px;padding:20px}.entryCard strong{font-size:19px}.scheduleGrid{grid-template-columns:1fr}.scheduleGrid article{min-height:82px}.facts{grid-template-columns:1fr;gap:0}.facts>div,.facts>div:first-child{border:0;border-top:1px solid var(--line);padding:14px 0}.facts>div:first-child{border-top:0}.pageHeading{margin-bottom:28px}.pageHeading h1{font-size:38px}.pageHeading>div{font-size:17px}.loginCard,.sessionPanel,.dataGuide{padding:22px}.rosterShortcut{align-items:stretch;padding:16px}.rosterShortcut button{flex:none}.personalClubGrid{grid-template-columns:repeat(2,minmax(0,1fr));gap:7px}.personalGradeColumn{scrollbar-gutter:auto;height:62vh}.personalClubCard{border-radius:16px}.personalClubCard>header{align-items:flex-start;gap:6px;padding:12px 10px}.personalClubCard h2{font-size:15px;line-height:1.25}.personalClubCard>header>div>strong{font-size:11px}.personalClubCard>header>button{min-height:32px;padding:0 9px;font-size:11px}.personalStudentGrid{grid-template-columns:1fr;padding:5px 7px}.personalStudent{padding:8px 40px 8px 5px}.personalStudentGrid b{font-size:14px}.personalGradeEmpty{min-height:140px;padding:10px}.controlPanel,.adminToolbar,.statsToolbar,.managerFilters,.managerFilters.singleFilter,.editorFields,.exportFields{grid-template-columns:1fr}.detailGrid{grid-template-columns:1fr;padding:16px}.detailGrid .detailWide{grid-column:auto}.detailHeader{min-height:82px;padding:16px}.detailHeader h2{font-size:22px}.editorActions{grid-template-columns:1fr 1fr;margin:0 16px 18px;display:grid}.adminDetailModal{max-height:calc(100vh - 24px);overflow-y:auto}.adminDetailModal .detailView,.adminDetailModal>form{max-height:none;overflow:visible}.privateReminder{gap:4px;display:grid}.listHeader{align-items:start}.listActions{justify-items:end;display:grid}.rosterTableHeader{display:none}.studentGrid{gap:5px}.studentRowMain{border-radius:14px;grid-template-columns:minmax(0,1fr) auto;gap:8px;min-height:48px;padding:6px 50px 6px 11px}.studentIdentity{min-width:0}.studentIdentity strong{margin:0;font-size:17px}.studentIdentity small{margin-top:1px;font-size:11px;display:block}.studentIdentity small i,.studentClub,.studentLocation,.rowState em{display:none}.rowState{grid-column:2;align-self:center}.rowState b{padding:6px 9px;font-size:12px}.moreMenu.studentInfoMenu{z-index:5;display:block;position:absolute;top:calc(50% - 16px);right:7px;transform:none}.studentRow:has(.studentInfoMenu[open]){z-index:60}.studentInfoMenu[open]{z-index:60}.studentInfoMenu summary{background:0 0;border:0;width:32px;height:32px}.studentInfoMenu>.studentInfoPanel{width:calc(100vw - 32px);max-height:min(70vh,560px);padding:16px;position:fixed;top:50%;left:16px;right:16px;transform:translateY(-50%)}.studentInfoPanel>strong{margin-bottom:12px;font-size:19px}.studentInfoPanel dl{gap:9px;margin:0;display:grid}.studentInfoPanel dl>div{grid-template-columns:78px minmax(0,1fr);align-items:start;gap:10px;display:grid}.studentInfoPanel dt,.studentInfoPanel dd{margin:0;font-size:12px}.studentInfoPanel dt{color:var(--muted)}.studentInfoPanel dd{color:var(--text);overflow-wrap:anywhere}.incidentList article{grid-template-columns:1fr}.incidentActions{justify-content:stretch}.incidentActions button{flex:1}.sessionTitle{display:grid}.sessionFields{grid-template-columns:1fr}.wideField{grid-column:auto}.segmented{width:100%}.segmented button{flex:1;padding:0 8px}.tableHeader,.tableRow{min-width:620px}.three{min-width:520px}.dataGuide li{grid-template-columns:1fr;gap:4px}.cornerButton{min-height:36px;padding:0 10px;font-size:13px}.topActions{gap:5px}.managerRow{padding:12px 14px}.classManagerRow>span{max-width:62%;font-size:12px}.exportActions{display:grid}.backupList article{gap:10px;padding:12px}.backupList article>span{min-width:0}.backupList article>span strong{text-overflow:ellipsis;white-space:nowrap;font-size:13px;display:block;overflow:hidden}.backupActions{gap:4px}.backupList article button{white-space:nowrap;min-width:52px;padding:0 9px}.adminOverviewTop{grid-template-columns:1fr auto}.gradeFilter{grid-area:2/1/auto/-1;overflow-x:auto}.gradeFilter button{padding:0 9px}.adminSummary{flex-wrap:wrap;gap:8px 18px}.adminSummary small{width:100%;margin-left:0}.periodProgressGrid{grid-template-columns:1fr}.periodProgressCard>summary{min-height:78px;padding:15px 17px}.comparisonTable{background:0 0;border:0;gap:9px;display:grid}.comparisonTable>header{display:none}.mobileAttendanceSort{grid-template-columns:1fr 1fr;gap:8px;margin:16px 0 10px;display:grid}.mobileAttendanceSort>button{background:var(--surface);padding:10px 12px;font-size:13px}.comparisonTable>article{background:var(--surface);border-radius:17px;grid-template-columns:1fr 1fr auto;gap:8px;min-height:0;margin:0;padding:13px;border:1px solid var(--line)!important}.comparisonClub{grid-column:1/3}.comparisonClub strong{font-size:15px}.clubMore{grid-area:1/3;align-self:start}.clubMore summary{width:36px;height:36px}.clubMore>div{width:min(300px,100vw - 42px)}.attendanceMark{background:var(--surface-2);border-radius:13px;grid-template-columns:25px minmax(0,1fr);column-gap:7px;min-width:0;padding:9px}.attendanceMark>em{color:var(--muted);grid-column:1/-1;margin-bottom:4px;font-size:11px;font-weight:650;display:block}.attendanceMark>b{grid-row:2/4;width:25px;height:25px;font-size:14px}.attendanceMark small{font-size:12px}.attendanceMark time{font-size:10px}.absenceSummary{border-top:1px solid var(--line);grid-column:1/-1;padding-top:8px}.dayMore>div,.teacherMore>div{right:0}.floatingSave{right:14px;bottom:max(14px, env(safe-area-inset-bottom));min-height:50px;padding:0 19px}.toast{bottom:76px}.modalBackdrop{align-items:end;padding:12px}.modalCard{border-radius:24px;width:100%;max-height:calc(100vh - 24px);padding:22px}.modalActions{grid-template-columns:1fr;display:grid}.modalActions button{width:100%}.choiceButtons.threeChoices{grid-template-columns:1fr}.temporaryTimeGrid{grid-template-columns:56px 1fr auto 1fr;padding:12px}.commonNoteRow,.batchLeaveList label{grid-template-columns:1fr}.commonNoteRow button{width:100%}.historyList>div{grid-template-columns:58px 1fr auto;gap:10px}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition:none!important}}.notice{border:1px solid var(--line);background:var(--blue-soft);color:var(--text);overflow-wrap:anywhere;border-radius:14px;margin-block:12px;padding:14px 18px;font-size:15px}.notice .textButton{margin-left:12px}.loadingRecovery{z-index:100;border:1px solid var(--line);background:var(--surface);color:var(--text);text-align:center;border-radius:16px;padding:16px;position:fixed;bottom:20px;left:16px;right:16px}.loadingRecovery[hidden]{display:none}.loadingRecovery a{color:var(--accent);margin-left:12px;text-decoration:underline}.workspace .clubMain{cursor:default;padding-right:64px}.workspace .clubMain strong{overflow-wrap:anywhere;padding-right:0}.clubPeriodActions{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;padding:0 14px 14px;display:grid}.clubPeriodActions button{border:1px solid var(--line);background:var(--surface);text-align:left;cursor:pointer;border-radius:12px;gap:6px;min-width:0;padding:12px 10px;display:grid}.clubPeriodActions b{font-size:15px;font-weight:600}.clubPeriodActions span{color:var(--muted);font-size:13px}.clubPeriodActions small{color:var(--muted);white-space:normal;font-size:12px}.clubPeriodActions .open span,.clubPeriodActions .done span{color:var(--blue)}.clubPeriodActions .soon{background:var(--orange-soft);border-color:#a05a004d}.clubPeriodActions .soon span{color:var(--orange);font-weight:600}.clubPeriodActions button:active{background:var(--blue-soft);transform:scale(.98)}.attendancePage .controlPanel.compactControls{background:0 0;border:0;flex-wrap:wrap;gap:8px;padding:0;display:flex}.compactControls .dateField{width:min(260px,100%)}.attendancePage .pageHeading .rosterDate{color:var(--muted);margin:0 0 6px;font-size:13px}.attendancePage .pageHeading>p{border:1px solid var(--line);background:var(--surface-2);color:var(--text);border-radius:16px;gap:8px;margin-bottom:18px;padding:14px 16px;font-size:14px;font-weight:400;display:grid}.attendanceContextLine{justify-content:space-between;align-items:baseline;gap:12px;display:flex}.attendancePage .attendanceDate{color:var(--muted);font-size:inherit;font-weight:400}.attendanceSessionLine{white-space:nowrap;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr) auto minmax(0,1fr);align-items:baseline;gap:6px;display:grid}.attendanceSessionLine .attendanceDate,.attendancePeriod{text-align:center}.attendanceSeparator{color:var(--muted);text-align:center}.attendanceEnd{text-align:center;font-weight:500}.attendanceReminder{border-top:1px solid var(--line);color:var(--muted);text-align:center;padding-top:8px;font-size:13px}.rosterChangeBadge{border:1px solid var(--line);background:var(--surface-2);color:var(--muted);vertical-align:baseline;border-radius:6px;margin-right:2px;padding:2px 6px;font-size:11px;line-height:1.5;display:inline-block}.studentContactGroups{gap:10px;margin:16px 0;display:grid}.studentContactGroups>section,.studentInfoPanel>.teacherContacts{border:1px solid var(--line);background:var(--surface-2);border-radius:14px;padding:12px}.studentContactGroups h3{color:var(--muted);margin:0 0 8px;font-size:13px;font-weight:500}.studentInfoPanel>.teacherContacts{margin:10px 0}.attendancePage .compactControls>button{flex:1;min-width:0}.attendancePage .compactControls .dateField{flex-basis:100%;width:100%}.attendanceRosterBlock{border:1px solid var(--line);background:var(--surface-2);border-radius:22px;padding:16px}.attendanceRosterBlock .periodTabs{margin:0 0 12px}.attendanceRosterBlock .compactControls{margin-bottom:16px}.attendanceRosterBlock .listHeader{align-items:center;margin:0 0 12px}.attendanceRosterBlock .listHeader h2{font-size:20px}.attendanceRosterBlock .listHeader p{font-size:13px}.attendanceRosterBlock .listActions{margin:0 0 12px}.attendanceRosterBlock .listActions:empty{display:none}.attendanceRosterBlock .rosterFooter{margin:12px 0 0;font-size:11px}input[type=checkbox]{border:1px solid var(--line);-webkit-appearance:none;appearance:none;background:var(--surface);cursor:pointer;border-radius:6px;flex:0 0 20px;place-content:center;width:20px;height:20px;min-height:20px;padding:0;display:grid;box-shadow:0 1px 3px #362a1f1f}input[type=checkbox]:checked{border-color:var(--blue);background:var(--blue)}input[type=checkbox]:checked:after{content:"";border:2px solid #fff;border-width:0 2px 2px 0;width:5px;height:10px;margin-top:-3px;transform:rotate(45deg)}input[type=checkbox]:disabled{opacity:.5;cursor:not-allowed}.directoryRosters header{grid-template-columns:minmax(0,1fr);gap:12px;display:grid}.rosterDownloadButton{border:1px solid var(--line);width:100%;min-height:40px;color:var(--blue);background:var(--surface);text-align:center;cursor:pointer;border-radius:12px;padding:8px;font-size:14px;box-shadow:0 2px 5px #362a1f0f}.managerList{-webkit-mask-image:-webkit-radial-gradient(#fff,#000)}.staffVisibility .visibilityRows{border-radius:14px;padding:2px}.attendancePage .pageHeading .teacherContacts{max-width:360px;margin-top:14px}.rosterDisclosure>summary{cursor:pointer;min-height:44px;list-style:none}.rosterDisclosure>summary::-webkit-details-marker{display:none}.pageChanges>summary::-webkit-details-marker{display:none}.rosterContacts>summary::-webkit-details-marker{display:none}.rosterDisclosure>summary:after{content:"⌄";color:var(--muted);margin-left:auto}.rosterDisclosure:not([open])>summary:after{content:"›"}.attendancePage .pageChanges{overflow:visible}.pageChanges>summary{padding:14px 18px}.pageChanges[open]>summary{border-bottom:1px solid var(--line);margin-bottom:0}.pageChanges .compactSession{margin:12px 18px;padding:14px}.historyList .historyEntry{grid-template-columns:64px minmax(0,1fr) auto auto;gap:8px}.historyEntry p{overflow-wrap:anywhere;min-width:0}.historyEntry .moreMenu{align-self:start}.historyEntry time{font-size:12px}.historyMore>summary{width:32px;height:32px}.directoryRosters>section{padding-bottom:10px}.directoryRosters .rosterFooter{margin:0;padding:10px 16px;font-size:11px}.rosterContacts{margin:0 14px 10px}.rosterContacts>summary{cursor:pointer;min-height:40px;color:var(--muted);justify-content:space-between;align-items:center;font-size:13px;list-style:none;display:flex}.rosterContacts>summary:after{content:"⌄"}.rosterContacts .contactGrid{padding:8px 0}.rosterList{border:1px solid var(--line);background:var(--surface-2);border-radius:16px;overflow-y:auto;-webkit-mask-image:-webkit-radial-gradient(#fff,#000)}.directoryStudentList.rosterList{margin:0 12px;padding:8px}.rosterList .rosterListRow{border:1px solid var(--line);background:var(--surface);text-align:left;border-radius:11px;grid-template-columns:minmax(0,1fr) auto auto;align-items:center;gap:10px;min-width:0;margin:0 0 6px;padding:10px 12px;display:grid}.rosterList .rosterListRow:last-child{margin-bottom:0}.rosterListRow>span,.rosterListRow>b{overflow-wrap:anywhere;min-width:0}.rosterList .rosterListRow b,.rosterList .rosterListRow strong{font-size:15px}.rosterList .rosterListRow small{color:var(--muted);font-size:12px}.adminRosterList.rosterList{padding:8px}.adminRosterList .rosterListRow{grid-template-columns:minmax(0,1fr) minmax(0,auto)}.adminRosterList .rosterListRow.leave{background:var(--orange-soft)}.adminRosterList .rosterListRow.absent{background:var(--red-soft)}.adminRosterModal h2,.adminRosterModal .kicker{overflow-wrap:anywhere;min-width:0}.comparisonClub{min-width:0}.comparisonClub strong,.comparisonClub small{overflow-wrap:anywhere}.adminRosterModal{overflow:hidden}.backupList .sectionTitle{flex-wrap:wrap;gap:8px}.backupList .sectionTitle h3{flex:1;min-width:150px}.olderBackups>summary{cursor:pointer;color:var(--muted);padding:14px 0;font-size:14px}@media (max-width:600px){.modalCard.workspaceModal:has(.directoryRosters){padding:16px}.workspaceModal:has(.directoryRosters) .detailHeader{top:-16px}.directoryRosters{gap:8px}.directoryRosters header{align-items:flex-start;min-height:78px;padding:12px 10px}.directoryRosters h3{overflow-wrap:anywhere;font-size:15px;line-height:1.4}.directoryRosters .rosterFooter{min-height:54px;padding:8px 10px}.directoryRosters .rosterContacts{margin:0 8px 8px}.directoryRosters .rosterContacts>summary{font-size:12px}.directoryStudentList.rosterList{margin:0 8px;padding:6px}.directoryStudentList.rosterList .rosterListRow{grid-template-columns:minmax(0,1fr) 24px;gap:3px 4px;padding:8px}.directoryStudentList .rosterListRow>b{white-space:nowrap;text-overflow:ellipsis;font-size:15px;overflow:hidden}.directoryStudentList .rosterListRow>small{grid-column:1;font-size:11px}.directoryStudentList .rosterListRow>span{grid-area:1/2/3;align-self:center;font-size:12px}.topbar{flex-wrap:wrap;gap:4px 8px}.topActions{flex:none;max-width:100%;margin-left:auto}.attendancePage{padding-top:28px}.attendancePage .pageHeading{margin-bottom:18px}.attendancePage .pageHeading>p{margin-bottom:10px;font-size:13px}.attendanceReminder{font-size:12px}.attendancePage .pageHeading h1{letter-spacing:-.02em;font-size:28px;line-height:1.2}.attendancePage .pageHeading>div{margin-top:10px;font-size:15px}.controlPanel.compactControls{grid-template-columns:minmax(0,1fr) auto;gap:8px;padding:14px}.compactControls .secondaryButton,.compactControls .textButton{min-height:42px;padding:8px 12px;font-size:14px}}.reportFilters{grid-template-columns:92px minmax(0,1fr) 120px 150px;min-width:0;display:grid}.workspaceFilters.reportFilters select,.workspaceFilters.reportFilters input{box-sizing:border-box;text-overflow:ellipsis;width:100%;min-width:0;max-width:100%;overflow:hidden}.schoolAlerts.embeddedAlerts{max-width:100%;margin:0 0 24px;padding:0}.confirmationChoices{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;display:grid}.confirmationChoices button{border:1px solid var(--line);background:var(--surface-2);min-height:44px;color:var(--text);cursor:pointer;border-radius:12px;padding:10px;font-size:15px}.confirmationChoices button.selected{border-color:var(--blue);background:var(--blue-soft);box-shadow:0 2px 6px #32281414}.durationInput{align-items:center;gap:10px;min-width:0;display:flex}.durationInput input{flex:1;min-width:0}.durationInput>span{color:var(--muted);flex-shrink:0;font-size:14px}.studentRow.reported{background:var(--blue-soft);border-color:var(--line)}.studentRow.reported .rowState b{color:var(--blue)}.studentRow,.studentRowMain,.directoryStudentList button{box-sizing:border-box;min-width:0;max-width:100%}.directoryStudentList button b,.directoryStudentList button small{text-overflow:ellipsis;min-width:0;overflow:hidden}.directoryStudentList button>span{text-align:center;justify-self:end;width:32px}.classQuickGrid .entryRow span{flex-shrink:0}@media (max-width:640px){.classQuickGrid{grid-template-columns:1fr}.workspaceFilters.reportFilters{grid-template-columns:92px minmax(0,1fr)}.reportFilters select:first-child{grid-area:1/1}.reportFilters select:nth-of-type(2){grid-area:1/2}.reportFilters input{grid-column:1/-1}.reportFilters input[type=search]{grid-row:2}.directoryStudentList button{grid-template-columns:minmax(0,1fr) 32px}}
