:root{color-scheme:light;font-family:Verdana,Inter,Geneva,sans-serif;line-height:1.5;font-weight:400;--bg: #f4f5fb;--bg-elevated: rgba(255, 255, 255, .92);--bg-strong: #ffffff;--surface-muted: #f8f8fc;--surface-2: #ecebfa;--border: #dad8ec;--border-soft: #e7e6f2;--text: #2c2a4f;--ink: #171444;--text-soft: #666489;--text-quiet: #8c8ba8;--primary: #3c388d;--primary-rgb: 60 56 141;--primary-strong: #221e63;--secondary: #652580;--secondary-rgb: 101 37 128;--lime: #9fc53a;--lime-rgb: 159 197 58;--lime-soft: #eef6d7;--cyan: #36cce8;--cyan-rgb: 54 204 232;--cyan-soft: #e0f8fc;--warning: var(--cyan);--warning-soft: var(--cyan-soft);--danger: #c7445a;--danger-soft: #fbe6ea;--role-accent: var(--primary);--role-accent-rgb: var(--primary-rgb);--role-accent-soft: var(--surface-2);--role-accent-alt: var(--cyan);--shadow: 0 14px 28px rgba(31, 26, 94, .12);--radius-lg: 24px;--radius-md: 20px;--radius-sm: 10px;--ui-scale: .8;--page-gutter: clamp(12px, 2vw, 24px);--page-gutter-wide: clamp(14px, 2.4vw, 32px);--section-gap: clamp(14px, 1.8vw, 20px);--card-padding: clamp(16px, 1.8vw, 20px);--rail-padding-x: clamp(20px, 2.4vw, 32px);--rail-padding-y: clamp(18px, 2vw, 26px)}*{box-sizing:border-box}html,body,#root{min-height:100%}#root{zoom:var(--ui-scale)}body.auth-screen #root{zoom:1}html.auth-screen-root{overflow-y:auto;scrollbar-gutter:auto;background:#f7f8fd}html.auth-screen-root,html.auth-screen-root body,html.auth-screen-root #root{width:100%}@supports not (zoom: 1){#root{width:calc(100% / var(--ui-scale));min-height:calc(100% / var(--ui-scale));transform:scale(var(--ui-scale));transform-origin:top left}body.auth-screen #root{width:100%;min-height:100%;transform:none}}html{overflow-y:scroll;scrollbar-gutter:stable;text-size-adjust:100%}body{margin:0;min-width:320px;color:var(--text);background:radial-gradient(circle at top left,rgba(54,204,232,.18),transparent 28%),radial-gradient(circle at top right,rgba(159,197,58,.18),transparent 24%),radial-gradient(circle at 24% 90%,rgba(101,37,128,.09),transparent 24%),linear-gradient(180deg,#fafbff 0%,var(--bg) 54%,#f1f2fb 100%)}body.auth-screen{overflow-x:hidden;background:#f7f8fd}a{color:inherit;text-decoration:none}button,input,textarea,select{font:inherit}button{cursor:pointer}img,svg,video{max-width:100%}.app-shell{min-height:100vh}.workspace-frame{width:min(1440px,calc(100% - (var(--page-gutter-wide) * 2)));margin:0 auto;padding:clamp(12px,2vw,20px) 0 clamp(24px,3vw,32px)}.page{width:min(1280px,calc(100% - (var(--page-gutter) * 2)));margin:0 auto;padding:0 0 48px}.page--wide{width:min(1440px,calc(100% - (var(--page-gutter-wide) * 2)))}.page--role{width:min(1036px,100%)}.hero-card,.surface-card{background:var(--bg-elevated);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px)}.surface-card--tinted{background:linear-gradient(180deg,#ecebfaf5,#fffffff5)}.surface-card--accent{background:linear-gradient(180deg,#e0f8fcf5,#fffffff5)}.surface-card--violet{background:linear-gradient(180deg,#efe6f5f5,#fffffff5)}.grid{display:grid;gap:var(--section-gap)}.grid--2{grid-template-columns:repeat(2,minmax(0,1fr))}.grid--3{grid-template-columns:repeat(3,minmax(0,1fr))}.grid--2-detail{grid-template-columns:minmax(0,2fr) minmax(320px,1fr)}.grid--2-profile{grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr)}.stack{display:flex;flex-direction:column}.row{display:flex;gap:12px;align-items:center}.row--wrap{flex-wrap:wrap}.row--between{justify-content:space-between}.eyebrow{text-transform:uppercase;letter-spacing:.16em;font-size:.72rem;color:var(--text-soft);font-weight:700;margin:10px}.page-title{margin:0;color:var(--ink);font-size:clamp(2rem,3.4vw,2.9rem);line-height:1.04}.muted{color:var(--text-soft)}.pill{display:inline-flex;align-items:center;gap:8px;padding:8px 12px;border-radius:999px;background:var(--surface-2);color:var(--primary);font-weight:700;font-size:.88rem}.button{display:inline-flex;align-items:center;justify-content:center;gap:10px;min-height:44px;padding:0 18px;border-radius:6px;border:1px solid transparent;font-size:.9rem;font-weight:700;transition:transform .18s ease,box-shadow .18s ease,background .18s ease,border-color .18s ease}.button:hover{transform:translateY(-1px)}.button:disabled{cursor:not-allowed;opacity:.6;transform:none}.button--primary{background:var(--primary);color:#fff;border-color:#3c388de0;box-shadow:0 10px 18px #3c388d2e;margin-top:10px}.button--primary:hover{background:var(--primary-strong);border-color:var(--primary-strong)}.button--secondary{background:#fffffffa;border-color:var(--border);color:var(--primary);margin-top:10px}.button--ghost{background:transparent;border-color:var(--border);color:var(--primary);margin-top:10px}.button--danger{background:var(--danger-soft);border-color:#c7445a52;color:var(--danger);margin-top:10px}.button--danger:hover{background:#fbe6eaeb;border-color:#c7445a70}.field{display:flex;flex-direction:column;gap:8px}.field label{font-weight:700;font-size:.92rem}.field input,.field textarea,.field select{width:100%;min-height:44px;padding:12px 14px;color:var(--text);border-radius:var(--radius-sm);border:1px solid var(--border);background:#fffffffa}.field input:focus,.field textarea:focus,.field select:focus{border-color:#3c388d8f;outline:3px solid rgba(60,56,141,.12)}.field input.input--invalid,.field textarea.input--invalid,.field select.input--invalid,.field input[aria-invalid=true],.field textarea[aria-invalid=true],.field select[aria-invalid=true]{border-color:#c7445ab8;background:#fff9fa;box-shadow:0 0 0 3px #c7445a1a}.field input.input--invalid:focus,.field textarea.input--invalid:focus,.field select.input--invalid:focus,.field input[aria-invalid=true]:focus,.field textarea[aria-invalid=true]:focus,.field select[aria-invalid=true]:focus{border-color:var(--danger);outline:3px solid rgba(199,68,90,.16)}.field textarea{min-height:120px;resize:vertical}.field input[readonly]{background:#f8f8fcfa;color:var(--ink)}.field__hint,.field__error,.field__feedback-spacer{font-size:.84rem;line-height:1.35;min-height:1.14rem}.field__hint{color:var(--text-soft)}.field__error{color:var(--danger)}.card{padding:var(--card-padding);border-radius:var(--radius-md);border:1px solid var(--border);background:#ffffffeb}.card__title{margin:0 0 4px;color:var(--ink);font-size:1.12rem}.card__meta{margin:0;color:var(--text-soft);font-size:.95rem}.section-header{display:flex;justify-content:space-between;gap:16px;align-items:flex-start;flex-wrap:wrap}.section-header>*{min-width:0}.content-area{min-width:0}.admin-body{display:grid;grid-template-columns:clamp(232px,23vw,272px) minmax(0,1fr);gap:clamp(16px,2vw,24px);align-items:stretch}.admin-body>*{min-width:0}.admin-main{display:flow-root}.admin-main>.stack{gap:20px}.admin-settings-grid{align-items:stretch}.admin-settings-card{min-width:0}.admin-settings-profile-field{max-width:560px}.admin-directory-switch{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.admin-directory-switch__button{display:flex;align-items:center;justify-content:space-between;gap:14px;min-height:76px;padding:18px 20px;color:var(--ink);font:inherit;font-weight:800;text-align:left;border:1px solid var(--border);border-radius:var(--radius-md);background:#ffffffc7;box-shadow:0 10px 28px #2a245f0f;cursor:pointer;transition:border-color .18s ease,box-shadow .18s ease,transform .18s ease}.admin-directory-switch__button small{flex:0 0 auto;color:var(--muted);font-size:13px;font-weight:800}.admin-directory-switch__button:hover{border-color:#4237916b;box-shadow:0 16px 34px #2a245f1a;transform:translateY(-1px)}.admin-directory-switch__button.is-active{color:var(--primary);border-color:#42379185;background:linear-gradient(135deg,#eeebfff2,#ffffffdb)}.admin-account-form{padding:18px;border:1px solid var(--border);border-radius:var(--radius-lg);background:#f6f7fdbd}.admin-list{display:grid;gap:10px}.admin-list__row{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:14px 16px;border:1px solid var(--border);border-radius:var(--radius-md);background:#ffffffc7}.admin-list__row>*{min-width:0}.admin-list__actions{display:flex;align-items:center;justify-content:flex-end;flex-wrap:wrap;gap:8px}.admin-list__actions .button{min-height:34px;margin-top:0;padding:0 14px}.admin-list__hint{padding:6px 10px;border-radius:999px;background:#eeebffd1;color:var(--muted);font-size:.78rem;font-weight:800}.role-rail,.admin-rail{position:sticky;top:0;z-index:10;align-items:center;gap:clamp(14px,1.8vw,18px);min-height:80px;padding:var(--rail-padding-y) var(--rail-padding-x) clamp(18px,1.8vw,20px);margin-bottom:0;border:1px solid var(--border-soft);border-radius:24px;background:#ffffffc7;box-shadow:var(--shadow);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px)}.admin-rail{display:flex;justify-content:space-between;position:relative;overflow:hidden;border-radius:18px 18px 18px 0}.role-rail{display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);overflow:hidden}.role-shell--student,.role-shell--dean{--role-accent: var(--primary);--role-accent-rgb: var(--primary-rgb);--role-accent-soft: var(--surface-2);--role-accent-alt: var(--cyan)}.role-shell--teacher{--role-accent: var(--secondary);--role-accent-rgb: var(--secondary-rgb);--role-accent-soft: rgba(239, 230, 245, .96);--role-accent-alt: var(--primary)}.role-rail:before,.admin-rail:before{content:"";position:absolute;inset:0 auto auto 0;width:100%;height:5px;border-radius:24px 24px 0 0;background:linear-gradient(90deg,var(--primary) 0% 17.8%,var(--lime) 17.8% 30%,var(--cyan) 30% 43%,var(--primary) 43% 100%,rgba(255,255,255,0) 0% 100%)}.brand-capsule{display:inline-flex;align-items:center;flex-wrap:wrap;gap:2px;row-gap:8px;min-height:72px;padding:14px 20px 14px 16px;min-width:0}.role-rail .brand-capsule{justify-self:start}.brand-capsule__chip{display:inline-flex;align-items:center;justify-content:center;flex:0 0 auto;min-width:118px;min-height:44px;padding:0 18px;border-radius:5px;background:var(--primary);color:#fff;font-size:1.08rem;font-weight:700;letter-spacing:.04em}.brand-capsule__accent{flex:0 0 auto;width:8px;height:44px;border-radius:2px;background:var(--role-accent-alt, var(--lime))}.brand-capsule__text{margin-left:20px;display:flex;flex-direction:column;gap:2px;min-width:0;flex:1 1 280px}.brand-capsule__text strong{color:var(--ink);font-size:clamp(1.18rem,2vw,1.7rem);line-height:1.05}.brand-capsule__text span{color:var(--text-soft);font-size:clamp(.74rem,1vw,.82rem);max-width:52ch}.role-nav{display:inline-flex;align-items:center;flex-wrap:wrap;gap:8px;max-width:100%;padding:6px 8px;border:1px solid var(--border-soft);border-radius:26px;background:#fff;box-shadow:0 10px 18px #1f1a5e14}.role-rail .role-nav{justify-self:center}.role-nav__item{display:inline-flex;align-items:center;justify-content:center;min-height:40px;padding:0 18px;border-radius:20px;color:var(--primary);font-size:.85rem;font-weight:700;border:1px solid transparent;transition:transform .22s ease,background .22s ease,color .22s ease,box-shadow .22s ease}.role-nav__item:hover{transform:translateY(-1px)}.role-shell .role-nav__item.active{background:var(--role-accent);color:#fff;box-shadow:0 12px 18px rgb(var(--role-accent-rgb) / .18)}.user-cluster{display:inline-flex;align-items:center;flex-wrap:wrap;justify-content:flex-end;gap:12px}.role-rail .user-cluster{justify-self:end}.role-page-transition{animation:role-page-enter .28s cubic-bezier(.22,1,.36,1);transform-origin:top center}.confirm-modal{position:fixed;inset:0;z-index:60;display:grid;place-items:center;padding:24px;background:#110e3447;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);animation:confirm-backdrop-enter .18s ease}.confirm-modal__card{width:min(520px,calc(100vw - 32px));padding:24px;border-radius:28px;border:1px solid rgba(255,255,255,.56);background:linear-gradient(180deg,#fffffffa,#f4f5fbfa);box-shadow:0 28px 60px #19145742;animation:confirm-card-enter .24s cubic-bezier(.22,1,.36,1)}.confirm-modal__card--danger{border-top:4px solid var(--danger)}.confirm-modal__details{display:grid;gap:8px;margin:0;padding:14px 16px 14px 34px;border:1px solid var(--border-soft);border-radius:8px;background:var(--surface-muted);color:var(--text);font-size:.9rem}.confirm-modal__badge{display:inline-flex;align-items:center;min-height:32px;padding:0 12px;border-radius:999px;background:#6525801a;color:var(--secondary);font-size:.78rem;font-weight:700;letter-spacing:.04em;text-transform:uppercase}.confirm-modal__title{margin:16px 0 8px;color:var(--ink);font-size:clamp(1.45rem,2.2vw,1.8rem);line-height:1.08}.confirm-modal__description{margin:0;color:var(--text);font-size:.98rem;line-height:1.6}.tusur-session-modal input{font-family:SFMono-Regular,Menlo,Monaco,monospace;letter-spacing:.01em}.confirm-modal__actions{display:flex;justify-content:flex-end;flex-wrap:wrap;gap:12px;margin-top:24px}.toast-notice{position:fixed;z-index:1200;right:24px;bottom:24px;display:grid;grid-template-columns:30px minmax(0,1fr) 30px;align-items:center;gap:10px;width:min(420px,calc(100vw - 32px));min-height:58px;padding:12px 14px;border:1px solid rgba(159,197,58,.5);border-radius:8px;background:#fffffffa;color:var(--ink);box-shadow:0 18px 42px #1f1a5e33;animation:toast-notice-in .2s ease-out}.toast-notice--error{border-color:#c7445a6b}.toast-notice__mark{display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;border-radius:50%;background:var(--lime-soft);color:var(--primary);font-size:.68rem;font-weight:900}.toast-notice--error .toast-notice__mark{background:var(--danger-soft);color:var(--danger)}.toast-notice button{width:30px;height:30px;padding:0;border:0;background:transparent;color:var(--text-soft);font-size:1.4rem;line-height:1}@keyframes toast-notice-in{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@keyframes role-page-enter{0%{opacity:0;transform:translateY(14px) scale(.988);filter:blur(8px)}to{opacity:1;transform:translateY(0) scale(1);filter:blur(0)}}@keyframes confirm-backdrop-enter{0%{opacity:0}to{opacity:1}}@keyframes confirm-card-enter{0%{opacity:0;transform:translateY(18px) scale(.96);filter:blur(10px)}to{opacity:1;transform:translateY(0) scale(1);filter:blur(0)}}.user-cluster__meta{display:flex;flex-direction:column;align-items:flex-end;gap:2px;min-width:0;text-align:right}.user-cluster__meta span{font-size:.92rem;font-weight:700;color:var(--ink)}.user-cluster__meta small{font-size:.75rem;color:var(--text-soft)}.avatar-chip{width:40px;height:40px;border:3px solid #fff;border-radius:50%;background:var(--role-accent-soft);color:var(--role-accent);font-weight:700;box-shadow:0 6px 14px #1f1a5e1f}.logout-link{border:none;background:transparent;color:var(--role-accent);font-size:.84rem;font-weight:700}.admin-sidebar{position:relative;align-self:stretch;display:flex;flex-direction:column;min-height:calc(100vh - 180px);height:100%;padding:clamp(18px,2vw,22px);border-radius:0 0 18px 18px;background:var(--primary-strong);color:#fff;border:1px solid rgba(74,70,168,.8)}.admin-sidebar>.stack{position:sticky;top:50px;width:100%;min-height:calc(100vh - 148px);gap:clamp(14px,1.8vw,20px)}.admin-sidebar nav{display:flex;flex-direction:column;gap:12px}.sidebar-link{position:relative;display:flex;flex-direction:column;align-items:flex-start;gap:2px;padding:14px 16px;border-radius:6px;color:#e8e6ff;border:1px solid transparent}.sidebar-link.active{color:var(--primary);background:#fff;border-color:var(--border-soft)}.sidebar-link.active:before{content:"";position:absolute;left:0;top:10px;bottom:8px;width:3px;background:var(--lime);border-radius:0 4px 4px 0}.sidebar-status{margin-top:55px;padding:28px 26px 22px;border-radius:18px;background:linear-gradient(180deg,#3d3392fa,#362d87fa);border:1px solid rgba(164,156,255,.28);box-shadow:inset 0 1px #ffffff14}.sidebar-status__label{margin:0;color:#b8b2fb;font-size:.9rem;font-weight:700;letter-spacing:-.01em}.sidebar-status strong{display:block;margin:18px 0 10px;color:#fff;font-size:17px;font-weight:800;line-height:1.3;letter-spacing:-.03em}.sidebar-status__meta{margin:0;color:#ddd9ff;font-size:.92rem;font-weight:500;letter-spacing:-.01em}.page-intro{display:flex;flex-direction:column;gap:16px}.page-intro__head{display:flex;justify-content:space-between;gap:16px;align-items:flex-start;flex-wrap:wrap}.page-intro__head>*{min-width:0}.page-intro__nav{display:flex;align-items:center;margin-bottom:6px}.page-back-link{display:inline-flex;align-items:center;gap:8px;min-height:34px;padding:0 12px 0 10px;border:1px solid rgba(60,56,141,.12);border-radius:999px;background:#ffffffd1;color:var(--text-soft);font-size:.84rem;font-weight:700;line-height:1.2;box-shadow:0 8px 16px #1f1a5e0a;transition:color .18s ease,transform .18s ease,border-color .18s ease,background .18s ease,box-shadow .18s ease}.page-back-link:before{content:"‹";color:var(--role-accent);font-size:1rem;line-height:1}.page-back-link:hover{color:var(--role-accent);border-color:#3c388d33;background:#fffffff5;transform:translate(-1px)}.page-back-link--inline{min-height:auto;padding:0;border:none;border-radius:0;background:transparent;box-shadow:none;color:var(--role-accent)}.page-back-link--inline:hover{border-color:transparent;background:transparent}.page-back-link--soft{border-color:transparent;background:#ecebfaeb;color:var(--role-accent);box-shadow:none}.page-back-link--soft:hover{border-color:transparent;background:#e7e6fcfa}.page-back-link--course{margin-top:6px}.page-back-link--compact{min-height:28px;padding:0;border:none;border-radius:0;background:transparent;box-shadow:none;color:var(--text-soft);font-size:.76rem;letter-spacing:.06em;text-transform:uppercase}.page-back-link--compact:before{font-size:.9rem}.page-back-link--compact:hover{border-color:transparent;background:transparent}.page-intro__subtitle{margin:0;max-width:72ch;color:var(--text-soft);font-size:.95rem;line-height:1.5}.page-intro__actions{display:flex;flex-wrap:wrap;gap:12px;align-items:center;justify-content:flex-end}.visibility-toggle{display:inline-flex;align-items:center;justify-content:center;gap:9px;min-height:40px;padding:0 14px;border:1px solid rgba(60,56,141,.12);border-radius:999px;background:#ffffffd1;color:var(--text-soft);font-size:.84rem;font-weight:800;line-height:1.2;box-shadow:0 8px 16px #1f1a5e0a;cursor:pointer;transition:border-color .18s ease,color .18s ease,background .18s ease,box-shadow .18s ease}.visibility-toggle:hover{border-color:#3c388d3d;color:var(--primary);background:#fffffff5}.visibility-toggle input{width:16px;height:16px;accent-color:var(--primary)}.visibility-toggle span{white-space:nowrap}.page-intro__accent{display:flex;gap:10px}.page-intro__accent span{display:block;width:72px;height:4px;border-radius:999px}.page-intro__accent span:first-child{background:var(--role-accent)}.page-intro__accent span:last-child{background:var(--role-accent-alt)}.table-wrap{overflow:auto;overscroll-behavior-x:contain;-webkit-overflow-scrolling:touch;border-radius:var(--radius-md);border:1px solid var(--border);background:#fffffff0}.table-wrap table{min-width:max(100%,640px)}table{width:100%;border-collapse:collapse}th,td{padding:14px 16px;text-align:left;vertical-align:top;border-bottom:1px solid var(--border-soft)}th{font-size:.8rem;color:var(--text-soft);text-transform:uppercase;letter-spacing:0}.status{display:inline-flex;align-items:center;padding:6px 10px;border-radius:999px;font-weight:700;font-size:.8rem}.status--success{background:var(--lime-soft);color:var(--primary)}.status--warning{background:var(--warning-soft);color:var(--warning)}.status--danger{background:var(--danger-soft);color:var(--danger)}.status--neutral{background:var(--surface-2);color:var(--text-soft)}.notice{padding:16px 18px;border-radius:var(--radius-md);border:1px solid var(--border);background:#fffffff0}.notice--error{border-color:#c7445a38;background:var(--danger-soft)}.notice--success{border-color:#9fc53a38;background:var(--lime-soft)}.notice--warning{border-color:#36cce83d;background:var(--warning-soft);margin:10px}.form-error{margin:-6px 0 0;color:var(--danger);font-size:.9rem;font-weight:700}.metric-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,220px),1fr));gap:var(--section-gap)}.dashboard-metric{display:flex;flex-direction:column;justify-content:space-between;min-height:124px;padding:18px 20px 16px;background:#fffffff5}.dashboard-metric__title{margin:0;color:#7372a0;font-size:.95rem;font-weight:700;line-height:1.2}.dashboard-metric__value{margin-top:10px;color:var(--ink);font-size:clamp(2.05rem,1.5vw,2.75rem);font-weight:800;line-height:1;letter-spacing:-.03em}.dashboard-metric__value--status{font-size:clamp(1.65rem,1.5vw,2.2rem);letter-spacing:-.02em;text-transform:lowercase}.dashboard-metric__chip{align-self:flex-start;width:100%;margin-top:16px;padding:8px 16px;border-radius:999px;background:#e7e6fcf2;color:#433f95;font-size:.82rem;font-weight:700;line-height:1.15;white-space:normal}.dashboard-metric__chip--violet{background:#e9e6fcf2}.dashboard-metric__chip--cyan{background:var(--cyan-soft);color:var(--primary)}.metric-card strong,.display-number{color:var(--ink);font-size:clamp(2rem,4vw,2.45rem);line-height:1}.metric-card--violet{background:linear-gradient(180deg,#efe6f5eb,#fff)}.metric-card--cyan{background:linear-gradient(180deg,#e0f8fceb,#fff)}.teacher-metric-grid{align-items:stretch}.teacher-metric-card{display:flex;flex-direction:column;justify-content:space-between;gap:10px;min-height:130px;padding:18px 20px}.teacher-metric-card .eyebrow{margin:0}.teacher-metric-card__value{display:flex;align-items:flex-end;gap:4px}.teacher-metric-card__number{color:var(--ink);font-size:clamp(1.55rem,2vw,2rem);font-weight:800;line-height:.95}.teacher-metric-card__suffix{color:#666593;font-size:clamp(1rem,1.2vw,1.2rem);font-weight:700;line-height:1.1;padding-bottom:.12em}.teacher-metric-card__meta{margin:0;max-width:18ch}.hero-panel{min-height:220px}.hero-panel--period,.hero-panel--courses{min-height:252px;padding:20px 20px 18px}.period-panel{display:flex;flex-direction:column;min-height:100%}.period-panel__intro{display:flex;flex-direction:column;gap:18px}.period-panel__title{margin:0;color:var(--ink);font-size:20px;font-weight:800;line-height:1.1;letter-spacing:-.03em}.period-panel__status{display:inline-flex;align-items:center;align-self:flex-start;min-height:24px;padding:0 18px;border-radius:999px;background:var(--lime-soft);color:var(--primary);font-size:.78rem;font-weight:800;letter-spacing:-.01em}.period-panel__status--scheduled,.period-panel__status--draft{background:var(--cyan-soft);color:var(--primary)}.period-panel__status--closed,.period-panel__status--cancelled{background:#e7e6fcf2;color:#666489}.period-panel__body{margin-top:18px;display:flex;flex-direction:column;gap:24px}.period-panel__range{margin:0;color:var(--ink);font-size:20px;font-weight:800;line-height:1.28;letter-spacing:-.03em}.period-panel__actions{margin-top:auto;padding-top:24px}.period-panel__button{min-width:156px;min-height:38px;padding:0 18px;border-radius:8px;border-color:#d7daf1;color:#4740a1;font-size:.92rem;font-weight:800;box-shadow:none}.course-occupancy-panel{display:flex;flex-direction:column;min-height:100%}.course-occupancy-panel__title{margin:0;color:var(--ink);font-size:20px;font-weight:800;line-height:1.1;letter-spacing:-.03em}.course-occupancy-panel__empty{margin:auto 0 0;color:var(--text-soft);font-size:.95rem}.course-occupancy-chart{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;min-height:150px;margin-top:auto;padding:18px 14px 0}.course-occupancy-chart__item{flex:1 1 0;display:flex;flex-direction:column;align-items:center;justify-content:flex-end;gap:14px;min-width:0}.course-occupancy-chart__bar{width:min(30px,100%);border-radius:4px;background:#46419d;box-shadow:0 8px 16px #46419d24}.course-occupancy-chart__label{color:#7372a0;font-size:.78rem;font-weight:500;line-height:1.1;text-align:center;white-space:nowrap}.campaign-switcher-card{padding-top:18px}.campaign-switcher-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:12px}.period-workspace{gap:22px}.period-workspace__accent{display:flex;gap:12px;padding-left:8px}.period-workspace__accent span{display:block;width:68px;height:4px;border-radius:999px}.period-workspace__accent span:first-child{background:var(--lime)}.period-workspace__accent span:last-child{background:var(--cyan)}.period-workspace__hero,.period-workspace__overview,.period-workspace__secondary{align-items:start}.period-workspace__overview{align-items:stretch}.period-workspace__overview>.campaign-switcher-card,.period-workspace__overview>.period-preview-card{height:100%}.period-editor-card,.period-preview-card,.period-config-card,.period-detail-card,.period-copy-card,.campaign-switcher-card{background:linear-gradient(180deg,#fffffffc,#f5f6fcf7);box-shadow:0 18px 30px #1f1a5e0f}.period-editor-form,.period-preview-card__body,.period-copy-form{display:flex;flex-direction:column;gap:18px;min-height:100%}.period-editor-card__head{display:flex;flex-wrap:wrap;align-items:flex-start;justify-content:space-between;gap:12px}.period-editor-card__head-copy{display:flex;flex-direction:column;gap:6px}.period-editor-card__head .card__meta,.period-editor-card__head .button,.period-editor-card__actions .button,.campaign-switcher-card__header .button,.period-detail-card .button{margin-top:0}.period-wizard-stepper{display:grid;grid-template-columns:repeat(auto-fit,minmax(124px,1fr));gap:8px;padding:8px;border:1px solid rgba(70,65,157,.12);border-radius:18px;background:linear-gradient(180deg,#f7f8fefa,#fffffff2)}.period-wizard-stepper__item{display:inline-flex;align-items:center;justify-content:flex-start;gap:9px;min-height:46px;padding:8px 10px;border:1px solid transparent;border-radius:13px;background:transparent;color:#626086;font:inherit;font-size:.88rem;font-weight:850;cursor:pointer;transition:border-color .16s ease,background .16s ease,box-shadow .16s ease,color .16s ease}.period-wizard-stepper__item span{display:inline-flex;align-items:center;justify-content:center;width:26px;height:26px;flex:0 0 26px;border-radius:999px;background:#edebfceb;color:var(--primary);font-size:.78rem;font-weight:950}.period-wizard-stepper__item.is-current{border-color:#46419d42;background:#fff;color:var(--primary);box-shadow:0 10px 18px #1f1a5e0f}.period-wizard-stepper__item.is-complete span{background:#edf7d0fa;color:#5b8124}.period-wizard-panel{display:flex;flex-direction:column;gap:18px;padding:20px;border:1px solid rgba(70,65,157,.13);border-radius:18px;background:linear-gradient(180deg,#fffffff5,#f8f9fed1)}.period-wizard-panel__head{display:flex;align-items:flex-start;justify-content:space-between;gap:18px}.period-wizard-panel__title{margin:4px 0 0;color:var(--ink);font-size:1.28rem;font-weight:900;line-height:1.16}.period-wizard-panel__body{display:flex;flex-direction:column;gap:16px}.period-template-grid,.period-course-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:12px}.period-template-card,.period-course-card{display:flex;flex-direction:column;align-items:flex-start;gap:8px;min-height:128px;padding:18px;border:1px solid rgba(70,65,157,.14);border-radius:16px;background:#ffffffdb;color:var(--ink);font:inherit;text-align:left;cursor:pointer;box-shadow:0 10px 18px #1f1a5e09;transition:border-color .16s ease,box-shadow .16s ease,transform .16s ease,background .16s ease}.period-template-card:hover,.period-course-card:hover{transform:translateY(-1px);border-color:#46419d4d;box-shadow:0 14px 24px #1f1a5e12}.period-template-card.is-active,.period-course-card.is-active{border-color:#8cc63fd1;background:linear-gradient(180deg,#fffffffa,#f9fdf4e6);box-shadow:0 16px 28px #1f1a5e13}.period-template-card strong,.period-course-card strong{color:var(--ink);font-size:1.08rem;font-weight:950;line-height:1.18}.period-template-card small,.period-course-card span{color:#64618a;font-size:.92rem;font-weight:650;line-height:1.45}.period-wizard-template-select{max-width:620px}.period-groups-stack{display:flex;flex-direction:column;gap:14px}.period-groups-section{display:flex;flex-direction:column;gap:12px;padding:16px;border:1px solid rgba(70,65,157,.13);border-radius:16px;background:#ffffffc7}.period-groups-section__head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.period-groups-section__head h4{margin:0;color:var(--ink);font-size:1.02rem;font-weight:950;line-height:1.18}.period-groups-section__head p{margin:4px 0 0;color:#68658d;font-size:.88rem;font-weight:700;line-height:1.35}.period-groups-grid{grid-template-columns:repeat(auto-fit,minmax(250px,1fr))}.period-group-card{min-height:84px;transition:border-color .16s ease,background .16s ease,box-shadow .16s ease}.period-group-card.is-active{border-color:#46419d4d;background:linear-gradient(180deg,#edebfccc,#fffffff5);box-shadow:0 10px 18px #1f1a5e0f}.period-editor-card__title{margin:0;color:var(--ink);font-size:1.82rem;font-weight:800;line-height:1.08;letter-spacing:-.04em}.period-editor-card__section{display:flex;flex-direction:column;gap:16px}.period-editor-card__section+.period-editor-card__section{padding-top:6px;border-top:1px solid rgba(217,219,239,.82)}.period-editor-card__section-copy{display:flex;flex-direction:column;gap:6px}.period-editor-card__section-copy .card__meta{margin:0}.period-editor-card__section-title{margin:0;color:var(--ink);font-size:1.12rem;font-weight:800;letter-spacing:-.02em}.period-editor-card__grid,.period-config-card__grid{gap:14px}.period-editor-card__field,.period-config-card__field{gap:10px}.period-editor-card .field label,.period-config-card .field label,.period-copy-card .field label{color:#75739a;font-size:.78rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase}.period-editor-card .field input,.period-editor-card .field textarea,.period-editor-card .field select,.period-config-card .field input,.period-config-card .field textarea,.period-config-card .field select,.period-copy-card .field input,.period-copy-form .field select{min-height:48px;border-color:#d9dbef;background:linear-gradient(180deg,#fffffffc,#fcfcfffa);box-shadow:inset 0 1px #fffffffa,0 8px 16px #1f1a5e08}.period-copy-form .card__meta{margin:0}.period-editor-card .field textarea,.period-config-card .field textarea{min-height:120px}.period-editor-card__message{min-height:108px}.period-editor-card__derived-year{width:fit-content;max-width:100%;padding:10px 14px;border-radius:14px;border:1px solid rgba(151,201,49,.32);background:linear-gradient(180deg,#edf7d0e6,#f9fcf0f5);color:var(--ink);font-size:.9rem;font-weight:750;line-height:1.35}.period-editor-card__derived-year.is-error{border-color:#d34a6261;background:linear-gradient(180deg,#fce7eceb,#fff7f9fa);color:#b3284a}.period-editor-card__actions{display:flex;flex-wrap:wrap;gap:12px;padding-top:6px}.period-editor-card__secondary{min-width:126px}.period-preview-card__body{gap:28px}.period-preview-callout{display:flex;flex-direction:column;gap:10px;padding:24px 20px;border-radius:16px}.period-preview-callout strong{color:var(--primary);font-size:1.48rem;font-weight:800;line-height:1.1;letter-spacing:-.03em}.period-preview-callout span{color:var(--ink);font-size:1rem;line-height:1.5}.period-preview-callout--success{background:linear-gradient(90deg,#f2f8d6fa,#f0f6d2d1)}.period-preview-callout--scheduled{background:linear-gradient(90deg,#e0f8fcfa,#ffffffe6)}.period-preview-callout--closed{background:linear-gradient(90deg,#edecf9fa,#f6f6fce6)}.period-preview-callout--warning{background:linear-gradient(90deg,#ecebfafa,#ffffffeb)}.period-preview-card__checks{display:flex;flex-direction:column;gap:16px}.period-preview-card__checks-title{margin:0;color:var(--ink);font-size:1.28rem;font-weight:800;letter-spacing:-.03em}.period-check-list{display:flex;flex-direction:column;gap:14px;margin:0;padding:0;list-style:none}.period-check-list__item{display:flex;align-items:center;gap:12px;color:var(--ink);font-size:1rem;line-height:1.4}.period-check-list__dot{width:8px;height:8px;border-radius:50%;background:var(--primary);box-shadow:0 0 0 6px #46419d14;flex:0 0 auto}.period-check-list__dot--warning{background:var(--warning);box-shadow:0 0 0 6px #36cce824}.campaign-switcher-card__header{display:flex;flex-wrap:wrap;align-items:flex-start;justify-content:space-between;gap:16px}.campaign-switcher-list,.campaign-switcher-grid,.period-offering-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,240px),1fr));gap:14px}.campaign-switcher-card .campaign-switcher-list{align-items:stretch}.period-switch-card{display:flex;flex-direction:column;gap:14px;width:100%;height:100%;min-height:228px;margin-top:10px;padding:18px 18px 16px;border:1px solid #d8dbef;border-radius:18px;background:linear-gradient(180deg,#fffffffc,#f7f8fcf7);box-shadow:0 10px 18px #1f1a5e0a;text-align:left;transition:transform .18s ease,border-color .18s ease,box-shadow .18s ease,background .18s ease}.period-switch-card__course{display:inline-flex;align-items:center;width:fit-content;min-height:28px;margin:8px 0 2px;padding:0 12px;border-radius:999px;background:var(--cyan-soft);color:var(--primary);font-size:.84rem;font-weight:800}.period-switch-card:hover{transform:translateY(-1px);border-color:#46419d3d}.intake-campaign-card{min-height:0;margin-top:0;padding:20px}.intake-campaign-card__header{gap:16px;padding-bottom:14px;border-bottom:1px solid rgba(70,65,157,.12)}.cluster-actions{display:flex;flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:10px}.cluster-actions .button{margin-top:0}.period-list{display:grid;gap:10px}.period-list__item{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:14px;align-items:start;min-height:92px;padding:14px;border:1px solid rgba(70,65,157,.12);border-radius:14px;background:#ffffffb8;transition:border-color .18s ease,box-shadow .18s ease,background .18s ease}.period-list__content{display:grid;grid-template-columns:auto minmax(0,1fr);gap:12px;align-items:start}.period-list__course-badge{display:inline-flex;align-items:center;justify-content:center;min-width:76px;min-height:36px;padding:0 12px;border-radius:999px;background:#edebfce6;color:var(--primary);font-size:.86rem;font-weight:900;white-space:nowrap}.period-list__details{min-width:0}.period-list__item.active{border-color:#8cc63fb8;background:linear-gradient(180deg,#fffffffa,#f9fdf4d1);box-shadow:0 14px 26px #1f1a5e12}.period-list__title{margin:0;color:var(--ink);font-size:1rem;font-weight:900;line-height:1.25}.period-switch-card--active{border-color:#46419d47;background:linear-gradient(180deg,#edebfcf5,#fffffffa);box-shadow:0 14px 24px #1f1a5e14;margin-top:10px}.period-switch-card__select{display:flex;flex-direction:column;gap:14px;flex:1 1 auto;min-height:0;width:100%;padding:0;border:none;background:transparent;color:inherit;font:inherit;text-align:left;cursor:pointer}.period-switch-card__head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.period-switch-card__year{display:inline-flex;align-items:center;min-height:28px;padding:0 12px;border-radius:999px;background:#46419d14;color:var(--primary);font-size:.78rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase}.period-switch-card__copy{display:grid;align-content:start;gap:8px;grid-template-rows:minmax(2.7rem,auto) minmax(2.7rem,auto) minmax(4rem,auto);min-width:0}.period-switch-card__copy strong{color:var(--ink);font-size:1.08rem;line-height:1.22;letter-spacing:-.02em}.period-switch-card__copy span{color:var(--text-soft);font-size:.9rem;line-height:1.45}.period-switch-card__name,.period-switch-card__range,.period-switch-card__groups{display:block}.period-switch-card__range{color:#4e4c74}.period-switch-card__meta-grid{display:flex;flex-wrap:wrap;gap:8px}.period-switch-card__footnote{margin:auto 0 0;color:var(--text-soft);font-size:.84rem;line-height:1.45}.period-switch-card__actions{display:flex;flex-direction:column;gap:10px;width:100%;margin-top:auto}.period-switch-card__actions .button{min-width:0;width:100%;padding:0 12px;margin-top:0;justify-content:center;text-align:center;white-space:normal;line-height:1.2}.period-config-card__groups{gap:12px}.period-config-card__group-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,220px),1fr));gap:12px}.period-config-card__group-list{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,220px),1fr));gap:12px;list-style:none;margin:0;padding:0}.period-config-card__group-card{display:flex;align-items:center;gap:14px;min-height:92px;padding:16px 18px;border:1px solid #d8dbef;border-radius:14px;background:linear-gradient(180deg,#fffffffc,#f7f8fcf7);box-shadow:0 10px 18px #1f1a5e0a;transition:transform .18s ease,border-color .18s ease,box-shadow .18s ease}.period-config-card__group-card:hover{transform:translateY(-1px);border-color:#46419d33}.period-config-card__group-card:has(input:checked){border-color:#46419d4d;background:linear-gradient(180deg,#edebfcf5,#fffffffa);box-shadow:0 14px 22px #1f1a5e14}.period-config-card__group-card--static{align-items:flex-start;gap:0;min-height:0}.period-config-card__group-card--static:hover{transform:none;border-color:#d8dbef}.period-config-card__group-card input{width:22px;height:22px;margin:0;accent-color:var(--primary);flex:0 0 auto}.period-config-card__group-copy{display:flex;flex-direction:column;gap:6px;min-width:0}.period-config-card__group-copy strong{color:var(--ink);font-size:.96rem;line-height:1.25}.period-config-card__group-copy span{color:var(--text-soft);font-size:.84rem;line-height:1.45}.period-detail-card__offering{padding:18px 18px 16px;border-radius:18px;background:linear-gradient(180deg,#fffffffc,#f7f8fcfa);box-shadow:0 12px 18px #1f1a5e0d;margin-top:10px}.period-detail-card__offering-head{display:flex;align-items:flex-start;justify-content:space-between;gap:14px}.period-detail-card__offering-copy{display:flex;flex-direction:column;gap:6px;min-width:0}.period-detail-card__offering-copy .card__title{margin-bottom:0}.period-detail-card__offering-metrics{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-top:18px}.period-detail-card__metric{display:flex;flex-direction:column;gap:6px;padding:12px;border-radius:14px;background:#f5f6fcf5;border:1px solid rgba(216,219,239,.96)}.period-detail-card__metric span{color:var(--text-soft);font-size:.76rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase}.period-detail-card__metric strong{color:var(--ink);font-size:1.08rem;line-height:1.2}.progress--period-card{height:10px;margin-top:18px;border-radius:999px;background:#e9ecf8fa}.progress--period-card span{background:linear-gradient(90deg,var(--lime),var(--cyan))}@media(max-width:720px){.period-switch-card__actions{flex-direction:column}.period-switch-card__actions .button{width:100%}}.progress{width:100%;height:8px;overflow:hidden;border-radius:8px;background:#f1f2f7}.progress span{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,var(--primary) 0%,var(--primary) 58%,var(--secondary) 100%)}.progress--period{height:7px;border-radius:999px;background:#ebeef8}.progress--period span{background:linear-gradient(90deg,var(--primary) 0%,var(--primary) 58%,var(--secondary) 100%)}.progress--sidebar{width:100%;height:14px;margin-top:26px;border-radius:999px;background:#f5f5fcf5}.progress--sidebar span{background:linear-gradient(90deg,var(--primary) 0%,var(--primary) 58%,var(--secondary) 100%)}.toolbar-panel{background:#fffffff5}.toolbar-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,220px),1fr));gap:14px}.toolbar-chip{display:flex;flex-direction:column;gap:6px;padding:14px 16px;border-radius:8px;background:var(--surface-muted);border:1px solid var(--border-soft)}.toolbar-chip span{color:var(--text-soft);font-size:.78rem;text-transform:uppercase;letter-spacing:.12em}.toolbar-chip strong{color:var(--ink)}.stats-offerings-card,.stats-roster-card{background:linear-gradient(180deg,#fffffffc,#f6f7fcf7);box-shadow:0 18px 30px #1f1a5e0f}.stats-roster__header{display:flex;justify-content:space-between;align-items:flex-start;gap:18px;flex-wrap:wrap}.stats-roster__copy{flex:1 1 360px;min-width:0}.stats-roster__copy .card__meta{max-width:64ch;line-height:1.55}.stats-roster__actions{display:flex;flex-wrap:wrap;gap:10px}.stats-filter-panel{display:flex;flex-direction:column;gap:16px;padding:18px;border-radius:18px;border:1px solid rgba(214,216,235,.94);background:#f7f8fcf5;box-shadow:inset 0 1px #fffffff0,0 10px 18px #1f1a5e0a}.stats-filter-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,176px),1fr));gap:14px}.stats-filter-grid .field{gap:8px}.stats-filter-grid .field label{color:var(--ink);font-size:.78rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase}.stats-filter-panel__footer{display:flex;justify-content:space-between;align-items:center;gap:14px;flex-wrap:wrap}.stats-filter-summary{display:flex;flex-wrap:wrap;gap:10px}.stats-filter-pill,.table-pill{display:inline-flex;align-items:center;min-height:32px;padding:0 12px;border-radius:999px;font-size:.82rem;font-weight:700;white-space:nowrap}.stats-filter-pill{border:1px solid rgba(215,217,235,.98);background:#ffffffe0;color:var(--ink)}.stats-filter-pill--accent{border-color:#5d4eff38;background:#5d4eff1a;color:var(--primary)}.stats-filter-pill--soft{border-color:#bbd96e42;background:#f1f8d9e0;color:#4f5b0f}.table-wrap--roster table{min-width:max(100%,960px)}.stats-roster-table tbody tr:hover{background:#f5f7ffdb}.stats-roster-table td{vertical-align:middle}.stats-roster-table__student{display:flex;flex-direction:column;gap:4px;min-width:200px}.stats-roster-table__student strong{color:var(--ink);font-size:1rem;line-height:1.28}.stats-roster-table__student span{color:var(--text-soft);font-size:.84rem}.stats-roster-table__email{color:var(--primary);font-weight:600}.table-pill{border:1px solid rgba(214,216,235,.94);background:#f7f8fcf5;color:var(--ink)}.table-pill--soft{border-color:#7cd6f94d;background:#e3f4fff0;color:#255287}.stats-roster-table__section strong{color:var(--ink);font-size:.95rem;line-height:1.35}.stats-roster-table__date{color:var(--ink);white-space:nowrap}.course-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,260px),1fr));gap:var(--section-gap)}.course-filter{width:min(360px,100%);margin:-2px 0 2px}.course-filter__field{margin:0}.course-list{display:flex;flex-direction:column;gap:18px}.course-list-card{padding:18px 20px;border-radius:18px;background:linear-gradient(180deg,#fffffffc,#f7f8fcf7);box-shadow:inset 0 1px #ffffffeb,0 14px 22px #1f1a5e0d}.course-list-card__body{display:flex;align-items:flex-start;justify-content:space-between;gap:18px}.course-list-card__main{flex:1 1 auto;min-width:0;display:flex;flex-direction:column;gap:14px}.course-list-card__head{display:flex;flex-direction:column;gap:8px}.course-list-card__head .card__title{margin-bottom:0;font-size:1.28rem;line-height:1.15;letter-spacing:-.03em}.course-list-card__lead{display:flex;align-items:center;flex-wrap:wrap;gap:8px;margin:0;color:#5f5d85;font-size:.96rem;line-height:1.45}.course-list-card__dot{width:4px;height:4px;border-radius:50%;background:#9c9abc}.course-list-card__details{display:flex;flex-direction:column;gap:10px}.course-list-card__detail{display:flex;flex-direction:column;gap:4px}.course-list-card__label{color:#7b79a0;font-size:.74rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase}.course-list-card__detail strong,.course-list-card__detail span:last-child{color:var(--ink);font-size:.95rem;line-height:1.45}.course-list-card__actions{flex:0 0 auto;display:flex;flex-direction:column;align-items:stretch;gap:10px;min-width:132px}.course-list-card__actions .status{justify-content:center;min-height:32px}.course-list-card__button{min-width:132px}.course-editor-card{background:linear-gradient(180deg,#fffffffc,#f4f5fbf5);box-shadow:0 20px 34px #1f1a5e14}.course-editor{display:flex;flex-direction:column;gap:18px}.course-editor__header{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;flex-wrap:wrap}.course-editor__header-copy{flex:1 1 340px;min-width:0}.course-editor__subtitle{margin:8px 0 0;max-width:58ch;color:var(--text-soft);font-size:.92rem;line-height:1.55}.course-editor__reset{align-self:flex-start;min-width:132px}.course-editor__section{display:flex;flex-direction:column;gap:16px;padding:clamp(16px,2vw,22px);border-radius:18px;border:1px solid rgba(214,214,240,.96);background:linear-gradient(180deg,#fffffffa,#f8f8fcf5);box-shadow:inset 0 1px #fffffff5,0 10px 18px #1f1a5e0a}.course-editor__section--soft{background:linear-gradient(180deg,#f7f7fdfa,#fffffffa)}.course-editor__section-head{display:flex;flex-direction:column;gap:6px}.course-editor__section-title{margin:0;color:var(--ink);font-size:1rem;font-weight:800;letter-spacing:-.02em}.course-editor__section-copy{margin:0;max-width:60ch;color:var(--text-soft);font-size:.88rem;line-height:1.5}.course-editor__grid{gap:16px}.course-editor__grid--compact{gap:14px}.course-editor__field{gap:10px}.course-editor .field label{color:var(--ink);font-size:.9rem;letter-spacing:-.01em}.course-editor .field input,.course-editor .field textarea,.course-editor .field select{min-height:48px;border-color:#d9d9f0;background:linear-gradient(180deg,#fffffffc,#fcfcfffc);box-shadow:inset 0 1px #fffffffa,0 8px 16px #1f1a5e08;transition:border-color .18s ease,box-shadow .18s ease,background .18s ease}.course-editor .field input:focus,.course-editor .field textarea:focus,.course-editor .field select:focus{outline:none;border-color:#3c388d6b;box-shadow:0 0 0 4px #3c388d14,0 12px 20px #1f1a5e0f}.course-editor .field textarea{min-height:136px}.course-editor .field__hint{max-width:56ch;line-height:1.45}.course-editor__checkbox-grid{gap:14px}.course-editor__checkbox-card{align-items:center;gap:14px;min-height:96px;padding:16px 18px;border-radius:14px;border-color:#dcdcf1;background:linear-gradient(180deg,#fffffffa,#f8f8fcfa);box-shadow:0 10px 18px #1f1a5e0a;transition:transform .18s ease,border-color .18s ease,box-shadow .18s ease,background .18s ease}.course-editor__checkbox-card:hover{transform:translateY(-1px);border-color:#3c388d3d}.course-editor__checkbox-card:has(input:checked){border-color:#3c388d5c;background:linear-gradient(180deg,#edebfcf5,#fffffffa);box-shadow:0 14px 22px #1f1a5e14}.course-editor__checkbox-card input{flex:0 0 auto;width:24px;height:24px;margin:0;accent-color:var(--primary)}.course-editor__checkbox-copy{display:flex;flex-direction:column;gap:6px;min-width:0}.course-editor__checkbox-copy strong{color:var(--ink);font-size:.96rem;line-height:1.25}.course-editor__checkbox-card:has(input:checked) .course-editor__checkbox-copy strong{color:var(--primary)}.course-editor__checkbox-meta{color:var(--text-soft);font-size:.84rem;line-height:1.45}.course-editor__teacher-results{display:flex;flex-direction:column;gap:12px}.course-editor__teacher-card{padding:16px 18px;background:linear-gradient(180deg,#fffffffc,#f7f8fcfa);box-shadow:0 10px 16px #1f1a5e0a}.course-editor__teacher-card .section-header{align-items:center}.course-editor__attach{min-width:120px}.course-editor__selected{display:flex;flex-direction:column;gap:10px}.course-editor__selected-label{color:#7372a0;font-size:.76rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase}.course-editor__chips .chip{border:1px solid rgba(60,56,141,.12);background:linear-gradient(180deg,#ecebfafa,#f8f8fcfa)}.course-editor__teacher-empty .notice,.course-editor__error .notice{border-radius:14px}.course-editor__teacher-empty .notice{background:linear-gradient(180deg,#e0f8fcfa,#fffffffa)}.course-editor__actions{display:flex;flex-direction:column;gap:12px;padding-top:4px}.course-editor__submit{width:100%;min-height:50px;border-radius:12px;font-size:.98rem;box-shadow:0 18px 28px #3c388d3d}.courses-page{gap:18px}.courses-toolbar-card,.courses-browser-table-card,.courses-browser-side-card,.courses-editor-main,.courses-editor-side{background:linear-gradient(180deg,#fffffffc,#f4f5fbf5);box-shadow:0 20px 34px #1f1a5e14}.courses-browser{gap:16px}.courses-toolbar-card{padding:16px 18px 8px}.courses-toolbar{display:flex;align-items:flex-end;justify-content:space-between;gap:18px;flex-wrap:wrap}.courses-toolbar__search{flex:1 1 320px;max-width:420px}.courses-toolbar__create{min-width:164px}.courses-browser-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(248px,280px);gap:16px;align-items:start}.courses-browser-table-card{padding:0;overflow:hidden}.courses-table-wrap{overflow-x:auto}.courses-table{width:100%;min-width:640px;border-collapse:collapse}.courses-table th,.courses-table td{padding:16px 18px;text-align:left;vertical-align:middle;border-bottom:1px solid rgba(218,216,236,.92)}.courses-table th{color:var(--text-soft);font-size:.78rem;font-weight:700;letter-spacing:0}.courses-table tbody tr:last-child td{border-bottom:none}.courses-table__row{cursor:pointer;transition:background .18s ease,box-shadow .18s ease}.courses-table__row:hover td,.courses-table__row:focus-visible td,.courses-table__row.is-selected td{background:#ecebfa9e}.courses-table__row:hover td:first-child,.courses-table__row:focus-visible td:first-child,.courses-table__row.is-selected td:first-child{box-shadow:inset 3px 0 0 var(--lime)}.courses-table__row:hover .courses-table__course-title,.courses-table__row:focus-visible .courses-table__course-title{color:var(--primary)}.courses-table__row:focus-visible{outline:3px solid rgba(54,204,232,.28);outline-offset:-3px}.courses-table__course-cell{cursor:pointer;width:22%}.courses-table__course-title{display:block;max-width:100%;color:var(--ink);font-size:1rem;font-weight:800;line-height:1.22;overflow-wrap:anywhere;transition:color .18s ease}.courses-table__status{display:inline-flex;align-items:center;justify-content:center;min-height:30px;padding:0 12px;border-radius:999px;font-size:.82rem;font-weight:700;white-space:nowrap}.courses-table__status--active{color:var(--primary);background:var(--lime-soft)}.courses-table__status--draft{color:var(--primary);background:var(--cyan-soft)}.courses-table__status--archived{color:#9b3850;background:#fbe6eafa}.courses-browser-side-card,.courses-editor-side{position:sticky;top:96px}.courses-browser-side-card__body,.courses-editor-side__body{display:flex;flex-direction:column;gap:16px}.courses-browser-side-card__summary{display:flex;flex-direction:column;gap:8px;padding:14px 16px;border:1px solid var(--border);border-radius:16px;background:linear-gradient(180deg,#f8f8fcfa,#fffffffa)}.courses-browser-side-card__summary strong{color:var(--ink);font-size:1rem}.courses-browser-side-card__summary span{color:var(--text-soft);font-size:.9rem;line-height:1.45}.courses-browser-side-card__actions{display:flex;flex-direction:column;gap:10px}.courses-browser-side-card__actions .button{width:100%}.courses-editor-layout{display:grid;grid-template-columns:minmax(0,1fr) minmax(320px,360px);gap:18px;align-items:start}.courses-editor-main{display:flex;flex-direction:column;gap:24px;padding:clamp(20px,2.2vw,28px)}.courses-editor-main .course-editor__section{padding:0 0 24px;border:0;border-radius:0;background:transparent;box-shadow:none;border-bottom:1px solid rgba(218,216,236,.88)}.courses-editor-main .course-editor__section:last-child{padding-bottom:0;border-bottom:none}.courses-editor-main__section-head{display:flex;flex-direction:column;gap:6px}.courses-editor-main .card__title{font-size:1.12rem;line-height:1.25}.courses-editor-main .course-editor__grid{gap:14px 16px}.courses-editor-main .course-editor__field{gap:8px}.courses-editor-main .course-editor__field--search{max-width:420px}.courses-editor-main__meta-grid{align-items:end}.courses-editor-main .course-editor__selected{gap:12px}.courses-editor-main .course-editor__teacher-results{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:12px}.courses-editor-main .course-editor__teacher-card{padding:14px 16px}.courses-editor-main .course-editor__teacher-card .section-header{align-items:flex-start}.courses-editor-main .course-editor__attach{min-width:112px}.courses-editor-main .course-editor__checkbox-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(252px,1fr));gap:12px}.courses-editor-main .course-editor__checkbox-card{position:relative;min-height:94px;padding:0;border:1px solid rgba(218,216,236,.95);border-radius:14px;background:linear-gradient(180deg,#fffffffc,#f8f8fcfa);box-shadow:0 10px 18px #1f1a5e0a;cursor:pointer;overflow:hidden}.courses-editor-main .course-editor__checkbox-card:hover{transform:translateY(-1px);border-color:#3c388d47;box-shadow:0 14px 24px #1f1a5e12}.courses-editor-main .course-editor__checkbox-card input{position:absolute;inset:0;width:100%;height:100%;margin:0;opacity:0;cursor:pointer}.courses-editor-main .course-editor__checkbox-copy{position:relative;display:flex;flex-direction:column;align-items:flex-start;width:100%;min-height:94px;gap:7px;padding:15px 16px 15px 48px;border-radius:inherit;background:transparent;transition:background .18s ease}.courses-editor-main .course-editor__checkbox-copy:before{content:"";position:absolute;left:16px;top:18px;width:18px;height:18px;border-radius:6px;border:1px solid rgba(60,56,141,.28);background:#fff;box-shadow:inset 0 0 0 4px #fff}.courses-editor-main .course-editor__checkbox-copy:after{content:"";position:absolute;left:22px;top:21px;width:5px;height:9px;border-right:2px solid #fff;border-bottom:2px solid #fff;opacity:0;transform:rotate(42deg)}.courses-editor-main .course-editor__checkbox-copy strong{color:var(--primary);font-size:.92rem;line-height:1.22}.courses-editor-main .course-editor__checkbox-meta{display:block;color:var(--text-soft);font-size:.84rem;line-height:1.35}.courses-editor-main .course-editor__checkbox-card:has(input:checked) .course-editor__checkbox-copy{background:linear-gradient(90deg,rgba(159,197,58,.14),transparent 44%),linear-gradient(180deg,#ecebfafa,#fffffffc)}.courses-editor-main .course-editor__checkbox-card:has(input:checked){border-color:#3c388d57;box-shadow:0 14px 24px #1f1a5e14}.courses-editor-main .course-editor__checkbox-card:has(input:checked) .course-editor__checkbox-copy:before{border-color:var(--primary);background:var(--primary)}.courses-editor-main .course-editor__checkbox-card:has(input:checked) .course-editor__checkbox-copy:after{opacity:1}.courses-editor-main .course-editor__checkbox-card:has(input:checked) .course-editor__checkbox-copy strong{color:var(--ink)}.flow-schedule-list{display:grid;gap:12px;margin-top:18px}.flow-schedule-list__head{display:flex;align-items:flex-end;justify-content:space-between;gap:16px}.flow-schedule-list__head h3{margin:0;color:var(--ink);font-size:1rem;line-height:1.25}.flow-schedule-list__head p{max-width:360px;margin:0;color:var(--text-soft);font-size:.86rem;line-height:1.35;text-align:right}.flow-schedule-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,380px),1fr));gap:12px}.flow-schedule-card{display:grid;gap:12px;padding:14px;border:1px solid rgba(60,56,141,.16);border-radius:14px;background:linear-gradient(90deg,rgba(159,197,58,.1),transparent 44%),#ffffffeb;box-shadow:0 12px 22px #1f1a5e0d}.flow-schedule-card strong,.flow-schedule-card span{display:block}.flow-schedule-card strong{color:var(--ink);font-size:.92rem;line-height:1.25}.flow-schedule-card span{margin-top:3px;color:var(--text-soft);font-size:.82rem;line-height:1.35}.flow-schedule-card__fields{display:grid;grid-template-columns:minmax(0,1fr) minmax(96px,.36fr);gap:10px}.flow-schedule-card__fields label{display:grid;gap:6px;min-width:0}.flow-schedule-card__fields label span{margin:0;color:var(--muted);font-size:.68rem;font-weight:850;letter-spacing:.08em;line-height:1.2;text-transform:uppercase}.flow-schedule-card__fields input{width:100%}.flow-schedule-card__fields input:disabled{color:var(--text-soft);background:#eff0f7eb;cursor:not-allowed}.flow-schedule-card__unlimited{display:inline-flex;align-items:center;width:fit-content;gap:8px;color:var(--text-soft);font-size:.84rem;font-weight:700;cursor:pointer}.flow-schedule-card__unlimited input{width:17px;height:17px;margin:0;accent-color:var(--primary)}.flow-schedule-card__unlimited span{margin:0;color:inherit;font-size:inherit}.flow-schedule-card__teacher-search{gap:6px}.flow-schedule-card__teacher-results{display:grid;max-height:190px;gap:6px;padding:6px;border:1px solid rgba(60,56,141,.14);border-radius:10px;background:#fff;overflow-y:auto}.flow-schedule-card__teacher-results .selection-row{min-height:52px;padding:9px 10px;text-align:left}.flow-schedule-card__teachers{gap:7px}.flow-schedule-card__teachers .chip-button{max-width:100%;white-space:normal;text-align:left}.flow-schedule-card__teacher-empty{margin:0;color:var(--text-soft);font-size:.82rem}.courses-editor-side{min-width:0;padding:22px}.courses-editor-side__panel{display:flex;flex-direction:column;gap:18px}.courses-editor-side__header{display:flex;align-items:center;justify-content:space-between;gap:12px}.courses-editor-side__header .card__title{line-height:1.2}.courses-editor-side__fields{display:grid;gap:14px;padding:14px;border:1px solid rgba(218,216,236,.9);border-radius:16px;background:linear-gradient(180deg,#f8f8fcfa,#fffffffa)}.courses-editor-side .field{gap:7px}.courses-editor-side .field label{color:var(--ink);font-size:.86rem}.courses-editor-side .field select{min-height:48px;border-color:#dad8ecf5;background-color:#fff}.courses-editor-side__actions{display:grid;gap:10px}.courses-editor-side__actions .button{width:100%;min-height:46px;margin-top:0}.courses-editor-side__summary{display:flex;flex-direction:column;gap:12px;padding:14px 16px;border:1px solid var(--border);border-radius:16px;background:linear-gradient(180deg,#f8f8fcfa,#fffffffa)}.courses-editor-side__summary-item{display:flex;justify-content:space-between;gap:12px;color:var(--text-soft);font-size:.9rem}.courses-editor-side__summary-item strong{color:var(--ink);font-size:.92rem}.faculties-page{gap:18px}.faculties-toolbar-card,.faculties-browser-table-card,.faculties-browser-side-card,.faculties-editor-main,.faculties-editor-side{background:linear-gradient(180deg,#fffffffc,#f4f5fbf5);box-shadow:0 20px 34px #1f1a5e14}.faculties-browser{gap:16px}.faculties-toolbar-card{padding:16px 18px 8px}.faculties-toolbar{display:flex;align-items:flex-end;justify-content:space-between;gap:18px;flex-wrap:wrap}.faculties-toolbar__search{flex:1 1 320px;max-width:420px}.faculties-toolbar__create{min-width:188px}.faculties-browser-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(248px,280px);gap:16px;align-items:start}.faculties-browser-table-card{padding:0;overflow:hidden}.faculties-table-wrap{overflow-x:auto}.faculties-table{width:100%;min-width:720px;border-collapse:collapse}.faculties-table th,.faculties-table td{padding:16px 18px;text-align:left;vertical-align:middle;border-bottom:1px solid rgba(218,216,236,.92)}.faculties-table th{color:var(--text-soft);font-size:.78rem;font-weight:700;letter-spacing:-.01em}.faculties-table tbody tr:last-child td{border-bottom:none}.faculties-table__row{transition:background .18s ease}.faculties-table__row.is-selected td{background:#ecebfa9e}.faculties-table__row.is-selected td:first-child{box-shadow:inset 3px 0 0 var(--lime)}.faculties-table__name-cell{cursor:pointer}.faculties-table__name-button{display:block;width:100%;padding:0;border:none;background:transparent;color:var(--ink);font:inherit;font-size:1rem;font-weight:800;line-height:1.25;text-align:left}.faculties-table__name-button:hover{color:var(--primary)}.faculties-table__status{display:inline-flex;align-items:center;justify-content:center;min-height:30px;padding:0 12px;border-radius:999px;font-size:.82rem;font-weight:700;white-space:nowrap}.faculties-table__status--active{color:var(--primary);background:var(--lime-soft)}.faculties-table__status--archived{color:#9b3850;background:#fbe6eafa}.faculties-browser-side-card,.faculties-editor-side{position:sticky;top:96px}.faculties-browser-side-card__body,.faculties-editor-side__body{display:flex;flex-direction:column;gap:16px}.faculties-browser-side-card__summary,.faculties-editor-side__summary{display:flex;flex-direction:column;gap:8px;padding:14px 16px;border:1px solid var(--border);border-radius:16px;background:linear-gradient(180deg,#f8f8fcfa,#fffffffa)}.faculties-browser-side-card__summary strong{color:var(--ink);font-size:1rem}.faculties-browser-side-card__summary span{color:var(--text-soft);font-size:.9rem;line-height:1.45}.faculties-browser-side-card__actions{display:flex;flex-direction:column;gap:10px}.faculties-browser-side-card__actions .button{width:100%}.faculties-editor-layout{display:grid;grid-template-columns:minmax(0,1.18fr) minmax(260px,.82fr);gap:16px;align-items:start}.faculties-editor-main{display:flex;flex-direction:column;gap:22px}.faculties-editor-main .directory-editor__section{padding:0 0 22px;border:0;border-radius:0;background:transparent;box-shadow:none;border-bottom:1px solid rgba(218,216,236,.88)}.faculties-editor-main .directory-editor__section:last-child{padding-bottom:0;border-bottom:none}.faculties-editor-main__section-head{display:flex;flex-direction:column;gap:6px}.faculties-editor-main .card__title{font-size:1.12rem}.faculties-editor-side__summary{gap:12px}.faculties-editor-side__summary-item{display:flex;justify-content:space-between;gap:12px;color:var(--text-soft);font-size:.9rem}.faculties-editor-side__summary-item strong{color:var(--ink);font-size:.92rem}.faculties-editor-side__actions{display:flex;gap:10px;margin-top:auto}.faculties-editor-side__actions .button{flex:1 1 0}.directories-segmented{align-self:flex-start;max-width:100%}.directories-workspace-tabs{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-top:-4px;margin-bottom:2px}.directories-workspace-tabs .directories-segmented{padding:6px;background:#3c388d14;box-shadow:inset 0 0 0 1px #3c388d0a}.directories-workspace-tabs .directories-segmented button{min-height:34px;padding-inline:17px}.directories-workspace-tabs .directories-segmented button.active{box-shadow:0 8px 18px #1f1a5e17}.directories-workspace{align-items:start}.directories-browser-card,.directories-editor-card{position:relative;min-height:100%;overflow:hidden;background:linear-gradient(180deg,#fffffffc,#f4f5fbf5);box-shadow:0 20px 34px #1f1a5e14}.directories-browser-card:before,.directories-editor-card:before{content:"";position:absolute;inset:0 0 auto;height:152px;pointer-events:none}.directories-browser-card:before{background:radial-gradient(circle at 0 0,rgba(54,204,232,.12),transparent 38%),radial-gradient(circle at 100% 0,rgba(159,197,58,.12),transparent 32%)}.directories-editor-card:before{background:radial-gradient(circle at 100% 0,rgba(159,197,58,.14),transparent 42%),radial-gradient(circle at 12% 0,rgba(54,204,232,.1),transparent 34%)}.directories-browser,.directory-editor{position:relative;z-index:1;display:flex;flex-direction:column;gap:18px}.directories-browser__header,.directory-editor__header{gap:18px}.directories-browser__header>div:first-child,.directory-editor__header>div:first-child{flex:1 1 320px;min-width:0}.directories-browser__header .card__title{margin-bottom:8px;font-size:1.32rem;letter-spacing:-.03em}.directories-browser__search{flex:1 1 260px;min-width:0;max-width:320px;width:100%}.directories-browser__search input{min-height:48px;border-radius:14px;border-color:#d9d9f0;background:linear-gradient(180deg,#fffffffc,#fcfcfffc);box-shadow:inset 0 1px #fffffffa,0 8px 16px #1f1a5e08;transition:border-color .18s ease,box-shadow .18s ease,background .18s ease}.directories-browser__search input:focus{outline:none;border-color:#3c388d6b;box-shadow:0 0 0 4px #3c388d14,0 12px 20px #1f1a5e0f}.directories-record-list{gap:14px}.directory-record-card{padding:clamp(18px,2vw,22px);border-radius:20px;background:linear-gradient(180deg,#fffffffa,#f8f8fcf5);box-shadow:inset 0 1px #fffffff5,0 12px 18px #1f1a5e0a;transition:transform .18s ease,border-color .18s ease,box-shadow .18s ease}.directory-record-card:hover{transform:translateY(-2px);border-color:#3c388d2e;box-shadow:inset 0 1px #fffffffa,0 18px 26px #1f1a5e14}.directory-record-card .section-header{align-items:center;gap:18px 20px}.directory-record-card .card__title{margin-bottom:10px;font-size:clamp(1.04rem,1.4vw,1.28rem);line-height:1.18;letter-spacing:-.02em}.directory-record-card__labels{display:flex;flex-wrap:wrap;align-items:center;gap:8px 10px;margin-bottom:10px}.directory-record-card__labels .card__title{margin-bottom:0}.directory-record-card__year,.course-editor__checkbox-year{flex:0 0 auto;display:inline-flex;align-items:center;min-height:26px;padding:4px 10px;border-radius:999px;background:#edf7d0f5;color:var(--primary);font-size:.76rem;font-weight:850;line-height:1}.directory-record-card .card__meta{max-width:56ch;line-height:1.55}.directory-record-card__actions{flex:0 0 auto;display:flex;flex-direction:column;align-items:stretch;gap:10px;min-width:132px}.directory-record-card__actions .status{justify-content:center;min-height:32px}.directory-record-card__actions .button{min-width:132px}.directory-editor .eyebrow{margin:0 0 8px;color:#7372a0}.directory-editor__header .card__title{font-size:clamp(1.35rem,1.8vw,1.7rem);letter-spacing:-.03em}.directory-editor__grid{gap:16px}.directory-editor__field{gap:12px}.directory-editor__year-help{margin-top:4px;color:#75739a;font-size:.82rem;line-height:1.45}.directory-editor .field label{color:var(--ink);font-size:.9rem;letter-spacing:-.01em}.directory-editor .field input,.directory-editor .field textarea,.directory-editor .field select{min-height:48px;border-color:#d9d9f0;background:linear-gradient(180deg,#fffffffc,#fcfcfffc);box-shadow:inset 0 1px #fffffffa,0 8px 16px #1f1a5e08;transition:border-color .18s ease,box-shadow .18s ease,background .18s ease}.directory-editor .field input:focus,.directory-editor .field textarea:focus,.directory-editor .field select:focus{outline:none;border-color:#3c388d6b;box-shadow:0 0 0 4px #3c388d14,0 12px 20px #1f1a5e0f}.directory-editor .field textarea{min-height:136px}.directory-editor__section{display:flex;flex-direction:column;gap:16px;padding:clamp(16px,2vw,22px);border-radius:18px;border:1px solid rgba(214,214,240,.96);background:linear-gradient(180deg,#fffffffa,#f8f8fcf5);box-shadow:inset 0 1px #fffffff5,0 10px 18px #1f1a5e0a}.directory-editor__section--soft{background:linear-gradient(180deg,#f7f7fdfa,#fffffffa)}.directory-editor__section-head{align-items:flex-start;gap:16px}.directory-editor__section-head>div:first-child{flex:1 1 320px;min-width:0}.directory-editor__section .card__title{margin-bottom:6px;font-size:1rem;letter-spacing:-.02em}.directory-editor__section .card__meta{max-width:58ch;font-size:.88rem;line-height:1.55}.directory-editor__rule-row{gap:14px;padding:16px;border-radius:16px;border:1px solid rgba(223,223,243,.98);background:#ffffffc7;box-shadow:inset 0 1px #fffffff5}.directory-editor__rule-remove{grid-column:1 / -1;display:flex;justify-content:flex-end}.directory-editor__checkbox-grid{gap:14px}.directory-editor__checkbox-card{align-items:center;gap:14px;min-height:96px;padding:16px 18px;border-radius:14px;border-color:#dcdcf1;background:linear-gradient(180deg,#fffffffa,#f8f8fcfa);box-shadow:0 10px 18px #1f1a5e0a;transition:transform .18s ease,border-color .18s ease,box-shadow .18s ease,background .18s ease}.directory-editor__checkbox-card:hover{transform:translateY(-1px);border-color:#3c388d3d}.directory-editor__checkbox-card:has(input:checked){border-color:#3c388d5c;background:linear-gradient(180deg,#edebfcf5,#fffffffa);box-shadow:0 14px 22px #1f1a5e14}.directory-editor__checkbox-card input{flex:0 0 auto;width:24px;height:24px;margin:0;accent-color:var(--primary)}.directory-editor__checkbox-copy{display:flex;flex-direction:column;gap:6px;min-width:0}.directory-editor__checkbox-copy strong{color:var(--ink);font-size:.96rem;line-height:1.25}.directory-editor__checkbox-card:has(input:checked) .directory-editor__checkbox-copy strong{color:var(--primary)}.directory-editor__checkbox-meta{color:var(--text-soft);font-size:.84rem;line-height:1.45}.directory-editor__submit{width:100%;min-height:50px;border-radius:12px;font-size:.98rem;box-shadow:0 18px 28px #3c388d3d}.chip-list{display:flex;flex-wrap:wrap;gap:8px}.chip-button{display:inline-flex;align-items:center;min-height:36px;padding:7px 12px;border:1px solid rgba(60,56,141,.16);border-radius:999px;background:#f6f6fcf5;color:var(--primary);font-weight:700;cursor:pointer}.course-card{position:relative;display:flex;min-height:236px;background:#fffffffa;box-shadow:0 12px 18px #1f1a5e14;overflow:hidden}.course-card--current{border:2px solid rgb(var(--lime-rgb) / .92);box-shadow:0 12px 18px #1f1a5e14,0 0 0 1px rgb(var(--lime-rgb) / .22)}.course-card--current:after{content:"";position:absolute;inset:1px;border-radius:inherit;border:1px solid rgb(var(--lime-rgb) / .34);opacity:.58;transform:scale(.985);pointer-events:none;animation:course-card-current-pulse 2.2s ease-out infinite}.course-card__body{display:flex;flex:1 1 auto;flex-direction:column;gap:12px;width:100%;min-width:0}.course-card__header,.course-card__header-block{min-height:78px}.course-card__header{display:grid;grid-template-columns:minmax(0,1fr) 18px;align-items:start;gap:10px}.course-card__heading{width:100%;min-width:0;overflow:hidden}.course-card__title{display:-webkit-box;min-height:2.64em;max-width:100%;margin-bottom:6px;overflow:hidden;line-height:1.32;text-overflow:ellipsis;-webkit-box-orient:vertical;-webkit-line-clamp:2}.course-card__eyebrow,.course-card__teachers,.course-card__seat-meta{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.course-card__meta{display:block;overflow:visible;white-space:normal}.course-card__eyebrow{display:block}.course-card__eyebrow-row{display:flex;align-items:center;justify-content:space-between;gap:10px;min-width:0;margin-bottom:6px}.course-card__eyebrow-row .course-card__eyebrow{min-width:0;margin:0}.study-year-badge{flex:0 0 auto;display:inline-flex;align-items:center;min-height:26px;padding:5px 10px;border:1px solid rgba(101,37,128,.14);border-radius:999px;background:#efe6f5d1;color:var(--secondary);font-size:.74rem;font-weight:850;line-height:1;white-space:nowrap}.course-card__description{display:-webkit-box;min-height:4.35em;margin:0;overflow:hidden;line-height:1.45;text-overflow:ellipsis;-webkit-box-orient:vertical;-webkit-line-clamp:3}.course-card__teachers{display:block;min-height:1.5em}.course-card__footer{display:flex;flex-direction:column;gap:12px;margin-top:auto}.course-card__actions{flex-direction:column;flex-wrap:nowrap;align-items:stretch;gap:10px;margin-top:2px}.course-card__actions .button{width:100%;min-width:0;margin-top:0;flex:0 0 auto}.section-availability{position:relative;width:14px;height:14px;border-radius:999px;flex:0 0 auto;justify-self:end;margin-top:5px;border:2px solid rgba(255,255,255,.96);isolation:isolate}.section-availability:after{content:"";position:absolute;inset:-5px;border-radius:999px;border:2px solid var(--section-availability-ring, rgba(159, 197, 58, .28));opacity:.45;transform:scale(.82);animation:section-availability-pulse 2.2s ease-out infinite}.section-availability--success{--section-availability-ring: rgba(159, 197, 58, .34);background:var(--lime);box-shadow:0 0 0 4px #9fc53a29,0 10px 18px #9fc53a2e}.section-availability--warning{--section-availability-ring: rgba(54, 204, 232, .38);background:var(--warning);box-shadow:0 0 0 4px #36cce829,0 10px 18px #36cce82e}.course-card--teacher{min-height:210px;border-color:#6525802e;background:linear-gradient(180deg,#efe6f5d6,#fffffffa)}.teacher-course-cards{grid-template-columns:repeat(auto-fit,minmax(min(100%,320px),1fr))}.course-card--teacher-grouped{min-height:260px}.teacher-course-card__campaigns{margin-top:6px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.course-card--teacher .progress span{background:linear-gradient(90deg,var(--secondary) 0%,var(--secondary) 58%,var(--primary) 100%)}.course-card__schedule{margin:0;color:var(--primary);font-size:.92rem;font-weight:850;line-height:1.35}.course-card__option-field{gap:6px;margin:0}.course-card__option-field label{color:var(--text-soft);font-size:.72rem;font-weight:800;text-transform:uppercase}.course-card__option-field select{width:100%;min-width:0;min-height:42px;padding-block:8px;color:var(--primary);font-size:.88rem;font-weight:750}.teacher-flow-list{display:grid;gap:8px}.teacher-flow-row,.teacher-flow-summary__item{width:100%;border:1px solid rgba(101,37,128,.14);background:#ffffffb8;color:var(--ink);text-align:left;cursor:pointer;transition:border-color .18s ease,box-shadow .18s ease,transform .18s ease}.teacher-flow-row{display:grid;gap:7px;padding:10px 12px;border-radius:12px}.teacher-flow-row:hover,.teacher-flow-summary__item:hover{transform:translateY(-1px);border-color:rgb(var(--role-accent-rgb) / .32);box-shadow:0 10px 18px #1f1a5e12}.teacher-flow-row.active{border-color:rgb(var(--role-accent-rgb) / .4);background:#fffffff5;box-shadow:0 12px 20px rgb(var(--role-accent-rgb) / .08)}.teacher-flow-row span:first-child,.teacher-flow-summary__item{display:flex;align-items:center;justify-content:space-between;gap:10px}.teacher-flow-row strong,.teacher-flow-summary__item span{overflow:hidden;color:var(--ink);font-size:.88rem;font-weight:800;line-height:1.25;text-overflow:ellipsis;white-space:nowrap}.teacher-flow-row small,.teacher-flow-summary__item strong{flex:0 0 auto;color:var(--primary);font-size:.8rem;font-weight:850}.teacher-flow-row__context{display:block;min-width:0;overflow:hidden;color:#6b6890;font-size:.74rem;font-weight:850;letter-spacing:.06em;line-height:1.25;text-overflow:ellipsis;text-transform:uppercase;white-space:nowrap}.teacher-flow-row em,.teacher-flow-summary__item em{display:block;min-width:0;overflow:hidden;color:var(--text-soft);font-size:.78rem;font-style:normal;font-weight:750;line-height:1.3;text-overflow:ellipsis;white-space:nowrap}.teacher-flow-row__bar,.teacher-flow-summary__item i{display:block;width:100%;height:6px;overflow:hidden;border-radius:999px;background:#1f1a5e12}.teacher-flow-row__bar i,.teacher-flow-summary__item i b{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,var(--secondary),var(--primary))}.teacher-flow-roster-preview{display:grid;gap:10px;padding:12px;border:1px solid rgba(101,37,128,.12);border-radius:14px;background:#ffffffd1;box-shadow:inset 0 1px #ffffffd1}.teacher-flow-roster-preview__list{display:grid;gap:7px;max-height:190px;overflow:auto;padding-right:2px}.teacher-flow-roster-preview__row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px;align-items:center;min-height:34px;padding:7px 9px;border-radius:10px;background:#f8f8fceb}.teacher-flow-roster-preview__row strong{min-width:0;overflow:hidden;color:var(--ink);font-size:.85rem;line-height:1.25;text-overflow:ellipsis;white-space:nowrap}.teacher-flow-roster-preview__row span{color:var(--text-soft);font-size:.78rem;font-weight:800;white-space:nowrap}.teacher-flow-roster-preview__button{width:100%}.teacher-group-tabs{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:10px}.teacher-group-tab{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:12px;min-height:48px;padding:11px 13px;border:1px solid rgba(101,37,128,.14);border-radius:12px;background:#f8f8fcf0;color:var(--ink);font-weight:800;text-align:left}.teacher-group-tab__title{display:grid;gap:2px;min-width:0}.teacher-group-tab__title strong,.teacher-group-tab__title small{overflow:hidden;line-height:1.2;text-overflow:ellipsis;white-space:nowrap}.teacher-group-tab__title strong{color:var(--ink);font-size:.88rem;font-weight:850}.teacher-group-tab__title small{color:var(--text-soft);font-size:.72rem;font-weight:850}.teacher-group-tab>strong{flex:0 0 auto;color:var(--primary);font-size:.84rem}.teacher-group-tab>small{grid-column:1 / -1;overflow:hidden;color:var(--text-soft);font-size:.76rem;font-weight:750;line-height:1.25;text-overflow:ellipsis;white-space:nowrap}.teacher-group-tab.active{border-color:rgb(var(--role-accent-rgb) / .34);background:linear-gradient(180deg,#efe6f5db,#fffffff5);box-shadow:0 12px 20px rgb(var(--role-accent-rgb) / .08)}.teacher-flow-summary{display:grid;gap:9px}.teacher-flow-summary__item{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px 10px;padding:12px;border-radius:12px}.teacher-flow-summary__item i,.teacher-flow-summary__item em{grid-column:1 / -1}.teacher-flow-summary__item.active{border-color:rgb(var(--role-accent-rgb) / .36);background:#fffffff0;box-shadow:0 10px 16px rgb(var(--role-accent-rgb) / .08)}.selection-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:12px}.selection-row{display:flex;flex-direction:column;gap:6px;width:100%;padding:14px 16px;border:1px solid var(--border-soft);border-radius:8px;background:#f8f8fceb;color:var(--text);text-align:left}.selection-row strong{color:var(--ink)}.selection-row span{color:var(--text-soft);font-size:.85rem}.selection-row.active{background:#fff;border-color:#3c388d47;box-shadow:0 10px 16px #1f1a5e0f}.role-shell .selection-row.active{border-color:rgb(var(--role-accent-rgb) / .3);box-shadow:0 10px 16px rgb(var(--role-accent-rgb) / .08)}.chips{display:flex;flex-wrap:wrap;gap:8px}.chip{display:inline-flex;align-items:center;gap:8px;padding:8px 12px;border-radius:999px;background:var(--surface-2);color:var(--primary)}.chip--soft{background:var(--surface-muted)}.chip button{border:none;background:transparent;padding:0;color:inherit}.checkbox-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:10px}.checkbox-card{display:flex;gap:10px;align-items:flex-start;padding:14px;border-radius:8px;border:1px solid var(--border);background:#fffffff5}.detail-copy{margin:0;color:var(--text);line-height:1.56}.detail-block{display:flex;flex-direction:column;gap:10px;padding-top:18px;border-top:1px solid var(--border-soft)}.profile-identity{display:flex;align-items:center;flex-wrap:wrap;gap:24px;padding-bottom:24px;margin-bottom:24px;border-bottom:1px solid var(--border-soft)}.profile-avatar{display:inline-flex;align-items:center;justify-content:center;flex:0 0 84px;inline-size:84px;block-size:84px;min-inline-size:84px;min-block-size:84px;aspect-ratio:1;border-radius:50%;background:var(--cyan-soft);color:var(--primary);font-size:1.4rem;font-weight:700}.profile-avatar--teacher{background:#efe6f5f5;color:var(--secondary)}.profile-fields{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,220px),1fr));gap:14px}.profile-field{display:flex;flex-direction:column;gap:6px;padding:14px;border-radius:8px;background:var(--surface-muted);border:1px solid var(--border-soft)}.profile-field span{color:var(--text-soft);font-size:.78rem;text-transform:uppercase;letter-spacing:.12em}.profile-field strong{color:var(--ink)}.list,.rule-list{margin:0;padding-left:18px;color:var(--text);line-height:1.55}.timeline-list{display:flex;flex-direction:column;gap:18px}.timeline-list__item{--timeline-dot-color: var(--primary);display:grid;grid-template-columns:16px minmax(0,1fr);gap:14px;align-items:start}.timeline-list__item span{width:8px;height:8px;margin-top:7px;border-radius:50%;background:var(--timeline-dot-color)}.timeline-list--rail{gap:22px}.timeline-list--rail .timeline-list__item{position:relative;grid-template-columns:18px minmax(0,1fr);gap:16px}.timeline-list--rail .timeline-list__item span{position:relative;z-index:1;margin-top:6px;box-shadow:0 0 0 4px #fffffffa}.timeline-list--rail .timeline-list__item:before{content:"";position:absolute;left:3px;top:16px;bottom:-22px;width:2px;border-radius:999px;background:var(--timeline-dot-color)}.timeline-list__item.timeline-list__item--muted{--timeline-dot-color: var(--border)}.timeline-list--rail .timeline-list__item:last-child:before{display:none}.timeline-list__item span.is-muted{background:var(--timeline-dot-color)}.timeline-list__item p{margin:4px 0 0;color:var(--text-soft)}.stat-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:14px}.stat-card{padding:18px;border-radius:var(--radius-md);background:linear-gradient(180deg,#fffffffa,#f8f8fcf5);border:1px solid var(--border)}.stat-card strong{display:block;font-size:1.8rem;margin-top:8px;color:var(--ink)}.auth-layout{position:relative;width:100%;min-height:100vh;display:grid;grid-template-columns:minmax(120px,1fr) minmax(360px,520px) minmax(120px,1fr);align-items:center;gap:clamp(18px,4vw,56px);padding:clamp(24px,5vw,72px);overflow:hidden;background:linear-gradient(135deg,#3c388d1a,#fff0 38%),linear-gradient(225deg,#36cce81f,#fff0 34%),#f7f8fd}.auth-layout:before{content:"";position:absolute;inset:0;pointer-events:none;background-image:linear-gradient(rgba(60,56,141,.07) 1px,transparent 1px),linear-gradient(90deg,rgba(60,56,141,.07) 1px,transparent 1px);background-size:44px 44px;-webkit-mask-image:linear-gradient(90deg,rgba(0,0,0,.6),transparent 24%,transparent 76%,rgba(0,0,0,.6));mask-image:linear-gradient(90deg,rgba(0,0,0,.6),transparent 24%,transparent 76%,rgba(0,0,0,.6))}.auth-panel{position:relative;z-index:1;display:flex;align-items:center;justify-content:center;min-width:0}.auth-card{width:min(100%,520px);padding:clamp(28px,4vw,42px);border-radius:8px;border:1px solid rgba(60,56,141,.16);background:#fffffff5;box-shadow:0 28px 70px #3c388d2e}.auth-brand{display:grid;gap:12px;margin-bottom:28px}.auth-brand .pill{width:fit-content;background:#3c388d1a;color:var(--primary)}.auth-brand .page-title{max-width:440px;color:var(--primary);font-size:clamp(2rem,4vw,3.15rem)}.auth-tusur-button{position:relative;display:inline-flex;align-items:center;justify-content:center;gap:10px;width:100%;min-height:48px;padding:0 18px;border:1px solid rgba(60,56,141,.3);border-radius:6px;background:linear-gradient(180deg,#fffffffa,#ecebfaf0),#fff;color:var(--primary);font-size:.96rem;font-weight:800;text-decoration:none;box-shadow:inset 0 1px #fffffff5,0 10px 18px #1f1a5e12;transition:border-color .18s ease,background .18s ease,box-shadow .18s ease,color .18s ease,transform .18s ease}.auth-tusur-button:before{content:none}.auth-tusur-button:hover{transform:translateY(-1px);border-color:#3c388d75;background:linear-gradient(180deg,#fff,#e5e4f9f5),#fff;box-shadow:inset 0 1px #fffffffa,0 14px 24px #1f1a5e1c}.auth-tusur-button:focus-visible{outline:3px solid rgba(54,204,232,.24);outline-offset:3px}.auth-tusur-button[aria-disabled=true]{cursor:not-allowed;opacity:.68;transform:none;box-shadow:none}.auth-motion{position:relative;z-index:1;min-height:min(620px,calc(100vh - 96px));overflow:hidden;border-inline:1px solid rgba(60,56,141,.12);opacity:.94}.auth-motion--right{transform:scaleX(-1)}.auth-motion__track,.auth-motion__signal,.auth-motion__tile{position:absolute;display:block}.auth-motion__track{left:18%;right:18%;height:1px;background:linear-gradient(90deg,transparent,rgba(60,56,141,.75),transparent);transform-origin:center;animation:auth-track-drift 8s ease-in-out infinite}.auth-motion__track--a{top:22%;transform:rotate(-18deg)}.auth-motion__track--b{top:50%;animation-delay:-2.4s;transform:rotate(14deg)}.auth-motion__track--c{top:74%;animation-delay:-5.2s;transform:rotate(-10deg)}.auth-motion__tile{width:clamp(44px,6vw,86px);aspect-ratio:1;border:2px solid rgba(60,56,141,.18);background:#ffffff8a;clip-path:polygon(50% 0,100% 50%,50% 100%,0 50%);animation:auth-tile-float 10s ease-in-out infinite}.auth-motion__tile--a{top:12%;left:34%;border-color:#36cce875}.auth-motion__tile--b{top:42%;left:12%;animation-delay:-3s;border-color:#9fc53a80}.auth-motion__tile--c{right:22%;bottom:12%;animation-delay:-6s;border-color:#65258059}.auth-motion__signal{width:7px;height:86px;border-radius:4px;background:linear-gradient(180deg,#36cce800,#36cce8db,#9fc53a00);animation:auth-signal-scan 5.5s linear infinite}.auth-motion__signal--a{top:-12%;left:28%}.auth-motion__signal--b{top:-22%;right:32%;animation-delay:-2.1s;background:linear-gradient(180deg,#65258000,#652580bd,#3c388d00)}.split-card{width:100%;padding:clamp(20px,3vw,32px)}.segmented{display:inline-flex;flex-wrap:wrap;padding:6px;border-radius:999px;background:#3c388d14;gap:6px}.segmented button{min-height:40px;padding:0 16px;border:none;border-radius:999px;background:transparent;color:var(--text-soft);font-weight:700}.segmented button.active{background:#fff;color:var(--primary);box-shadow:0 8px 20px #1f1a5e14}.loading-dots{display:inline-flex;gap:5px}.loading-dots span{width:8px;height:8px;border-radius:999px;background:var(--primary);animation:pulse 1s infinite ease-in-out}.loading-dots span:nth-child(2){animation-delay:.15s}.loading-dots span:nth-child(3){animation-delay:.3s}@keyframes pulse{0%,to{opacity:.3;transform:translateY(0)}50%{opacity:1;transform:translateY(-3px)}}@keyframes auth-track-drift{0%,to{opacity:.36;translate:0 0}50%{opacity:.82;translate:0 14px}}@keyframes auth-tile-float{0%,to{transform:translateY(0) rotate(0)}50%{transform:translateY(-22px) rotate(14deg)}}@keyframes auth-signal-scan{0%{transform:translateY(-20vh);opacity:0}18%,72%{opacity:1}to{transform:translateY(86vh);opacity:0}}@keyframes section-availability-pulse{0%{opacity:.52;transform:scale(.78)}70%{opacity:.08;transform:scale(1.28)}to{opacity:0;transform:scale(1.36)}}@keyframes course-card-current-pulse{0%{opacity:.48;transform:scale(.988)}70%{opacity:.08;transform:scale(1)}to{opacity:0;transform:scale(1.008)}}.status-label,.course-state-badge{display:inline-flex;align-items:center;width:fit-content;min-height:28px;padding:5px 10px;border:1px solid transparent;border-radius:999px;font-size:.75rem;font-weight:850;line-height:1;white-space:nowrap}.status-label,.status-label--open,.course-state-badge--available,.course-state-badge--current{border-color:#9fc53a61;background:var(--lime-soft);color:#4f5b0f}.status-label--scheduled,.course-state-badge--warning{border-color:#36cce857;background:var(--cyan-soft);color:#245c72}.status-label--closed{border-color:var(--border);background:var(--surface-muted);color:var(--text-soft)}.course-state-badge--full{border-color:#c7445a47;background:var(--danger-soft);color:var(--danger)}.student-period-status{display:flex;align-items:center;justify-content:space-between;gap:18px;border-left:4px solid var(--lime);background:#fffffff0}.student-period-status--scheduled{border-left-color:var(--cyan)}.student-period-status--closed{border-left-color:var(--text-quiet)}.student-period-status__copy{display:grid;gap:7px;min-width:0}.student-period-status__copy strong{color:var(--ink);font-size:1.02rem}.student-period-status__copy p{margin:0;color:var(--text-soft)}.student-period-status>.button{flex:0 0 auto;margin:0}.student-course-filters{display:grid;grid-template-columns:minmax(220px,1.5fr) repeat(3,minmax(160px,1fr));gap:12px;align-items:end;padding:14px;border:1px solid var(--border-soft);border-radius:8px;background:var(--surface-muted)}.student-course-filters__toggle{grid-column:1 / -1;justify-self:start}.course-card__header{grid-template-columns:minmax(0,1fr) auto}.course-card__occupancy{color:var(--text-quiet)}.teacher-period-toolbar,.teacher-roster-toolbar{display:grid;align-items:end;gap:16px}.teacher-period-toolbar{grid-template-columns:minmax(280px,1fr) auto}.teacher-period-toolbar__status{display:flex;align-items:center;justify-content:flex-end;gap:10px;color:var(--text-soft);font-size:.84rem}.teacher-roster-selectors{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.teacher-roster-filterbar{display:grid;grid-template-columns:minmax(220px,1.5fr) minmax(180px,.8fr) auto;align-items:end;gap:12px;padding:14px;border:1px solid var(--border-soft);border-radius:8px;background:var(--surface-muted)}.teacher-roster-filterbar .button{margin:0}.teacher-roster-count{margin:0;color:var(--text-soft);font-size:.86rem;font-weight:700}.teacher-roster-actions,.teacher-roster-result-meta{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.teacher-roster-actions .button{margin:0}.teacher-roster-result-meta{justify-content:space-between;color:var(--text-quiet)}.teacher-roster-mobile-list{display:none}.profile-single-column{width:min(760px,100%)}.admin-stats-tabs{position:sticky;top:92px;z-index:4;align-self:flex-start;overflow-x:auto;background:#fffffff5;box-shadow:0 10px 24px #1f1a5e14}.admin-stats-tabs button{white-space:nowrap}.period-wizard-review{display:grid;gap:16px;margin-top:18px;padding:18px;border:1px solid rgba(159,197,58,.38);border-radius:8px;background:linear-gradient(180deg,#eef6d79e,#fffffff5)}.period-wizard-review__head{display:flex;align-items:center;justify-content:space-between;gap:16px}.period-wizard-review__head h4{margin:4px 0 0;color:var(--ink)}.period-wizard-review__facts{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin:0}.period-wizard-review__facts>div,.period-wizard-review__course{display:grid;gap:5px;padding:12px;border:1px solid var(--border-soft);border-radius:8px;background:#fff}.period-wizard-review__facts dt{color:var(--text-soft);font-size:.72rem;font-weight:800;text-transform:uppercase}.period-wizard-review__facts dd{margin:0;color:var(--ink);font-weight:750}.period-wizard-review__courses{display:grid;gap:8px}.period-wizard-review__course span{color:var(--text-soft)}.course-visibility-preview{display:grid;gap:4px;padding:12px 14px;border:1px solid var(--border-soft);border-left-width:4px;border-radius:8px;background:var(--surface-muted)}.course-visibility-preview.is-visible{border-left-color:var(--lime)}.course-visibility-preview.is-hidden{border-left-color:var(--text-quiet)}.course-visibility-preview strong{color:var(--ink)}.course-visibility-preview span{color:var(--text-soft);font-size:.82rem}@media(max-width:1180px){.grid--2-detail,.grid--2-profile,.auth-layout,.faculties-browser-grid,.faculties-editor-layout,.courses-browser-grid,.courses-editor-layout,.admin-body,.grid--2,.grid--3{grid-template-columns:1fr}.role-rail,.admin-rail,.page-intro__head{align-items:stretch}.role-rail{grid-template-columns:1fr}.admin-rail,.page-intro__head{flex-direction:column}.user-cluster,.role-nav{justify-content:space-between}.auth-motion{display:none}.admin-sidebar{position:static;height:auto;align-self:auto;min-height:auto;border-radius:18px}.admin-sidebar>.stack{position:static;top:auto;min-height:auto}.courses-browser-side-card,.faculties-browser-side-card,.faculties-editor-side,.courses-editor-side{position:static;top:auto}}@media(max-width:980px){.role-rail,.admin-rail{padding:20px}.brand-capsule{width:100%}.brand-capsule__text{flex-basis:100%;margin-left:0}.page-intro__actions,.confirm-modal__actions{width:100%;justify-content:flex-start}.directories-browser__search,.faculties-toolbar__search,.courses-toolbar__search{max-width:none}.course-editor__reset{width:100%}.student-course-filters{grid-template-columns:repeat(2,minmax(0,1fr))}.period-wizard-review__facts{grid-template-columns:1fr}}@media(prefers-reduced-motion:reduce){.role-nav__item,.button{transition:none}.role-page-transition{animation:none}.section-availability:after{animation:none;opacity:.3;transform:scale(1)}.course-card--current:after{animation:none;opacity:.28;transform:none}.confirm-modal,.confirm-modal__card{animation:none}}@media(max-width:720px){.legacy-ui .section-header,.legacy-ui .page-intro__head,.legacy-ui .profile-identity{flex-wrap:wrap}.legacy-ui .page-intro__actions,body.legacy-ui-body .confirm-modal__actions{width:100%;flex-direction:column;align-items:stretch}.legacy-ui .page-intro__actions>*,body.legacy-ui-body .confirm-modal__actions>*{width:100%}.role-nav{overflow:visible;flex-wrap:nowrap}.admin-sidebar nav{display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}.sidebar-status{margin-top:12px}.workspace-frame{width:calc(100% - 16px);padding-top:8px}.page{width:calc(100% - 16px)}.admin-rail,.auth-panel,.split-card{padding:20px}.role-rail{display:grid;gap:10px;min-height:0;padding:0;margin-bottom:12px;overflow:visible;border:0;border-radius:0;background:transparent;box-shadow:none;-webkit-backdrop-filter:none;backdrop-filter:none}.role-rail:before{display:none}.role-rail .brand-capsule{display:flex;justify-content:center;width:min(100%,360px);min-height:58px;margin:0 auto;padding:8px 12px;border:1px solid var(--border-soft);border-radius:999px;background:#ffffffeb;box-shadow:0 10px 22px #1f1a5e14}.role-rail .brand-capsule__chip{min-width:88px;min-height:38px;padding-inline:14px;border-radius:999px;font-size:.8rem}.role-rail .brand-capsule__accent{display:block;width:5px;height:32px;margin:0 8px;border-radius:999px}.role-rail .brand-capsule__text{display:flex;flex:0 1 auto;margin-left:0}.role-rail .brand-capsule__text strong{font-size:1rem}.role-rail .brand-capsule__text span{font-size:.65rem}.role-rail .role-nav{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));width:100%;min-height:52px;gap:6px;padding:6px;overflow:hidden;border-radius:999px}.role-rail .role-nav__item{min-width:0;min-height:40px;padding:0 8px;border-radius:999px;font-size:.78rem;white-space:nowrap}.role-shell .role-rail .role-nav__item.active{overflow:hidden;border-radius:999px}.page-intro__actions,.confirm-modal__actions{flex-direction:column;align-items:stretch}.page-intro__actions>*,.confirm-modal__actions>*{width:100%}.faculties-toolbar,.faculties-editor-side__actions,.courses-toolbar,.courses-editor-side__actions{flex-direction:column;align-items:stretch}.faculties-toolbar__create,.faculties-editor-side__actions .button,.courses-toolbar__create,.courses-editor-side__actions .button{width:100%}.course-editor__section{padding:16px}.course-editor__checkbox-card{min-height:auto;align-items:flex-start}.course-editor__teacher-card .section-header{align-items:stretch}.course-list-card__body{flex-direction:column}.course-list-card__actions,.course-list-card__button{width:100%;min-width:0}.faculties-table,.courses-table{min-width:560px}.faculties-browser-side-card__actions,.courses-browser-side-card__actions,.course-editor__attach,.course-editor__reset{width:100%}.period-editor-card__actions>*,.campaign-switcher-card__header>.button,.period-copy-form>.button{width:100%}.period-wizard-stepper{grid-template-columns:1fr}.period-wizard-stepper__item{width:100%}.period-wizard-panel{padding:16px}.period-wizard-panel__head{flex-direction:column}.period-wizard-template-select{width:100%;max-width:none}.period-template-grid,.period-course-grid,.period-groups-grid{grid-template-columns:1fr}.period-switch-card .status{align-self:flex-start}.cluster-actions{width:100%;justify-content:flex-start}.cluster-actions .button{width:100%}.period-list__item,.period-list__content{grid-template-columns:1fr}.period-list__course-badge{justify-content:flex-start;width:fit-content}.period-list__item .period-switch-card__actions{width:100%}.period-detail-card__offering-head{flex-direction:column}.period-detail-card__offering-metrics,.period-config-card__group-grid,.period-config-card__group-list{grid-template-columns:1fr}.stats-roster__actions{width:100%}.stats-roster__actions>*{flex:1 1 180px;justify-content:center}.stats-filter-panel{padding:16px}.stats-filter-grid{grid-template-columns:1fr}.directory-record-card__actions{width:100%;flex-direction:row;flex-wrap:wrap}.directory-record-card__actions .button{flex:1 1 160px;min-width:0}.directory-editor__header .button,.directory-editor__section-head .button,.directory-editor__rule-remove .button{width:100%}.directory-editor__rule-row{padding:14px}.course-editor__submit{min-height:46px}.hero-panel--period,.hero-panel--courses{min-height:auto;padding:22px 20px 18px}.period-panel__intro{gap:16px}.period-panel__body{margin-top:16px;gap:20px}.period-panel__actions{padding-top:18px}.period-panel__button{width:auto;min-width:0;min-height:38px}.course-occupancy-chart{gap:10px;min-height:132px;padding:16px 0 0}.course-occupancy-chart__bar{width:min(24px,100%)}.course-occupancy-chart__label{font-size:.72rem}.profile-avatar{flex-basis:76px;inline-size:76px;block-size:76px;min-inline-size:76px;min-block-size:76px}.admin-directory-switch{grid-template-columns:1fr}.admin-directory-switch__button{min-height:68px}.role-nav__item{flex:0 0 auto}.user-cluster{width:100%;justify-content:space-between}.table-wrap table{min-width:max(100%,560px)}.profile-fields,.selection-grid{grid-template-columns:1fr}.student-period-status,.teacher-period-toolbar,.teacher-roster-heading{align-items:stretch;grid-template-columns:1fr;flex-direction:column}.student-period-status>.button,.teacher-roster-actions,.teacher-roster-actions .button{width:100%}.teacher-period-toolbar__status{justify-content:flex-start;flex-wrap:wrap}.teacher-roster-selectors,.teacher-roster-filterbar{grid-template-columns:1fr}.teacher-roster-filterbar .button{width:100%}.teacher-roster-actions{display:grid;grid-template-columns:1fr 1fr}.teacher-roster-actions .button:last-child{grid-column:1 / -1}.admin-stats-tabs{top:72px;width:100%;flex-wrap:nowrap}.period-wizard-review__head{align-items:flex-start;flex-direction:column}th,td{padding:12px}}@media print{.role-header,.page-intro,.teacher-roster-toolbar,.teacher-roster-actions,.teacher-roster-filterbar,.toast-notice{display:none!important}.app-shell,.page-main,.teacher-roster-card{padding:0!important;border:0!important;box-shadow:none!important;background:#fff!important}.teacher-roster-table{overflow:visible}.teacher-roster-table table{min-width:100%}}@media(max-width:1180px){.admin-rail{display:grid;grid-template-columns:96px minmax(0,1fr);align-items:center;gap:10px;min-height:68px;padding:10px;border-radius:14px}.admin-rail .brand-capsule{width:96px;min-height:46px;padding:4px}.admin-rail .brand-capsule__chip{min-width:88px;min-height:38px;padding-inline:9px;font-size:.78rem}.admin-rail .brand-capsule__accent,.admin-rail .brand-capsule__text{display:none}.admin-rail .user-cluster{width:auto;min-width:0;justify-content:flex-end;gap:10px}.admin-body{gap:10px}.admin-sidebar{padding:6px;border-radius:12px;overflow:hidden}.admin-sidebar>.stack{gap:0}.admin-sidebar .eyebrow,.admin-sidebar .sidebar-status{display:none}.admin-sidebar nav{display:flex;flex-direction:row;grid-template-columns:none;gap:4px;overflow-x:auto;scrollbar-width:thin}.admin-sidebar .sidebar-link{flex:0 0 auto;min-height:40px;padding:9px 13px}}@media(max-width:560px){.admin-rail{display:grid;grid-template-columns:80px minmax(0,1fr);align-items:center;gap:8px;min-height:60px;padding:8px;border-radius:12px}.admin-rail .brand-capsule{width:80px;min-height:42px;padding:4px}.admin-rail .brand-capsule__chip{min-width:72px;min-height:34px;padding-inline:7px;font-size:.72rem}.admin-rail .brand-capsule__accent,.admin-rail .brand-capsule__text,.admin-rail .user-cluster__meta{display:none}.admin-rail .user-cluster{width:auto;min-width:0;justify-content:flex-end;gap:8px}.admin-rail .avatar-chip{width:36px;height:36px}.admin-rail .logout-link{padding:7px;font-size:.72rem}.admin-body{gap:8px}.admin-sidebar{padding:6px;border-radius:12px;overflow:hidden}.admin-sidebar>.stack{gap:0}.admin-sidebar .eyebrow,.admin-sidebar .sidebar-status{display:none}.admin-sidebar nav{display:flex;flex-direction:row;grid-template-columns:none;gap:4px;overflow-x:auto;scrollbar-width:thin}.admin-sidebar .sidebar-link{flex:0 0 auto;min-height:38px;padding:8px 12px}.auth-layout{min-height:100svh;overflow-y:auto;padding:16px}.confirm-modal{align-items:flex-start;padding:12px;overflow-y:auto}.confirm-modal__card{max-height:calc(100svh - 24px);overflow:auto;border-radius:18px}.table-wrap{margin-inline:-16px;border-radius:0}.stats-roster-table__email,td{overflow-wrap:anywhere}.card,.dashboard-metric,.sidebar-status{padding-left:16px;padding-right:16px}.segmented{width:100%}.segmented button{flex:1 1 calc(50% - 6px)}.role-rail .role-nav{border-radius:999px}.workspace-frame--role{width:calc(100% - 8px);padding-top:4px}.page--role{width:calc(100% - 8px)}.student-course-filters{grid-template-columns:1fr;padding:12px}.student-course-filters__toggle{grid-column:auto}.course-card{min-height:auto}.course-card__description{display:none}.course-card__header{min-height:auto}.course-card__actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}.course-card__actions .button:only-child{grid-column:1 / -1}.course-card__occupancy{display:none}.course-state-badge{min-height:25px;padding:4px 8px;font-size:.68rem}.teacher-roster-table{display:none}.teacher-roster-mobile-list{display:grid;gap:10px}.teacher-roster-mobile-card{display:grid;gap:5px;padding:14px;border:1px solid var(--border-soft);border-radius:8px;background:var(--surface-muted)}.teacher-roster-mobile-card strong{color:var(--ink)}.teacher-roster-mobile-card span,.teacher-roster-mobile-card small{color:var(--text-soft)}.teacher-roster-mobile-card a{color:var(--primary);overflow-wrap:anywhere}.toast-notice{right:16px;bottom:16px}.table-wrap table{min-width:max(100%,520px)}.table-wrap th:first-child,.table-wrap td:first-child{position:sticky;left:0;z-index:1;background:#fff;box-shadow:1px 0 0 var(--border-soft)}.table-wrap th:first-child{z-index:2;background:var(--surface-muted)}.period-workspace__accent{padding-left:0}.period-preview-callout{padding:20px 18px}.directory-record-card{border-radius:18px}.table-wrap--roster table{min-width:max(100%,720px)}}body.legacy-ui-body #root{zoom:1}@supports not (zoom: 1){body.legacy-ui-body #root{width:100%;min-height:100%;transform:none}}.legacy-ui .workspace-frame{width:min(1440px,calc(100% - 20px));margin:0 auto;padding:20px 0 32px}.legacy-ui .page{width:min(1280px,calc(100% - 32px));margin:0 auto;padding:0 0 48px}.legacy-ui .page--wide{width:min(1440px,calc(100% - 24px))}.legacy-ui .page--role{width:min(1036px,100%)}.legacy-ui .grid{gap:20px}.legacy-ui .stack{gap:16px}.legacy-ui .eyebrow{margin:0}.legacy-ui .button--primary,.legacy-ui .button--secondary,.legacy-ui .button--ghost,.legacy-ui .button--danger{margin-top:0}.legacy-ui .card{padding:20px}.legacy-ui .card__meta{font-size:1rem}.legacy-ui .section-header{flex-wrap:nowrap}.legacy-ui .section-header>*{min-width:auto}.legacy-ui .role-rail{gap:18px;min-height:96px;padding:26px 32px 20px;margin-bottom:20px}.legacy-ui .role-rail:before{background:linear-gradient(90deg,var(--primary) 0 62%,var(--lime) 62% 74%,var(--cyan) 74% 88%,rgba(255,255,255,0) 88% 100%)}.legacy-ui.role-shell--teacher .role-rail:before{background:linear-gradient(90deg,var(--secondary) 0 62%,var(--primary) 62% 74%,var(--cyan) 74% 88%,rgba(255,255,255,0) 88% 100%)}.legacy-ui .brand-capsule{flex-wrap:nowrap;gap:16px;row-gap:0;min-width:auto;padding:14px 20px 14px 16px;border:1px solid var(--border-soft);border-radius:36px;background:#fff;box-shadow:0 10px 18px #1f1a5e14}.legacy-ui .brand-capsule__chip{flex:0 0 auto;border-radius:24px}.legacy-ui .brand-capsule__accent{flex:0 0 10px;width:10px;height:30px;border-radius:5px}.legacy-ui .brand-capsule__text{margin-left:0;min-width:auto;flex:0 1 auto}.legacy-ui .brand-capsule__text strong{font-size:1.7rem;line-height:1}.legacy-ui .brand-capsule__text span{font-size:.78rem;max-width:none}.legacy-ui .role-nav{flex-wrap:nowrap;max-width:none}.legacy-ui .user-cluster{flex-wrap:nowrap;justify-content:flex-start}.legacy-ui .user-cluster__meta{min-width:auto;text-align:initial}.legacy-ui .page-intro__head{flex-wrap:nowrap}.legacy-ui .page-intro__head>*{min-width:auto}.legacy-ui .page-intro__subtitle{max-width:860px}.legacy-ui .page-intro__actions{flex-wrap:nowrap;justify-content:flex-start}.legacy-ui .table-wrap table{min-width:100%}.legacy-ui .notice--warning{margin:0}.legacy-ui .metric-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:20px}.legacy-ui .profile-identity{flex-wrap:nowrap}.legacy-ui .profile-avatar{flex:0 0 84px;inline-size:84px;block-size:84px;min-inline-size:84px;min-block-size:84px;aspect-ratio:1}.legacy-ui .profile-fields{grid-template-columns:repeat(2,minmax(0,1fr))}.legacy-ui .auth-layout{gap:clamp(18px,4vw,56px);grid-template-columns:minmax(120px,1fr) minmax(360px,520px) minmax(120px,1fr)}.legacy-ui .auth-panel{padding:0}.legacy-ui .auth-card{padding:32px}.legacy-ui .auth-login-form{gap:12px}.legacy-ui .segmented,body.legacy-ui-body .confirm-modal__actions{flex-wrap:nowrap}@media(max-width:1180px){.legacy-ui .metric-grid,.legacy-ui .course-cards,.legacy-ui .grid--2-detail,.legacy-ui .grid--2-profile,.legacy-ui .toolbar-grid,.legacy-ui .auth-layout,.legacy-ui .grid--2,.legacy-ui .grid--3{grid-template-columns:1fr}.legacy-ui .role-rail,.legacy-ui .page-intro__head{align-items:stretch}.legacy-ui .auth-layout{grid-template-columns:minmax(0,1fr)}.legacy-ui .auth-motion{display:none}.legacy-ui .role-rail{grid-template-columns:1fr}.legacy-ui .page-intro__head{flex-direction:column}.legacy-ui .user-cluster,.legacy-ui .role-nav{justify-content:space-between}}@media(max-width:980px){.legacy-ui .role-rail{padding:26px 32px 20px}.legacy-ui .brand-capsule{width:auto}.legacy-ui .brand-capsule__text{flex-basis:auto}.legacy-ui .page-intro__actions,body.legacy-ui-body .confirm-modal__actions{width:auto;justify-content:flex-start}}@media(max-width:720px){.legacy-ui .workspace-frame{width:calc(100% - 16px);padding-top:8px}.legacy-ui .page{width:calc(100% - 16px)}.legacy-ui .role-rail,.legacy-ui .auth-panel,.legacy-ui .split-card{padding:20px}.legacy-ui .brand-capsule{width:100%;justify-content:space-between;flex-wrap:nowrap;gap:14px}.legacy-ui .brand-capsule__chip{min-width:96px;padding-inline:16px}.legacy-ui .brand-capsule__accent{flex-basis:10px}.legacy-ui .brand-capsule__text{flex:1 1 auto;min-width:0}.legacy-ui .brand-capsule__text strong{font-size:clamp(1.35rem,7vw,1.7rem)}.legacy-ui .brand-capsule__text span{white-space:normal}.legacy-ui .profile-avatar{flex-basis:76px;inline-size:76px;block-size:76px;min-inline-size:76px;min-block-size:76px}.legacy-ui .page-intro__actions{flex-direction:row;align-items:center}.legacy-ui .page-intro__actions>*{width:auto}body.legacy-ui-body .confirm-modal__actions{flex-direction:row}body.legacy-ui-body .confirm-modal__actions>*{width:auto}.legacy-ui .role-nav{width:auto}.legacy-ui .role-nav__item{flex:0 0 auto}.legacy-ui .user-cluster{width:auto}.legacy-ui .table-wrap table{min-width:100%}.legacy-ui .profile-fields,.legacy-ui .selection-grid{grid-template-columns:1fr}.legacy-ui th,.legacy-ui td{padding:12px}}@media(max-width:560px){.legacy-ui .role-rail{grid-template-columns:80px minmax(0,1fr);gap:6px;min-height:60px;padding:8px;border-radius:12px}.legacy-ui .role-rail .brand-capsule{width:80px;min-height:42px;padding:4px}.legacy-ui .role-rail .brand-capsule__chip{min-width:72px;min-height:34px;padding-inline:7px;font-size:.72rem}.legacy-ui .role-rail .brand-capsule__accent,.legacy-ui .role-rail .brand-capsule__text{display:none}.legacy-ui .role-rail .role-nav{justify-self:stretch;width:100%;min-height:42px;padding:3px;gap:3px;overflow-x:auto}.legacy-ui .role-rail .role-nav__item{min-height:34px;padding-inline:7px;border-radius:7px;font-size:.7rem}}@media(min-width:561px)and (max-width:1180px){.legacy-ui .course-cards{grid-template-columns:repeat(2,minmax(0,1fr))}.legacy-ui .metric-grid{grid-template-columns:repeat(auto-fit,minmax(180px,1fr))}}
