:root{font-family:Inter,ui-sans-serif,system-ui,sans-serif;color:#17322b;background:#edf5f1;font-synthesis:none}.deployments-page{padding:2.4rem 0 5rem}.deployment-metrics{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem;margin-top:1.5rem}.deployment-card,.deployment-log-panel{background:#fff;border:1px solid #d7e4df;border-radius:1rem;box-shadow:0 8px 24px #082d250d}.deployment-card{display:grid;gap:.35rem;padding:1.25rem}.deployment-card span,.deployment-card small{color:#667b74}.deployment-card strong{color:#113c33;font-size:1.55rem}.deployment-result-failure strong{color:#b42318}.deployment-result-success strong{color:#147a56}.deployment-log-panel{margin-top:1rem;padding:1.25rem}.deployment-log-heading{align-items:center;display:flex;justify-content:space-between;gap:1rem}.deployment-log-heading h2,.deployment-log-heading p{margin:0}.deployment-log-heading p{color:#667b74;margin-top:.3rem}.deployment-live-indicator{background:#e7f5ef;border-radius:999px;color:#147a56;font-size:.78rem;font-weight:750;padding:.45rem .7rem}.deployment-log-panel pre{background:#082d25;border-radius:.8rem;color:#dff6ec;line-height:1.55;margin:1rem 0 0;max-height:34rem;overflow:auto;padding:1rem;white-space:pre-wrap;word-break:break-word}@media(max-width:760px){.deployment-metrics{grid-template-columns:1fr}.deployment-log-heading{align-items:flex-start;flex-direction:column}.deployments-page{padding-bottom:6rem}}body.modal-open{overflow:hidden}.app-modal-backdrop{position:fixed;z-index:100;inset:0;display:grid;place-items:center;padding:1.5rem;background:#041f1894;-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px);animation:modal-backdrop-in .16s ease-out}.app-modal{display:flex;flex-direction:column;width:min(100%,52rem);max-height:min(90vh,58rem);overflow:hidden;background:#fff;border:1px solid #d5e3dd;border-radius:1.15rem;box-shadow:0 1.5rem 5rem #03231a4d;animation:modal-content-in .18s ease-out}.app-modal-sm{width:min(100%,29rem)}.app-modal-md{width:min(100%,42rem)}.app-modal-lg{width:min(100%,58rem)}.app-modal-xl{width:min(100%,76rem)}.app-modal-header{display:flex;flex:0 0 auto;align-items:flex-start;justify-content:space-between;gap:1rem;padding:1.3rem 1.5rem;background:#f8fbf9;border-bottom:1px solid #dde8e3}.app-modal-header h2{margin:0;color:#123b30;font-size:1.25rem}.app-modal-header p{margin:.35rem 0 0;color:#637a72;line-height:1.45}.app-modal-close{display:grid;flex:0 0 auto;place-items:center;width:2.35rem;height:2.35rem;padding:0;color:#315f51;background:#eef5f2;border:1px solid #d5e4de;border-radius:.7rem;font-size:1.45rem;line-height:1}.app-modal-close:hover{color:#fff;background:#176f53}.app-modal-content{min-height:0;padding:1.5rem;overflow:auto;overscroll-behavior:contain}.panel-title-actions{display:flex;align-items:center;justify-content:space-between;gap:1rem}.system-dialog{display:grid;justify-items:center;gap:1rem;text-align:center}.system-dialog>p{margin:0;color:#425f56;font-size:1rem;line-height:1.55;white-space:pre-line}.system-dialog-symbol{display:grid;place-items:center;width:3.25rem;height:3.25rem;color:#176f53;background:#e2f4ec;border-radius:50%;font-size:1.5rem;font-weight:900}.system-dialog-error .system-dialog-symbol{color:#a33434;background:#fde9e7}.system-dialog-warning .system-dialog-symbol,.system-dialog-confirm .system-dialog-symbol,.system-dialog-prompt .system-dialog-symbol{color:#94610b;background:#fff1cf}.system-dialog-prompt{display:grid;width:100%;gap:.4rem;text-align:left}.system-dialog-prompt span{color:#284d42;font-size:.82rem;font-weight:800}.system-dialog-prompt input{width:100%}.system-dialog-actions{display:flex;justify-content:flex-end;width:100%;gap:.65rem;padding-top:.35rem}@keyframes modal-backdrop-in{0%{opacity:0}to{opacity:1}}@keyframes modal-content-in{0%{opacity:0;transform:translateY(.75rem) scale(.985)}to{opacity:1;transform:translateY(0) scale(1)}}@media(max-width:42rem){.app-modal-backdrop{align-items:end;padding:0}.app-modal,.app-modal-sm,.app-modal-md,.app-modal-lg,.app-modal-xl{width:100%;max-height:94dvh;border-right:0;border-bottom:0;border-left:0;border-radius:1.15rem 1.15rem 0 0}.app-modal-header{padding:1rem 1.1rem}.app-modal-content{padding:1.1rem}.app-modal-content form,.app-modal-content .student-form,.app-modal-content .student-edit-form,.app-modal-content .grant-form{grid-template-columns:1fr}.system-dialog-actions>button{flex:1}}@media(prefers-reduced-motion:reduce){.app-modal-backdrop,.app-modal{animation:none}}.classes-page{padding:2.25rem 0 4rem}.operation-metrics{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem;margin:1.5rem 0}.operation-metric,.class-group,.group-board{border:1px solid var(--border);border-radius:1.15rem;background:var(--surface);box-shadow:var(--shadow-soft)}.operation-metric{display:grid;gap:.25rem;padding:1.1rem 1.25rem}.operation-metric span,.class-identity span,.group-card span,.class-row>div:nth-child(3) span{color:var(--muted);font-size:.78rem}.operation-metric strong{color:var(--ink);font-size:1.65rem}.class-form{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem;margin-bottom:1.25rem;padding:1.35rem;border:1px solid var(--border);border-radius:1.15rem;background:var(--surface)}.class-form .section-heading,.class-form-actions{grid-column:1 / -1}.class-form label{display:grid;gap:.45rem;color:var(--ink);font-size:.82rem;font-weight:750}.class-form input,.class-form select{width:100%;min-height:2.9rem;padding:.7rem .85rem;border:1px solid var(--border-strong);border-radius:.75rem;background:#fff;color:var(--ink);font:inherit}.class-form-actions{display:flex;justify-content:flex-end;gap:.75rem}.class-groups,.class-list{display:grid;gap:1rem}.class-group,.group-board{padding:1.35rem}.class-row{display:grid;grid-template-columns:7rem minmax(14rem,1fr) 7rem auto minmax(10rem,auto);gap:1rem;align-items:center;padding:1rem;border:1px solid var(--border);border-radius:.9rem;background:var(--surface-subtle)}.class-code{color:var(--primary);font-size:.78rem;font-weight:850;letter-spacing:.06em;text-transform:uppercase}.class-identity,.class-row>div:nth-child(3){display:grid;gap:.2rem}.status-badge{width:fit-content;padding:.35rem .65rem;border-radius:999px;background:#eef2f0;color:#4b625b;font-size:.7rem;font-weight:850;text-transform:uppercase}.status-open,.status-in_progress{background:#dcf4e7;color:#087348}.status-closed,.status-cancelled{background:#f5e5e5;color:#9b3232}.class-actions{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:.45rem}.class-actions button{min-height:2.25rem;padding:.45rem .7rem;border:1px solid var(--border-strong);border-radius:.65rem;background:#fff;color:var(--primary);font-weight:750}.group-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(16rem,1fr));gap:1rem}.group-card{display:grid;gap:.85rem;padding:1rem;border:1px solid var(--border);border-radius:.9rem;background:var(--surface-subtle)}.group-card dl{display:grid;grid-template-columns:1fr auto;gap:.45rem 1rem;margin:0}.group-card dt{color:var(--muted)}.group-card dd{margin:0;color:var(--ink);font-weight:750}.empty-state{padding:2.5rem 1rem;color:var(--muted);text-align:center}@media(max-width:70rem){.operation-metrics,.class-form{grid-template-columns:repeat(2,minmax(0,1fr))}.class-row{grid-template-columns:6rem minmax(12rem,1fr) auto}.class-row>div:nth-child(3),.class-actions{grid-column:2 / -1}.class-actions{justify-content:flex-start}}@media(max-width:48rem){.classes-page{padding-top:1.4rem;padding-bottom:6rem}.operation-metrics,.class-form{grid-template-columns:1fr}.class-form .section-heading,.class-form-actions{grid-column:auto}.class-form-actions{flex-direction:column-reverse}.class-form-actions button{width:100%}.class-row{grid-template-columns:1fr}.class-row>div:nth-child(3),.class-actions{grid-column:auto}}*{box-sizing:border-box}body{margin:0;min-width:320px;min-height:100vh;overflow-x:clip}button,input,select{font:inherit}button{cursor:pointer}button:disabled{cursor:wait;opacity:.7}.page-shell{min-height:100vh;display:grid;place-items:center;padding:1.5rem;background:radial-gradient(circle at top right,#dcece4,transparent 38%),#edf5f1}.auth-card{width:min(31rem,100%);padding:clamp(1.8rem,5vw,3rem);background:#fff;border:1px solid #d5e4dc;border-radius:1.35rem;box-shadow:0 1.5rem 4rem #17322b1c}.auth-card.wide{width:min(42rem,100%)}.brand{display:flex;align-items:center;gap:.65rem;font-weight:800;letter-spacing:-.02em}.brand-mark{display:grid;place-items:center;width:2rem;height:2rem;border-radius:.6rem;color:#fff;background:#16724d}h1{margin:1.25rem 0 .65rem;font-size:clamp(2rem,7vw,3.15rem);line-height:1.05;letter-spacing:-.055em}p{margin:0 0 1.5rem;color:#5b6f67;line-height:1.65}.step-label{display:inline-block;margin-top:1.5rem;color:#287a58;font-size:.75rem;font-weight:800;letter-spacing:.1em;text-transform:uppercase}form{display:grid;gap:1rem;margin-top:1.5rem}label{display:grid;gap:.45rem;color:#304a41;font-weight:700;font-size:.9rem}label small{color:#6b7c75;font-weight:400}input,select{width:100%;padding:.85rem 1rem;color:#17322b;background:#fbfdfc;border:1px solid #bfd2c8;border-radius:.7rem;outline:none}input:focus,select:focus{border-color:#16724d;box-shadow:0 0 0 3px #16724d24}form>button,.context-option{min-height:3rem;padding:.8rem 1rem;border:0;border-radius:.7rem;color:#fff;background:#16724d;font-weight:800}.auth-card>small{display:block;margin-top:1.25rem;color:#71827b;line-height:1.5}.notice{margin:1rem 0;padding:.8rem 1rem;color:#614d16;background:#fff8dd;border:1px solid #eadb9d;border-radius:.7rem;line-height:1.45}.context-list{display:grid;gap:.75rem}.context-option{display:flex;align-items:start;justify-content:space-between;text-align:left}.context-option span{opacity:.8;font-weight:500}.app-shell{min-height:100vh;background:#f7faf8}header{display:flex;align-items:center;justify-content:space-between;min-height:4.8rem;padding:1rem clamp(1.25rem,5vw,4rem);background:#fff;border-bottom:1px solid #dae6df}.account-summary{display:flex;align-items:center;gap:1rem;font-weight:700}.secondary,.secondary-action{padding:.65rem 1rem;color:#245b46;background:#edf5f1;border:1px solid #c9ddd3;border-radius:.65rem;font-weight:700;cursor:pointer}.secondary:disabled,.secondary-action:disabled{cursor:not-allowed;opacity:.62}.modal-form-actions{display:flex;align-items:center;justify-content:flex-end;gap:.7rem}.dashboard{width:min(70rem,calc(100% - 2rem));margin:clamp(2rem,6vw,5rem) auto}.dashboard>h1{max-width:42rem}.dashboard>p{max-width:45rem}.dashboard-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem;margin-top:2rem}.dashboard-grid article{display:grid;gap:.6rem;padding:1.4rem;background:#fff;border:1px solid #d9e6df;border-radius:1rem}.dashboard-grid article span{color:#71827b;font-size:.8rem}.dashboard-grid article strong{font-size:1.05rem}.success{color:#16724d}.success:before{content:"";display:inline-block;width:.55rem;height:.55rem;margin-right:.5rem;border-radius:50%;background:#24a66d}.context-change{margin-top:1.25rem}.catalog-entry{margin-top:1.5rem;min-height:3rem;padding:.8rem 1.2rem;color:#fff;background:#16724d;border:0;border-radius:.7rem;font-weight:800}.catalog,.catalog-message{width:min(78rem,calc(100% - 2rem));margin-right:auto;margin-left:auto}.catalog{padding:2.5rem 0 5rem}.catalog-message{margin-top:1.5rem}.catalog-heading{display:flex;align-items:end;justify-content:space-between;gap:1rem}.catalog-heading h1{margin-top:.75rem}.catalog-heading p{margin-bottom:0}.catalog-tabs{display:flex;gap:.5rem;margin:2rem 0 1rem;border-bottom:1px solid #d9e6df}.catalog-tabs button{padding:.8rem 1rem;color:#5b6f67;background:transparent;border:0;border-bottom:3px solid transparent;font-weight:800}.catalog-tabs button.active{color:#16724d;border-bottom-color:#16724d}.catalog-panel{padding:clamp(1rem,3vw,1.75rem);background:#fff;border:1px solid #d9e6df;border-radius:1rem}.panel-title{display:flex;align-items:center;justify-content:space-between;gap:1rem}.panel-title h2{margin:0}.panel-title span{color:#71827b;font-size:.85rem}.inline-form{grid-template-columns:2fr 1fr auto;align-items:end;padding:1rem;background:#f5f9f7;border-radius:.8rem}.inline-form.compact{grid-template-columns:1fr auto}.inline-form.offering-form{grid-template-columns:repeat(2,minmax(9rem,1fr))}.inline-form.offering-form button{grid-column:span 2}.inline-form.component-form{grid-template-columns:.75fr 2fr .75fr auto}.inline-form.curriculum-form{grid-template-columns:1.5fr .7fr 1.3fr auto}.curriculum-list{display:grid;gap:1rem;margin-top:1.5rem}.curriculum-card{padding:1.25rem;background:#fff;border:1px solid #dbe8e2;border-radius:1rem}.curriculum-card-heading,.curriculum-actions{display:flex;align-items:center;justify-content:space-between;gap:.75rem}.curriculum-card-heading h3{margin:0 0 .2rem}.curriculum-card-heading p{margin:0;color:#6d7f78}.curriculum-item-form{display:grid;grid-template-columns:2fr repeat(3,minmax(5.5rem,.6fr)) auto auto;align-items:end;gap:.75rem;margin:1rem 0;padding:1rem;background:#f4f8f6;border-radius:.8rem}.checkbox-field{display:flex;align-items:center;min-height:2.75rem;gap:.5rem}.curriculum-draft{color:#795000;background:#fff3cf}.curriculum-published{color:#116b4b;background:#dcf4e8}.curriculum-closed{color:#5e6870;background:#edf0f2}.success-notice{color:#155c3e;background:#eaf8f0;border-color:#b9e2ca}.table-scroll{overflow-x:auto;margin-top:1.5rem}table{width:100%;border-collapse:collapse;text-align:left}th,td{padding:.9rem .75rem;border-bottom:1px solid #e2ebe6}th{color:#63766e;font-size:.75rem;letter-spacing:.04em;text-transform:uppercase}.empty-state{margin-top:1.5rem;padding:2.5rem 1rem;color:#71827b;background:#f8fbf9;border:1px dashed #cadbd2;border-radius:.8rem;text-align:center}@media(max-width:42rem){.dashboard-grid{grid-template-columns:1fr}.account-summary>span{display:none}.context-option{flex-direction:column;gap:.25rem}.catalog-heading{align-items:start;flex-direction:column}.inline-form,.inline-form.compact,.inline-form.offering-form{grid-template-columns:1fr}.inline-form.offering-form button{grid-column:auto}.inline-form.component-form,.inline-form.curriculum-form,.curriculum-item-form{grid-template-columns:1fr}.catalog-tabs{overflow-x:auto}.curriculum-card-heading,.curriculum-actions{align-items:stretch;flex-direction:column}}.app-shell{display:grid;grid-template-columns:17.5rem minmax(0,1fr);min-height:100vh;background:#f4f7f6}.sidebar{position:sticky;top:0;display:flex;flex-direction:column;height:100vh;padding:1.25rem 1rem 1rem;color:#dce9e4;background:#102d27;border-right:1px solid #21463c;overflow-y:auto}.sidebar-brand{display:flex;align-items:center;justify-content:space-between;padding:.2rem .4rem 1.25rem;color:#fff}.sidebar-brand .brand-mark{color:#143f34;background:#dcf5e9}.environment-pill{padding:.3rem .5rem;color:#a9c8bd;background:#1b3d34;border:1px solid #2c5046;border-radius:999px;font-size:.62rem;font-weight:800;text-transform:uppercase}.context-card{display:grid;gap:.25rem;margin-bottom:1.25rem;padding:.9rem;color:#fff;background:#173a31;border:1px solid #2a5045;border-radius:.85rem}.context-card>span,.context-card small{color:#9dbcb1;font-size:.7rem}.context-card strong{overflow:hidden;font-size:.86rem;text-overflow:ellipsis;white-space:nowrap}.context-card-button{width:100%;font:inherit;text-align:left}.context-card-button:not(:disabled):hover{background:#1d463b;border-color:#3b6659;transform:translateY(-1px)}.context-card-button:disabled{cursor:default}.main-navigation{display:grid;gap:.3rem}.nav-group{display:grid;gap:.2rem;margin-top:1rem}.nav-group>span{padding:.35rem .75rem;color:#789d91;font-size:.65rem;font-weight:800;letter-spacing:.09em;text-transform:uppercase}.nav-button{display:grid;grid-template-columns:1.25rem minmax(0,1fr) auto;align-items:center;gap:.7rem;width:100%;padding:.72rem .75rem;color:#bbd1c9;background:transparent;border:0;border-radius:.65rem;text-align:left}.nav-button svg{width:1.15rem;height:1.15rem}.nav-button>span{font-size:.84rem;font-weight:650}.nav-button>small{padding:.18rem .38rem;color:#6f9589;background:#183a31;border-radius:999px;font-size:.58rem}.nav-button.active{color:#fff;background:#1d7a59;box-shadow:0 .35rem 1.2rem #0000001f}.nav-button.disabled{cursor:default;opacity:.72}.sidebar-footer{display:grid;grid-template-columns:2.25rem minmax(0,1fr) 2rem;align-items:center;gap:.65rem;margin-top:auto;padding:1rem .35rem 0;border-top:1px solid #2a4a41}.user-avatar{display:grid;place-items:center;width:2.25rem;height:2.25rem;color:#12382e;background:#d9f4e8;border-radius:.7rem;font-weight:850}.sidebar-footer>div:nth-child(2){display:grid;overflow:hidden}.sidebar-footer strong{overflow:hidden;color:#fff;font-size:.78rem;text-overflow:ellipsis;white-space:nowrap}.sidebar-footer small{color:#7fa397;font-size:.67rem}.sidebar-footer button{display:grid;place-items:center;padding:.4rem;color:#9dbcb1;background:transparent;border:0}.sidebar-footer svg{width:1.1rem}.workspace{min-width:0}.topbar{position:sticky;z-index:5;top:0;min-height:4.5rem;padding:.75rem clamp(1rem,3vw,2rem);box-shadow:0 1px #dfe8e4}.mobile-brand,.mobile-menu-toggle,.mobile-menu-close,.mobile-menu-backdrop,.mobile-revision{display:none}.global-search{position:relative;display:flex;align-items:center;width:min(30rem,48vw)}.global-search>svg{position:absolute;left:.9rem;z-index:1;width:1rem;color:#789087}.global-search input{padding:.72rem 1rem .72rem 2.55rem;background:#f4f7f6;border-color:transparent;border-radius:.7rem;font-weight:500}.topbar-actions{display:flex;align-items:center;gap:1rem}.topbar-context{display:flex;align-items:center;gap:.6rem;max-width:18rem;padding:.45rem .7rem;color:#31584c;background:#f4f8f6;border:1px solid #dce8e3;border-radius:.7rem;text-align:left}.topbar-context:hover{background:#edf6f2;border-color:#bed7cc}.topbar-context>svg{flex:0 0 1.05rem;width:1.05rem}.topbar-context>span{display:grid;min-width:0}.topbar-context strong,.topbar-context small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.topbar-context strong{font-size:.72rem}.topbar-context small{color:#789087;font-size:.64rem}.icon-button{position:relative;display:grid;place-items:center;width:2.4rem;height:2.4rem;color:#49665c;background:#f4f7f6;border:0;border-radius:.7rem}.icon-button svg{width:1.15rem}.notification-dot{position:absolute;top:.45rem;right:.5rem;width:.4rem;height:.4rem;background:#e9763e;border:2px solid #fff;border-radius:50%}.topbar-user{display:grid;min-width:8rem}.topbar-user span{color:#1b3e34;font-size:.82rem;font-weight:800}.topbar-user small{color:#80938c;font-size:.7rem}.workspace-content{width:min(88rem,calc(100% - 3rem));margin:0 auto}.dashboard{padding:2.25rem 0 4rem}.page-heading{display:flex;align-items:end;justify-content:space-between;gap:2rem;margin-bottom:1.75rem}.page-heading h1{margin:.45rem 0 .4rem;font-size:clamp(2rem,4vw,2.75rem)}.page-heading p{margin:0}.eyebrow{color:#1d7a59;font-size:.7rem;font-weight:850;letter-spacing:.11em;text-transform:uppercase}.heading-actions{display:flex;gap:.7rem}.primary-action{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;min-height:2.9rem;padding:.72rem 1rem;color:#fff;background:#16724d;border:0;border-radius:.65rem;font-weight:800;cursor:pointer}.primary-action:disabled{cursor:not-allowed;opacity:.62}.primary-action svg{width:1rem}.metrics-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:1rem;margin-bottom:1rem}.metric-card{display:flex;align-items:start;gap:.9rem;min-width:0;padding:1.15rem;background:#fff;border:1px solid #e0e8e4;border-radius:.9rem;box-shadow:0 .2rem .7rem #193d3308}.metric-card>div:last-child{display:grid;min-width:0}.metric-card span{overflow:hidden;color:#71877f;font-size:.72rem;text-overflow:ellipsis;white-space:nowrap}.metric-card strong{margin:.2rem 0;color:#183b31;font-size:1.5rem}.metric-card small{overflow:hidden;color:#91a19b;font-size:.66rem;text-overflow:ellipsis;white-space:nowrap}.metric-icon{display:grid;place-items:center;flex:0 0 2.6rem;height:2.6rem;border-radius:.75rem}.metric-icon svg{width:1.2rem}.metric-icon.green{color:#16724d;background:#e6f5ee}.metric-icon.blue{color:#3475a9;background:#e8f2fa}.metric-icon.purple{color:#7651a8;background:#f0eafa}.metric-icon.amber{color:#a66a20;background:#fff2df}.dashboard-columns{display:grid;grid-template-columns:minmax(0,1.7fr) minmax(18rem,.8fr);gap:1rem}.surface{padding:1.35rem;background:#fff;border:1px solid #e0e8e4;border-radius:.9rem}.section-heading{display:flex;align-items:start;justify-content:space-between;gap:1rem}.section-heading h2{margin:0 0 .3rem;font-size:1.05rem}.section-heading p{margin:0;font-size:.78rem}.section-heading>strong{color:#16724d;font-size:1.1rem}.quick-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:.7rem;margin-top:1.15rem}.quick-action{display:grid;grid-template-columns:2.35rem minmax(0,1fr) 1rem;align-items:center;gap:.75rem;padding:.85rem;color:#28483e;background:#f8faf9;border:1px solid #e3ebe7;border-radius:.75rem;text-align:left}.quick-action:hover:not(:disabled){background:#eff7f3;border-color:#b9d7c9;transform:translateY(-1px)}.quick-action>span{display:grid;place-items:center;width:2.35rem;height:2.35rem;color:#16724d;background:#e5f4ed;border-radius:.65rem}.quick-action svg{width:1rem}.quick-action>span svg{width:1.1rem}.quick-action>div{display:grid}.quick-action strong{font-size:.78rem}.quick-action small{color:#82938d;font-size:.67rem}.quick-action:disabled{cursor:default;opacity:.62}.progress-track{height:.45rem;margin:1.1rem 0 1.3rem;background:#e8efeb;border-radius:999px;overflow:hidden}.progress-track span{display:block;width:32%;height:100%;background:linear-gradient(90deg,#16724d,#42a77e);border-radius:inherit}.milestone-list{display:grid;gap:1rem;margin:0;padding:0;list-style:none}.milestone-list li{display:flex;align-items:center;gap:.75rem}.milestone-list li>span{display:grid;place-items:center;width:1.75rem;height:1.75rem;color:#789087;background:#eef2f0;border-radius:50%;font-size:.7rem;font-weight:800}.milestone-list li.done>span{color:#fff;background:#239466}.milestone-list svg{width:.9rem}.milestone-list div{display:grid}.milestone-list strong{font-size:.76rem}.milestone-list small{color:#80928b;font-size:.67rem}.workspace-content .catalog{width:100%;padding-top:2.25rem}.catalog-heading h1{font-size:clamp(2rem,4vw,2.65rem)}.students-page{padding:2.25rem 0 4rem}.students-page .page-heading h1{margin:.45rem 0 .4rem}.student-toolbar{display:grid;grid-template-columns:minmax(16rem,1fr) auto auto;align-items:center;gap:.7rem;margin-bottom:1rem;padding:.8rem;background:#fff;border:1px solid #e0e8e4;border-radius:.9rem}.student-toolbar input{margin:0}.student-toolbar>span{color:#71877f;font-size:.75rem}.student-form{display:grid;grid-template-columns:repeat(4,1fr);gap:1rem;margin-bottom:1rem}.student-form h2{grid-column:1 / -1;margin:0}.student-form label{display:grid;gap:.35rem;font-size:.75rem;font-weight:700}.student-form input,.student-form select{width:100%}.student-form-actions{display:flex;grid-column:1 / -1;justify-content:end;gap:.7rem}.student-form-section{grid-column:1 / -1;margin:.35rem 0 0;color:#24483d;font-size:.88rem}.app-modal-content .modal-form label{display:grid;min-width:0;gap:.4rem;color:var(--ink);font-size:.78rem;font-weight:750}.app-modal-content .modal-form input:not([type=checkbox]):not([type=radio]),.app-modal-content .modal-form select,.app-modal-content .modal-form textarea{box-sizing:border-box;width:100%;min-height:3rem;margin:0;padding:.72rem .85rem;border:1px solid #bfd1c9;border-radius:.75rem;background:#fff;color:var(--ink);font:inherit}.app-modal-content .modal-form input:not([type=checkbox]):not([type=radio]):focus,.app-modal-content .modal-form select:focus,.app-modal-content .modal-form textarea:focus{outline:none;border-color:#1d8663;box-shadow:0 0 0 3px #1d866324}.app-modal-content .class-form.modal-form{margin:0;padding:0;border:0;background:transparent;box-shadow:none}.app-modal-content .class-form-actions{padding:0;border:0;background:transparent}.postal-code-control{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:stretch;gap:.55rem}.postal-code-control button{min-height:3rem;white-space:nowrap}@media(max-width:42rem){.postal-code-control{grid-template-columns:1fr}}.student-field-wide{grid-column:span 2}.student-list{padding:1.35rem}.table-subtitle{display:block;margin-top:.2rem;color:#81938c}.student-pagination{display:flex;align-items:center;justify-content:flex-end;gap:.8rem;padding-top:1rem;color:#587068;font-size:.78rem}.student-pagination button:disabled{cursor:not-allowed;opacity:.45}.status-chip{display:inline-flex;padding:.25rem .5rem;border-radius:999px;font-size:.7rem;font-weight:800}.status-chip.active{color:#146442;background:#e4f5ec}.status-chip.inactive{color:#87551a;background:#fff0da}.student-row{cursor:pointer}.student-row:hover{background:#f7fbf9}.table-action{padding:.45rem .7rem;color:#176b4c;background:#edf7f2;border:1px solid #cfe4da;border-radius:.55rem;font-size:.7rem;font-weight:800;white-space:nowrap}.student-drawer-backdrop{position:fixed;z-index:30;inset:0;display:flex;justify-content:end;background:#0c231d6b;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.student-drawer{width:min(36rem,100%);height:100%;padding:1.6rem;overflow-y:auto;background:#f7faf8;box-shadow:-1rem 0 3rem #0820192e;animation:drawer-enter .2s ease-out}@keyframes drawer-enter{0%{opacity:.6;transform:translate(2rem)}}.drawer-header{display:flex;align-items:start;justify-content:space-between;gap:1rem;padding-bottom:1.25rem;border-bottom:1px solid #dce7e2}.drawer-header h2{margin:.35rem 0 .15rem;color:#173c31;font-size:1.65rem}.drawer-header p{margin:0;font-size:.8rem}.drawer-close{display:grid;place-items:center;flex:0 0 2.4rem;height:2.4rem;color:#46675c;background:#e8f1ed;border:0;border-radius:.7rem;font-size:1.5rem}.student-profile{display:grid;gap:1.25rem;padding-top:1.25rem}.profile-highlight{display:flex;align-items:center;gap:.9rem;padding:1rem;background:#fff;border:1px solid #dfe9e4;border-radius:.85rem}.profile-highlight .user-avatar{width:3rem;height:3rem;font-size:1.15rem}.profile-highlight>div{display:grid}.profile-highlight strong{color:#183b31}.profile-highlight small{margin-top:.2rem;color:#71877f}.profile-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.75rem;margin:0}.profile-grid>div{min-width:0;padding:.9rem;background:#fff;border:1px solid #dfe9e4;border-radius:.75rem}.profile-grid .profile-address{grid-column:1 / -1}.profile-grid dt{color:#789087;font-size:.68rem}.profile-grid dd{overflow-wrap:anywhere;margin:.25rem 0 0;color:#193c32;font-size:.84rem;font-weight:750}.student-edit-form{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem;padding-top:1.25rem}.student-edit-form label{display:grid;gap:.35rem;min-width:0;color:#25473d;font-size:.72rem;font-weight:750}.student-edit-form input,.student-edit-form select{width:100%;background:#fff}.version-note{align-self:center;color:#7c9189}.drawer-actions{display:flex;grid-column:1 / -1;justify-content:end;gap:.7rem;padding-top:.4rem}.context-modal-backdrop{position:fixed;z-index:50;inset:0;display:grid;place-items:center;padding:1rem;background:#09221b8c;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px)}.context-modal{width:min(37rem,100%);max-height:min(44rem,calc(100vh - 2rem));padding:1.4rem;overflow-y:auto;background:#f8fbf9;border:1px solid #dce8e3;border-radius:1rem;box-shadow:0 1.5rem 5rem #051e1647}.context-modal-header{display:flex;align-items:start;justify-content:space-between;gap:1rem;padding-bottom:1.1rem}.context-modal-header h2{margin:.35rem 0 .3rem;color:#173c31;font-size:1.45rem}.context-modal-header p{max-width:30rem;margin:0;font-size:.78rem}.context-modal-close{display:grid;place-items:center;flex:0 0 2.35rem;height:2.35rem;color:#49675d;background:#e8f1ed;border:0;border-radius:.7rem;font-size:1.45rem}.context-modal-list{display:grid;gap:.7rem}.context-modal-option{display:grid;grid-template-columns:2.6rem minmax(0,1fr) auto;align-items:center;gap:.8rem;width:100%;padding:.85rem;color:#24473c;background:#fff;border:1px solid #dce7e2;border-radius:.8rem;text-align:left}.context-modal-option:not(:disabled):hover{background:#eff8f3;border-color:#a9d0bf;transform:translateY(-1px)}.context-modal-option.current{background:#eaf6f0;border-color:#9ecab7}.context-modal-option:disabled{cursor:default;opacity:1}.context-option-icon{display:grid;place-items:center;width:2.6rem;height:2.6rem;color:#16724d;background:#e0f2e9;border-radius:.7rem}.context-option-icon svg{width:1.2rem}.context-option-copy{display:grid;min-width:0}.context-option-copy strong,.context-option-copy small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.context-option-copy strong{font-size:.86rem}.context-option-copy small{margin-top:.2rem;color:#758b83;font-size:.7rem}.context-option-status{padding:.3rem .55rem;color:#176b4c;background:#e3f3eb;border-radius:999px;font-size:.65rem;font-weight:800}.context-security-note{display:flex;align-items:center;gap:.5rem;margin:1rem 0 0;padding:.75rem;color:#617b72;background:#eef4f1;border-radius:.7rem;font-size:.69rem}.context-security-note svg{flex:0 0 1rem;width:1rem;color:#267657}.administration-page{padding:2.25rem 0 4rem}.administration-grid{display:grid;grid-template-columns:minmax(17rem,.7fr) minmax(0,1.5fr);gap:1rem}.administration-panel{align-self:start}.administration-panel>h2{margin:0 0 1rem;color:#173c31;font-size:1.15rem}.administration-panel h3{margin:0;color:#24483d;font-size:.9rem}.institution-list{display:grid;gap:.55rem}.institution-list>button{display:grid;gap:.25rem;width:100%;padding:.85rem;color:#294b40;background:#f8faf9;border:1px solid #e0e9e5;border-radius:.75rem;text-align:left}.institution-list>button:hover{border-color:#b6d4c7;background:#f0f8f4}.institution-list>button.selected{color:#145b3f;background:#e7f5ee;border-color:#9fcab7;box-shadow:inset 3px 0 #1c805c}.institution-list strong{font-size:.82rem}.institution-list small{color:#758b83;font-size:.68rem}.compact-form{margin-top:1.25rem;padding-top:1.2rem;border-top:1px solid #e0e9e5}.compact-form label,.grant-form label{font-size:.73rem}.compact-form input,.grant-form input,.grant-form select{background:#fff}.unit-chips{display:flex;flex-wrap:wrap;gap:.45rem;margin-bottom:1rem}.unit-chips span{padding:.35rem .6rem;color:#24654e;background:#eaf5f0;border-radius:999px;font-size:.68rem;font-weight:750}.grant-form{grid-template-columns:repeat(3,minmax(0,1fr));margin:0 0 1.35rem;padding:1rem;background:#f6f9f8;border:1px solid #e2ebe7;border-radius:.8rem}.grant-form h3,.grant-form .wide{grid-column:1 / -1}.grant-form>button{grid-column:3}.grant-list{display:grid;gap:.6rem}.grant-list>h3{margin:.3rem 0}.grant-list>p{margin:0;padding:1rem;background:#f8faf9;border-radius:.7rem;text-align:center}.grant-row{display:grid;grid-template-columns:minmax(0,1fr) auto auto;align-items:center;gap:.75rem;padding:.8rem;border:1px solid #e2ebe7;border-radius:.7rem}.grant-row>div{display:grid;min-width:0}.grant-row strong,.grant-row small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.grant-row strong{color:#23473b;font-size:.78rem}.grant-row small{margin-top:.2rem;color:#789087;font-size:.67rem}@media(max-width:70rem){.app-shell{grid-template-columns:5rem minmax(0,1fr)}.sidebar{padding-inline:.7rem}.sidebar-brand{justify-content:center}.sidebar-brand .brand>span:last-child,.environment-pill,.context-card,.nav-group>span,.nav-button>span,.nav-button>small,.sidebar-footer>div:nth-child(2){display:none}.nav-button{display:flex;justify-content:center;min-height:2.8rem}.sidebar-footer{display:flex;justify-content:center}.sidebar-footer button{display:none}.metrics-grid,.student-form{grid-template-columns:repeat(2,1fr)}.administration-grid{grid-template-columns:1fr}}@media(max-width:48rem){.app-shell{display:block}.sidebar{position:fixed;z-index:40;inset:0 auto 0 0;display:flex;width:min(20rem,calc(100vw - 3.5rem));max-width:100%;height:100dvh;padding:1.25rem 1rem;border-right:1px solid rgb(255 255 255 / 8%);transform:translate(-105%);transition:transform .18s ease;box-shadow:1rem 0 3rem #031c153d;overflow:hidden;overscroll-behavior:contain}.sidebar.mobile-open{transform:translate(0)}.sidebar-brand{display:flex;flex:0 0 auto;justify-content:flex-start;gap:.55rem}.sidebar-brand .environment-pill{margin-left:auto}.mobile-menu-close{display:grid;flex:0 0 auto;place-items:center;width:2rem;height:2rem;padding:0;color:#dce9e4;background:#ffffff12;border:1px solid rgb(255 255 255 / 12%);border-radius:.6rem}.mobile-menu-close span{font-size:1.45rem;font-weight:300;line-height:1}.environment-pill{display:inline-flex}.context-card{display:grid;flex:0 0 auto;margin-bottom:.3rem}.sidebar-brand .brand>span:last-child{display:inline}.sidebar-footer>div:nth-child(2),.sidebar-footer button{display:grid}.main-navigation{display:grid;flex:1 1 auto;min-height:0;align-content:start;gap:.25rem;padding:.15rem .1rem 1rem;overflow-x:hidden;overflow-y:auto;scrollbar-width:thin}.nav-group{display:grid;gap:.15rem;margin-top:.75rem}.nav-group>span{display:block}.nav-button{display:grid;grid-template-columns:1.25rem minmax(0,1fr) auto;width:100%;min-height:2.75rem;padding:.65rem .7rem;gap:.65rem}.nav-button>span{display:block;font-size:.78rem}.nav-button>small{display:inline-block}.sidebar-footer{display:grid;flex:0 0 auto;margin-top:0}.mobile-menu-backdrop{position:fixed;z-index:35;inset:0;display:block;width:100%;height:100%;padding:0;background:#031c157a;border:0}.topbar{position:static}.mobile-brand{display:flex;align-items:center;gap:.65rem}.mobile-menu-toggle{display:grid;place-items:center;width:2.5rem;height:2.5rem;padding:0;color:#164d3d;background:#eef6f2;border:1px solid #d4e5de;border-radius:.7rem}.mobile-menu-toggle svg{width:1.25rem}.mobile-revision{display:inline-flex;align-items:center;min-height:1.7rem;padding:.25rem .5rem;color:#1c6c51;background:#eaf5f0;border:1px solid #cee4da;border-radius:999px;font-size:.66rem;font-weight:850;letter-spacing:.04em}.global-search,.topbar-user{display:none}.topbar-context>span{display:none}.workspace-content{width:min(100% - 1.5rem,88rem)}.dashboard{padding-top:1.4rem;padding-bottom:6rem}.page-heading{align-items:start;flex-direction:column;gap:1rem}.heading-actions{width:100%}.heading-actions button{flex:1}.metrics-grid,.dashboard-columns,.quick-grid{grid-template-columns:1fr}.metric-card:nth-child(n+3){display:none}.workspace-content .catalog,.students-page{padding-bottom:6rem}.student-toolbar,.student-form{grid-template-columns:1fr}.student-form h2,.student-form-actions,.student-form-section,.student-field-wide{grid-column:auto}.student-drawer{padding:1.1rem}.profile-grid,.student-edit-form{grid-template-columns:1fr}.administration-page{padding-bottom:6rem}.grant-form{grid-template-columns:1fr}.grant-form h3,.grant-form .wide,.grant-form>button{grid-column:auto}.grant-row{grid-template-columns:minmax(0,1fr) auto}.grant-row .table-action{grid-column:1 / -1}}
