:root{--color-primary:#293d7c;--color-primary-hover:#22346d;--color-primary-soft:#e8eff8;--color-primary-muted:#5b6a9b;--color-link:#2f73c8;--color-page:#f0f2f6;--color-page-alt:#f3f6fa;--color-surface:#fff;--color-border:#d9dde5;--color-border-soft:#e8eaf0;--color-text:#111318;--color-text-muted:#6d7280;--color-text-subtle:#9298a4;--color-success:#2e7d5b;--color-success-soft:#e6f3ee;--color-danger:#b64040;--color-danger-soft:#f8e8e8;--color-neutral:#7b808a;--color-neutral-soft:#eceef2;--shadow-auth:0 10px 30px #1118271a;--shadow-card:0 2px 8px #11182714;--radius-md:6px;--radius-lg:8px}*{box-sizing:border-box}html,body{min-height:100%;margin:0}body{color:var(--color-text);background:var(--color-page);font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}a{color:var(--color-link);text-decoration:none}a:hover{text-decoration:underline}button,input,textarea,select{font:inherit}.auth-page{background:var(--color-page-alt);min-height:100vh;position:relative;overflow:hidden}.auth-topbar{z-index:2;color:#fff;background:var(--color-primary);align-items:center;gap:14px;height:98px;padding:0 32px;display:flex;position:relative}.topbar-title{font-weight:700}.topbar-mark,.brand-mark{justify-content:center;align-items:center;width:66px;height:54px;display:inline-flex;overflow:hidden}.topbar-mark img,.brand-mark img,.auth-emblem img{object-fit:contain;width:100%;height:100%}.topbar-mark img{width:82px;max-width:none;height:72px}.brand-lockup .brand-mark img{width:52px;max-width:none;height:45px}.auth-backdrop{z-index:0;position:absolute;inset:98px 0 0;overflow:hidden}.dot-field{opacity:.46;background-image:radial-gradient(circle,#d7dde8 2.5px,#0000 3px);background-size:31px 28px;width:190px;height:150px;position:absolute;top:242px;left:164px}.arc-one,.arc-two{border:1px solid #dae1ed6b;border-radius:50%;position:absolute}.arc-one{width:500px;height:500px;top:224px;left:-230px}.arc-two{width:640px;height:640px;top:520px;left:-260px}.campus-illustration{opacity:.44;width:585px;height:310px;position:absolute;bottom:195px;right:-5px}.cloud,.cloud:before,.cloud:after{content:"";background:#dce4f1;display:block;position:absolute}.cloud{border-radius:999px;height:20px}.cloud:before,.cloud:after{border-radius:50%}.cloud-one{width:102px;top:40px;right:120px}.cloud-one:before{width:50px;height:50px;bottom:0;right:18px}.cloud-one:after{width:30px;height:30px;bottom:0;right:58px}.cloud-two{width:150px;top:96px;left:120px}.cloud-two:before{width:62px;height:62px;bottom:0;left:28px}.cloud-two:after{width:44px;height:44px;bottom:0;left:82px}.tree{width:74px;height:134px;position:absolute;bottom:40px;left:54px}.tree:before{content:"";background:#d7e0ee;border-radius:48% 52% 44% 56%;width:60px;height:60px;position:absolute;bottom:42px;left:8px;box-shadow:20px 30px #d7e0ee,-10px 42px #d7e0ee}.tree:after{content:"";background:#c8d3e7;width:5px;height:90px;position:absolute;bottom:0;left:36px;transform:rotate(1deg);box-shadow:8px 40px 0 -1px #c8d3e7}.building-side{clip-path:polygon(0 0,100% 0,100% 100%,0 100%);background:#d8e1ef;width:150px;height:170px;position:absolute;bottom:40px;left:152px}.building-side:before{content:"";background-color:#0000;background-image:linear-gradient(#edf2fa 0 0),linear-gradient(#edf2fa 0 0),linear-gradient(#edf2fa 0 0),linear-gradient(#edf2fa 0 0);background-position:0 0,62px 0,0 64px,62px 64px;background-repeat:no-repeat;background-size:24px 36px,24px 36px,24px 36px,24px 36px;background-attachment:scroll,scroll,scroll,scroll;background-origin:padding-box,padding-box,padding-box,padding-box;background-clip:border-box,border-box,border-box,border-box;position:absolute;inset:40px 28px 24px}.building-main{clip-path:polygon(0 25%,50% 0,100% 25%,100% 100%,0 100%);background:#dfe7f3;border-top:15px solid #c9d4e8;width:300px;height:205px;position:absolute;bottom:40px;right:0}.building-main:before{content:"";background:#c9d4e8;height:12px;position:absolute;top:52px;left:24px;right:24px;box-shadow:0 38px #c9d4e8,0 112px #c9d4e8}.building-main:after{content:"";background:#f3f6fa;border-radius:50%;width:24px;height:24px;position:absolute;top:24px;left:128px}.building-main span{background:#f3f6fa;width:22px;height:84px;position:absolute;top:78px}.building-main span:first-child{left:50px}.building-main span:nth-child(2){left:104px}.building-main span:nth-child(3){left:176px}.building-main span:nth-child(4){left:230px}.ground{clip-path:polygon(0 58%,100% 30%,100% 100%,0 100%);background:#dbe4f1;height:40px;position:absolute;bottom:0;left:86px;right:0}.auth-card{z-index:1;border-radius:var(--radius-lg);background:var(--color-surface);width:min(638px,100vw - 48px);box-shadow:var(--shadow-auth);margin:53px auto 0;position:relative;overflow:hidden}.auth-card-body{padding:48px 54px 61px}.auth-emblem{background:var(--color-primary-soft);border-radius:50%;justify-content:center;align-items:center;width:82px;height:82px;margin:0 auto 24px;display:flex}.auth-emblem img{width:66px;height:66px}.auth-card h1{text-align:center;margin:0;font-size:32px;line-height:1.15}.auth-card p{color:var(--color-text-muted);text-align:center;margin:12px 0 34px;font-size:18px}.login-form{gap:22px;display:grid}.field-group{gap:9px;display:grid}.field-group label{color:var(--color-text);font-size:14px;font-weight:700}.input-shell{border:1px solid var(--color-border);border-radius:var(--radius-md);background:#fff;grid-template-columns:36px 1fr auto;align-items:center;min-height:56px;transition:border-color .15s,box-shadow .15s;display:grid}.input-shell-plain{grid-template-columns:1fr}.input-shell:focus-within{border-color:var(--color-primary-muted);box-shadow:0 0 0 3px #293d7c21}.input-shell-readonly{background:#f8fafc}.input-shell-error{border-color:var(--color-danger)}.input-shell input{width:100%;min-width:0;height:54px;color:var(--color-text);border:0;outline:0;font-size:17px}.input-shell-plain input{padding:0 16px}.input-shell textarea{resize:vertical;width:100%;min-width:0;color:var(--color-text);background:0 0;border:0;outline:0;padding:14px 16px;font-size:15px;line-height:1.5}.input-shell input::placeholder,.input-shell textarea::placeholder{color:var(--color-text-subtle)}.input-icon{width:22px;height:22px;color:var(--color-text-subtle);justify-self:center}.input-icon path,.input-icon rect,.password-toggle path,.password-toggle circle{fill:none;stroke:currentColor;stroke-linecap:round;stroke-linejoin:round;stroke-width:2px}.password-toggle{border-radius:var(--radius-md);width:44px;height:44px;color:var(--color-text-subtle);cursor:pointer;background:0 0;border:0;place-items:center;margin-right:6px;display:inline-grid}.password-toggle:hover,.password-toggle:focus-visible{color:var(--color-primary);background:var(--color-primary-soft);outline:0}.password-toggle svg{width:22px;height:22px}.form-row{justify-content:space-between;align-items:center;gap:16px;margin-top:-3px;font-size:16px;display:flex}.checkbox-label{color:var(--color-text);align-items:center;gap:10px;font-weight:400;display:inline-flex}.checkbox-label input{width:20px;height:20px;accent-color:var(--color-primary);margin:0}.submit-button{border-radius:var(--radius-md);color:#fff;background:var(--color-primary);cursor:pointer;border:0;width:100%;min-height:58px;margin-top:9px;font-size:19px;font-weight:700}.submit-button:hover{background:var(--color-primary-hover)}.submit-button:focus-visible{outline-offset:3px;outline:3px solid #293d7c47}.submit-button:disabled{cursor:wait;opacity:.75}.field-error{color:var(--color-danger);text-align:left;margin:0;font-size:13px}.form-alert{border-radius:var(--radius-md);color:var(--color-danger);background:var(--color-danger-soft);border:1px solid #b6404047;padding:12px 14px;font-size:14px}.auth-card-body>.form-alert{margin:24px 0 -8px}.change-password-form{gap:18px}.change-password-form .field-hint{color:var(--color-text-muted);text-align:center;margin:0;font-size:14px;line-height:1.4}.change-password-signout{padding-top:16px}.change-password-signout .secondary-button{justify-content:center;width:100%}.auth-card-footer{border-top:1px solid var(--color-border-soft);color:var(--color-text-muted);text-align:center;padding:28px 24px 36px;font-size:16px}.admin-shell{background:var(--color-page);min-height:100vh}.admin-header{color:#fff;background:var(--color-primary);justify-content:space-between;align-items:center;height:76px;padding:0 32px;display:flex}.brand-lockup{color:#fff;align-items:center;gap:14px;font-weight:700;text-decoration:none;display:inline-flex}.brand-lockup:hover{text-decoration:none}.brand-lockup .brand-mark{width:42px;height:30px}.admin-nav{align-items:center;gap:10px;display:flex}.admin-nav-link{border-radius:var(--radius-md);color:#ffffffdb;align-items:center;min-height:38px;padding:0 14px;font-size:14px;font-weight:600;text-decoration:none;display:inline-flex}.admin-nav-menu{position:relative}.admin-nav-menu>summary{cursor:pointer;list-style:none}.admin-nav-menu>summary::-webkit-details-marker{display:none}.admin-nav-menu>summary:after{content:"";border-top:5px solid;border-left:4px solid #0000;border-right:4px solid #0000;width:0;height:0;margin-left:8px}.admin-nav-menu-panel{z-index:20;border-radius:var(--radius-md);background:#fff;border:1px solid #293d7c24;min-width:190px;padding:8px;display:none;position:absolute;top:calc(100% + 8px);left:0;box-shadow:0 18px 40px #121b332e}.admin-nav-menu[open] .admin-nav-menu-panel,.admin-nav-menu:hover .admin-nav-menu-panel,.admin-nav-menu:focus-within .admin-nav-menu-panel{gap:4px;display:grid}.admin-nav-menu-link{border-radius:var(--radius-sm);min-height:36px;color:var(--color-text);white-space:nowrap;align-items:center;padding:0 10px;font-size:14px;font-weight:700;text-decoration:none;display:flex}.admin-nav-menu-link:hover,.admin-nav-menu-link:focus-visible{color:var(--color-primary);background:var(--color-surface-strong);text-decoration:none}.admin-nav-link:hover{color:#fff;background:#ffffff1a;text-decoration:none}.admin-nav-link-active{color:#fff;background:#ffffff26}.admin-nav-link-disabled{cursor:default;opacity:.54}.admin-nav-link-disabled:hover{color:#ffffffdb;background:0 0}.admin-account{color:#fff;align-items:center;font-size:14px;font-weight:600;display:flex;position:relative}.admin-avatar,.table-avatar{color:#fff;background:var(--color-primary);border-radius:50%;flex:none;place-items:center;font-weight:800;display:inline-grid}.admin-avatar{width:36px;height:36px;color:var(--color-primary);background:#fff}.account-menu{position:relative}.account-menu-trigger{cursor:pointer;border-radius:999px;justify-content:center;align-items:center;min-width:44px;min-height:44px;padding:4px;list-style:none;display:inline-flex}.account-menu-trigger::-webkit-details-marker{display:none}.account-menu-trigger:hover,.account-menu-trigger:focus-visible,.account-menu[open] .account-menu-trigger{background:#ffffff1f;outline:none}.account-menu-panel{z-index:20;border-radius:var(--radius-md);width:260px;color:var(--color-text);background:#fff;border:1px solid #1e2d5c29;position:absolute;top:calc(100% + 10px);right:0;overflow:hidden;box-shadow:0 18px 45px #14204a38}.account-menu-user{border-bottom:1px solid var(--color-border-soft);gap:3px;padding:14px 16px;display:grid}.account-menu-user strong{font-size:14px}.account-menu-user span,.account-menu-link small{color:var(--color-text-muted);font-size:12px;font-weight:600}.account-menu-section{padding:6px;display:grid}.account-menu-link{border-radius:var(--radius-sm,4px);color:var(--color-text);gap:2px;padding:10px;text-decoration:none;display:grid}.account-menu-link:hover,.account-menu-link:focus-visible,.account-menu-link[aria-current=page]{background:#eef2ff;text-decoration:none}.account-menu-signout-form{border-top:1px solid var(--color-border-soft);padding:6px}.account-menu-signout{border-radius:var(--radius-sm,4px);width:100%;color:var(--color-danger);cursor:pointer;text-align:left;background:0 0;border:0;padding:10px;font-weight:700}.account-menu-signout:hover,.account-menu-signout:focus-visible{background:var(--color-danger-soft);outline:none}.admin-logout{border-radius:var(--radius-md);color:#fff;cursor:pointer;background:#ffffff1f;border:1px solid #ffffff57;height:38px;padding:0 18px}.admin-logout:hover,.admin-logout:focus-visible{background:#ffffff2e}.admin-main{border-radius:var(--radius-lg);width:min(980px,100vw - 48px);box-shadow:var(--shadow-card);background:#fff;margin:32px auto;padding:32px}.admin-main .eyebrow{color:var(--color-primary-muted);text-transform:uppercase;margin:0 0 8px;font-size:13px;font-weight:700}.admin-main h1{margin:0 0 12px;font-size:32px}.admin-main p:last-child{max-width:680px;color:var(--color-text-muted);margin:0;line-height:1.6}.admin-main-action{margin-top:24px}.admin-main-action-row{flex-wrap:wrap;gap:12px;margin-top:24px;display:flex}.admin-main-action-row .admin-main-action{margin-top:0}.page-frame{padding:28px 32px 48px}.page-heading{margin-bottom:24px}.page-heading-row{justify-content:space-between;align-items:flex-start;gap:24px;display:flex}.page-heading h1{margin:0 0 8px;font-size:32px;line-height:1.12}.page-heading p{color:var(--color-text-muted);margin:0;font-size:16px}.page-heading-actions{flex-wrap:wrap;justify-content:flex-end;gap:12px;display:flex}.breadcrumb{color:var(--color-text-muted);align-items:center;gap:10px;margin:4px 0 18px;font-size:14px;font-weight:600;display:flex}.primary-button,.secondary-button,.danger-button{border-radius:var(--radius-md);justify-content:center;align-items:center;min-height:44px;padding:0 18px;font-size:14px;font-weight:800;text-decoration:none;display:inline-flex}.primary-button{color:#fff;background:var(--color-primary);cursor:pointer;border:0}.primary-button:hover,.primary-button:focus-visible{color:#fff;background:var(--color-primary-hover);text-decoration:none}.primary-button:disabled{cursor:wait;opacity:.72}.primary-button svg,.secondary-button svg,.danger-button svg{width:18px;height:18px;margin-right:8px}.primary-button svg path,.secondary-button svg path,.danger-button svg path,.role-option-icon path,.role-guide-icon path,.search-box path{fill:none;stroke:currentColor;stroke-linecap:round;stroke-linejoin:round;stroke-width:2px}.secondary-button{border:1px solid var(--color-border);color:var(--color-text-muted);background:#fff}.secondary-button:hover,.secondary-button:focus-visible{color:var(--color-text);border-color:var(--color-text-subtle);text-decoration:none}.secondary-button:disabled{cursor:not-allowed;opacity:.68}.danger-button{color:#b42318;cursor:pointer;background:#fff;border:1px solid #be393947}.danger-button:hover,.danger-button:focus-visible{color:#fff;background:#b42318;border-color:#b42318}.danger-button:disabled{cursor:wait;opacity:.72}.link-button{min-height:32px;color:var(--color-link);cursor:pointer;background:0 0;border:0;align-items:center;padding:0;font-size:13px;font-weight:800;display:inline-flex}.link-button:hover,.link-button:focus-visible{text-decoration:underline}.link-button:disabled{cursor:wait;opacity:.72}.success-alert{border-radius:var(--radius-md);color:var(--color-success);background:var(--color-success-soft);border:1px solid #2e7d5b3d;margin-bottom:18px;padding:12px 14px;font-size:14px;font-weight:700}.error-alert{border-radius:var(--radius-md);color:var(--color-danger);background:var(--color-danger-soft);border:1px solid #b640403d;margin-bottom:18px;padding:12px 14px;font-size:14px;font-weight:700}.visually-hidden{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;padding:0;position:absolute;overflow:hidden}.user-toolbar{border-radius:var(--radius-lg);box-shadow:var(--shadow-card);background:#fff;justify-content:space-between;align-items:center;gap:20px;margin-bottom:24px;padding:20px;display:flex}.search-box{border:1px solid var(--color-border);border-radius:var(--radius-md);min-height:44px;color:var(--color-text-subtle);background:#fff;grid-template-columns:28px minmax(180px,360px);align-items:center;padding:0 12px;display:grid}.search-form{align-items:center;gap:10px;display:flex}.search-box svg{width:20px;height:20px}.search-box input{width:100%;color:var(--color-text);background:0 0;border:0;outline:0}.search-box input::placeholder{color:var(--color-text-subtle)}.filter-row{flex-wrap:wrap;justify-content:flex-end;gap:10px;display:flex}.filter-pill{border-radius:var(--radius-sm,4px);min-height:32px;color:var(--color-text-muted);background:var(--color-neutral-soft);justify-content:center;align-items:center;padding:0 18px;font-size:12px;font-weight:800;text-decoration:none;display:inline-flex}.filter-pill:hover,.filter-pill:focus-visible{color:var(--color-primary);text-decoration:none}.filter-pill-active{color:#fff;background:var(--color-primary)}.filter-pill-active:hover,.filter-pill-active:focus-visible{color:#fff;background:var(--color-primary-hover)}.text-link{color:var(--color-primary);font-size:13px;font-weight:800;text-decoration:none}.text-link:hover,.text-link:focus-visible{color:var(--color-primary-hover);text-decoration:underline}.metric-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:24px;margin-bottom:24px;display:grid}.metric-card{border-radius:var(--radius-lg);min-height:98px;box-shadow:var(--shadow-card);background:#fff;place-items:center;display:grid}.metric-card strong{color:var(--color-primary);font-size:30px;line-height:1}.metric-card span{color:var(--color-text);margin-top:-10px;font-size:14px;font-weight:600}.users-panel,.user-form-panel,.role-guide,.student-import-panel,.student-preview-panel{border-radius:var(--radius-lg);box-shadow:var(--shadow-card);background:#fff}.users-panel{padding:20px 20px 18px}.student-import-layout{grid-template-columns:minmax(0,1.35fr) minmax(280px,.65fr);gap:24px;margin-bottom:24px;display:grid}.group-generation-layout,.presentation-scheduling-layout{grid-template-columns:minmax(0,1.25fr) minmax(280px,.75fr);gap:24px;margin-bottom:24px;display:grid}.student-cohort-row{flex-wrap:wrap;gap:12px;margin-bottom:24px;display:flex}.cohort-pill{border:1px solid var(--color-border);border-radius:var(--radius-md);min-width:220px;color:var(--color-text);box-shadow:var(--shadow-card);background:#fff;gap:3px;padding:14px 16px;text-decoration:none;display:grid}.cohort-pill:hover,.cohort-pill:focus-visible{border-color:var(--color-primary);text-decoration:none}.cohort-pill strong{font-size:14px}.cohort-pill span{color:var(--color-text-muted);font-size:12px;font-weight:600}.cohort-pill-active{background:#f3f6fc;border-color:#293d7c52}.student-import-panel,.student-preview-panel{padding:24px}.presentation-config-form{gap:18px;display:grid}.presentation-config-form input,.presentation-config-form select{border:1px solid var(--color-border);border-radius:var(--radius-md);min-height:44px;color:var(--color-text);font:inherit;background:#fff;padding:0 12px}.presentation-form-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;display:grid}.presentation-breaks{border:1px solid var(--color-border);border-radius:var(--radius-lg);gap:12px;margin:0;padding:16px;display:grid}.presentation-breaks legend{color:var(--color-text);padding:0 6px;font-size:14px;font-weight:800}.presentation-break-row{color:var(--color-text);justify-content:space-between;align-items:center;gap:16px;font-size:14px;font-weight:800;display:flex}.presentation-break-row span{align-items:center;gap:10px;display:inline-flex}.presentation-break-row small{color:var(--color-text-muted);font-size:12px;font-weight:700}.presentation-break-row input[type=checkbox]{width:18px;height:18px;min-height:18px;accent-color:var(--color-primary)}.presentation-break-row input[type=time]{width:132px}.presentation-capacity{border-radius:var(--radius-lg);background:var(--color-success-soft);border:1px solid #2e7d5b3d;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;padding:14px;display:grid}.presentation-capacity-short{background:var(--color-danger-soft);border-color:#b640403d}.presentation-capacity div{gap:2px;display:grid}.presentation-capacity strong{color:var(--color-primary);font-size:24px;line-height:1}.presentation-capacity span{color:var(--color-text-muted);font-size:12px;font-weight:800}.presentation-summary-list{gap:14px;margin:0;display:grid}.presentation-summary-list div{border-bottom:1px solid var(--color-border);gap:4px;padding-bottom:14px;display:grid}.presentation-summary-list div:last-child{border-bottom:0;padding-bottom:0}.presentation-summary-list dt{color:var(--color-text-muted);text-transform:uppercase;font-size:12px;font-weight:900}.presentation-summary-list dd{color:var(--color-text);margin:0;font-size:14px;font-weight:700}.presentation-schedules-panel{grid-column:auto;align-self:start}.presentation-schedule-list{gap:12px;margin:0;padding:0;list-style:none;display:grid}.presentation-schedule-item{border:1px solid var(--color-border);border-radius:var(--radius-md);background:#f8fafc;gap:6px;padding:14px;display:grid}.presentation-schedule-item-active{background:#f3f6fc;border-color:#293d7c5c}.presentation-schedule-link{color:var(--color-text);gap:6px;text-decoration:none;display:grid}.presentation-schedule-link:hover,.presentation-schedule-link:focus-visible{color:var(--color-primary);text-decoration:none}.presentation-schedule-link-header{justify-content:space-between;align-items:center;gap:12px;display:flex}.presentation-schedule-link strong{font-size:15px}.presentation-schedule-link em{min-width:max-content;color:var(--color-success);background:var(--color-success-soft);text-transform:uppercase;border-radius:999px;padding:4px 8px;font-size:11px;font-style:normal;font-weight:900}.presentation-schedule-link span{color:var(--color-text-muted);font-size:12px;font-weight:800}.presentation-schedule-edit-link{color:var(--color-primary);justify-self:start;font-size:12px;font-weight:900;text-decoration:none}.presentation-schedule-edit-link:hover,.presentation-schedule-edit-link:focus-visible{color:var(--color-primary-hover);text-decoration:underline}.presentation-schedule-actions{flex-wrap:wrap;justify-content:flex-end;gap:10px;margin:-8px 0 18px;display:flex}.presentation-schedule-actions form{margin:0}.presentation-future-action:disabled{cursor:not-allowed;opacity:.64}.presentation-future-action.danger-button:disabled{color:#b42318;background:#fff;border-color:#be393933}.presentation-delete-action:disabled{cursor:wait;opacity:.72}.presentation-export-action,.presentation-lock-action,.presentation-marking-action{color:var(--color-primary)}.presentation-marking-action-active,.presentation-lock-action-active{color:var(--color-success);background:var(--color-success-soft);border-color:#2e7d5b4d}.presentation-empty-schedule{padding:36px}.presentation-empty-state{gap:14px}.presentation-generate-button:disabled{cursor:not-allowed;opacity:.78;margin-top:4px}.presentation-schedule-alert{margin-bottom:16px}.presentation-week-panel{gap:18px;display:grid}.presentation-week-status{align-items:center;gap:10px;display:flex}.presentation-lock-pill{border-radius:var(--radius-md);min-height:40px;color:var(--color-success);background:var(--color-success-soft);align-items:center;padding:0 16px;font-size:13px;font-weight:900;display:inline-flex}.presentation-week-scroll{padding-bottom:6px;overflow-x:auto}.presentation-week-grid{border:1px solid var(--color-border);border-radius:var(--radius-lg);min-width:920px;box-shadow:var(--shadow-card);background:#fff;display:grid}.presentation-week-row{display:contents}.presentation-week-corner,.presentation-week-day,.presentation-week-time,.presentation-slot-cell,.presentation-break-cell{border-bottom:1px solid var(--color-border);border-right:1px solid var(--color-border)}.presentation-week-corner,.presentation-week-day{z-index:2;background:#f8fafc;min-height:52px;padding:14px;position:sticky;top:0}.presentation-week-corner{z-index:3;color:var(--color-text-muted);text-transform:uppercase;font-size:12px;font-weight:900;left:0}.presentation-week-day strong{color:var(--color-text);font-size:13px;line-height:1.2}.presentation-week-time{z-index:1;min-height:94px;color:var(--color-text-muted);background:#f8fafc;padding:12px;font-size:12px;font-weight:900;position:sticky;left:0}.presentation-slot-cell{background:#fbfcfe;min-height:94px;padding:8px}.presentation-slot-cell-filled{background:#fff}.presentation-empty-slot{border-radius:var(--radius-md);min-height:76px;color:var(--color-text-muted);border:1px dashed #64748b52;place-items:center;font-size:12px;font-weight:800;display:grid}.presentation-break-cell{background:#fff7ed;align-content:center;gap:3px;min-height:58px;padding:10px 12px;display:grid}.presentation-break-cell strong{color:#9a3412;font-size:13px}.presentation-break-cell span{color:#c2410c;text-transform:uppercase;font-size:11px;font-weight:900}.presentation-card{border-radius:var(--radius-md);cursor:grab;background:#f3f6fc;border:1px solid #293d7c33;gap:8px;min-height:76px;padding:10px;display:grid;box-shadow:0 10px 24px #0f172a14}.presentation-card:active{cursor:grabbing}.presentation-card-locked,.presentation-card-locked:active{cursor:default}.presentation-card-header{color:var(--color-primary);justify-content:space-between;align-items:center;gap:8px;font-size:11px;font-weight:900;display:flex}.presentation-card-header svg{fill:none;stroke:currentColor;stroke-width:2px;stroke-linecap:round;stroke-linejoin:round;width:16px;height:16px}.presentation-card h3{color:var(--color-text);margin:0;font-size:13px;line-height:1.25}.presentation-card dl{gap:5px;margin:0;display:grid}.presentation-card dl div{grid-template-columns:70px minmax(0,1fr);gap:6px;display:grid}.presentation-card dt{color:var(--color-text-muted);text-transform:uppercase;font-size:10px;font-weight:900}.presentation-card dd{color:var(--color-text);overflow-wrap:anywhere;margin:0;font-size:11px;font-weight:800}.supervisor-presentation-stack{gap:24px;display:grid}.supervisor-presentation-week-panel{grid-column:auto}.supervisor-presentation-card{color:inherit;text-decoration:none;transition:border-color .16s,box-shadow .16s,transform .16s}.supervisor-presentation-card:hover,.supervisor-presentation-card:focus-visible{border-color:#293d7c6b;text-decoration:none;transform:translateY(-1px);box-shadow:0 14px 28px #0f172a1f}.supervisor-presentation-card-marked{background:#ecfdf3;border-color:#16a34a80;box-shadow:0 12px 28px #16653424}.supervisor-presentation-card-marked .presentation-card-header{color:#166534}.supervisor-presentation-card-marked:hover,.supervisor-presentation-card-marked:focus-visible{border-color:#16a34ab8;box-shadow:0 16px 32px #1665342e}.presentation-marked-pill{color:#166534;text-transform:uppercase;background:#dcfce7;border:1px solid #16a34a47;border-radius:999px;align-items:center;min-height:22px;padding:3px 8px;font-size:10px;font-weight:900;display:inline-flex}.presentation-marking-context{text-align:left;width:min(100%,620px);margin:12px 0}.presentation-marking-form{gap:22px;display:grid}.presentation-context-panel{box-shadow:none}.presentation-context-actions{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:8px;display:inline-flex}.presentation-context-status{border-radius:var(--radius-sm,4px);background:var(--color-neutral-soft);min-height:26px;color:var(--color-neutral);text-transform:uppercase;align-items:center;padding:0 10px;font-size:12px;font-weight:900;display:inline-flex}.presentation-context-status-marked{background:var(--color-success-soft);color:var(--color-success)}.presentation-context-notes-disabled{border-radius:var(--radius-sm,4px);white-space:nowrap;min-height:26px;color:var(--color-text-muted);background:#f7f8fb;align-items:center;padding:0 10px;font-size:12px;font-weight:900;display:inline-flex}.presentation-context-list{grid-template-columns:repeat(3,minmax(0,1fr))}.presentation-context-list div:first-child{grid-column:1/-1}.presentation-project-link{overflow-wrap:anywhere;font-size:18px;font-weight:800;display:inline-block}.presentation-student-comments-table.users-table{width:100%;min-width:820px}.presentation-student-comments-table th:first-child,.presentation-student-comments-table td:first-child{width:128px}.presentation-student-comments-table th:nth-child(2),.presentation-student-comments-table td:nth-child(2){width:260px}.presentation-student-comments-table.users-table th:last-child,.presentation-student-comments-table.users-table td:last-child{text-align:left;width:auto}.presentation-student-comments-table textarea,.presentation-other-comments textarea{resize:vertical;border:1px solid var(--color-border);border-radius:var(--radius-md);width:100%;min-height:68px;color:var(--color-text);background:#fff;padding:10px 12px}.group-notes-layout{gap:24px;display:grid}.group-notes-textarea{resize:vertical;border:1px solid var(--color-border);border-radius:var(--radius-md);width:100%;min-height:220px;color:var(--color-text);font:inherit;background:#fff;padding:14px 16px;line-height:1.5}.group-notes-readonly{white-space:pre-wrap;color:var(--color-text);line-height:1.6}.presentation-rubric-table th:first-child,.presentation-rubric-table td:first-child{width:auto;color:var(--color-text);text-align:left}.presentation-rubric-table th:nth-child(2),.presentation-rubric-table td:nth-child(2){text-align:center;width:126px}.presentation-rubric-table th:last-child,.presentation-rubric-table td:last-child{width:82px;color:var(--color-text);text-align:center}.presentation-rubric-table input{border:1px solid var(--color-border);border-radius:var(--radius-md);text-align:center;width:76px;min-height:42px;padding:8px 10px}.presentation-rubric-table input[aria-invalid=true],.presentation-rubric-table input:invalid{border-color:var(--color-danger)}.presentation-rubric-section th,.presentation-rubric-section td{color:var(--color-text);background:var(--color-neutral-soft);text-transform:uppercase;font-size:12px;font-weight:900}.presentation-rubric-total th,.presentation-rubric-total td{font-weight:900}.presentation-rubric-total output{border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-neutral-soft);justify-content:center;align-items:center;min-width:76px;min-height:42px;display:inline-flex}.presentation-rating-fieldset{border:0;margin:0;padding:0}.presentation-rating-fieldset legend{color:var(--color-text-muted);margin-bottom:14px;font-size:14px;line-height:1.5}.presentation-rating-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:12px 28px;display:grid}.presentation-rating-grid label{color:var(--color-text);align-items:center;gap:8px;font-size:14px;display:flex}.presentation-other-comments{margin-top:20px}.student-preview-panel{grid-column:1/-1}.student-preview-panel.presentation-schedules-panel{grid-column:auto}.student-count-pill{border-radius:var(--radius-md);min-height:40px;color:var(--color-success);background:var(--color-success-soft);align-items:center;padding:0 16px;font-size:13px;font-weight:900;display:inline-flex}.student-upload-form{gap:18px;display:grid}.file-drop{border-radius:var(--radius-lg);cursor:pointer;background:#f8fafc;border:1px dashed #b8c1d2;grid-template-columns:46px minmax(0,1fr);align-items:center;gap:14px;min-height:132px;padding:22px;transition:border-color .16s,background .16s,box-shadow .16s;display:grid}.file-drop-active,.file-drop:focus-within{border-color:var(--color-primary);background:#f1f5fd;box-shadow:inset 0 0 0 1px #293d7c29}.file-drop strong,.file-drop small{display:block}.file-drop strong{color:var(--color-text);margin-bottom:4px;font-size:16px}.file-drop small{color:var(--color-text-muted);margin-top:3px;line-height:1.45}.file-drop .selected-file-name{color:var(--color-success);font-weight:800}.file-drop input{width:100%;color:var(--color-text-muted);grid-column:1/-1;font-size:14px}.file-drop-icon{border-radius:var(--radius-md);width:46px;height:46px;color:var(--color-primary);background:var(--color-primary-soft);place-items:center;display:inline-grid}.file-drop-icon svg{width:24px;height:24px}.file-drop-icon path{fill:none;stroke:currentColor;stroke-linecap:round;stroke-linejoin:round;stroke-width:2px}.import-rule-list{gap:18px;margin:0;display:grid}.import-rule-list div{border-bottom:1px solid var(--color-border-soft);padding-bottom:16px}.import-rule-list div:last-child{border-bottom:0;padding-bottom:0}.import-rule-list dt{color:var(--color-text);margin-bottom:4px;font-size:14px;font-weight:900}.import-rule-list dd{color:var(--color-text-muted);margin:0;font-size:14px;line-height:1.45}.student-preview-panel .panel-heading{align-items:flex-start}.student-preview-panel .panel-heading p{color:var(--color-text-muted);margin:4px 0 0;font-size:13px}.group-generation-panel .panel-heading{align-items:flex-start}.group-generation-panel .panel-heading p{color:var(--color-text-muted);margin:4px 0 0;font-size:13px}.group-generation-form{gap:18px;display:grid}.group-generation-form input,.group-generation-form select{border:1px solid var(--color-border);border-radius:var(--radius-md);width:100%;min-height:46px;color:var(--color-text);background:#fff;padding:0 12px}.group-generation-form input::placeholder{color:var(--color-text-muted)}.cohort-generation-note{border:1px solid var(--color-border-soft);border-radius:var(--radius-md);background:#f8fafc;gap:4px;padding:14px 16px;display:grid}.cohort-generation-note strong{font-size:14px}.cohort-generation-note span,.generation-audit-note{color:var(--color-text-muted);font-size:13px;line-height:1.45}.compact-empty-state{padding:32px 18px}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.student-import-metrics{margin:8px 0 20px}.issue-panel{border-radius:var(--radius-md);background:#fff8f8;border:1px solid #b640402e;margin-bottom:20px;padding:16px 18px}.issue-panel h3{color:var(--color-danger);margin:0 0 10px;font-size:15px}.issue-panel ul{color:var(--color-danger);gap:6px;margin:0;padding-left:20px;font-size:14px;display:grid}.issue-panel .issue-warning{color:#8a641f}.student-preview-table{min-width:940px}.recent-imports-table{min-width:760px}.group-card-grid{gap:18px;display:grid}.group-review-toolbar{justify-content:flex-end;margin:14px 0 10px;display:flex}.group-review-search{grid-template-columns:28px minmax(0,1fr);width:min(100%,430px)}.group-card{border:1px solid var(--color-border-soft);border-radius:var(--radius-lg);background:#fff;padding:18px}.group-card header{justify-content:space-between;align-items:flex-start;gap:14px;margin-bottom:12px;display:flex}.group-card-status{justify-items:end;gap:6px;display:grid}.group-card-metric{color:var(--color-text-muted);font-size:13px;font-weight:700}.group-card h3{margin:0;font-size:17px}.group-heading-row{align-items:center;gap:8px;display:inline-flex}.group-notes-icon-link{flex:none;width:32px;height:32px}.group-card p{color:var(--color-text-muted);margin:4px 0 0;font-size:13px}.group-warning-copy{color:#8a641f;margin:0 0 12px;font-size:13px;line-height:1.45}.group-filter-empty{margin-top:16px}.group-members-table{min-width:640px}.student-roster-table{min-width:720px}.unassigned-students-table{min-width:860px}.group-management-panel,.manage-groups-panel{margin-top:18px}.manage-groups-summary-panel{margin:18px 0}.manage-workspace-section{border:1px solid var(--color-border-soft);border-radius:var(--radius-lg);background:#fff;padding:18px}.manage-workspace-section+.manage-workspace-section{margin-top:24px}.manage-workspace-section-overview{background:linear-gradient(#fafcfdfa,#fffffffa)}.manage-workspace-section-students{background:linear-gradient(#f6fafaf5,#fffffffa);border-color:#206d7c2e;box-shadow:inset 0 1px #206d7c14}.manage-workspace-section-heading{justify-content:space-between;align-items:flex-start;gap:18px;margin-bottom:16px;display:flex}.manage-workspace-section-heading h3{margin:0;font-size:18px}.manage-workspace-section-heading p{color:var(--color-text-muted);margin:4px 0 0;font-size:13px;line-height:1.45}.section-count-pill{border-radius:var(--radius-md);min-height:30px;color:var(--color-primary);white-space:nowrap;background:#206d7c14;align-items:center;padding:0 10px;font-size:12px;font-weight:900;display:inline-flex}.manage-student-section-heading{align-items:center}.manage-overview-reference{flex-wrap:wrap;justify-content:flex-end;gap:10px;display:flex}.cohort-gpa-reference{border-radius:var(--radius-md);color:#7e3348;background:linear-gradient(#ffeef2fa,#fff6f8fa);border:1px solid #8f415447;min-width:132px;padding:9px 12px;display:inline-grid}.cohort-gpa-reference span{text-transform:uppercase;font-size:11px;font-weight:900}.cohort-gpa-reference strong{margin-top:2px;font-size:19px;line-height:1}.manage-student-search{flex:none;grid-template-columns:28px minmax(220px,340px)}.student-filter-summary{color:var(--color-text-muted);margin:-4px 0 16px;font-size:13px;font-weight:700}.manage-groups-summary-grid{grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:14px;display:grid}.manage-group-summary-card{border:1px solid var(--color-border-soft);border-radius:var(--radius-lg);color:inherit;background:#fff;gap:8px;padding:14px 16px;text-decoration:none;transition:border-color .16s,box-shadow .16s,transform .16s;display:grid}.manage-group-summary-card strong{font-size:15px}.manage-group-summary-card span{color:var(--color-text-muted);font-size:13px}.manage-group-summary-card .status-badge{justify-self:start}.manage-group-summary-card:hover,.manage-group-summary-card:focus-visible{border-color:#206d7c5c;transform:translateY(-1px);box-shadow:0 14px 32px #0f172a14}.manage-group-summary-card-unassigned{background:linear-gradient(#f4f7fafa,#fffffffa)}.manage-groups-workspace-grid{grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:18px;display:grid}.group-dropzone{border:1px solid var(--color-border-soft);border-radius:var(--radius-lg);background:linear-gradient(#fffffffa,#f7fafcfa);align-content:start;gap:14px;padding:18px;transition:border-color .16s,box-shadow .16s,transform .16s;display:grid}.group-dropzone-active{border-color:#206d7c6b;transform:translateY(-1px);box-shadow:0 20px 40px #0f172a14}.group-dropzone-highlight{border-color:#206d7c94;animation:1.4s ease-out group-target-flash;box-shadow:0 0 0 4px #206d7c29,0 20px 42px #0f172a1a}.group-dropzone:focus{outline:none}.group-dropzone:focus-visible{outline-offset:3px;outline:3px solid #206d7c3d}.group-dropzone-blocked{background:linear-gradient(#fff9f9fa,#fffffffa);border-color:#b6404047}.group-dropzone-unassigned{background:linear-gradient(#f8fafcfa,#fffffffa)}.group-dropzone-header{justify-content:space-between;align-items:flex-start;gap:14px;display:flex}.group-dropzone-header h3{margin:0;font-size:19px}.group-dropzone-header p{color:var(--color-text-muted);margin:4px 0 0;font-size:13px}.dropzone-hint{color:var(--color-text-muted);margin:0;font-size:13px;line-height:1.45}.drop-preview{border-radius:var(--radius-md);padding:12px 14px;font-size:13px;font-weight:700}.drop-preview-allowed{color:var(--color-primary);background:#206d7c14}.drop-preview-blocked{color:var(--color-danger);background:#b6404014}.group-dropzone-body{gap:12px;display:grid}.draggable-student-card{border:1px solid var(--color-border-soft);border-radius:var(--radius-md);cursor:grab;background:#fff;gap:10px;padding:14px;display:grid;box-shadow:0 10px 24px #0f172a0a}.draggable-student-card:active{cursor:grabbing}.draggable-student-card p{color:var(--color-text-muted);margin:0;font-size:13px}.draggable-student-header{justify-content:space-between;align-items:flex-start;gap:12px;display:flex}.draggable-student-header strong,.draggable-student-header span{display:block}.draggable-student-header span{color:var(--color-text-muted);margin-top:2px;font-size:12px}.student-move-form{grid-template-columns:minmax(0,1fr) auto;gap:10px;display:grid}.student-move-form select{border:1px solid var(--color-border);border-radius:var(--radius-md);min-height:38px;color:var(--color-text);background:#fff;padding:0 12px}@keyframes group-target-flash{0%{background:#206d7c1f;box-shadow:0 0 0 6px #206d7c33,0 20px 42px #0f172a1a}to{background:linear-gradient(#fffffffa,#f7fafcfa);box-shadow:0 0 #206d7c00,0 10px 24px #0f172a00}}@media (prefers-reduced-motion:reduce){.group-dropzone-highlight{animation:none}}.review-next-step{border:1px solid var(--color-border-soft);border-radius:var(--radius-lg);background:linear-gradient(#f8fafcfa,#fffffffa);justify-content:space-between;align-items:center;gap:18px;margin-top:20px;padding:18px 20px;display:flex}.review-next-step h3{margin:0 0 4px;font-size:18px}.review-next-step p{color:var(--color-text-muted);margin:0;font-size:13px;line-height:1.45}.group-selector-row{grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:14px;margin-bottom:18px;display:grid}.group-selector-card{border:1px solid var(--color-border-soft);border-radius:var(--radius-lg);text-align:left;background:#fff;gap:8px;padding:14px 16px;transition:border-color .16s,box-shadow .16s,transform .16s;display:grid}.group-selector-card strong{font-size:15px}.group-selector-card span{color:var(--color-text-muted);font-size:13px}.group-selector-card .status-badge{justify-self:start}.group-selector-card:hover,.group-selector-card:focus-visible,.group-selector-card-active{border-color:#206d7c5c;transform:translateY(-1px);box-shadow:0 14px 32px #0f172a14}.group-management-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;display:grid}.group-management-card{border:1px solid var(--color-border-soft);border-radius:var(--radius-lg);background:linear-gradient(#fffffffa,#f7fafcfa);padding:18px}.group-members-table.users-table th:last-child,.group-members-table.users-table td:last-child{text-align:left;width:auto}.student-roster-table.users-table th:first-child,.student-roster-table.users-table td:first-child,.cohort-management-table.users-table th:first-child,.cohort-management-table.users-table td:first-child,.group-members-table.users-table th:first-child,.group-members-table.users-table td:first-child{text-align:left}.compact-identity{flex-direction:column;align-items:flex-start;gap:0}.panel-heading{justify-content:space-between;align-items:center;margin-bottom:12px;display:flex}.panel-heading h2{margin:0;font-size:18px}.users-table-wrap{overflow-x:auto}.users-table{border-collapse:collapse;width:100%;min-width:820px}.users-table th{border-bottom:1px solid var(--color-border-soft);color:var(--color-text-subtle);text-align:left;text-transform:uppercase;padding:10px 14px;font-size:12px;font-weight:800}.table-sort{color:inherit;align-items:center;gap:8px;text-decoration:none;display:inline-flex}.table-sort span[aria-hidden=true]{min-width:28px;color:var(--color-text-muted);text-transform:uppercase;font-size:10px}.table-sort:hover,.table-sort:focus-visible,.table-sort-active{color:var(--color-primary);text-decoration:none}.users-table th:last-child,.users-table td:last-child{text-align:right;width:52px}.cohort-management-table.users-table th:last-child,.cohort-management-table.users-table td:last-child{width:168px}.cohort-management-table-admin.users-table th:nth-child(5),.cohort-management-table-admin.users-table td:nth-child(5){min-width:360px}.users-table td{border-bottom:1px solid var(--color-border-soft);color:var(--color-text-muted);vertical-align:middle;padding:12px 14px;font-size:14px}.user-identity{color:var(--color-text);align-items:center;gap:12px;display:flex}.user-identity.compact-identity{text-align:left;align-items:flex-start;gap:0}.user-identity strong,.user-identity small{display:block}.user-identity small{color:var(--color-text-muted);margin-top:2px;font-size:12px}.table-avatar{width:38px;height:38px;font-size:14px}.role-badge-row{flex-wrap:wrap;gap:6px;display:flex}.role-badge,.status-badge{border-radius:var(--radius-sm,4px);white-space:nowrap;align-items:center;min-height:26px;padding:0 10px;font-size:12px;font-weight:800;display:inline-flex}.role-badge{color:var(--color-link);background:var(--color-primary-soft)}.role-badge-admin{color:#293d7c;background:#e8eff8}.role-badge-supervisor{color:#2e7d5b;background:#e6f3ee}.role-badge-partner{color:#a96f1d;background:#f8efe0}.status-active{color:var(--color-success);background:var(--color-success-soft)}.status-inactive{color:var(--color-neutral);background:var(--color-neutral-soft)}.status-warning,.status-badge-pending{color:#8a641f;background:#f59e0b29}.status-badge-approved,.status-badge-allocated{color:var(--color-success);background:var(--color-success-soft)}.status-badge-rejected{color:var(--color-danger);background:var(--color-danger-soft)}.status-badge-ready{color:#3653a3;background:#e8eefb}.partner-projects-table{min-width:760px}.partner-projects-table.users-table th:first-child,.partner-projects-table.users-table td:first-child{width:36%}.partner-projects-table.users-table th:last-child,.partner-projects-table.users-table td:last-child{text-align:right;width:150px}.icon-button{border:1px solid var(--color-border-soft);border-radius:var(--radius-md);width:36px;height:36px;color:var(--color-primary);background:#fff;place-items:center;transition:border-color .16s,color .16s,background .16s;display:inline-grid}.icon-button:hover,.icon-button:focus-visible{color:#fff;border-color:var(--color-primary);background:var(--color-primary)}.icon-button-disabled,.icon-button:disabled{cursor:not-allowed;color:var(--color-text-muted);border-color:var(--color-border-soft);background:var(--color-neutral-soft)}.icon-button-disabled:hover,.icon-button-disabled:focus-visible,.icon-button:disabled:hover,.icon-button:disabled:focus-visible{color:var(--color-text-muted);border-color:var(--color-border-soft);background:var(--color-neutral-soft)}.icon-button svg{width:18px;height:18px}.icon-button path{fill:none;stroke:currentColor;stroke-linecap:round;stroke-linejoin:round;stroke-width:2px}.table-summary{color:var(--color-text-muted);margin:18px 14px 0;font-size:14px}.inline-action-form{justify-content:flex-end;display:flex}.cohort-coordinator-stack{flex-direction:column;align-items:stretch;gap:12px;max-width:460px;display:flex}.cohort-coordinator-list{flex-direction:column;gap:8px;display:flex}.cohort-coordinator-assignment{border:1px solid var(--color-border-soft);border-radius:var(--radius-md);background:#fff;justify-content:space-between;align-items:center;gap:16px;padding:10px 12px;display:flex}.cohort-coordinator-assignment .user-identity{min-width:0}.cohort-coordinator-remove{flex:none}.cohort-coordinator-empty{border:1px dashed var(--color-border);border-radius:var(--radius-md);background:var(--color-neutral-soft);padding:10px 12px}.cohort-coordinator-empty strong,.cohort-coordinator-empty span,.cohort-coordinator-helper{display:block}.cohort-coordinator-empty strong{color:var(--color-text);font-size:13px}.cohort-coordinator-empty span,.cohort-coordinator-helper{color:var(--color-text-muted);margin-top:4px;font-size:12px;line-height:1.45}.cohort-coordinator-form{grid-template-columns:minmax(190px,1fr) auto;gap:8px;display:grid}.cohort-coordinator-form select{border:1px solid var(--color-border);border-radius:var(--radius-md);width:100%;min-width:0;min-height:32px;color:var(--color-text);background:#fff;padding:0 34px 0 10px}.cohort-coordinator-form select:disabled{cursor:not-allowed;color:var(--color-text-muted);background:var(--color-neutral-soft)}.compact-button{min-height:32px;padding:0 12px;font-size:13px}.compact-button.danger-button,.compact-button.secondary-button{width:auto}.final-marking-toggle-form{align-items:center;gap:10px;display:flex}.final-marking-toggle-status{color:var(--color-text-muted);font-size:13px;font-weight:700}.final-marking-toggle-active{color:#1d6b45;background:#e7f6ee;border-color:#9bd3ba}.inline-success{color:var(--color-success);margin:6px 0 0;font-size:12px;font-weight:800}.warning-alert{border-radius:var(--radius-md);color:#8a641f;background:#fff7e8;border:1px solid #b07d2a38;margin-bottom:14px;padding:12px 14px;font-size:13px;line-height:1.45}.inline-alert-copy{color:var(--color-text-muted)}.empty-state{text-align:center;justify-items:center;gap:12px;padding:48px 24px;display:grid}.empty-state h3{margin:0;font-size:20px}.empty-state p{max-width:440px;color:var(--color-text-muted);margin:0 0 8px}.student-review-summary{margin-bottom:24px}.narrow-page{max-width:860px}.partner-header{color:#fff;background:var(--color-primary);justify-content:space-between;align-items:center;height:76px;padding:0 32px;display:flex}.project-form-panel{max-width:820px}.partner-feedback-form{gap:22px;width:100%;min-width:0;display:grid}.partner-feedback-context-panel{width:100%;min-width:0;margin-bottom:24px}.partner-feedback-form>.users-panel{min-width:0}.partner-feedback-form .users-table-wrap{max-width:100%;overflow-x:visible}.partner-feedback-student-table{table-layout:fixed;min-width:0}.partner-feedback-student-table.users-table th:first-child,.partner-feedback-student-table.users-table td:first-child{width:12%}.partner-feedback-student-table.users-table th:nth-child(2),.partner-feedback-student-table.users-table td:nth-child(2){width:30%}.partner-feedback-student-table.users-table th:nth-child(3),.partner-feedback-student-table.users-table td:nth-child(3){width:22%}.partner-feedback-student-table.users-table th:last-child,.partner-feedback-student-table.users-table td:last-child{text-align:left;width:36%}.partner-feedback-student-table.users-table td{vertical-align:middle}.partner-feedback-student-table textarea,.partner-feedback-field-grid textarea,.partner-feedback-other-comments textarea,.partner-feedback-select{border:1px solid var(--color-border);border-radius:var(--radius-md);width:100%;min-width:0;color:var(--color-text);background:#fff}.partner-feedback-select{height:44px;padding:0 12px}.required-marker{color:var(--color-danger);margin-left:3px;font-weight:900}.partner-feedback-mobile-field-label{display:none}.partner-feedback-select-error{border-color:#b54747;box-shadow:0 0 0 3px #b547471f}.partner-feedback-student-table textarea,.partner-feedback-field-grid textarea,.partner-feedback-other-comments textarea{resize:vertical;padding:10px 12px;line-height:1.45}.partner-feedback-student-table textarea{min-height:74px}@media (max-width:760px){.partner-feedback-student-table{gap:16px;display:grid}.partner-feedback-student-table thead{display:none}.partner-feedback-student-table tbody{gap:16px;display:grid}.partner-feedback-student-table tr{border-bottom:1px solid var(--color-border-soft);grid-template-columns:1fr;gap:14px 18px;padding-bottom:16px;display:grid}.partner-feedback-student-table tr:last-child{border-bottom:0;padding-bottom:0}.partner-feedback-student-table.users-table td,.partner-feedback-student-table.users-table td:first-child,.partner-feedback-student-table.users-table td:nth-child(2),.partner-feedback-student-table.users-table td:nth-child(3),.partner-feedback-student-table.users-table td:last-child{border-bottom:0;gap:6px;width:100%;min-width:0;padding:0;display:grid}.partner-feedback-student-table.users-table td:before{color:var(--color-text-subtle);text-transform:uppercase;font-size:12px;font-weight:800}.partner-feedback-student-table.users-table td:first-child:before{content:"ID"}.partner-feedback-student-table.users-table td:nth-child(2):before{content:"Name"}.partner-feedback-student-table.users-table td:nth-child(3):before{content:none}.partner-feedback-mobile-field-label{color:var(--color-text-subtle);text-transform:uppercase;font-size:12px;font-weight:800;display:inline}.partner-feedback-student-table.users-table td:nth-child(3) .partner-feedback-select{width:min(100%,260px);min-width:min(100%,190px)}.partner-feedback-student-table.users-table td:nth-child(4){grid-column:auto}.partner-feedback-student-table.users-table td:nth-child(4):before{content:"Comments"}}.partner-feedback-group-panel{gap:18px;display:grid}.partner-feedback-field-grid{gap:20px;display:grid}.partner-feedback-outcome-row{border-bottom:1px solid var(--color-border-soft);grid-template-columns:minmax(0,.82fr) minmax(0,1fr);align-items:stretch;gap:24px;padding-bottom:20px;display:grid}.partner-feedback-outcome-row:last-child{border-bottom:0;padding-bottom:0}.partner-feedback-rating-field,.partner-feedback-comment-field,.partner-feedback-other-comments{align-content:start;gap:8px;min-width:0;display:grid}.partner-feedback-rating-field>span,.partner-feedback-comment-field>span,.partner-feedback-other-comments span{color:var(--color-text-muted);font-size:13px;font-weight:800}.partner-feedback-rating-field>small:not(.field-error){min-height:50px;color:var(--color-text-muted);font-size:15px;font-weight:400;line-height:1.55}.partner-feedback-comment-field textarea{min-height:120px}.partner-feedback-other-comments{padding-top:2px}@media (max-width:980px){.partner-feedback-outcome-row{grid-template-columns:1fr;gap:14px}.partner-feedback-rating-field>small:not(.field-error){min-height:0}}.checkbox-card{border:1px solid var(--color-border-soft);border-radius:var(--radius-md);background:#f8fafc;grid-template-columns:20px minmax(0,1fr);align-items:start;gap:12px;margin-bottom:28px;padding:16px;display:grid}.checkbox-card input{margin-top:3px}.checkbox-card label{color:var(--color-text);font-size:14px;font-weight:700;line-height:1.45}.project-table{min-width:1080px}.project-table.users-table th:last-child,.project-table.users-table td:last-child{text-align:left;width:112px}.table-description{max-width:340px;color:var(--color-text-muted);margin:5px 0 0;font-size:12px;line-height:1.45}.muted-block{color:var(--color-text-muted);margin-top:3px;font-size:12px;display:block}.history-list{gap:7px;margin:0;padding-left:18px;display:grid}.history-list li{color:var(--color-text-muted);font-size:12px}.history-list strong,.history-list span{display:block}.history-list strong{color:var(--color-text)}.triage-control-stack{justify-items:start;gap:4px;display:grid}.triage-action-row{flex-wrap:wrap;gap:8px;display:flex}.project-review-layout{grid-template-columns:minmax(0,1fr) minmax(280px,360px);align-items:start;gap:22px;display:grid}.supervisor-project-table{min-width:860px}.supervisor-project-table.users-table th:last-child,.supervisor-project-table.users-table td:last-child{text-align:left}.group-grading-table{min-width:1210px}.group-grading-table.users-table th:last-child,.group-grading-table.users-table td:last-child{text-align:left;width:150px}.status-link{white-space:nowrap;text-decoration:none}.status-link:hover,.status-link:focus-visible{filter:brightness(.96);text-decoration:none}.supervisor-project-detail-panel{margin-bottom:24px}.project-detail-panel,.project-history-panel{border:1px solid var(--color-border-soft);border-radius:var(--radius-lg);box-shadow:var(--shadow-card);background:#fff;padding:20px}.project-detail-list{gap:18px;margin:0;display:grid}.project-detail-list div{gap:6px;display:grid}.project-detail-list dt{color:var(--color-text-muted);text-transform:uppercase;font-size:12px;font-weight:800}.project-detail-list dd{color:var(--color-text);margin:0;font-size:14px;line-height:1.55}.project-detail-list dd span{color:var(--color-text-muted);margin-top:2px;font-size:13px;display:block}.project-copy{white-space:pre-wrap}.supervisor-roster-panel{margin-top:24px}.project-decision-panel{border-top:1px solid var(--color-border-soft);gap:10px;margin-top:22px;padding-top:18px;display:grid}.project-decision-panel h3{margin:0;font-size:16px}.project-decision-panel p,.muted-copy{color:var(--color-text-muted);margin:0;font-size:13px;line-height:1.55}.project-history-timeline{gap:14px;margin:0;padding:0;list-style:none;display:grid}.project-history-timeline li{border-left:3px solid var(--color-primary-soft);gap:4px;padding-left:14px;display:grid}.project-history-timeline strong{color:var(--color-text);font-size:14px}.project-history-timeline span,.project-history-timeline p{color:var(--color-text-muted);margin:0;font-size:12px;line-height:1.45}.assignment-workspace-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:22px;display:grid}.assignment-panel{border:1px solid var(--color-border-soft);border-radius:var(--radius-lg);box-shadow:var(--shadow-card);background:#fff;align-content:start;gap:16px;padding:20px;display:grid}.assignment-panel-wide{grid-column:1/-1}.assignment-card-list{gap:12px;display:grid}.assignment-card{border:1px solid var(--color-border-soft);border-radius:var(--radius-md);background:#f8fafc;grid-template-columns:minmax(160px,.85fr) minmax(220px,1fr) auto;align-items:end;gap:14px;padding:14px;display:grid}.assignment-card-allocated{background:#fbfcff}.assignment-card strong,.assignment-card span,.assignment-card label{display:block}.assignment-card>div>span{color:var(--color-text-muted);margin-top:4px;font-size:13px}.assignment-card strong .assignment-gpa{color:var(--color-text-muted);margin-left:6px;font-size:12px;font-weight:800;display:inline}.assignment-card label,.assignment-inline-form label{color:var(--color-text-muted);gap:6px;font-size:12px;font-weight:800;display:grid}.assignment-card select,.assignment-inline-form select{border:1px solid var(--color-border);border-radius:var(--radius-sm);width:100%;min-height:38px;color:var(--color-text);font:inherit;background:#fff;padding:0 10px;font-size:13px}.assignment-inline-form{display:contents}.assignment-reset-trigger{grid-column:2/-1;justify-self:end}.assignment-reset-form{flex-wrap:wrap;grid-column:2/-1;justify-content:flex-end;align-items:center;gap:10px;display:flex}.assignment-reset-form span{color:var(--color-text-muted);font-size:13px;font-weight:800}@media (max-width:980px){.group-management-grid,.project-review-layout,.assignment-workspace-grid,.assignment-card{grid-template-columns:1fr}.review-next-step{flex-direction:column;align-items:stretch}.student-move-form{grid-template-columns:1fr}.manage-student-section-heading{flex-direction:column;align-items:stretch}.manage-student-search{width:100%}}.create-user-layout{grid-template-columns:minmax(0,1fr) 300px;gap:28px;display:grid}.user-form-panel{padding:32px 40px 28px}.user-form-panel .field-group{margin-bottom:26px}.field-hint{color:var(--color-text-muted);margin:-2px 0 0;font-size:13px}.role-fieldset,.status-fieldset{border:0;min-width:0;margin:0 0 28px;padding:0}.role-fieldset legend,.status-fieldset legend{margin-bottom:3px;font-size:14px;font-weight:800}.role-fieldset>p,.status-fieldset>p{color:var(--color-text-muted);margin:0 0 12px;font-size:13px}.role-option-grid{grid-template-columns:repeat(3,minmax(160px,1fr));gap:12px;display:grid}.role-option,.status-option{border:1px solid var(--color-border);border-radius:var(--radius-md);cursor:pointer;background:#fff;align-items:center;gap:12px;min-height:48px;display:flex}.role-option{color:var(--color-text);padding:0 14px;font-size:14px;font-weight:800}:is(.role-option:has(input:checked),.status-option:has(input:checked)){background:#e6f3ee85;border-color:#2e7d5b61}.role-option input,.status-option input{width:18px;height:18px;accent-color:var(--color-primary);margin:0}.role-option-icon,.role-guide-icon{color:var(--color-link);place-items:center;display:inline-grid}.role-option-icon svg{width:22px;height:22px}.status-option-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;display:grid}.status-option{padding:12px 14px}.status-option span,.status-option strong,.status-option small{display:block}.status-option strong{color:var(--color-text);font-size:14px}.status-option small{color:var(--color-text-muted);margin-top:4px;font-size:13px}.user-form-actions{border-top:1px solid var(--color-border-soft);justify-content:space-between;align-items:center;gap:14px;padding-top:28px;display:flex}.user-form-primary-actions{justify-content:flex-end;gap:14px;display:flex}.role-guide{align-self:start;padding:26px}.role-guide h2{margin:0 0 14px;font-size:18px}.role-guide>p{color:var(--color-text-muted);margin:0 0 20px;font-size:14px;line-height:1.5}.role-guide-list{display:grid}.role-guide-item{border-top:1px solid var(--color-border-soft);grid-template-columns:28px 1fr;gap:12px;padding:18px 0;display:grid}.role-guide-icon svg{width:22px;height:22px}.role-guide-item h3{margin:0 0 5px;font-size:14px}.role-guide-item p{color:var(--color-text-muted);margin:0;font-size:13px;line-height:1.45}.final-marking-form{gap:22px;display:grid}.final-marking-context{margin-bottom:0}.final-marking-overview-grid{grid-template-columns:minmax(0,1fr) minmax(320px,.8fr);gap:20px;display:grid}.final-marking-small-table output{border:1px solid var(--color-border);border-radius:var(--radius-md);min-width:128px;min-height:32px;color:var(--color-text-muted);white-space:nowrap;background:#f7f8fb;justify-content:center;align-items:center;padding:0 12px;font-weight:700;display:inline-flex}.final-marking-small-table.users-table th:last-child,.final-marking-small-table.users-table td:last-child{text-align:right;width:260px}.final-marking-primary-entry-row th,.final-marking-primary-entry-row td{background:#f7fbff}.final-marking-primary-entry-row th{color:var(--color-primary)}.final-marking-mark-input-row.final-marking-group-mark-input{grid-template-columns:100px auto;justify-content:end;justify-self:end;width:auto;max-width:none}.final-marking-mark-input-row.final-marking-group-mark-input input{border-color:var(--color-primary-muted);height:40px;padding-inline:14px;box-shadow:0 0 0 3px #2f73c81a}.final-marking-tabs{border-bottom:1px solid var(--color-border);flex-wrap:wrap;gap:4px;display:flex}.final-marking-tab{border-radius:var(--radius-md) var(--radius-md) 0 0;min-height:48px;color:var(--color-link);cursor:pointer;background:0 0;border:1px solid #0000;border-bottom:0;flex:135px;padding:0 18px}.final-marking-tab:hover,.final-marking-tab:focus-visible{background:var(--color-primary-soft);outline:0}.final-marking-tab-active{border-color:var(--color-border);color:var(--color-text);background:var(--color-surface);box-shadow:inset 0 3px 0 var(--color-link)}.final-marking-tab-panel{padding:24px 28px}.final-marking-tab-panel .users-table-wrap,.final-marking-overview-grid .users-table-wrap{overflow-x:visible}.final-marking-tab-panel .users-table,.final-marking-small-table.users-table{min-width:0}.final-marking-tab-panel[hidden]{display:none}.final-marking-help{color:var(--color-text-muted);margin:0 0 22px;line-height:1.55}.final-marking-draft-warning{border-radius:var(--radius-md);color:#7a4a0d;background:#fff4db;border:1px solid #b07d2a57;border-left:5px solid #d28a16;grid-template-columns:32px minmax(0,1fr);align-items:start;gap:12px;margin:0 0 22px;padding:14px 16px;font-size:14px;line-height:1.45;display:grid;box-shadow:0 10px 28px #7a4a0d14}.final-marking-draft-warning-icon{color:#fffaf0;background:#b66b08;border-radius:999px;justify-content:center;align-items:center;width:28px;height:28px;font-weight:900;display:inline-flex}.final-marking-draft-warning strong,.final-marking-draft-warning span:not(.final-marking-draft-warning-icon){display:block}.final-marking-draft-warning strong{color:#5f3707;margin-bottom:2px;font-size:15px}.final-marking-peer-heading{justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:22px;display:flex}.final-marking-peer-heading .final-marking-help{margin-bottom:0}.final-marking-saved-badge{border-radius:var(--radius-md);color:#1d6b45;white-space:nowrap;background:#e7f6ee;border:1px solid #9bd3ba;align-items:center;min-height:32px;padding:0 12px;font-size:13px;font-weight:800;display:inline-flex}.final-marking-matrix{table-layout:fixed}.final-marking-matrix th,.final-marking-matrix td{vertical-align:middle;min-width:0;padding-inline:8px}.final-marking-matrix th:first-child,.final-marking-matrix td:first-child{width:92px}.final-marking-matrix th:last-child,.final-marking-matrix td:last-child{text-align:left;width:138px}.final-marking-matrix th span,.final-marking-matrix th strong{display:block}.final-marking-matrix th strong{color:var(--color-text-muted);overflow-wrap:anywhere;text-transform:none;margin-top:4px;font-weight:600;line-height:1.35}.final-marking-matrix input[type=number],.final-marking-student-grid input,.final-marking-factor-card input,.final-marking-factor-card textarea{border:1px solid var(--color-border);border-radius:var(--radius-md);width:100%;min-width:0;color:var(--color-text);background:#fff}.final-marking-matrix input[type=number],.final-marking-student-grid input,.final-marking-factor-card input{height:44px;padding:0 12px}.final-marking-factor-card textarea{resize:vertical;padding:10px 12px;line-height:1.45}.final-marking-checkbox{color:var(--color-text-muted);white-space:nowrap;align-items:center;gap:8px;font-weight:600;display:inline-flex}.final-marking-cell-error{white-space:normal;margin-top:6px;line-height:1.25;display:block}.final-marking-no-submission{margin-bottom:8px}.final-marking-row-total{color:var(--color-text-muted);white-space:normal;font-size:13px;font-weight:700;line-height:1.35;display:block}.final-marking-row-total-error{color:#a23b3b}.final-marking-row-error{white-space:normal;margin-top:4px;line-height:1.3;display:block}.final-marking-panel-actions{flex-wrap:wrap;gap:10px;margin-top:22px;display:flex}.final-marking-student-grid{grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:18px;display:grid}.final-marking-diary-grid{grid-template-columns:repeat(auto-fit,minmax(240px,1fr))}.final-marking-student-grid label,.final-marking-factor-card label{gap:8px;display:grid}.final-marking-student-grid span,.final-marking-factor-card span{color:var(--color-text-muted);line-height:1.4}.final-marking-student-grid strong,.final-marking-factor-card strong{color:var(--color-text);display:block}.final-marking-student-grid em,.final-marking-factor-card em{color:var(--color-text-muted);font-style:normal;font-weight:700}.final-marking-mark-input-row{grid-template-columns:7.5ch auto;align-items:center;gap:10px;width:max-content;max-width:100%;display:inline-grid}.final-marking-mark-input-row input{text-align:right;width:100%;min-width:0}.final-marking-mark-input-row em{white-space:nowrap;font-size:18px}.final-marking-factor-grid{grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:18px;display:grid}.final-marking-factor-card{border:1px solid var(--color-border-soft);border-radius:var(--radius-md);background:#fbfcfe;gap:16px;padding:16px;display:grid}.final-marking-subheading{color:var(--color-text);margin:28px 0 14px;font-size:16px}.final-marking-presentation-summary-table.users-table th:last-child,.final-marking-presentation-summary-table.users-table td:last-child{text-align:left;width:min(360px,28%)}.final-marking-summary-stack{gap:18px;display:grid}.final-marking-summary-student{border-top:1px solid var(--color-border-soft);gap:14px;padding-top:18px;display:grid}.final-marking-summary-student:first-child{border-top:0;padding-top:0}.final-marking-summary-student h3{margin:0;font-size:16px}.final-marking-summary-student output{color:var(--color-primary);font-weight:800}.final-marking-student-feedback-table{table-layout:fixed}.final-marking-student-feedback-table.users-table th,.final-marking-student-feedback-table.users-table td{vertical-align:top;white-space:normal;overflow-wrap:anywhere;min-width:180px;line-height:1.45}.final-marking-student-feedback-table.users-table th:first-child{width:220px;color:var(--color-text);line-height:1.45}.final-marking-student-feedback-table.users-table thead th:first-child{color:var(--color-text-subtle);text-transform:uppercase;font-size:12px}.final-marking-student-feedback-table.users-table thead th:not(:first-child) span,.final-marking-student-feedback-table.users-table thead th:not(:first-child) strong{display:block}.final-marking-student-feedback-table.users-table thead th:not(:first-child) strong{color:var(--color-text-muted);text-transform:none;margin-top:4px;font-size:13px;font-weight:600}.final-marking-student-feedback-table.users-table th:first-child strong{color:var(--color-text)}.final-marking-student-feedback-table.users-table th:last-child,.final-marking-student-feedback-table.users-table td:last-child{text-align:left;width:auto}.empty-state-note{color:var(--color-text-muted);margin:0}@media (max-width:760px){.auth-topbar{height:82px;padding:27px 24px}.auth-backdrop{inset-top:82px}.campus-illustration,.dot-field{display:none}.auth-card{margin-top:32px}.auth-card-body{padding:32px 24px 40px}.auth-card h1{font-size:28px}.auth-card p{font-size:16px}.form-row{flex-direction:column;align-items:flex-start;gap:12px}.auth-card-footer{padding:22px 18px 28px}.admin-header{padding:0 20px;flex-direction:column;align-items:flex-start;gap:14px;height:auto;padding-block:16px}.admin-nav,.admin-account{width:100%}.admin-nav{flex-wrap:wrap}.admin-nav-menu-panel{margin-top:8px;position:static}.admin-account{border-radius:var(--radius-md);justify-content:space-between}.page-frame{padding:24px 18px 36px}.page-heading-row,.user-toolbar{flex-direction:column;align-items:stretch}.page-heading-actions{justify-content:flex-start}.search-form{flex-direction:column;align-items:stretch}.search-box{grid-template-columns:28px minmax(0,1fr)}.manage-workspace-section{padding:16px 14px}.manage-workspace-section-heading{flex-direction:column;align-items:stretch;gap:12px}.section-count-pill{align-self:flex-start}.manage-overview-reference,.filter-row{justify-content:flex-start}.metric-grid,.create-user-layout,.student-import-layout,.group-generation-layout,.presentation-scheduling-layout,.presentation-form-grid,.presentation-capacity,.status-option-grid,.final-marking-overview-grid,.role-option-grid{grid-template-columns:1fr}.user-form-panel{padding:24px 18px}.user-form-actions{flex-direction:column-reverse;align-items:stretch}.user-form-primary-actions{flex-direction:column-reverse}.primary-button,.secondary-button,.danger-button,.student-count-pill,.user-form-primary-actions{width:100%}.cohort-pill{min-width:min(100%,220px)}.file-drop{grid-template-columns:1fr}.student-import-panel,.student-preview-panel{padding:20px 16px}.presentation-break-row{flex-direction:column;align-items:stretch}.presentation-break-row input[type=time]{width:100%}}
