:root{color:#211b4e;background:#f6f4ff;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}*{box-sizing:border-box}body{background:#f6f4ff;margin:0}button,input,select,textarea{font:inherit}button{color:#fff;cursor:pointer;background:#4a3ae3;border:0;border-radius:12px;padding:.75rem 1rem;font-weight:700;transition:transform .15s,box-shadow .15s,background .15s}button:hover{transform:translateY(-1px);box-shadow:0 10px 18px #4a3ae32e}button:disabled{cursor:not-allowed;opacity:.7;box-shadow:none;transform:none}input,select,textarea{color:#211b4e;background:#fff;border:1px solid #e3defb;border-radius:12px;outline:none;width:100%;padding:.72rem .82rem}textarea{resize:vertical;min-height:90px}input:focus,select:focus,textarea:focus{border-color:#6f5ff0;box-shadow:0 0 0 4px #6f5ff01f}input:disabled{color:#211b4e;opacity:1;cursor:default;background:#f8f6ff}.appShell{grid-template-columns:290px minmax(0,1fr);min-height:100vh;display:grid}.sidebar{color:#f9f8fd;background:#211b4e;height:100vh;padding:1.2rem;position:sticky;top:0;overflow-y:auto}.brandBlock{border-bottom:1px solid #ffffff14;align-items:center;gap:.85rem;margin-bottom:1rem;padding:.4rem .3rem 1.2rem;display:flex}.authBrandBlock{border-bottom:none;margin-bottom:1.5rem;padding:0}.brandIcon{background:linear-gradient(135deg,#5b7cfa,#8b5cf6);border-radius:16px;place-items:center;width:46px;height:46px;font-weight:900;display:grid}.brandBlock h1{margin:0;font-size:1.25rem}.brandBlock p{color:#b0a6d0;margin:.1rem 0 0;font-size:.85rem}.sidebarUserCard{background:#ffffff14;border:1px solid #ffffff14;border-radius:16px;gap:.2rem;margin-bottom:.9rem;padding:.85rem .9rem;display:grid}.sidebarUserLabel,.sidebarUserRole{color:#b0a6d0;font-size:.8rem}.sideButton{color:#e3defb;width:100%;box-shadow:none;background:0 0;justify-content:space-between;align-items:center;margin-bottom:.35rem;display:flex}.sideButton:hover,.activeStatic{box-shadow:none;background:#ffffff14}.logoutButton{border:1px solid #ffffff14;margin-top:1rem}.navSectionTitle{color:#938aab;text-transform:uppercase;letter-spacing:.08em;margin:.9rem 0 .35rem;padding:0 .35rem;font-size:.74rem;font-weight:900}.mainNavList{gap:.25rem;margin-bottom:.6rem;display:grid}.settingsButton{margin-top:.35rem}.settingsList{gap:.25rem;margin-top:.4rem;display:grid}.entityNav{color:#d6cff2;text-align:left;width:100%;box-shadow:none;background:0 0;border-radius:10px;padding:.62rem .8rem;font-weight:600}.entityNav:hover{box-shadow:none;background:#ffffff12}.entityNav.selected{color:#fff;background:#4a3ae3}.mainPanel{flex-direction:column;min-width:0;min-height:100vh;padding:1.4rem;display:flex}.topBar{justify-content:space-between;align-items:center;gap:1rem;margin-bottom:1rem;display:flex}.eyebrow{color:#675f97;text-transform:uppercase;letter-spacing:.08em;margin:0 0 .25rem;font-size:.78rem;font-weight:900}.topBar h2{margin:0;font-size:1.9rem}.ghostButton{color:#4a3ae3;background:#fff;border:1px solid #e3defb}.topUserChip{background:#fff;border:1px solid #e3defb;border-radius:14px;gap:.1rem;min-width:150px;padding:.55rem .75rem;display:grid}.topUserChip span{color:#6e6a93;font-size:.8rem}.notice{color:#7a4d00;background:#fff7e6;border:1px solid #ffd88a;border-radius:14px;margin-bottom:1rem;padding:.9rem 1rem;font-weight:650}.pdfPreviewFrame{background:#f3f1fb;border:1px solid #e3defb;border-radius:14px;width:100%;height:70vh}.toastStack{z-index:1000;gap:.6rem;max-width:min(360px,100vw - 2.5rem);display:grid;position:fixed;top:1.25rem;right:1.25rem}.toastItem{border-radius:12px;justify-content:space-between;align-items:flex-start;gap:.75rem;padding:.8rem .9rem;font-size:.86rem;font-weight:650;animation:.2s toastIn;display:flex;box-shadow:0 16px 32px #211b4e2e}@keyframes toastIn{0%{opacity:0;transform:translate(16px)}to{opacity:1;transform:translate(0)}}.toastItem--success{color:#0f6e3f;background:#eafaf1;border:1px solid #a7e8c4}.toastItem--error{color:#9c2626;background:#fdecec;border:1px solid #f3aeae}.toastDismiss{box-shadow:none;color:inherit;cursor:pointer;opacity:.6;background:0 0;border:none;padding:0;font-size:1rem;line-height:1}.toastDismiss:hover{opacity:1;box-shadow:none;background:0 0;transform:none}.statsGrid{grid-template-columns:repeat(4,minmax(0,1fr));gap:1rem;margin-bottom:1rem;display:grid}.statCard,.contentCard,.authCard{background:#ffffffeb;border:1px solid #e8e2fa;border-radius:22px;box-shadow:0 16px 35px #211b4e14}.statCard{padding:1rem}.statCard span{color:#6e6a93;font-weight:700}.statCard strong{margin-top:.25rem;font-size:2rem;display:block}.statCard .statCardIcon{color:#4a3ae3;background:#eeedfe;border-radius:9px;justify-content:center;align-items:center;width:30px;height:30px;margin-bottom:.6rem;font-weight:400;display:flex}.contentCard{padding:1rem}.sectionHeader{justify-content:space-between;align-items:flex-start;gap:1rem;margin-bottom:1rem;display:flex}.sectionHeader h3{margin:0;font-size:1.4rem}.sectionHeader p{color:#6e6a93;max-width:760px;margin:.25rem 0 0}.actionsRow{align-items:center;gap:.65rem;display:flex}.searchInput{min-width:240px}.tableWrap{border:1px solid #eae5fa;border-radius:16px;width:100%;max-height:70vh;overflow:auto}.courseOfferingGroups{flex-direction:column;gap:1.5rem;display:flex}.courseOfferingGroup{background:#fdfcff;border:1px solid #eae5fa;border-radius:16px;padding:.9rem 1rem}.courseOfferingGroup summary{cursor:pointer;gap:.5rem;list-style:none}.courseOfferingGroup summary::-webkit-details-marker{display:none}.courseOfferingGroup summary:before{content:"▶";color:#6f5ff0;margin-right:.6rem;font-size:.65rem;transition:transform .15s;display:inline-block}.courseOfferingGroup[open] summary:before{transform:rotate(90deg)}.courseOfferingGroup[open] summary{margin-bottom:.5rem}.courseOfferingGroup .tableWrap{max-height:none}.courseOfferingGroup .tableWrap table{min-width:0}table{border-collapse:collapse;background:#fff;width:100%;min-width:980px}th,td{text-align:left;vertical-align:top;border-bottom:1px solid #f0ecfc;padding:.82rem .9rem}th{color:#5b527e;text-transform:capitalize;letter-spacing:.02em;z-index:1;background:#f8f6ff;font-size:.82rem;font-weight:800;position:sticky;top:0}tbody tr:nth-child(2n){background:#faf9ff}tbody tr:hover{background:#f0edfe}tr:last-child td{border-bottom:0}.right{text-align:right}.rowActions{white-space:nowrap;justify-content:flex-end;gap:.4rem;display:flex}.miniButton{color:#4a3ae3;background:#f0edfe;border-radius:10px;padding:.45rem .65rem}.miniButton.danger{color:#b91c1c;background:#fee2e2}.emptyRow,.emptyState{text-align:center;color:#6e6a93;padding:2rem}.modalBackdrop{z-index:50;background:#0f172a8c;place-items:center;padding:1rem;display:grid;position:fixed;inset:0}.modal{background:#fff;border-radius:24px;width:min(920px,96vw);max-height:90vh;overflow-y:auto;box-shadow:0 30px 90px #00000047}.modalHeader{border-bottom:1px solid #ece7fb;justify-content:space-between;align-items:center;padding:1rem 1.2rem;display:flex}.modalHeader h3{margin:0}.iconButton{color:#211b4e;background:#f3eefe;border-radius:50%;width:38px;height:38px;padding:0;font-size:1.5rem;line-height:1}.formGrid{grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem;padding:1.2rem;display:grid}.formGrid label,.authForm label{color:#443669;gap:.35rem;font-weight:750;display:grid}.fullSpan,.checkboxLine,.modalFooter{grid-column:1/-1}.checkboxLine{align-items:center;gap:.6rem!important;display:flex!important}.checkboxLine input{width:auto}.modalFooter{border-top:1px solid #ece7fb;justify-content:flex-end;gap:.7rem;padding-top:1rem;display:flex}.confirmModal{width:min(480px,96vw)}.confirmText{color:#443669;padding:0 1.2rem 1.2rem;line-height:1.5}.confirmModal .modalFooter{padding:1rem 1.2rem}.dangerButton{background:#dc2626}.dangerButton:hover{background:#b91c1c}.detailsGrid{grid-template-columns:repeat(2,minmax(0,1fr));gap:.75rem;padding:1.2rem;display:grid}.fieldHint{color:#8f7fc7;font-size:.78rem;font-style:normal;font-weight:500}.courseChecklistHeader{color:#443669;justify-content:space-between;align-items:center;gap:.75rem;margin-bottom:.5rem;font-weight:750;display:flex}.courseChecklistHeader .ghostButton{padding:.4rem .75rem;font-size:.82rem}.clickableHeader{cursor:pointer}.courseChecklist{border:1px solid #ece7fb;border-radius:14px;gap:.5rem;max-height:260px;padding:.75rem 1rem;display:grid;overflow-y:auto}.courseAddAction{align-items:flex-end;display:flex}.courseAddAction button{width:100%}.courseAddedRow{border-bottom:1px solid #f0ecfc;align-items:center;gap:.75rem;padding:.5rem 0;display:flex}.courseAddedRow:last-child{border-bottom:0}.courseAddedName{color:#211b4e;flex:1;font-weight:700}.courseAddedMeta{color:#6e6a93;min-width:70px;font-size:.85rem}.statusPillRow{flex-wrap:wrap;align-items:center;gap:.4rem;display:flex}.statusPill{white-space:nowrap;border-radius:999px;align-items:center;gap:.3rem;padding:.22rem .7rem;font-size:.72rem;font-weight:700;line-height:1.4;display:inline-flex}.statusPillLabel{opacity:.75;font-weight:600}.statusPillLabel:after{content:":"}.statusPill--open{color:#16794a;background:#e4f9ee;border:1px solid #a7ecc7}.statusPill--closed,.statusPill--unregistered,.statusPill--draft{color:#6e6a93;background:#f3f1fb;border:1px solid #e3defb}.statusPill--submitted{color:#7a4d00;background:#fff7e6;border:1px solid #ffd88a}.statusPill--approved{color:#4a3ae3;background:#eef0ff;border:1px solid #cfd0fb}.statusPill--rejected{color:#b3261e;background:#fdeaea;border:1px solid #f5c2c0}.detailItem{background:#f9f7ff;border:1px solid #ece7fb;border-radius:16px;padding:.75rem}.detailItem span{color:#6e6a93;margin-bottom:.2rem;font-size:.8rem;display:block}.detailItem strong{word-break:break-word;font-weight:750}.authShell{background:linear-gradient(160deg,#1a1440 0%,#3b2f8f 60%,#6c4fe0 100%);place-items:center;min-height:100vh;padding:1.5rem;display:grid;position:relative;overflow:hidden}.authShell:before,.authShell:after{content:"";pointer-events:none;border-radius:50%;position:absolute}.authShell:before{background:radial-gradient(circle,#ffffff24 0%,#0000 70%);width:520px;height:520px;top:-160px;left:-140px}.authShell:after{background:radial-gradient(circle,#ffffff1a 0%,#0000 70%);width:560px;height:560px;bottom:-200px;right:-160px}.authCard{z-index:1;background:#fffffffa;width:min(440px,100%);padding:1.75rem;position:relative;box-shadow:0 30px 60px #0a062859}.inputWithIcon{align-items:center;display:flex;position:relative}.inputWithIcon svg{color:#a79cd6;position:absolute;left:12px}.inputWithIcon input{padding-left:38px}.authForm button[type=submit]{background:linear-gradient(135deg,#4a3ae3,#8b5cf6);padding:.85rem 1rem;font-size:.95rem}.authFooter{text-align:center;color:#6e6a93;margin-top:1.25rem;font-size:.85rem}.authFooter a{color:#4a3ae3;font-weight:700}.authCopyright{text-align:center;color:#a79cd6;border-top:1px solid #ece7fb;margin-top:1rem;padding-top:.9rem;font-size:.72rem}.authCopyright a{color:#a79cd6}.authCardCompact{text-align:center;width:min(420px,100%)}.authHeader{margin-bottom:1rem}.authHeader h2{margin:0 0 .35rem}.authHeader p:last-child{color:#6e6a93;margin:0}.authForm{gap:1rem;display:grid}.selectedLink{box-shadow:none;background:#ffffff14}.topActions{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:.75rem;display:flex}.footerBar{color:#6e6a93;justify-content:space-between;gap:1rem;margin-top:auto;padding:1rem .25rem 0;font-size:.85rem;display:flex}.dashboardCard{justify-content:space-between;align-items:center;gap:1rem;padding:1.4rem;display:flex}.dashboardCard h3{margin:0 0 .4rem;font-size:1.45rem}.dashboardCard p{color:#6e6a93;max-width:780px;margin:0}.buttonLink{color:#fff;white-space:nowrap;background:#4a3ae3;border-radius:12px;justify-content:center;align-items:center;padding:.75rem 1rem;font-weight:800;display:inline-flex}.dashboardGreetingBar{justify-content:space-between;align-items:center;gap:1rem;margin-bottom:1rem;display:flex}.dashboardGreetingName{color:#211b4e;margin:0;font-size:1.6rem}.dashboardGreetingRight{align-items:center;gap:.7rem;display:flex}.dashboardDateChip{color:#6e6a93;background:#fff;border:1px solid #e3defb;border-radius:10px;align-items:center;gap:.4rem;padding:.5rem .75rem;font-size:.82rem;display:inline-flex}.dashboardAvatar{color:#fff;background:linear-gradient(135deg,#4a3ae3,#8b5cf6);border-radius:50%;justify-content:center;align-items:center;width:36px;height:36px;font-size:.8rem;font-weight:700;display:flex}.dashboardWelcome{color:#fff;background:linear-gradient(120deg,#211b4e 0%,#4a3ae3 60%,#8b5cf6 100%);border-radius:22px;margin-bottom:1rem;padding:1.1rem 1.4rem;box-shadow:0 16px 35px #211b4e2e}.dashboardWelcome p{max-width:780px;margin:0;line-height:1.6}.dashboardWelcome strong{color:#fff}.quickAccessCard{margin-bottom:1rem}.quickAccessGrid{grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:.85rem;display:grid}.quickAccessTile{background:#f9f8ff;border:1px solid #eae5fa;border-radius:16px;flex-direction:column;gap:.35rem;padding:1rem;transition:transform .15s,box-shadow .15s,border-color .15s;display:flex}.quickAccessTile:hover{border-color:#d7cef8;transform:translateY(-2px);box-shadow:0 12px 24px #211b4e1a}.quickAccessTile strong{font-size:1rem}.quickAccessTile span{color:#6e6a93;font-size:.85rem}.quickAccessIcon{color:#4a3ae3;background:#f0edfe;border-radius:10px;justify-content:center;align-items:center;width:34px;height:34px;margin-bottom:.15rem;display:flex}.quickAccessIcon--purple{color:#4a3ae3;background:#eeedfe}.quickAccessIcon--teal{color:#0f6e56;background:#e1f5ee}@media (width<=980px){.appShell{grid-template-columns:1fr}.sidebar{height:auto;position:relative}.statsGrid{grid-template-columns:repeat(2,minmax(0,1fr))}.sectionHeader,.actionsRow,.topBar{flex-direction:column;align-items:stretch}.searchInput{min-width:0}.dashboardCard{flex-direction:column;align-items:stretch}}@media (width<=640px){.mainPanel{padding:.8rem}.statsGrid,.formGrid,.detailsGrid{grid-template-columns:1fr}}a{color:inherit;text-decoration:none}.sidebar{color:#fff;background:linear-gradient(#120b38 0%,#170f42 100%);border-right:1px solid #ffffff14;flex-direction:column;width:280px;min-width:280px;height:100vh;display:flex}.brandBlock{border-bottom:1px solid #ffffff14;align-items:center;gap:14px;padding:20px 18px;display:flex}.brandIcon{background:linear-gradient(135deg,#7d6ff5 0%,#5847e8 100%);border-radius:14px;flex-shrink:0;justify-content:center;align-items:center;width:46px;height:46px;font-size:16px;font-weight:700;display:flex}.brandText h1{margin:0;font-size:24px;line-height:1.1}.brandText p{color:#b0a4d8;margin:4px 0 0;font-size:13px}.sidebarUserCard{background:#ffffff0f;border:1px solid #ffffff14;border-radius:16px;margin:16px 14px 10px;padding:14px}.sidebarUserLabel{color:#b0a4d8;margin-bottom:8px;font-size:12px;display:block}.sidebarUserName{overflow-wrap:anywhere;word-break:break-word;margin-bottom:4px;font-size:18px;display:block}.sidebarUserRole{color:#8f7fc7;text-transform:uppercase;overflow-wrap:anywhere;font-size:12px}.sidebarScroll{scrollbar-width:none;flex:1;padding:8px 10px 16px;overflow-y:auto}.sidebarScroll::-webkit-scrollbar{display:none}.navSectionTitle{text-transform:uppercase;letter-spacing:.08em;color:#8073b5;margin:14px 10px 8px;font-size:12px;font-weight:700}.mainNavList,.settingsList{flex-direction:column;gap:4px;display:flex}.sideButton,.entityNav{color:#f1edfe;text-align:left;cursor:pointer;background:0 0;border:none;border-radius:14px;justify-content:flex-start;align-items:center;gap:10px;width:100%;padding:12px 14px;font-size:15px;font-weight:600;text-decoration:none;transition:all .2s;display:flex}.sideButton svg,.entityNav svg{opacity:.85;flex:none}.entityNav:hover,.sideButton:hover{background:#ffffff0f}.entityNav.selected,.selectedLink{color:#fff;background:linear-gradient(135deg,#5a4bea 0%,#4d3ce0 100%);box-shadow:0 10px 20px #4a3ae347}.entityNav.selected svg,.selectedLink svg{opacity:1}.subNav{color:#d8cffa;padding-left:22px;font-size:14px}.settingsButton{justify-content:space-between;align-items:center;margin-top:10px;display:flex}.settingsButtonLabel{align-items:center;gap:10px;display:flex}.settingsArrow{color:#a99bdc}.sidebarBottom{border-top:1px solid #ffffff14;padding:14px}.logoutButton{background:#291f5c}.logoutButton:hover{background:#332868}.topBar{justify-content:space-between;align-items:center;margin-bottom:24px;display:flex}.eyebrow{text-transform:uppercase;letter-spacing:.08em;color:#7269a0;margin:0 0 6px;font-size:12px;font-weight:700}.topBar h2{color:#1c1650;margin:0;font-size:34px}.topActions{align-items:center;gap:12px;display:flex}.topUserChip{background:#fff;border:1px solid #ebe6fb;border-radius:16px;flex-direction:column;min-width:140px;padding:10px 14px;display:flex}.topUserChip strong{font-size:15px}.topUserChip span{color:#7d71a8;text-transform:uppercase;font-size:12px}.ghostButton,.primarySmallButton{cursor:pointer;background:#fff;border:1px solid #e7e1fa;border-radius:14px;padding:10px 16px;font-weight:700}.primarySmallButton{color:#fff;background:#5a4bea;border-color:#5a4bea}@media (width<=900px){.appShell{grid-template-columns:1fr}.sidebar{width:100%;min-width:0;height:auto;position:relative}.sidebarScroll{max-height:55vh}.mainPanel{min-height:auto;padding:1rem}.topBar{flex-direction:column;align-items:stretch;gap:.75rem}.topActions{justify-content:flex-start}.formGrid,.detailsGrid,.statsGrid{grid-template-columns:1fr}}@media (width<=560px){.brandBlock{padding:16px 14px}.sidebarUserCard{margin:12px 10px 8px}.sidebarUserName{font-size:15px}.footerBar{flex-direction:column;gap:.35rem}}.bulkImportPanel{flex-direction:column;gap:.9rem;display:flex}.bulkImportActions{flex-wrap:wrap;align-items:center;gap:.75rem;display:flex}.bulkImportActions input[type=file]{background:#f9f8ff;border:1px dashed #d7cef8;width:auto;padding:.5rem .75rem}.importSummary{flex-direction:column;gap:.75rem;display:flex}.importSummaryHeadline{color:#211b4e;background:#eeedfe;border:1px solid #d7cef8;border-radius:14px;flex-wrap:wrap;gap:1.5rem;padding:1rem 1.1rem;font-size:1.05rem;display:flex}.importSummaryStats{color:#443669;background:#f9f8ff;border:1px solid #eae5fa;border-radius:14px;flex-wrap:wrap;gap:1.25rem;padding:.85rem 1rem;font-size:.88rem;display:flex}.importStatOk strong{color:#16a34a}.importStatError strong{color:#dc2626}.loginShell{background:#fff url(/login-bg.jpg) 50%/cover no-repeat;place-items:center;min-height:100vh;padding:1.5rem;display:grid}.loginCard{background:#fff;border-radius:10px;width:min(450px,100%);overflow:hidden;box-shadow:0 12px 40px #00000047}.loginBody{text-align:center;padding:2rem 2.2rem 1.4rem}.loginTitle{color:#4fb3e8;margin:0 0 1.4rem;font-size:1.6rem;font-weight:700}.loginForm{gap:1rem;display:grid}.loginForm input{text-align:center;background:#e8f0fe;border:0;border-radius:5px;padding:1rem;font-size:.95rem}.loginForm button[type=submit]{color:#fff;letter-spacing:.04em;background:#54b6ea;border:0;border-radius:5px;justify-self:center;min-width:200px;padding:.9rem 1.5rem;font-size:.8rem;box-shadow:0 10px 20px #54b6ea59}.loginForm button[type=submit]:hover{background:#3fa6df}.loginForgot{margin:1.4rem 0 0}.loginForgot a{color:#1a8ad1;text-decoration:none}.loginForgot a:hover{text-decoration:underline}.loginError{color:#b3261e;background:#fdecea;border-radius:5px;margin-bottom:1rem;padding:.6rem .8rem;font-size:.85rem}.loginFooter{text-align:center;color:#333;background:#f4f4f4;border-top:1px solid #e5e5e5;padding:1.4rem 1rem 1.6rem;font-size:.95rem}.loginFooter p{margin:.2rem 0}.loginFooter a{color:#1a73d1;text-decoration:none}
