[hidden]{display:none!important}.authscreen{min-height:100vh;display:grid;place-items:center;padding:35px 20px;background:radial-gradient(ellipse at 20% 20%,#ece3ef,transparent 50%),radial-gradient(ellipse at 90% 80%,#e8eddf,transparent 50%),#fbf8f3}.authcard{width:100%;max-width:450px;background:#fffdf9;border:1px solid #e6dce5;border-radius:28px;padding:35px 40px;box-shadow:0 15px 50px #7154770b}.authmark{width:75px;height:75px;display:block;margin:0 auto 15px}.authcard>h1{text-align:center;color:#6f587b;font:400 39px/1.12 Georgia,serif;margin:5px 0 15px}.authcard>h1 i{color:#9d7f9c}.authcard>p{font-size:12px;text-align:center;color:#927d89;line-height:1.8}.authcard h2{font-size:19px;margin-top:28px;margin-bottom:20px}.authcard label{font-size:12px;display:block;margin:15px 0 7px}.authcard input{width:100%;padding:13px;min-height:45px}.authcard form>.primary{width:100%;margin-top:7px;min-height:45px}.authmessage{font-size:12px;line-height:1.7;color:#965466;white-space:pre-wrap}.authlinks{display:flex;flex-wrap:wrap;gap:12px;justify-content:space-between;margin-top:18px}.authlinks button{border:0;background:none;color:#8d719a;font-size:11px;padding:7px 0;cursor:pointer}.authcaption{text-align:center;color:#9b967e;font:italic 15px Georgia;margin-top:30px}.accountbar{display:flex;gap:9px;align-items:center;flex-wrap:wrap}.accountbar>span{font-size:11px;color:#8f7a91;margin-right:8px}.filelink{display:inline-block;text-decoration:none}button[disabled]{opacity:.55;cursor:wait}input[readonly]{background:#f3eee9;color:#8f8187}.note:empty{display:none}@media(max-width:760px){.authcard{padding:28px 25px}.authcard>h1{font-size:35px}.accountbar{width:100%}.accountbar>span{flex:1}.accountbar button{font-size:10px}}

/* Paleta acolhedora e listas extensas. */
.cover.pink{background:#f1dfe8}.cover.pink strong{color:#855a74}
.cover.blue{background:#dfeaf4}.cover.blue strong{color:#526d8c}
.cover.yellow{background:#f6edcf}.cover.yellow strong{color:#897137}
.cover.peach{background:#f6e1d2}.cover.peach strong{color:#9a6548}
.cover.aqua{background:#dceee9}.cover.aqua strong{color:#4b796e}
.cover.sand{background:#ece3d7}.cover.sand strong{color:#80694f}
.cover small{color:#60576c}.cover.pink small,.cover.peach small,.cover.sand small{color:#745448}.cover.green small,.cover.aqua small{color:#526747}.cover.blue small{color:#52657c}.cover.yellow small{color:#78602d}
html{overflow-y:scroll;scrollbar-gutter:stable}
*{scrollbar-width:auto;scrollbar-color:#a68bab #f2ecef}
::-webkit-scrollbar{width:12px;height:12px}
::-webkit-scrollbar-track{background:#f2ecef;border-radius:12px}
::-webkit-scrollbar-thumb{background:#a68bab;border:3px solid #f2ecef;border-radius:12px}
::-webkit-scrollbar-thumb:hover{background:#806086}
dialog{max-height:88vh;max-height:88dvh;overflow-y:auto;overscroll-behavior:contain;scrollbar-gutter:stable}
dialog fieldset{max-height:310px;overflow-y:auto;overscroll-behavior:contain;scrollbar-gutter:stable}
.journey-card .cardbody{max-height:490px;overflow-y:auto;scrollbar-gutter:stable}
.studentlist,#materials{max-height:70vh;overflow-y:auto;scrollbar-gutter:stable}
.path{gap:10px}.path span{min-width:0;overflow-wrap:anywhere}.path button{flex-shrink:0}
:where(.cardbody,.studentlist,#materials):focus-visible{outline:2px solid #806086;outline-offset:-3px}
@media(min-width:761px){aside{overflow-y:auto;scrollbar-gutter:stable}aside>*{flex-shrink:0}}
@media(max-width:760px){.journey-card .cardbody{max-height:420px}dialog{padding:22px}dialog fieldset{max-height:250px}}
.school-calendar{background:#fffdf9;border:1px solid #e6dce5;border-radius:24px;padding:25px;margin-bottom:38px}.calendar-filters{display:flex;flex-wrap:wrap;gap:16px;margin:18px 0}.calendar-filters>div{flex:1;min-width:160px}.calendar-filters label,.lesson-times label{display:block;font-size:12px;margin-bottom:7px}.calendar-filters select{width:100%}.calendar-monthbar{display:flex;align-items:center;gap:12px;margin:20px 0}.calendar-monthbar h3{flex:1;text-transform:capitalize;margin:0;font-size:17px}.calendar-scroll{overflow-x:auto;scrollbar-gutter:stable}.calendar-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));min-width:640px;gap:5px}.calendar-weekday{text-align:center;padding:9px;color:#786572;font-size:12px}.calendar-day{display:flex;flex-direction:column;align-items:stretch;gap:6px;min-height:112px;min-width:0;border:1px solid #eee4eb;border-radius:12px;background:#faf6f8;padding:10px 7px;text-align:left;color:#665270;cursor:pointer}.calendar-day strong{font-size:12px}.calendar-day small{font-size:10px;color:#786572}.calendar-day.is-today{border-color:#9b77a7}.calendar-day.is-selected{background:#eae0ef;box-shadow:inset 0 0 0 1px #8f6a9c}.calendar-day:focus-visible{outline:3px solid #806086;outline-offset:-3px}.calendar-event{font-size:10px;padding:5px;border-radius:5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.status-scheduled{background:#ece4f5;color:#69507e}.status-confirmed{background:#e2eddf;color:#466b3d}.status-cancelled{background:#f5e0e4;color:#8c4555}.lesson-status{display:inline-block;font-size:11px;border-radius:8px;padding:5px 9px}.calendar-legend{display:flex;flex-wrap:wrap;gap:8px;margin:16px 0 24px}.lesson-list{max-height:560px;overflow-y:auto;scrollbar-gutter:stable}.lesson-row{display:flex;gap:18px;align-items:flex-start;padding:22px 10px;border-top:1px solid #e9e0e6}.lesson-date{min-width:100px;display:flex;flex-direction:column;gap:8px}.lesson-date strong{font:30px Georgia;color:#806086}.lesson-date span{font-size:11px}.lesson-row h3{margin:10px 0;font-size:16px}.lesson-row p{font-size:12px;line-height:1.7;margin:8px 0}.lesson-notes{white-space:pre-wrap;overflow-wrap:anywhere}.lesson-row .groupactions{max-width:160px;flex-direction:column}.lesson-times{display:flex;gap:12px}.lesson-times>div{flex:1;min-width:0}.lesson-times input{width:100%}.attendance-list{max-height:52vh;overflow-y:auto;scrollbar-gutter:stable}.attendance-list fieldset{max-height:none;overflow:visible}.school-calendar .grow{min-width:0}.school-calendar h3 small{font-size:12px;font-weight:400}
@media(max-width:760px){.school-calendar{padding:18px 12px}.school-calendar>.sectionhead{align-items:flex-start;gap:12px;flex-wrap:wrap}.calendar-monthbar{gap:6px}.calendar-monthbar h3{font-size:14px}.calendar-monthbar button{padding:8px}.lesson-row{flex-wrap:wrap;gap:12px}.lesson-date{min-width:72px}.lesson-row .grow{flex:1}.lesson-row .groupactions{max-width:none;width:100%;flex-direction:row}.calendar-day{min-height:100px}.lesson-list{max-height:65vh}}
.schedule-tabs{display:flex;gap:10px;margin:18px 0}.schedule-days{max-height:43vh;overflow-y:auto;scrollbar-gutter:stable}.schedule-days fieldset{max-height:none;overflow:visible}.schedule-days legend .checkrow{margin:0}.schedule-days fieldset{margin:14px 0}.schedule-days input[type=time]{min-width:0}.lesson-times input[type=date]{width:100%;min-width:0}
.birthday-card,.birthday-upcoming{border-radius:24px;padding:28px;margin-bottom:26px;border:1px solid #e6d8e7;background:linear-gradient(120deg,#f1e5f1,#f9eadb)}.birthday-card h2{font:36px Georgia,serif;color:#795a7e;margin:17px 0}.birthday-card p,.birthday-preview{white-space:pre-wrap;overflow-wrap:anywhere;font-size:14px;line-height:1.9;color:#705b72}.birthday-signature{display:block;margin-top:20px;font-size:12px;color:#826c7c}.birthday-upcoming{background:#fffaf4}.birthday-upcoming h2{margin:10px 0;font-size:20px}.birthday-reminder{display:flex;justify-content:space-between;gap:14px;align-items:center;border-top:1px solid #eee0e8;padding:17px 0}.birthday-reminder p{font-size:12px;color:#8a7185;margin:7px 0}.birthday-preview{background:#f2e8f2;padding:15px;border-radius:12px}#studentform fieldset{max-height:none;overflow:visible}
@media(max-width:760px){.birthday-card,.birthday-upcoming{padding:22px 18px}.birthday-reminder,.birthday-upcoming .sectionhead{flex-wrap:wrap}.birthday-card h2{font-size:29px}}
.calendar-viewbar{display:flex;align-items:flex-end;flex-wrap:wrap;gap:14px;margin:20px 0}.calendar-viewbuttons{display:flex;gap:5px;flex-wrap:wrap}.calendar-viewbar label{display:block;font-size:12px;margin-bottom:7px}.calendar-viewbar input{max-width:180px}.calendar-grid.calendar-month,.calendar-grid.calendar-week{min-width:1120px}.calendar-day{cursor:default;min-height:175px;padding:8px;gap:8px}.calendar-datebutton{border:0;background:transparent;color:#665270;cursor:pointer;text-align:left;padding:4px;font-weight:700;font-size:12px}.calendar-datebutton:hover{text-decoration:underline}.calendar-day-events{display:flex;flex-direction:column;gap:7px;max-height:360px;overflow-y:auto}.calendar-event-detail{display:flex;flex-direction:column;align-items:flex-start;text-align:left;width:100%;border:0;white-space:normal;overflow:visible;overflow-wrap:anywhere;text-overflow:clip;gap:5px;padding:10px 8px;cursor:pointer;line-height:1.5;flex-shrink:0}.calendar-event-detail strong{font-size:12px}.calendar-event-detail span{font-size:11px}.calendar-event-detail .event-status{font-weight:700;border-top:1px solid #ffffff80;padding-top:5px;width:100%}.calendar-event-detail:focus-visible,.calendar-datebutton:focus-visible{outline:2px solid #806086;outline-offset:-2px}.calendar-noevents{font-size:10px;color:#a08d9b;padding:5px}.calendar-grid.calendar-day{display:grid;grid-template-columns:1fr;min-width:0;padding:0;background:none;border:0;min-height:0}.calendar-grid.calendar-day>.calendar-day{min-height:150px}.calendar-day .calendar-event-detail{max-width:none}.calendar-grid.calendar-day .calendar-day-events{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));max-height:520px}.calendar-grid.calendar-week .calendar-day{min-height:330px}.lesson-row .lesson-professor{font-size:13px;color:#806086;margin-top:0}.lesson-row h3{margin-top:0}.lesson-notes{white-space:pre-wrap;overflow-wrap:anywhere}
@media(max-width:760px){.calendar-filters>div{min-width:140px}.calendar-viewbar{align-items:center;gap:10px}.calendar-grid.calendar-month,.calendar-grid.calendar-week{min-width:1050px}.calendar-monthbar h3{font-size:13px}.calendar-grid.calendar-day .calendar-day-events{grid-template-columns:1fr}.calendar-event-detail strong{font-size:12px}}
.grade-list{display:grid;gap:18px;max-height:75vh;overflow-y:auto;scrollbar-gutter:stable}.grade-card{border:1px solid #e6dce5;border-radius:20px;padding:24px;background:#fffdf9}.grade-card h3{margin:14px 0 10px;font-size:18px}.grade-card p{font-size:13px}.grade-score{text-align:right;color:#795a7e;display:flex;flex-direction:column;gap:8px;flex-shrink:0}.grade-score>strong{font:32px Georgia,serif}.grade-score small{font-size:19px;color:#9a859d}.grade-score>span{font-size:12px}.grade-feedback{padding:17px;border-radius:14px;background:#f1eaf3;color:#735b7b}.grade-feedback>strong{font-size:12px}.grade-feedback p{white-space:pre-wrap;overflow-wrap:anywhere;line-height:1.8;margin-bottom:0}#gradeform .checkrow{margin:20px 0}#birthdaypreviewtext{margin-top:8px}
@media(max-width:760px){.grade-card{padding:19px 16px}.grade-card .sectionhead{gap:12px;align-items:flex-start}.grade-score>strong{font-size:27px}}
.grade-criteria-form{display:grid;grid-template-columns:1fr 1fr;gap:12px;max-height:none;overflow:visible}.grade-criteria-form>div{min-width:0}.grade-criteria-form input{width:100%}.grade-criteria-results{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:10px;margin:0 0 20px}.grade-criteria-results>div{background:#f6eff7;border-radius:12px;padding:16px 12px;display:flex;flex-direction:column;gap:12px}.grade-criteria-results span{font-size:11px;color:#806086;overflow-wrap:anywhere}.grade-criteria-results strong{font-size:21px;color:#795a7e}.grade-criteria-results small{font-size:12px;font-weight:400}
@media(max-width:760px){.grade-criteria-results{grid-template-columns:repeat(2,minmax(0,1fr))}.grade-criteria-form{grid-template-columns:1fr}}
.notification-count{display:inline-block;border-radius:20px;background:#84628d;color:#fff;padding:3px 7px;font-size:10px;margin-left:7px;min-width:22px;text-align:center}.notice-list{display:grid;gap:15px;max-height:75vh;overflow-y:auto;scrollbar-gutter:stable}.notice-card{display:flex;align-items:flex-start;justify-content:space-between;gap:20px;padding:22px;background:#fffdf9;border:1px solid #e7dfe8;border-radius:18px}.notice-unread{background:#f5edf7;border-left:4px solid #a084ac}.notice-card p{font-size:14px;line-height:1.8;white-space:pre-wrap;overflow-wrap:anywhere}.notice-card time{font-size:10px;color:#927b93}.notice-card .groupactions{flex-shrink:0;max-width:170px}.notice-dot{display:inline-block;width:8px;height:8px;border-radius:50%;background:#96749e;margin-left:9px}.private-grade-notices{border:1px solid #e3d7eb;background:#f8f0fa;border-radius:20px;padding:22px;margin:20px 0}.private-grade-notices h3{font-size:18px;color:#795a7e}.private-grade-notices .notice-card{margin:12px 0}.automatic-message{background:#eaf0e3;border:1px solid #d9e5ce;max-width:100%}.automatic-message .outline{font-size:11px;margin-top:8px}
@media(max-width:760px){.notice-card{flex-direction:column;padding:18px}.notice-card .groupactions{max-width:none;flex-wrap:wrap}.private-grade-notices{padding:17px}}
#attendanceform>.attendance-roster{max-height:none;overflow:visible;padding:10px}#attendanceform .attendance-list{max-height:42vh}#attendanceform .attendance-roster:disabled{opacity:.7}#attendancecancelnotice{padding:12px;background:#f8e8ec;border-radius:10px;color:#8b5666}
.profile-layout{display:grid;grid-template-columns:1fr 1fr;gap:24px;align-items:start}.profile-panel{background:#fffdf9;border:1px solid #e6dce5;border-radius:24px;padding:28px}.profile-panel h3{font:24px Georgia,serif;color:#795a7e;margin:0 0 24px}.person-avatar{position:relative;width:48px;height:48px;border-radius:50%;background:#e9ddef;color:#81628e;display:inline-flex;align-items:center;justify-content:center;font:23px Georgia,serif;flex-shrink:0;overflow:hidden;vertical-align:middle}.person-avatar>img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}.person-avatar.avatar-large{width:140px;height:140px;font-size:58px}.person-avatar.avatar-small{width:30px;height:30px;font-size:15px}.profile-avatar-button{background:transparent;border:0;padding:0;border-radius:50%;cursor:pointer;display:inline-flex;flex-shrink:0}.profile-avatar-button:focus-visible{outline:3px solid #a084ac;outline-offset:3px}.profile-name{font-size:20px;font-weight:700;margin-bottom:8px}.profile-panel form>label{display:block;font-size:12px;margin:18px 0 8px}.profile-panel input{width:100%}.profile-panel form>.primary{margin-top:16px}.profile-panel>#removeprofilephoto{margin-top:14px}.person-profile{text-align:center}.class-student{display:flex;align-items:center;gap:8px;margin:8px 0}.profile-panel .authmessage{min-height:20px}
@media(max-width:760px){.profile-layout{grid-template-columns:1fr}.profile-panel{padding:23px}.person-avatar.avatar-large{width:120px;height:120px}}
