.ann-page{max-width:1180px;margin:0 auto}.ann-heading{justify-content:space-between;align-items:center;gap:1.5rem;margin-bottom:2rem;display:flex}.ann-heading h1{letter-spacing:-.04em;margin:.4rem 0;font-size:clamp(2rem,4vw,2.8rem)}.ann-heading p,.ann-meta{color:var(--muted-foreground)}.ann-heading>div>span{color:var(--brand-ink);align-items:center;gap:.6rem;font-size:.8rem;font-weight:700;display:flex}.ann-heading button,.ann-compose footer button{border-radius:999px}.ann-toolbar{justify-content:space-between;align-items:center;gap:1rem;margin-bottom:1.2rem;font-size:.85rem;display:flex}.ann-toolbar label,.ann-compose label{gap:.4rem;min-width:0;font-size:.85rem;font-weight:650;display:grid}.ann-toolbar select,.ann-compose select{border:1px solid var(--border);background:#fff;border-radius:14px;width:100%;min-width:0;max-width:100%;padding:.7rem 1rem}.ann-toolbar label{flex:1}.ann-toolbar>span{flex-shrink:0}.ann-inbox{border:1px solid var(--border);background:#fff;border-radius:26px;grid-template-columns:minmax(260px,.9fr) minmax(0,1.4fr);min-height:400px;display:grid;overflow:hidden}.ann-list{border-right:1px solid var(--border)}.ann-item{text-align:left;border-bottom:1px solid var(--border);gap:.5rem;width:100%;padding:1.3rem;display:grid}.ann-item:hover,.ann-item.is-selected{background:color-mix(in srgb, var(--brand) 7%, white)}.ann-item.is-unread{background:#f3fbfe}.ann-item-top{color:var(--muted-foreground);justify-content:space-between;gap:.6rem;font-size:.7rem;display:flex}.ann-item strong{align-items:center;gap:.5rem;font-size:1rem;display:flex}.ann-item i{background:var(--brand);border-radius:50%;flex-shrink:0;width:7px;height:7px}.ann-item p{white-space:nowrap;text-overflow:ellipsis;min-width:0;color:var(--muted-foreground);font-size:.85rem;overflow:hidden}.ann-item small{color:var(--muted-foreground)}.ann-reader{min-width:0;padding:clamp(1.3rem,3vw,2.8rem);position:relative}.ann-close{position:absolute;top:.7rem;right:.7rem}.ann-class-label{color:var(--brand-ink);background:#e8f9fd;border-radius:999px;margin-right:2rem;padding:.4rem .8rem;font-size:.75rem;display:inline-block}.ann-reader h2{overflow-wrap:anywhere;margin:1rem 0 .6rem;font-size:1.6rem}.ann-meta{margin-bottom:2rem;font-size:.8rem}.ann-body{white-space:pre-wrap;overflow-wrap:anywhere;line-height:1.75}.ann-placeholder,.ann-empty{text-align:center;color:var(--muted-foreground);align-content:center;justify-items:center;gap:1rem;padding:3rem 1rem;display:grid}.ann-empty h2{color:var(--foreground);font-size:1.4rem}.ann-pagination{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.3rem;padding:.7rem;font-size:.7rem;display:flex}.ann-compose{border-radius:26px;max-width:620px}.ann-compose form{gap:1rem;min-width:0;display:grid}.ann-compose footer{justify-content:flex-end;gap:.7rem;display:flex}.ann-notice{color:#17634b;background:#ecfaf4;border-radius:14px;align-items:center;gap:.6rem;margin-bottom:1rem;padding:.8rem 1rem;display:flex}.announcement-badge{background:var(--brand);min-width:1.3rem;color:var(--brand-ink);border-radius:999px;padding:.1rem .4rem;font-size:.7rem;font-weight:750}@media (width<=700px){.ann-heading{flex-direction:column;align-items:flex-start}.ann-inbox{grid-template-columns:1fr}.ann-reader.ann-placeholder,.ann-inbox.has-selection .ann-list{display:none}.ann-toolbar{flex-direction:column;align-items:stretch;gap:.6rem}.ann-toolbar>span{text-align:right}.ann-item-top{flex-wrap:wrap}}.person-profile{gap:.85rem;width:100%;max-width:1280px;margin-inline:auto;display:grid}.person-profile>.person-back{min-height:2rem;color:var(--brand-ink);justify-self:start;padding-inline:.45rem;font-size:.78rem}.person-profile-heading{background:linear-gradient(135deg, color-mix(in srgb, var(--primary) 8%, var(--card)), var(--card) 62%);border:1px solid var(--border);border-radius:.95rem;align-items:center;gap:.8rem;padding:.85rem 1rem;display:flex}.person-profile-heading h1{letter-spacing:-.015em;margin:0;font-size:1.35rem;font-weight:800;line-height:1.2}.person-profile-identity{flex:1;min-width:180px}.person-email{color:var(--muted-foreground);overflow-wrap:anywhere;align-items:center;gap:.35rem;margin:.2rem 0 .45rem;font-size:.76rem;display:flex}.person-profile-heading>button{white-space:nowrap;flex:none}.person-avatar{background:color-mix(in srgb, var(--primary) 13%, var(--card));width:2.9rem;height:2.9rem;color:var(--brand-ink);border-radius:.8rem;flex-shrink:0;place-items:center;display:grid}.person-profile-facts{grid-template-columns:repeat(3,minmax(76px,auto));gap:.35rem;margin:0;display:grid}.person-profile-facts>div{border:1px solid color-mix(in srgb, var(--primary) 13%, var(--border));background:color-mix(in srgb, var(--card) 88%, transparent);min-width:0;color:var(--brand-ink);border-radius:.65rem;grid-template-rows:auto auto;grid-template-columns:18px 1fr;align-items:center;column-gap:.35rem;padding:.38rem .5rem;display:grid}.person-profile-facts svg{grid-row:1/3}.person-profile-facts dt{color:var(--muted-foreground);grid-area:2/2;font-size:.62rem;font-weight:650;line-height:1.1}.person-profile-facts dd{grid-area:1/2;margin:0;font-size:.92rem;font-weight:800;line-height:1}.person-role-list{flex-wrap:wrap;align-items:center;gap:.3rem;display:flex}.person-role{white-space:nowrap;border-radius:999px;align-items:center;gap:.3rem;padding:.22rem .5rem;font-size:.68rem;font-weight:700;display:inline-flex}.person-role-admin{color:#67399a;background:#efe4ff}.person-role-teacher{color:#075e70;background:#d9f2f5}.person-role-student{color:#8c480e;background:#fff0d7}.person-status{color:var(--muted-foreground);align-items:center;gap:.3rem;font-size:.68rem;font-weight:650;display:inline-flex}.person-status>span{background:var(--muted-foreground);border-radius:999px;width:.42rem;height:.42rem}.person-status.is-active>span{background:#29a36a}.person-profile-grid{grid-template-columns:minmax(280px,.88fr) minmax(0,1.3fr);align-items:start;gap:.75rem;display:grid}.person-card{border:1px solid var(--border);background:var(--card);border-radius:.9rem;min-width:0;padding:.85rem}.person-card-heading{border-bottom:1px solid var(--border);align-items:center;gap:.55rem;min-height:2.2rem;padding-bottom:.6rem;display:flex}.person-card-heading>div{flex:1;min-width:0}.person-card-heading h2{color:var(--brand-ink);margin:0;font-size:.94rem;font-weight:800;line-height:1.25}.person-card-heading p{color:var(--muted-foreground);margin:.08rem 0 0;font-size:.68rem;line-height:1.25}.person-card-icon,.person-row-icon{color:var(--brand-ink);background:color-mix(in srgb, var(--primary) 10%, var(--card));flex:none;place-items:center;display:grid}.person-card-icon{border-radius:.6rem;width:2rem;height:2rem}.person-card-count{background:color-mix(in srgb, var(--primary) 10%, var(--card));min-width:1.55rem;height:1.55rem;color:var(--brand-ink);border-radius:999px;place-items:center;padding-inline:.35rem;font-size:.7rem;font-weight:800;display:grid}.person-card>p{color:var(--muted-foreground);margin:.6rem 0 0;font-size:.76rem;line-height:1.45}.person-card h3{margin:0;font-size:.82rem;font-weight:700}.person-form{gap:.65rem;margin-top:.75rem;display:grid}.person-edit-action{border:1px solid var(--border);background:color-mix(in srgb, var(--primary) 3%, var(--card));border-radius:.65rem;margin-top:.55rem;padding:.5rem .65rem}.person-edit-action>summary{cursor:pointer;color:var(--brand-ink);align-items:center;gap:.4rem;font-size:.75rem;font-weight:750;list-style:none;display:flex}.person-edit-action>summary::-webkit-details-marker{display:none}.person-edit-action>summary:after{content:"⌄";color:var(--muted-foreground);margin-left:auto;font-size:.85rem;line-height:1;transition:transform .15s}.person-edit-action[open]>summary:after{transform:rotate(180deg)}.person-edit-action>summary:focus-visible{outline:2px solid var(--primary);outline-offset:4px;border-radius:.2rem}.person-edit-action[open]>summary{margin-bottom:.55rem}.person-edit-action>.person-form:first-of-type{margin-top:0}.person-form label{gap:.25rem;font-size:.74rem;font-weight:650;display:grid}.person-form select,.person-form textarea{border:1px solid var(--border);background:var(--background);width:100%;min-height:2.2rem;color:var(--foreground);border-radius:.55rem;padding:.42rem .5rem;font-size:.78rem}.person-form fieldset{border:1px solid var(--border);border-radius:.65rem;gap:.4rem;padding:.55rem;display:grid}.person-form legend{padding:0 .3rem;font-size:.8rem;font-weight:650}.person-form .person-check{align-items:center;gap:.55rem;font-weight:500;display:flex}.person-form>button{justify-self:start}.person-admin-action{border-top:1px solid var(--border);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.55rem;margin-top:.6rem;padding-top:.6rem;display:flex}.person-admin-action .person-help{margin:0}.person-help{color:var(--muted-foreground);margin:0;line-height:1.4;font-size:.7rem!important;font-weight:400!important}.person-memberships,.person-academic-list,.person-login-list{margin:0;padding:0;list-style:none}.person-memberships li{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;gap:.65rem;padding:.5rem 0;display:flex}.person-memberships li:last-child,.person-academic-list>li:last-child,.person-login-list li:last-child{border-bottom:0}.person-memberships a{color:var(--brand-ink);text-underline-offset:3px;font-size:.79rem;font-weight:700;text-decoration:underline}.person-memberships small{color:var(--muted-foreground);margin-top:.05rem;font-size:.65rem;display:block}.person-academic-list>li{border-bottom:1px solid var(--border);grid-template-columns:1.8rem minmax(0,1fr);align-items:start;gap:.45rem;padding:.55rem 0;display:grid}.person-row-icon{border-radius:.52rem;width:1.8rem;height:1.8rem}.person-row-copy{gap:.08rem;min-width:0;display:grid}.person-academic-list strong{color:var(--brand-ink);overflow-wrap:anywhere;font-size:.79rem;line-height:1.35}.person-academic-list span,.person-academic-list small{color:var(--muted-foreground);font-size:.7rem;line-height:1.4}.person-academic-list .person-row-icon{color:var(--brand-ink)}.person-class-periods{grid-column:2;margin:.2rem 0 0;padding:0;list-style:none}.person-academic-list .person-class-periods li{color:var(--muted-foreground);border:0;padding:.18rem 0;font-size:.67rem;display:block}.person-empty{color:var(--muted-foreground);font-size:.74rem}.person-notice{color:#20583d;background:#e5f5ec;border-radius:.65rem;margin:0;padding:.6rem .75rem;font-size:.76rem}.person-error{color:#8d3526;overflow-wrap:anywhere;background:#fff0ed;border-radius:.65rem;margin:0;padding:.6rem .75rem;font-size:.76rem}.person-error button{font-weight:700;text-decoration:underline}.person-pagination,.person-actions{justify-content:space-between;align-items:center;gap:.55rem;display:flex}.person-pagination{margin-top:.65rem}.person-pagination span{color:var(--muted-foreground);font-size:.75rem}.person-login-list li{border-bottom:1px solid var(--border);justify-content:space-between;gap:.65rem;padding:.42rem 0;font-size:.72rem;display:flex}.person-login-list span{color:var(--muted-foreground);text-align:right;font-size:.66rem}.person-table-link{text-align:left;color:var(--foreground);text-underline-offset:3px;gap:.2rem;font-weight:650;text-decoration:underline;display:grid}.person-table-link:hover{color:var(--primary)}.person-reset-dialog{max-width:560px}.person-reset-dialog textarea{overflow-wrap:anywhere;font-family:monospace;font-size:.72rem}@media (width<=1080px){.person-profile-heading{flex-wrap:wrap}.person-profile-facts{order:3;grid-template-columns:repeat(3,minmax(0,1fr));width:100%}.person-profile-heading>button{margin-left:auto}}@media (width<=820px){.person-profile-grid{grid-template-columns:1fr}.person-profile-heading h1{font-size:1.2rem}}@media (width<=560px){.person-profile-heading{align-items:flex-start;padding:.75rem}.person-avatar{width:2.5rem;height:2.5rem}.person-profile-identity{width:calc(100% - 3.3rem)}.person-profile-heading>button{width:100%;margin-left:0}.person-profile-facts{gap:.25rem}.person-profile-facts>div{text-align:center;grid-template-columns:1fr;justify-items:center;padding:.35rem .2rem}.person-profile-facts svg{display:none}.person-profile-facts dt,.person-profile-facts dd{grid-column:1}.person-profile-facts dd{grid-row:1}.person-profile-facts dt{grid-row:2}.person-card{padding:.75rem}.person-admin-action{align-items:stretch}.person-admin-action>button{width:100%}.person-login-list li{gap:.1rem;display:grid}.person-login-list span{text-align:left}}@media (prefers-reduced-motion:reduce){.person-edit-action>summary:after{transition:none}}@media (prefers-color-scheme:dark){.dark .person-role-admin{color:#eadbff;background:#44325d}.dark .person-role-teacher{color:#c8f1f7;background:#214c54}.dark .person-role-student{color:#ffe3b7;background:#573e23}}.account-settings{max-width:960px}.account-settings-panel{border:1px solid var(--border);background:var(--card);border-radius:20px;margin-top:22px;padding:clamp(20px,3vw,32px);box-shadow:0 12px 30px #042a3c0f}.account-settings-heading{align-items:flex-start;gap:14px;display:flex}.account-settings-heading h2{color:var(--foreground);margin:0;font-size:20px;font-weight:750}.account-settings-heading p{color:var(--muted-foreground);margin:5px 0 0;font-size:14px}.account-settings-icon{width:42px;height:42px;color:var(--brand-ink);background:color-mix(in oklch, var(--brand) 14%, white);border-radius:13px;flex:none;place-items:center;display:grid}.account-settings-email{color:var(--muted-foreground);margin:22px 0 16px;font-size:13px}.account-settings-email strong{color:var(--foreground);font-weight:650}.account-settings-panel .auth-body{max-width:440px;padding:0}.account-settings-demo{color:var(--brand-ink);background:color-mix(in oklch, var(--brand) 10%, white);border-radius:12px;margin:22px 0 0;padding:14px 16px;font-size:14px}.settings-grade-links{grid-template-columns:repeat(auto-fit,minmax(min(100%,270px),1fr));gap:8px;margin-top:14px;display:grid}.settings-link-card{background:var(--card);min-height:58px;color:var(--foreground);border:1px solid #cfe7ef;border-radius:14px;align-items:center;gap:10px;padding:9px 12px;text-decoration:none;display:flex;box-shadow:0 8px 22px #042a3c0a}.settings-link-card>span:nth-child(2){min-width:0}.settings-link-card>svg{color:var(--brand);flex:none;margin-left:auto}.settings-link-card strong,.settings-link-card small{display:block}.settings-link-card strong{color:var(--brand-ink);font-size:.85rem}.settings-link-card small{color:var(--muted-foreground);text-overflow:ellipsis;white-space:nowrap;margin-top:2px;font-size:.7rem;overflow:hidden}.settings-link-card:hover{border-color:var(--brand);background:color-mix(in oklch, var(--accent) 22%, var(--card))}.settings-link-card:focus-visible{outline:3px solid var(--ring);outline-offset:2px}.settings-link-card-disabled{color:var(--muted-foreground);box-shadow:none;margin-top:14px}.settings-link-card-disabled:hover{background:var(--card);border-color:#cfe7ef}
