@media (max-width:1180px){.supervisor-folder-grid{grid-template-columns:repeat(auto-fit,minmax(220px,1fr))}.student-filter-grid,.course-filter-grid{grid-template-columns:repeat(2,minmax(180px,1fr))}.course-update-modal-grid{grid-template-columns:minmax(0,1fr)}.care-map-summary-grid{grid-template-columns:repeat(2,minmax(160px,1fr))}.app-shell.viewport-guard .student-table-wrap,.app-shell.viewport-guard .course-table-wrap,.app-shell.viewport-guard .course-responsibility-table-wrap{height:clamp(220px,100dvh - 340px,640px)}.course-responsibility-shell{grid-template-columns:1fr}.course-responsibility-sidebar{position:static}.course-responsibility-overlay{padding-top:82px}}@media (max-width:720px){.supervisor-workspace-head,.supervisor-year-head,.supervisor-year-panel-grid,.supervisor-folder-grid,.student-filter-grid{grid-template-columns:1fr}.student-filter-field-search,.course-filter-field-search{grid-column:span 1}.student-filter-actions{justify-content:stretch}.course-filter-grid,.course-edit-pair,.care-map-summary-grid{grid-template-columns:1fr}.course-filter-actions{justify-content:stretch}.app-shell.viewport-guard .student-table-wrap,.app-shell.viewport-guard .course-table-wrap,.app-shell.viewport-guard .course-responsibility-table-wrap{height:clamp(200px,52dvh,520px)}.app-shell.viewport-guard .care-supervisor-map-roster,.app-shell.viewport-guard .care-supervisor-map-student-list{max-height:48dvh}.course-update-modal-backdrop{padding:14px}.course-update-modal{border-radius:20px;width:100%;padding:16px}.course-responsibility-feedback-actions,.course-responsibility-sidebar-head,.course-responsibility-main-head{flex-direction:column;align-items:stretch}.course-responsibility-overlay{padding:72px 12px 12px}.course-responsibility-drawer{border-radius:22px;width:min(100%,100vw - 24px);max-height:calc(100vh - 84px);padding:16px}.course-responsibility-drawer-meta{grid-template-columns:1fr}.course-responsibility-save-btn{justify-content:center;width:100%}}
.rbac-user-row-identity,.rbac-user-row-roles,.rbac-user-row-status{gap:6px;min-width:0;display:grid}.rbac-user-row-title{justify-content:space-between;align-items:flex-start;gap:8px;display:flex}.rbac-user-row-usercell{grid-template-columns:auto minmax(0,1fr);align-items:start;gap:10px;display:grid}.rbac-user-row-usercopy{gap:6px;min-width:0;display:grid}.rbac-user-name-title{align-items:center;gap:6px;display:inline-flex}.rbac-admin-crown{width:18px;height:18px;color:color-mix(in srgb, var(--accent) 78%, #ffda78 22%);flex:none;display:inline-flex}.rbac-admin-crown svg{width:100%;height:100%;display:block}.rbac-user-avatar{background:radial-gradient(circle at 24% 18%, #ffffffb3 0%, transparent 42%), linear-gradient(160deg, color-mix(in srgb, var(--brand) 70%, #fff 30%) 0%, color-mix(in srgb, var(--secondary) 34%, var(--brand-strong) 66%) 100%);color:#fff;letter-spacing:.08em;width:52px;height:52px;box-shadow:0 8px 16px color-mix(in srgb, var(--brand-strong) 18%, transparent), inset 0 1px 0 #ffffff3d;border-radius:16px;flex:none;place-items:center;font-size:1rem;font-weight:800;display:grid}.rbac-user-avatar-image{border-radius:inherit;object-fit:cover;width:100%;height:100%;display:block}.rbac-user-row-identity .muted{margin:0}.rbac-user-row-meta{flex-wrap:wrap;gap:6px;display:flex}.rbac-user-meta-pill{border:1px solid color-mix(in srgb, var(--line) 88%, var(--brand-soft) 12%);background:color-mix(in srgb, var(--surface) 70%, var(--surface-soft) 30%);color:var(--text-soft);border-radius:999px;padding:4px 8px;font-size:.76rem}.rbac-user-row-label{letter-spacing:.04em;text-transform:uppercase;color:var(--app-title-text);font-size:.72rem;font-weight:700}.rbac-user-chip-list{margin-top:0}.rbac-user-row-roles,.rbac-user-row-status{border:1px solid color-mix(in srgb, var(--line) 84%, var(--brand-soft) 16%);background:linear-gradient(180deg, color-mix(in srgb, var(--surface) 88%, var(--surface-soft) 12%) 0%, transparent 100%), color-mix(in srgb, var(--surface) 76%, var(--surface-soft) 24%);box-shadow:inset 0 1px 0 color-mix(in srgb, var(--surface) 90%, transparent);border-radius:12px;align-content:start;padding:10px}.rbac-user-row-roles-actions{border-top:1px dashed color-mix(in srgb, var(--line) 86%, var(--brand-soft) 14%);margin-top:4px;padding-top:8px}.rbac-user-row-status{justify-content:start;justify-self:start;width:min(100%,180px)}.rbac-user-row-status-head{justify-content:space-between;align-items:center;gap:10px;display:flex}.rbac-user-row-status-head .rbac-user-status-toggle-form{flex:none;margin-left:auto}.rbac-user-row-status-actions,.rbac-user-row-role-actions-body{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.rbac-user-status-toggle-form{align-items:center;margin:0;display:inline-flex}.rbac-user-row-quick-form{margin:0;display:inline-flex}.rbac-user-row-quick-btn,.rbac-user-row-assign-btn{min-height:32px;padding:7px 11px;font-size:.84rem}.rbac-user-row-admin-note{font-size:.8rem}.rbac-user-mobile-label{display:none}:is(.app-shell:has(.rbac-role-modal-overlay) .app-sidebar,.app-shell:has(.rbac-role-modal-overlay) .app-toolbar){z-index:0}.app-shell:has(.rbac-role-modal-overlay) .app-main{z-index:var(--z-app-overlay)}.app-shell:has(.rbac-role-modal-overlay) .rbac-role-modal-overlay{z-index:calc(var(--z-app-overlay) + 10)}.app-shell:has(.rbac-role-modal-overlay) .rbac-role-modal{z-index:calc(var(--z-app-overlay-panel) + 10);position:relative}.rbac-user-assign-modal{z-index:var(--z-app-overlay-panel);width:min(520px,100%);position:relative;overflow:visible}.rbac-user-assign-modal-form,.rbac-user-assign-modal-form .field,.rbac-user-assign-modal-form .select-menu{overflow:visible}.rbac-user-assign-modal-form .field{z-index:3;position:relative}.rbac-user-assign-modal-form .select-menu{z-index:4;position:relative}.rbac-user-assign-modal-form .select-popover{z-index:6}.rbac-user-assign-modal-form .btn-row{z-index:1;position:relative}.rbac-user-assign-subtitle{margin:-4px 0 0;font-size:.86rem}.rbac-user-assign-modal-form .select-trigger,.rbac-user-assign-modal-form .input,.rbac-user-assign-modal-form .select{border-radius:10px;min-height:42px;padding:10px 11px}.rbac-user-assign-modal-form .btn{min-height:40px;padding:9px 12px}.rbac-mono{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace}.muted{color:var(--text-soft)}@media (max-width:1220px){.rbac-manager-layout{grid-template-columns:1fr}.rbac-user-table-head{display:none}.rbac-user-list{box-shadow:none;background:0 0;border:0;border-radius:0;gap:12px;overflow:visible}.rbac-user-list .rbac-user-row{border:1px solid color-mix(in srgb, var(--rbac-card-border) 82%, var(--brand-soft) 18%);border-radius:16px}.rbac-user-list .rbac-user-row+.rbac-user-row{border-top:1px solid color-mix(in srgb, var(--rbac-card-border) 82%, var(--brand-soft) 18%)}.rbac-user-filter-grid{grid-template-columns:1fr}.rbac-user-row{grid-template-columns:minmax(260px,.95fr) minmax(0,1.05fr);gap:8px;padding:10px 12px;transform:none}.rbac-user-row-identity{grid-area:1/1/span 2}.rbac-user-row-status{grid-area:1/2}.rbac-user-row-roles{grid-area:2/2}.rbac-user-row:hover,.rbac-user-row:focus-within{transform:none}.rbac-user-mobile-label{display:block}.rbac-user-row-status-actions,.rbac-user-row-role-actions-body{align-items:flex-start;gap:6px}.rbac-user-row-status,.rbac-user-row-roles{padding:8px 10px}.rbac-user-row-quick-btn,.rbac-user-row-assign-btn{width:auto;min-height:30px;padding:6px 10px;font-size:.82rem}}@media (max-width:980px){.rbac-user-row{grid-template-columns:1fr}.rbac-user-row-identity,.rbac-user-row-status,.rbac-user-row-roles{grid-area:auto/1}.rbac-user-row-status{width:min(100%,160px)}}@keyframes fade-up{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}@keyframes nav-ink-active-in{0%{opacity:.12;transform:var(--active-ink-transform);filter:saturate(.72)contrast(.82)blur(2px);background-position:100%}38%{opacity:.5;filter:saturate(.8)contrast(.88)blur(1px);background-position:38%}to{opacity:var(--active-ink-opacity);transform:var(--active-ink-transform);filter:var(--active-ink-filter);background-position:0%}}
@media (prefers-reduced-motion:reduce){.app-shell,.app-sidebar,.app-sidebar-head,.app-sidebar-head-actions,.app-brand,.brand-logo,.brand-mark-image,.brand-word,.app-sidebar-note,.app-sidebar-note-full,.app-sidebar-note-short,.app-sidebar-mode-switch,.app-sidebar-mode-copy,.app-sidebar-mode-dot,.app-nav-link,.app-nav-sublink,.app-nav-label,.app-view,.badge.active,.batch-current-pill{transition:none;animation:none}.app-view.page-transition-exiting,.app-view.page-transition-entering{opacity:1;transform:none}.app-nav-link.active:before,.app-nav-sublink.active:before{animation:none}}@media (max-width:640px){.app-toolbar{margin-bottom:18px;padding:14px}.app-view{padding:14px}.app-toolbar-row{grid-template-columns:minmax(0,1fr) auto;align-items:start;gap:8px}.app-profile-box{width:auto}.app-profile-switcher .select-trigger{max-width:120px;min-height:40px;padding:8px 11px}.app-profile-trigger{width:40px;min-width:40px;height:40px}.app-profile-menu{width:min(210px,100vw - 24px);left:auto;right:0}.app-profile-email{display:none}.app-surface{padding:14px}.page-card{border-radius:16px;padding:20px}.btn,.btn-row{width:100%}.profile-name-row{grid-template-columns:1fr}.cropper-overlay,.cropper-panel,.rbac-role-modal-overlay,.rbac-role-modal{padding:14px}.rbac-whitelist-modal{max-height:none}.rbac-grid{grid-template-columns:1fr}.rbac-shell{margin-top:12px}.rbac-surface{padding-top:28px}.rbac-tabs{grid-template-columns:repeat(2,minmax(0,1fr));display:grid;top:1px;left:12px;right:12px;transform:translateY(-100%)}.rbac-tab{text-align:center;margin-right:0}.rbac-manager-layout,.rbac-role-detail-grid{grid-template-columns:1fr}.rbac-role-name-field,.rbac-role-order-field{grid-column:auto}.rbac-role-name-field .input,.rbac-search-form .field,.rbac-search-input-wrap{max-width:none}.rbac-role-meta-row,.rbac-role-item,.rbac-role-item-wrap{grid-template-columns:1fr}.rbac-role-drag-handle{justify-content:start;width:auto;padding-left:2px}.rbac-role-item-side{grid-auto-flow:column;justify-content:flex-start;justify-items:start;gap:10px}.rbac-permission-row{flex-direction:column;align-items:flex-start}.rbac-permission-group-list,.rbac-permissions-scroll{max-height:none;padding-right:0;overflow:visible}.approval-summary-grid,.rbac-inline-form{grid-template-columns:1fr}.rbac-user-table-head{display:none}.rbac-user-list{box-shadow:none;background:0 0;border:0;border-radius:0;gap:12px;overflow:visible}.rbac-user-list .rbac-user-row{border:1px solid color-mix(in srgb, var(--rbac-card-border) 82%, var(--brand-soft) 18%);border-radius:16px}.rbac-user-list .rbac-user-row+.rbac-user-row{border-top:1px solid color-mix(in srgb, var(--rbac-card-border) 82%, var(--brand-soft) 18%)}.rbac-user-filter-grid,.rbac-whitelist-form,.rbac-whitelist-row,.rbac-user-row{grid-template-columns:1fr}.rbac-user-tools{flex-direction:column;align-items:stretch}.rbac-user-tools-action{justify-content:space-between;width:100%}.rbac-user-filter-query-wrap{grid-column:span 1}.rbac-whitelist-form-actions,.rbac-whitelist-form-actions .btn,.rbac-whitelist-actions .btn{width:100%}.rbac-whitelist-actions{justify-content:flex-start}.rbac-user-row,.rbac-user-row:hover,.rbac-user-row:focus-within{transform:none}.rbac-user-mobile-label{display:block}.rbac-user-row-status-actions,.rbac-user-row-role-actions-body{align-items:flex-start}.rbac-user-row-quick-form,.rbac-user-row-quick-btn,.rbac-user-row-assign-btn{width:100%}.rbac-user-row-title{flex-direction:column;align-items:flex-start}.rbac-user-row-usercell,.dashboard-hero,.dashboard-report-grid,.dashboard-chart-grid,.dashboard-mapping-grid,.dashboard-admin-box,.dashboard-summary-grid,.dashboard-area-stats,.dashboard-year-item-compact,.dashboard-year-track,.dashboard-year-track-list{grid-template-columns:1fr}.dashboard-year-track-stats{grid-template-columns:1fr;gap:6px}.dashboard-area-progress{justify-items:stretch;min-width:0}.dashboard-breakdown-head,.dashboard-mapping-audit-head,.dashboard-mapping-panel-head,.dashboard-mapping-course-head{flex-direction:column}.dashboard-mapping-audit-stats{grid-template-columns:1fr;width:100%}.dashboard-tabs{width:100%}.dashboard-tab{flex:1 1 0}.batch-controller-grid,.batch-form-grid,.batch-copy-row,.batch-list-item{grid-template-columns:1fr}.batch-current-panel{grid-template-columns:1fr;width:100%;min-width:0}.batch-course-row{grid-template-columns:24px minmax(0,1fr) auto}.batch-course-meta{grid-column:2/-1}.batch-form-footer,.batch-list-actions{justify-content:stretch}.batch-workspace-table-head,.batch-controller-main-actions{align-items:stretch;width:100%}.batch-controller-main-actions{grid-template-columns:1fr;display:grid}.batch-create-trigger{width:100%}.batch-modal-backdrop{align-items:stretch;padding:8px}.batch-modal{border-radius:18px;width:100%;max-height:calc(100dvh - 16px);padding:12px}.batch-create-panel-modal{padding:12px}}@media (max-width:920px){.app-main{padding:8px 8px 14px;overflow-x:clip}.app-toolbar{margin-bottom:14px;padding:12px 14px 14px}.app-toolbar-row{grid-template-columns:minmax(0,1fr) auto;align-items:start;gap:10px;display:grid}.app-toolbar-main{grid-area:1/1;align-items:flex-start}.app-toolbar-main>div{flex:1;min-width:0}.app-breadcrumb{font-size:.8rem}.app-title{margin-top:6px;font-size:clamp(1.24rem,1.08rem + .9vw,1.56rem)}.batch-controller-grid{grid-template-columns:1fr}.batch-form-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.batch-field-wide{grid-column:1/-1}.batch-table{min-width:1200px}.batch-modal{width:min(100%,100vw - 24px)}.app-shell,.app-shell.collapsed{grid-template-columns:1fr}.app-sidebar{z-index:var(--z-app-mobile-nav);border-right:0;width:min(100vw - 20px,300px);margin:0;transition:transform .24s;position:fixed;top:10px;bottom:10px;left:10px;transform:translate(calc(-100% - 14px))}.app-shell.mobile-nav-open .app-sidebar{box-shadow:0 24px 56px color-mix(in srgb, var(--text) 26%, transparent);transform:translate(0)}.app-sidebar-overlay{z-index:var(--z-app-mobile-nav-backdrop);opacity:0;pointer-events:none;transition:opacity .2s;position:fixed;inset:0}.app-shell.mobile-nav-open .app-sidebar-overlay{opacity:1;pointer-events:auto;display:block}.app-sidebar-toggle{display:none}.app-sidebar-mobile-close,.app-mobile-nav-btn{display:grid}.app-toolbar-actions{display:contents}.app-language-toggle{grid-area:3/1/auto/-1;justify-self:start;min-height:36px}.app-language-toggle-trigger{min-width:62px;min-height:28px;padding-inline:9px 10px}.app-language-toggle-menu{transform-origin:0 0;left:0;right:auto}.app-profile-switcher{gap:0;width:auto;min-width:0}.app-profile-switcher-label{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.app-profile-switcher .select-menu{width:auto}.app-profile-switcher .select-trigger{width:auto;min-width:0;max-width:144px;min-height:42px;box-shadow:0 8px 18px color-mix(in srgb, var(--brand-strong) 10%, transparent), inset 0 1px 0 #ffffffbd;border-radius:999px;padding:9px 12px}.app-current-batch-box{width:100%;min-width:0;max-width:none;font-family:var(--font-sans);background:linear-gradient(180deg, #ffffff57 0%, transparent 56%), color-mix(in srgb, var(--surface) 94%, var(--school-primary-subtle) 6%);box-shadow:inset 3px 0 0 var(--school-primary), 0 10px 22px -20px color-mix(in srgb, var(--brand-strong) 18%, transparent), inset 0 1px 0 #ffffffd6;border-radius:14px;grid-area:2/1/auto/-1;justify-self:stretch;gap:4px;padding:10px 12px 10px 14px}.app-current-batch-box strong{white-space:normal;overflow-wrap:anywhere;font-size:.88rem;line-height:1.25}.app-current-batch-box span:not(.app-current-batch-label):not(.app-current-batch-deadline){display:none}.app-current-batch-label{font-size:.62rem;line-height:1}.app-current-batch-deadline{color:var(--danger-text);font-size:.8rem;line-height:1.35}.app-profile-box{grid-area:1/2;justify-self:end;width:auto;min-width:0}.app-profile-trigger{width:44px;min-width:44px;height:44px;box-shadow:0 10px 22px color-mix(in srgb, var(--brand-strong) 11%, transparent), inset 0 1px 0 #ffffffc7;border-radius:50%;place-items:center;gap:0;padding:0;display:grid}.app-profile-avatar{width:40px;height:40px}.app-profile-lines,.app-profile-chevron,.app-profile-nickname{display:none}.app-profile-menu{width:min(220px,100vw - 28px);left:auto;right:0}.app-nav{grid-template-columns:1fr}.app-view{padding:8px 14px 16px;overflow-x:clip}.app-surface{padding:15px}.rbac-role-detail-grid,.rbac-role-meta-row,.rbac-inline-form{grid-template-columns:1fr}.rbac-role-name-field,.rbac-role-order-field,.rbac-role-actions{grid-column:auto}.rbac-role-name-field .input,.rbac-search-form .field{max-width:none}.rbac-role-panel-head,.rbac-card-head{flex-direction:column;align-items:flex-start}.app-nav-item,.app-nav-group{position:static}.app-nav-item:after,.app-nav-group:after{display:none}.app-nav-link:active,.app-nav-sublink:active,.app-mobile-nav-btn:active,.app-sidebar-mobile-close:active{background:0 0}.app-mobile-nav-btn:focus:not(:focus-visible),.app-sidebar-mobile-close:focus:not(:focus-visible),.app-nav-link:focus:not(:focus-visible),.app-nav-sublink:focus:not(:focus-visible){box-shadow:none;outline:none}.app-nav-parent-chevron.open{transform:rotate(90deg)}.app-shell.collapsed .app-nav-link.active:before,.app-nav-link.active:before,.app-nav-sublink.active:before{--active-ink-opacity:.96;--active-ink-transform:rotate(-.18deg) scaleX(1.06) scaleY(1.12);--active-ink-filter:saturate(1.08) contrast(1.08) blur(.12px);--active-ink-mask-size:184% 230%;inset:-6px -8px}@media (hover:none){.app-mobile-nav-btn:hover,.app-sidebar-mobile-close:hover{background:color-mix(in srgb, var(--surface) 66%, transparent);border-color:color-mix(in srgb, var(--brand) 26%, transparent)}.app-nav-link:hover,.app-nav-sublink:hover{background:0 0;border-color:#0000;padding-left:11px}.app-nav-sublink:hover{padding-left:10px}}.app-nav-submenu{z-index:auto;border:0;border-left:1px solid var(--mobile-submenu-border-left);min-width:0;box-shadow:none;opacity:0;pointer-events:none;background:0 0;border-radius:0;max-height:0;margin-left:12px;padding:6px 0 0 10px;transition:max-height .24s,opacity .2s,transform .2s;position:static;top:auto;left:auto;transform:translateY(-4px)}.app-nav-flyout,.app-nav-submenu:before{display:none}.app-nav-group:hover .app-nav-submenu,.app-nav-group:focus-within .app-nav-submenu{opacity:0;pointer-events:none;transform:translateY(-4px)}.app-nav-group.mobile-expanded .app-nav-submenu,.app-nav-submenu.open{opacity:1;pointer-events:auto;max-height:320px;transform:translateY(0)}.app-shell.collapsed .app-nav-link{justify-content:flex-start;padding-inline:11px}.app-shell.collapsed .app-nav-parent-link{padding-right:11px}.app-shell.collapsed .app-nav-parent-row{grid-template-columns:minmax(0,1fr) auto;gap:6px;display:grid;position:static}.app-shell.collapsed .app-nav-parent-toggle{z-index:auto;width:38px;min-width:38px;position:static;top:auto;right:auto;transform:none}.app-shell.collapsed .app-nav-link .app-nav-label{opacity:1;max-width:190px;transform:translate(0)}.app-shell.collapsed .app-sidebar-head{flex-direction:row;justify-content:space-between;align-items:flex-start;gap:8px}.app-shell.collapsed .app-sidebar-head>:first-child{display:block}.app-shell.collapsed .app-sidebar-head-actions{justify-content:flex-start;width:auto}.app-shell.collapsed .app-sidebar-note{width:210px;font-size:.8rem}.app-shell.collapsed .app-brand{gap:0;width:178px}.app-shell.collapsed .brand-logo-wordmark{flex-basis:178px;width:178px;height:auto;display:block}.app-shell.collapsed .brand-logo-mark{object-fit:contain;border-radius:0;flex-basis:56px;width:56px;height:56px;display:none}.app-shell.collapsed .brand-word{opacity:1;max-width:130px;transform:translate(0)}.app-shell.collapsed .app-sidebar-note-full{opacity:1;max-width:210px;transform:translateY(0)}.app-shell.collapsed .app-sidebar-note-short{opacity:0;max-width:0;transform:translateY(4px)}.app-shell.collapsed .app-sidebar-mode-switch{grid-template-columns:auto minmax(0,1fr) auto;justify-items:stretch;gap:9px;padding:8px 9px}.app-shell.collapsed .app-sidebar-mode-copy{opacity:1;max-width:160px;transform:translateY(0)}.app-shell.collapsed .app-sidebar-mode-track{width:36px;height:20px;padding:3px}.app-shell.collapsed .app-sidebar-mode-dot{width:14px;height:14px}.app-shell.collapsed .app-sidebar-mode-switch.advance .app-sidebar-mode-dot{transform:translate(16px)}.app-shell.collapsed .app-nav-empty-title,.app-shell.collapsed .app-nav-empty-note{display:inline}.app-shell.collapsed .app-nav-parent-chevron{display:inline;position:static}.app-nav-label{opacity:1;max-width:190px;transform:translate(0)}.dashboard-summary-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.dashboard-report-grid,.dashboard-chart-grid,.dashboard-mapping-grid{grid-template-columns:1fr}.dashboard-area-stats{grid-template-columns:repeat(2,minmax(0,1fr))}.dashboard-year-panel-head,.dashboard-mapping-audit-head{flex-direction:column}.dashboard-mapping-audit-stats{width:100%}.dashboard-year-item-compact,.dashboard-year-track,.dashboard-year-track-list{grid-template-columns:1fr}.dashboard-user-main{align-items:flex-start}.my-students-card-toolbar{grid-template-columns:1fr;padding:12px}.my-students-card-status-summary,.my-students-card-filters{align-items:stretch}.my-students-card-filters .my-students-filter{flex:180px;min-width:min(220px,100%)}}@media (max-width:640px){.batch-form-grid,.batch-copy-row,.batch-course-row{grid-template-columns:1fr}.batch-course-check,.batch-course-count{justify-self:start}.batch-course-meta{grid-column:auto}.batch-table{min-width:1200px}.batch-table th,.batch-table td{padding:10px 12px}.batch-modal .batch-course-list{max-height:min(34dvh,300px)}.my-students-card-page-head,.my-students-card-feedback-head,.my-students-card-status-summary,.my-students-card-filters{display:grid}.my-students-card-filters .my-students-filter,.my-students-card-filters .course-responsibility-filter-toggle{width:100%}.my-students-card-grid{grid-template-columns:1fr}.my-students-card{min-height:0;padding:16px}}.batch-current-select-wrap.is-loading .select-caret{opacity:0}
.app-shell{z-index:1;position:relative}body:before{content:"";z-index:0;pointer-events:none;opacity:.36;mix-blend-mode:multiply;position:fixed;inset:0}@supports ((-webkit-mask-image:url("")) or (mask-image:url(""))){body:before{background-color:color-mix(in srgb, var(--ornament) 58%, var(--line) 42%);--bg-pattern-mask:url(data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%20432%20288%22%3E%3Cg%20fill%3D%22none%22%20stroke%3D%22black%22%20stroke-width%3D%221.45%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cg%20opacity%3D%22.42%22%3E%3Cpath%20d%3D%22M0%200h432M0%2072h432M0%20144h432M0%20216h432M0%20288h432M0%200v288M72%200v288M144%200v288M216%200v288M288%200v288M360%200v288M432%200v288%22%2F%3E%3C%2Fg%3E%3Cg%20opacity%3D%22.88%22%3E%3Ccircle%20cx%3D%2236%22%20cy%3D%2236%22%20r%3D%2222%22%2F%3E%3Ccircle%20cx%3D%2236%22%20cy%3D%2236%22%20r%3D%2212%22%2F%3E%3Ccircle%20cx%3D%2236%22%20cy%3D%2236%22%20r%3D%223%22%2F%3E%3Cpath%20d%3D%22M92%2020h32M92%2036h32M92%2052h32%22%2F%3E%3Ccircle%20cx%3D%22160%22%20cy%3D%2222%22%20r%3D%223%22%2F%3E%3Ccircle%20cx%3D%22180%22%20cy%3D%2222%22%20r%3D%223%22%2F%3E%3Ccircle%20cx%3D%22200%22%20cy%3D%2222%22%20r%3D%223%22%2F%3E%3Ccircle%20cx%3D%22160%22%20cy%3D%2236%22%20r%3D%223%22%2F%3E%3Ccircle%20cx%3D%22180%22%20cy%3D%2236%22%20r%3D%223%22%2F%3E%3Ccircle%20cx%3D%22200%22%20cy%3D%2236%22%20r%3D%223%22%2F%3E%3Ccircle%20cx%3D%22160%22%20cy%3D%2250%22%20r%3D%223%22%2F%3E%3Ccircle%20cx%3D%22180%22%20cy%3D%2250%22%20r%3D%223%22%2F%3E%3Ccircle%20cx%3D%22200%22%20cy%3D%2250%22%20r%3D%223%22%2F%3E%3Cpath%20d%3D%22M252%2012l24%2024-24%2024-24-24%2024-24zM252%2012v48M228%2036h48%22%2F%3E%3Cpath%20d%3D%22M308%2012v48M320%2012v48M332%2012v48M344%2012v48%22%2F%3E%3Cpath%20d%3D%22M396%2012l7%2017%2017%207-17%207-7%2017-7-17-17-7%2017-7%207-17z%22%2F%3E%3Cpath%20d%3D%22M16%2088h40v40H16zM16%2088l40%2040M56%2088l-40%2040%22%2F%3E%3Ccircle%20cx%3D%22108%22%20cy%3D%22108%22%20r%3D%2222%22%2F%3E%3Cpath%20d%3D%22M108%2084v48M84%20108h48%22%2F%3E%3Cpath%20d%3D%22M156%20128V98M170%20128v-44M184%20128v-24M198%20128v-36%22%2F%3E%3Cpath%20d%3D%22M252%2086l28%2042h-56l28-42zM252%20100v20%22%2F%3E%3Cpath%20d%3D%22M306%20128l20-44%2020%2044M314%20112h24%22%2F%3E%3Cpath%20d%3D%22M376%2090h40v36h-40zM384%20100h24M384%20110h18M384%20120h10%22%2F%3E%3Cpath%20d%3D%22M20%20164h32v40H20zM28%20176h16M28%20188h16M33%20199l8%208%2015-20%22%2F%3E%3Cpath%20d%3D%22M86%20166h44v44H86zM98%20178h20M98%20190h20M98%20202h12%22%2F%3E%3Cpath%20d%3D%22M168%20204l-18-18%2018-18M192%20204l18-18-18-18M178%20210l14-48%22%2F%3E%3Cpath%20d%3D%22M230%20198l14-18%2018%2012%2022-28%22%2F%3E%3Cpath%20d%3D%22M310%20166h36v42h-36zM318%20178h20M318%20190h20M318%20202h12%22%2F%3E%3Cpath%20d%3D%22M396%20166l8%2014%2016%202-12%2011%203%2016-15-8-15%208%203-16-12-11%2016-2%208-14z%22%2F%3E%3Cpath%20d%3D%22M16%20244h40M16%20260h40M16%20276h40%22%2F%3E%3Cpath%20d%3D%22M96%20232h24v24H96zM84%20244h48M108%20220v48%22%2F%3E%3Cpath%20d%3D%22M164%20230h32v48h-32zM172%20242h16M172%20254h16M172%20266h10%22%2F%3E%3Cpath%20d%3D%22M228%20252h48M252%20228v48M236%20236l32%2032M268%20236l-32%2032%22%2F%3E%3Ccircle%20cx%3D%22324%22%20cy%3D%22252%22%20r%3D%2220%22%2F%3E%3Cpath%20d%3D%22M324%20224v10M324%20270v10M296%20252h10M342%20252h10M304%20232l7%207M337%20265l7%207M304%20272l7-7M337%20239l7-7%22%2F%3E%3Cpath%20d%3D%22M378%20276V236M394%20276v-28M410%20276v-44%22%2F%3E%3C%2Fg%3E%3C%2Fg%3E%3C%2Fsvg%3E);-webkit-mask-image:url(data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%20432%20288%22%3E%3Cg%20fill%3D%22none%22%20stroke%3D%22black%22%20stroke-width%3D%221.35%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cg%20opacity%3D%22.45%22%3E%3Cpath%20d%3D%22M0%200h432M0%2072h432M0%20144h432M0%20216h432M0%20288h432M0%200v288M72%200v288M144%200v288M216%200v288M288%200v288M360%200v288M432%200v288%22%2F%3E%3C%2Fg%3E%3Cg%20opacity%3D%22.85%22%3E%3Cpath%20d%3D%22M16%2072c0-31%2017-50%2040-66M56%206c18%2018%2018%2048%200%2066M88%2016h40M88%2034h40M88%2052h40%22%2F%3E%3Ccircle%20cx%3D%22162%22%20cy%3D%2236%22%20r%3D%2222%22%2F%3E%3Ccircle%20cx%3D%22168%22%20cy%3D%2239%22%20r%3D%226%22%2F%3E%3Cpath%20d%3D%22M169%2035c7%202%208%209%203%2013%22%2F%3E%3Cpath%20d%3D%22M230%200v72M242%200v72M254%200v72M266%200v72%22%2F%3E%3Cpath%20d%3D%22M316%2014l8%2014%2014%208-14%208-8%2014-8-14-14-8%2014-8%208-14zM346%2020l5%209%209%205-9%205-5%209-5-9-9-5%209-5%205-9z%22%2F%3E%3Cpath%20d%3D%22M382%208c20-13%2042%202%2034%2022%2014%204%2016%2023%201%2031h-36c-18-10-11-35%208-34-5-8-3-15-7-19z%22%2F%3E%3Cpath%20d%3D%22M20%2088v42m0%200c0%208%207%2014%2016%2014s16-6%2016-14m-16%2014c-10%200-18%208-18%2018s8%2018%2018%2018%2018-8%2018-18c0-10-8-18-18-18zm32%2036c10%200%2018-8%2018-18s-8-18-18-18-18%208-18%2018c0%2010%208%2018%2018%2018zM20%2088c0-9%207-16%2016-16s16%207%2016%2016v56%22%2F%3E%3Cpath%20d%3D%22M100%2078l8%2010%2012-5%205%2012%2013%201-6%2012%208%2010-13%204-1%2013-12-6-10%208-4-13-13-1%207-11-9-10%2013-4%202-20z%22%2F%3E%3Cpath%20d%3D%22M160%2072l56%2072M216%2072l-72%2072%22%2F%3E%3Cpath%20d%3D%22M250%2078l28%2028-28%2028-28-28%2028-28zM250%2078v56M222%20106h56%22%2F%3E%3Cpath%20d%3D%22M315%2084l22%2034h-13v18h-18v-18h-13l22-34z%22%2F%3E%3Cpath%20d%3D%22M382%2074c12%2012%2012%2058%200%2070M414%2074c-12%2012-12%2058%200%2070M396%2098v46%22%2F%3E%3Cpath%20d%3D%22M14%20210v-42c0-10%208-18%2018-18s18%208%2018%2018v42M24%20190h16%22%2F%3E%3Cpath%20d%3D%22M100%20148c18%200%2028%2010%2028%2022%200%206-3%2011-8%2014%2010%204%2016%2012%2016%2024%200%2020-16%2036-36%2036s-36-16-36-36c0-12%206-20%2016-24-5-3-8-8-8-14%200-12%2010-22%2028-22zM76%20184h48M72%20210h56M100%20148v96%22%2F%3E%3Cpath%20d%3D%22M154%20144v58M178%20178v24M190%20190v12M202%20174v28M214%20190v12M226%20166v36M238%20188v14M250%20180v22M262%20190v12M274%20174v28%22%2F%3E%3Ccircle%20cx%3D%22304%22%20cy%3D%22180%22%20r%3D%2222%22%2F%3E%3Cpath%20d%3D%22M304%20148v9M304%20203v9M272%20180h9M327%20180h9M281%20157l7%207M320%20196l7%207M281%20203l7-7M320%20164l7-7%22%2F%3E%3Cpath%20d%3D%22M364%20156h34v14h-20v12h18v14h-18v18h-14v-58z%22%2F%3E%3Cpath%20d%3D%22M16%20288l56-72M88%20230h40M88%20250h40M88%20270h40%22%2F%3E%3Cpath%20d%3D%22M170%20228l8%2016%2016%208-16%208-8%2016-8-16-16-8%2016-8%208-16z%22%2F%3E%3Cpath%20d%3D%22M216%20288c0-40%2032-72%2072-72M228%20288c0-33%2027-60%2060-60M240%20288c0-26%2022-48%2048-48M252%20288c0-20%2016-36%2036-36%22%2F%3E%3Ccircle%20cx%3D%22324%22%20cy%3D%22252%22%20r%3D%2224%22%2F%3E%3Ccircle%20cx%3D%22324%22%20cy%3D%22252%22%20r%3D%2213%22%2F%3E%3Cpath%20d%3D%22M324%20220v12M324%20272v12M292%20252h12M344%20252h12M301%20229l8%208M339%20267l8%208M301%20275l8-8M339%20237l8-8%22%2F%3E%3Cpath%20d%3D%22M378%20228c16-8%2038-8%2054%200M380%20252h50M378%20276c16%208%2038%208%2054%200%22%2F%3E%3C%2Fg%3E%3C%2Fg%3E%3C%2Fsvg%3E);mask-image:url(data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%20432%20288%22%3E%3Cg%20fill%3D%22none%22%20stroke%3D%22black%22%20stroke-width%3D%221.35%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cg%20opacity%3D%22.45%22%3E%3Cpath%20d%3D%22M0%200h432M0%2072h432M0%20144h432M0%20216h432M0%20288h432M0%200v288M72%200v288M144%200v288M216%200v288M288%200v288M360%200v288M432%200v288%22%2F%3E%3C%2Fg%3E%3Cg%20opacity%3D%22.85%22%3E%3Cpath%20d%3D%22M16%2072c0-31%2017-50%2040-66M56%206c18%2018%2018%2048%200%2066M88%2016h40M88%2034h40M88%2052h40%22%2F%3E%3Ccircle%20cx%3D%22162%22%20cy%3D%2236%22%20r%3D%2222%22%2F%3E%3Ccircle%20cx%3D%22168%22%20cy%3D%2239%22%20r%3D%226%22%2F%3E%3Cpath%20d%3D%22M169%2035c7%202%208%209%203%2013%22%2F%3E%3Cpath%20d%3D%22M230%200v72M242%200v72M254%200v72M266%200v72%22%2F%3E%3Cpath%20d%3D%22M316%2014l8%2014%2014%208-14%208-8%2014-8-14-14-8%2014-8%208-14zM346%2020l5%209%209%205-9%205-5%209-5-9-9-5%209-5%205-9z%22%2F%3E%3Cpath%20d%3D%22M382%208c20-13%2042%202%2034%2022%2014%204%2016%2023%201%2031h-36c-18-10-11-35%208-34-5-8-3-15-7-19z%22%2F%3E%3Cpath%20d%3D%22M20%2088v42m0%200c0%208%207%2014%2016%2014s16-6%2016-14m-16%2014c-10%200-18%208-18%2018s8%2018%2018%2018%2018-8%2018-18c0-10-8-18-18-18zm32%2036c10%200%2018-8%2018-18s-8-18-18-18-18%208-18%2018c0%2010%208%2018%2018%2018zM20%2088c0-9%207-16%2016-16s16%207%2016%2016v56%22%2F%3E%3Cpath%20d%3D%22M100%2078l8%2010%2012-5%205%2012%2013%201-6%2012%208%2010-13%204-1%2013-12-6-10%208-4-13-13-1%207-11-9-10%2013-4%202-20z%22%2F%3E%3Cpath%20d%3D%22M160%2072l56%2072M216%2072l-72%2072%22%2F%3E%3Cpath%20d%3D%22M250%2078l28%2028-28%2028-28-28%2028-28zM250%2078v56M222%20106h56%22%2F%3E%3Cpath%20d%3D%22M315%2084l22%2034h-13v18h-18v-18h-13l22-34z%22%2F%3E%3Cpath%20d%3D%22M382%2074c12%2012%2012%2058%200%2070M414%2074c-12%2012-12%2058%200%2070M396%2098v46%22%2F%3E%3Cpath%20d%3D%22M14%20210v-42c0-10%208-18%2018-18s18%208%2018%2018v42M24%20190h16%22%2F%3E%3Cpath%20d%3D%22M100%20148c18%200%2028%2010%2028%2022%200%206-3%2011-8%2014%2010%204%2016%2012%2016%2024%200%2020-16%2036-36%2036s-36-16-36-36c0-12%206-20%2016-24-5-3-8-8-8-14%200-12%2010-22%2028-22zM76%20184h48M72%20210h56M100%20148v96%22%2F%3E%3Cpath%20d%3D%22M154%20144v58M178%20178v24M190%20190v12M202%20174v28M214%20190v12M226%20166v36M238%20188v14M250%20180v22M262%20190v12M274%20174v28%22%2F%3E%3Ccircle%20cx%3D%22304%22%20cy%3D%22180%22%20r%3D%2222%22%2F%3E%3Cpath%20d%3D%22M304%20148v9M304%20203v9M272%20180h9M327%20180h9M281%20157l7%207M320%20196l7%207M281%20203l7-7M320%20164l7-7%22%2F%3E%3Cpath%20d%3D%22M364%20156h34v14h-20v12h18v14h-18v18h-14v-58z%22%2F%3E%3Cpath%20d%3D%22M16%20288l56-72M88%20230h40M88%20250h40M88%20270h40%22%2F%3E%3Cpath%20d%3D%22M170%20228l8%2016%2016%208-16%208-8%2016-8-16-16-8%2016-8%208-16z%22%2F%3E%3Cpath%20d%3D%22M216%20288c0-40%2032-72%2072-72M228%20288c0-33%2027-60%2060-60M240%20288c0-26%2022-48%2048-48M252%20288c0-20%2016-36%2036-36%22%2F%3E%3Ccircle%20cx%3D%22324%22%20cy%3D%22252%22%20r%3D%2224%22%2F%3E%3Ccircle%20cx%3D%22324%22%20cy%3D%22252%22%20r%3D%2213%22%2F%3E%3Cpath%20d%3D%22M324%20220v12M324%20272v12M292%20252h12M344%20252h12M301%20229l8%208M339%20267l8%208M301%20275l8-8M339%20237l8-8%22%2F%3E%3Cpath%20d%3D%22M378%20228c16-8%2038-8%2054%200M380%20252h50M378%20276c16%208%2038%208%2054%200%22%2F%3E%3C%2Fg%3E%3C%2Fg%3E%3C%2Fsvg%3E);-webkit-mask-position:8px 4px;mask-position:8px 4px;-webkit-mask-size:259px 173px;mask-size:259px 173px;-webkit-mask-repeat:repeat;mask-repeat:repeat;-webkit-mask-image:var(--bg-pattern-mask);-webkit-mask-image:var(--bg-pattern-mask);mask-image:var(--bg-pattern-mask)}}body:after{content:none}.app-sidebar{position:relative}.app-sidebar:before{content:"";z-index:-1;pointer-events:none;background:linear-gradient(180deg, color-mix(in srgb, var(--school-primary-subtle) 32%, transparent) 0%, transparent 60%);position:absolute;inset:0}.batch-current-card,.app-stat-card,.chart-card,.app-surface-card{isolation:isolate;position:relative}.batch-current-card:after,.app-stat-card:after,.chart-card:after,.app-surface-card:after{content:"";border-radius:inherit;pointer-events:none;background:linear-gradient(180deg, #ffffff52 0%, transparent 18%), linear-gradient(0deg, color-mix(in srgb, var(--text-soft) 4%, transparent) 0%, transparent 14%);z-index:0;position:absolute;inset:0}.app-view{backface-visibility:hidden;will-change:opacity!important;transform:none!important}.app-view.page-transition-exiting{animation:.1s ease-out forwards phase7-view-fade-out!important}.app-view.page-transition-entering{opacity:1!important;animation:none!important;transform:none!important}@keyframes phase7-view-fade-out{0%{opacity:1}to{opacity:0}}.app-page-entrance{width:100%}.app-page-entrance[data-entrance=pending]{opacity:0;transition:opacity .28s ease-out}.app-page-entrance[data-entrance=ready]{opacity:1}[data-entrance=pending]{opacity:0;will-change:opacity, transform;transition:opacity .36s ease-out,transform .36s ease-out;transform:translateY(10px)}[data-entrance=ready]{opacity:1;transform:translateY(0)}[data-entrance-group]>[data-entrance],[data-entrance-group]>[data-entrance]:first-child{transition-delay:0s}[data-entrance-group]>[data-entrance]:nth-child(2){transition-delay:60ms}[data-entrance-group]>[data-entrance]:nth-child(3){transition-delay:.12s}[data-entrance-group]>[data-entrance]:nth-child(4){transition-delay:.18s}[data-entrance-group]>[data-entrance]:nth-child(n+5){transition-delay:.24s}.app-modal-backdrop,.app-drawer-backdrop,.app-overlay-backdrop,.rbac-role-modal-overlay{background:radial-gradient(ellipse at center, color-mix(in srgb, var(--text) 38%, transparent) 0%, color-mix(in srgb, var(--text) 52%, transparent) 100%);-webkit-backdrop-filter:blur(4px)saturate(108%);animation:.18s ease-out both phase7-backdrop-in}.app-modal-panel,.app-drawer-panel,.app-overlay-panel,.rbac-role-modal{transform-origin:50%;will-change:opacity, transform;animation:.22s cubic-bezier(.16,1,.3,1) both phase7-panel-in}.app-drawer-panel{animation-name:phase7-drawer-in;animation-duration:.26s}@keyframes phase7-backdrop-in{0%{opacity:0}to{opacity:1}}@keyframes phase7-panel-in{0%{opacity:0;transform:scale(.96)translateY(6px)}to{opacity:1;transform:scale(1)translateY(0)}}@keyframes phase7-drawer-in{0%{opacity:0;transform:translate(24px)}to{opacity:1;transform:translate(0)}}.app-sidebar-mode-switch{transition:background-color .16s ease-out,box-shadow .16s ease-out,transform .1s ease-out}.app-sidebar-mode-switch:hover{box-shadow:0 6px 14px -8px color-mix(in srgb, var(--brand-strong) 32%, transparent);transform:translateY(-1px)}.app-sidebar-mode-switch:active{transform:scale(.98)}.app-sidebar-mode-dot{transition:transform .22s cubic-bezier(.32,.72,0,1)}.app-nav-link.active:before,.app-nav-sublink.active:before{animation:.28s cubic-bezier(.16,1,.3,1) both phase7-active-bar}@keyframes phase7-active-bar{0%{opacity:0;transform:scaleY(0)}to{opacity:1;transform:scaleY(1)}}.app-nav-link:not(.active),.app-nav-sublink:not(.active){transition:background-color .12s ease-out,color .12s ease-out,padding-left .14s ease-out}.app-shell:not(.collapsed) .app-nav-link:not(.active):hover,.app-shell:not(.collapsed) .app-nav-sublink:not(.active):hover{padding-left:calc(var(--nav-link-pad-x,12px) + 4px)}.app-shell.collapsed .app-nav-link .app-nav-label,.app-shell.collapsed .app-sidebar-note-full,.app-shell.collapsed .brand-word,.app-shell.collapsed .app-sidebar-mode-copy{opacity:0;transition:opacity 80ms ease-out}.app-shell:not(.collapsed) .app-nav-label,.app-shell:not(.collapsed) .app-sidebar-note-full,.app-shell:not(.collapsed) .brand-word,.app-shell:not(.collapsed) .app-sidebar-mode-copy{opacity:1;transition:opacity .22s ease-out .1s}.app-profile-menu{transform-origin:100% 0;animation:.16s cubic-bezier(.16,1,.3,1) both phase7-dropdown-in}@keyframes phase7-dropdown-in{0%{opacity:0;transform:scale(.96)translateY(-4px)}to{opacity:1;transform:scale(1)translateY(0)}}input[type=text],input[type=email],input[type=password],input[type=search],input[type=number],input[type=tel],input[type=url],input[type=date],textarea,select{transition:border-color .14s ease-out,background-color .14s ease-out,box-shadow .14s ease-out}input:focus-visible,textarea:focus-visible,select:focus-visible{border-color:var(--brand);background-color:color-mix(in srgb, var(--school-primary-subtle) 60%, var(--surface) 40%);box-shadow:0 0 0 3px color-mix(in srgb, var(--brand) 18%, transparent), inset 0 1px 0 color-mix(in srgb, var(--text-soft) 8%, transparent);outline:none}textarea{transition:border-color .14s ease-out,background-color .14s ease-out,box-shadow .14s ease-out,min-height .2s ease-out}.field-error input,.field-error textarea,.field-error select,input[aria-invalid=true],textarea[aria-invalid=true],select[aria-invalid=true]{border-color:var(--danger-action);animation:.22s ease-in-out phase7-shake}@keyframes phase7-shake{0%,to{transform:translate(0)}20%{transform:translate(-4px)}40%{transform:translate(4px)}60%{transform:translate(-3px)}80%{transform:translate(2px)}}.autosave-indicator{color:var(--text-soft);align-items:center;gap:6px;font-size:12px;display:inline-flex}.autosave-indicator[data-status=saving]:before{content:"";background:var(--brand);border-radius:50%;width:8px;height:8px;animation:1.2s ease-in-out infinite phase7-dot-pulse}.autosave-indicator[data-status=saved]:before{content:"✓";color:var(--success-action,#16a34a);font-size:12px;font-weight:700;animation:.28s cubic-bezier(.16,1,.3,1) phase7-check-pop}@keyframes phase7-dot-pulse{0%,to{opacity:.4;transform:scale(.9)}50%{opacity:1;transform:scale(1.1)}}@keyframes phase7-check-pop{0%{opacity:0;transform:scale(.4)}to{opacity:1;transform:scale(1)}}.recharts-tooltip-wrapper{transition:opacity .1s ease-out!important}.recharts-bar-rectangle path,.recharts-rectangle{transform-origin:bottom;transition:fill-opacity .14s ease-out,transform .14s ease-out}.recharts-bar-rectangle:hover path{filter:brightness(1.06)saturate(1.08)}.recharts-pie-sector path{transform-origin:50%;transition:transform .18s cubic-bezier(.16,1,.3,1)}.recharts-pie-sector:hover path{filter:brightness(1.04);transform:scale(1.025)}.recharts-line-dot,.recharts-dot{transition:r .14s ease-out,fill-opacity .14s ease-out}.recharts-active-dot circle{filter:drop-shadow(0 0 4px color-mix(in srgb, var(--brand) 50%, transparent))}.progress-bar-fill,.batch-progress-fill{transition:width .6s cubic-bezier(.16,1,.3,1)}.ornamental-divider .ornamental-mark{animation:1.8s ease-out phase7-shimmer}@keyframes phase7-shimmer{0%{opacity:.3;filter:brightness()drop-shadow(0 0 #0000)}40%{opacity:1;filter:brightness(1.4) drop-shadow(0 0 6px color-mix(in srgb, var(--brand) 50%, transparent))}to{opacity:.65;filter:brightness()drop-shadow(0 0 #0000)}}.card-corner-accent path{stroke-dasharray:100;stroke-dashoffset:100px;animation:.72s cubic-bezier(.16,1,.3,1) .18s forwards phase7-draw-on}.card-corner-accent path:nth-child(2){animation-delay:.26s}.card-corner-accent path:nth-child(3){animation-delay:.34s}@keyframes phase7-draw-on{to{stroke-dashoffset:0}}:root{--corner-accent-svg:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 42 42' fill='none'%3E%3Cpath d='M5 37V14C5 9.02944 9.02944 5 14 5H37' stroke='%23C8C2B8' stroke-width='1.4'/%3E%3Cpath d='M11 37V17C11 13.6863 13.6863 11 17 11H37' stroke='%23C8C2B8' stroke-width='0.8' opacity='0.58'/%3E%3Cpath d='M5 22C12.5 22 22 12.5 22 5' stroke='%23C8C2B8' stroke-width='0.8' opacity='0.42'/%3E%3C/svg%3E");--corner-accent-size:28px;--corner-accent-opacity:.32;--corner-accent-offset:6px}:where(.app-toolbar,.batch-current-panel,.batch-current-card,.app-stat-card,.chart-card,.app-surface-card,.app-surface,.rbac-card,.batch-modal,.course-update-modal,.course-separation-modal,.care-supervisor-map-modal,.rbac-role-modal,.confirm-panel,.course-responsibility-drawer,.dashboard-summary-card,.dashboard-area-panel,.dashboard-year-panel,.dashboard-admin-box,.dashboard-breakdown-panel,.achievement-table-shell,.student-table-wrap,.course-table-wrap,.achievement-table-wrap,.course-responsibility-table-wrap,.app-profile-menu){-webkit-backdrop-filter:blur(10px)saturate(110%)}.app-shell.dashboard-route :where(.app-surface,.chart-card,.dashboard-overall-progress,.dashboard-summary-card,.dashboard-area-panel,.dashboard-year-panel,.dashboard-admin-box,.dashboard-breakdown-panel){-webkit-backdrop-filter:none}.app-shell.dashboard-route :where(.chart-card,.dashboard-overall-progress,.dashboard-summary-card,.dashboard-area-panel,.dashboard-year-panel,.dashboard-admin-box,.dashboard-year-item,.dashboard-year-track,.dashboard-user-item){contain:layout paint}.app-shell.dashboard-route :where(.dashboard-year-item,.dashboard-user-item){content-visibility:auto;contain-intrinsic-size:86px}.app-shell.dashboard-route :where(.chart-card,.dashboard-overall-progress,.dashboard-summary-card,.dashboard-area-panel,.dashboard-year-panel,.dashboard-admin-box,.dashboard-year-item,.dashboard-year-track,.dashboard-user-item,.dashboard-tab,.dashboard-user-role-toggle){transition:background-color .14s,border-color .14s,color .14s}.app-shell.dashboard-route :where(.chart-card,.dashboard-overall-progress,.dashboard-summary-card,.dashboard-area-panel,.dashboard-year-panel,.dashboard-admin-box,.dashboard-year-item,.dashboard-year-track,.dashboard-user-item):hover{transform:none}:where(.batch-current-panel,.rbac-card,.batch-modal,.course-update-modal,.course-separation-modal,.care-supervisor-map-modal,.rbac-role-modal,.confirm-panel,.course-responsibility-drawer,.dashboard-summary-card,.dashboard-area-panel,.dashboard-year-panel,.dashboard-admin-box,.dashboard-breakdown-panel,.achievement-table-shell):before,:where(.batch-current-panel,.rbac-card,.batch-modal,.course-update-modal,.course-separation-modal,.care-supervisor-map-modal,.rbac-role-modal,.confirm-panel,.course-responsibility-drawer,.dashboard-summary-card,.dashboard-area-panel,.dashboard-year-panel,.dashboard-admin-box,.dashboard-breakdown-panel,.achievement-table-shell):after{content:"";width:var(--corner-accent-size);height:var(--corner-accent-size);pointer-events:none;opacity:var(--corner-accent-opacity);z-index:0;background-repeat:no-repeat;background-size:contain;position:absolute}:where(.batch-current-panel,.rbac-card,.batch-modal,.course-update-modal,.course-separation-modal,.care-supervisor-map-modal,.rbac-role-modal,.confirm-panel,.course-responsibility-drawer,.dashboard-summary-card,.dashboard-area-panel,.dashboard-year-panel,.dashboard-admin-box,.dashboard-breakdown-panel,.achievement-table-shell):before{top:var(--corner-accent-offset);left:var(--corner-accent-offset);background-image:var(--corner-accent-svg)}:where(.batch-current-panel,.rbac-card,.batch-modal,.course-update-modal,.course-separation-modal,.care-supervisor-map-modal,.rbac-role-modal,.confirm-panel,.course-responsibility-drawer,.dashboard-summary-card,.dashboard-area-panel,.dashboard-year-panel,.dashboard-admin-box,.dashboard-breakdown-panel,.achievement-table-shell):after{right:var(--corner-accent-offset);bottom:var(--corner-accent-offset);background-image:var(--corner-accent-svg);transform:rotate(180deg)}:where(.batch-current-panel,.rbac-card,.batch-modal,.course-update-modal,.course-separation-modal,.care-supervisor-map-modal,.rbac-role-modal,.confirm-panel,.course-responsibility-drawer,.dashboard-summary-card,.dashboard-area-panel,.dashboard-year-panel,.dashboard-admin-box,.dashboard-breakdown-panel,.achievement-table-shell){position:relative}.batch-status-dot{display:inline-block;position:relative}.batch-status-dot[data-status=active]:after,.badge.active:after,.batch-current-pill:after{content:"";border-radius:inherit;box-shadow:0 0 10px 0 color-mix(in srgb, currentColor 48%, transparent), 0 0 3px 0 color-mix(in srgb, currentColor 65%, transparent);pointer-events:none;z-index:-1;position:absolute;inset:0}.badge.active,.batch-current-pill{animation:3.8s ease-in-out infinite phase7-ink-wash!important}.batch-status-dot[data-status=active]{animation:3.8s ease-in-out infinite phase7-ink-wash-dot}@keyframes phase7-ink-wash{0%,to{background-color:color-mix(in srgb, currentColor 16%, var(--surface) 84%);filter:brightness()saturate()}50%{background-color:color-mix(in srgb, currentColor 42%, var(--surface) 58%);filter:brightness(1.08)saturate(1.35)}}@keyframes phase7-ink-wash-dot{0%,to{filter:brightness(.92)saturate(.9)}50%{filter:brightness(1.18)saturate(1.4)}}.page-header-accent,.page-header-underline{position:relative;overflow:hidden}.page-header-accent:after,.page-header-underline:after{content:"";background:inherit;transform-origin:0;animation:.42s cubic-bezier(.16,1,.3,1) both phase7-underline-grow;position:absolute;inset:0}@keyframes phase7-underline-grow{0%{transform:scaleX(0)}to{transform:scaleX(1)}}.btn:hover:not(:disabled) .icon-shift-right,.btn:hover:not(:disabled) [data-icon=arrow-right],.btn:hover:not(:disabled) [data-icon=chevron-right]{transform:translate(2px)}.btn:hover:not(:disabled) .icon-shift-up,.btn:hover:not(:disabled) [data-icon=arrow-up]{transform:translateY(-2px)}.btn .icon-shift-right,.btn .icon-shift-up,.btn [data-icon=arrow-right],.btn [data-icon=chevron-right],.btn [data-icon=arrow-up]{transition:transform .14s cubic-bezier(.16,1,.3,1)}.btn-danger:hover:not(:disabled){box-shadow:0 14px 24px -16px color-mix(in srgb, var(--danger-action) 50%, transparent), inset 0 1px 0 #ffffff52, inset 0 -1px 0 #0000002e}.btn-outline{transition:transform var(--transition-fast), box-shadow var(--transition-base), background-color var(--transition-base), border-width .12s ease-out, border-color .12s ease-out}.btn-outline:hover:not(:disabled){border-color:color-mix(in srgb, var(--brand) 40%, var(--btn-outline-border) 60%)}.access-choice-grid:has(.access-choice-card[data-pending=true]) .access-choice-card:not([data-pending=true]){opacity:.56;transform:scale(.992)}.access-choice-card[data-pending=true]{border-color:color-mix(in srgb, var(--brand) 56%, var(--surface) 44%);box-shadow:0 16px 38px color-mix(in srgb, var(--brand-strong) 14%, transparent), 0 0 0 6px color-mix(in srgb, var(--brand-soft) 30%, transparent), inset 0 1px 0 #ffffffd6}.access-choice-card[data-pending=true] .access-choice-logo{animation:.48s cubic-bezier(.2,.78,.18,1) both workspace-choice-seal}.workspace-entry-transition{z-index:var(--z-workspace-transition);pointer-events:auto;isolation:isolate;color:var(--text);place-items:center;display:grid;position:fixed;inset:0;overflow:hidden}.workspace-entry-wash{z-index:0;background:radial-gradient(ellipse 72% 64% at 44% 46%, color-mix(in srgb, var(--brand-soft) 70%, var(--surface) 30%) 0%, transparent 66%), linear-gradient(145deg, color-mix(in srgb, var(--page-gradient-start) 94%, var(--brand-soft) 6%), color-mix(in srgb, var(--page-gradient-end) 88%, var(--surface) 12%));will-change:transform, opacity;position:absolute;inset:-8%}.workspace-entry-wash:after{content:"";background:repeating-linear-gradient(112deg, color-mix(in srgb, var(--brand) 1.8%, transparent) 0, color-mix(in srgb, var(--brand) 1.8%, transparent) 1px, transparent 1px, transparent 10px);position:absolute;inset:0}.workspace-entry-bloom{z-index:1;aspect-ratio:1.55;pointer-events:none;background:radial-gradient(ellipse at 40% 42%, color-mix(in srgb, var(--brand-soft) 84%, var(--surface) 16%) 0%, color-mix(in srgb, var(--brand) 10%, transparent) 46%, transparent 100%);filter:blur(clamp(16px,1.4vw,24px));will-change:transform, opacity;border-radius:46% 54% 62% 38%/58% 42% 56% 44%;width:min(88vw,920px);position:absolute;top:50%;left:50%;-webkit-mask-image:radial-gradient(78% 76%,#000 0%,#000000e6 46%,#0000007a 62%,#00000024 76%,#0000 92%);mask-image:radial-gradient(78% 76%,#000 0%,#000000e6 46%,#0000007a 62%,#00000024 76%,#0000 92%)}.workspace-entry-bloom-secondary{aspect-ratio:1.25;background:radial-gradient(ellipse at 58% 52%, color-mix(in srgb, var(--accent-soft) 60%, var(--surface) 40%) 0%, color-mix(in srgb, var(--brand-soft) 36%, transparent) 46%, transparent 100%);border-radius:58% 42% 44% 56%/42% 62% 38% 58%;width:min(70vw,700px)}.workspace-entry-mark{z-index:2;text-align:center;width:min(86vw,420px);color:var(--app-title-text);will-change:transform, opacity;justify-items:center;display:grid;position:relative}.workspace-entry-mark-orbit{border-radius:46% 54% 58% 42%/55% 44% 56% 45%;place-items:center;width:76px;height:72px;display:grid;position:relative}.workspace-entry-mark-orbit:before,.workspace-entry-mark-orbit:after{content:"";background:radial-gradient(circle at 34% 26%, #ffffffad 0%, transparent 42%), color-mix(in srgb, var(--brand-soft) 62%, var(--surface) 38%);box-shadow:0 18px 36px -20px color-mix(in srgb, var(--brand-strong) 26%, transparent);z-index:-1;border-radius:58% 42% 47% 53%/43% 57% 46% 54%;position:absolute;inset:0}.workspace-entry-mark-orbit:after{background:color-mix(in srgb, var(--brand-soft) 18%, transparent);box-shadow:none;border-radius:44% 56% 60% 40%/58% 45% 55% 42%;inset:-9px -7px}.workspace-entry-mark-seal{width:100%;height:100%;font-family:var(--font-display);letter-spacing:.04em;color:color-mix(in srgb, var(--brand-strong) 88%, var(--text) 12%);border-radius:44% 56% 52% 48%/58% 44% 56% 42%;place-items:center;font-size:1.32rem;font-weight:600;display:grid}.workspace-entry-mark-title{font-family:var(--font-display);letter-spacing:-.018em;margin-top:22px;font-size:clamp(1.55rem,1.26rem + .9vw,2.1rem);font-weight:600;line-height:1.12}.workspace-entry-mark-message{font-family:var(--font-sans);letter-spacing:.025em;color:var(--text-soft);margin-top:8px;font-size:.82rem;font-weight:500}.workspace-entry-transition[data-phase=departing] .workspace-entry-wash{animation:workspace-wash-cover var(--transition-workspace-cover) both}.workspace-entry-transition[data-phase=departing] .workspace-entry-bloom-primary{animation:.5s cubic-bezier(.22,.72,.18,1) 20ms both workspace-bloom-primary-in}.workspace-entry-transition[data-phase=departing] .workspace-entry-bloom-secondary{animation:.52s cubic-bezier(.22,.72,.18,1) 60ms both workspace-bloom-secondary-in}.workspace-entry-transition[data-phase=departing] .workspace-entry-mark{animation:.38s cubic-bezier(.2,.78,.18,1) .11s both workspace-mark-enter}.workspace-entry-transition[data-phase=arriving] .workspace-entry-wash{animation:workspace-wash-reveal var(--transition-workspace-reveal) 80ms both}.workspace-entry-transition[data-phase=arriving] .workspace-entry-bloom-primary{animation:.64s ease-out 80ms both workspace-bloom-primary-out}.workspace-entry-transition[data-phase=arriving] .workspace-entry-bloom-secondary{animation:.68s ease-out .11s both workspace-bloom-secondary-out}.workspace-entry-transition[data-phase=arriving] .workspace-entry-mark{animation:.44s ease-out .19s both workspace-mark-exit}.app-shell.workspace-arrival-pending .app-sidebar{animation:.44s ease-out .26s both workspace-shell-reveal}.app-shell.workspace-arrival-pending .app-toolbar{animation:.44s ease-out .34s both workspace-shell-reveal}.app-shell.workspace-arrival-pending .app-view{animation:.44s ease-out .42s both workspace-shell-reveal}@keyframes workspace-choice-seal{0%{transform:scale(1)}46%{transform:scale(.94)rotate(-2deg)}to{transform:scale(1.04)rotate(0)}}@keyframes workspace-wash-cover{0%{opacity:0;transform:scale(1.06)}to{opacity:1;transform:scale(1)}}@keyframes workspace-wash-reveal{0%{opacity:1;transform:scale(1)}to{opacity:0;transform:scale(1.04)}}@keyframes workspace-bloom-primary-in{0%{opacity:0;transform:translate(-54%,-48%)scale(.42)rotate(-8deg)}to{opacity:.78;transform:translate(-54%,-48%)scale(1.12)rotate(-3deg)}}@keyframes workspace-bloom-secondary-in{0%{opacity:0;transform:translate(-42%,-54%)scale(.34)rotate(9deg)}to{opacity:.64;transform:translate(-42%,-54%)scale(1.08)rotate(4deg)}}@keyframes workspace-bloom-primary-out{0%{opacity:.78;transform:translate(-54%,-48%)scale(1.12)rotate(-3deg)}to{opacity:0;transform:translate(-57%,-46%)scale(1.42)rotate(-1deg)}}@keyframes workspace-bloom-secondary-out{0%{opacity:.64;transform:translate(-42%,-54%)scale(1.08)rotate(4deg)}to{opacity:0;transform:translate(-39%,-57%)scale(1.5)rotate(1deg)}}@keyframes workspace-mark-enter{0%{opacity:0;transform:translateY(14px)scale(.96)}to{opacity:1;transform:translateY(0)scale(1)}}@keyframes workspace-mark-exit{0%{opacity:1;transform:scale(1)}to{opacity:0;transform:translateY(-10px)scale(1.025)}}@keyframes workspace-shell-reveal{0%{opacity:0}to{opacity:1}}@media (prefers-reduced-motion:reduce){.workspace-entry-transition{display:none!important}.access-choice-card,.access-choice-logo,.app-shell.workspace-arrival-pending .app-sidebar,.app-shell.workspace-arrival-pending .app-toolbar,.app-shell.workspace-arrival-pending .app-view{transition:none!important;animation:none!important}.app-shell.workspace-arrival-pending .app-sidebar,.app-shell.workspace-arrival-pending .app-toolbar,.app-shell.workspace-arrival-pending .app-view{opacity:1!important}body:before,body:after{animation:none!important}.app-view.page-transition-entering>*,[data-entrance=pending],[data-entrance=ready],.app-modal-backdrop,.app-drawer-backdrop,.app-overlay-backdrop,.rbac-role-modal-overlay,.app-modal-panel,.app-drawer-panel,.app-overlay-panel,.rbac-role-modal,.app-profile-menu,.ornamental-divider .ornamental-mark,.card-corner-accent path,.batch-status-dot[data-status=active],.batch-status-dot[data-status=active]:after,.badge.active,.badge.active:after,.batch-current-pill,.batch-current-pill:after,.page-header-accent:after,.page-header-underline:after,.autosave-indicator[data-status=saving]:before,.autosave-indicator[data-status=saved]:before,.progress-bar-fill,.batch-progress-fill{transition:none!important;animation:none!important}[data-entrance=pending],[data-entrance=ready]{opacity:1;transform:none}.card-corner-accent path{stroke-dasharray:none;stroke-dashoffset:0}}.feedback-drawer-group{flex-direction:row;align-items:flex-start;gap:8px;height:100%;display:flex}.ai-side-panel{overscroll-behavior:contain;background:var(--surface);border:1px solid color-mix(in srgb, var(--school-primary,var(--accent)) 22%, var(--border,#e5e7eb));width:360px;max-width:min(360px,100vw - 440px);max-height:calc(100vh - 16px);box-shadow:0 12px 40px -12px color-mix(in srgb, var(--text) 32%, transparent), 0 4px 12px -4px color-mix(in srgb, var(--text) 10%, transparent), inset 0 1px 0 #fff9;will-change:opacity, transform;border-radius:16px;flex-direction:column;flex-shrink:0;align-self:flex-start;margin-top:8px;animation:.24s cubic-bezier(.16,1,.3,1) both ai-panel-slide-in;display:flex;overflow-y:auto}.ai-side-panel.closing{animation:.18s ease-in forwards ai-panel-slide-out}@keyframes ai-panel-slide-in{0%{opacity:0;transform:translate(20px)}to{opacity:1;transform:translate(0)}}@keyframes ai-panel-slide-out{0%{opacity:1;transform:translate(0)}to{opacity:0;transform:translate(20px)}}.ai-panel-header{border-bottom:1px solid color-mix(in srgb, var(--border,#e5e7eb) 60%, transparent);background:var(--surface);z-index:1;border-radius:16px 16px 0 0;flex-shrink:0;justify-content:space-between;align-items:center;gap:8px;padding:14px 16px 12px;display:flex;position:sticky;top:0}.ai-panel-title{letter-spacing:.04em;color:var(--text);font-size:.8rem;font-weight:700}.ai-panel-close{width:24px;height:24px;color:var(--text-soft,var(--text-muted));cursor:pointer;background:0 0;border:none;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;transition:background .15s ease-out,color .15s ease-out;display:inline-flex}.ai-panel-close:hover{background:color-mix(in srgb, var(--text) 10%, transparent);color:var(--text)}.ai-panel-loading{color:var(--text-soft,var(--text-muted));flex-direction:column;flex:1;justify-content:center;align-items:center;gap:10px;padding:40px 24px;font-size:.8rem;display:flex}.ai-panel-error{background:color-mix(in srgb, #ef4444 8%, var(--surface));color:color-mix(in srgb, #ef4444 80%, var(--text));border:1px solid #ef444447;border-radius:8px;margin:12px;padding:14px 16px;font-size:.78rem;line-height:1.45}.ai-panel-empty{color:var(--text-soft,var(--text-muted));text-align:center;flex-direction:column;align-items:center;gap:8px;padding:32px 24px;font-size:.8rem;display:flex}.ai-panel-empty svg{color:color-mix(in srgb, var(--school-primary,var(--accent)) 60%, var(--text-soft))}.ai-panel-body{flex-direction:column;flex:1;gap:12px;padding:14px 16px 16px;display:flex}.ai-panel-desc{color:var(--text-soft,var(--text-muted));margin:0;font-size:.77rem;line-height:1.45}.ai-panel-overall-note{color:var(--text-soft,var(--text-muted));background:color-mix(in srgb, var(--school-primary,var(--accent)) 6%, var(--surface));border-left:2px solid color-mix(in srgb, var(--school-primary,var(--accent)) 40%, transparent);border-radius:8px;margin:0;padding:8px 10px;font-size:.78rem;line-height:1.5}.ai-panel-copy-btn{border:1px solid color-mix(in srgb, var(--school-primary,var(--accent)) 30%, transparent);background:color-mix(in srgb, var(--school-primary,var(--accent)) 8%, var(--surface));color:color-mix(in srgb, var(--school-primary,var(--accent)) 80%, var(--text));cursor:pointer;border-radius:999px;align-self:flex-start;align-items:center;gap:5px;padding:5px 12px;font-size:.72rem;font-weight:500;transition:background .14s ease-out,border-color .14s ease-out,color .14s ease-out;display:inline-flex}.ai-panel-copy-btn:hover{background:color-mix(in srgb, var(--school-primary,var(--accent)) 16%, var(--surface));border-color:color-mix(in srgb, var(--school-primary,var(--accent)) 50%, transparent)}.ai-panel-copy-btn.copied{color:#16a34a;background:color-mix(in srgb, #16a34a 8%, var(--surface));border-color:#16a34a66}.ai-spell-display{color:var(--text);word-break:break-word;background:color-mix(in srgb, var(--school-primary,var(--accent)) 4%, var(--surface));border:1px solid color-mix(in srgb, var(--border,#e5e7eb) 70%, transparent);border-radius:10px;padding:10px 12px;font-size:.83rem;line-height:1.65}.ai-spell-fix{cursor:help;background:#f59e0b33;border-bottom:1.5px dashed #d97706;border-radius:2px;padding:0 1px;display:inline;position:relative}.ai-spell-tooltip{background:var(--text,#1a1a1a);color:var(--surface,#fff);white-space:nowrap;z-index:9999;box-shadow:0 4px 12px color-mix(in srgb, var(--text) 28%, transparent);pointer-events:none;border-radius:8px;align-items:center;gap:5px;padding:5px 10px;font-size:.72rem;font-weight:500;animation:.16s cubic-bezier(.16,1,.3,1) both ai-tooltip-pop;display:flex}.ai-spell-tooltip:after{content:"";border:5px solid #0000;border-top-color:var(--text,#1a1a1a);position:absolute;top:100%;left:50%;transform:translate(-50%)}.ai-spell-tooltip-from{color:color-mix(in srgb, #ef4444 80%, var(--surface));-webkit-text-decoration:line-through #ef444499;text-decoration:line-through #ef444499}.ai-spell-tooltip-arrow{opacity:.55;font-size:.68rem}.ai-spell-tooltip-to{color:color-mix(in srgb, #22c55e 85%, var(--surface));font-weight:600}@keyframes ai-tooltip-pop{0%{opacity:0;transform:translate(-50%)translateY(4px)scale(.95)}to{opacity:1;transform:translate(-50%)translateY(0)scale(1)}}.ai-suggest-list{flex-direction:column;gap:10px;display:flex}.ai-suggest-flag{background:color-mix(in srgb, var(--school-primary,var(--accent)) 4%, var(--surface));border:1px solid color-mix(in srgb, var(--school-primary,var(--accent)) 18%, var(--border,#e5e7eb));border-radius:10px;flex-direction:column;gap:8px;padding:12px;display:flex}.ai-suggest-flag-sentence{font-size:.82rem;line-height:1.5}.ai-suggest-sentence{background:#f59e0b33;border-radius:3px;padding:1px 3px;font-weight:500}.ai-suggest-reason{color:var(--text-soft,var(--text-muted));background:#f59e0b14;border-left:2px solid #f59e0b80;border-radius:6px;margin:0;padding:6px 8px;font-size:.75rem;line-height:1.45}.ai-suggest-alternatives{flex-direction:column;gap:6px;display:flex}.ai-suggest-alt{color:var(--text);align-items:flex-start;gap:8px;font-size:.78rem;line-height:1.5;display:flex}.ai-suggest-alt-badge{background:color-mix(in srgb, var(--school-primary,var(--accent)) 18%, var(--surface));min-width:18px;height:18px;color:var(--school-primary,var(--accent));border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;margin-top:2px;font-size:.65rem;font-weight:700;display:inline-flex}.ai-translate-direction{background:color-mix(in srgb, var(--school-primary,var(--accent)) 12%, transparent);color:color-mix(in srgb, var(--school-primary,var(--accent)) 80%, var(--text));letter-spacing:.06em;border-radius:999px;align-self:flex-start;align-items:center;padding:3px 10px;font-size:.68rem;font-weight:700;display:inline-flex}.ai-translate-text{color:var(--text);word-break:break-word;background:color-mix(in srgb, var(--school-primary,var(--accent)) 4%, var(--surface));border:1px solid color-mix(in srgb, var(--border,#e5e7eb) 70%, transparent);white-space:pre-wrap;border-radius:10px;margin:0;padding:10px 12px;font-size:.83rem;line-height:1.65}.ai-action-bar{flex-wrap:wrap;align-items:center;gap:6px;padding:6px 0 2px;display:flex}.ai-action-bar-label{letter-spacing:.1em;text-transform:uppercase;color:var(--school-primary,var(--accent));opacity:.65;white-space:nowrap;padding-right:2px;font-size:.6rem;font-weight:700}.ai-feedback-btn{border:1px solid color-mix(in srgb, var(--school-primary,var(--accent)) 28%, transparent);background:color-mix(in srgb, var(--school-primary,var(--accent)) 6%, var(--surface));color:color-mix(in srgb, var(--school-primary,var(--accent)) 80%, var(--text));cursor:pointer;white-space:nowrap;border-radius:999px;align-items:center;gap:5px;padding:4px 10px;font-size:.72rem;font-weight:500;transition:background .16s ease-out,border-color .16s ease-out,color .16s ease-out,box-shadow .16s ease-out;display:inline-flex}.ai-feedback-btn:hover:not(:disabled){background:color-mix(in srgb, var(--school-primary,var(--accent)) 14%, var(--surface));border-color:color-mix(in srgb, var(--school-primary,var(--accent)) 50%, transparent);box-shadow:0 1px 4px color-mix(in srgb, var(--school-primary,var(--accent)) 18%, transparent)}.ai-feedback-btn.active{background:color-mix(in srgb, var(--school-primary,var(--accent)) 18%, var(--surface));border-color:color-mix(in srgb, var(--school-primary,var(--accent)) 60%, transparent);color:var(--school-primary,var(--accent));box-shadow:0 0 0 3px color-mix(in srgb, var(--school-primary,var(--accent)) 12%, transparent)}.ai-feedback-btn:disabled{opacity:.45;cursor:not-allowed}@keyframes ai-spinner-spin{to{transform:rotate(360deg)}}.ai-feedback-spinner{flex-shrink:0;animation:.75s linear infinite ai-spinner-spin}@media (prefers-reduced-motion:reduce){.ai-side-panel,.ai-side-panel.closing,.ai-spell-tooltip,.ai-feedback-spinner{transition:none!important;animation:none!important}.ai-side-panel{opacity:1;transform:none}}
.app-toast-viewport{z-index:var(--z-app-toast);top:max(20px, env(safe-area-inset-top));pointer-events:none;flex-direction:column;align-items:center;gap:12px;width:min(380px,100vw - 32px);display:flex;position:fixed;left:50%;transform:translate(-50%)}.app-toast{pointer-events:auto;border-radius:var(--radius-md);border:1px solid var(--line);border-left:4px solid var(--status-info-strong);background:var(--surface);width:100%;box-shadow:var(--shadow-lg);color:var(--text);transform-origin:top;animation:app-toast-in var(--transition-base) both;grid-template-columns:auto 1fr auto;align-items:start;gap:12px;padding:14px 14px 14px 16px;display:grid;position:relative;overflow:hidden}.app-toast.is-leaving{animation:app-toast-out var(--transition-base) forwards}.app-toast-success{border-left-color:var(--status-success-strong)}.app-toast-error{border-left-color:var(--status-error-strong)}.app-toast-info{border-left-color:var(--status-info-strong)}.app-toast-warning{border-left-color:var(--status-warning-strong)}.app-toast-icon{border-radius:50%;justify-content:center;align-items:center;width:30px;height:30px;margin-top:1px;display:inline-flex}.app-toast-success .app-toast-icon{background:var(--status-success-soft);color:var(--status-success-strong)}.app-toast-error .app-toast-icon{background:var(--status-error-soft);color:var(--status-error-strong)}.app-toast-info .app-toast-icon{background:var(--status-info-soft);color:var(--status-info-strong)}.app-toast-warning .app-toast-icon{background:var(--status-warning-soft);color:var(--status-warning-strong)}.app-toast-body{gap:2px;min-width:0;padding-top:3px;display:grid}.app-toast-message{font-family:var(--font-sans);color:var(--text);overflow-wrap:anywhere;margin:0;font-size:.92rem;font-weight:600;line-height:1.35}.app-toast-description{font-family:var(--font-sans);color:var(--text-soft);overflow-wrap:anywhere;margin:0;font-size:.82rem;line-height:1.4}.app-toast-close{width:26px;height:26px;color:var(--text-soft);cursor:pointer;transition:background var(--transition-fast), color var(--transition-fast);background:0 0;border:none;border-radius:8px;justify-content:center;align-items:center;margin:-2px -2px 0 0;display:inline-flex}.app-toast-close:hover{background:var(--surface-soft);color:var(--text)}.app-toast-close:focus-visible{outline:2px solid var(--status-info-strong);outline-offset:1px}.app-toast-progress{transform-origin:0;border-bottom-left-radius:var(--radius-md);opacity:.55;width:100%;height:3px;animation-name:app-toast-progress;animation-timing-function:linear;animation-fill-mode:forwards;position:absolute;bottom:0;left:0}.app-toast.is-paused .app-toast-progress{animation-play-state:paused}.app-toast-success .app-toast-progress{background:var(--status-success-strong)}.app-toast-error .app-toast-progress{background:var(--status-error-strong)}.app-toast-info .app-toast-progress{background:var(--status-info-strong)}.app-toast-warning .app-toast-progress{background:var(--status-warning-strong)}@keyframes app-toast-in{0%{opacity:0;transform:translateY(-16px)scale(.97)}to{opacity:1;transform:translateY(0)scale(1)}}@keyframes app-toast-out{0%{opacity:1;transform:translateY(0)scale(1)}to{opacity:0;transform:translateY(-20px)scale(.96)}}@keyframes app-toast-progress{0%{transform:scaleX(1)}to{transform:scaleX(0)}}@media (max-width:540px){.app-toast-viewport{width:calc(100vw - 32px)}}@media (prefers-reduced-motion:reduce){.app-toast,.app-toast.is-leaving{animation-duration:1ms}.app-toast-progress{display:none}}

