:root{color:#202a2c;font-synthesis:none;letter-spacing:0;-webkit-font-smoothing:antialiased;background:#f6f8f7;font-family:Noto Sans SC,Microsoft YaHei,system-ui,sans-serif;font-size:14px}*{box-sizing:border-box}body{min-width:320px;margin:0}button,input,select,textarea{font:inherit;letter-spacing:0}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.6}button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline-offset:2px;outline:2px solid #1b7773}h1,h2,p{margin:0}#root{min-height:100svh}.teacher-heading,.teacher-row{grid-template-columns:minmax(220px,1fr) minmax(155px,.35fr) 126px minmax(130px,.3fr) 130px;align-items:center;gap:18px;display:grid}.teacher-heading{color:#646a73;background:#f8fafd;padding:12px 18px;font-size:12px}.teacher-row{background:#fff;border-bottom:1px solid #e5e9f0;min-height:80px;padding:14px 18px}.teacher-name{align-items:center;gap:12px;min-width:0;display:flex}.teacher-name img{object-fit:cover;background:#e5e9f0;border-radius:4px;flex:none;width:46px;height:46px}.teacher-name .teacher-avatar-placeholder{color:#3c4b4c;background:#e5e9f0;border-radius:4px;flex:none;place-items:center;width:46px;height:46px;font-weight:600;display:grid}.teacher-name div{gap:3px;min-width:0;display:grid}.teacher-name strong,.teacher-name span,.teacher-name small,.teacher-account{overflow-wrap:anywhere}.teacher-name span,.teacher-name small{color:#1f2329}.teacher-name .teacher-alert{color:#a33b36;font-weight:600}.teacher-row select{color:#202a2c;background:#fff;border:1px solid #e5e9f0;border-radius:4px;width:100%;min-width:0;padding:8px}.teacher-order{justify-content:space-between;align-items:center;gap:3px;display:flex}.teacher-order strong{text-align:center;min-width:22px}.teacher-account{color:#1f2329}.teacher-actions{flex-wrap:wrap;gap:6px;display:flex}.teacher-archive-filter{align-items:center;gap:8px;margin:0 0 16px;font-size:14px;display:flex}.teacher-name .teacher-archived-label{color:#765b30;font-weight:600}.teacher-form label{min-width:0}.teacher-form input[readonly]{color:#1f2329;background:#f8fafd}.dialog.teacher-dialog{width:min(100%,680px);max-height:90svh}.teacher-form{grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;display:grid}.teacher-form-wide{grid-column:1/-1}.teacher-course-options{border:1px solid #e5e9f0;border-radius:4px;min-width:0;margin:0;padding:12px}.teacher-course-options label{overflow-wrap:anywhere;align-items:center;gap:8px;margin:8px 0;display:flex}.teacher-course-options input[type=checkbox]{flex:none;width:18px;height:18px}.teacher-media-previews{flex-wrap:wrap;gap:12px;margin:8px 0;display:flex}.teacher-media-preview{width:160px;max-width:100%}.teacher-media-preview img,.teacher-media-preview video{object-fit:contain;background:#f8fafd;border-radius:4px;width:100%;height:120px;display:block}.teacher-form .content-upload{overflow-wrap:anywhere}@media (max-width:950px){.teacher-heading{display:none}.teacher-row{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.teacher-name{grid-column:1/-1}.teacher-row [data-label]:before{color:#646a73;content:attr(data-label);margin-bottom:5px;font-size:12px;display:block}.teacher-actions:before{flex-basis:100%}}@media (max-width:600px){.teacher-form,.teacher-row{grid-template-columns:minmax(0,1fr)}.teacher-form-wide,.teacher-name{grid-column:1}.teacher-order{justify-content:flex-start}}.dialog.schedule-dialog{width:min(790px,100vw - 32px);max-height:94svh}.schedule-embedded{background:#fff;width:100%;max-height:none}.schedule-embedded>header{border-bottom:1px solid #e1eae7;padding:14px 18px}.schedule-embedded .weekly-scroll,.schedule-embedded .dated-scroll{max-height:none}.schedule-embedded .schedule-cell:disabled{cursor:default;opacity:1}.schedule-title{align-items:center;gap:10px;display:flex}.schedule-title h2{font-size:20px}.schedule-actions{flex-wrap:wrap;align-items:center;gap:10px;padding:14px 18px;display:flex}.schedule-modes{border:1px solid #cbd7d5;border-radius:4px;display:inline-flex;overflow:hidden}.schedule-modes button{color:#41524e;cursor:pointer;background:#fff;border:0;padding:8px 13px}.schedule-modes button[aria-selected=true]{color:#fff;background:#265c4f}.schedule-date{color:#52615f;align-items:center;gap:7px;font-size:13px;display:flex}.schedule-date input{color:#202a2c;border:1px solid #cbd7d5;border-radius:4px;min-width:0;padding:7px}.schedule-actions>.icon-button{margin-left:auto}.schedule-key{color:#52615f;flex-wrap:wrap;gap:14px;padding:0 18px 12px;font-size:12px;display:flex}.schedule-key span{align-items:center;gap:6px;display:inline-flex}.schedule-color{border:1px solid #cbd7d5;border-radius:2px;width:12px;height:12px;display:inline-block}.schedule-color.open{background:#77b099}.schedule-color.closed{background:#e5ebe9}.schedule-color.occupied{background:#1a726e}.schedule-color.blocked{background:#dcaaa5}.schedule-dialog>.banner-error{margin:0 18px 10px}.weekly-scroll,.dated-scroll{max-height:min(64svh,640px);padding:0 18px 18px;overflow:auto}.weekly-grid{grid-template-columns:68px repeat(7,minmax(62px,1fr));min-width:570px;display:grid}.schedule-time-head,.schedule-day-head{z-index:2;text-align:center;color:#364843;background:#eff4f2;padding:9px 4px;font-size:12px;position:sticky;top:0}.weekly-grid-row{display:contents}.schedule-time{text-align:center;color:#52615f;border-bottom:1px solid #e1eae7;font-size:12px;line-height:30px}.schedule-cell{touch-action:none;cursor:crosshair;background:#e5ebe9;border:1px solid #d2ded9;border-radius:3px;place-self:center;width:calc(100% - 5px);height:26px;display:block}.schedule-cell.is-open{background:#77b099;border-color:#42856b}.schedule-cell:hover:not(:disabled),.schedule-cell:focus-visible{outline-offset:1px;outline:2px solid #2e6557}.schedule-cell:disabled,.dated-cell:disabled{cursor:not-allowed}.dated-grid{grid-template-columns:repeat(6,minmax(95px,1fr));gap:7px;display:grid}.dated-cell{cursor:pointer;text-align:center;color:#364843;background:#e5ebe9;border:1px solid #cbd7d5;border-radius:4px;align-content:center;gap:3px;min-height:55px;padding:6px;display:grid}.dated-cell strong{font-size:14px}.dated-cell span{font-size:11px}.dated-cell.is-open{background:#b4d7c3;border-color:#77b099}.dated-cell.is-occupied{color:#fff;background:#1a726e;border-color:#1a726e}.dated-cell.is-blocked{background:#f3dbd8;border-color:#dcaaa5}.dated-cell:hover:not(:disabled),.dated-cell:focus-visible{outline-offset:1px;outline:2px solid #2e6557}@media (max-width:600px){.schedule-dialog{max-height:100svh}.dated-grid{grid-template-columns:repeat(3,minmax(80px,1fr))}.schedule-actions>.icon-button{margin-left:0}}.content-page,.content-article,.content-announcements{color:#25332c;min-width:0}.content-page *,.content-article *,.content-announcements *{box-sizing:border-box;letter-spacing:0}.content-toolbar,.content-toolbar>div,.content-actions,.content-dialog header{flex-wrap:wrap;align-items:center;gap:12px;display:flex}.content-toolbar{justify-content:space-between;margin-bottom:20px}.content-toolbar h1{margin:0;font-size:24px}.content-page button,.content-announcements button,.content-upload button,.content-dialog button,.content-actions a{color:#1f2329;cursor:pointer;min-height:38px;font:inherit;background:#fff;border:1px solid #e5e9f0;border-radius:6px;justify-content:center;align-items:center;gap:8px;padding:8px 12px;text-decoration:none;display:inline-flex}.content-page button:disabled,.content-upload button:disabled{opacity:.55;cursor:wait}.content-page button:hover:not(:disabled),.content-announcements button:hover{background:#f8fafd}.content-page button:focus-visible,.content-page input:focus-visible,.content-page textarea:focus-visible,.content-page select:focus-visible,.content-dialog button:focus-visible{outline-offset:3px;outline:2px solid #2563eb}.content-page svg,.content-announcements svg,.content-upload svg{flex-shrink:0}.content-workspace{grid-template-columns:minmax(220px,1fr) minmax(0,2fr);gap:28px;display:grid}.content-list{border-right:1px solid #e5e9f0;padding-right:20px}.content-list ul,.content-announcements ul{margin:16px 0;padding:0;list-style:none}.content-list li,.content-announcements li{border-bottom:1px solid #e5e9f0}.content-list li button,.content-announcements li button{text-align:left;border:0;border-radius:0;justify-content:space-between;width:100%;padding:14px 8px}.content-list li button[aria-current=true]{background:#f8fafd;border-left:3px solid #2563eb}.content-list strong,.content-list small{overflow-wrap:anywhere;display:block}.content-list small{color:#646a73;margin-top:6px;font-size:12px}.content-page label{gap:6px;font-size:14px;display:grid}.content-page input,.content-page select,.content-page textarea{color:#25332c;width:100%;min-width:0;font:inherit;background:#fff;border:1px solid #e5e9f0;border-radius:5px;padding:9px 10px}.content-page textarea{resize:vertical;font-family:ui-monospace,monospace;font-size:14px;line-height:1.5}.content-editor fieldset{border:0;gap:18px;min-width:0;margin:0;padding:0;display:grid}.content-fields{grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;display:grid}.content-page .content-check{align-items:center;display:flex}.content-check input{width:18px;height:18px}.content-error,.content-upload [role=alert],.content-announcements [role=alert]{color:#a12835;overflow-wrap:anywhere}.content-preview{border-top:1px solid #e5e9f0;margin-top:28px;padding-top:16px}.content-preview h2,.content-announcements h2,.content-dialog h2{font-size:18px}.content-body{overflow-wrap:anywhere;line-height:1.65}.content-body img,.content-body video{max-width:100%;height:auto;display:block}.content-body pre{white-space:pre-wrap;max-width:100%}.content-body h2{font-size:22px}.content-body h3{font-size:19px}.content-body h4{font-size:17px}.content-article{max-width:780px;margin:32px auto;padding:0 20px}.content-article h1{overflow-wrap:anywhere;font-size:28px}.content-dialog{color:#25332c;background:#fff;border:1px solid #cad4ce;border-radius:8px;width:min(680px,100% - 32px);max-height:calc(100dvh - 48px);padding:24px;overflow:auto}.content-dialog::backdrop{background:#0c191273}.content-dialog header{flex-wrap:nowrap;justify-content:space-between;align-items:flex-start}.content-dialog header h2{overflow-wrap:anywhere;min-width:0;margin:6px 0 20px}.content-dialog footer{justify-content:flex-end;margin-top:24px;display:flex}.content-announcements li span{overflow-wrap:anywhere;min-width:0}.content-upload{justify-items:start;gap:8px;display:grid}.content-upload-result img,.content-upload-result video{object-fit:contain;width:240px;max-width:100%;max-height:180px}@media (max-width:760px){.content-workspace{grid-template-columns:minmax(0,1fr);gap:20px}.content-list{border-bottom:1px solid #e5e9f0;border-right:0;padding:0 0 16px}.content-fields{grid-template-columns:minmax(0,1fr)}.content-dialog{padding:16px}}.rich-editor{background:#fff;border:1px solid #e5e9f0;border-radius:5px}.rich-toolbar{border-bottom:1px solid #e5e9f0;flex-wrap:wrap;gap:4px;padding:8px;display:flex}.rich-content{outline-offset:2px;overflow-wrap:anywhere;min-height:240px;max-height:50vh;padding:12px;overflow-y:auto}.rich-content img{max-width:100%;height:auto}.teaching-page{color:#202927;letter-spacing:0;min-width:0}.teacher-portal .teaching-page{padding:0 16px 24px}.teacher-portal .teaching-tabs{padding-inline:8px}.teaching-announcements{padding:16px}.teaching-heading,.teaching-actions{flex-wrap:wrap;align-items:center;gap:12px;display:flex}.teaching-heading{justify-content:space-between;margin-bottom:16px}.teaching-heading h2{margin:0;font-size:20px}.teaching-tabs{border-bottom:1px solid #e5e9f0;gap:4px;margin-bottom:20px;display:flex;overflow-x:auto}.teaching-tabs button{background:0 0;border:0;border-bottom:3px solid #0000;border-radius:0;flex:none;padding:12px}.teaching-tabs button[aria-selected=true]{color:#1f2329;border-bottom-color:#2563eb;font-weight:700}.teaching-form{border-block:1px solid #e5e9f0;margin:20px 0;padding:16px 0}.teaching-form fieldset{border:0;min-width:0;padding:0}.teaching-form legend{margin-bottom:12px;font-size:16px;font-weight:600}.teaching-page label{flex-direction:column;gap:6px;min-width:0;margin-bottom:12px;font-size:14px;display:flex}.teaching-page input:not([type=checkbox]),.teaching-page textarea{box-sizing:border-box;color:#202927;width:100%;min-width:0;font:inherit;background:#fff;border:1px solid #e5e9f0;border-radius:4px;padding:9px}.teaching-page textarea{resize:vertical;min-height:84px}.teaching-dates{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;display:grid}.teaching-page .teaching-check{flex-direction:row;align-items:center;gap:5px;min-height:36px;margin:0;display:flex}.teaching-slots{grid-template-columns:repeat(6,minmax(0,1fr));gap:4px;margin:8px 0 16px;display:grid}.teaching-page button:not(.icon-button){color:#1f2329;min-height:36px;font:inherit;white-space:normal;background:#f8fafd;border:1px solid #e5e9f0;border-radius:4px;justify-content:center;align-items:center;gap:6px;padding:8px 12px;display:inline-flex}.teaching-page button:disabled{opacity:.55}.teaching-table-wrap{overflow-x:auto}.teaching-table{border-collapse:collapse;width:100%;font-size:14px}.teaching-table th,.teaching-table td{text-align:left;vertical-align:top;overflow-wrap:anywhere;border-bottom:1px solid #e5e9f0;padding:12px 6px}.teaching-table th{color:#1f2329;font-size:12px}.teaching-table small{color:#646a73;margin-top:5px;display:block}.teaching-table td:first-child{width:32px}.teaching-table td:nth-child(2){width:110px}.teaching-table td:last-child{width:76px}.teaching-history{border-left:2px solid #e5e9f0;margin-top:12px;padding-left:8px}.teaching-page p{overflow-wrap:anywhere;white-space:pre-wrap}.teaching-leave{border-bottom:1px solid #e5e9f0;padding:16px 0}.teaching-leave>div:first-child{flex-wrap:wrap;gap:12px;display:flex}.teaching-leave span{color:#62572b}@media (max-width:480px){.teaching-slots{grid-template-columns:repeat(4,minmax(0,1fr))}.teaching-tabs button{padding:10px 8px}.teaching-table{font-size:12px}.teaching-table th,.teaching-table td{padding-inline:4px}}.classin-sharing{letter-spacing:0;border-top:1px solid #d9e1e4;min-width:0;padding:18px 0}.classin-sharing header{justify-content:space-between;align-items:center;gap:12px;display:flex}.classin-sharing h3{margin:0;font-size:17px}.classin-sharing form{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-top:14px;display:grid}.classin-sharing label{gap:6px;min-width:0;font-size:14px;display:grid}.classin-sharing select,.classin-sharing input:not([type=checkbox]){color:#24323a;width:100%;min-width:0;min-height:40px;font:inherit;box-sizing:border-box;background:#fff;border:1px solid #acbac0;border-radius:4px;padding:7px}.classin-sharing button{color:#253b46;min-width:40px;min-height:40px;font:inherit;cursor:pointer;background:#fff;border:1px solid #aebac1;border-radius:4px;justify-content:center;align-items:center;gap:6px;padding:8px 12px;display:inline-flex}.classin-sharing button:disabled{opacity:.55;cursor:default}.classin-sharing .sharing-confirm{grid-column:1/-1;align-items:flex-start;line-height:1.5;display:flex}.classin-sharing .sharing-confirm input{flex:0 0 18px;width:18px;height:18px}.classin-sharing [role=alert]{color:#a12c3c}.sharing-history{margin-top:16px;overflow-x:auto}.sharing-history table{border-collapse:collapse;width:100%;font-size:14px}.sharing-history th,.sharing-history td{text-align:left;overflow-wrap:anywhere;border-bottom:1px solid #d9e1e4;padding:8px}@media (max-width:620px){.classin-sharing form{grid-template-columns:minmax(0,1fr)}}.private-classin-account>button{color:#245b54;max-width:100%;min-height:40px;font:inherit;cursor:pointer;background:#fff;border:1px solid #c6d5cf;border-radius:4px;justify-content:center;align-items:center;gap:8px;padding:8px 12px;display:inline-flex}.private-classin-account>button:disabled{opacity:.6;cursor:wait}.private-classin-account>button:hover:not(:disabled){background:#f0f6f3}.teacher-portal-content>.private-classin-account,.teacher-portal-content>.teaching-announcements{margin-inline:16px}.learning-workspace{color:#233d33;letter-spacing:0;min-width:0;max-width:1560px;margin:0 auto;padding:24px}.learning-workspace *{box-sizing:border-box}.learning-workspace :where(h1){margin:0 0 14px;font-size:24px}.learning-workspace :where(h2){margin:0 0 12px;font-size:20px}.learning-workspace :where(h3){margin:20px 0 14px;font-size:17px}.learning-workspace :where(p){overflow-wrap:anywhere;line-height:1.6}.learning-workspace :where(button){color:#245940;cursor:pointer;min-height:38px;font:inherit;background:#fff;border:1px solid #bdcfc4;border-radius:5px;justify-content:center;align-items:center;gap:7px;padding:8px 12px;font-size:14px;line-height:1.5;display:inline-flex}.learning-workspace button svg{flex:none}.learning-workspace button:hover:not(:disabled){background:#edf6f0}.learning-workspace button:disabled{opacity:.55;cursor:not-allowed}.learning-workspace :focus-visible{outline-offset:3px;outline:3px solid #2c83b1}.learning-runtime-heading,.learning-runtime-action>header,.learning-report>header{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;display:flex}.learning-runtime-heading p{color:#617568;margin:4px 0;font-size:14px}.learning-runtime-toolbar{flex-wrap:wrap;align-items:end;gap:10px;margin:16px 0;display:flex}.learning-runtime-tabs{border-bottom:1px solid #cbdad0;gap:6px;margin:20px 0 24px;display:flex;overflow-x:auto}.learning-runtime-tabs button{background:0 0;border:0;border-bottom:3px solid #0000;border-radius:0;flex:none;padding:11px 18px}.learning-runtime-tabs button[aria-current=page]{border-bottom-color:#26714f;font-weight:700}.learning-runtime-field{gap:6px;min-width:0;margin:0 0 14px;font-size:14px;display:grid}.learning-runtime-toolbar .learning-runtime-field{flex:0 200px;margin-bottom:0}.learning-workspace input:not([type=checkbox]),.learning-workspace textarea,.learning-workspace :where(select){color:#243d31;width:100%;min-width:0;min-height:38px;font:inherit;background:#fff;border:1px solid #bfcfc5;border-radius:4px;padding:9px 10px}.learning-workspace textarea{resize:vertical;min-height:100px}.learning-workspace fieldset{border:0;min-width:0;margin:0;padding:0}.learning-runtime-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;display:grid}.learning-runtime-check{align-items:flex-start;gap:10px;margin:16px 0;line-height:1.5;display:flex}.learning-runtime-check input{flex:none;width:18px;height:18px}.learning-runtime-scroll{width:100%;overflow-x:auto}.learning-workspace table{border-collapse:collapse;background:#fff;width:100%;min-width:660px;font-size:14px}.learning-workspace th,.learning-workspace td{text-align:left;vertical-align:top;overflow-wrap:anywhere;border-bottom:1px solid #dce6df;max-width:360px;padding:13px 14px}.learning-workspace th{color:#4d6154;background:#eef3ef;font-weight:600}.learning-workspace small{color:#627569;overflow-wrap:anywhere;margin-top:5px;line-height:1.5;display:block}.learning-runtime-empty{color:#63786a;padding:30px 0}.learning-runtime-error,.learning-runtime-issues{color:#a23038}.learning-runtime-notice{color:#715416;background:#fff4d4;padding:12px 16px}.learning-runtime-action{border-top:2px solid #548d6b;border-bottom:1px solid #cbdcd0;max-width:900px;margin:20px 0;padding:20px 0}.learning-runtime-action h3{margin:0}.learning-runtime-action>header{margin-bottom:18px}.learning-runtime-action footer{gap:10px;margin-top:16px;display:flex}.learning-entry{border-bottom:1px solid #cedbd2;padding:16px 0}.learning-entry input{font-family:monospace;font-size:13px}.learning-instance-list>div{border-bottom:1px solid #dae5dc;flex-wrap:wrap;align-items:center;gap:16px;padding:8px 0;font-size:14px;display:flex}.learning-instance-list strong{font-size:19px}.learning-observation-row{border-bottom:1px solid #dce7de;grid-template-columns:minmax(140px,1fr) minmax(300px,2fr);align-items:center;gap:16px;padding:16px 0;display:grid}.learning-outcomes{grid-template-columns:repeat(4,minmax(0,1fr));gap:7px;display:grid}.learning-outcomes button{overflow-wrap:anywhere;font-size:13px}.learning-outcomes button[aria-pressed=true]{background:#e3f1e9;border-color:#367953;box-shadow:inset 0 0 0 1px #367953}.learning-evidence-row{overflow-wrap:anywhere;border-bottom:1px solid #dce6df;flex-wrap:wrap;align-items:center;gap:14px;padding:12px 0;font-size:14px;display:flex}.learning-evidence-row>span:first-child{flex:240px}.learning-preview-layout{grid-template-columns:minmax(0,2fr) minmax(220px,1fr);gap:28px;display:grid}.learning-preview-layout aside{border-left:1px solid #d6e1d9;min-width:0;padding-left:24px}.learning-preview-layout aside section{overflow-wrap:anywhere;border-bottom:1px solid #d6e1d9;padding:14px 0;font-size:14px}.learning-report-summary{border-top:1px solid #d7e1da;border-bottom:1px solid #d7e1da;grid-template-columns:repeat(4,minmax(0,1fr));gap:18px;padding:18px 0;display:grid}.learning-report-summary dt{color:#617467;font-size:13px}.learning-report-summary dd{margin:8px 0 0;font-size:22px}.learning-report-comment{white-space:pre-wrap}.learning-report-list{flex-wrap:wrap;gap:10px;margin:18px 0;display:flex}.learning-report-list button[aria-pressed=true]{background:#e2f0e7;border-color:#397951}@media (max-width:800px){.learning-workspace{padding:16px}.learning-runtime-grid,.learning-preview-layout{grid-template-columns:1fr}.learning-preview-layout aside{border-top:1px solid #d6e1d9;border-left:0;padding-left:0}.learning-observation-row{grid-template-columns:1fr}.learning-outcomes,.learning-report-summary{grid-template-columns:repeat(2,minmax(0,1fr))}.learning-runtime-toolbar .learning-runtime-field{flex:140px}}.learning-lesson-links{flex-wrap:wrap;gap:8px 14px;margin:8px 0;font-size:13px;display:flex}.learning-lesson-links a{color:#086444;align-items:center;gap:5px;min-height:32px;text-decoration:none;display:inline-flex}.learning-lesson-links a:hover{text-decoration:underline}.learning-standalone{max-width:1440px;margin:0 auto;padding:20px}@media (max-width:600px){.learning-standalone{padding:12px}}.v2-device-controls{border-bottom:1px solid #cedbd3;margin-bottom:12px;padding-bottom:10px}.v2-device-controls>summary{cursor:pointer;color:#086444;padding:8px 0;font-weight:600}.teacher-portal{color:#202a2c;background:#eff4f2;min-height:100svh}.teacher-portal-head{background:#fff;border-bottom:1px solid #d5e0da;justify-content:space-between;align-items:center;gap:16px;padding:16px max(16px,50% - 400px);display:flex}.teacher-portal-actions{align-items:center;gap:10px;min-width:0;display:flex}.teacher-portal-actions span{overflow-wrap:anywhere;font-size:13px}.teacher-portal-content{background:#fff;width:min(100%,800px);min-height:calc(100svh - 70px);margin:0 auto}.teacher-portal .list-state{align-items:center;gap:12px;display:flex}.teacher-portal>.teacher-portal-content>.teaching-tabs{flex-wrap:wrap;overflow:visible}@media (max-width:600px){.teacher-portal-head{padding:12px 16px}.teacher-portal-head .sidebar-brand{font-size:18px}}.cards-page{max-width:1600px}.cards-page-header{margin-bottom:16px}.cards-scope-note{color:#4b5a58;background:#f1f4f3;border:1px solid #e5e9f0;border-left:3px solid #2563eb;align-items:flex-start;gap:9px;margin-bottom:16px;padding:10px 12px;font-size:12px;line-height:1.5;display:flex}.cards-scope-note svg{flex:none;margin-top:1px}.cards-workspace{background:#fff;border:1px solid #e5e9f0;grid-template-columns:230px minmax(0,1fr);min-height:680px;display:grid}.cards-workspace.is-targeted{display:block}.cards-member-rail{background:#f7f9f8;border-right:1px solid #e5e9f0;min-width:0}.cards-section-heading{border-bottom:1px solid #e5e9f0;justify-content:space-between;align-items:center;gap:12px;min-height:52px;padding:11px 14px;display:flex}.cards-section-heading>div:first-child{align-items:baseline;gap:9px;min-width:0;display:flex}.cards-section-heading h2{font-size:14px}.cards-section-heading span{color:#646a73;font-size:11px}.cards-member-search{color:#646a73;background:#fff;border:1px solid #e5e9f0;border-radius:4px;align-items:center;gap:7px;margin:10px;padding:0 9px;display:flex}.cards-member-search:focus-within{outline-offset:1px;outline:2px solid #2563eb}.cards-member-search input{color:#263331;background:0 0;border:0;outline:0;width:100%;min-width:0;height:36px;padding:0}.cards-member-list{max-height:610px;padding:0 8px 10px;overflow-y:auto}.cards-member-option{color:#344340;text-align:left;background:0 0;border:0;border-left:3px solid #0000;border-radius:3px;gap:4px;width:100%;padding:10px 11px;display:grid}.cards-member-option:hover{background:#f8fafd}.cards-member-option[aria-current=true]{color:#174f4c;background:#e5e9f0;border-left-color:#2563eb}.cards-member-option strong{overflow-wrap:anywhere}.cards-member-option span{color:#646a73;font-size:11px}.cards-rail-state{color:#646a73;text-align:center;justify-items:center;gap:8px;padding:28px 10px;line-height:1.5;display:grid}.cards-rail-state.is-error{color:#9d403b}.cards-rail-state button,.cards-data-error button{color:#2563eb;background:0 0;border:0;padding:3px 4px;text-decoration:underline}.cards-main{min-width:0}.cards-empty-workspace,.cards-loading,.cards-empty-list{color:#646a73;text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:9px;min-height:240px;padding:28px;display:flex}.cards-empty-workspace strong,.cards-empty-list strong{color:#344743}.cards-empty-workspace span,.cards-empty-list span{font-size:12px}.cards-empty-list .primary-button{margin-top:7px}.cards-member-bar{border-bottom:1px solid #e5e9f0;justify-content:space-between;align-items:center;gap:12px;min-height:64px;padding:11px 16px;display:flex}.cards-member-bar>div{gap:3px;min-width:0;display:grid}.cards-member-bar strong,.cards-member-bar span{overflow-wrap:anywhere}.cards-member-bar>div span,.cards-business-date{color:#646a73;font-size:12px}.cards-member-context-actions{align-items:center;gap:12px;display:flex}.cards-member-context-actions button{color:#3f5752;background:#fff;border:1px solid #e5e9f0;border-radius:4px;align-items:center;gap:5px;min-height:32px;padding:5px 9px;display:inline-flex}.cards-business-date{white-space:nowrap}.cards-notice,.cards-data-error{color:#1f2329;background:#f8fafd;border-bottom:1px solid #e5e9f0;justify-content:space-between;align-items:center;gap:10px;padding:10px 16px;line-height:1.5;display:flex}.cards-data-error{color:#a33b36;background:#fff1ef}.cards-balance-band{background:#f8faf9;border-bottom:1px solid #e5e9f0;grid-template-columns:repeat(3,minmax(0,1fr));display:grid}.cards-balance-band>div{border-right:1px solid #e5e9f0;gap:4px;padding:12px 16px;display:grid}.cards-balance-band>div:last-child{border-right:0}.cards-balance-band span{color:#646a73;font-size:11px}.cards-balance-band strong{color:#1d4f49;font-size:16px}.cards-records,.cards-ledger{border-bottom:1px solid #e5e9f0}.cards-list-heading{background:#fff}.cards-selection-actions{gap:6px;display:flex}.cards-selection-actions button{color:#3f5752;white-space:nowrap;background:#fff;border:1px solid #e5e9f0;border-radius:4px;align-items:center;gap:6px;min-height:32px;padding:5px 9px;display:inline-flex}.cards-selection-actions button:hover:not(:disabled){color:#2563eb;border-color:#2563eb}.cards-table-wrap{overflow-x:auto}.cards-table-head,.cards-card-row{grid-template-columns:minmax(200px,1.5fr) repeat(3,minmax(68px,.45fr)) minmax(165px,.8fr);align-items:center;gap:12px;min-width:650px;display:grid}.cards-table-head{color:#646a73;background:#f8fafd;border-bottom:1px solid #e5e9f0;padding:9px 14px;font-size:11px}.cards-table-head>span:nth-child(2),.cards-table-head>span:nth-child(3),.cards-table-head>span:nth-child(4),.cards-card-row>span[data-label=当前可约],.cards-card-row>span[data-label=已约占用],.cards-card-row>span[data-label=实际剩余]{text-align:right}.cards-card-row{color:#33413f;text-align:left;background:#fff;border-top:0;border-bottom:1px solid #e5e9f0;border-left:3px solid #0000;border-right:0;width:100%;min-height:68px;padding:10px 14px}.cards-card-row:last-child{border-bottom:0}.cards-card-row:hover{background:#f7faf9}.cards-card-row[aria-pressed=true]{background:#f8fafd;border-left-color:#2563eb}.cards-card-identity{gap:5px;min-width:0;display:grid}.cards-card-identity>span{flex-wrap:wrap;align-items:center;gap:7px;display:flex}.cards-card-identity strong,.cards-card-identity small{overflow-wrap:anywhere}.cards-card-identity small{color:#646a73;font-size:11px}.cards-status{border:1px solid;border-radius:3px;padding:2px 5px;font-size:10px;font-style:normal;font-weight:600;line-height:1.2;display:inline-flex}.cards-status.is-usable{color:#646a73}.cards-status.is-future{color:#3f6485}.cards-status.is-locked{color:#9a6a2f}.cards-status.is-expired{color:#9b443e}.cards-status.is-depleted{color:#646a73}.cards-card-row>span:not(.cards-card-identity){overflow-wrap:anywhere;min-width:0}.cards-card-row>span>strong{color:#1f2329;font-size:16px}.cards-expired-value{color:#a04e46}.cards-validity{gap:1px;font-size:12px;display:grid}.cards-validity i{color:#646a73;font-size:10px;font-style:normal}.cards-ledger .cards-section-heading{background:#f8faf9}.cards-ledger-empty{color:#646a73;text-align:center;padding:28px 16px}.cards-ledger-list{overflow-x:auto}.cards-ledger-row{border-bottom:1px solid #e5e9f0;grid-template-columns:62px minmax(220px,1.3fr) minmax(100px,.55fr) minmax(135px,.7fr) minmax(130px,.7fr);align-items:center;gap:12px;min-width:790px;min-height:62px;padding:9px 14px;display:grid}.cards-ledger-row:last-child{border-bottom:0}.cards-ledger-kind{color:#1f2329;white-space:nowrap;border:1px solid #e5e9f0;border-radius:3px;justify-self:start;padding:3px 6px;font-size:11px}.cards-ledger-main,.cards-ledger-delta{gap:3px;min-width:0;display:grid}.cards-ledger-main strong,.cards-ledger-main span,.cards-ledger-main small{overflow-wrap:anywhere}.cards-ledger-main span,.cards-ledger-main small,.cards-ledger-delta span,.cards-ledger-balance,.cards-ledger-row time{color:#646a73;font-size:11px;line-height:1.45}.cards-ledger-delta strong{color:#1f2329}.cards-ledger-delta strong.is-minus{color:#a24d45}.cards-ledger-row time{white-space:nowrap}.cards-modal-backdrop{z-index:20;background:#18272666;place-items:center;padding:16px;display:grid;position:fixed;inset:0}.cards-dialog{background:#fff;border-radius:7px;width:min(100%,590px);max-height:92svh;padding:22px;overflow-y:auto;box-shadow:0 12px 36px #172b282e}.cards-dialog>header{justify-content:space-between;align-items:center;gap:12px;margin-bottom:10px;display:flex}.cards-dialog h2{font-size:16px}.cards-dialog-member{color:#646a73;overflow-wrap:anywhere;margin-bottom:18px}.cards-dialog-context{background:#f6f9f8;border-top:1px solid #e5e9f0;border-bottom:1px solid #e5e9f0;gap:4px;margin:0 -22px 18px;padding:10px 22px;display:grid}.cards-dialog-context strong,.cards-dialog-context span{overflow-wrap:anywhere}.cards-dialog-context span{color:#646a73;font-size:12px}.cards-form{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;display:grid}.cards-form label{color:#3c4b49;align-content:start;gap:7px;min-width:0;font-weight:600;display:grid}.cards-form input,.cards-form select,.cards-form textarea{color:#202a2c;background:#fff;border:1px solid #e5e9f0;border-radius:4px;width:100%;min-width:0;padding:10px 11px}.cards-form textarea{resize:vertical}.cards-form-wide{grid-column:1/-1}.cards-field-hint,.cards-form-note{color:#646a73;font-size:11px;font-weight:400;line-height:1.5}.cards-form-note{background:#f3f6f5;border-left:3px solid #2563eb;padding:9px 10px}.cards-form-error{color:#a33b36;line-height:1.5}.cards-reason-field{border:0;min-width:0;margin:0;padding:0}.cards-reason-field legend{color:#3c4b49;margin-bottom:8px;padding:0;font-weight:600}.cards-reason-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:7px;display:grid}.cards-reason-option{color:#455552;overflow-wrap:anywhere;background:#fff;border:1px solid #e5e9f0;border-radius:4px;min-height:64px;padding:7px;line-height:1.35}.cards-reason-option:hover{border-color:#2563eb}.cards-reason-option[aria-pressed=true]{color:#1f2329;background:#e5e9f0;border-color:#2563eb;font-weight:700}.cards-balance-preview,.cards-transfer-total{background:#f7f9f8;border:1px solid #e5e9f0;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:7px 14px;padding:10px 12px;display:flex}.cards-balance-preview span,.cards-transfer-total span{color:#646a73;font-size:12px}.cards-balance-preview strong,.cards-transfer-total strong{color:#1f2329;font-size:16px}.cards-balance-preview strong.is-negative{color:#a33b36}@media (max-width:1040px){.cards-workspace{grid-template-columns:190px minmax(0,1fr)}.cards-balance-band>div{padding:10px 12px}}@media (max-width:760px){.cards-workspace{min-height:0;display:block}.cards-member-rail{border-bottom:1px solid #e5e9f0;border-right:0}.cards-member-list{gap:6px;max-height:none;padding:0 10px 10px;display:flex;overflow-x:auto}.cards-member-option{background:#fff;border-bottom:3px solid #0000;border-left:0;width:180px;min-width:180px}.cards-member-option[aria-current=true]{border-bottom-color:#2563eb;border-left-color:#0000}.cards-rail-state{width:100%;padding:18px 10px}.cards-balance-band{grid-template-columns:repeat(2,minmax(0,1fr))}.cards-balance-band>div:nth-child(2){border-right:0}.cards-balance-band>div:nth-child(-n+2){border-bottom:1px solid #e5e9f0}.cards-form{grid-template-columns:minmax(0,1fr)}.cards-form-wide{grid-column:1}.cards-reason-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width:520px){.cards-page-header{align-items:center}.cards-page-header .primary-button{padding:7px 10px}.cards-member-bar{flex-direction:column;align-items:flex-start}.cards-member-context-actions{justify-content:space-between;width:100%}.cards-list-heading{flex-direction:column;align-items:flex-start}.cards-selection-actions{width:100%}.cards-selection-actions button{flex:1;justify-content:center}.cards-dialog{max-height:100svh;padding:18px}.cards-dialog-context{margin-left:-18px;margin-right:-18px;padding-left:18px;padding-right:18px}}.lesson-pending{color:#755515;background:#fff8e5;border-left:3px solid #b98922;padding:12px 16px;line-height:1.6}.lesson-notice{color:#1f2329;padding:12px 0}.lesson-filters,.lesson-form-fields{gap:16px;min-width:0;display:grid}.lesson-filters{grid-template-columns:repeat(5,minmax(0,1fr));padding:18px 0}.lesson-filters label{color:#1f2329;gap:8px;min-width:0;font-size:13px;display:grid}.lesson-filters input,.lesson-filters select{color:#202a2c;background:#fff;border:1px solid #e5e9f0;border-radius:4px;width:100%;min-width:0;padding:9px}.lesson-table-scroll{overflow-x:auto}.lesson-table{border-collapse:collapse;text-align:left;width:100%;font-size:13px}.lesson-table th{color:#1f2329;background:#f8fafd;font-weight:500}.lesson-table th,.lesson-table td{overflow-wrap:anywhere;border-bottom:1px solid #e5e9f0;min-width:85px;max-width:240px;padding:14px 12px}.lesson-table td{background:#fff}.lesson-table th:nth-child(3){min-width:180px}.lesson-dialog{width:min(100%,600px);max-height:90svh}.lesson-form-fields{border:0;grid-template-columns:repeat(2,minmax(0,1fr));margin:0;padding:0}.lesson-form-fields label,.lesson-form-fields select,.lesson-form-fields input{width:100%;min-width:0}.lesson-wide{grid-column:1/-1}.lesson-cost{color:#1f2329;margin:0}.lesson-cost strong{color:#202a2c}.lesson-form-actions{flex-wrap:wrap;justify-content:flex-end;gap:12px;display:flex}.lesson-form-actions .primary-button{margin-top:0}.lessons-page .page-header{flex-wrap:wrap;gap:16px}@media (max-width:1000px){.lesson-filters{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width:600px){.lesson-form-fields,.lesson-filters{grid-template-columns:minmax(0,1fr)}.lessons-page h1{font-size:20px}}.referrals-page{color:#263a32;min-width:0}.referrals-page *{box-sizing:border-box;letter-spacing:0}.referral-toolbar,.referral-actions{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.referral-toolbar{justify-content:space-between;margin-bottom:20px}.referral-toolbar h1{margin:0;font-size:20px}.referrals-page h2{margin:0 0 18px;font-size:16px}.referrals-page h3{margin:0 0 14px;font-size:16px}.referrals-page button,.referral-actions a{color:#1f2329;min-height:38px;font:inherit;cursor:pointer;background:#fff;border:1px solid #e5e9f0;border-radius:6px;justify-content:center;align-items:center;gap:8px;padding:8px 12px;text-decoration:none;display:inline-flex}.referrals-page button:hover:not(:disabled),.referral-actions a:hover{background:#f8fafd}.referrals-page button:disabled{cursor:not-allowed;opacity:.5}.referrals-page svg{flex-shrink:0}.referrals-page label{gap:6px;min-width:0;font-size:14px;display:grid}.referrals-page input,.referrals-page select{color:#263a32;width:100%;min-width:0;font:inherit;background:#fff;border:1px solid #e5e9f0;border-radius:5px;padding:10px}.referrals-page :focus-visible{outline-offset:2px;outline:2px solid #2563eb}.referral-error{color:#a02d3b}.referral-campaigns,.referral-relations{border-top:1px solid #e5e9f0;padding:20px 0}.referral-table-scroll{width:100%;overflow-x:auto}.referrals-page table{text-align:left;border-collapse:collapse;width:100%;font-size:14px}.referrals-page th,.referrals-page td{vertical-align:middle;overflow-wrap:anywhere;border-bottom:1px solid #e5e9f0;padding:12px 10px}.referrals-page th{color:#1f2329;white-space:nowrap;font-weight:500}.referral-campaign-editor{border-bottom:1px solid #e5e9f0;margin-bottom:22px;padding:18px 0}.referral-campaign-editor fieldset{border:0;grid-template-columns:minmax(180px,2fr) minmax(180px,1fr);align-items:end;gap:16px;min-width:0;margin:0;padding:0;display:grid}.referrals-page .referral-check{align-items:center;gap:8px;display:flex}.referral-check input{width:18px;height:18px}.referral-poster-section{border-top:1px solid #e5e9f0;grid-template-columns:minmax(200px,1fr) minmax(0,1fr);gap:40px;padding:28px 0;display:grid}.referral-poster-controls{flex-direction:column;align-items:stretch;gap:18px;min-width:0;display:flex}.referral-poster-controls h2{margin-bottom:0}.referral-poster-preview{aspect-ratio:3/4;color:#646a73;background:#f8fafd;border:1px solid #e5e9f0;place-items:center;width:100%;max-width:450px;display:grid}.referral-poster-preview img{aspect-ratio:3/4;width:100%;height:auto;display:block}@media (max-width:680px){.referral-poster-section{grid-template-columns:minmax(0,1fr);gap:24px}.referral-poster-preview{justify-self:center}.referral-campaign-editor fieldset{grid-template-columns:minmax(0,1fr)}.referrals-page th,.referrals-page td{padding:10px 6px}}.members-page{box-sizing:border-box;color:#24302c;width:100%;min-width:0;padding:20px}.members-page h1{margin:0;font-size:24px}.members-page h2{margin:0;font-size:20px}.members-page h3{align-items:center;gap:8px;font-size:17px;display:flex}.members-heading,.members-actions{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;display:flex}.members-page button{color:#264637;cursor:pointer;min-height:36px;font:inherit;background:#fff;border:1px solid #cbd4ce;border-radius:5px;justify-content:center;align-items:center;gap:6px;padding:7px 12px;display:inline-flex}.members-page button:hover{background:#edf5ef}.members-page button:disabled{cursor:default;opacity:.6}.members-page button:focus-visible,.members-page input:focus-visible,.members-page select:focus-visible,.members-page textarea:focus-visible{outline-offset:2px;outline:2px solid #347153}.members-filters{flex-wrap:wrap;align-items:end;gap:14px;padding:20px 0;display:flex}.members-page label{flex-direction:column;gap:6px;min-width:0;font-size:14px;display:flex}.members-page input,.members-page select,.members-page textarea{box-sizing:border-box;color:#24302c;width:100%;min-width:0;min-height:38px;font:inherit;background:#fff;border:1px solid #cbd4ce;border-radius:4px;padding:8px 10px}.members-page textarea{resize:vertical}.members-filters>label{flex:140px}.members-filters .members-search{flex-direction:row;flex:2 220px;align-items:center;display:flex}.members-table-wrap{width:100%;overflow-x:auto}.members-page table{border-collapse:collapse;text-align:left;width:100%;min-width:640px;font-size:14px}.members-page th{color:#52625a;background:#f0f3f1;font-weight:500}.members-page th,.members-page td{overflow-wrap:anywhere;border-bottom:1px solid #e0e5e1;padding:12px}.members-page td{min-width:76px}.members-page .members-name{text-align:left;background:0 0;border:0;padding:0;font-weight:600;display:block}.members-name small{color:#66756c;margin-top:4px;font-weight:400;display:block}.members-page .members-card-view{min-width:36px;padding:7px}.members-selected{background:#edf6f0}.members-detail,.members-form{border-top:1px solid #cbd4ce;margin-top:24px;padding-top:24px}.members-detail .members-form{border-top:0;margin-top:0;padding-top:0}.members-form fieldset{border:0;min-width:0;margin:20px 0;padding:0}.members-fields,.members-profile{grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;display:grid}.members-wide{grid-column:1/-1}.members-profile dt{color:#68766e;font-size:13px}.members-profile dd{overflow-wrap:anywhere;white-space:pre-wrap;margin:6px 0 0}.members-error{color:#a12d32;padding:10px 0}.members-empty{color:#68766e;padding:28px 0}.members-binding{border-top:1px solid #dce4de;flex-wrap:wrap;align-items:end;gap:12px;padding:24px 0;display:flex}.members-binding label{flex:0 320px}.family-child{max-width:360px;margin-top:20px}.family-page{max-width:1280px;margin:0 auto}.family-page>header{margin-top:20px}.family-page article{border-bottom:1px solid #dce4de;padding:16px 0}.family-page article p{white-space:pre-wrap;overflow-wrap:anywhere;margin:10px 0}.family-tabs{border-bottom:1px solid #cbd4ce;flex-wrap:wrap;gap:8px;padding:16px 0;display:flex}.family-tabs button[aria-current=page]{color:#fff;background:#246345;border-color:#246345}@media (max-width:700px){.members-fields,.members-profile{grid-template-columns:repeat(2,minmax(0,1fr))}.members-page th,.members-page td{padding:10px 8px}}@media (max-width:420px){.members-page{padding:14px}.members-fields,.members-profile{grid-template-columns:minmax(0,1fr)}.members-page h1{font-size:22px}}.family-booking{color:#26312e;min-width:0;padding:20px 0}.family-booking-heading{justify-content:space-between;align-items:center;gap:12px;display:flex}.family-booking h2{margin:0 0 16px;font-size:20px}.family-booking h3{margin-top:28px;font-size:16px}.family-booking button{color:#24382e;cursor:pointer;background:#fff;border:1px solid #e5e9f0;border-radius:6px;justify-content:center;align-items:center;gap:6px;min-height:38px;padding:8px 12px;display:inline-flex}.family-booking button:disabled{opacity:.45;cursor:not-allowed}.family-booking button[aria-pressed=true],.family-booking .family-booking-submit{color:#fff;background:#2563eb}.family-booking-controls{flex-wrap:wrap;align-items:end;gap:16px;margin:16px 0;display:flex}.family-booking-controls>label{flex:180px;gap:6px;min-width:180px;max-width:100%;display:grid}.family-booking input,.family-booking select{font:inherit;min-width:0;max-width:100%;min-height:38px;color:inherit;background:#fff;border:1px solid #e5e9f0;border-radius:4px;padding:6px 8px}.family-booking-duration{border:0;flex-wrap:wrap;gap:12px;margin:0;padding:0;display:flex}.family-booking-duration label{flex-direction:row;align-items:center;gap:6px;display:flex}.family-booking input[type=radio]{min-height:0}.family-booking-teacher{align-items:center;gap:12px;margin:16px 0;display:flex}.family-booking-teacher img{object-fit:cover;border-radius:6px;width:56px;height:56px}.family-booking p{overflow-wrap:anywhere;font-size:14px;line-height:1.6}.family-booking-teacher p{margin:4px 0}.family-booking-grid{grid-template-columns:repeat(auto-fill,minmax(76px,1fr));gap:8px;margin:16px 0;display:grid}.family-booking-grid button{font-variant-numeric:tabular-nums;height:40px}.family-booking-lessons{padding:0;list-style:none}.family-booking-lessons li{border-bottom:1px solid #e5e9f0;flex-wrap:wrap;align-items:center;gap:12px;padding:12px 0;display:flex}.family-booking-lessons li>div{flex:230px;min-width:0}.family-booking-lessons p{margin:4px 0}.family-booking-error{color:#ac2738}.family-booking :focus-visible{outline-offset:3px;outline:2px solid #2563eb}@media (max-width:480px){.family-booking-controls>label{flex-basis:100%}.family-booking{padding:12px 0}}.operations-page{color:#202b28;letter-spacing:0;background:#fff;min-width:0;padding:24px}.operations-page h1{margin:0 0 20px;font-size:20px}.operations-page h2{margin:0;font-size:16px}.operations-tabs{border-bottom:1px solid #e5e9f0;gap:8px;margin-bottom:24px;display:flex}.operations-page button{color:#1f2329;cursor:pointer;background:#fff;border:1px solid #c8d2cd;border-radius:4px;justify-content:center;align-items:center;gap:8px;min-height:38px;padding:8px 12px;display:inline-flex}.operations-page button:disabled{opacity:.5;cursor:default}.operations-page button:focus-visible,.operations-page input:focus-visible,.operations-page select:focus-visible{outline-offset:2px;outline:2px solid #2563eb}.operations-tabs button{border:0;border-bottom:3px solid #0000;border-radius:0}.operations-tabs button[aria-selected=true]{color:#1f2329;border-bottom-color:#2563eb}.operations-heading{justify-content:space-between;align-items:center;margin-bottom:20px;display:flex}.operations-rules{max-width:480px}.operations-rules fieldset{border:0;gap:20px;min-width:0;padding:0;display:grid}.operations-page label{gap:7px;min-width:0;font-size:14px;display:grid}.operations-page input,.operations-page select{box-sizing:border-box;color:#202b28;width:100%;min-width:0;height:40px;font:inherit;background:#fff;border:1px solid #e5e9f0;border-radius:4px;padding:8px}.operations-page .operations-checkbox{align-items:center;display:flex}.operations-checkbox input{width:18px;height:18px}.operations-page [role=alert]{color:#ad2936;overflow-wrap:anywhere}.operations-filters{grid-template-columns:repeat(2,minmax(130px,1fr)) repeat(2,minmax(210px,1.3fr)) auto;align-items:end;gap:12px;margin-bottom:20px;display:grid}.operations-table{overflow-x:auto}.operations-table table{border-collapse:collapse;width:100%;font-size:14px}.operations-table th,.operations-table td{text-align:left;overflow-wrap:anywhere;border-bottom:1px solid #e5e9f0;max-width:260px;padding:12px}.operations-table th{white-space:nowrap;background:#f8fafd}.operations-pagination{justify-content:end;align-items:center;gap:16px;margin-top:18px;display:flex}@media (max-width:1100px){.operations-filters{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width:540px){.operations-page{padding:16px}.operations-filters{grid-template-columns:minmax(0,1fr)}.operations-table table{min-width:650px}}.catalog-page .page-header{flex-wrap:wrap;gap:16px}.catalog-table-scroll{max-width:100%;overflow-x:auto}.catalog-table{border-collapse:collapse;background:#fff;width:100%;font-size:14px}.catalog-table th,.catalog-table td{text-align:left;overflow-wrap:anywhere;border-bottom:1px solid #e5e9f0;padding:12px 16px}.catalog-table thead{color:#1f2329;background:#f8fafd}.catalog-table th{font-weight:600}.catalog-table th:first-child{min-width:120px}.catalog-table td{min-width:80px}.dialog.catalog-dialog{width:min(100%,480px);max-height:90svh;overflow-y:auto}.catalog-fields{border:0;gap:16px;min-width:0;margin:0;padding:0;display:grid}.catalog-fields label{overflow-wrap:anywhere;min-width:0}.catalog-fields input,.catalog-fields select{width:100%;min-width:0}.catalog-fields .catalog-check{align-items:center;gap:8px;display:flex}.catalog-fields .catalog-check input{flex:none;width:18px;height:18px}.learning-catalog{color:#243e37;letter-spacing:0;max-width:1600px;margin:0 auto;padding:24px}.learning-catalog *{box-sizing:border-box}.learning-catalog h1{margin:0 0 8px;font-size:20px}.learning-catalog h2{margin:0 0 18px;font-size:16px}.learning-catalog h3{margin:0;font-size:16px}.learning-catalog h4{margin:0 0 12px;font-size:14px}.learning-catalog p{overflow-wrap:anywhere;line-height:1.6}.learning-heading,.learning-context,.learning-editor header,.learning-pagination{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;display:flex}.learning-heading p{color:#646a73;margin:0;font-size:14px}.learning-catalog button{color:#1f2329;cursor:pointer;min-height:36px;font:inherit;overflow-wrap:anywhere;background:#fff;border:1px solid #e5e9f0;border-radius:5px;justify-content:center;align-items:center;gap:7px;padding:7px 12px;font-size:14px;line-height:1.4;display:inline-flex}.learning-catalog button svg{flex:none}.learning-catalog button:hover:not(:disabled){background:#f8fafd;border-color:#2563eb}.learning-catalog button:disabled{opacity:.5;cursor:not-allowed}.learning-catalog :focus-visible{outline-offset:3px;outline:3px solid #317aaf}.learning-tabs{border-bottom:1px solid #e5e9f0;gap:8px;margin:24px 0;display:flex;overflow-x:auto}.learning-tabs button{background:0 0;border:0;border-bottom:3px solid #0000;border-radius:0;flex:none;padding:12px 18px}.learning-tabs button[aria-current]{color:#1f2329;border-bottom-color:#2563eb;font-weight:700}.learning-body{min-width:0}.learning-toolbar{flex-wrap:wrap;align-items:end;gap:12px;margin:16px 0;display:flex}.learning-toolbar .learning-field{flex:0 200px;margin:0}.learning-field{color:#40594f;gap:6px;min-width:0;margin:0 0 14px;font-size:14px;display:grid}.learning-catalog input:not([type=checkbox]),.learning-catalog select,.learning-catalog textarea{color:#20382f;width:100%;min-width:0;min-height:38px;font:inherit;background:#fff;border:1px solid #e5e9f0;border-radius:4px;padding:8px 10px}.learning-catalog textarea{resize:vertical;min-height:90px}.learning-catalog .learning-json{min-height:250px;font-family:monospace;font-size:13px}.learning-catalog fieldset{border:0;min-width:0;margin:0;padding:0}.learning-catalog fieldset:disabled input,.learning-catalog fieldset:disabled textarea{background:#f4f6f5}.learning-table-scroll{max-width:100%;overflow-x:auto}.learning-catalog table{border-collapse:collapse;background:#fff;width:100%;min-width:760px;font-size:14px}.learning-catalog th,.learning-catalog td{text-align:left;vertical-align:top;overflow-wrap:anywhere;border-bottom:1px solid #e5e9f0;max-width:340px;padding:13px 14px}.learning-catalog th{color:#1f2329;background:#f8fafd;font-weight:600}.learning-catalog td small{color:#646a73;margin-top:6px;line-height:1.5;display:block}.learning-catalog td p{margin:8px 0}.learning-catalog summary{cursor:pointer;color:#1f2329}.learning-catalog ol{padding-left:20px}.learning-actions{flex-wrap:wrap;gap:6px;display:flex}.learning-status{color:#695312;white-space:nowrap;background:#fff4ce;border-radius:4px;padding:4px 7px;font-size:12px;display:inline-block}.learning-status-published{color:#1f2329;background:#e5e9f0}.learning-status-rejected{color:#9f2d31;background:#fff0f0}.learning-status-archived{color:#555;background:#eee}.learning-pagination{justify-content:flex-end;margin-top:16px;font-size:14px}.learning-context{border-bottom:1px solid #e5e9f0;justify-content:flex-start;padding:12px 0;font-size:14px}.learning-editor{border-top:2px solid #2563eb;border-bottom:1px solid #e5e9f0;max-width:1000px;margin:20px 0 28px;padding:20px 0}.learning-editor header{margin-bottom:20px}.learning-form-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:0 20px;display:grid}.learning-editor footer{gap:10px;margin-top:18px;display:flex}.learning-catalog .learning-primary{color:#fff;background:#2563eb;border-color:#2563eb}.learning-catalog .learning-primary:hover:not(:disabled){color:#fff;background:#1d4ed8}.learning-check{align-items:flex-start;gap:10px;font-size:14px;line-height:1.6;display:flex}.learning-check input{flex:none;width:18px;height:18px}.learning-error{color:#a12b32;padding:8px 0}.learning-empty{color:#646a73;align-items:center;gap:16px;padding:36px 0;display:flex}.learning-notice{background:#f8fafd;border-left:3px solid #2563eb;margin:16px 0;padding:12px 16px}.learning-phase{border-top:1px solid #e5e9f0;padding:20px 0 6px}.learning-rules{max-width:1000px}.learning-rules h3{margin:24px 0 16px}.learning-budget{grid-template-columns:repeat(5,minmax(0,1fr));gap:14px;display:grid}@media (max-width:700px){.learning-catalog{padding:16px}.learning-form-grid{grid-template-columns:1fr}.learning-budget{grid-template-columns:repeat(2,minmax(0,1fr))}.learning-toolbar .learning-field{flex:140px}.learning-tabs button{padding:10px 13px}}.schedule-overview{color:#253b34;letter-spacing:0;min-width:0;max-width:100%;padding:24px;overflow-x:auto}.schedule-overview *,.overview-details *{box-sizing:border-box}.schedule-overview h1{margin:0;font-size:20px;line-height:1.35}.schedule-overview h2{overflow-wrap:anywhere;margin:0;font-size:18px;line-height:1.4}.schedule-overview p{overflow-wrap:anywhere;line-height:1.5}.schedule-overview button,.overview-details button{color:#1f2329;min-height:36px;font:inherit;cursor:pointer;background:#fff;border:1px solid #e5e9f0;border-radius:4px;justify-content:center;align-items:center;gap:7px;padding:7px 11px;font-size:14px;display:inline-flex}.schedule-overview button:disabled{opacity:.45;cursor:not-allowed}.schedule-overview button:hover:not(:disabled),.overview-details button:hover{background:#f8fafd;border-color:#2563eb}.schedule-overview button svg,.overview-details button svg{flex:none}.schedule-overview :focus-visible,.overview-details :focus-visible{outline-offset:2px;outline:3px solid #2780af}.overview-page-header{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:18px;min-width:1164px;margin-bottom:22px;display:flex}.overview-page-header p{color:#646a73;margin:6px 0 0;font-size:13px}.schedule-overview .overview-bookings{color:#fff;background:#2563eb;border-color:#2563eb}.schedule-overview .overview-bookings:hover{color:#fff;background:#1d4ed8}.overview-layout{grid-template-columns:220px minmax(0,1fr);align-items:start;gap:24px;min-width:1164px;display:grid}.overview-teachers{border-right:1px solid #e5e9f0;min-width:0;padding-right:18px}.overview-teachers>header{justify-content:space-between;align-items:center;gap:10px;margin-bottom:14px;display:flex}.schedule-overview .overview-icon,.overview-details .overview-icon{flex:0 0 36px;width:36px;height:36px;padding:7px}.overview-search{background:#fff;border:1px solid #e5e9f0;border-radius:4px;align-items:center;gap:7px;min-height:38px;padding:0 9px;display:flex}.overview-search svg{color:#646a73;flex:none}.overview-search input{color:#293e34;width:100%;min-width:0;min-height:36px;font:inherit;background:0 0;border:0;padding:6px 0;font-size:14px}.overview-teacher-filters{flex-wrap:wrap;gap:10px;margin-top:14px;font-size:13px;display:flex}.overview-teacher-filters label{align-items:center;gap:5px;display:flex}.overview-teacher-filters input{accent-color:#2563eb;width:16px;height:16px;margin:0}.overview-teacher-count{color:#646a73;margin:12px 0 8px;font-size:12px}.overview-teacher-list{scrollbar-gutter:stable;max-height:69vh;margin:0;padding:0;list-style:none;overflow-y:auto}.schedule-overview .overview-teacher-list button{text-align:left;background:0 0;border:0;border-left:3px solid #0000;border-radius:0;justify-content:stretch;gap:5px;width:100%;padding:11px 10px;display:grid}.overview-teacher-list strong{overflow-wrap:anywhere;font-size:14px;font-weight:600}.overview-teacher-list span{color:#646a73;font-size:12px}.schedule-overview .overview-teacher-list button[aria-pressed=true]{background:#eaf2ff;border-left-color:#2563eb}.overview-main{min-width:0}.overview-week-toolbar{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;min-height:38px;margin-bottom:16px;display:flex}.overview-week-controls{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.overview-current-template{color:#646a73;font-size:13px}.overview-week-controls input{color:#1f2329;width:150px;min-height:36px;font:inherit;background:#fff;border:1px solid #e5e9f0;border-radius:4px;padding:6px 8px;font-size:14px}.overview-view-switch{gap:0;display:inline-flex}.overview-view-switch button{border-radius:0;min-width:92px}.overview-view-switch button:first-child{border-radius:4px 0 0 4px}.overview-view-switch button:last-child{border-left:0;border-radius:0 4px 4px 0}.overview-view-switch button[aria-pressed=true]{color:#1f2329;background:#e5e9f0;font-weight:600;box-shadow:inset 0 -2px #2563eb}.overview-context{flex-wrap:wrap;align-items:baseline;gap:8px 16px;margin:0 0 14px;display:flex}.overview-context>span{color:#646a73;font-size:12px}.overview-asof{margin-left:auto}.overview-figure-row{border-top:1px solid #e5e9f0;border-bottom:1px solid #e5e9f0;flex-wrap:wrap;align-items:center;gap:8px 24px;margin:0 0 14px;padding:10px 0 12px;display:flex}.overview-summary{flex:320px;grid-template-columns:repeat(4,minmax(0,1fr));gap:4px 18px;margin:0;display:grid}.overview-summary dt{color:#646a73;overflow-wrap:anywhere;font-size:12px;line-height:1.4}.overview-summary dd{font-variant-numeric:tabular-nums;margin:4px 0 0;font-size:16px;font-weight:600;line-height:1.2}.overview-legend{color:#1f2329;flex-wrap:wrap;gap:6px 12px;margin:0;font-size:12px;display:flex}.overview-legend>span{align-items:center;gap:5px;display:inline-flex}.overview-swatch{border:1px solid #e5e9f0;border-radius:2px;flex:none;width:13px;height:13px;display:inline-block}.overview-grid-scroll{scrollbar-gutter:stable;isolation:isolate;background:#fff;border:1px solid #e5e9f0;min-height:300px;max-height:min(70vh,860px);overflow:auto}.overview-grid{table-layout:fixed;border-collapse:separate;border-spacing:0;width:100%;font-size:12px}.overview-grid .overview-time-column{width:56px}.overview-grid th,.overview-grid td{border-bottom:1px solid #e5e9f0;border-right:1px solid #e5e9f0;padding:0}.overview-grid th:last-child,.overview-grid td:last-child{border-right:0}.overview-grid thead th{z-index:3;color:#1f2329;text-align:center;background:#f8fafd;height:42px;font-weight:500;position:sticky;top:0}.overview-grid thead th strong{margin-bottom:4px;font-size:13px;font-weight:600;display:block}.overview-grid thead th span{color:#646a73;font-size:12px}.overview-grid tbody th{z-index:2;color:#646a73;font-variant-numeric:tabular-nums;text-align:center;background:#f8fafd;font-weight:400;position:sticky;left:0}.overview-grid thead th:first-child{z-index:4;left:0}.overview-grid tbody tr{height:32px}.schedule-overview .overview-slot{text-align:left;width:100%;height:32px;min-height:32px;box-shadow:none;border:0;border-radius:0;flex-direction:column;justify-content:center;align-items:stretch;gap:1px;padding:2px 6px;font-size:12px;display:flex;position:relative;overflow:hidden}.schedule-overview .overview-slot:hover{filter:brightness(.97);outline-offset:-2px;outline:2px solid #2563eb}.schedule-overview .overview-slot:focus-visible{outline-offset:-3px;z-index:1}.overview-slot-title,.overview-slot-detail{text-overflow:ellipsis;white-space:nowrap;display:block;overflow:hidden}.overview-slot-title{font-size:12px;font-weight:500;line-height:15px}.overview-slot-detail{opacity:.85;font-size:10px;line-height:12px}.schedule-overview .overview-tone-open,.overview-tone-open{color:#1f2329;background:#f8fafd}.schedule-overview .overview-tone-planned,.overview-tone-planned{color:#1f2329;background:#e5e9f0}.schedule-overview .overview-tone-conflict,.overview-tone-conflict{color:#9b3043;background:#fbe6e8}.schedule-overview .overview-tone-ineligible,.overview-tone-ineligible{color:#795916;background:#fff0ce}.schedule-overview .overview-tone-closed,.overview-tone-closed{color:#8b958e;background:#f7f8f7}.schedule-overview .overview-tone-booked,.overview-tone-booked{color:#315f8b;background:#e1edf9}.schedule-overview .overview-tone-progress,.overview-tone-progress{color:#1f2329;background:#e5e9f0}.schedule-overview .overview-tone-ended,.overview-tone-ended{color:#4e5c66;background:#edf0f2}.schedule-overview .overview-tone-pending,.overview-tone-pending{color:#845a14;background:#fff0d4}.schedule-overview .overview-tone-canceled,.overview-tone-canceled{color:#776975;background:#f3f1f3}.schedule-overview .overview-tone-leave,.overview-tone-leave{color:#a06414;background:#fcf0de}.schedule-overview .overview-slot-bookable{background:#fff;border:1px dashed #2563eb;border-radius:4px}.overview-slot-free{color:#2563eb;align-items:center;gap:3px;font-weight:600;display:flex}.overview-slot-free svg{flex:none}.schedule-overview .overview-tone-blocked,.overview-tone-blocked{color:#82506c;background:#f1e7ed}.schedule-overview .overview-slot-outside{box-shadow:inset 3px 0 #c47a16}.overview-swatch-outside{background:#fff;border-left:3px solid #c47a16}.overview-empty-note{color:#646a73;margin:8px 0 12px;font-size:13px}.overview-muted{color:#646a73;font-size:13px}.overview-error,.overview-load-error{color:#a1313c;font-size:14px}.overview-load-error{padding:18px 0}.overview-grid-placeholder{color:#646a73;background:#f8fafd;place-content:center;min-height:360px;font-size:14px;display:grid}.overview-no-teacher{color:#646a73;flex-direction:column;justify-content:center;align-items:center;gap:10px;min-height:360px;font-size:14px;display:flex}.overview-details{color:#1f2329;letter-spacing:0;background:#fff;border:1px solid #e5e9f0;border-radius:6px;width:min(600px,100vw - 28px);max-height:calc(100svh - 40px);padding:0;box-shadow:0 16px 48px #18332433}.overview-details::backdrop{background:#14271f66}.overview-details>header{z-index:1;background:#fff;border-bottom:1px solid #e5e9f0;justify-content:space-between;align-items:flex-start;gap:16px;padding:18px 22px;display:flex;position:sticky;top:0}.overview-details h2{margin:0;font-size:16px;line-height:1.4}.overview-details header p{color:#646a73;overflow-wrap:anywhere;margin:7px 0 0;font-size:13px}.overview-detail-body{padding:18px 22px}.overview-slot-facts{grid-template-columns:repeat(2,minmax(0,1fr));gap:13px 18px;margin:0 0 22px;font-size:13px;display:grid}.overview-slot-facts dt{color:#646a73}.overview-slot-facts dd{margin:5px 0 0}.overview-details h3{align-items:center;gap:9px;margin:22px 0 12px;font-size:16px;display:flex}.overview-details h3 span{color:#646a73;font-size:12px}.overview-conflict-message{color:#a43849;align-items:center;gap:8px;font-size:13px;display:flex}.overview-records{margin:0;padding:0;list-style:none}.overview-records>li{border-top:1px solid #e5e9f0;padding:16px 0}.overview-record-heading{overflow-wrap:anywhere;flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:8px;font-size:14px;display:flex}.overview-records p{color:#646a73;overflow-wrap:anywhere;margin:7px 0 12px;font-size:13px}.overview-records dl{gap:8px;margin:0;font-size:13px;display:grid}.overview-records dl>div{grid-template-columns:76px minmax(0,1fr);gap:10px;display:grid}.overview-records dt{color:#646a73}.overview-records dd{overflow-wrap:anywhere;margin:0}.overview-badge{color:#3b627a;background:#e6edf3;border-radius:3px;padding:3px 7px;font-size:12px}.overview-badge-green,.overview-lesson-in_progress{color:#1f2329;background:#e5e9f0}.overview-badge-amber,.overview-lesson-pending,.overview-lesson-failed,.overview-lesson-cancel_pending{color:#815e18;background:#fff0d0}.overview-lesson-ended,.overview-lesson-canceled{color:#69737b;background:#eceef0}.overview-record-canceled strong{color:#777}.overview-details>footer{background:#fff;border-top:1px solid #e5e9f0;justify-content:flex-end;padding:14px 22px;display:flex}.overview-sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}@media (max-width:1050px){.overview-layout{grid-template-columns:185px minmax(0,1fr);gap:16px}.overview-teachers{padding-right:12px}}@media (max-width:700px){.schedule-overview{padding:16px}.overview-grid{min-width:920px}.overview-figure-row{align-items:flex-start}.overview-grid-scroll{max-height:65svh}.overview-details>header,.overview-detail-body,.overview-details>footer{padding-left:16px;padding-right:16px}}.teacher-relations{color:#293f35;letter-spacing:0;min-width:0;max-width:100%;padding:24px;overflow-x:auto}.teacher-relations *,.relations-dialog *{box-sizing:border-box}.relations-content{min-width:1180px}.teacher-relations h1{margin:0;font-size:20px;line-height:1.4}.teacher-relations h2{margin:0;font-size:16px}.teacher-relations p,.relations-dialog p{overflow-wrap:anywhere;line-height:1.6}.teacher-relations button,.relations-dialog button{color:#1f2329;min-height:36px;font:inherit;cursor:pointer;background:#fff;border:1px solid #e5e9f0;border-radius:4px;justify-content:center;align-items:center;gap:7px;padding:7px 11px;font-size:14px;display:inline-flex}.teacher-relations button:hover:not(:disabled),.relations-dialog button:hover:not(:disabled){background:#f8fafd;border-color:#2563eb}.teacher-relations button:disabled,.relations-dialog button:disabled{opacity:.5;cursor:not-allowed}.teacher-relations button svg,.relations-dialog button svg{flex:none}.teacher-relations :focus-visible,.relations-dialog :focus-visible{outline-offset:2px;outline:3px solid #2f86ac}.relations-page-heading,.relations-student-heading,.relations-students>header{justify-content:space-between;align-items:center;gap:18px;display:flex}.relations-page-heading{margin-bottom:24px}.relations-page-heading p,.relations-student-heading p{color:#646a73;margin:6px 0 0;font-size:13px}.relations-readonly{color:#646a73;background:#f8fafd;padding:4px 8px;font-size:13px}.relations-layout{grid-template-columns:230px minmax(0,1fr);gap:24px;display:grid}.relations-students{border-right:1px solid #e5e9f0;min-width:0;padding-right:18px}.relations-students>header{margin-bottom:14px}.teacher-relations .relations-icon,.relations-dialog .relations-icon{flex:0 0 36px;width:36px;height:36px;padding:7px}.relations-search{background:#fff;border:1px solid #e5e9f0;border-radius:4px;align-items:center;gap:8px;min-height:38px;padding:0 8px;display:flex}.relations-search svg{color:#646a73;flex:none}.relations-search input{width:100%;min-width:0;height:36px;font:inherit;color:#1f2329;background:0 0;border:0;padding:6px 0;font-size:14px}.relations-student-list{scrollbar-gutter:stable;max-height:70vh;margin:0;padding:0;list-style:none;overflow-y:auto}.teacher-relations .relations-student-list button{text-align:left;background:0 0;border:0;border-left:3px solid #0000;border-radius:0;justify-content:stretch;gap:6px;width:100%;padding:12px 9px;display:grid}.relations-student-list strong{overflow-wrap:anywhere;font-size:14px}.relations-student-list small{color:#646a73;font-size:12px}.teacher-relations .relations-student-list button[aria-pressed=true]{background:#e5e9f0;border-left-color:#2563eb}.relations-main{min-width:0}.relations-toolbar{justify-content:space-between;align-items:center;gap:16px;margin:20px 0;display:flex}.relations-tabs{display:inline-flex}.relations-tabs button{border-radius:0;min-width:92px}.relations-tabs button:first-child{border-radius:4px 0 0 4px}.relations-tabs button:last-child{border-left:0;border-radius:0 4px 4px 0}.relations-tabs button[aria-pressed=true]{background:#e5e9f0;font-weight:600;box-shadow:inset 0 -2px #2563eb}.relations-field{gap:7px;min-width:0;margin-bottom:16px;font-size:14px;display:grid}.relations-field select,.relations-field textarea{color:#1f2329;width:100%;min-width:0;min-height:38px;font:inherit;background:#fff;border:1px solid #e5e9f0;border-radius:4px;padding:8px 10px}.relations-field textarea{resize:vertical;min-height:100px}.relations-toolbar .relations-field{align-items:center;gap:10px;margin:0;display:flex}.relations-toolbar select{width:240px}.relations-actions{flex-wrap:wrap;align-items:center;gap:7px;display:flex}.relations-actions button{white-space:nowrap}.relations-table{table-layout:fixed;border-collapse:collapse;background:#fff;width:100%;font-size:13px}.relations-table th,.relations-table td{text-align:left;vertical-align:top;overflow-wrap:anywhere;border-bottom:1px solid #e5e9f0;padding:13px 10px;line-height:1.6}.relations-table th{color:#646a73;background:#f8fafd;font-size:12px;font-weight:600}.relations-table th:first-child{width:190px}.relations-table th:nth-child(2),.relations-table th:nth-child(3){width:155px}.relations-table th:nth-child(4){width:115px}.relations-table th:last-child{width:170px}.relations-table small{color:#646a73;margin-top:5px;font-size:11px;display:block}.relations-count{font-variant-numeric:tabular-nums;font-size:16px;font-weight:500}.relations-reason{white-space:pre-wrap}.relations-badge{border-radius:3px;padding:3px 7px;font-size:12px;display:inline-block}.relations-badge-active{color:#1f2329;background:#e5e9f0}.relations-badge-ended{color:#6b7680;background:#eef0f1}.relations-count-note{color:#646a73;margin-top:15px;font-size:12px}.relations-muted{color:#646a73;font-size:13px}.relations-empty,.relations-no-student{color:#646a73;place-content:center;min-height:300px;font-size:14px;display:grid}.relations-error,.relations-load-error{color:#a33940;font-size:14px}.relations-load-error{padding:12px 0}.relations-notice{color:#1f2329;background:#e5e9f0;padding:12px 15px;font-size:13px}.relations-pending-notice{color:#7b601e;background:#fff4d9;margin:14px 0;padding:12px 15px;font-size:13px}.relations-pending-notice p{margin:0 0 10px}.relations-dialog{color:#1f2329;letter-spacing:0;background:#fff;border:1px solid #e5e9f0;border-radius:6px;width:min(760px,100vw - 28px);max-height:calc(100svh - 40px);padding:0;box-shadow:0 16px 48px #15362433}.relations-dialog::backdrop{background:#192d2266}.relations-dialog>header{z-index:1;background:#fff;border-bottom:1px solid #e5e9f0;justify-content:space-between;align-items:center;gap:14px;padding:18px 22px;display:flex;position:sticky;top:0}.relations-dialog h2{overflow-wrap:anywhere;margin:0;font-size:16px}.relations-dialog-body{padding:18px 22px}.relations-dialog fieldset{border:0;min-width:0;margin:0;padding:0}.relations-dialog footer{background:#fff;border-top:1px solid #e5e9f0;flex-wrap:wrap;justify-content:flex-end;gap:10px;padding:16px 22px;display:flex}.relations-dialog .relations-primary{color:#fff;background:#2563eb;border-color:#2563eb}.relations-dialog .relations-primary:hover:not(:disabled){background:#1d4ed8}.relations-student-context{color:#646a73;margin:0 0 16px;font-size:14px}.relations-source{border-top:1px solid #e5e9f0;border-bottom:1px solid #e5e9f0;flex-wrap:wrap;gap:8px 14px;margin-bottom:16px;padding:12px 0;font-size:14px;display:flex}.relations-source small{color:#646a73}.relations-consequence{color:#1f2329;background:#f8fafd;padding:12px 14px;font-size:13px}.relations-consequence p{margin:0 0 7px}.relations-consequence p:last-child{margin:0}.relations-confirm{align-items:flex-start;gap:10px;margin-top:18px;font-size:14px;line-height:1.6;display:flex}.relations-confirm input{flex:none;width:18px;height:18px;margin-top:3px}.relations-history-list{margin:0;padding:0;list-style:none}.relations-history-list>li{border-top:1px solid #e5e9f0;padding:18px 0}.relations-history-list header{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:10px;font-size:14px;display:flex}.relations-history-list header span{color:#646a73;font-size:12px}.relations-history-snapshots{grid-template-columns:repeat(2,minmax(0,1fr));gap:20px;display:grid}.relations-snapshot{overflow-wrap:anywhere;min-width:0;font-size:13px}.relations-snapshot h4{color:#646a73;margin:0 0 9px;font-size:13px}.relations-snapshot dl{gap:8px;margin:12px 0 0;display:grid}.relations-snapshot dl>div{grid-template-columns:64px minmax(0,1fr);gap:8px;display:grid}.relations-snapshot dt{color:#646a73}.relations-snapshot dd{white-space:pre-wrap;margin:0}@media (max-width:700px){.teacher-relations{padding:16px}.relations-dialog>header,.relations-dialog-body,.relations-dialog footer{padding-left:16px;padding-right:16px}.relations-history-snapshots{grid-template-columns:1fr}}.holiday-calendar{color:#1f2329;letter-spacing:0;min-width:0;max-width:100%;padding:24px;overflow-x:auto}.holiday-calendar *,.holiday-dialog *{box-sizing:border-box}.holiday-calendar-content{min-width:1120px}.holiday-calendar h1{margin:0;font-size:20px;line-height:1.4}.holiday-calendar h2{margin:0;font-size:16px}.holiday-calendar p,.holiday-dialog p{overflow-wrap:anywhere;line-height:1.6}.holiday-calendar button,.holiday-dialog button{color:#1f2329;cursor:pointer;min-height:36px;font:inherit;background:#fff;border:1px solid #e5e9f0;border-radius:4px;justify-content:center;align-items:center;gap:7px;padding:7px 11px;font-size:14px;display:inline-flex}.holiday-calendar button:hover:not(:disabled),.holiday-dialog button:hover:not(:disabled){background:#f8fafd;border-color:#2563eb}.holiday-calendar button:disabled,.holiday-dialog button:disabled{cursor:not-allowed;opacity:.5}.holiday-calendar button svg,.holiday-dialog button svg{flex:none}.holiday-calendar :focus-visible,.holiday-dialog :focus-visible{outline-offset:2px;outline:3px solid #2b83ae}.holiday-page-heading,.holiday-toolbar{justify-content:space-between;align-items:center;gap:20px;display:flex}.holiday-page-heading{margin-bottom:24px}.holiday-page-heading p{color:#646a73;margin:5px 0 0;font-size:13px}.holiday-year-controls{align-items:center;gap:10px;display:flex}.holiday-year-controls label{align-items:center;gap:9px;font-size:14px;display:flex}.holiday-year-controls input{color:#1f2329;width:104px;height:36px;font:inherit;background:#fff;border:1px solid #e5e9f0;border-radius:4px;padding:7px 9px}.holiday-calendar .holiday-icon,.holiday-dialog .holiday-icon{flex:0 0 36px;width:36px;height:36px;padding:7px}.holiday-scope-note{color:#646a73;border-bottom:1px solid #e5e9f0;margin:12px 0;padding:12px 0;font-size:13px}.holiday-list-summary{align-items:baseline;gap:18px;margin:18px 0 14px;display:flex}.holiday-list-summary span{color:#646a73;font-size:12px}.holiday-table{border-collapse:collapse;table-layout:fixed;background:#fff;width:100%;font-size:13px}.holiday-table th,.holiday-table td{text-align:left;vertical-align:top;overflow-wrap:anywhere;border-bottom:1px solid #e5e9f0;padding:13px 12px;line-height:1.6}.holiday-table th{color:#646a73;background:#f8fafd;font-size:12px;font-weight:600}.holiday-table th:first-child{width:135px}.holiday-table th:nth-child(3),.holiday-table th:nth-child(4){width:90px}.holiday-table th:nth-child(5){width:240px}.holiday-table th:last-child{width:150px}.holiday-table small,.holiday-review small{color:#646a73;margin-top:5px;font-size:11px;display:block}.holiday-row-actions{align-items:center;gap:12px;display:flex}.holiday-row-actions>span{color:#646a73;font-size:12px}.holiday-source{color:#276b83;overflow-wrap:anywhere;align-items:center;gap:6px;font-size:13px;text-decoration:underline;display:inline-flex}.holiday-source svg{flex:none}.holiday-state{border-radius:3px;padding:3px 7px;font-size:12px;display:inline-block}.holiday-state-enabled{color:#1f2329;background:#e5e9f0}.holiday-state-disabled{color:#6f7c82;background:#edf0f1}.holiday-exception{color:#815d19}.holiday-muted{color:#646a73;font-size:13px}.holiday-empty{color:#646a73;place-content:center;min-height:220px;font-size:14px;display:grid}.holiday-error,.holiday-load-error{color:#a63e46;font-size:14px}.holiday-notice{color:#1f2329;background:#e5e9f0;padding:11px 14px;font-size:13px}.holiday-pending{color:#7c6024;background:#fff3d5;margin:15px 0;padding:12px 14px;font-size:13px}.holiday-pending p{margin:0 0 9px}.holiday-dialog{color:#1f2329;letter-spacing:0;background:#fff;border:1px solid #e5e9f0;border-radius:6px;width:min(580px,100vw - 28px);max-height:calc(100svh - 40px);padding:0;box-shadow:0 16px 48px #14392333}.holiday-dialog::backdrop{background:#1c342866}.holiday-dialog>header{z-index:1;background:#fff;border-bottom:1px solid #e5e9f0;justify-content:space-between;align-items:center;gap:16px;padding:18px 22px;display:flex;position:sticky;top:0}.holiday-dialog h2{margin:0;font-size:16px}.holiday-dialog-body{padding:20px 22px}.holiday-dialog fieldset{border:0;min-width:0;margin:0;padding:0}.holiday-field{gap:7px;margin-bottom:16px;font-size:14px;display:grid}.holiday-field input,.holiday-field select{color:#1f2329;width:100%;min-width:0;min-height:38px;font:inherit;background:#fff;border:1px solid #e5e9f0;border-radius:4px;padding:8px 10px}.holiday-toggle,.holiday-confirm{align-items:flex-start;gap:10px;margin:16px 0;font-size:14px;line-height:1.6;display:flex}.holiday-toggle input,.holiday-confirm input{flex:none;width:18px;height:18px;margin-top:3px}.holiday-rule-preview{background:#f8fafd;padding:12px;font-size:13px}.holiday-rule-preview small{margin-top:6px;display:block}.holiday-review{gap:15px;margin:0 0 20px;font-size:14px;display:grid}.holiday-review>div{grid-template-columns:92px minmax(0,1fr);gap:12px;display:grid}.holiday-review dt{color:#646a73}.holiday-review dd{overflow-wrap:anywhere;margin:0}.holiday-consequence{color:#1f2329;background:#f8fafd;padding:12px 14px;font-size:13px}.holiday-consequence p{margin:0 0 7px}.holiday-consequence p:last-child{margin:0}.holiday-dialog footer{background:#fff;border-top:1px solid #e5e9f0;flex-wrap:wrap;justify-content:flex-end;gap:10px;padding:16px 22px;display:flex}.holiday-dialog .holiday-primary{color:#fff;background:#2563eb;border-color:#2563eb}.holiday-dialog .holiday-primary:hover:not(:disabled){background:#1d4ed8}@media (max-width:700px){.holiday-calendar{padding:16px}.holiday-dialog>header,.holiday-dialog-body,.holiday-dialog footer{padding-left:16px;padding-right:16px}}.platform-reminders{color:#1f2329;letter-spacing:0;border-top:1px solid #e5e9f0;min-width:0;max-width:100%;padding:20px 0;overflow-x:auto}.platform-reminders *{box-sizing:border-box}.platform-reminders-content{min-width:980px}.platform-reminders header{justify-content:space-between;align-items:center;gap:20px;margin-bottom:14px;display:flex}.platform-reminders h2{margin:0;font-size:16px}.platform-reminders header p{color:#646a73;margin:6px 0 0;font-size:13px}.platform-reminders-meta{color:#646a73;align-items:center;gap:12px;font-size:12px;display:flex}.platform-reminders button{color:#1f2329;cursor:pointer;min-height:36px;font:inherit;background:#fff;border:1px solid #e5e9f0;border-radius:4px;justify-content:center;align-items:center;padding:7px 11px;font-size:14px;display:inline-flex}.platform-reminders-meta button{width:36px;padding:7px}.platform-reminders button:disabled{cursor:not-allowed;opacity:.5}.platform-reminders button:hover:not(:disabled){background:#f8fafd;border-color:#2563eb}.platform-reminders :focus-visible{outline-offset:2px;outline:3px solid #287ba7}.platform-reminders-count{color:#646a73;margin:8px 0;font-size:12px}.platform-reminders table{border-collapse:collapse;table-layout:fixed;background:#fff;width:100%;font-size:13px}.platform-reminders th,.platform-reminders td{text-align:left;vertical-align:top;overflow-wrap:anywhere;border-bottom:1px solid #e5e9f0;padding:13px 12px;line-height:1.6}.platform-reminders th{color:#1f2329;background:#f8fafd;font-size:12px;font-weight:600}.platform-reminders th:first-child{width:120px}.platform-reminders th:nth-child(2){width:105px}.platform-reminders th:nth-child(4){width:145px}.platform-reminders th:last-child{width:200px}.platform-reminders-note{white-space:pre-wrap}.platform-reminders small{color:#646a73;margin-top:5px;font-size:11px;display:block}.platform-reminder-state{border-radius:3px;padding:3px 7px;font-size:12px;display:inline-block}.platform-reminder-state-open{color:#2563eb;background:#eaf2ff}.platform-reminder-state-invalid{color:#69737f;background:#eef0f2}.platform-reminders-empty{color:#646a73;place-content:center;min-height:120px;font-size:14px;display:grid}.platform-reminders-error{color:#a43d45;padding:12px 0;font-size:14px}.account-management{color:#202a2c;letter-spacing:0;background:#fff;min-width:0;padding:24px}.account-management h1{font-size:20px}.am-heading,.am-actions,.account-management-dialog header,.account-management-dialog footer{align-items:center;gap:12px;display:flex}.am-heading,.account-management-dialog header{justify-content:space-between}.am-heading{flex-wrap:wrap;margin-bottom:20px}.account-management button,.account-management-dialog button{color:#263d35;background:#fff;border:1px solid #cbd5d2;border-radius:4px;justify-content:center;align-items:center;gap:8px;min-height:38px;padding:8px 12px;display:inline-flex}.account-management .am-primary,.account-management-dialog .am-primary{color:#fff;background:#2563eb;border-color:#2563eb}.account-management .am-icon,.account-management-dialog .am-icon{flex:0 0 38px;width:38px;height:38px;padding:0}.am-search{align-items:center;gap:10px;max-width:420px;margin-bottom:20px;display:flex}.am-search input,.account-management-dialog input:not([type=checkbox]){color:#202a2c;background:#fff;border:1px solid #e5e9f0;border-radius:4px;width:100%;min-width:0;padding:9px 10px}.am-table-wrap{overflow-x:auto}.account-management table{table-layout:fixed;border-collapse:collapse;text-align:left;width:100%;min-width:550px}.account-management th,.account-management td{overflow-wrap:anywhere;border-bottom:1px solid #e5e9f0;padding:14px 12px}.account-management th{background:#f2f5f4;font-weight:600}.account-management th:first-child{width:32%}.account-management th:nth-child(2){width:43%}.account-management th:nth-child(3){width:13%}.account-management th:nth-child(4){width:12%}.account-management small,.account-management-dialog small{color:#646a73;margin-top:3px;font-size:12px;display:block}.am-active{color:#2563eb}.am-inactive{color:#935724}.am-state{flex-wrap:wrap;align-items:center;gap:12px;padding:32px 0;display:flex}.am-error{color:#a52335;overflow-wrap:anywhere}.am-notice{color:#2563eb;padding-bottom:16px}.account-management-dialog{color:#202a2c;letter-spacing:0;background:#fff;border:1px solid #cbd5d2;border-radius:8px;width:min(520px,100% - 32px);max-height:calc(100dvh - 32px);padding:24px;overflow-y:auto}.account-management-dialog::backdrop{background:#141e1966}.account-management-dialog h2{margin:0;font-size:20px}.account-management-dialog header{margin-bottom:20px}.account-management-dialog fieldset{border:0;gap:16px;min-width:0;margin:0;padding:0;display:grid}.account-management-dialog label{gap:7px;min-width:0;display:grid}.account-management-dialog .am-roles{gap:12px;max-height:240px;overflow-y:auto}.am-roles legend{margin-bottom:10px}.account-management-dialog .am-check{align-items:center;gap:10px;display:flex}.am-check input{accent-color:#2563eb;flex:0 0 18px;width:18px;height:18px;margin:0}.am-check span{overflow-wrap:anywhere;min-width:0}.account-management-dialog input:disabled{background:#f2f5f4}.account-management-dialog footer{flex-wrap:wrap;justify-content:flex-end;margin-top:24px}.account-management-dialog .am-error{margin-bottom:16px}.am-confirm dl{grid-template-columns:52px minmax(0,1fr);gap:14px;margin:0 0 20px;display:grid}.am-confirm dt{color:#646a73}.am-confirm dd{overflow-wrap:anywhere;margin:0}.am-confirm p{line-height:1.6}@media (max-width:600px){.account-management{padding:16px}.account-management-dialog{padding:18px}}.recurring-page{color:#23322d;letter-spacing:0}.recurring-page h2{margin:20px 0 12px;font-size:20px}.recurring-page h3{font-size:16px}.recurring-actions{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.recurring-page button{justify-content:center;align-items:center;gap:6px;display:inline-flex}.recurring-page fieldset{border:0;min-width:0;margin:0;padding:0}.recurring-page legend{margin-bottom:14px;font-size:16px;font-weight:600}.recurring-editor,.recurring-batch,.recurring-results{border-top:1px solid #e5e9f0;margin-top:20px;padding:20px 0}.recurring-fields{grid-template-columns:repeat(3,minmax(150px,1fr));gap:16px;margin-bottom:16px;display:grid}.recurring-page label{flex-direction:column;gap:7px;min-width:0;font-size:14px;display:flex}.recurring-page input:not([type=checkbox]),.recurring-page select{box-sizing:border-box;width:100%;min-width:0;font:inherit;color:#23322d;background:#fff;border:1px solid #e5e9f0;border-radius:4px;padding:10px}.recurring-page .recurring-checkbox{overflow-wrap:anywhere;flex-direction:row;align-items:center;gap:8px}.recurring-students{grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;max-height:250px;padding:12px 0 20px;display:grid;overflow-y:auto}.recurring-students input{flex:none}.recurring-table-wrap{overflow-x:auto}.recurring-page table{border-collapse:collapse;width:100%;min-width:680px;font-size:14px}.recurring-page th{color:#646a73;background:#f8fafd;font-size:12px}.recurring-page th,.recurring-page td{text-align:left;vertical-align:top;overflow-wrap:anywhere;border-bottom:1px solid #e5e9f0;padding:13px 12px}.recurring-page small{color:#646a73;margin-top:5px;display:block}.recurring-page summary{cursor:pointer;margin-top:6px}.recurring-confirm{color:#1f2329;border-block:1px solid #e5e9f0;margin:16px 0;padding:16px 0}.recurring-page button:disabled{opacity:.55;cursor:default}.reports-page{box-sizing:border-box;color:#253a31;width:100%;min-width:0;padding:24px}.reports-header{justify-content:space-between;align-items:center;gap:12px;display:flex}.reports-header h1{align-items:center;gap:10px;margin:0;font-size:20px;display:flex}.reports-page button{color:#1f2329;min-height:38px;font:inherit;cursor:pointer;background:#fff;border:1px solid #ccd6cf;border-radius:4px;justify-content:center;align-items:center;padding:8px 12px;display:inline-flex}.reports-page button:hover{background:#f8fafd}.reports-page button:focus-visible,.reports-page input:focus-visible{outline-offset:2px;outline:2px solid #2563eb}.reports-tabs{border-bottom:1px solid #e5e9f0;flex-wrap:wrap;gap:8px;padding:22px 0 16px;display:flex}.reports-tabs button[aria-current=page]{color:#fff;background:#2563eb;border-color:#2563eb}.reports-filters{flex-wrap:wrap;align-items:center;gap:16px;margin:20px 0;display:flex}.reports-filters label{align-items:center;gap:8px;min-width:0;font-size:14px;display:flex}.reports-filters input{box-sizing:border-box;width:210px;min-width:0;max-width:100%;font:inherit;background:#fff;border:1px solid #ccd6cf;border-radius:4px;padding:9px 10px}.reports-basis,.reports-asof{color:#1f2329;overflow-wrap:anywhere;margin:12px 0;font-size:13px;line-height:1.6}.reports-table{width:100%;margin-top:16px;overflow-x:auto}.reports-table table{border-collapse:collapse;text-align:right;width:100%;min-width:640px;font-size:14px}.reports-table th,.reports-table td{white-space:nowrap;border-bottom:1px solid #e5e9f0;padding:13px 15px}.reports-table thead th{background:#f8fafd;font-weight:500}.reports-table th:first-child,.reports-table td:first-child{text-align:left}.reports-table tbody th{font-weight:500}.reports-table small{color:#646a73;margin-top:5px;font-weight:400;display:block}.reports-table tfoot{background:#f8fafd;font-weight:600}.reports-totals{border-block:1px solid #e5e9f0;grid-template-columns:repeat(4,minmax(0,1fr));gap:20px;padding:18px 0;display:grid}.reports-totals dt{color:#646a73;font-size:13px}.reports-totals dd{font-variant-numeric:tabular-nums;overflow-wrap:anywhere;margin:8px 0 0;font-size:20px}.reports-empty{color:#646a73;padding:30px 0}.reports-error{color:#a7323a;padding:20px 0}@media (max-width:700px){.reports-page{padding:16px}.reports-totals{grid-template-columns:repeat(2,minmax(0,1fr))}.reports-filters label{flex-wrap:wrap}.reports-header h1{font-size:16px}}.notifications-page{color:#26342d;letter-spacing:0;background:#fff;min-width:0;padding:24px}.notifications-page h1{margin:0 0 20px;font-size:20px}.notifications-tabs{border-bottom:1px solid #e5e9f0;gap:12px;margin-bottom:22px;display:flex}.notifications-page button{color:#1f2329;cursor:pointer;min-height:38px;font:inherit;background:#fff;border:1px solid #e5e9f0;border-radius:4px;justify-content:center;align-items:center;gap:6px;padding:8px 12px;display:inline-flex}.notifications-page button:disabled{opacity:.5;cursor:default}.notifications-page :focus-visible{outline-offset:2px;outline:2px solid #2563eb}.notifications-tabs button{border:0;border-bottom:3px solid #0000;border-radius:0}.notifications-tabs button[aria-selected=true]{border-bottom-color:#2563eb}.notifications-toolbar{justify-content:space-between;align-items:end;gap:16px;margin-bottom:20px;display:flex}.notifications-toolbar label{width:100%;max-width:320px}.notifications-page label{gap:8px;min-width:0;font-size:14px;display:grid}.notifications-page input,.notifications-page select,.notifications-page textarea{box-sizing:border-box;color:#26342d;width:100%;min-width:0;font:inherit;background:#fff;border:1px solid #e5e9f0;border-radius:4px;padding:9px}.notifications-page textarea{resize:vertical;font-family:monospace}.notifications-settings{max-width:640px}.notifications-settings fieldset{border:0;gap:20px;min-width:0;padding:0;display:grid}.notifications-page .notifications-toggle{align-items:center;display:flex}.notifications-toggle input{width:18px;height:18px}.notifications-field-options{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin:0;font-size:13px;display:grid}.notifications-field-options div{min-width:0}.notifications-field-options dt{overflow-wrap:anywhere}.notifications-field-options dd{color:#646a73;margin:3px 0 0}.notifications-error{color:#a52c38;overflow-wrap:anywhere}.notifications-table{width:100%;overflow-x:auto}.notifications-table table{border-collapse:collapse;width:100%;min-width:780px;font-size:14px}.notifications-table th,.notifications-table td{text-align:left;overflow-wrap:anywhere;border-bottom:1px solid #e5e9f0;max-width:260px;padding:12px}.notifications-table th{white-space:nowrap;background:#f8fafd}.notifications-table small{color:#646a73;margin-top:4px;display:block}.notifications-pagination{justify-content:end;align-items:center;gap:14px;margin-top:18px;display:flex}@media (max-width:560px){.notifications-page{padding:16px}.notifications-field-options{grid-template-columns:minmax(0,1fr)}}.teacher-attendance{color:#293e35;letter-spacing:0;min-width:0;max-width:100%;padding:24px;overflow-x:auto}.teacher-attendance *{box-sizing:border-box}.attendance-content{min-width:1320px}.teacher-attendance h1{margin:0;font-size:20px;line-height:1.4}.teacher-attendance h3{margin:0;font-size:16px}.teacher-attendance h4{margin:0 0 12px;font-size:14px}.teacher-attendance p{overflow-wrap:anywhere;line-height:1.6}.teacher-attendance button{color:#1f2329;min-height:36px;font:inherit;cursor:pointer;background:#fff;border:1px solid #e5e9f0;border-radius:4px;justify-content:center;align-items:center;gap:7px;padding:7px 11px;font-size:14px;line-height:1.45;display:inline-flex}.teacher-attendance button:hover:not(:disabled){background:#f8fafd;border-color:#2563eb}.teacher-attendance button:disabled{opacity:.5;cursor:not-allowed}.teacher-attendance button svg{flex:none}.teacher-attendance :focus-visible{outline-offset:2px;outline:3px solid #317eac}.attendance-page-heading{justify-content:space-between;align-items:center;gap:20px;margin-bottom:24px;display:flex}.attendance-page-heading p{color:#646a73;margin:5px 0 0;font-size:13px}.teacher-attendance .attendance-icon{flex:0 0 36px;width:36px;height:36px;padding:7px}.attendance-toolbar,.attendance-cycle-controls{align-items:center;gap:9px;display:flex}.attendance-toolbar{justify-content:space-between;margin:0 0 12px}.attendance-month input{color:#1f2329;width:168px;height:36px;font:inherit;background:#fff;border:1px solid #e5e9f0;border-radius:4px;padding:6px 9px;font-size:14px}.attendance-cycle-days{display:inline-flex}.attendance-cycle-days button{border-radius:0;min-width:64px}.attendance-cycle-days button:first-child{border-radius:4px 0 0 4px}.attendance-cycle-days button:last-child{border-left:0;border-radius:0 4px 4px 0}.attendance-cycle-days button[aria-pressed=true]{background:#e5e9f0;font-weight:600;box-shadow:inset 0 -2px #2563eb}.attendance-search{background:#fff;border:1px solid #e5e9f0;border-radius:4px;align-items:center;gap:8px;width:250px;height:36px;padding:0 9px;display:flex}.attendance-search svg{color:#646a73;flex:none}.attendance-search input{width:100%;min-width:0;height:34px;font:inherit;color:#1f2329;background:0 0;border:0;padding:5px 0;font-size:14px}.attendance-cycle-date{color:#646a73;margin:0 0 16px;font-size:13px}.attendance-periods{border-top:1px solid #e5e9f0;border-bottom:1px solid #e5e9f0;grid-template-columns:1fr 1fr 1fr;gap:24px;margin:0;padding:16px 0;display:grid}.attendance-periods dt{color:#646a73;font-size:12px}.attendance-periods dd{font-variant-numeric:tabular-nums;margin:7px 0 0;font-size:14px}.attendance-totals{border-bottom:1px solid #e5e9f0;grid-template-columns:repeat(4,1fr);gap:24px;margin:0;padding:18px 0;display:grid}.attendance-totals dt{color:#646a73;font-size:13px}.attendance-totals dd{font-variant-numeric:tabular-nums;margin:8px 0 0;font-size:20px}.attendance-totals dd small{margin-left:8px;font-size:12px;display:inline}.attendance-definitions{color:#646a73;flex-wrap:wrap;gap:4px 22px;padding:13px 0;font-size:12px;display:flex}.attendance-definitions p{margin:0}.attendance-result-count{color:#1f2329;margin:10px 0;font-size:13px}.teacher-attendance table{border-collapse:collapse;table-layout:fixed;background:#fff;width:100%;font-size:13px}.teacher-attendance th,.teacher-attendance td{text-align:left;vertical-align:top;overflow-wrap:anywhere;border-bottom:1px solid #e5e9f0;padding:12px 10px;line-height:1.5}.teacher-attendance th{color:#1f2329;background:#f8fafd;font-size:12px;font-weight:600}.teacher-attendance small{color:#646a73;margin-top:5px;font-size:11px;font-weight:400;line-height:1.5;display:block}.attendance-teachers-table>thead>tr>th:first-child{width:220px}.attendance-teachers-table>thead>tr>th:nth-child(2),.attendance-teachers-table>thead>tr>th:nth-child(3),.attendance-teachers-table>thead>tr>th:nth-child(4){width:85px}.attendance-teachers-table>thead>tr>th:nth-child(5){width:135px}.attendance-teachers-table>thead>tr>th:nth-child(8),.attendance-teachers-table>thead>tr>th:nth-child(9){width:160px}.attendance-teachers-table>thead>tr>th:last-child{width:170px}.teacher-attendance .attendance-expand{color:#1f2329;text-align:left;background:0 0;border:0;justify-content:flex-start;align-items:flex-start;width:100%;min-height:42px;padding:0}.attendance-expand svg{margin-top:3px}.attendance-expand strong{overflow-wrap:anywhere;font-size:14px}.attendance-expand>span{min-width:0}.attendance-teacher-expanded{background:#f8fafd}.attendance-metric-value{display:block}.attendance-metric-value strong{font-size:16px;font-weight:600}.teacher-attendance .attendance-flagged{color:#a05a16}.teacher-attendance .attendance-unknown{color:#737a82}.attendance-threshold{padding-bottom:9px}.attendance-threshold+.attendance-threshold{border-top:1px solid #e5e9f0;padding-top:8px}.attendance-threshold>span:first-child{color:#646a73;margin-bottom:4px;font-size:11px;display:block}.teacher-attendance td.attendance-expanded-cell{padding:0}.attendance-expanded{background:#fafcfb;border-left:3px solid #2563eb;padding:22px}.attendance-expanded>header p{color:#646a73;margin:7px 0 18px;font-size:12px}.attendance-monthly{border-bottom:1px solid #e5e9f0;padding-bottom:20px}.attendance-monthly-grid{grid-template-columns:repeat(4,1fr);gap:18px 24px;margin:0;display:grid}.attendance-monthly-grid dt{color:#646a73;font-size:12px}.attendance-monthly-grid dd{font-variant-numeric:tabular-nums;margin:6px 0 0;font-size:14px}.attendance-evidence{padding-top:20px}.attendance-evidence-scope{color:#646a73;margin:0 0 14px;font-size:12px}.attendance-evidence-table th:first-child{width:190px}.attendance-evidence-table th:nth-child(2){width:90px}.attendance-evidence-table th:nth-child(5){width:170px}.attendance-evidence-table th:last-child{width:180px}.attendance-badge{white-space:nowrap;border-radius:3px;padding:3px 6px;font-size:12px;display:inline-block}.attendance-badge-observed{color:#1f2329;background:#f8fafd}.attendance-badge-unknown{color:#6d7380;background:#ecedf1}.attendance-reason{white-space:pre-wrap;font-size:12px}.attendance-muted{color:#646a73;font-size:13px}.attendance-unavailable{color:#795e20;background:#fff5dd;padding:12px 15px;font-size:13px}.attendance-loading,.attendance-empty{color:#646a73;place-content:center;min-height:240px;font-size:14px;display:grid}.attendance-error{color:#a13e43;padding:22px 0;font-size:14px}.attendance-sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}@media (max-width:700px){.teacher-attendance{padding:16px}}.brand-mark{color:#fff;background:#1b7773;border-radius:6px;flex:none;place-items:center;width:30px;height:30px;font-size:17px;font-weight:700;display:inline-grid}.auth-layout{background:#f3f7f5;flex-direction:column;min-height:100svh;padding:28px clamp(20px,6vw,80px);display:flex}.auth-brand,.sidebar-brand{color:#1e3433;align-items:center;gap:10px;font-size:20px;font-weight:700;display:flex}.auth-panel{width:min(100%,400px);margin:auto;padding:36px 0}.auth-panel h1{margin:10px 0 30px;font-size:28px;line-height:1.3}.auth-footer{color:#718281;font-size:12px}.first-password-page .header-actions{border:1px solid #bacdca;border-radius:4px;gap:0;margin-bottom:10px;display:inline-flex;overflow:hidden}.first-password-page .header-actions button{color:#36504d;background:#fff;border:0;min-width:72px;min-height:36px;padding:6px 12px}.first-password-page .header-actions [aria-pressed=true]{color:#fff;background:#1b7773}.first-password-page h1{margin-bottom:12px}.first-password-page .auth-panel>p{color:#526a67;margin-bottom:20px}.first-password-page .text-button{justify-content:center;align-items:center;gap:8px;display:inline-flex}.eyebrow,.nav-label{color:#768685;font-size:12px}.auth-form,.dialog-form{gap:20px;display:grid}.auth-form label,.dialog-form label{color:#3c4b4c;gap:8px;font-weight:600;display:grid}.auth-form .field-hint{color:#607471;font-size:12px;font-weight:400}.auth-form input,.dialog-form input,.dialog-form select,.dialog-form textarea{color:#202a2c;background:#fff;border:1px solid #cbd7d5;border-radius:5px;width:100%;min-width:0;padding:11px 12px}.dialog-form textarea{resize:vertical}.primary-button{color:#fff;white-space:nowrap;background:#1b7773;border:1px solid #176e69;border-radius:5px;justify-content:center;align-items:center;gap:7px;min-height:40px;padding:8px 16px;font-weight:600;display:inline-flex}.primary-button:hover:not(:disabled){background:#146560}.auth-form .primary-button,.dialog-form .primary-button{width:100%}.form-error,.banner-error,.alert{color:#a33b36;line-height:1.5}.banner-error{background:#fff1ef;padding:12px 24px}.alert button,.text-button{color:#176e69;background:0 0;border:0;margin-left:10px;padding:4px;text-decoration:underline}.app-shell{grid-template-columns:224px minmax(0,1fr);min-height:100svh;display:grid}.sidebar{background:#fff;border-right:1px solid #dfe8e6;flex-direction:column;min-width:0;height:100svh;padding:24px 15px 14px;display:flex;position:sticky;top:0}.sidebar-brand{padding:0 9px 36px}.sidebar .nav-label{color:#607471;padding:18px 13px 7px}.sidebar nav .nav-label:first-child{padding-top:0}.sidebar nav{flex:1;gap:3px;min-height:0;display:grid;overflow-y:auto}.nav-item{text-align:left;color:#455957;background:0 0;border:0;border-radius:5px;align-items:center;gap:12px;width:100%;min-height:42px;padding:0 13px;font-weight:600;display:flex}.nav-item:hover{background:#f1f6f4}.nav-item.active{color:#1b7773;background:#e8f4f0}.sidebar-bottom{border-top:1px solid #e6eeec;align-items:center;gap:4px;margin-top:auto;padding:16px 2px 0;display:flex}.profile{color:#455556;flex:1;align-items:center;gap:9px;min-width:0;display:flex}.profile span{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.icon-button{color:#526764;background:0 0;border:1px solid #0000;border-radius:5px;flex:none;place-items:center;width:36px;height:36px;padding:0;display:inline-grid}.icon-button:hover:not(:disabled){color:#176e69;background:#eaf2f0}.app-main{min-width:0}.mobile-topbar{display:none}.work-area{max-width:1500px;margin:0 auto;padding:32px clamp(24px,3vw,46px) 60px}.page-header{flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:14px;margin-bottom:24px;display:flex}.page-header h1{margin-top:8px;font-size:25px;line-height:1.3}.header-actions{align-items:center;gap:8px;display:flex}.header-actions .icon-button{background:#fff;border-color:#d6e2df}.filter-strip{border-bottom:1px solid #dbe5e2;gap:2px;margin-bottom:17px;display:flex}.filter{color:#526461;background:0 0;border:0;border-bottom:2px solid #0000;min-width:65px;padding:11px 13px}.filter.active{color:#176e69;border-bottom-color:#1b7773;font-weight:700}.list-heading,.followup-row{grid-template-columns:minmax(190px,1fr) minmax(130px,.22fr) 115px 90px;align-items:center;gap:16px;display:grid}.list-heading{color:#6c7c79;background:#eff4f2;padding:12px 18px;font-size:12px}.followup-row{background:#fff;border-bottom:1px solid #e1eae7;min-height:92px;padding:16px 18px}.student-heading,.student-row{grid-template-columns:minmax(160px,1fr) minmax(135px,.65fr) minmax(130px,.65fr) minmax(165px,.8fr) minmax(105px,.5fr);align-items:center;gap:16px;display:grid}.student-heading{color:#6c7c79;background:#eff4f2;padding:12px 18px;font-size:12px}.student-row{background:#fff;border-bottom:1px solid #e1eae7;min-height:69px;padding:14px 18px}.student-name{flex-wrap:wrap;align-items:baseline;gap:5px 12px;min-width:0;display:flex}.student-name strong,.student-name span,.student-detail{overflow-wrap:anywhere}.student-name span,.student-detail{color:#52615f}.student-detail-stack{gap:4px;min-width:0;display:grid}.student-detail-stack>span{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.student-detail-stack>span+span{color:#7b8987;font-size:12px}.student-detail-stack .verified{color:#34705b}.student-detail-stack .not-verified{color:#9a6c35}.followup-main{min-width:0}.followup-main strong{overflow-wrap:anywhere;font-size:14px;display:block}.followup-main p{color:#4a5959;overflow-wrap:anywhere;margin:6px 0 4px;line-height:1.5}.origin{color:#7e8a88;font-size:12px}.followup-date{color:#4c605c;overflow-wrap:anywhere;align-items:center;gap:7px;display:flex}.status{color:#3b6560;font-size:12px;display:inline-block}.status-done{color:#538769}.status-invalid{color:#919c9a}.status-deferred{color:#a07837}.row-actions{gap:2px;display:flex}.list-state{color:#586968;text-align:center;background:#fff;flex-direction:column;justify-content:center;align-items:center;gap:8px;min-height:180px;padding:26px;display:flex}.list-state.empty{color:#6a7d7a}.list-state.empty strong{color:#324845;margin-top:8px}.modal-backdrop{z-index:10;background:#1827265c;place-items:center;padding:16px;display:grid;position:fixed;inset:0}.dialog{background:#fff;border-radius:7px;width:min(100%,460px);max-height:min(90svh,780px);padding:24px;overflow-y:auto;box-shadow:0 12px 36px #172b2829}.dialog header{justify-content:space-between;align-items:center;gap:10px;margin-bottom:24px;display:flex}.dialog h2{font-size:18px}.dialog-member{overflow-wrap:anywhere}.student-dialog{width:min(100%,560px)}.student-form{grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.student-form-wide{grid-column:1/-1}.segment-field{align-self:start}.segment-control{background:#f4f7f6;border:1px solid #cbd7d5;border-radius:5px;grid-template-columns:repeat(2,minmax(0,1fr));padding:3px;display:grid}.segment-control label{cursor:pointer;min-width:0;display:block}.segment-control input{opacity:0;width:1px;height:1px;position:absolute;overflow:hidden}.segment-control span{color:#536663;text-align:center;white-space:nowrap;border-radius:3px;place-items:center;min-height:34px;padding:5px 8px;font-size:13px;font-weight:600;display:grid}.segment-control input:checked+span{color:#176e69;background:#fff;box-shadow:0 1px 3px #17393424}.segment-control input:focus-visible+span{outline-offset:1px;outline:2px solid #1b7773}.staff-heading,.staff-row{align-items:center;gap:16px;display:grid}.role-columns{grid-template-columns:minmax(160px,.4fr) minmax(180px,.7fr) minmax(160px,1fr) 85px}.account-columns{grid-template-columns:minmax(160px,.4fr) minmax(200px,1fr)}.staff-heading{color:#6c7c79;background:#eff4f2;padding:12px 18px;font-size:12px}.staff-row{background:#fff;border-bottom:1px solid #e1eae7;min-height:72px;padding:14px 18px}.staff-identity{gap:5px;min-width:0;display:grid}.staff-identity strong,.staff-identity span,.staff-values{overflow-wrap:anywhere}.staff-identity span{color:#7d8d8b;font-size:12px}.staff-values{color:#536360;line-height:1.5}.staff-action{align-items:center;display:flex}.protected{color:#82908d;white-space:nowrap;align-items:center;gap:5px;font-size:12px;display:inline-flex}.staff-values .protected{margin-left:12px}.staff-hint{color:#637672;padding:16px 18px}.staff-dialog{width:min(100%,560px)}.choice-field{border:0;min-width:0;margin:0;padding:0}.choice-field legend{color:#3c4b4c;margin-bottom:11px;padding:0;font-weight:600}.choice-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:7px 15px;display:grid}.choice-grid label{color:#455a56;overflow-wrap:anywhere;align-items:center;gap:9px;min-height:34px;display:flex}.choice-grid input{accent-color:#1b7773;flex:none;width:16px;height:16px;margin:0}.token-input{align-items:center;gap:6px;display:flex}.token-input input{border:1px solid #cbd7d5;border-radius:5px;flex:1;min-width:0;padding:11px 12px}.token-input .icon-button{border:1px solid #cbd7d5}.token-list{flex-wrap:wrap;gap:6px;margin-top:10px;display:flex}.token{color:#265a56;overflow-wrap:anywhere;background:#eaf2f0;border-radius:4px;align-items:center;gap:4px;max-width:100%;padding:4px 6px;display:inline-flex}.token button{width:20px;height:20px;color:inherit;background:0 0;border:0;flex:none;place-items:center;padding:0;display:grid}.small-note{color:#6d7e7b;font-size:12px}.unavailable{color:#758581;align-content:center;justify-items:center;gap:14px;min-height:50svh;display:grid}.unavailable h1{color:#455a56;font-size:18px}@media (max-width:980px){.staff-heading{display:none}.staff-row{grid-template-columns:minmax(0,1fr) auto;gap:9px 12px;padding:14px}.staff-identity{grid-column:1/-1}.staff-values{grid-column:1;min-width:0}.staff-action{grid-area:2/2/4}.account-columns .staff-values{grid-column:1/-1}}@media (max-width:700px){.view-teacher,.view-student{display:block}.view-teacher .sidebar,.view-student .sidebar{display:none}.mobile-topbar{background:#fff;border-bottom:1px solid #e2ece9;justify-content:space-between;align-items:center;min-height:60px;padding:0 17px;display:flex}.mobile-topbar .sidebar-brand{padding:0;font-size:18px}.view-admin{grid-template-columns:60px minmax(0,1fr)}.view-admin .sidebar{align-items:center;padding:14px 6px}.view-admin .sidebar-brand{padding:0 0 26px;font-size:0}.view-admin .nav-label,.view-admin .nav-item span{display:none}.view-admin .nav-item{justify-content:center;padding:0}.view-admin .profile{display:none}.work-area{padding:24px 16px 45px}.list-heading,.student-heading{display:none}.student-row{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px 14px;padding:14px}.student-name{grid-column:1/-1}.student-detail{font-size:12px}.student-detail:before{content:attr(data-label) " · ";color:#83918e}.student-detail-stack:before{grid-column:1/-1}.followup-row{grid-template-columns:minmax(0,1fr) auto;gap:9px 10px;padding:14px}.followup-main{grid-column:1/-1}.followup-date{font-size:12px}.row-actions{justify-self:end}.followup-row>div:nth-child(3){grid-column:1}.followup-row>div:nth-child(4){grid-column:2}}@media (max-width:440px){.student-form{grid-template-columns:minmax(0,1fr)}.student-form-wide{grid-column:1}.choice-grid{grid-template-columns:minmax(0,1fr)}}.app-shell{--admin-accent:#2563eb;--admin-accent-strong:#1d4ed8;--admin-accent-soft:#eaf2ff;--admin-header:#1d4ed8;--admin-ink:#1f2329;--admin-muted:#646a73;--admin-line:#e5e9f0;--admin-table-head:#f0f6ff;--admin-row-hover:#f6faff;--admin-radius:6px;--admin-success:#16a34a;--admin-success-soft:#e9f7ef;--admin-warning:#d97706;--admin-warning-soft:#fcf0de;--admin-danger:#dc2626;--admin-danger-soft:#fdeaea;--admin-info:#2563eb;--admin-info-soft:#eaf2ff;color:var(--admin-ink);background:#f4f8ff;grid-template-rows:64px minmax(0,1fr);grid-template-columns:208px minmax(0,1fr);height:100svh;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,PingFang SC,Hiragino Sans GB,Microsoft YaHei,sans-serif;font-size:14px;line-height:1.5}.app-shell .brand-mark{background:var(--admin-accent)}.app-shell .admin-topbar{background:var(--admin-header);color:#fff;grid-column:1/-1;justify-content:space-between;align-items:center;gap:16px;min-height:64px;padding:0 24px;display:flex}.app-shell .admin-topbar-brand{align-items:center;gap:10px;min-width:0;display:flex}.app-shell .admin-topbar .brand-mark{border-radius:var(--admin-radius);width:30px;height:30px;color:var(--admin-header);background:#fff}.app-shell .admin-topbar-name{color:#fff;letter-spacing:.01em;white-space:nowrap;font-size:18px;font-weight:700}.app-shell .admin-topbar-badge{border-radius:var(--admin-radius);color:#ffffffeb;white-space:nowrap;background:#ffffff2e;padding:2px 10px;font-size:13px;font-weight:500}.app-shell .admin-topbar-side{align-items:center;gap:8px;min-width:0;display:flex}.app-shell .admin-topbar-user{color:#ffffffeb;white-space:nowrap;text-overflow:ellipsis;align-items:center;gap:7px;max-width:220px;font-size:13px;display:inline-flex;overflow:hidden}.app-shell .admin-topbar-user>svg{opacity:.75;flex:none}.app-shell .admin-topbar .icon-button{color:#fff;border-color:#0000}.app-shell .admin-topbar .icon-button:disabled{opacity:.6}.app-shell .admin-topbar .icon-button:hover:not(:disabled){color:#fff;background:#ffffff24}.app-shell .admin-topbar .icon-button:focus-visible{outline-color:#fff}.app-shell .sidebar{border-color:var(--admin-line);background:#fff;height:auto;min-height:0;padding:10px 8px 12px;position:static;box-shadow:8px 0 28px #1423340a}.app-shell .sidebar-brand{color:var(--admin-ink);display:none}.app-shell .sidebar nav{overscroll-behavior:contain;scrollbar-width:thin;scrollbar-color:#c7cdd8 transparent;display:block}.app-shell .sidebar .nav-label{color:#8f959e;letter-spacing:.01em;padding:10px 16px 4px;font-size:15px;font-weight:700}.app-shell .sidebar nav>section:first-child .nav-label{padding-top:10px}.app-shell .sidebar .nav-item{border-radius:var(--admin-radius);color:#1f2329;gap:8px;min-height:38px;margin-inline:8px;padding:0 8px;font-size:13px;font-weight:400;line-height:1.4;transition:background-color .15s}.app-shell .sidebar .nav-item>svg{opacity:.85;flex:none;width:16px;height:16px}.app-shell .sidebar .nav-item>span{overflow-wrap:anywhere;min-width:0}.app-shell .sidebar .nav-item:hover{background:#f0f6ff}.app-shell .sidebar .nav-item.active{color:var(--admin-accent);background:var(--admin-accent-soft);font-weight:600}.app-shell .sidebar-bottom{border-color:var(--admin-line);padding-top:10px;font-size:12px;display:none}.app-shell .sidebar-close{display:none}.app-shell .app-main{overscroll-behavior:contain;scrollbar-width:thin;scrollbar-color:#c7cdd8 transparent;min-width:0;min-height:0;padding:24px;overflow-y:auto}.app-shell .banner-error{border-radius:var(--admin-radius);margin:0 0 16px}.app-shell .list-state{color:var(--admin-muted)}.app-shell .list-state.empty strong{color:var(--admin-ink)}.app-shell .protected{color:#8f959e}.app-shell .staff-values{color:#4e596e}.app-shell .staff-identity span{color:#8f959e}.app-shell .members-empty{color:var(--admin-muted)}.app-shell .app-main>:is(.work-area,.members-page,.reports-page,.operations-page,.learning-workspace,.learning-catalog,.schedule-overview,.backups-page,.teaching-page,.classin-management,.family-booking,.teacher-relations,.holiday-calendar,.teacher-attendance,.notifications-page,.referrals-page,.content-page,.classin-events,.unavailable){border:1px solid var(--admin-line);border-radius:var(--admin-radius);background:#fff;padding:24px;box-shadow:0 1px 4px #1f23290f}.app-shell .work-area{padding:24px 28px 36px}.app-shell :is(.page-header,.members-heading,.reports-header,.learning-heading,.overview-page-header){margin-bottom:18px}.app-shell :is(.page-header,.members-heading,.reports-header,.learning-heading,.overview-page-header) h1{margin-top:4px;font-size:20px;line-height:1.35}.app-shell .page-header .eyebrow{color:var(--admin-muted);letter-spacing:.02em;font-size:12px;font-weight:600;display:block}.app-shell .app-main h1{font-size:20px;line-height:1.35}.app-shell .app-main h2{font-size:18px;line-height:1.4}.app-shell .app-main h3{font-size:14px;line-height:1.4}.app-shell table{font-variant-numeric:tabular-nums}.app-shell :is(.list-heading,.student-heading,.staff-heading,.catalog-table thead,.learning-catalog th,.learning-workspace th,.reports-page th,.operations-page th,.members-page th,.teaching-table th),.app-shell table th{background:var(--admin-table-head);color:#1f2937}.app-shell table tbody tr:hover,.app-shell :is(.followup-row,.student-row,.staff-row):hover{background:var(--admin-row-hover)}.app-shell .status{border-radius:var(--admin-radius);color:#4e596e;background:#eef1f5;padding:2px 10px;font-size:12px;font-weight:600;line-height:1.7;display:inline-block}.app-shell .status-open{background:var(--admin-info-soft);color:var(--admin-info)}.app-shell .status-done{background:var(--admin-success-soft);color:var(--admin-success)}.app-shell .status-deferred{background:var(--admin-warning-soft);color:var(--admin-warning)}.app-shell .status-invalid{color:#8f959e;background:#f0f1f3}.app-shell .student-detail-stack .verified{color:var(--admin-success)}.app-shell .student-detail-stack .not-verified{color:var(--admin-warning)}.app-shell :is(.primary-button,.overview-bookings,.am-primary,.learning-primary,.holiday-primary,.relations-primary){color:#fff;border-color:var(--admin-accent);border-radius:var(--admin-radius);background:var(--admin-accent);box-shadow:0 2px 8px #2563eb2e}.app-shell :is(.primary-button,.overview-bookings,.am-primary,.learning-primary,.holiday-primary,.relations-primary):hover:not(:disabled){background:var(--admin-accent-strong);border-color:var(--admin-accent-strong)}.app-shell :is(.text-button,.alert button){color:var(--admin-accent)}.app-shell .icon-button{color:#4e596e;border-radius:var(--admin-radius)}.app-shell .icon-button:hover:not(:disabled){color:var(--admin-accent);background:var(--admin-accent-soft)}.app-shell .header-actions .icon-button{border-color:var(--admin-line)}.app-shell .content-list li button[aria-current=true]{background:var(--admin-accent-soft);border-color:var(--admin-accent)}.app-shell .members-selected{background:var(--admin-accent-soft)}.app-shell .filter-strip{border-bottom-color:var(--admin-line)}.app-shell .filter{color:#4e596e}.app-shell .filter:hover{color:var(--admin-accent)}.app-shell .filter.active{color:var(--admin-accent);border-bottom-color:var(--admin-accent);background:0 0;font-weight:600}.app-shell :is(.learning-tabs,.learning-runtime-tabs,.teaching-tabs,.operations-tabs,.reports-tabs,.content-tabs){border-color:var(--admin-line);flex-wrap:wrap;gap:4px;margin-top:16px;margin-bottom:18px;overflow:visible}.app-shell :is(.learning-tabs,.learning-runtime-tabs,.teaching-tabs,.operations-tabs,.reports-tabs,.content-tabs) button{border-radius:var(--admin-radius);color:#4e596e;background:0 0;border:0;min-height:36px;padding:8px 12px;font-size:14px}.app-shell :is(.learning-tabs,.learning-runtime-tabs,.teaching-tabs,.operations-tabs,.reports-tabs,.content-tabs) :is([aria-current=page],[aria-selected=true]){color:var(--admin-accent);background:var(--admin-accent-soft);font-weight:600}.app-shell .overview-view-switch button[aria-pressed=true]{background:var(--admin-accent-soft);color:var(--admin-accent)}.app-shell :is(.cards-member-option[aria-current=true],.overview-teacher-list button[aria-pressed=true]){background:var(--admin-accent-soft);color:var(--admin-accent);border-color:var(--admin-accent)}.app-shell :is(button,input,select,textarea,a):focus-visible{outline:2px solid var(--admin-accent);outline-offset:2px}.app-shell :is(input:not([type=checkbox]):not([type=radio]):not([type=file]),select,textarea):focus{border-color:var(--admin-accent);outline:none;box-shadow:0 0 0 3px #2563eb26}.app-shell input[type=checkbox],.app-shell input[type=radio]{accent-color:var(--admin-accent)}.app-shell :is(.members-filters,.lesson-filters,.learning-toolbar,.reports-filters,.learning-runtime-toolbar){gap:10px 14px;margin-top:8px;margin-bottom:8px;padding-top:12px;padding-bottom:12px}.app-shell .header-actions{flex-wrap:wrap;gap:8px}.app-shell .header-actions>.primary-button,.app-shell .header-actions>:is(.overview-bookings,.am-primary,.learning-primary,.holiday-primary,.relations-primary){order:-1}.app-shell .app-main button,.app-shell .app-main :is(input:not([type=checkbox]):not([type=radio]):not([type=file]),select,textarea){border-radius:var(--admin-radius)}.app-shell :is(.members-page,.learning-catalog,.learning-workspace,.reports-page,.operations-page) :is(input:not([type=checkbox]):not([type=radio]),select,textarea){color:var(--admin-ink);border-color:#c9d2e0}.app-shell :is(.learning-catalog,.learning-workspace,.reports-page,.operations-page){color:var(--admin-ink)}.app-shell .cards-workspace{border-color:var(--admin-line);min-height:420px}.app-shell .cards-member-rail{border-color:var(--admin-line);background:#f8fafd}.app-shell .cards-member-list{max-height:min(560px,100svh - 240px)}.app-shell .cards-section-heading span{font-size:12px}.app-shell :is(.cards-section-heading h2,.schedule-overview h2,.holiday-calendar h2){font-size:18px;line-height:1.35}.app-shell .schedule-overview{overflow-x:visible}.app-shell :is(.overview-page-header,.overview-layout){min-width:0}.app-shell .overview-layout{grid-template-columns:200px minmax(0,1fr);gap:16px}.app-shell .overview-main{min-width:0}.app-shell .overview-teacher-list{max-height:min(560px,100svh - 280px)}.app-shell .overview-grid-scroll{max-height:min(64vh,760px)}.app-shell .overview-grid{font-size:13px}.app-shell .overview-slot-detail{font-size:12px}.app-shell .overview-slot-flag{font-size:11px}.app-shell .dated-cell span{font-size:12px}.app-shell :is(.dialog,.am-dialog,.cards-dialog){border-color:var(--admin-line);border-radius:var(--admin-radius);box-shadow:0 16px 40px #14233429}.app-shell .admin-table-scroll{overscroll-behavior-x:contain;scrollbar-width:thin;scrollbar-color:#c7cdd8 transparent;width:100%;min-width:0;max-width:100%;overflow-x:auto}.app-shell .admin-table-scroll:focus-visible{outline:2px solid var(--admin-accent);outline-offset:2px}.app-shell :is(.teacher-relations,.teacher-attendance,.holiday-calendar,.platform-reminders){overflow-x:visible}.app-shell :is(.relations-content,.attendance-content,.holiday-calendar-content,.platform-reminders-content),.app-shell :is(.relations-main,.relations-layout){min-width:0}.app-shell :is(.relations-page-heading,.relations-student-heading,.relations-toolbar,.holiday-page-heading,.holiday-toolbar,.attendance-toolbar,.platform-reminders header){flex-wrap:wrap}.app-shell .relations-table{min-width:860px}.app-shell .attendance-teachers-table{min-width:1280px}.app-shell .attendance-evidence-table{min-width:900px}.app-shell .holiday-table{min-width:1050px}.app-shell .platform-reminders table{min-width:920px}.app-shell .relations-tabs button[aria-pressed=true],.app-shell .attendance-cycle-days button[aria-pressed=true]{background:var(--admin-accent-soft);color:var(--admin-accent);font-weight:600}.navigation-backdrop{display:none}@media (max-width:1100px) and (min-width:701px){.app-shell .app-main,.app-shell .app-main>:is(.work-area,.members-page,.reports-page,.operations-page,.learning-workspace,.learning-catalog,.schedule-overview,.backups-page,.teaching-page,.classin-management,.family-booking,.teacher-relations,.holiday-calendar,.teacher-attendance,.notifications-page,.referrals-page,.content-page,.classin-events,.unavailable){padding:20px}.app-shell .overview-layout{grid-template-columns:160px minmax(0,1fr)}}@media (max-width:700px){.app-shell .admin-topbar{display:none}.app-shell,.app-shell.view-admin{height:auto;min-height:100svh}.app-shell .app-main{padding:0;overflow-y:visible}.app-shell .app-main>:is(.work-area,.members-page,.reports-page,.operations-page,.learning-workspace,.learning-catalog,.schedule-overview,.backups-page,.teaching-page,.classin-management,.family-booking,.teacher-relations,.holiday-calendar,.teacher-attendance,.notifications-page,.referrals-page,.content-page,.classin-events,.unavailable){border-radius:var(--admin-radius);width:auto;margin:12px;padding:16px}.app-shell .sidebar .sidebar-brand{padding:0 10px 16px;font-size:20px;display:flex}.app-shell .sidebar-bottom{display:flex}.app-shell :is(.teacher-relations,.teacher-attendance,.holiday-calendar){padding:16px}.app-shell .relations-layout{display:block}.app-shell .relations-students{border-right:0;margin-bottom:16px;padding-right:0}.app-shell .relations-student-list{max-height:210px}.app-shell :is(.attendance-totals,.attendance-monthly-grid){grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.app-shell .attendance-periods{grid-template-columns:1fr;gap:10px}.app-shell .attendance-periods dd{overflow-wrap:anywhere}.app-shell .attendance-cycle-controls{flex-wrap:wrap;min-width:0}.app-shell .attendance-toolbar{align-items:flex-start;gap:12px}.app-shell.view-admin{grid-template-rows:none;display:block}.app-shell.view-admin .sidebar{display:none}.app-shell.view-admin .mobile-topbar{z-index:10;border-color:var(--admin-line);grid-template-columns:36px 1fr 36px;gap:10px;min-height:54px;padding:8px 12px;display:grid;position:sticky;top:0}.app-shell.view-admin .mobile-topbar .sidebar-brand{padding:0;font-size:18px;display:flex}.app-shell.view-admin .mobile-topbar .brand-mark{width:26px;height:26px;font-size:15px}.app-shell.view-admin.is-navigation-open .sidebar{z-index:50;align-items:stretch;width:min(280px,100% - 48px);height:100svh;padding:16px 12px 12px;display:flex;position:fixed;inset:0 auto 0 0;box-shadow:8px 0 24px #1423343d}.app-shell.view-admin .sidebar .nav-label,.app-shell.view-admin .sidebar .nav-item span{display:block}.app-shell.view-admin .sidebar .nav-item{justify-content:flex-start;min-height:40px;padding:8px 10px}.app-shell.view-admin .sidebar .profile{display:flex}.app-shell .sidebar-close{margin-left:auto;display:inline-grid}.app-shell .navigation-backdrop{z-index:40;background:#0f172a66;border:0;width:100%;height:100%;padding:0;display:block;position:fixed;inset:0}.app-shell .page-header h1{font-size:19px}.app-shell .overview-layout{display:block}.app-shell .overview-teachers{border-right:0;margin-bottom:16px;padding-right:0}.app-shell .overview-teacher-list{max-height:210px}.app-shell .overview-summary{grid-template-columns:repeat(2,minmax(0,1fr))}.app-shell .cards-workspace{min-height:0}.app-shell .cards-member-list{max-height:220px}.app-shell :is(.learning-tabs,.learning-runtime-tabs,.teaching-tabs,.operations-tabs,.reports-tabs) button{padding:7px 9px;font-size:13px}}.app-shell .learning-workspace :where(button){color:#1f2329;border:1px solid #e5e9f0}.app-shell .learning-workspace button:hover:not(:disabled){background:#f8fafd}.app-shell .learning-runtime-heading p{color:#646a73}.app-shell .learning-runtime-tabs{border-bottom:1px solid #e5e9f0}.app-shell .learning-runtime-tabs button[aria-current=page]{border-bottom-color:#2563eb}.app-shell .learning-workspace :where(select){color:#1f2329;border:1px solid #e5e9f0}.app-shell .learning-workspace td{border-bottom:1px solid #e5e9f0}.app-shell .learning-workspace th{color:#1f2329;background:#f8fafd}.app-shell .learning-workspace small,.app-shell .learning-runtime-empty{color:#646a73}.app-shell .learning-runtime-action{border-top:2px solid #2563eb;border-bottom:1px solid #e5e9f0}.app-shell .learning-entry,.app-shell .learning-instance-list>div,.app-shell .learning-observation-row{border-bottom:1px solid #e5e9f0}.app-shell .learning-outcomes button[aria-pressed=true]{background:var(--admin-accent-soft);border-color:var(--admin-accent);box-shadow:inset 0 0 0 1px var(--admin-accent)}.app-shell .learning-evidence-row{border-bottom:1px solid #e5e9f0}.app-shell .learning-preview-layout aside{border-left:1px solid #e5e9f0}.app-shell .learning-preview-layout aside section{border-bottom:1px solid #e5e9f0}.app-shell .learning-report-summary{border-top:1px solid #e5e9f0;border-bottom:1px solid #e5e9f0}.app-shell .learning-report-summary dt{color:#646a73}.app-shell .learning-report-list button[aria-pressed=true]{background:var(--admin-accent-soft);border-color:var(--admin-accent)}@media (max-width:800px){.app-shell .learning-preview-layout aside{border-top:1px solid #e5e9f0}}.app-shell .learning-lesson-links a{color:#1f2329}.app-shell .v2-device-controls{border-bottom:1px solid #e5e9f0}.app-shell .v2-device-controls>summary{color:#1f2329}
