/* Course operational risk workspace */
.course-risk-admin{--risk-navy:#17364D;--risk-soft:#F3F7F6}
.course-risk-page-head{display:flex;align-items:flex-start;justify-content:space-between;gap:24px;margin-bottom:24px}
.course-risk-page-head h1{margin:.35rem 0 .55rem}
.course-risk-page-head .eyebrow,.course-risk-section-head .eyebrow,.course-risk-form .eyebrow,.course-risk-control-form .eyebrow{display:inline-flex;align-items:center;gap:7px;color:#A33A2B;font-weight:850;letter-spacing:.12em;text-transform:uppercase}
.staff-only-badge{display:inline-flex;align-items:center;gap:7px;flex:0 0 auto;padding:9px 13px;border:1px solid #A9D8BE;border-radius:999px;background:#EAF7F0;color:#176B3A;font-weight:800}
.course-risk-tabs{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin-bottom:24px;padding:7px;border:1px solid var(--border);border-radius:8px;background:var(--surface-2)}
.course-risk-tabs-operational{grid-template-columns:repeat(3,minmax(0,1fr))}
.course-risk-tabs button{display:flex;align-items:center;gap:12px;min-height:66px;padding:10px 14px;border:1px solid transparent;border-radius:6px;background:transparent;color:var(--text-secondary);text-align:left}
.course-risk-tabs button>i{display:inline-flex;align-items:center;justify-content:center;width:38px;height:38px;flex:0 0 38px;border-radius:7px;background:color-mix(in srgb,#A33A2B 10%,var(--surface-1));color:#A33A2B;font-size:21px}
.course-risk-tabs button span{display:flex;flex-direction:column;gap:2px;font-weight:800}
.course-risk-tabs button small{color:var(--text-muted);font-size:11px;font-weight:550}
.course-risk-tabs button:hover{border-color:color-mix(in srgb,#A33A2B 25%,var(--border));background:var(--surface-1);color:var(--text-primary)}
.course-risk-tabs button.active{border-color:#A33A2B;background:#A33A2B;color:#fff;box-shadow:0 6px 16px color-mix(in srgb,#A33A2B 24%,transparent)}
.course-risk-tabs button.active>i{background:rgba(255,255,255,.16);color:#fff}
.course-risk-tabs button.active small{color:rgba(255,255,255,.76)}
.course-risk-loading{display:grid;place-items:center;min-height:280px;border:1px dashed var(--border);border-radius:8px;color:var(--text-muted)}
.course-risk-loading i{font-size:34px;animation:spin 1s linear infinite}
.course-risk-application-hero{display:flex;align-items:flex-start;justify-content:space-between;gap:24px;margin-bottom:14px;padding:22px;border:1px solid color-mix(in srgb,#2563B8 30%,var(--border));border-radius:8px;background:linear-gradient(110deg,color-mix(in srgb,#2563B8 9%,var(--surface-1)),var(--surface-1) 54%,color-mix(in srgb,#17735A 6%,var(--surface-1)))}
.course-risk-application-hero h2{margin:.35rem 0 .45rem;font-size:25px}
.course-risk-application-hero p{max-width:850px;margin:0;color:var(--text-secondary)}
.course-risk-course-meta{display:flex;flex-wrap:wrap;gap:13px;margin-top:11px;color:var(--text-muted);font-size:11px;font-weight:750}
.course-risk-course-meta span{display:inline-flex;align-items:center;gap:5px}
.course-risk-applied-badge{display:inline-flex;align-items:center;gap:7px;flex:0 0 auto;padding:9px 12px;border:1px solid #A9D8BE;border-radius:999px;background:#EAF7F0;color:#176B3A;font-size:11px;font-weight:850}
.course-risk-application-flow{display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr) auto minmax(0,1fr);align-items:center;gap:9px;margin-bottom:14px;padding:9px;border:1px solid var(--border);border-radius:8px;background:var(--surface-2)}
.course-risk-flow-step{display:flex;align-items:center;gap:10px;width:100%;min-width:0;padding:10px;border:1px solid transparent;border-radius:6px;background:transparent;color:var(--text-primary);text-align:left;text-decoration:none}
.course-risk-flow-step:hover{border-color:color-mix(in srgb,#A33A2B 24%,var(--border));background:var(--surface-1);color:var(--text-primary)}
.course-risk-flow-step.active{border-color:color-mix(in srgb,#2563B8 34%,var(--border));background:var(--surface-1);box-shadow:inset 3px 0 #2563B8}
.course-risk-flow-step[role=tab]{cursor:pointer}
.course-risk-flow-step[role=tab]:focus-visible{outline:3px solid color-mix(in srgb,#2563B8 28%,transparent);outline-offset:2px}
.course-risk-flow-step.framework{border-style:dashed}
.course-risk-flow-step>i:first-child{display:grid;place-items:center;width:34px;height:34px;flex:0 0 34px;border-radius:6px;background:var(--surface-1);color:#A33A2B;font-size:18px}
.course-risk-flow-step.active>i:first-child{background:#E9F2FF;color:#2563B8}
.course-risk-flow-step>i:last-child:not(:first-child){margin-left:auto;color:var(--text-muted)}
.course-risk-application-flow span{display:flex;min-width:0;flex-direction:column}
.course-risk-application-flow b{font-size:11px}
.course-risk-application-flow small{margin-top:2px;overflow:hidden;color:var(--text-muted);font-size:9px;text-overflow:ellipsis;white-space:nowrap}
.course-risk-application-flow>i{color:var(--text-muted)}
.course-risk-application-panel[hidden]{display:none!important}
.course-risk-panel-intro{display:flex;align-items:flex-end;justify-content:space-between;gap:18px;margin:2px 0 14px;padding:0 2px}
.course-risk-panel-intro h2{margin:3px 0 0;font-size:22px}
.course-risk-panel-intro p{max-width:820px;margin:5px 0 0;color:var(--text-muted)}
.course-risk-panel-intro>span{display:inline-flex;align-items:center;gap:7px;flex:0 0 auto;padding:8px 11px;border:1px solid color-mix(in srgb,#2563B8 25%,var(--border));border-radius:999px;background:color-mix(in srgb,#2563B8 7%,var(--surface-1));color:#2563B8;font-size:11px;font-weight:850}
.course-risk-application-stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin-bottom:16px}
.course-risk-application-stats article{display:flex;align-items:baseline;gap:9px;padding:13px 15px;border:1px solid var(--border);border-radius:7px;background:var(--surface-1)}
.course-risk-application-stats strong{font-size:22px;color:#2563B8}
.course-risk-application-stats span{color:var(--text-muted);font-size:10px;font-weight:800;text-transform:uppercase}
.course-risk-application-stats article.good strong{color:#17735A}
.course-risk-application-stats article.attention{border-color:#E7C2BA;background:#FDF5F3}
.course-risk-application-stats article.attention strong{color:#A33A2B}
.course-risk-application-grid{display:grid;grid-template-columns:minmax(320px,.85fr) minmax(520px,1.45fr);gap:16px;margin-bottom:16px}
.course-risk-application-grid>*{min-width:0}
.course-risk-objective-list{display:grid;gap:7px}
.course-risk-objective-list>article{display:grid;grid-template-columns:48px minmax(0,1fr) 30px;align-items:start;gap:10px;padding:10px;border:1px solid var(--border);border-radius:6px;background:var(--surface-1)}
.course-risk-objective-list>article.gap,.course-risk-week-grid>article.gap,.course-risk-area-grid>article.gap{border-style:dashed;opacity:.72}
.course-risk-objective-code{display:grid;place-items:center;min-height:38px;border-radius:6px;background:#E9F2FF;color:#2563B8;font-size:11px;font-weight:900}
.course-risk-objective-list>article>div{display:flex;min-width:0;flex-direction:column}
.course-risk-objective-list b{font-size:11px}
.course-risk-objective-list small{margin-top:2px;color:var(--text-muted);font-size:9px;line-height:1.35}
.course-risk-objective-list>article>strong{display:grid;place-items:center;width:27px;height:27px;border-radius:50%;background:var(--surface-2);font-size:10px}
.course-risk-map-chips{display:flex;flex-wrap:wrap;gap:4px;margin-top:6px}
.course-risk-map-chips button{min-height:22px;padding:2px 6px;border:1px solid color-mix(in srgb,var(--risk-color) 38%,var(--border));border-radius:999px;background:color-mix(in srgb,var(--risk-color) 11%,var(--surface-1));color:color-mix(in srgb,var(--risk-color) 88%,#111);font-size:8px;font-weight:900}
.course-risk-map-chips button:hover{background:var(--risk-color);color:#fff}
.course-risk-no-map{color:var(--text-muted);font-size:8px;font-style:italic}
.course-risk-week-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:7px}
.course-risk-week-grid>article{min-width:0;padding:9px;border:1px solid color-mix(in srgb,var(--risk-color,var(--border)) 35%,var(--border));border-radius:6px;background:color-mix(in srgb,var(--risk-color,var(--surface-1)) 7%,var(--surface-1))}
.course-risk-week-grid>article>span{display:inline-flex;color:#2563B8;font-size:10px;font-weight:900}
.course-risk-week-grid>article>strong{float:right;color:var(--text-primary);font-size:15px}
.course-risk-week-grid>article>small{display:block;clear:both;margin-top:3px;overflow:hidden;color:var(--text-muted);font-size:8px;text-overflow:ellipsis;white-space:nowrap}
.course-risk-area-map,.course-risk-monitoring-card{margin-bottom:16px}
.course-risk-area-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}
.course-risk-area-grid>article{display:grid;grid-template-columns:38px minmax(0,1fr);gap:10px;padding:11px;border:1px solid var(--border);border-radius:6px;background:var(--surface-1)}
.course-risk-area-grid>article>i{display:grid;place-items:center;width:38px;height:38px;border-radius:6px;background:#E7F6F1;color:#17735A;font-size:19px}
.course-risk-area-grid>article>div{display:flex;min-width:0;flex-direction:column}
.course-risk-area-grid b{font-size:11px}
.course-risk-area-grid small{margin-top:2px;color:var(--text-muted);font-size:9px}
.course-risk-monitoring-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
.course-risk-monitoring-list>article{display:grid;grid-template-columns:10px minmax(0,1fr) 44px;align-items:start;gap:10px;padding:11px;border:1px solid var(--border);border-radius:6px;background:var(--surface-1)}
.course-risk-monitoring-list .course-risk-band-dot{margin-top:5px}
.course-risk-monitoring-list>article>div{display:flex;min-width:0;flex-direction:column}
.course-risk-monitoring-list button{padding:0;border:0;background:transparent;color:var(--text-primary);font-size:11px;font-weight:850;text-align:left}
.course-risk-monitoring-list button:hover{color:#A33A2B}
.course-risk-monitoring-list p{margin:5px 0;color:var(--text-secondary);font-size:10px;line-height:1.4}
.course-risk-monitoring-list small{display:flex;align-items:flex-start;gap:5px;color:var(--text-muted);font-size:8px;line-height:1.35}
.course-risk-monitoring-list>article>strong{display:grid;place-items:center;width:42px;height:42px;border:1px solid color-mix(in srgb,var(--risk-color) 35%,var(--border));border-radius:6px;background:color-mix(in srgb,var(--risk-color) 12%,var(--surface-1));color:color-mix(in srgb,var(--risk-color) 88%,#111);font-size:17px}
.course-risk-summary{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:10px;margin-bottom:16px}
.course-risk-stat{display:grid;grid-template-columns:38px auto;grid-template-rows:auto auto;column-gap:10px;padding:14px;border:1px solid var(--border);border-radius:7px;background:var(--surface-1)}
.course-risk-stat i{grid-row:1/-1;align-self:center;display:grid;place-items:center;width:38px;height:38px;border-radius:7px;background:var(--risk-stat-bg);color:var(--risk-stat-color);font-size:20px}
.course-risk-stat strong{font-size:20px;line-height:1;color:var(--text-primary)}
.course-risk-stat span{margin-top:3px;color:var(--text-muted);font-size:11px;font-weight:700;text-transform:uppercase}
.course-risk-stat.blue{--risk-stat-color:#2563B8;--risk-stat-bg:#E9F2FF}
.course-risk-stat.amber{--risk-stat-color:#8A5A00;--risk-stat-bg:#FFF4D6}
.course-risk-stat.red{--risk-stat-color:#A33A2B;--risk-stat-bg:#FBECEA}
.course-risk-stat.violet{--risk-stat-color:#6D4AB0;--risk-stat-bg:#F1EBFA}
.course-risk-stat.green{--risk-stat-color:#17735A;--risk-stat-bg:#E7F6F1}
.course-risk-register-grid{display:grid;grid-template-columns:minmax(0,1.75fr) minmax(270px,.75fr);gap:16px;margin-bottom:16px}
.course-risk-register-grid>*{min-width:0}
.course-risk-map-card,.course-risk-priority-card,.course-risk-list-card,.course-risk-controls-card,.course-risk-method-form{border-radius:7px}
.course-risk-section-head{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:14px}
.course-risk-section-head h2{margin:2px 0 0;font-size:21px}
.course-risk-section-head p{max-width:720px;margin:5px 0 0;color:var(--text-muted)}
.course-risk-boundary{display:inline-flex;align-items:center;gap:7px;padding:8px 10px;border:1px solid #A9D8BE;border-radius:999px;background:#EAF7F0;color:#176B3A;font-size:12px;font-weight:800}
.course-risk-matrix-wrap{width:100%;max-width:100%;min-width:0;overflow-x:auto;overflow-y:hidden;padding-bottom:2px}
.course-risk-matrix{width:100%;min-width:570px;border-collapse:separate;border-spacing:5px;table-layout:fixed}
.course-risk-matrix caption{margin-bottom:5px;color:var(--text-muted);font-size:11px;text-align:left}
.course-risk-matrix caption span{font-weight:800;text-transform:uppercase}
.course-risk-matrix th{height:42px;padding:3px;color:var(--text-muted);font-size:9px;text-align:center;vertical-align:middle}
.course-risk-matrix th b,.course-risk-matrix th span{display:block}
.course-risk-matrix th b{color:var(--text-primary);font-size:12px}
.course-risk-matrix tbody th{width:84px;text-align:right}
.course-risk-matrix-cell{position:relative;height:76px;padding:5px;border:1px solid color-mix(in srgb,var(--risk-color) 38%,var(--border));border-radius:6px;background:color-mix(in srgb,var(--risk-color) 15%,var(--surface-1));text-align:center;vertical-align:top}
.course-risk-matrix-cell>strong{display:block;color:color-mix(in srgb,var(--risk-color) 85%,#111);font-size:16px}
.course-risk-matrix-cell.editable{height:72px;padding:0;vertical-align:middle;transition:border-color .16s ease,box-shadow .16s ease,transform .16s ease}
.course-risk-matrix-cell.editable:hover{z-index:1;border-color:color-mix(in srgb,var(--risk-color) 72%,var(--border));box-shadow:0 7px 16px color-mix(in srgb,var(--risk-color) 18%,transparent);transform:translateY(-2px)}
.course-risk-matrix-cell.editable:focus-within{z-index:2;border-color:var(--accent);box-shadow:0 0 0 4px var(--focus-ring),0 8px 18px color-mix(in srgb,var(--risk-color) 18%,transparent)}
.course-risk-matrix-score{display:flex;align-items:center;justify-content:center;flex-direction:column;width:100%;min-width:0;height:70px;margin:0;padding:0;border:0;border-radius:5px;background:transparent;color:color-mix(in srgb,var(--risk-color) 88%,var(--text-primary));line-height:1;text-align:center;cursor:pointer}
.course-risk-matrix-score strong{font-size:20px;font-weight:850}
.course-risk-matrix-score small{margin-top:6px;color:var(--text-muted);font-size:8px;font-weight:750;letter-spacing:.08em}
.course-risk-matrix-score:hover{border:0;background:color-mix(in srgb,var(--risk-color) 7%,transparent);outline:0}
.course-risk-matrix-score:focus-visible{outline:2px solid var(--accent);outline-offset:-3px}
.course-risk-matrix-score[aria-pressed=true]{background:color-mix(in srgb,var(--risk-color) 11%,var(--surface-1));box-shadow:inset 0 0 0 2px var(--accent)}
.course-risk-matrix-items{display:flex;flex-wrap:wrap;justify-content:center;gap:3px;margin-top:5px}
.course-risk-matrix-items button{min-height:21px;padding:2px 5px;border:1px solid color-mix(in srgb,var(--risk-color) 55%,var(--border));border-radius:4px;background:var(--surface-1);color:var(--text-primary);font-size:8px;font-weight:850}
.course-risk-matrix-items button:hover{background:var(--risk-color);color:#fff}
.course-risk-legend{display:flex;flex-wrap:wrap;gap:10px;margin-top:9px;color:var(--text-muted);font-size:10px;font-weight:750}
.course-risk-legend span{display:inline-flex;align-items:center;gap:5px}
.course-risk-legend i,.course-risk-band-dot{display:inline-block;width:10px;height:10px;border-radius:50%;background:var(--risk-color);box-shadow:0 0 0 3px color-mix(in srgb,var(--risk-color) 14%,transparent)}
.course-risk-priorities{display:flex;flex-direction:column;gap:7px}
.course-risk-priorities button{display:grid;grid-template-columns:12px minmax(0,1fr) auto;align-items:center;gap:9px;width:100%;padding:10px;border:1px solid var(--border);border-radius:6px;background:var(--surface-1);color:var(--text-primary);text-align:left}
.course-risk-priorities button:hover{border-color:#A33A2B;background:color-mix(in srgb,#A33A2B 4%,var(--surface-1))}
.course-risk-priorities button span:nth-child(2){display:flex;min-width:0;flex-direction:column}
.course-risk-priorities button b{overflow:hidden;font-size:12px;text-overflow:ellipsis;white-space:nowrap}
.course-risk-priorities button small{margin-top:2px;color:var(--text-muted);font-size:10px}
.course-risk-priorities button>strong{font-size:17px}
.course-risk-toolbar{display:grid;grid-template-columns:minmax(260px,1fr) 180px 170px;gap:10px;margin:8px 0 14px}
.course-risk-toolbar>label:not(.search-field){display:flex;align-items:center;gap:7px;color:var(--text-muted);font-size:10px;font-weight:800;text-transform:uppercase}
.course-risk-toolbar select{min-width:0;height:42px;flex:1}
.course-risk-toolbar .search-field{position:relative;display:block}
.course-risk-toolbar .search-field i{position:absolute;z-index:1;top:50%;left:13px;transform:translateY(-50%);color:var(--text-muted);font-size:18px}
.course-risk-toolbar .search-field input{height:42px;padding-left:39px}
.course-risk-table{border:1px solid var(--border);border-radius:7px;overflow:hidden}
.course-risk-table-head,.course-risk-row{display:grid;grid-template-columns:minmax(280px,1.35fr) 115px minmax(180px,.85fr) minmax(150px,.7fr) 84px;align-items:center;gap:10px}
.course-risk-table-head{padding:8px 12px;background:var(--surface-2);color:var(--text-muted);font-size:9px;font-weight:850;letter-spacing:.08em;text-transform:uppercase}
.course-risk-row{min-height:76px;padding:10px 12px;border-top:1px solid var(--border);background:var(--surface-1)}
.course-risk-row:hover{background:color-mix(in srgb,#A33A2B 3%,var(--surface-1))}
.course-risk-identity{display:flex;align-items:flex-start;gap:11px;min-width:0}
.course-risk-identity .course-risk-band-dot{flex:0 0 10px;margin-top:5px}
.course-risk-identity>div,.course-risk-treatment span,.course-risk-owner{display:flex;min-width:0;flex-direction:column}
.course-risk-identity b{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.course-risk-identity span,.course-risk-score span,.course-risk-owner span{margin-top:3px;color:var(--text-muted);font-size:10px}
.course-risk-identity small{display:flex;align-items:center;gap:4px;margin-top:5px;color:#2563B8;font-size:9px;font-weight:750}
.course-risk-identity small.bad{color:#A33A2B}
.course-risk-score strong{display:inline-flex;width:38px;height:38px;align-items:center;justify-content:center;border:1px solid color-mix(in srgb,var(--risk-color) 35%,var(--border));border-radius:6px;background:color-mix(in srgb,var(--risk-color) 14%,var(--surface-1));color:color-mix(in srgb,var(--risk-color) 90%,#111);font-size:16px}
.course-risk-score span{display:block}
.course-risk-treatment{display:flex;align-items:center;gap:8px}
.course-risk-treatment>i{display:grid;place-items:center;width:31px;height:31px;flex:0 0 31px;border-radius:6px}
.course-risk-treatment.ok>i{background:#EAF7F0;color:#176B3A}
.course-risk-treatment.attention>i{background:#FBECEA;color:#A33A2B}
.course-risk-treatment b{font-size:11px}
.course-risk-treatment small{margin-top:2px;color:var(--text-muted);font-size:9px}
.course-risk-owner b{font-size:11px}
.course-risk-actions{display:flex;justify-content:flex-end;gap:5px}
.course-risk-actions .icon-btn{width:34px;height:34px}
.course-risk-actions .icon-btn.danger{color:var(--danger-text)}
.course-risk-actions .icon-btn.danger:hover{border-color:var(--danger-text);background:var(--danger-bg)}

.fig-modal-inner:has(.course-risk-form){width:min(1420px,calc(100vw - 32px));max-width:none}
.fig-modal-inner:has(.course-risk-control-form){width:min(850px,calc(100vw - 32px));max-width:none}
.course-risk-form,.course-risk-control-form{padding:24px}
.course-risk-form-head{display:flex;align-items:flex-start;justify-content:space-between;gap:18px;padding:0 58px 18px 0;border-bottom:1px solid var(--border)}
.course-risk-form-head h2,.course-risk-control-form h2{margin:.25rem 0 .35rem}
.course-risk-form-head p{margin:0;color:var(--text-muted)}
.course-risk-live-score{display:flex;align-items:center;gap:10px;min-width:146px;padding:9px 12px;border:1px solid var(--border);border-radius:7px;background:var(--surface-2)}
.course-risk-live-score>strong{display:grid;place-items:center;width:48px;height:48px;border-radius:6px;background:color-mix(in srgb,var(--risk-color) 18%,var(--surface-1));color:color-mix(in srgb,var(--risk-color) 90%,#111);font-size:24px}
.course-risk-live-score span{display:flex;flex-direction:column;font-weight:800}
.course-risk-live-score small{margin-top:3px;color:var(--text-muted);font-size:10px}
.course-risk-form-section{padding:20px 0;border-bottom:1px solid var(--border)}
.course-risk-form-section>h3,.course-risk-form-title h3{display:flex;align-items:center;gap:8px;margin:0 0 12px}
.course-risk-form-title{display:flex;align-items:flex-start;justify-content:space-between;gap:15px;margin-bottom:12px}
.course-risk-form-title p{margin:3px 0 0;color:var(--text-muted)}
.course-risk-form-title>span{padding:6px 9px;border-radius:999px;background:var(--surface-2);color:var(--text-muted);font-size:10px;font-weight:800;text-transform:uppercase}
.course-risk-fields,.course-risk-control-fields{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
.course-risk-fields label,.course-risk-control-fields label,.course-risk-rationale,.course-risk-mitigation-detail label,.course-risk-method-form label{display:flex;flex-direction:column;gap:5px;color:var(--text-secondary);font-size:11px;font-weight:800}
.course-risk-fields .wide,.course-risk-control-fields .wide{grid-column:span 2}
.course-risk-fields input,.course-risk-fields select,.course-risk-fields textarea,.course-risk-control-fields input,.course-risk-control-fields textarea,.course-risk-rating-grid select,.course-risk-mitigation-detail select,.course-risk-mitigation-detail textarea{width:100%}
.course-risk-scope-section{background:linear-gradient(105deg,color-mix(in srgb,#2563B8 4%,var(--surface-1)),var(--surface-1))}
.course-risk-scope-block{margin-top:10px;padding:12px;border:1px solid var(--border);border-radius:7px;background:var(--surface-1)}
.course-risk-scope-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:9px}
.course-risk-scope-head>div{display:flex;min-width:0;flex-direction:column}
.course-risk-scope-head b{font-size:12px}
.course-risk-scope-head small{margin-top:3px;color:var(--text-muted);font-size:9px}
.course-risk-scope-head>span{display:flex;gap:4px}
.course-risk-scope-head button{min-height:27px;padding:4px 8px;border:1px solid var(--border);border-radius:5px;background:var(--surface-2);color:var(--text-secondary);font-size:9px;font-weight:800}
.course-risk-scope-head button:hover{border-color:#2563B8;color:#2563B8}
.course-risk-scope-options{display:grid;gap:7px}
.course-risk-scope-options.objectives{grid-template-columns:repeat(2,minmax(0,1fr))}
.course-risk-scope-options.areas{grid-template-columns:repeat(3,minmax(0,1fr))}
.course-risk-scope-options label{display:flex;align-items:flex-start;gap:8px;min-width:0;padding:9px;border:1px solid var(--border);border-radius:6px;background:var(--surface-2);cursor:pointer}
.course-risk-scope-options label:has(input:checked){border-color:color-mix(in srgb,#2563B8 45%,var(--border));background:#F2F7FF;box-shadow:inset 3px 0 #2563B8}
.course-risk-scope-options input{width:17px;height:17px;flex:0 0 17px;margin-top:1px}
.course-risk-scope-options label>i{margin-top:1px;color:#17735A;font-size:18px}
.course-risk-scope-options label>span{display:flex;min-width:0;flex-direction:column}
.course-risk-scope-options b{font-size:10px}
.course-risk-scope-options small{margin-top:2px;color:var(--text-muted);font-size:8px;line-height:1.35}
.course-risk-week-options{display:grid;grid-template-columns:repeat(15,minmax(36px,1fr));gap:5px}
.course-risk-week-options label{position:relative;cursor:pointer}
.course-risk-week-options input{position:absolute;opacity:0;pointer-events:none}
.course-risk-week-options span{display:grid;place-items:center;min-height:34px;border:1px solid var(--border);border-radius:5px;background:var(--surface-2);color:var(--text-muted);font-size:9px;font-weight:850}
.course-risk-week-options input:checked+span{border-color:#2563B8;background:#E9F2FF;color:#2563B8;box-shadow:inset 0 -3px #2563B8}
.course-risk-scope-notes{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-top:10px}
.course-risk-scope-notes label{display:flex;flex-direction:column;gap:5px;color:var(--text-secondary);font-size:11px;font-weight:800}
.course-risk-scope-notes textarea{width:100%}
.course-risk-threat-grid{display:grid;grid-template-columns:minmax(250px,.62fr) minmax(0,1.38fr);gap:12px}
.course-risk-threat-grid label{display:flex;flex-direction:column;gap:5px;color:var(--text-secondary);font-size:11px;font-weight:800}
.course-risk-threat-grid input,.course-risk-threat-grid select,.course-risk-threat-grid textarea{width:100%}
.course-risk-scale-stack{display:grid;gap:10px}
.course-risk-scale-field{min-width:0;margin:0;padding:11px;border:1px solid var(--border);border-radius:7px;background:var(--surface-1)}
.course-risk-scale-field legend{display:flex;align-items:baseline;gap:8px;max-width:100%;padding:0 6px}
.course-risk-scale-field legend b{font-size:12px}
.course-risk-scale-field legend small{color:var(--text-muted);font-size:9px;font-weight:500}
.course-risk-scale-options{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:6px}
.course-risk-scale-option{position:relative;min-width:0;cursor:pointer}
.course-risk-method-form .course-risk-scale-option{display:block;color:inherit;font-size:inherit;font-weight:inherit}
.course-risk-scale-option>input{position:absolute;width:1px;height:1px;opacity:0}
.course-risk-scale-option>span{display:grid;grid-template-columns:28px minmax(0,1fr);grid-template-rows:auto auto;gap:1px 7px;min-height:76px;padding:8px;border:1px solid var(--border);border-radius:6px;background:var(--surface-2);transition:border-color .16s,background .16s,box-shadow .16s}
.course-risk-scale-option>span>b{grid-row:1/3;display:grid;place-items:center;width:28px;height:28px;border-radius:50%;background:var(--surface-1);color:var(--accent-text);font-size:13px}
.course-risk-scale-option>span>strong{align-self:end;min-width:0;font-size:9px;text-transform:uppercase}
.course-risk-scale-option>span>small{color:var(--text-muted);font-size:8px;line-height:1.35}
.course-risk-scale-option>input:checked+span{border-color:#2563B8;background:#EFF6FF;box-shadow:inset 0 -3px #2563B8}
.course-risk-scale-option>input:focus-visible+span{outline:3px solid color-mix(in srgb,#2563B8 30%,transparent);outline-offset:2px}
.course-risk-method-note{display:flex;align-items:flex-start;gap:9px;margin-bottom:10px;padding:9px 11px;border:1px solid #B8D4F4;border-radius:6px;background:#F3F8FF;color:#24527E}
.course-risk-method-note>i{margin-top:1px;font-size:18px}
.course-risk-method-note>div{display:flex;flex-direction:column}
.course-risk-method-note b{font-size:10px}
.course-risk-method-note span{margin-top:2px;font-size:9px;line-height:1.4}
.course-risk-review-empty{display:flex;align-items:center;gap:11px;padding:15px;border:1px dashed var(--border);border-radius:7px;background:var(--surface-2)}
.course-risk-review-empty>i{font-size:25px;color:#2563B8}
.course-risk-review-empty>div{display:flex;flex-direction:column}
.course-risk-review-empty small{margin-top:3px;color:var(--text-muted)}
.course-risk-review-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:9px}
.course-risk-review-card{padding:11px;border:1px solid var(--border);border-radius:7px;background:var(--surface-1)}
.course-risk-review-card.completed{border-color:#9FD3B7;background:#F4FBF7}
.course-risk-review-card>header{display:grid;grid-template-columns:34px minmax(0,1fr) auto;align-items:center;gap:8px;margin-bottom:9px}
.course-risk-review-card>header>span{display:grid;place-items:center;width:34px;height:34px;border-radius:6px;background:var(--surface-2);color:var(--text-muted);font-size:19px}
.course-risk-review-card.completed>header>span{background:#DDF3E6;color:#176B3A}
.course-risk-review-card>header>div{display:flex;min-width:0;flex-direction:column}
.course-risk-review-card>header b{font-size:11px}
.course-risk-review-card>header small{color:var(--text-muted);font-size:8px}
.course-risk-review-card>header>strong{padding:4px 6px;border-radius:999px;background:var(--surface-2);color:var(--text-muted);font-size:8px;text-transform:uppercase}
.course-risk-review-card.completed>header>strong{background:#DDF3E6;color:#176B3A}
.course-risk-review-card>label{display:flex;flex-direction:column;gap:4px;color:var(--text-secondary);font-size:9px;font-weight:800}
.course-risk-review-card textarea{width:100%}
.course-risk-review-card>footer{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-top:8px}
.course-risk-review-card>footer small{color:var(--text-muted);font-size:8px}
.course-risk-review-card>footer button{min-height:34px;padding:6px 8px;font-size:9px}
.course-risk-rating-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
.course-risk-rating-grid>label{display:grid;grid-template-columns:minmax(0,1fr) 190px;align-items:center;gap:12px;padding:10px 11px;border:1px solid var(--border);border-radius:6px;background:var(--surface-1)}
.course-risk-rating-grid>label>span{display:flex;min-width:0;flex-direction:column}
.course-risk-rating-grid b{font-size:12px}
.course-risk-rating-grid small{margin-top:2px;color:var(--text-muted);font-size:9px;font-weight:500}
.course-risk-rationale{margin-top:10px}
.course-risk-mitigation-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}
.course-risk-mitigation{border:1px solid var(--border);border-radius:7px;background:var(--surface-1);overflow:hidden}
.course-risk-mitigation.selected{border-color:color-mix(in srgb,#17735A 40%,var(--border));box-shadow:inset 4px 0 #17735A}
.course-risk-mitigation-check{display:flex;align-items:flex-start;gap:9px;padding:11px;cursor:pointer}
.course-risk-mitigation-check input{width:18px;height:18px;flex:0 0 18px;margin-top:1px}
.course-risk-mitigation-check span{display:flex;min-width:0;flex-direction:column}
.course-risk-mitigation-check b{font-size:12px}
.course-risk-mitigation-check small{margin-top:3px;color:var(--text-muted);font-size:9px;line-height:1.4}
.course-risk-mitigation-detail{display:grid;grid-template-columns:160px minmax(0,1fr);gap:9px;padding:11px;border-top:1px solid var(--border);background:var(--surface-2)}
.course-risk-mitigation-detail .wide{grid-column:2}
.course-risk-evidence{grid-column:1/-1;display:flex;align-items:center;justify-content:space-between;gap:12px;padding-top:8px;border-top:1px dashed var(--border)}
.course-risk-evidence>div{display:flex;min-width:0;flex-direction:column;gap:5px}
.course-risk-evidence [data-risk-evidence-list]{display:flex;flex-wrap:wrap;gap:5px}
.course-risk-evidence-item{display:inline-flex;align-items:center;border:1px solid var(--border);border-radius:5px;background:var(--surface-1)}
.course-risk-evidence-item a{display:inline-flex;align-items:center;gap:4px;max-width:230px;padding:4px 6px;color:var(--accent-text);font-size:9px;text-decoration:none}
.course-risk-evidence-item a{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.course-risk-evidence-item button{display:grid;place-items:center;width:24px;height:24px;padding:0;border:0;border-left:1px solid var(--border);background:transparent;color:var(--danger-text)}
.course-risk-evidence-add{position:relative;flex:0 0 auto;overflow:hidden}
.course-risk-evidence-add input{position:absolute;width:1px;height:1px;opacity:0}
.course-risk-form-actions{position:sticky;bottom:-1px;z-index:3;display:flex;align-items:center;justify-content:flex-end;gap:9px;padding:15px 0 0;background:var(--surface-1)}
.course-risk-form-actions>span{margin-right:auto}

.course-risk-method-grid{display:grid;grid-template-columns:minmax(280px,.62fr) minmax(0,1.38fr);gap:20px}
.course-risk-method-grid>*{min-width:0}
.course-risk-method-grid>section{padding:15px;border:1px solid var(--border);border-radius:7px;background:var(--surface-1)}
.course-risk-method-grid>section>*{min-width:0;max-width:100%}
.course-risk-method-grid h3{margin:0 0 11px}
.course-risk-method-grid>section:first-child>label{margin-bottom:12px}
.course-risk-method-grid label small{color:var(--text-muted);font-size:9px;font-weight:500}
.course-risk-method-form input[type=range]{width:100%;min-width:0;accent-color:var(--accent)}
.course-risk-range-control{display:grid;grid-template-columns:minmax(0,1fr) 42px;align-items:center;gap:9px;margin-top:6px}
.course-risk-range-control output,.course-risk-weight-list output,.course-risk-band-editor output,.course-risk-cell-editor output{display:grid;place-items:center;min-width:38px;height:32px;border:1px solid var(--border);border-radius:5px;background:var(--surface-2);color:var(--text-primary);font-size:11px;font-weight:850}
.course-risk-weight-list{display:grid;gap:6px;margin:9px 0 16px;padding:9px;border:1px dashed var(--border);border-radius:6px}
.course-risk-weight-list[hidden]{display:none}
.course-risk-weight-list label{display:grid;grid-template-columns:minmax(0,1fr) minmax(100px,1fr) 42px;align-items:center;gap:8px}
.course-risk-weight-list input{min-width:0}
.course-risk-band-editor{display:grid;gap:6px}
.course-risk-band-editor>div{display:grid;grid-template-columns:auto minmax(0,1fr) 42px 48px;align-items:center;gap:6px;padding:7px;border:1px solid var(--border);border-radius:6px;background:var(--surface-2)}
.course-risk-band-editor [data-risk-band-label]{grid-column:1/4;grid-row:1}
.course-risk-band-editor [data-risk-band-color]{grid-column:4;grid-row:1}
.course-risk-band-editor>div>span{grid-column:1;grid-row:2;color:var(--text-muted);font-size:9px;font-weight:750;white-space:nowrap}
.course-risk-band-editor [data-risk-band-max]{grid-column:2/4;grid-row:2;width:100%}
.course-risk-band-editor>div output{grid-column:4;grid-row:2}
.course-risk-band-editor>div input[type=hidden]+output{grid-column:4;grid-row:2}
.course-risk-band-editor input{min-width:0}
.course-risk-band-editor input[type=color]{height:42px;padding:4px}
.course-risk-cell-editor{display:grid;grid-template-columns:minmax(105px,auto) 34px minmax(150px,1fr) 34px 42px;align-items:center;gap:8px;margin-top:11px;padding:10px;border:1px solid var(--border);border-radius:6px;background:var(--surface-2)}
.course-risk-cell-editor>div{display:flex;flex-direction:column;gap:2px}
.course-risk-cell-editor>div span{color:var(--text-muted);font-size:8px;font-weight:850;letter-spacing:.08em;text-transform:uppercase}
.course-risk-cell-editor>div b{font-size:12px}
.course-risk-cell-editor .icon-btn{width:34px;height:34px}
.course-risk-method-status{min-height:28px;padding-top:10px}
.course-risk-rubric-section{margin-top:20px;padding:16px;border:1px solid var(--border);border-radius:7px;background:var(--surface-1)}
.course-risk-rubric-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.course-risk-rubric-card{padding:11px;border:1px solid var(--border);border-radius:6px;background:var(--surface-2)}
.course-risk-rubric-card>header{display:flex;flex-direction:column;padding-bottom:8px;border-bottom:1px solid var(--border)}
.course-risk-rubric-card>header b{font-size:12px}
.course-risk-rubric-card>header small{margin-top:2px;color:var(--text-muted);font-size:9px}
.course-risk-rubric-card ol{display:grid;gap:5px;margin:8px 0 0;padding:0;list-style:none}
.course-risk-rubric-card li{display:grid;grid-template-columns:24px minmax(0,1fr);gap:7px}
.course-risk-rubric-card li>b{display:grid;place-items:center;width:24px;height:24px;border-radius:50%;background:var(--surface-1);color:var(--accent-text);font-size:10px}
.course-risk-rubric-card li>span{display:flex;min-width:0;flex-direction:column}
.course-risk-rubric-card li strong{font-size:9px;text-transform:uppercase}
.course-risk-rubric-card li small{color:var(--text-muted);font-size:8px;line-height:1.35}
.course-risk-control-fields{grid-template-columns:repeat(2,minmax(0,1fr));margin-top:18px}
.course-risk-control-fields .check{grid-column:1/-1;flex-direction:row;align-items:center}
.course-risk-control-fields .check input{width:18px;height:18px}
.course-risk-control-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}
.course-risk-control-list>article{display:grid;grid-template-columns:40px minmax(0,1fr) auto;gap:11px;padding:13px;border:1px solid var(--border);border-radius:7px;background:var(--surface-1)}
.course-risk-control-list>article.inactive{opacity:.62}
.course-risk-control-icon{display:grid;place-items:center;width:40px;height:40px;border-radius:7px;background:#EAF7F0;color:#176B3A;font-size:21px}
.course-risk-control-title{display:flex;align-items:center;justify-content:space-between;gap:8px}
.course-risk-control-title span{padding:3px 5px;border-radius:4px;background:var(--surface-2);color:var(--text-muted);font-size:8px;font-weight:850}
.course-risk-control-list p{margin:4px 0;color:var(--text-secondary);font-size:11px}
.course-risk-control-list small{display:flex;align-items:center;gap:4px;color:var(--text-muted);font-size:9px}
.course-risk-framework-hero{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:20px;padding:17px 19px;border:1px solid color-mix(in srgb,#A33A2B 26%,var(--border));border-radius:8px;background:color-mix(in srgb,#A33A2B 5%,var(--surface-1))}
.course-risk-framework-hero>div{display:flex;align-items:center;gap:13px;min-width:0}
.course-risk-framework-hero>div>i{display:grid;place-items:center;width:42px;height:42px;flex:0 0 42px;border-radius:7px;background:color-mix(in srgb,#A33A2B 12%,var(--surface-1));color:#A33A2B;font-size:22px}
.course-risk-framework-hero span{display:flex;min-width:0;flex-direction:column;gap:3px}
.course-risk-framework-hero small{color:var(--text-muted)}

@media(max-width:1200px){
  .course-risk-application-grid{grid-template-columns:1fr}
  .course-risk-area-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .course-risk-summary{grid-template-columns:repeat(3,minmax(0,1fr))}
  .course-risk-register-grid{grid-template-columns:1fr}
  .course-risk-table-head,.course-risk-row{grid-template-columns:minmax(260px,1.2fr) 105px minmax(170px,.8fr) 130px 76px}
  .course-risk-method-grid{grid-template-columns:1fr}
}
@media(max-width:900px){
  .course-risk-tabs{grid-template-columns:repeat(2,minmax(0,1fr))}
  .course-risk-tabs button{min-height:54px}
  .course-risk-application-flow{grid-template-columns:1fr 1fr}
  .course-risk-application-flow>.framework{grid-column:1/-1}
  .course-risk-application-flow>i{display:none}
  .course-risk-application-stats{grid-template-columns:repeat(2,minmax(0,1fr))}
  .course-risk-week-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
  .course-risk-monitoring-list{grid-template-columns:1fr}
  .course-risk-summary{grid-template-columns:repeat(2,minmax(0,1fr))}
  .course-risk-toolbar{grid-template-columns:1fr 1fr}
  .course-risk-toolbar .search-field{grid-column:1/-1}
  .course-risk-table-head{display:none}
  .course-risk-row{grid-template-columns:minmax(0,1fr) 90px 70px}
  .course-risk-identity{grid-column:1/-1}
  .course-risk-treatment{grid-column:1/3}
  .course-risk-owner{display:none}
  .course-risk-rating-grid,.course-risk-mitigation-list,.course-risk-control-list{grid-template-columns:1fr}
  .course-risk-fields{grid-template-columns:repeat(2,minmax(0,1fr))}
  .course-risk-fields .wide{grid-column:1/-1}
  .course-risk-scope-options.objectives,.course-risk-scope-options.areas{grid-template-columns:1fr}
  .course-risk-week-options{grid-template-columns:repeat(8,minmax(36px,1fr))}
  .course-risk-scope-notes{grid-template-columns:1fr}
  .course-risk-scale-options{grid-template-columns:repeat(2,minmax(0,1fr))}
  .course-risk-scale-option:last-child:nth-child(odd){grid-column:1/-1}
  .course-risk-review-grid,.course-risk-rubric-grid{grid-template-columns:1fr}
}
@media(max-width:620px){
  .course-risk-page-head,.course-risk-section-head,.course-risk-form-head,.course-risk-form-title,.course-risk-application-hero,.course-risk-scope-head,.course-risk-panel-intro{align-items:stretch;flex-direction:column}
  .staff-only-badge,.course-risk-boundary{align-self:flex-start}
  .course-risk-tabs{grid-template-columns:1fr}
  .course-risk-application-flow{grid-template-columns:1fr}
  .course-risk-application-flow>.framework{grid-column:auto}
  .course-risk-framework-hero{align-items:stretch;flex-direction:column}
  .course-risk-framework-hero .btn-accent{align-self:flex-start}
  .course-risk-application-stats,.course-risk-area-grid{grid-template-columns:1fr}
  .course-risk-week-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .course-risk-week-options{grid-template-columns:repeat(5,minmax(36px,1fr))}
  .course-risk-summary{grid-template-columns:1fr}
  .course-risk-toolbar{grid-template-columns:1fr}
  .course-risk-toolbar .search-field{grid-column:auto}
  .course-risk-row{grid-template-columns:minmax(0,1fr) 70px}
  .course-risk-treatment{grid-column:1/-1}
  .course-risk-actions{grid-column:2;grid-row:2}
  .course-risk-form,.course-risk-control-form{padding:16px}
  .course-risk-form-head{padding-right:40px}
  .course-risk-fields,.course-risk-control-fields{grid-template-columns:1fr}
  .course-risk-fields .wide,.course-risk-control-fields .wide{grid-column:auto}
  .course-risk-threat-grid{grid-template-columns:1fr}
  .course-risk-rating-grid>label{grid-template-columns:1fr}
  .course-risk-scale-options{grid-template-columns:1fr}
  .course-risk-scale-option:last-child:nth-child(odd){grid-column:auto}
  .course-risk-scale-option>span{min-height:62px}
  .course-risk-review-card>footer{align-items:stretch;flex-direction:column}
  .course-risk-review-card>footer button{align-self:flex-start}
  .course-risk-mitigation-detail{grid-template-columns:1fr}
  .course-risk-mitigation-detail .wide{grid-column:auto}
  .course-risk-evidence{align-items:stretch;flex-direction:column}
  .course-risk-evidence-add{align-self:flex-start}
  .course-risk-weight-list label{grid-template-columns:1fr 42px}
  .course-risk-weight-list label>span{grid-column:1/-1}
  .course-risk-band-editor>div{grid-template-columns:auto minmax(0,1fr) 42px 44px}
  .course-risk-cell-editor{grid-template-columns:minmax(95px,auto) 34px minmax(90px,1fr) 34px 42px}
}

.study-diagram-tools:is([data-active-tool="airfoil"],[data-active-tool="trainer"],[data-active-tool="jet"]) .study-diagram-properties label:last-child{max-width:150px}

/* Compact study-diagram properties and emoji picker */
.study-diagram-properties{
  position:relative;
  grid-template-columns:64px 76px minmax(160px,232px) minmax(250px,auto);
  align-items:end;
  gap:7px;
}
.study-diagram-properties label>span{letter-spacing:.04em}
.study-diagram-properties input,
.study-diagram-properties select{
  width:100%;
  height:34px;
  min-width:0;
  padding:4px 8px;
  border:1px solid var(--border-strong);
  border-radius:5px;
  background:var(--surface-1);
  color:var(--text);
  font:700 10px var(--font);
}
.study-diagram-properties select{padding:0 24px 0 8px}
.study-colour-control input[type="color"]{width:64px;padding:3px;cursor:pointer}
.study-text-control{max-width:232px}
.study-emoji-control{
  position:relative;
  display:flex;
  min-width:0;
  align-items:center;
  gap:5px;
  align-self:end;
}
.study-emoji-control[hidden]{display:none!important}
.study-emoji-control details{position:relative;flex:0 0 auto}
.study-emoji-control summary{
  display:inline-flex;
  min-height:34px;
  align-items:center;
  justify-content:center;
  gap:5px;
  padding:5px 8px;
  border:1px solid var(--border-strong);
  border-radius:5px;
  background:var(--surface-1);
  color:var(--text-secondary);
  font:700 9px var(--font);
  list-style:none;
  cursor:pointer;
  user-select:none;
}
.study-emoji-control summary::-webkit-details-marker{display:none}
.study-emoji-control summary:hover,
.study-emoji-control details[open] summary{
  border-color:var(--accent);
  background:var(--accent-bg);
  color:var(--accent-text);
}
.study-emoji-control summary i:first-child{font-size:16px}
.study-emoji-control summary i:last-child{font-size:12px}
.study-emoji-popover{
  position:absolute;
  z-index:25;
  right:0;
  /* Opens downward: the notebook editor is a scroll container, and block-start
     overflow cannot be reached by scrolling, so an upward palette was simply
     cut off. Below, any overflow is scrollable to. */
  top:calc(100% + 7px);
  display:grid;
  width:164px;
  grid-template-columns:repeat(4,34px);
  gap:5px;
  padding:8px;
  border:1px solid var(--border-strong);
  border-radius:7px;
  background:var(--surface-1);
  box-shadow:0 14px 36px rgba(5,16,28,.22);
}
.study-emoji-recents{display:flex;min-width:0;align-items:center;gap:4px}
.study-emoji-popover button,
.study-emoji-recents button{
  display:flex;
  width:34px;
  height:34px;
  flex:0 0 34px;
  align-items:center;
  justify-content:center;
  overflow:hidden;
  padding:0;
  border:1px solid var(--border);
  border-radius:5px;
  background:var(--surface-1);
  color:var(--text);
  cursor:pointer;
}
.study-emoji-popover button>span,
.study-emoji-recents button>span{
  display:flex;
  width:1.35em;
  height:1.35em;
  align-items:center;
  justify-content:center;
  overflow:visible;
  font:17px/1 "Apple Color Emoji","Segoe UI Emoji","Noto Color Emoji",sans-serif;
  transform:translateY(-.02em);
}
.study-emoji-popover button:hover,
.study-emoji-popover button.active,
.study-emoji-recents button:hover,
.study-emoji-recents button.active{
  border-color:var(--accent);
  background:var(--accent-bg);
  box-shadow:inset 0 0 0 1px var(--accent);
}

/* The leading grade icon is the picker; no separate icon column is needed. */
.syllabus-component-row{
  grid-template-columns:44px minmax(190px,1.7fr) minmax(160px,1fr) 94px 124px;
}
button.syllabus-component-icon{
  appearance:none;
  align-self:end;
  margin:0;
  padding:0;
  border:1px solid var(--accent-border);
  cursor:pointer;
  transition:border-color .15s ease,background-color .15s ease,color .15s ease,transform .15s ease;
}
button.syllabus-component-icon:hover,
button.syllabus-component-icon:focus-visible{
  border-color:var(--accent);
  background:var(--accent);
  color:#fff;
  outline:0;
  transform:translateY(-1px);
}
.syllabus-grade-inactive{
  display:flex;
  align-items:flex-start;
  gap:10px;
  margin:-2px 0 12px;
  padding:11px 12px;
  border:1px solid #E0C98C;
  border-radius:7px;
  background:#FFF8E6;
  color:#684C08;
  font-size:11px;
  line-height:1.45;
}
.syllabus-grade-inactive[hidden]{display:none!important}
.syllabus-grade-inactive i{flex:0 0 auto;margin-top:1px;font-size:19px}
.syllabus-grade-editor.is-inactive .syllabus-component-guide,
.syllabus-grade-editor.is-inactive .syllabus-component-list,
.syllabus-grade-editor.is-inactive .syllabus-integrity-note{
  opacity:.48;
}
.syllabus-grade-editor.is-inactive .syllabus-component-list{filter:saturate(.55)}

@media(max-width:1100px){
  .study-diagram-properties{grid-template-columns:64px 76px minmax(150px,220px) minmax(250px,1fr)}
  .syllabus-component-row{grid-template-columns:42px minmax(180px,1fr) minmax(150px,1fr) 90px 124px}
  .syllabus-component-weight{grid-column:4;grid-row:1}
  .syllabus-component-actions{grid-column:5;grid-row:1}
}
@media(max-width:760px){
  .study-diagram-properties{grid-template-columns:64px 76px minmax(130px,1fr)}
  .study-emoji-control{grid-column:1/-1}
  .study-emoji-popover{right:auto;left:0}
  .syllabus-component-row{grid-template-columns:40px minmax(0,1fr) 105px}
  .syllabus-component-name{grid-column:2}
  .syllabus-component-source{grid-column:2/4}
  .syllabus-component-weight{grid-column:3;grid-row:1}
  .syllabus-component-actions{grid-column:2/4;grid-row:auto;justify-content:start}
}
@media(max-width:460px){
  .study-diagram-properties{grid-template-columns:58px 68px minmax(0,1fr)}
  .study-text-control{grid-column:3;max-width:none}
  .study-emoji-control{grid-column:1/-1}
  .study-emoji-control summary span{display:none}
  .study-emoji-control summary{width:34px;padding:0}
  .study-emoji-control summary i:last-child{display:none}
  .syllabus-component-row{grid-template-columns:38px minmax(0,1fr)}
  .syllabus-component-icon{grid-column:1}
  .syllabus-component-name{grid-column:2}
  .syllabus-component-source,
  .syllabus-component-weight,
  .syllabus-component-actions{grid-column:1/-1;grid-row:auto}
  .syllabus-component-actions{grid-template-columns:repeat(3,1fr)}
  .syllabus-component-actions .icon-btn{width:100%}
}

/* --------------------------------------------------------------------------
   Institutional course-management workspace
   -------------------------------------------------------------------------- */
.platform-workspace,
.course-shell{
  width:100%;
  max-width:1560px;
  padding-bottom:32px;
}
.platform-workspace h1,
.course-shell h1{
  letter-spacing:0;
}
.course-shell-head>div:first-child>a{
  display:inline-flex;
  align-items:center;
  gap:5px;
  margin-right:10px;
}
.course-shell-head>div:first-child>.eyebrow{
  display:inline-flex;
  align-items:center;
}
.platform-page-head,
.course-shell-head{
  display:flex;
  align-items:flex-end;
  justify-content:space-between;
  gap:28px;
  margin:4px 0 22px;
  padding:4px 2px 21px;
  border-bottom:1px solid var(--border);
}
.platform-page-head h1,
.course-shell-head h1{
  max-width:920px;
  margin:6px 0 5px;
  font-size:clamp(27px,3vw,42px);
  line-height:1.08;
}
.platform-page-head p,
.course-shell-head p{
  max-width:840px;
  margin:0;
  color:var(--text-secondary);
  line-height:1.55;
}
.platform-head-actions,
.course-shell-head>div:last-child,
.platform-inline-actions,
.platform-row-actions{
  display:flex;
  align-items:center;
  justify-content:flex-end;
  gap:8px;
  flex-wrap:wrap;
}
.course-shell-head>div:last-child{
  flex:0 0 auto;
}
.platform-page-head.platform-context-head{
  --context-accent:#176bb3;
  --context-accent-2:#59aee9;
  position:relative;
  isolation:isolate;
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  align-items:center;
  min-height:88px;
  margin:4px 0 14px;
  padding:13px 16px;
  overflow:hidden;
  border:1px solid color-mix(in srgb,var(--context-accent) 24%,var(--border));
  border-radius:20px;
  background:
    linear-gradient(118deg,color-mix(in srgb,var(--context-accent) 11%,var(--surface)) 0%,color-mix(in srgb,var(--context-accent-2) 7%,var(--surface)) 56%,var(--surface) 100%);
  box-shadow:0 13px 32px color-mix(in srgb,var(--context-accent) 8%,transparent);
}
.platform-context-head[data-context-tone="structure"]{--context-accent:#4056b5;--context-accent-2:#8c7be8}
.platform-context-head[data-context-tone="catalogue"]{--context-accent:#087f7b;--context-accent-2:#42b9a9}
.platform-context-head[data-context-tone="planning"]{--context-accent:#7051ad;--context-accent-2:#a486da}
.platform-context-head[data-context-tone="people"]{--context-accent:#087d91;--context-accent-2:#52b8c5}
.platform-context-head[data-context-tone="settings"]{--context-accent:#6544a5;--context-accent-2:#a170d1}
.platform-context-head[data-context-tone="governance"]{--context-accent:#285a96;--context-accent-2:#159a84}
.platform-context-head[data-context-tone="analytics"]{--context-accent:#087f69;--context-accent-2:#4cbba4}
.platform-context-head[data-context-tone="adoption"]{--context-accent:#075f9f;--context-accent-2:#22a89a}
.platform-context-head[data-context-tone="files"]{--context-accent:#9a6500;--context-accent-2:#e5a62b}
.platform-context-head[data-context-tone="policies"]{--context-accent:#9b3155;--context-accent-2:#d87898}
.platform-context-head[data-context-tone="risk"]{--context-accent:#a43b35;--context-accent-2:#df7f63}
.platform-context-head[data-context-tone="teaching"]{--context-accent:#4e42a8;--context-accent-2:#7589ef}
.platform-context-head[data-context-tone="readiness"]{--context-accent:#7a4bb0;--context-accent-2:#c17ed3}
.platform-context-head[data-context-tone="assessment"]{--context-accent:#7042a6;--context-accent-2:#b87ad8}
.platform-context-head[data-context-tone="operations"]{--context-accent:#126a9f;--context-accent-2:#35b7af}
.platform-context-head[data-context-tone="activities"]{--context-accent:#7952a8;--context-accent-2:#d28bbd}
.platform-context-head[data-context-tone="reflection"]{--context-accent:#8b3f86;--context-accent-2:#d777aa}
.platform-context-head[data-context-tone="communication"]{--context-accent:#b45708;--context-accent-2:#ee9b39}
.platform-context-head[data-context-tone="gradebook"]{--context-accent:#087f77;--context-accent-2:#48b9a5}
.platform-context-head[data-context-tone="attendance"]{--context-accent:#087b72;--context-accent-2:#54bfae}
.platform-context-head[data-context-tone="reports"]{--context-accent:#3860a8;--context-accent-2:#75a0df}
.platform-context-head[data-context-tone="content"]{--context-accent:#6850a4;--context-accent-2:#9f84d7}
.platform-context-head[data-context-tone="authoring"]{--context-accent:#94620b;--context-accent-2:#dda93a}
.platform-context-head[data-context-tone="syllabus"]{--context-accent:#176aa5;--context-accent-2:#60a7d9}
.platform-context-head[data-context-tone="student"]{--context-accent:#126aa8;--context-accent-2:#3db5b1}
.platform-context-head[data-context-tone="strategy"]{--context-accent:#145f88;--context-accent-2:#c28a2a}
.platform-context-head::before{
  content:"";
  position:absolute;
  inset:0 auto 0 0;
  width:6px;
  background:linear-gradient(180deg,var(--context-accent),var(--context-accent-2));
}
.platform-context-head::after{
  content:"";
  position:absolute;
  z-index:-1;
  top:-76px;
  right:8%;
  width:290px;
  height:190px;
  border:1px dashed color-mix(in srgb,var(--context-accent) 25%,transparent);
  border-radius:50%;
  transform:rotate(-9deg);
}
.platform-context-head>*:not(.platform-context-orbit){position:relative;z-index:1}
.platform-context-main{
  display:flex;
  align-items:center;
  gap:18px;
  min-width:0;
}
.platform-context-icon{
  display:grid;
  flex:0 0 auto;
  place-items:center;
  width:44px;
  height:44px;
  border-radius:13px;
  background:linear-gradient(145deg,var(--context-accent),color-mix(in srgb,var(--context-accent) 68%,var(--context-accent-2)));
  box-shadow:0 10px 24px color-mix(in srgb,var(--context-accent) 24%,transparent);
  color:#fff;
  font-size:30px;
}
.platform-context-copy{min-width:0}
.platform-context-copy>.eyebrow{
  color:var(--context-accent);
  font-size:10px;
  font-weight:800;
  letter-spacing:.14em;
  text-transform:uppercase;
}
.platform-page-head.platform-context-head .platform-context-copy h1{
  margin:1px 0 3px;
  font-size:clamp(21px,1.5vw,27px)!important;
  line-height:1.06;
  letter-spacing:-.025em;
}
.platform-page-head.platform-context-head .platform-context-copy p{
  max-width:800px;
  margin:0;
  color:var(--text-secondary);
  font-size:clamp(12px,.92vw,14px)!important;
  line-height:1.48;
}
.platform-context-motto{
  display:inline-flex;
  align-items:center;
  gap:6px;
  margin-top:9px;
  color:var(--context-accent);
  font-size:10px;
  font-weight:800;
  letter-spacing:.08em;
  text-transform:uppercase;
}
.platform-context-motto i{font-size:13px}
.platform-context-head>.platform-head-actions{
  align-self:center;
  max-width:360px;
}
.platform-context-head>.platform-head-actions:empty{display:none}
.platform-context-head .btn-ghost{
  background:color-mix(in srgb,var(--surface) 88%,transparent);
}
.platform-context-orbit{
  position:absolute;
  z-index:0;
  display:block;
  border:1px solid color-mix(in srgb,var(--context-accent) 19%,transparent);
  border-radius:50%;
  pointer-events:none;
}
.platform-context-orbit.orbit-one{right:21px;bottom:-58px;width:126px;height:98px}
.platform-context-orbit.orbit-two{right:142px;bottom:-47px;width:108px;height:88px}
.course-shell-head>div:first-child>a{
  display:inline-flex;
  align-items:center;
  gap:6px;
  margin-bottom:12px;
  color:var(--accent-text);
  font-size:13px;
  font-weight:650;
  text-decoration:none;
}
.course-launch-studio{
  width:100%;
  max-width:1560px;
  padding-bottom:42px;
}
.course-launch-draft-badge{
  display:inline-flex;
  align-items:center;
  gap:8px;
  padding:9px 13px;
  border:1px solid #c99737;
  border-radius:999px;
  color:#75510e;
  background:#fff5dc;
  font-size:13px;
  font-weight:750;
  white-space:nowrap;
}
.course-launch-intro{
  display:grid;
  grid-template-columns:minmax(250px,.72fr) minmax(520px,1.28fr);
  gap:24px;
  align-items:start;
  margin-bottom:20px;
  padding:26px;
  border:1px solid var(--border);
  border-radius:12px;
  background:
    radial-gradient(circle at 95% 8%, color-mix(in srgb,var(--accent) 13%,transparent) 0 96px,transparent 97px),
    var(--surface-1);
}
.course-launch-intro>.eyebrow,
.course-launch-intro>div:first-child>.eyebrow{
  display:inline-flex;
  align-items:center;
  gap:6px;
  color:var(--accent-text);
}
.course-launch-intro h2{
  margin:8px 0 8px;
  font-size:clamp(24px,2.3vw,34px);
  line-height:1.12;
}
.course-launch-intro>div:first-child>p{
  max-width:590px;
  margin:0;
  color:var(--text-secondary);
  line-height:1.55;
}
.course-launch-paths{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:12px;
}
.course-launch-paths article{
  display:grid;
  grid-template-columns:46px minmax(0,1fr);
  gap:12px;
  min-width:0;
  padding:18px;
  border:1px solid var(--border);
  border-radius:10px;
  background:var(--surface-0);
}
.course-launch-paths article:first-child{
  border-color:color-mix(in srgb,var(--accent) 50%,var(--border));
  box-shadow:inset 0 3px 0 var(--accent);
}
.course-launch-paths article>i{
  display:grid;
  place-items:center;
  width:46px;
  height:46px;
  border-radius:10px;
  color:var(--accent-text);
  background:var(--accent-soft);
  font-size:24px;
}
.course-launch-paths article>span{
  display:flex;
  flex-direction:column;
  gap:5px;
  min-width:0;
}
.course-launch-paths article>span>b{
  font-size:16px;
}
.course-launch-paths article>span>small{
  color:var(--text-secondary);
  font-size:13px;
  line-height:1.45;
}
.course-launch-paths article>button{
  grid-column:1/-1;
  justify-content:center;
  width:100%;
}
#courseLaunchForm{
  /* No overflow clipping: the date and clock picker popups must be able to extend past the
     card edge. The rounded corners are carried by the first and last child instead. */
  border:1px solid var(--border);
  border-radius:12px;
  background:var(--surface-0);
  box-shadow:0 12px 38px rgba(25,42,59,.07);
}
#courseLaunchForm>.course-launch-steps{
  border-radius:12px 12px 0 0;
  overflow:hidden;
}
#courseLaunchForm>.course-launch-actions{
  border-radius:0 0 12px 12px;
}
#courseLaunchForm[hidden]{
  display:none;
}
.course-launch-steps{
  display:grid;
  grid-template-columns:repeat(6,minmax(0,1fr));
  border-bottom:1px solid var(--border);
  background:var(--surface-1);
}
.course-launch-steps button{
  position:relative;
  display:grid;
  grid-template-columns:24px 20px minmax(0,1fr);
  gap:7px;
  align-items:center;
  min-width:0;
  min-height:64px;
  padding:12px 13px;
  border:0;
  border-right:1px solid var(--border-soft);
  color:var(--text-secondary);
  background:transparent;
  text-align:left;
  cursor:pointer;
}
.course-launch-steps button:last-child{
  border-right:0;
}
.course-launch-steps button>span{
  display:grid;
  place-items:center;
  width:24px;
  height:24px;
  border:1px solid currentColor;
  border-radius:50%;
  font-size:11px;
  font-weight:800;
}
.course-launch-steps button>i{
  font-size:17px;
}
.course-launch-steps button>b{
  overflow:hidden;
  font-size:12px;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.course-launch-steps button:hover{
  color:var(--text-primary);
  background:var(--surface-2);
}
.course-launch-steps button.active{
  color:var(--accent-text);
  background:var(--accent-soft);
  box-shadow:inset 0 -3px 0 var(--accent);
}
.course-launch-steps button.done>span{
  border-color:var(--accent);
  color:#fff;
  background:var(--accent);
}
.course-launch-panels{
  min-height:440px;
  padding:30px;
}
.course-launch-panels>section{
  max-width:1120px;
  margin:0 auto;
}
.course-launch-panels>section[hidden]{
  display:none;
}
.course-launch-panels h2{
  margin:7px 0 6px;
  font-size:clamp(23px,2.3vw,32px);
}
.course-launch-panels>section>p{
  max-width:780px;
  margin:0 0 24px;
  color:var(--text-secondary);
  line-height:1.55;
}
.course-launch-choice{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:10px;
  padding:0;
  border:0;
}
.course-launch-choice legend{
  grid-column:1/-1;
  margin-bottom:7px;
  font-size:13px;
  font-weight:750;
}
.course-launch-choice label{
  min-width:0;
}
.course-launch-choice label>input{
  position:absolute;
  opacity:0;
  pointer-events:none;
}
.course-launch-choice label>span{
  display:flex;
  align-items:center;
  gap:9px;
  min-height:54px;
  padding:12px 14px;
  border:1px solid var(--border);
  border-radius:8px;
  background:var(--surface-1);
  cursor:pointer;
}
.course-launch-choice label>input:checked+span{
  border-color:var(--accent);
  color:var(--accent-text);
  background:var(--accent-soft);
  box-shadow:inset 0 0 0 1px var(--accent);
}
.course-launch-wide-field{
  display:flex;
  flex-direction:column;
  gap:7px;
}
.course-launch-wide-field>span{
  font-size:13px;
  font-weight:750;
}
.course-launch-wide-field textarea{
  width:100%;
  min-height:285px;
}
.course-launch-experiences{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:10px;
}
.course-launch-experience{
  position:relative;
  min-width:0;
}
.course-launch-experience>input{
  position:absolute;
  opacity:0;
  pointer-events:none;
}
.course-launch-experience>span{
  display:grid;
  grid-template-columns:42px minmax(0,1fr) 24px;
  gap:12px;
  align-items:center;
  min-height:82px;
  padding:14px;
  border:1px solid var(--border);
  border-radius:9px;
  background:var(--surface-1);
  cursor:pointer;
  transition:border-color .15s ease,background .15s ease,transform .15s ease;
}
.course-launch-experience>span:hover{
  transform:translateY(-1px);
  border-color:color-mix(in srgb,var(--accent) 45%,var(--border));
}
.course-launch-experience>span>i:first-child{
  display:grid;
  place-items:center;
  width:42px;
  height:42px;
  border-radius:9px;
  color:var(--accent-text);
  background:var(--surface-2);
  font-size:21px;
}
.course-launch-experience>span>span{
  display:flex;
  flex-direction:column;
  gap:4px;
  min-width:0;
}
.course-launch-experience b{
  font-size:14px;
}
.course-launch-experience small{
  color:var(--text-secondary);
  font-size:12px;
  line-height:1.4;
}
.course-launch-experience>span>i:last-child{
  display:grid;
  place-items:center;
  width:22px;
  height:22px;
  border:1px solid var(--border);
  border-radius:50%;
  color:transparent;
}
.course-launch-experience>input:checked+span{
  border-color:color-mix(in srgb,var(--accent) 58%,var(--border));
  background:var(--accent-soft);
}
.course-launch-experience>input:checked+span>i:last-child{
  border-color:var(--accent);
  color:#fff;
  background:var(--accent);
}
.course-launch-reassurance,
.course-launch-final-note{
  display:flex;
  align-items:flex-start;
  gap:12px;
  margin-top:14px;
  padding:14px 16px;
  border:1px solid color-mix(in srgb,var(--accent) 32%,var(--border));
  border-radius:9px;
  background:color-mix(in srgb,var(--accent-soft) 62%,var(--surface-0));
}
.course-launch-reassurance>i,
.course-launch-final-note>i{
  color:var(--accent-text);
  font-size:22px;
}
.course-launch-reassurance>span,
.course-launch-final-note>span{
  display:flex;
  flex-direction:column;
  gap:3px;
  color:var(--text-secondary);
  font-size:13px;
  line-height:1.45;
}
.course-launch-reassurance b,
.course-launch-final-note b{
  color:var(--text-primary);
}
.course-launch-attendance{
  display:grid;
  grid-template-columns:minmax(0,1.3fr) minmax(180px,.7fr);
  gap:10px;
  grid-column:1/-1;
  padding:14px;
  border:1px solid var(--border);
  border-radius:9px;
  background:var(--surface-1);
}
.course-launch-review-grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:10px;
}
.course-launch-review-grid article{
  display:flex;
  align-items:flex-start;
  gap:12px;
  min-width:0;
  padding:16px;
  border:1px solid var(--border);
  border-radius:9px;
  background:var(--surface-1);
}
.course-launch-review-grid article>i{
  color:var(--accent-text);
  font-size:23px;
}
.course-launch-review-grid article>span{
  display:flex;
  flex-direction:column;
  gap:4px;
  min-width:0;
}
.course-launch-review-grid article small{
  color:var(--text-secondary);
  line-height:1.4;
}
.course-launch-actions{
  display:flex;
  align-items:center;
  gap:8px;
  min-height:72px;
  padding:12px 18px;
  border-top:1px solid var(--border);
  background:var(--surface-1);
}
.course-launch-actions button[hidden]{
  display:none;
}
.course-launch-actions>[data-launch-back]{
  margin-right:auto;
}
.course-launch-actions #courseLaunchStatus{
  display:inline-flex;
  align-items:center;
  gap:5px;
  min-height:20px;
  color:var(--text-secondary);
  font-size:13px;
}
.platform-kpis{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:12px;
  margin:0 0 16px;
}
.platform-kpi{
  display:flex;
  align-items:center;
  gap:13px;
  min-width:0;
  padding:17px;
  border:1px solid var(--border);
  border-top:3px solid var(--accent);
  border-radius:8px;
  background:var(--surface-2);
}
.platform-kpi>span{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:42px;
  height:42px;
  flex:0 0 42px;
  border-radius:7px;
  background:var(--accent-bg);
  color:var(--accent-text);
  font-size:22px;
}
.platform-kpi>div{
  min-width:0;
}
.platform-kpi strong,
.platform-kpi b,
.platform-kpi small{
  display:block;
}
.platform-kpi strong{
  color:var(--accent-text);
  font-size:25px;
  line-height:1;
}
.platform-kpi b{
  margin-top:5px;
  font-size:13px;
}
.platform-kpi small{
  margin-top:2px;
  overflow:hidden;
  color:var(--text-muted);
  font-size:11px;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.platform-split{
  display:grid;
  grid-template-columns:minmax(0,2.15fr) minmax(270px,.85fr);
  gap:16px;
}
.platform-two-column{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:16px;
  margin-top:16px;
}
.platform-panel{
  min-width:0;
  margin:0 0 16px;
  padding:20px;
  border:1px solid var(--border);
  border-radius:8px;
  background:var(--surface-2);
}
.operations-dashboard{max-width:1480px;margin:0 auto;padding:8px 0 28px}.operations-hero{display:flex;align-items:center;justify-content:space-between;gap:22px;margin:0 0 16px;padding:25px 28px;border:1px solid color-mix(in srgb,var(--accent) 34%,var(--border));border-radius:16px;background:linear-gradient(125deg,color-mix(in srgb,var(--accent) 14%,var(--surface-1)),var(--surface-1) 56%,var(--surface-2));box-shadow:0 13px 32px rgba(18,36,58,.07)}.operations-hero .eyebrow{display:block;margin-bottom:6px;color:var(--accent-text);font-size:11px;font-weight:850;letter-spacing:.07em;text-transform:uppercase}.operations-hero h1{margin:0;color:var(--text-primary);font-size:29px;letter-spacing:-.035em}.operations-hero p{max-width:730px;margin:7px 0 0;color:var(--text-secondary);line-height:1.55}.operations-hero-actions{display:flex;flex:0 0 auto;gap:8px}.operations-hero-actions a,.operations-hero-actions button{white-space:nowrap}.operations-section{min-width:0;margin:0 0 16px;padding:20px;border:1px solid var(--border);border-radius:14px;background:var(--surface-2)}.operations-section-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:14px}.operations-section-head .eyebrow{display:block;margin-bottom:3px;color:var(--accent-text);font-size:10px;font-weight:850;letter-spacing:.065em;text-transform:uppercase}.operations-section-head h2{margin:0;font-size:18px}.operations-section-head>small{max-width:180px;color:var(--text-muted);font-size:11px;line-height:1.35;text-align:right}.operations-metric-grid{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:10px}.operations-dependency-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.operations-metric-card{display:flex;min-width:0;min-height:116px;flex-direction:column;justify-content:center;padding:15px;border:1px solid var(--border);border-top:4px solid var(--border-strong);border-radius:12px;background:var(--surface-1)}.operations-metric-card>span{overflow:hidden;color:var(--text-secondary);font-size:11px;font-weight:800;text-overflow:ellipsis;white-space:nowrap}.operations-metric-card>strong{margin:7px 0 4px;color:var(--text-primary);font-size:25px;letter-spacing:-.035em}.operations-metric-card>small{min-height:27px;color:var(--text-muted);font-size:10px;line-height:1.35}.operations-metric-card.accent{border-top-color:var(--accent)}.operations-metric-card.good{border-top-color:#138b72}.operations-metric-card.attention{border-top-color:#c6870a}.operations-metric-card.danger{border-top-color:#bd613e}.operations-dashboard-grid{display:grid;grid-template-columns:minmax(0,1.8fr) minmax(300px,.8fr);gap:16px}.operations-dashboard-grid>.operations-section{margin:0}.operations-route-list{display:grid;gap:8px}.operations-route-list>div{display:grid;grid-template-columns:minmax(0,1fr) auto auto;align-items:center;gap:8px;padding:10px 11px;border:1px solid var(--border);border-radius:9px;background:var(--surface-1)}.operations-route-list code{overflow:hidden;color:var(--accent-text);font:700 11px/1.3 var(--font-mono,monospace);text-overflow:ellipsis;white-space:nowrap}.operations-route-list strong{font-size:15px}.operations-route-list small{color:var(--text-muted);font-size:10px}.operations-metrics-unavailable{display:flex;grid-column:1/-1;align-items:center;gap:11px;padding:17px;border:1px dashed var(--border-strong);border-radius:11px;background:var(--surface-1);color:var(--text-secondary)}.operations-metrics-unavailable i{font-size:26px;color:var(--accent)}.operations-metrics-unavailable strong,.operations-metrics-unavailable span{display:block}.operations-metrics-unavailable span{margin-top:3px;color:var(--text-muted);font-size:12px}.operations-empty-note{margin:0;padding:16px;border:1px dashed var(--border-strong);border-radius:10px;color:var(--text-muted);font-size:12px;text-align:center}.operations-health-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}.operations-health-card{min-width:0;padding:14px;border:1px solid var(--border);border-top:4px solid var(--border-strong);border-radius:12px;background:var(--surface-1)}.operations-health-card header{display:flex;align-items:center;justify-content:space-between;gap:8px}.operations-health-card header>span{overflow:hidden;color:var(--text-secondary);font-size:11px;font-weight:800;text-overflow:ellipsis;white-space:nowrap}.operations-health-card em{padding:3px 6px;border-radius:999px;background:var(--surface-2);color:var(--text-muted);font-size:9px;font-style:normal;font-weight:850;text-transform:uppercase}.operations-health-card>strong{display:block;margin:10px 0 3px;color:var(--text-primary);font-size:24px;letter-spacing:-.035em}.operations-health-card>small{display:block;min-height:28px;color:var(--text-muted);font-size:10px;line-height:1.35}.operations-sparkline{display:block;width:100%;height:44px;margin-top:8px;overflow:visible}.operations-sparkline path{fill:none;stroke:currentColor;stroke-linecap:round;stroke-linejoin:round;stroke-width:2.5}.operations-sparkline-empty{display:flex;align-items:center;height:44px;margin-top:8px;color:var(--text-muted);font-size:10px}.operations-history-note{display:flex;align-items:center;gap:7px;margin:14px 0 0;color:var(--text-muted);font-size:11px}.operations-history-note i{color:var(--accent);font-size:15px}.operations-threshold-list{display:grid;gap:8px}.operations-threshold-row{display:grid;grid-template-columns:142px minmax(0,1fr);align-items:center;gap:10px;padding:9px 10px;border:1px solid var(--border);border-radius:10px;background:var(--surface-1)}.operations-threshold-row>strong{color:var(--text-primary);font-size:11px}.operations-threshold-row>div{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:4px}.operations-threshold-band{display:grid;min-width:0;gap:1px;padding:5px 4px;border:1px solid currentColor;border-radius:6px;color:var(--text-secondary);text-align:center}.operations-threshold-band b{font-size:8.5px;letter-spacing:.03em;text-transform:uppercase}.operations-threshold-band small{overflow:hidden;font-size:8px;text-overflow:ellipsis;white-space:nowrap}.operations-alert-list{display:grid;gap:8px}.operations-alert,.operations-alert-clear{display:flex;align-items:center;gap:10px;padding:12px;border:1px solid var(--border);border-left:4px solid var(--border-strong);border-radius:10px;background:var(--surface-1)}.operations-alert>i,.operations-alert-clear>i{display:grid;place-items:center;width:30px;height:30px;border-radius:8px;background:var(--surface-2);font-size:17px}.operations-alert b,.operations-alert small,.operations-alert-clear b,.operations-alert-clear small{display:block}.operations-alert b,.operations-alert-clear b{color:var(--text-primary);font-size:12px}.operations-alert small,.operations-alert-clear small{margin-top:2px;color:var(--text-muted);font-size:10.5px}.operations-alert-clear{border-left-color:#138b72}.operations-alert-clear>i{background:var(--success-bg);color:var(--success-text)}.operations-level-green{border-top-color:#138b72;color:#138b72}.operations-level-blue{border-top-color:#2f75c8;color:#2f75c8}.operations-level-amber{border-top-color:#bd8308;color:#bd8308}.operations-level-orange{border-top-color:#c96a19;color:#c96a19}.operations-level-red{border-top-color:#bd4b43;color:#bd4b43}.operations-level-unknown{border-top-color:var(--border-strong);color:var(--text-muted)}.operations-alert.operations-level-green,.operations-alert.operations-level-blue,.operations-alert.operations-level-amber,.operations-alert.operations-level-orange,.operations-alert.operations-level-red{border-left-color:currentColor}.operations-threshold-band.operations-level-green{background:color-mix(in srgb,#138b72 10%,var(--surface-1))}.operations-threshold-band.operations-level-blue{background:color-mix(in srgb,#2f75c8 10%,var(--surface-1))}.operations-threshold-band.operations-level-amber{background:color-mix(in srgb,#bd8308 10%,var(--surface-1))}.operations-threshold-band.operations-level-orange{background:color-mix(in srgb,#c96a19 10%,var(--surface-1))}.operations-threshold-band.operations-level-red{background:color-mix(in srgb,#bd4b43 10%,var(--surface-1))}
.operations-history-section{padding:22px}.operations-history-head{align-items:center}.operations-history-head>div:last-child{display:flex;align-items:flex-end;gap:8px}.operations-history-head>div:last-child>small{max-width:none;white-space:nowrap}.operations-history-controls{display:flex;align-items:center;gap:5px}.operations-history-controls>span{display:inline-flex;align-items:center;gap:4px;color:var(--text-muted);font-size:10px;font-weight:800}.operations-history-controls button{min-height:29px;padding:5px 8px;border:1px solid var(--border-strong);border-radius:7px;background:var(--surface-1);color:var(--text-secondary);font-size:10px;font-weight:800}.operations-history-controls button:hover,.operations-history-controls button:focus-visible{border-color:var(--accent);color:var(--accent-text)}.operations-history-controls button.active{border-color:var(--accent);background:color-mix(in srgb,var(--accent) 12%,var(--surface-1));color:var(--accent-text)}.operations-health-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.operations-health-card{display:grid;grid-template-rows:auto auto auto minmax(190px,1fr);min-height:344px;padding:18px}.operations-health-card>strong{margin:12px 0 4px;font-size:29px}.operations-health-card>small{min-height:auto}.operations-chart-frame{display:flex;align-items:stretch;min-height:190px;margin-top:10px}.operations-telemetry-chart{display:block;width:100%;height:clamp(190px,16vw,250px);overflow:visible}.operations-telemetry-chart .operations-chart-y-tick line{stroke:color-mix(in srgb,currentColor 18%,var(--border));stroke-dasharray:3 5}.operations-telemetry-chart .operations-chart-y-tick text,.operations-telemetry-chart .operations-chart-x-tick text{fill:var(--text-muted);font-size:11px;font-weight:700}.operations-telemetry-chart .operations-chart-axis{stroke:color-mix(in srgb,var(--text-primary) 44%,var(--border));stroke-width:1.4}.operations-telemetry-chart .operations-chart-x-tick line{stroke:color-mix(in srgb,var(--text-primary) 44%,var(--border));stroke-width:1.4}.operations-telemetry-chart .operations-chart-axis-title{fill:var(--text-secondary);font-size:11px;font-weight:850;letter-spacing:.04em}.operations-telemetry-chart .operations-chart-area{fill:currentColor;fill-opacity:.08}.operations-telemetry-chart .operations-chart-series{fill:none;stroke:currentColor;stroke-linecap:round;stroke-linejoin:round;stroke-width:3.4}.operations-telemetry-chart .operations-chart-latest{fill:var(--surface-1);stroke:currentColor;stroke-width:3}.operations-chart-empty{display:flex;align-items:center;justify-content:center;gap:8px;width:100%;min-height:190px;border:1px dashed var(--border-strong);border-radius:10px;color:var(--text-muted);font-size:11px}.operations-chart-empty i{color:var(--accent);font-size:21px}.operations-threshold-section .operations-threshold-row{grid-template-columns:190px minmax(0,1fr);padding:11px 12px}.operations-threshold-section .operations-threshold-band{padding:7px 5px}.operations-threshold-section .operations-threshold-band b{font-size:9px}.operations-threshold-section .operations-threshold-band small{font-size:9px}
.operations-signal-groups{display:flex;flex-wrap:wrap;gap:7px;margin:0 0 16px}.operations-signal-groups button{min-height:34px;padding:7px 11px;border:1px solid var(--border-strong);border-radius:8px;background:var(--surface-1);color:var(--text-secondary);font-size:11px;font-weight:850}.operations-signal-groups button:hover,.operations-signal-groups button:focus-visible{border-color:var(--accent);color:var(--accent-text)}.operations-signal-groups button.active{border-color:var(--accent);background:color-mix(in srgb,var(--accent) 12%,var(--surface-1));color:var(--accent-text)}.operations-correlation-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:10px}.operations-correlation-card{display:grid;min-width:0;gap:4px;padding:13px;border:1px solid var(--border);border-top:4px solid var(--border-strong);border-radius:11px;background:var(--surface-1)}.operations-correlation-card>span{min-height:29px;color:var(--text-secondary);font-size:10px;font-weight:800;line-height:1.35}.operations-correlation-card>strong{color:var(--text-primary);font-size:25px;letter-spacing:-.035em}.operations-correlation-card>em{font-size:10px;font-style:normal;font-weight:850}.operations-correlation-card>small{min-height:42px;color:var(--text-muted);font-size:9.5px;line-height:1.4}
.operations-info-button{display:inline-grid;flex:0 0 auto;place-items:center;width:30px;min-height:30px;padding:0;border:1px solid var(--border-strong);border-radius:50%;background:var(--surface-1);color:var(--accent-text);cursor:pointer}.operations-info-button:hover,.operations-info-button:focus-visible{border-color:var(--accent);background:color-mix(in srgb,var(--accent) 11%,var(--surface-1));outline:none}.operations-info-button i{font-size:16px}.operations-alert-policy{margin:-2px 0 16px;padding:14px;border:1px solid color-mix(in srgb,var(--accent) 30%,var(--border));border-radius:12px;background:linear-gradient(120deg,color-mix(in srgb,var(--accent) 7%,var(--surface-1)),var(--surface-1))}.operations-alert-policy header{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:11px}.operations-alert-policy .eyebrow{display:block;margin-bottom:2px;color:var(--accent-text);font-size:9.5px;font-weight:850;letter-spacing:.065em;text-transform:uppercase}.operations-alert-policy h3{margin:0;color:var(--text-primary);font-size:15px}.operations-alert-policy p{margin:4px 0 0;color:var(--text-muted);font-size:10.5px;line-height:1.4}.operations-alert-policy .operations-threshold-list{gap:6px}.operations-alert-policy .operations-threshold-row{grid-template-columns:175px minmax(0,1fr);padding:8px 10px}.operations-alert-policy .operations-threshold-band{padding:5px 4px}.operations-health-card{grid-template-rows:auto auto auto minmax(156px,1fr);min-height:298px}.operations-chart-frame{min-height:156px;margin-top:8px}.operations-telemetry-chart{height:clamp(156px,11vw,184px)}.operations-chart-empty{min-height:156px}
.operations-alert-policy footer{display:flex;justify-content:flex-end;margin-top:10px}
.operations-health-card{grid-template-rows:auto auto auto auto minmax(156px,1fr);min-height:326px}.operations-trend-analysis{display:flex;flex-wrap:wrap;align-items:center;gap:5px 10px;margin-top:7px;color:var(--text-muted);font-size:9.5px;line-height:1.35}.operations-trend-analysis>span{display:inline-flex;align-items:center;gap:4px}.operations-trend-analysis b{color:var(--text-secondary);font-weight:800}.operations-trend-safety{font-weight:850}.operations-trend-safety i{font-size:13px}.operations-trend-level{padding:2px 5px;border:1px solid currentColor;border-radius:999px;background:var(--surface-2);font-size:8.5px;font-style:normal;font-weight:850;text-transform:uppercase}.operations-chart-band{fill:currentColor;fill-opacity:.055}.operations-chart-threshold line{stroke:currentColor;stroke-width:1;stroke-dasharray:4 4;opacity:.72}
@container app-content (max-width:1200px){.operations-metric-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.operations-dependency-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.operations-health-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@container app-content (max-width:1200px){.operations-correlation-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}
@container app-content (max-width:780px){.operations-hero{align-items:flex-start;flex-direction:column}.operations-dashboard-grid{grid-template-columns:1fr}.operations-dashboard-grid>.operations-section{margin-bottom:16px}.operations-metric-grid,.operations-dependency-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.operations-history-head{align-items:flex-start}.operations-history-head>div:last-child{align-items:flex-start;flex-direction:column}.operations-correlation-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.operations-threshold-row,.operations-threshold-section .operations-threshold-row{grid-template-columns:1fr}.operations-threshold-row>div{max-width:520px}}
@container app-content (max-width:500px){.operations-hero{padding:20px}.operations-hero-actions{width:100%;flex-direction:column}.operations-hero-actions a,.operations-hero-actions button{width:100%;justify-content:center}.operations-section{padding:15px}.operations-section-head{align-items:flex-start;flex-direction:column;gap:5px}.operations-section-head>small{max-width:none;text-align:left}.operations-history-section{padding:15px}.operations-history-controls{flex-wrap:wrap}.operations-metric-grid,.operations-dependency-grid,.operations-health-grid,.operations-correlation-grid{grid-template-columns:1fr}.operations-health-card{min-height:304px;padding:15px}.operations-chart-frame,.operations-chart-empty{min-height:148px}.operations-telemetry-chart{height:148px}.operations-alert-policy .operations-threshold-row{grid-template-columns:1fr}.operations-threshold-row>div{grid-template-columns:1fr}.operations-threshold-band{grid-template-columns:72px 1fr;align-items:center;text-align:left}.operations-threshold-band small{text-align:right}}
.platform-split>.platform-panel,
.platform-two-column>.platform-panel{
  margin-bottom:0;
}
.platform-panel-wide{
  min-width:0;
}
.platform-section-head{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:20px;
  margin-bottom:17px;
}
.platform-section-head h2{
  margin:3px 0 0;
  font-size:20px;
  line-height:1.25;
}
.platform-section-head p{
  margin:5px 0 0;
  color:var(--text-secondary);
  font-size:13px;
}
.platform-dashboard-delivery{
  width:100%;
}
.platform-dashboard-delivery-toolbar{
  display:grid;
  grid-template-columns:minmax(250px,1.45fr) minmax(170px,1fr) minmax(170px,1fr) minmax(160px,.9fr) minmax(145px,.75fr) auto auto auto;
  align-items:end;
  gap:8px;
  margin-bottom:14px;
  padding:11px;
  border:1px solid var(--border);
  border-radius:7px;
  background:var(--surface-1);
}
.platform-dashboard-delivery-toolbar>label:not(.platform-search){
  display:flex;
  min-width:0;
  flex-direction:column;
  gap:5px;
  color:var(--text-secondary);
  font-size:9px;
  font-weight:700;
}
.platform-dashboard-delivery-toolbar select{
  width:100%;
  min-height:40px;
  padding:8px 9px;
  border:1px solid var(--border-strong);
  border-radius:7px;
  background:var(--surface-2);
  color:var(--text-primary);
  font:inherit;
  font-size:10px;
}
.platform-dashboard-delivery-toolbar select:disabled{
  color:var(--text-muted);
  cursor:not-allowed;
  opacity:.72;
}
.platform-dashboard-delivery-search{
  width:100%;
}
.platform-dashboard-delivery-toolbar .platform-sort-direction,
.platform-dashboard-delivery-toolbar .platform-filter-reset{
  min-height:40px;
}
.platform-dashboard-density{
  min-height:40px;
}
.platform-dashboard-density button{
  min-height:32px;
  padding-inline:8px;
}
.platform-offering-table.platform-dashboard-offering-table{
  min-width:980px;
}
.platform-offering-table.platform-dashboard-offering-table th:nth-child(1),
.platform-offering-table.platform-dashboard-offering-table td:nth-child(1){width:17%}
.platform-offering-table.platform-dashboard-offering-table th:nth-child(2),
.platform-offering-table.platform-dashboard-offering-table td:nth-child(2){width:21%}
.platform-offering-table.platform-dashboard-offering-table th:nth-child(3),
.platform-offering-table.platform-dashboard-offering-table td:nth-child(3){width:6%}
.platform-offering-table.platform-dashboard-offering-table th:nth-child(4),
.platform-offering-table.platform-dashboard-offering-table td:nth-child(4){width:10%}
.platform-offering-table.platform-dashboard-offering-table th:nth-child(5),
.platform-offering-table.platform-dashboard-offering-table td:nth-child(5){width:22%}
.platform-dashboard-delivery[data-density="compact"] .platform-dashboard-offering-table th{
  padding:7px 9px;
  font-size:9px;
}
.platform-dashboard-delivery[data-density="compact"] .platform-dashboard-offering-table td{
  padding:7px 9px;
  font-size:10px;
}
.platform-dashboard-delivery[data-density="compact"] .platform-dashboard-offering-table td strong{
  font-size:11px;
}
.platform-dashboard-delivery[data-density="compact"] .platform-dashboard-offering-table td small,
.platform-dashboard-delivery[data-density="compact"] .platform-person small{
  font-size:8px;
}
.platform-dashboard-delivery[data-density="compact"] .platform-person{
  grid-template-columns:16px auto;
  padding:3px 5px;
}
.platform-dashboard-delivery[data-density="compact"] .platform-person i{
  font-size:14px;
}
.platform-dashboard-delivery[data-density="compact"] .platform-status{
  padding:4px 7px;
  font-size:9px;
}
@container app-content (max-width:1450px){
  .platform-dashboard-delivery-toolbar{
    grid-template-columns:repeat(4,minmax(0,1fr));
  }
  .platform-dashboard-delivery-search{
    grid-column:1/-1;
  }
}
@container app-content (max-width:850px){
  .platform-dashboard-delivery-toolbar{
    grid-template-columns:repeat(2,minmax(0,1fr));
  }
}
@container app-content (max-width:560px){
  .platform-dashboard-delivery-toolbar{
    grid-template-columns:1fr;
  }
  .platform-dashboard-delivery-toolbar>*{
    width:100%;
  }
  .platform-dashboard-density{
    justify-content:stretch;
  }
  .platform-dashboard-density button{
    flex:1;
  }
}
.platform-table-wrap{
  width:100%;
  max-width:100%;
  overflow:auto;
  border:1px solid var(--border);
  border-radius:7px;
  background:var(--surface-2);
}
.platform-table{
  width:100%;
  min-width:840px;
  border:0;
  border-collapse:collapse;
  table-layout:auto;
}
.platform-offering-table{
  /* Widened with the status and action columns below so the fixed layout still has room. */
  min-width:1120px;
  table-layout:fixed;
}
.platform-offering-table th:nth-child(2),
.platform-offering-table td:nth-child(2){width:150px}
.platform-offering-table th:nth-child(3),
.platform-offering-table td:nth-child(3){width:82px}
.platform-offering-table th:nth-child(4),
.platform-offering-table td:nth-child(4){width:150px}
.platform-offering-table th:nth-child(5),
.platform-offering-table td:nth-child(5){width:260px}
/* University logo control in the institution editor. */
.platform-institution-logo>span{font-size:9px;font-weight:800;letter-spacing:.07em;text-transform:uppercase;color:var(--text-secondary)}
.platform-institution-logo-row{display:flex;align-items:center;gap:14px;margin-top:6px}
.platform-institution-logo-preview{display:grid;place-items:center;width:64px;height:64px;flex:0 0 64px;border:1px solid var(--border);border-radius:50%;background:var(--surface-2);color:var(--text-secondary);font-size:24px;overflow:hidden}
.platform-institution-logo-preview img{display:block;width:100%;height:100%;object-fit:contain}
.platform-institution-logo-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.platform-institution-logo-actions small{flex-basis:100%;color:var(--text-muted);font-size:10px}
.platform-institution-logo-upload{cursor:pointer}
/* Administrator rows open the offering detail modal; the pointer signals it. */
.platform-offering-row{cursor:pointer}
.platform-offering-row:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}
/* Offering detail modal: read-only facts plus the related-action row. */
.platform-detail-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px 22px;margin:0}
.platform-detail-row{display:flex;flex-direction:column;gap:3px;min-width:0}
.platform-detail-row dt{font-size:9px;font-weight:800;letter-spacing:.07em;text-transform:uppercase;color:var(--text-secondary)}
.platform-detail-row dd{margin:0;font-size:12.5px;color:var(--text-primary)}
.platform-detail-empty{color:var(--text-muted);font-style:italic}
.platform-detail-list{margin:0;padding-left:16px;font-size:12px}
.platform-detail-list li{margin:2px 0}
.platform-detail-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:16px;padding-top:14px;border-top:1px dashed var(--border)}
@media(max-width:640px){.platform-detail-grid{grid-template-columns:1fr}}
/* Status and actions are addressed by class, not position: the column count varies with the
   hideTerm and showAcademicHome options, and the dashboard variant previously sized them as
   percentages.  Under table-layout:fixed the action column must hold four 36px icons, three
   6px gaps and its padding, or the overflow spills leftward across the status pill. */
.platform-offering-table th.platform-table-status,
.platform-offering-table td.platform-table-status{width:124px}
.platform-offering-table th.platform-table-actions,
.platform-offering-table td.platform-table-actions{width:196px}
.platform-offering-table .platform-row-actions{
  flex-wrap:nowrap;
}
.platform-table th{
  padding:10px 12px;
  border:0;
  border-bottom:1px solid var(--border-strong);
  background:var(--surface-1);
  color:var(--text-muted);
  font-size:10px;
  font-weight:750;
  letter-spacing:.08em;
  text-align:left;
  text-transform:uppercase;
  white-space:nowrap;
}
.platform-table td{
  padding:12px;
  border:0;
  border-bottom:1px solid var(--border);
  color:var(--text-secondary);
  font-size:12px;
  vertical-align:middle;
}
.platform-table tbody tr:last-child td{
  border-bottom:0;
}
/* The actions column had no layout rule, so its icon buttons were bare siblings with no gap
   and crowded the status badge to their left once a third action appeared.  The cell stays a
   real table-cell so it keeps vertical-align and column sizing; only the buttons are spaced. */
.platform-table td.platform-table-actions{
  padding-left:18px;
  text-align:right;
  white-space:nowrap;
}
.platform-table td.platform-table-actions>*+*{
  margin-left:6px;
}
.platform-table tbody tr:hover td{
  background:color-mix(in srgb,var(--accent-bg) 35%,var(--surface-2));
}
.platform-table td strong,
.platform-table td>span,
.platform-table td>small{
  display:block;
}
.platform-table td strong{
  color:var(--text-primary);
  font-size:13px;
}
.platform-table td small{
  margin-top:3px;
  color:var(--text-muted);
  line-height:1.35;
}
.platform-course-table td:first-child{
  min-width:230px;
}
.platform-hours{
  display:flex!important;
  align-items:baseline;
  gap:6px;
}
.platform-hours b{
  color:var(--text-primary);
  font-size:16px;
}
.platform-hours small{
  margin:0!important;
}
.platform-people{
  display:flex;
  align-items:center;
  gap:5px;
  flex-wrap:wrap;
}
.platform-person{
  display:inline-grid;
  grid-template-columns:20px auto;
  gap:0 5px;
  align-items:center;
  padding:4px 7px;
  border-radius:5px;
  background:var(--surface-1);
  color:var(--text-primary);
  line-height:1.15;
}
.platform-person i{
  grid-row:1/3;
  color:var(--accent-text);
  font-size:17px;
}
.platform-person small{
  color:var(--text-muted);
  font-size:9px;
}
.platform-status{
  display:inline-flex;
  align-items:center;
  padding:5px 8px;
  border-radius:999px;
  background:var(--surface-1);
  color:var(--text-secondary);
  font-size:10px;
  font-weight:750;
  text-transform:uppercase;
  /* The pill is a fixed label, so it must never wrap or be clipped mid-word when the table
     is narrow; the column reserves room for it instead of compressing it. */
  white-space:nowrap;
}
.platform-table td:has(>.platform-status),
.platform-table th:has(+th:last-child){
  padding-right:16px;
  white-space:nowrap;
}
.platform-status-active,
.platform-status-current{
  background:var(--success-bg);
  color:var(--success-text);
}
.platform-status-draft{
  background:var(--warning-bg);
  color:var(--warning-text);
}
.platform-status-archived{
  color:var(--text-muted);
}
.platform-search{
  position:relative;
  display:block;
  width:min(330px,100%);
}
.platform-search i{
  position:absolute;
  z-index:1;
  top:50%;
  left:11px;
  color:var(--text-muted);
  transform:translateY(-50%);
  pointer-events:none;
}
.platform-search input{
  width:100%;
  min-height:40px;
  padding:8px 12px 8px 36px;
  border:1px solid var(--border-strong);
  border-radius:7px;
  background:var(--surface-1);
  color:var(--text-primary);
  font:inherit;
}
.platform-course-directory-toolbar{
  display:grid;
  grid-template-columns:minmax(260px,1.65fr) minmax(190px,1fr) minmax(190px,1fr) minmax(135px,.68fr) auto auto;
  align-items:end;
  gap:8px;
  margin-bottom:14px;
  padding:11px;
  border:1px solid var(--border);
  border-radius:7px;
  background:var(--surface-2);
}
.platform-course-directory-toolbar>label:not(.platform-search){
  display:flex;
  min-width:0;
  flex-direction:column;
  gap:5px;
  color:var(--text-secondary);
  font-size:9px;
  font-weight:700;
}
.platform-course-directory-toolbar select{
  width:100%;
  min-height:40px;
  padding:8px 9px;
  border:1px solid var(--border-strong);
  border-radius:7px;
  background:var(--surface-1);
  color:var(--text-primary);
  font:inherit;
  font-size:10px;
}
.platform-course-directory-toolbar select:disabled{
  color:var(--text-muted);
  cursor:not-allowed;
  opacity:.72;
}
.platform-course-directory-search{
  width:100%;
}
.platform-course-directory-toolbar .platform-sort-direction,
.platform-course-directory-toolbar .platform-filter-reset{
  min-height:40px;
}
@container app-content (max-width:1100px){
  .platform-course-directory-toolbar{
    grid-template-columns:repeat(3,minmax(0,1fr));
  }
  .platform-course-directory-search{
    grid-column:1/-1;
  }
}
.platform-hierarchy{
  display:flex;
  flex-direction:column;
  gap:14px;
}
.platform-hierarchy>article{
  padding:0;
  border:1px solid var(--border);
  border-radius:8px;
  overflow:hidden;
}
.platform-hierarchy>article>header{
  display:grid;
  grid-template-columns:40px minmax(0,1fr) auto;
  align-items:center;
  gap:10px;
  padding:14px 16px;
  background:var(--accent-bg);
}
.platform-hierarchy>article>header>span{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:38px;
  height:38px;
  border-radius:7px;
  background:var(--surface-2);
  color:var(--accent-text);
  font-size:20px;
}
.platform-hierarchy strong,
.platform-hierarchy small{
  display:block;
}
.platform-hierarchy small{
  margin-top:2px;
  color:var(--text-secondary);
  font-size:11px;
}
.platform-faculties{
  padding:8px 16px 16px;
}
.platform-faculties>section{
  padding:13px 0;
  border-bottom:1px solid var(--border);
}
.platform-faculties>section:last-child{
  padding-bottom:0;
  border-bottom:0;
}
.platform-structure-title{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
}
.platform-structure-open,
.platform-structure-static{
  display:flex;
  align-items:center;
  gap:8px;
  min-width:0;
  padding:7px 9px;
  border:1px solid transparent;
  border-radius:6px;
  background:transparent;
  color:var(--text-primary);
  text-align:left;
}
.platform-structure-open{
  cursor:pointer;
}
.platform-structure-open:hover,
.platform-structure-open:focus-visible{
  border-color:var(--accent-border);
  background:var(--accent-bg);
  color:var(--accent-text);
  outline:0;
}
.platform-structure-open>span,
.platform-structure-static>span{
  display:flex;
  align-items:center;
  gap:8px;
  flex-wrap:wrap;
}
.platform-structure-title i{
  color:var(--accent-text);
}
.platform-structure-links{
  display:flex;
  align-items:center;
  flex:0 0 auto;
}
.platform-unit-type{
  display:inline-flex;
  align-items:center;
  min-height:22px;
  padding:3px 7px;
  border:1px solid var(--accent-border);
  border-radius:999px;
  background:var(--accent-bg);
  color:var(--accent-text);
  font-size:9px;
  font-style:normal;
  font-weight:750;
  letter-spacing:.05em;
  line-height:1;
  text-transform:uppercase;
}
.platform-passive-badge{
  color:var(--text-muted);
  font-size:9px;
  font-style:normal;
  font-weight:750;
  letter-spacing:.05em;
  text-transform:uppercase;
}
.platform-official-link{
  display:inline-flex;
  align-items:center;
  gap:4px;
  color:var(--text-muted);
  font-size:10px;
  font-weight:650;
  text-decoration:none;
}
.platform-official-link:hover{
  color:var(--accent-text);
  text-decoration:underline;
}
.platform-official-link i{
  font-size:12px;
}
.platform-departments{
  display:flex;
  flex-wrap:wrap;
  gap:7px;
  margin-top:9px;
}
.platform-department-card{
  display:inline-flex;
  flex:1 1 430px;
  align-items:center;
  gap:6px;
  min-height:31px;
  padding:8px 10px;
  border:1px solid var(--border);
  border-radius:5px;
  background:var(--surface-1);
  color:var(--text-secondary);
  font-size:11px;
  text-align:left;
}
.platform-departments>button.platform-department-card{
  cursor:pointer;
}
.platform-departments>button.platform-department-card:hover,
.platform-departments>button.platform-department-card:focus-visible{
  border-color:var(--accent-border);
  background:var(--accent-bg);
  color:var(--accent-text);
  outline:0;
}
.platform-department-card small{
  margin-left:3px;
  color:var(--text-muted);
}
.platform-department-card .platform-unit-type{
  min-height:19px;
  padding:2px 6px;
  font-size:8px;
}
.platform-term-list,
.platform-template-list,
.platform-assignment-list{
  display:flex;
  flex-direction:column;
  gap:7px;
}
.platform-term-list>article,
.platform-term-list>button,
.platform-template-list>article,
.platform-assignment-list>label{
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  align-items:center;
  gap:10px;
  min-height:52px;
  padding:10px 11px;
  border:1px solid var(--border);
  border-radius:6px;
  background:var(--surface-1);
}
.platform-assignment-list>label{
  grid-template-columns:20px minmax(0,1fr) minmax(150px,auto);
}
.platform-assignment-list>label>input{
  width:18px;
  height:18px;
}
.platform-assignment-list>label>span{
  display:flex;
  min-width:0;
  flex-direction:column;
}
.platform-assignment-list>label select{
  min-height:36px;
  padding:6px 9px;
  border:1px solid var(--border-strong);
  border-radius:6px;
  background:var(--surface-2);
  color:var(--text-primary);
  font:inherit;
}
.platform-term-list>button{
  width:100%;
  color:var(--text-primary);
  text-align:left;
}
.platform-term-list>button>span{
  display:flex;
  align-items:center;
  gap:7px;
}
.platform-term-list>button:hover{
  border-color:var(--accent-border);
  background:var(--accent-bg);
}
.platform-term-list strong,
.platform-template-list strong,
.platform-term-list small,
.platform-template-list small{
  display:block;
}
.platform-term-list small,
.platform-template-list small{
  margin-top:2px;
  color:var(--text-muted);
  font-size:10px;
}
.platform-planning-scope{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:24px;
  margin-bottom:12px;
}
.platform-planning-scope-intro{
  display:flex;
  min-width:280px;
  align-items:center;
  gap:13px;
}
.platform-planning-scope-intro>span{
  display:grid;
  width:44px;
  height:44px;
  flex:0 0 44px;
  place-items:center;
  border-radius:8px;
  background:var(--accent-bg);
  color:var(--accent-text);
  font-size:22px;
}
.platform-planning-scope-intro h2{
  margin:2px 0 3px;
  font-size:18px;
}
.platform-planning-scope-intro p{
  margin:0;
  color:var(--text-muted);
  font-size:11px;
}
.platform-planning-scope-fields{
  display:grid;
  min-width:min(720px,60vw);
  grid-template-columns:minmax(220px,1fr) 24px minmax(220px,1fr);
  align-items:end;
  gap:10px;
}
.platform-planning-scope-fields>i{
  align-self:center;
  color:var(--text-muted);
  text-align:center;
}
.platform-planning-scope-fields label{
  display:grid;
  gap:6px;
  color:var(--text-secondary);
  font-size:10px;
  font-weight:750;
}
.platform-planning-scope-fields select{
  width:100%;
  min-height:42px;
  padding:0 36px 0 11px;
  border:1px solid var(--border-strong);
  border-radius:6px;
  background:var(--surface-1);
  color:var(--text-primary);
  font:inherit;
  font-size:12px;
}
.platform-planning-context{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:16px;
  margin-bottom:12px;
  padding:11px 15px;
  border:1px solid var(--accent-border);
  border-radius:7px;
  background:var(--accent-bg);
  color:var(--accent-text);
}
.platform-planning-context>div,
.platform-planning-context>div>span,
.platform-planning-context>div>strong{
  display:flex;
  align-items:center;
  gap:7px;
}
.platform-planning-context>div>i{opacity:.65}
.platform-planning-context p{
  margin:0;
  color:var(--text-secondary);
  font-size:11px;
}
.platform-planner{
  display:grid;
  grid-template-columns:repeat(4,minmax(230px,1fr));
  gap:12px;
}
.platform-planner>article{
  display:flex;
  min-height:270px;
  flex-direction:column;
  border:1px solid var(--border);
  border-top:3px solid var(--border-strong);
  border-radius:8px;
  background:var(--surface-2);
  overflow:hidden;
}
.platform-planner>article.current{
  border-top-color:var(--accent);
  box-shadow:0 7px 22px rgba(0,0,0,.07);
}
.platform-planner>article>header{
  position:relative;
  padding:16px;
  border-bottom:1px solid var(--border);
}
.platform-planner>article>header span{
  color:var(--text-muted);
  font-size:10px;
  font-weight:750;
  letter-spacing:.08em;
  text-transform:uppercase;
}
.platform-planner>article>header h2{
  margin:4px 0 0;
  font-size:17px;
}
.platform-planner>article>header em{
  position:absolute;
  top:14px;
  right:13px;
  padding:4px 6px;
  border-radius:999px;
  background:var(--accent-bg);
  color:var(--accent-text);
  font-size:9px;
  font-style:normal;
  font-weight:750;
  text-transform:uppercase;
}
.platform-semester-metrics{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:1px;
  border-bottom:1px solid var(--border);
  background:var(--border);
}
.platform-semester-metrics span{
  padding:10px 5px;
  background:var(--surface-1);
  color:var(--text-muted);
  font-size:9px;
  text-align:center;
}
.platform-semester-metrics b{
  display:block;
  color:var(--text-primary);
  font-size:15px;
}
.platform-semester-courses{
  display:flex;
  flex:1;
  flex-direction:column;
  gap:1px;
  padding:8px;
}
.platform-semester-courses>a,
.platform-semester-courses>span{
  display:flex;
  justify-content:space-between;
  gap:10px;
  padding:7px 8px;
  border-radius:5px;
  color:var(--text-primary);
  font-size:11px;
  text-decoration:none;
}
.platform-semester-courses>a:hover{
  background:var(--accent-bg);
  color:var(--accent-text);
}
.platform-semester-courses small{
  color:var(--text-muted);
}
.platform-staff-grid{
  display:grid;
  grid-template-columns:repeat(3,minmax(300px,1fr));
  gap:10px;
}
.platform-staff-grid>article{
  display:flex;
  min-width:0;
  flex-direction:column;
  gap:10px;
  padding:14px;
  border:1px solid var(--border);
  border-radius:7px;
  background:var(--surface-1);
}
.platform-person-viewable{
  cursor:pointer;
}
.platform-person-viewable:hover,
.platform-person-viewable:focus-visible{
  border-color:var(--accent-border)!important;
  box-shadow:0 0 0 2px color-mix(in srgb,var(--accent) 14%,transparent);
  outline:0;
}
.platform-staff-grid>.platform-empty{grid-column:1/-1}
.platform-staff-grid>article>header{
  display:grid;
  grid-template-columns:44px minmax(0,1fr) 34px;
  align-items:center;
  gap:11px;
}
.platform-avatar{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:42px;
  height:42px;
  border-radius:50%;
  background:var(--accent);
  color:#fff;
  font-weight:750;
}
.platform-staff-grid strong,
.platform-staff-grid a,
.platform-staff-grid .platform-person-email,
.platform-staff-grid small{
  display:block;
  min-width:0;
}
.platform-staff-grid a,
.platform-person-email{
  overflow:hidden;
  color:var(--accent-text);
  font-size:11px;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.platform-staff-grid small{
  color:var(--text-muted);
  font-size:10px;
}
.platform-role-tags{
  display:flex;
  gap:5px;
  flex-wrap:wrap;
}
.platform-role-tags span{
  padding:3px 6px;
  border-radius:999px;
  background:var(--accent-bg);
  color:var(--accent-text);
  font-size:9px;
  font-weight:700;
}
.platform-person-status{
  display:inline-flex;
  align-items:center;
  padding:3px 6px;
  border-radius:999px;
  font-size:9px;
  font-weight:750;
}
.platform-person-status.active{background:var(--success-bg);color:var(--success-text)}
.platform-person-status.passive{background:var(--warning-bg);color:var(--warning-text)}
.platform-person-status.disabled{background:var(--danger-bg);color:var(--danger-text)}
.platform-person-units{
  display:flex;
  min-width:0;
  flex-direction:column;
  gap:5px;
  padding:9px;
  border-radius:6px;
  background:var(--surface-2);
}
.platform-person-units span,
.platform-staff-grid>article>footer span{
  display:flex;
  align-items:flex-start;
  gap:6px;
  min-width:0;
  color:var(--text-secondary);
  font-size:10px;
  line-height:1.35;
}
.platform-person-units i,
.platform-staff-grid>article>footer i{
  flex:0 0 auto;
  margin-top:1px;
  color:var(--accent-text);
}
.platform-staff-grid>article>footer{
  display:flex;
  justify-content:space-between;
  gap:8px;
  margin-top:auto;
  padding-top:9px;
  border-top:1px solid var(--border);
}
.platform-directory-panel{
  min-width:0;
}
.platform-directory-heading{
  display:flex;
  align-items:flex-end;
  justify-content:space-between;
  gap:18px;
  margin-bottom:14px;
}
.platform-directory-heading h2{
  margin:3px 0 0;
}
.platform-directory-primary-controls{
  display:flex;
  align-items:center;
  justify-content:flex-end;
  gap:8px;
}
.platform-directory-primary-controls .platform-search{
  width:min(420px,38vw);
}
.platform-view-switch{
  display:inline-flex;
  align-items:center;
  gap:3px;
  padding:3px;
  border:1px solid var(--border);
  border-radius:7px;
  background:var(--surface-2);
}
.platform-view-switch button,
.platform-sort-direction,
.platform-pagination button{
  display:inline-flex;
  min-height:36px;
  align-items:center;
  justify-content:center;
  gap:5px;
  padding:7px 10px;
  border:1px solid transparent;
  border-radius:5px;
  background:transparent;
  color:var(--text-secondary);
  font:inherit;
  font-size:10px;
  font-weight:700;
  cursor:pointer;
}
.platform-view-switch button:hover,
.platform-view-switch button:focus-visible,
.platform-view-switch button.active{
  border-color:var(--accent-border);
  background:var(--accent-bg);
  color:var(--accent-text);
  outline:0;
}
.platform-directory-filters{
  display:grid;
  grid-template-columns:minmax(180px,1.35fr) minmax(130px,.8fr) minmax(130px,.8fr) minmax(120px,.65fr) auto auto;
  align-items:end;
  gap:8px;
  margin-bottom:14px;
  padding:11px;
  border:1px solid var(--border);
  border-radius:7px;
  background:var(--surface-2);
}
.platform-directory-filters label{
  display:flex;
  min-width:0;
  flex-direction:column;
  gap:5px;
  color:var(--text-secondary);
  font-size:9px;
  font-weight:700;
}
.platform-directory-filters select,
.platform-page-size select,
.platform-page-size input,
.platform-pagination input{
  width:100%;
  min-height:36px;
  padding:7px 9px;
  border:1px solid var(--border-strong);
  border-radius:6px;
  background:var(--surface-1);
  color:var(--text-primary);
  font:inherit;
  font-size:10px;
}
.platform-sort-direction{
  min-width:66px;
  border-color:var(--border-strong);
  background:var(--surface-1);
}
.platform-filter-reset{
  min-height:36px;
  padding:7px 11px;
}
.platform-staff-list{
  min-width:0;
  border:1px solid var(--border);
  border-radius:7px;
  background:var(--surface-1);
  overflow-x:auto;
}
.platform-staff-list-head,
.platform-staff-list>article{
  display:grid;
  grid-template-columns:minmax(230px,1.25fr) minmax(180px,.9fr) minmax(250px,1.3fr) minmax(210px,1fr) 36px;
  align-items:center;
  gap:12px;
  min-width:950px;
}
.platform-staff-list-head{
  padding:9px 12px;
  border-bottom:1px solid var(--border);
  background:var(--surface-2);
  color:var(--text-muted);
  font-size:9px;
  font-weight:750;
  letter-spacing:.04em;
  text-transform:uppercase;
}
.platform-staff-list>article{
  padding:11px 12px;
  border-bottom:1px solid var(--border);
}
.platform-staff-list>article:last-child{
  border-bottom:0;
}
.platform-staff-list>article:hover{
  background:var(--accent-bg);
}
.platform-staff-list>.platform-empty{
  min-width:0;
}
.platform-list-person{
  display:grid;
  grid-template-columns:42px minmax(0,1fr);
  align-items:center;
  gap:10px;
  min-width:0;
}
.platform-list-person>span:last-child{
  min-width:0;
}
.platform-list-person strong,
.platform-list-person a,
.platform-list-person .platform-person-email{
  display:block;
  overflow:hidden;
  min-width:0;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.platform-list-person a{
  margin-top:2px;
  color:var(--accent-text);
  font-size:10px;
}
.platform-list-affiliations{
  display:flex;
  min-width:0;
  flex-direction:column;
  gap:4px;
}
.platform-list-affiliations span{
  display:flex;
  align-items:flex-start;
  gap:5px;
  color:var(--text-secondary);
  font-size:9px;
  line-height:1.35;
}
.platform-list-affiliations i{
  flex:0 0 auto;
  color:var(--accent-text);
}
.platform-list-profile{
  display:flex;
  min-width:0;
  flex-direction:column;
  gap:3px;
  color:var(--text-secondary);
  font-size:10px;
}
.platform-list-profile small{
  color:var(--text-muted);
  font-size:9px;
}
.platform-directory-footer{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:14px;
  min-height:48px;
  margin-top:12px;
  color:var(--text-muted);
  font-size:10px;
}
.platform-page-size,
.platform-pagination{
  display:flex;
  align-items:center;
  gap:6px;
}
.platform-page-size{
  margin-left:auto;
}
.platform-page-size select{
  width:82px;
}
.platform-page-size input{
  width:88px;
}
.platform-pagination button{
  width:34px;
  min-height:34px;
  padding:6px;
  border-color:var(--border-strong);
  background:var(--surface-1);
}
.platform-pagination button:hover:not(:disabled){
  border-color:var(--accent-border);
  background:var(--accent-bg);
  color:var(--accent-text);
}
.platform-pagination button:disabled{
  cursor:not-allowed;
  opacity:.4;
}
.platform-pagination label{
  display:flex;
  align-items:center;
  gap:5px;
  white-space:nowrap;
}
.platform-pagination input{
  width:58px;
  min-height:34px;
  text-align:center;
}
.platform-loading,
.platform-empty{
  display:flex;
  align-items:center;
  justify-content:center;
  min-height:310px;
  flex-direction:column;
  gap:10px;
  color:var(--text-secondary);
  text-align:center;
}
.platform-loading{
  flex-direction:row;
}
.platform-loading>i{
  color:var(--accent);
  font-size:25px;
  animation:platform-spin 1s linear infinite;
}
.platform-loading strong,
.platform-loading span{
  display:block;
}
.platform-loading span{
  margin-top:2px;
  color:var(--text-muted);
  font-size:11px;
}
.platform-empty>i{
  color:var(--text-muted);
  font-size:40px;
}
.platform-empty h2,
.platform-empty p{
  margin:0;
}
.platform-empty p{
  max-width:480px;
}
@keyframes platform-spin{
  to{transform:rotate(360deg)}
}
.platform-form-modal{
  padding:17px;
}
.platform-form-modal>.fig-modal-inner{
  width:auto;
  max-width:none;
  max-height:none;
  padding:0;
  overflow:visible;
  background:transparent;
  transform:translate(var(--platform-modal-x,0),var(--platform-modal-y,0));
}
.platform-form-modal>.fig-modal-inner>.fig-modal-close{
  display:none;
}
.platform-form-modal[data-platform-window-mode="maximized"]{
  inset:0;
  z-index:var(--layer-modal,3000);
  width:100vw;
  height:100dvh;
  align-items:stretch;
  justify-content:stretch;
  padding:0;
}
.platform-form-modal[data-platform-window-mode="maximized"]>.fig-modal-inner{
  box-sizing:border-box;
  width:100%!important;
  max-width:none!important;
  height:100%!important;
  max-height:none!important;
  margin:0!important;
  border:0;
  border-radius:0;
  transform:none!important;
}
.platform-form-modal[data-platform-window-mode="maximized"]>.fig-modal-inner>#figModalBody{
  width:100%;
  height:100%;
  min-height:0;
}
.platform-form-modal[data-platform-window-mode="maximized"] .platform-form{
  width:100%;
  height:100%;
  max-height:none;
}
.platform-form-modal[data-platform-window-mode="maximized"] .platform-form>header,
.platform-form-modal[data-platform-window-mode="maximized"] .platform-form>footer{
  flex:0 0 auto;
}
.platform-form-modal[data-platform-window-mode="minimized"]{
  align-items:flex-end;
  justify-content:flex-end;
  padding:16px;
  background:transparent;
  pointer-events:none;
}
.platform-form-modal[data-platform-window-mode="minimized"]>.fig-modal-inner{
  width:min(420px,calc(100vw - 32px));
  transform:none;
  pointer-events:auto;
}
.platform-form-modal[data-platform-window-mode="minimized"] .platform-form{
  width:100%;
  max-height:64px;
  border-color:var(--accent-border);
}
.platform-form-modal[data-platform-window-mode="minimized"] .platform-form-body,
.platform-form-modal[data-platform-window-mode="minimized"] .platform-form>footer{
  display:none;
}
.platform-form-modal[data-platform-window-mode="minimized"] .platform-form-header{
  min-height:62px;
  padding:9px 10px 9px 15px;
  border:0;
  cursor:default;
}
.platform-form-modal[data-platform-window-mode="minimized"] .platform-form-header .eyebrow,
.platform-form-modal[data-platform-window-mode="minimized"] [data-platform-window-maximize]{
  display:none;
}
.platform-form-modal[data-platform-window-mode="minimized"] .platform-form-header h2{
  margin:0;
  font-size:14px;
}
.platform-form{
  display:flex;
  width:min(1050px,calc(100vw - 34px));
  max-height:min(840px,calc(100vh - 34px));
  flex-direction:column;
  border:1px solid var(--border-strong);
  border-radius:8px;
  background:var(--surface-2);
  box-shadow:0 22px 70px rgba(0,0,0,.24);
  overflow:hidden;
}
.platform-form>header,
.platform-form>footer{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:14px;
  padding:16px 20px;
  border-bottom:1px solid var(--border);
}
.platform-form>header h2{
  margin:3px 0 0;
}
.platform-form-header{
  cursor:grab;
  touch-action:none;
  user-select:none;
}
.platform-form.is-dragging .platform-form-header{
  cursor:grabbing;
}
.platform-form-header>div:first-child{
  min-width:0;
}
.platform-form-header h2{
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.platform-modal-window-controls{
  display:flex;
  align-items:center;
  gap:5px;
  flex:0 0 auto;
}
.platform-modal-window-controls .icon-btn{
  width:34px;
  height:34px;
  flex:0 0 34px;
  border:1px solid var(--border-strong);
  background:var(--surface-1);
  cursor:pointer;
}
.platform-modal-window-controls [data-platform-window-close]:hover{
  border-color:color-mix(in srgb,var(--danger-text) 45%,var(--border));
  background:var(--danger-bg);
  color:var(--danger-text);
}
.platform-form>footer{
  justify-content:flex-end;
  border-top:1px solid var(--border);
  border-bottom:0;
}
.platform-form-body{
  flex:1;
  min-height:0;
  padding:20px;
  overflow:auto;
  overscroll-behavior:contain;
  scrollbar-gutter:stable;
}
.platform-form-grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:14px;
}
.platform-form-grid label,
.course-shell-editor label{
  display:flex;
  min-width:0;
  flex-direction:column;
  gap:6px;
  color:var(--text-secondary);
  font-size:11px;
  font-weight:700;
}
.platform-form-grid input,
.platform-form-grid select,
.platform-form-grid textarea,
.course-shell-editor input,
.course-shell-editor select,
.course-shell-editor textarea{
  width:100%;
  min-height:42px;
  padding:9px 11px;
  border:1px solid var(--border-strong);
  border-radius:7px;
  background:var(--surface-1);
  color:var(--text-primary);
  font:inherit;
  font-weight:400;
}
.platform-form-grid textarea,
.course-shell-editor textarea{
  min-height:100px;
  line-height:1.5;
  resize:vertical;
}
.platform-field,
.strategy-form-field,
.strategy-direction-meta>label{
  display:flex;
  min-width:0;
  flex-direction:column;
  gap:6px;
  color:var(--text-secondary);
  font-size:var(--form-label-font-size,11px);
  font-weight:700;
  line-height:1.4;
}
.platform-field input,
.platform-field select,
.platform-field textarea,
.strategy-form-field textarea,
.strategy-direction-meta input{
  width:100%;
  min-height:var(--form-control-height,42px);
  padding:9px 11px;
  border:1px solid var(--border-strong);
  border-radius:7px;
  background:var(--surface-1);
  color:var(--text-primary);
  box-sizing:border-box;
  font:inherit;
  font-size:var(--form-control-font-size,14px);
  font-weight:400;
}
.platform-form-body>.platform-field,
.platform-form-body>.strategy-form-field{
  margin-top:14px;
}
.strategy-form-field textarea{
  min-height:130px;
  line-height:1.55;
  resize:vertical;
}
.strategy-direction-editor{
  display:grid;
  gap:18px;
}
.strategy-direction-note{
  margin:0;
}
.strategy-direction-meta{
  width:min(300px,100%);
}
.strategy-direction-grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:16px;
}
.strategy-direction-grid .strategy-form-field{
  padding:16px;
  border:1px solid var(--border);
  border-radius:12px;
  background:color-mix(in srgb,var(--surface-1) 96%,#e8f4fa);
}
.strategy-direction-grid textarea{
  min-height:190px;
}
.strategy-direction-grid .strategy-direction-values{
  grid-column:1/-1;
}
.strategy-direction-grid .strategy-direction-values textarea{
  min-height:135px;
}
.platform-form-wide{
  grid-column:1/-1;
}
/* Delivery-timetable editor: one horizontal row per weekly class hour.  Shared by the
   administrator's offering modal and the professor's Launch Studio, so it carries its own
   layout instead of relying on modal-only form styles. */
.course-schedule-editor{
  display:block;
  margin:0;
  padding:14px 16px 16px;
  border:1px solid var(--border);
  border-radius:10px;
  background:var(--surface-1);
}
.course-schedule-editor legend{
  padding:0 6px;
  font-size:12px;
  font-weight:700;
  color:var(--text-primary);
}
.course-schedule-hint{
  margin:0 0 10px;
  font-size:12px;
  color:var(--text-secondary);
}
.course-schedule-row{
  display:flex;
  flex-wrap:wrap;
  gap:10px;
  align-items:flex-end;
  padding:7px 0;
}
.course-schedule-row+.course-schedule-row{
  border-top:1px dashed var(--border);
}
.course-schedule-row>label{
  display:flex;
  flex-direction:column;
  gap:4px;
  flex:1 1 120px;
  min-width:0;
  margin:0;
}
.course-schedule-row>label>span{
  font-size:10px;
  font-weight:700;
  letter-spacing:.05em;
  text-transform:uppercase;
  color:var(--text-secondary);
}
.course-schedule-row select,
.course-schedule-row input{
  width:100%;
}
.course-schedule-row .course-schedule-online{
  flex:0 0 auto;
  flex-direction:row;
  align-items:center;
  gap:7px;
  padding-bottom:9px;
}
.course-schedule-row .course-schedule-online input{
  width:auto;
}
.course-schedule-row .course-schedule-online span{
  font-size:12px;
  font-weight:600;
  letter-spacing:0;
  text-transform:none;
  color:var(--text-primary);
}
.course-schedule-row [data-schedule-remove]{
  flex:0 0 auto;
  margin-bottom:3px;
}
.course-schedule-editor [data-schedule-add]{
  margin-top:10px;
}
.platform-assessment-definition{
  display:grid;
  gap:14px;
  margin:0;
  padding:16px;
  border:1px solid var(--border);
  border-radius:10px;
  background:var(--surface-1);
}
.platform-assessment-definition legend{
  padding:0 6px;
  color:var(--text-primary);
  font-weight:800;
}
.platform-assessment-definition>.muted{margin:0;line-height:1.5}
.platform-assessment-profile-list{display:grid;gap:12px}
.platform-assessment-profile{
  padding:14px;
  border:1px solid var(--border);
  border-radius:9px;
  background:var(--surface-0);
}
.platform-assessment-profile>header{
  display:grid;
  grid-template-columns:auto 1fr auto;
  align-items:start;
  gap:10px;
  margin-bottom:14px;
}
.platform-assessment-profile>header>span{
  display:grid;
  width:32px;
  height:32px;
  place-items:center;
  border-radius:8px;
  color:var(--accent-text);
  background:var(--accent-bg);
}
.platform-assessment-profile h3,.platform-assessment-profile p{margin:0}
.platform-assessment-profile header small{color:var(--text-muted);font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.06em}
.platform-assessment-profile p{margin-top:3px;color:var(--text-secondary);font-size:12px;line-height:1.4}
.platform-assessment-profile-actions{display:flex;align-items:end;flex-wrap:wrap;gap:10px}
.platform-assessment-profile-actions label{display:grid;gap:5px;min-width:180px;color:var(--text-secondary);font-size:11px;font-weight:700}
.platform-assessment-profile-actions select{min-height:38px;padding:7px 9px;border:1px solid var(--border-strong);border-radius:7px;background:var(--surface-0);color:var(--text-primary);font:inherit;font-weight:400}
.platform-assessment-library{padding:22px}
.platform-assessment-profile-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}
.platform-assessment-profile-card{display:grid;grid-template-columns:44px minmax(0,1fr) auto;gap:13px;align-items:center;width:100%;min-height:112px;padding:16px;border:1px solid color-mix(in srgb,var(--border-strong) 78%,transparent);border-radius:15px;background:linear-gradient(145deg,var(--surface-0),color-mix(in srgb,var(--accent) 3%,var(--surface-1)));box-shadow:0 7px 18px rgba(20,57,76,.06);color:inherit;font:inherit;text-align:left;cursor:pointer;transition:transform .18s ease,border-color .18s ease,box-shadow .18s ease}
.platform-assessment-profile-card:hover,.platform-assessment-profile-card:focus-visible{transform:translateY(-2px);border-color:color-mix(in srgb,var(--accent) 38%,var(--border-strong));box-shadow:0 13px 28px rgba(20,57,76,.13);outline:none}
.platform-assessment-profile-icon{display:grid;place-items:center;width:44px;height:44px;border-radius:13px;background:color-mix(in srgb,var(--accent) 12%,var(--surface-1));color:var(--accent);font-size:22px}
.platform-assessment-profile-copy{display:grid;min-width:0}
.platform-assessment-profile-copy small{margin-bottom:2px;color:var(--accent);font-size:10px;font-weight:800;letter-spacing:.09em;text-transform:uppercase}
.platform-assessment-profile-copy strong{overflow:hidden;color:var(--text-primary);font-size:15px;line-height:1.25;text-overflow:ellipsis;white-space:nowrap}
.platform-assessment-profile-copy>span{display:-webkit-box;overflow:hidden;margin-top:5px;color:var(--text-secondary);font-size:11px;line-height:1.4;-webkit-box-orient:vertical;-webkit-line-clamp:2}
.platform-assessment-profile-side{display:grid;align-self:stretch;justify-items:end;align-content:space-between;gap:8px}
.platform-assessment-profile-side em{padding:4px 7px;border-radius:999px;font-size:9px;font-style:normal;font-weight:800;letter-spacing:.06em;text-transform:uppercase}
.platform-assessment-profile-side em.is-available{background:#e5f5ee;color:#15734f}
.platform-assessment-profile-side em.is-disabled{background:#f1f2f4;color:#68707c}
.platform-assessment-profile-side>i{color:var(--accent);font-size:18px}
@media(max-width:1100px){.platform-assessment-profile-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:680px){.platform-assessment-profile-grid{grid-template-columns:1fr}.platform-assessment-library{padding:16px}}
.platform-engine-reference-modal{width:min(1120px,calc(100vw - 34px))}
.platform-engine-reference-modal>.platform-form-header{border-bottom-color:color-mix(in srgb,var(--accent) 18%,var(--border));background:linear-gradient(90deg,color-mix(in srgb,var(--accent) 7%,var(--surface-2)),var(--surface-2))}
.platform-engine-reference-modal>.platform-form-header h2{font-size:clamp(22px,2.1vw,30px)}
.platform-engine-reference{display:grid;gap:16px}
.platform-engine-reference-hero{position:relative;display:grid;min-height:129px;grid-template-columns:minmax(0,.92fr) minmax(360px,1.08fr);align-items:center;gap:20px;padding:23px 26px;overflow:hidden;border:1px solid color-mix(in srgb,var(--accent) 25%,var(--border));border-radius:18px;background:radial-gradient(circle at 75% 20%,rgba(255,255,255,.92),transparent 31%),linear-gradient(125deg,color-mix(in srgb,var(--accent) 15%,var(--surface-0)),color-mix(in srgb,#59bdb2 12%,var(--surface-1)));box-shadow:0 13px 30px rgba(20,57,76,.09)}
.platform-engine-reference-hero::before,.platform-engine-reference-hero::after{position:absolute;border:1px solid color-mix(in srgb,var(--accent) 18%,transparent);border-radius:50%;content:"";pointer-events:none}
.platform-engine-reference-hero::before{width:230px;height:230px;top:-162px;left:34%}
.platform-engine-reference-hero::after{width:170px;height:170px;right:-95px;bottom:-112px}
.platform-engine-reference-hero-copy{position:relative;z-index:1}
.platform-engine-reference-hero-copy .eyebrow{color:var(--accent)}
.platform-engine-reference-hero-copy h3{max-width:430px;margin:6px 0 8px;color:var(--text-primary);font-size:clamp(24px,3vw,38px);line-height:1.03;letter-spacing:-.035em}
.platform-engine-reference-hero-copy p{max-width:490px;margin:0;color:var(--text-secondary);font-size:12px;line-height:1.55}
.platform-engine-reference-hero-copy>div{display:flex;flex-wrap:wrap;gap:7px;margin-top:15px}
.platform-engine-reference-hero-copy>div span{display:inline-flex;align-items:center;gap:6px;padding:6px 9px;border:1px solid rgba(255,255,255,.8);border-radius:999px;background:rgba(255,255,255,.68);color:var(--text-secondary);font-size:9px;font-weight:800;letter-spacing:.04em;text-transform:uppercase;backdrop-filter:blur(6px)}
.platform-engine-reference-hero-copy>div i{color:var(--accent);font-size:13px}
.platform-engine-reference-visual{position:relative;z-index:1;min-width:0}
.platform-engine-reference-visual svg{display:block;width:100%;height:auto;max-height:200px}
.platform-engine-visual-path{fill:none;stroke:color-mix(in srgb,var(--accent) 36%,transparent);stroke-width:2.5;stroke-dasharray:6 7}
.platform-engine-visual-card text{fill:#26444f;font-family:var(--font-interface);font-size:10px;font-weight:800;letter-spacing:.08em}
.platform-engine-visual-card text.is-small{fill:#75878e;font-size:8px;font-weight:700;letter-spacing:.03em}
.platform-engine-visual-card,.platform-engine-visual-core{transform-box:fill-box;transform-origin:center;animation:platform-engine-float 5s ease-in-out infinite}
.platform-engine-visual-card:nth-of-type(3),.platform-engine-visual-card:nth-of-type(5){animation-delay:-2.5s}
@keyframes platform-engine-float{50%{transform:translateY(-4px)}}
.platform-engine-tabs{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:7px;padding:6px;border:1px solid var(--border);border-radius:12px;background:var(--surface-1)}
.platform-engine-tabs button{display:flex;position:relative;min-width:0;min-height:54px;align-items:center;justify-content:center;gap:7px;padding:9px;border:1px solid transparent;border-radius:9px;background:transparent;color:var(--text-secondary);font:inherit;font-size:11px;font-weight:800;cursor:pointer;transition:transform .16s ease,background .16s ease,border-color .16s ease}
.platform-engine-tabs button span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.platform-engine-tabs button i{display:grid;width:30px;height:30px;place-items:center;border-radius:9px;background:color-mix(in srgb,var(--accent) 9%,var(--surface-0));font-size:17px}
.platform-engine-tabs button:hover{transform:translateY(-1px);background:var(--surface-0);color:var(--text-primary)}
.platform-engine-tabs button[aria-selected="true"]{border-color:var(--accent-border);background:var(--surface-0);box-shadow:0 6px 15px rgba(20,57,76,.1);color:var(--accent)}
.platform-engine-tabs button[aria-selected="true"]::after{position:absolute;right:14px;bottom:-1px;left:14px;height:3px;border-radius:3px 3px 0 0;background:var(--accent);content:""}
.platform-engine-tabs button:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
.platform-engine-panel{padding:20px;border:1px solid color-mix(in srgb,var(--accent) 14%,var(--border-strong));border-radius:14px;background:linear-gradient(145deg,var(--surface-0),color-mix(in srgb,var(--accent) 2.5%,var(--surface-1)));box-shadow:0 10px 25px rgba(20,57,76,.06)}
.platform-engine-panel>header{display:grid;grid-template-columns:48px minmax(0,1fr);align-items:center;gap:13px;margin-bottom:16px}
.platform-engine-panel>header>span{display:grid;width:48px;height:48px;place-items:center;border-radius:13px;background:color-mix(in srgb,var(--accent) 12%,var(--surface-1));color:var(--accent);font-size:23px}
.platform-engine-panel>header small{color:var(--accent);font-size:9px;font-weight:800;letter-spacing:.09em;text-transform:uppercase}
.platform-engine-panel h3,.platform-engine-panel h4,.platform-engine-panel p{margin:0}
.platform-engine-panel h3{margin-top:2px;font-size:20px}
.platform-engine-panel>header p{margin-top:4px;color:var(--text-secondary);font-size:12px}
.platform-engine-reference-note{display:flex;align-items:flex-start;gap:9px;margin-bottom:18px;padding:11px 13px;border-radius:9px;background:var(--surface-1);color:var(--text-secondary);font-size:11px;line-height:1.45}
.platform-engine-reference-note>i{margin-top:1px;color:var(--accent);font-size:17px}
.platform-engine-reference-note b{display:block;color:var(--text-primary)}
.platform-engine-guide{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-bottom:20px}
.platform-engine-guide article{display:grid;grid-template-columns:36px minmax(0,1fr);align-content:start;gap:11px;min-width:0;padding:14px;border:1px solid var(--border);border-radius:11px;background:var(--surface-1)}
.platform-engine-guide article>span{display:grid;width:36px;height:36px;place-items:center;border-radius:10px;background:color-mix(in srgb,var(--accent) 10%,var(--surface-0));color:var(--accent);font-size:18px}
.platform-engine-guide article small{color:var(--accent);font-size:8px;font-weight:800;letter-spacing:.09em;text-transform:uppercase}
.platform-engine-guide article h4{margin:2px 0 7px;font-size:13px}
.platform-engine-guide article p{color:var(--text-secondary);font-size:11px;line-height:1.55}
.platform-engine-guide article ul,.platform-engine-guide article ol{margin:0;padding:0;list-style:none}
.platform-engine-guide article ul{display:flex;flex-wrap:wrap;gap:6px}
.platform-engine-guide article ul li{padding:5px 8px;border:1px solid var(--border);border-radius:999px;background:var(--surface-0);color:var(--text-secondary);font-size:9px;font-weight:700;line-height:1.35}
.platform-engine-guide-purpose,.platform-engine-guide-workflow,.platform-engine-guide-boundaries{grid-column:1/-1}
.platform-engine-guide article.platform-engine-guide-purpose{border-color:var(--accent-border);background:linear-gradient(105deg,color-mix(in srgb,var(--accent) 7%,var(--surface-0)),var(--surface-1))}
.platform-engine-guide-workflow ol{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px}
.platform-engine-guide-workflow ol li{display:grid;grid-template-columns:24px minmax(0,1fr);align-items:start;gap:7px;padding:8px;border-radius:8px;background:var(--surface-0);color:var(--text-secondary);font-size:10px;line-height:1.45}
.platform-engine-guide-workflow ol li i{display:grid;width:24px;height:24px;place-items:center;border-radius:7px;background:var(--accent-bg);color:var(--accent);font-size:9px;font-style:normal;font-weight:900}
.platform-engine-guide article.platform-engine-guide-boundaries{border-color:color-mix(in srgb,var(--warn-text) 26%,var(--border));background:color-mix(in srgb,var(--warn-bg) 38%,var(--surface-1))}
.platform-engine-config-head{margin:4px 0 12px}
.platform-engine-config-head h4{margin:3px 0 4px;font-size:15px}
.platform-engine-config-head p{max-width:760px;color:var(--text-secondary);font-size:10px;line-height:1.5}
.platform-engine-reference-columns{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,.85fr);gap:16px}
.platform-engine-reference-columns>section{min-width:0;padding:15px;border:1px solid var(--border);border-radius:11px;background:var(--surface-1)}
.platform-engine-reference-columns h4{margin:3px 0 12px;font-size:13px}
.platform-engine-capability-list,.platform-engine-default-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px;margin:0}
.platform-engine-capability-list>div,.platform-engine-default-list>div{min-width:0;padding:9px 10px;border-radius:8px;background:var(--surface-0)}
.platform-engine-capability-list dt,.platform-engine-default-list dt{margin:0 0 3px;color:var(--text-muted);font-size:9px;font-weight:800;letter-spacing:.05em;text-transform:uppercase}
.platform-engine-capability-list dd,.platform-engine-default-list dd{margin:0;color:var(--text-primary);font-size:11px;font-weight:700;line-height:1.4;overflow-wrap:anywhere}
.platform-engine-default-list{grid-template-columns:1fr}
@media(max-width:900px){.platform-engine-reference-hero{grid-template-columns:1fr}.platform-engine-reference-visual{display:none}}
@media(max-width:820px){.platform-engine-tabs{grid-template-columns:repeat(2,minmax(0,1fr))}.platform-engine-guide{grid-template-columns:1fr}.platform-engine-guide-purpose,.platform-engine-guide-workflow,.platform-engine-guide-boundaries{grid-column:auto}.platform-engine-guide-workflow ol{grid-template-columns:1fr}.platform-engine-reference-columns{grid-template-columns:1fr}}
@media(max-width:560px){.platform-engine-reference-hero{min-height:0;padding:20px}.platform-engine-tabs{grid-template-columns:1fr}.platform-engine-capability-list{grid-template-columns:1fr}.platform-engine-panel{padding:15px}}
@media(prefers-reduced-motion:reduce){.platform-engine-visual-card,.platform-engine-visual-core{animation:none}}
.platform-check span small{
  display:block;
  margin-top:3px;
  color:var(--text-muted);
  font-size:10px;
  font-weight:500;
  line-height:1.35;
}
.platform-entity-lifecycle{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:20px;
  margin-top:20px;
  padding:16px;
  border:1px solid color-mix(in srgb,var(--danger-text) 32%,var(--border));
  border-radius:8px;
  background:var(--danger-bg);
}
.platform-entity-lifecycle>div{
  min-width:0;
}
.platform-entity-lifecycle h3{
  margin:4px 0 5px;
  color:var(--text-primary);
  font-size:14px;
}
.platform-entity-lifecycle p{
  max-width:690px;
  margin:0;
  color:var(--text-secondary);
  font-size:11px;
  line-height:1.5;
}
.platform-entity-lifecycle .btn-danger{
  flex:0 0 auto;
}
.platform-child-manager{
  display:grid;
  gap:18px;
}
.platform-child-manager-summary{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:24px;
  padding:18px;
  border:1px solid var(--border);
  border-radius:8px;
  background:var(--surface-1);
}
.platform-child-manager-summary h3{
  margin:3px 0 7px;
  color:var(--text-primary);
  font-size:20px;
}
.platform-child-manager-summary p{
  max-width:680px;
  margin:0;
  color:var(--text-secondary);
  font-size:11px;
  line-height:1.5;
}
.platform-child-manager-actions{
  display:flex;
  flex:0 0 auto;
  gap:8px;
}
.platform-child-manager-list{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:10px;
}
.platform-child-manager-list>button{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:16px;
  min-width:0;
  padding:14px 15px;
  border:1px solid var(--border);
  border-radius:8px;
  background:var(--surface-2);
  color:var(--text-primary);
  font:inherit;
  text-align:left;
  cursor:pointer;
}
.platform-child-manager-list>button:hover,
.platform-child-manager-list>button:focus-visible{
  border-color:var(--accent);
  box-shadow:0 0 0 2px color-mix(in srgb,var(--accent) 16%,transparent);
  outline:0;
}
.platform-child-manager-list>button span:first-child{
  display:grid;
  gap:4px;
  min-width:0;
}
.platform-child-manager-list>button b{
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.platform-child-manager-list>button small{
  color:var(--text-muted);
  font-size:10px;
}
.platform-child-manager-list>button span:last-child{
  display:flex;
  align-items:center;
  gap:5px;
  color:var(--accent);
  font-size:10px;
  font-weight:800;
  white-space:nowrap;
}
.platform-staff-editor{
  display:flex;
  flex-direction:column;
  gap:14px;
}
.platform-person-detail{
  display:grid;
  gap:12px;
}
.platform-person-detail-identity{
  display:grid;
  grid-template-columns:54px minmax(0,1fr) auto;
  align-items:center;
  gap:13px;
  padding:16px;
  border:1px solid var(--accent-border);
  border-radius:8px;
  background:var(--accent-bg);
}
.platform-person-detail-identity .platform-avatar{
  width:52px;
  height:52px;
}
.platform-person-detail-identity h3{
  margin:3px 0 1px;
  font-size:19px;
}
.platform-person-detail-identity a{
  color:var(--accent-text);
  font-size:10px;
}
.platform-person-detail-state{
  align-self:start;
}
.platform-person-detail-section{
  padding:14px;
  border:1px solid var(--border);
  border-radius:8px;
  background:var(--surface-1);
}
.platform-person-detail-section>header{
  margin-bottom:11px;
}
.platform-person-detail-section h3{
  margin:3px 0 0;
  font-size:15px;
}
.platform-person-detail-grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:8px;
}
.platform-person-detail-grid>div{
  display:grid;
  gap:4px;
  padding:10px;
  border-radius:6px;
  background:var(--surface-2);
}
.platform-person-detail-grid span{
  display:flex;
  align-items:center;
  gap:5px;
  color:var(--text-muted);
  font-size:9px;
  font-weight:700;
}
.platform-person-detail-grid i,
.platform-person-detail-list i,
.platform-person-detail-tags i{
  color:var(--accent-text);
}
.platform-person-detail-grid strong{
  font-size:11px;
}
.platform-person-detail-tags{
  display:flex;
  flex-wrap:wrap;
  gap:6px;
}
.platform-person-detail-tags>span{
  display:inline-flex;
  align-items:center;
  gap:5px;
  padding:6px 8px;
  border-radius:6px;
  background:var(--accent-bg);
  color:var(--accent-text);
  font-size:10px;
  font-weight:700;
}
.platform-person-detail-list{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:7px;
  margin:0;
  padding:0;
  list-style:none;
}
.platform-person-detail-list li{
  display:grid;
  grid-template-columns:18px minmax(0,1fr);
  align-items:start;
  gap:7px;
  padding:10px;
  border-radius:6px;
  background:var(--surface-2);
}
.platform-person-detail-list span{
  display:flex;
  min-width:0;
  flex-direction:column;
  gap:2px;
}
.platform-person-detail-list b{
  font-size:10px;
}
.platform-person-detail-list small{
  color:var(--text-muted);
  font-size:9px;
  line-height:1.4;
}
.platform-staff-editor-section,
.platform-taxonomy-editor>section{
  padding:15px;
  border:1px solid var(--border);
  border-radius:8px;
  background:var(--surface-1);
}
.platform-staff-editor-section[hidden]{display:none}
.platform-editor-section-head,
.platform-taxonomy-editor>section>header{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:14px;
  margin-bottom:13px;
}
.platform-editor-section-head h3,
.platform-taxonomy-editor h3{
  margin:3px 0 0;
  font-size:16px;
}
.platform-editor-section-head p,
.platform-taxonomy-editor p{
  margin:4px 0 0;
  color:var(--text-muted);
  font-size:10px;
  line-height:1.45;
}
.platform-access-role-grid,
.platform-account-state,
.platform-scope-grid{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:9px;
}
.platform-access-role-grid>label,
.platform-scope-grid>label{
  display:grid;
  grid-template-columns:20px minmax(0,1fr);
  align-items:start;
  gap:9px;
  padding:11px;
  border:1px solid var(--border);
  border-radius:7px;
  background:var(--surface-2);
  cursor:pointer;
}
.platform-access-role-grid input,
.platform-scope-grid input{
  width:18px;
  height:18px;
  margin-top:1px;
}
.platform-access-role-grid span,
.platform-scope-grid span{
  display:flex;
  min-width:0;
  flex-direction:column;
  gap:3px;
}
.platform-access-role-grid small,
.platform-scope-grid small{
  color:var(--text-muted);
  font-size:9px;
  font-weight:500;
  line-height:1.35;
}
.platform-account-state{margin-top:10px}
.platform-teaching-role-grid{margin-top:14px}
.platform-teaching-role-grid>div:first-child{margin-bottom:9px}
.platform-teaching-role-grid h3{margin:2px 0 3px;font-size:13px}
.platform-teaching-role-grid p{margin:0;color:var(--text-muted);font-size:10px;line-height:1.45}
.platform-affiliation-list{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:10px;
}
.platform-affiliation-card{
  min-width:0;
  border:1px solid var(--border);
  border-radius:7px;
  background:var(--surface-2);
  overflow:hidden;
}
.platform-affiliation-card>header{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:12px;
  padding:11px;
  border-bottom:1px solid var(--border);
  background:var(--accent-bg);
}
.platform-affiliation-card>header>div{
  display:flex;
  min-width:0;
  flex-direction:column;
}
.platform-affiliation-card>header small,
.platform-affiliation-card>div label small{
  color:var(--text-muted);
  font-size:9px;
}
.platform-affiliation-card>header>label,
.platform-affiliation-card>div>label{
  display:grid;
  grid-template-columns:18px minmax(0,1fr);
  align-items:start;
  gap:7px;
  color:var(--text-secondary);
  font-size:10px;
  cursor:pointer;
}
.platform-affiliation-card input{width:17px;height:17px;margin-top:1px}
.platform-affiliation-card>div{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:7px;
  padding:11px;
}
.platform-affiliation-card>div label span{
  display:flex;
  min-width:0;
  flex-direction:column;
  gap:2px;
}
.platform-appointment-list,
.platform-taxonomy-editor,
[data-taxonomy-rows]{
  display:grid;
  gap:9px;
}
.platform-appointment-row{
  display:grid;
  grid-template-columns:minmax(150px,1fr) 130px 130px minmax(190px,1.2fr) 100px 36px;
  align-items:end;
  gap:8px;
  padding:10px;
  border:1px solid var(--border);
  border-radius:7px;
  background:var(--surface-2);
}
.platform-appointment-row>label:not(.platform-check){
  display:flex;
  min-width:0;
  flex-direction:column;
  gap:5px;
  color:var(--text-secondary);
  font-size:10px;
  font-weight:700;
}
.platform-appointment-row input:not([type=checkbox]),
.platform-appointment-row select,
.platform-taxonomy-row>input[data-taxonomy-value]{
  width:100%;
  min-height:38px;
  padding:7px 9px;
  border:1px solid var(--border-strong);
  border-radius:6px;
  background:var(--surface-1);
  color:var(--text-primary);
  font:inherit;
}
.platform-appointment-row>.platform-check{min-height:38px;padding:8px}
.platform-appointment-row .dtp-field{height:38px;border-radius:6px;font-size:inherit}
.platform-taxonomy-editor{grid-template-columns:repeat(2,minmax(0,1fr))}
.platform-taxonomy-row{
  display:grid;
  grid-template-columns:minmax(0,1fr) 96px 36px;
  align-items:center;
  gap:8px;
}
.platform-taxonomy-row>.platform-check{min-height:38px;padding:8px}
.platform-settings-form{
  display:flex;
  min-width:0;
  flex-direction:column;
  gap:15px;
}
.platform-settings-note{
  display:flex;
  align-items:flex-start;
  gap:11px;
  padding:13px 15px;
  border:1px solid var(--accent-border);
  border-radius:8px;
  background:var(--accent-bg);
}
.platform-settings-note>i{
  flex:0 0 auto;
  color:var(--accent-text);
  font-size:21px;
}
.platform-settings-note strong,
.platform-settings-note span{
  display:block;
}
.platform-settings-note span{
  margin-top:3px;
  color:var(--text-secondary);
  font-size:11px;
  line-height:1.5;
}
.platform-regional-settings{
  padding:18px;
  border:1px solid var(--border-strong);
  border-radius:9px;
  background:var(--surface-2);
}
.platform-password-settings{
  padding:18px;
  border:1px solid var(--border-strong);
  border-radius:9px;
  background:var(--surface-2);
}
.platform-typography-settings{
  padding:18px;
  border:1px solid var(--border-strong);
  border-radius:9px;
  background:var(--surface-2);
}
.platform-typography-settings>header{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:16px;
}
.platform-typography-settings>header>div{display:flex;align-items:flex-start;gap:11px}
.platform-typography-settings h2{margin:2px 0 3px;font-size:var(--type-section-title)}
.platform-typography-settings header p{max-width:880px;margin:0;color:var(--text-secondary);font-size:var(--type-help);line-height:1.5}
.platform-typography-inheritance{
  display:inline-flex;
  flex:0 0 auto;
  align-items:center;
  gap:6px;
  padding:7px 10px;
  border:1px solid var(--accent-border);
  border-radius:999px;
  background:var(--accent-bg);
  color:var(--accent-text);
  font-size:var(--type-caption);
  font-weight:800;
}
.platform-typography-presets{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:9px;
  margin-top:15px;
}
.platform-typography-presets label{position:relative;cursor:pointer}
.platform-typography-presets input{position:absolute;opacity:0;pointer-events:none}
.platform-typography-presets label>span{
  display:grid;
  grid-template-columns:38px minmax(0,1fr);
  grid-template-rows:auto auto;
  align-items:center;
  column-gap:9px;
  min-height:78px;
  padding:11px;
  border:1px solid var(--border);
  border-radius:8px;
  background:var(--surface-1);
}
.platform-typography-presets label>span>i{grid-row:1/-1;display:grid;place-items:center;width:38px;height:38px;border-radius:8px;background:var(--surface-2);color:var(--accent);font-size:20px}
.platform-typography-presets label>span>b{font-size:var(--type-label)}
.platform-typography-presets label>span>small{color:var(--text-muted);font-size:var(--type-help);line-height:1.3}
.platform-typography-presets input:checked+span{border-color:var(--accent);background:var(--accent-bg);box-shadow:0 0 0 2px color-mix(in srgb,var(--accent) 18%,transparent)}
.platform-typography-presets input:checked+span>i{background:var(--accent);color:#fff}
.platform-typography-presets input:focus-visible+span{outline:3px solid color-mix(in srgb,var(--accent) 35%,transparent);outline-offset:2px}
.platform-typography-controls{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:10px;
  margin-top:12px;
}
.platform-typography-controls label{display:grid;gap:5px;font-size:var(--type-label);font-weight:700}
.platform-typography-controls select{width:100%;min-height:var(--form-control-height);padding:0 11px;border:1px solid var(--border-strong);border-radius:7px;background:var(--surface-1);color:var(--text-primary);font:inherit;font-size:var(--form-control-font-size)}
.platform-typography-preview{
  display:grid;
  grid-template-columns:minmax(180px,.45fr) minmax(0,1.55fr);
  margin-top:13px;
  overflow:hidden;
  border:1px solid var(--border-strong);
  border-radius:9px;
  background:var(--surface-1);
  font-family:var(--font-interface);
}
.platform-typography-preview[data-type-scale="compact"]{font-size:13px}
.platform-typography-preview[data-type-scale="comfortable"]{font-size:15px}
.platform-typography-preview[data-type-scale="large"]{font-size:17px}
.platform-typography-preview>aside{display:flex;flex-direction:column;justify-content:center;gap:5px;padding:18px;border-right:1px solid var(--border);background:var(--surface-2)}
.platform-typography-preview>aside span,.platform-typography-preview>article>span{color:var(--accent-text);font-size:.72em;font-weight:800;letter-spacing:.08em}
.platform-typography-preview>aside b{font-size:1em}.platform-typography-preview>aside small{color:var(--text-muted);font-size:.8em}
.platform-typography-preview>article{display:grid;grid-template-columns:minmax(0,1fr) minmax(210px,.65fr);gap:6px 18px;padding:18px}
.platform-typography-preview>article>span,.platform-typography-preview>article>h3,.platform-typography-preview>article>p{grid-column:1}
.platform-typography-preview h3{margin:0;font-size:1.35em;line-height:1.15}
.platform-typography-preview p{margin:0;color:var(--text-secondary);font-family:var(--font-reading);font-size:.92em;line-height:1.5}
.platform-typography-preview article>label{grid-column:2;grid-row:1/4;display:grid;align-content:center;gap:5px;font-size:.84em;font-weight:700}
.platform-typography-preview input{width:100%;min-height:2.6em;padding:0 10px;border:1px solid var(--border-strong);border-radius:6px;background:var(--surface-2);color:var(--text-primary);font:inherit}
.platform-typography-preview article>div{grid-column:1/-1;display:flex;align-items:center;gap:12px;margin-top:5px}.platform-typography-preview article>div small{color:var(--text-muted);font-size:.78em}
.platform-password-settings>header>div{
  display:flex;
  align-items:flex-start;
  gap:11px;
}
.platform-password-settings h2{
  margin:2px 0 3px;
  font-size:18px;
}
.platform-password-settings p{
  margin:0;
  color:var(--text-secondary);
  font-size:11px;
  line-height:1.5;
}
.platform-week-resource-settings{
  padding:18px;
  border:1px solid var(--border-strong);
  border-radius:9px;
  background:var(--surface-2);
}
.platform-week-resource-settings>header>div{
  display:flex;
  align-items:flex-start;
  gap:11px;
}
.platform-week-resource-settings h2{
  margin:2px 0 3px;
  font-size:18px;
}
.platform-week-resource-settings p{
  margin:0;
  color:var(--text-secondary);
  font-size:11px;
  line-height:1.5;
}
.platform-week-resource-policy-grid{
  display:grid;
  grid-template-columns:minmax(220px,.55fr) minmax(320px,1fr) minmax(260px,.8fr);
  align-items:stretch;
  gap:12px;
  margin-top:15px;
}
.platform-course-policy-editor,
.platform-course-policy-summary{
  padding:20px;
  border:1px solid var(--border-strong);
  border-radius:10px;
  background:var(--surface-2);
}
.platform-course-policy-editor>header,
.platform-course-policy-summary>header{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:18px;
  margin-bottom:16px;
}
.platform-course-policy-editor>header>div,
.platform-course-policy-summary>header>div{
  display:flex;
  align-items:flex-start;
  gap:12px;
}
.platform-course-policy-editor h2,
.platform-course-policy-summary h2{
  margin:2px 0 4px;
  font-size:20px;
}
.platform-course-policy-editor>header p,
.platform-course-policy-summary>header p{
  max-width:850px;
  margin:0;
  color:var(--text-secondary);
  font-size:14px;
  line-height:1.55;
}
.platform-policy-managed{
  display:inline-flex;
  flex:0 0 auto;
  align-items:center;
  gap:7px;
  min-height:36px;
  padding:7px 11px;
  border:1px solid color-mix(in srgb,var(--accent) 35%,var(--line));
  border-radius:999px;
  background:color-mix(in srgb,var(--accent) 8%,var(--surface));
  color:var(--accent);
  font-size:12px;
  font-weight:800;
  white-space:nowrap;
}
.platform-course-policy-grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:14px;
}
.platform-course-policy-card{
  min-width:0;
  overflow:hidden;
  border:1px solid var(--line);
  border-radius:10px;
  background:var(--surface);
}
.platform-course-policy-card:last-child:nth-child(odd){grid-column:1/-1}
.platform-course-policy-card>header{
  display:flex;
  align-items:flex-start;
  gap:10px;
  padding:14px 16px;
  border-bottom:1px solid var(--line);
  background:var(--soft);
}
.platform-course-policy-card>header>i{
  flex:0 0 auto;
  display:grid;
  width:35px;
  height:35px;
  place-items:center;
  border-radius:8px;
  background:var(--accent-soft);
  color:var(--accent);
  font-size:18px;
}
.platform-course-policy-card h3{
  margin:0 0 3px;
  font-size:15px;
}
.platform-course-policy-card header p{
  margin:0;
  color:var(--text-secondary);
  font-size:12px;
  line-height:1.45;
}
.platform-course-policy-copy{
  min-height:94px;
  padding:15px 16px;
  font-size:14px;
  line-height:1.62;
}
.platform-course-policy-copy p:first-child{margin-top:0}
.platform-course-policy-copy p:last-child{margin-bottom:0}
.platform-course-policy-copy[contenteditable="true"]{
  outline:none;
  cursor:text;
  transition:border-color .15s ease,box-shadow .15s ease,background .15s ease;
}
.platform-course-policy-copy[contenteditable="true"]:hover{
  background:color-mix(in srgb,var(--accent) 3%,var(--surface));
}
.platform-course-policy-copy[contenteditable="true"]:focus{
  background:var(--surface);
  box-shadow:inset 0 0 0 2px color-mix(in srgb,var(--accent) 55%,transparent);
}
.platform-course-policy-summary{
  margin-top:4px;
  background:color-mix(in srgb,var(--accent) 3%,var(--surface-2));
}
.platform-course-policy-summary .platform-course-policy-copy{
  min-height:0;
}

/* Persistent cross-course professor inbox */
.teaching-message-dock{
  position:relative;
  z-index:7;
  display:block;
  min-height:0;
  flex:0 0 auto;
  padding:0;
}
.teaching-message-dock[hidden]{display:none}
.teaching-message-details{position:relative;width:180px}
.teaching-message-details>summary,
.teaching-message-loading{
  display:flex;
  width:100%;
  min-height:42px;
  align-items:center;
  gap:8px;
  padding:5px 7px;
  border:1px solid var(--accent-border);
  border-radius:9px;
  background:linear-gradient(135deg,var(--surface-1),var(--accent-bg));
  box-shadow:0 7px 20px rgba(23,43,61,.08);
  color:var(--text-primary);
  text-decoration:none;
}
.teaching-message-details>summary{cursor:pointer;list-style:none}
.teaching-message-details>summary::-webkit-details-marker{display:none}
.teaching-message-details>summary:hover,
.teaching-message-details[open]>summary{border-color:var(--accent);box-shadow:0 9px 24px rgba(23,43,61,.13)}
.teaching-message-summary-icon{
  position:relative;
  display:grid;
  width:31px;
  height:31px;
  flex:0 0 auto;
  place-items:center;
  border-radius:8px;
  background:var(--accent);
  color:#fff;
  font-size:17px;
}
.teaching-message-summary-icon em{
  position:absolute;
  top:-5px;
  right:-6px;
  min-width:18px;
  height:18px;
  padding:0 4px;
  border:2px solid var(--surface-1);
  border-radius:999px;
  background:var(--danger-text);
  color:#fff;
  font-size:8px;
  font-style:normal;
  font-weight:900;
  line-height:14px;
  text-align:center;
}
.teaching-message-summary-copy,
.teaching-message-loading>span{display:grid;min-width:0;gap:1px}
.teaching-message-summary-copy b,
.teaching-message-loading b{font-size:11px}
.teaching-message-summary-copy small,
.teaching-message-loading small{color:var(--text-secondary);font-size:8.5px}
.teaching-message-summary-chevron{margin-left:auto;color:var(--accent-text);transition:transform .18s}
.teaching-message-details[open] .teaching-message-summary-chevron{transform:rotate(180deg)}
.teaching-message-loading{width:180px}
.teaching-message-loading>i{color:var(--accent-text);font-size:22px}
.teaching-message-loading:not(.is-error)>i{animation:spin 1s linear infinite}
.teaching-message-preview{
  position:absolute;
  top:calc(100% + 12px);
  right:0;
  width:390px;
  overflow:hidden;
  border:1px solid var(--border-strong);
  border-radius:13px;
  background:var(--surface-1);
  box-shadow:0 20px 48px rgba(23,43,61,.2);
}
.teaching-message-preview>header,
.teaching-message-preview>footer{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  padding:10px 12px;
  background:var(--surface-2);
}
.teaching-message-preview>header{border-bottom:1px solid var(--border)}
.teaching-message-preview>header>span{display:grid;gap:1px}
.teaching-message-preview>header b{font-size:12px}
.teaching-message-preview>header small{color:var(--text-secondary);font-size:8px}
.teaching-message-preview>header>a,
.teaching-message-preview>footer>a{color:var(--accent-text);font-size:9px;font-weight:800;text-decoration:none}
.teaching-message-preview>div{display:grid}
.teaching-message-preview-item{border-bottom:1px solid var(--border)}
.teaching-message-preview-item>summary{list-style:none}
.teaching-message-preview-item>summary::-webkit-details-marker{display:none}
.teaching-message-preview-row{
  display:grid;
  grid-template-columns:34px minmax(0,1fr) auto;
  align-items:center;
  gap:9px;
  padding:9px 11px;
  color:var(--text-primary);
  cursor:pointer;
  list-style:none;
}
.teaching-message-preview-row:hover{background:var(--accent-bg)}
.teaching-message-preview-row>span:nth-child(2){display:grid;min-width:0;gap:1px}
.teaching-message-preview-row b,
.teaching-message-preview-row strong,
.teaching-message-preview-row small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.teaching-message-preview-row b{font-size:9px}
.teaching-message-preview-row strong{font-size:10px;font-weight:650}
.teaching-message-preview-row small{color:var(--text-secondary);font-size:8px}
.teaching-message-preview-item.is-unread>.teaching-message-preview-row{background:color-mix(in srgb,var(--accent-bg) 58%,var(--surface-1))}
.teaching-message-preview-item.is-unread strong{font-weight:900}
.teaching-message-preview-item[open]>.teaching-message-preview-row{background:var(--accent-bg)}
.teaching-message-preview-row>i:last-child{color:var(--accent-text);font-size:12px}
.teaching-message-preview-item[open]>.teaching-message-preview-row>i.ti{transform:rotate(180deg)}
.teaching-message-preview-avatar{
  display:grid;
  width:34px;
  height:34px;
  place-items:center;
  border-radius:50%;
  background:var(--accent-bg);
  color:var(--accent-text);
  font-size:9px;
  font-weight:900;
}
.teaching-message-preview-row.is-unread .teaching-message-preview-avatar{background:var(--accent);color:#fff}
.teaching-message-unread-dot{width:8px;height:8px;border-radius:50%;background:var(--accent)}
.teaching-message-inline{display:grid;gap:9px;padding:0 11px 11px;background:var(--accent-bg)}
.teaching-message-inline>p{
  max-height:150px;
  margin:0;
  overflow:auto;
  padding:9px 10px;
  border:1px solid var(--accent-border);
  border-radius:8px;
  background:var(--surface-1);
  color:var(--text-primary);
  font-size:9.5px;
  line-height:1.5;
}
.teaching-message-inline form{display:grid;gap:6px}
.teaching-message-inline textarea{
  width:100%;
  min-height:64px;
  resize:vertical;
  padding:8px 9px;
  border:1px solid var(--border-strong);
  border-radius:8px;
  background:var(--surface-1);
  color:var(--text-primary);
  font:inherit;
  font-size:9.5px;
}
.teaching-message-inline form>div{display:flex;min-height:28px;align-items:center;gap:7px}
.teaching-message-inline form small{margin-right:auto;color:var(--text-secondary);font-size:7.5px}
.teaching-message-inline [data-teaching-quick-status]{color:var(--accent-text);font-size:8px;font-weight:800}
.teaching-message-inline button{
  display:flex;
  min-height:28px;
  align-items:center;
  gap:5px;
  padding:5px 8px;
  border:1px solid var(--accent);
  border-radius:7px;
  background:var(--accent);
  color:#fff;
  font:inherit;
  font-size:8.5px;
  font-weight:800;
  cursor:pointer;
}
.teaching-message-inline button:disabled{cursor:wait;opacity:.6}
.teaching-message-preview-empty{display:flex;align-items:center;gap:10px;padding:20px;color:var(--text-secondary)}
.teaching-message-preview-empty>i{color:var(--accent-text);font-size:26px}
.teaching-message-preview-empty>span{display:grid}
.teaching-message-preview-empty b{color:var(--text-primary);font-size:11px}
.teaching-message-preview-empty small{font-size:8px}
.teaching-message-preview>footer{border-top:1px solid var(--border);font-size:8px}
.teaching-message-preview>footer>span{color:var(--text-secondary)}
.teaching-message-dock{--quick-message-font:var(--font-interface);--quick-message-scale:1}
.teaching-message-dock[data-quick-message-font="reading"]{--quick-message-font:var(--font-reading)}
.teaching-message-dock[data-quick-message-font="legible"]{--quick-message-font:Arial,Helvetica,sans-serif}
.teaching-message-dock[data-quick-message-size="compact"]{--quick-message-scale:.88}
.teaching-message-dock[data-quick-message-size="large"]{--quick-message-scale:1.16}
.teaching-message-dock .teaching-message-preview{font-family:var(--quick-message-font)}
.teaching-message-dock .teaching-message-preview>header b{font-size:calc(12px * var(--quick-message-scale))}
.teaching-message-dock .teaching-message-preview>header small{font-size:calc(8px * var(--quick-message-scale))}
.teaching-message-dock .teaching-message-preview>header>a,.teaching-message-dock .teaching-message-preview>footer>a{font-size:calc(9px * var(--quick-message-scale))}
.teaching-message-dock .teaching-message-preview-row b{font-size:calc(9px * var(--quick-message-scale))}
.teaching-message-dock .teaching-message-preview-row strong{font-size:calc(10px * var(--quick-message-scale))}
.teaching-message-dock .teaching-message-preview-row small{font-size:calc(8px * var(--quick-message-scale))}
.teaching-message-dock .teaching-message-inline>p,.teaching-message-dock .teaching-message-inline textarea{font-family:var(--quick-message-font);font-size:calc(9.5px * var(--quick-message-scale))}
.teaching-message-dock .teaching-message-inline form small{font-size:calc(7.5px * var(--quick-message-scale))}
.teaching-message-dock .teaching-message-inline [data-teaching-quick-status]{font-size:calc(8px * var(--quick-message-scale))}
.teaching-message-dock .teaching-message-inline button{font-family:var(--quick-message-font);font-size:calc(8.5px * var(--quick-message-scale))}
.teaching-message-dock .teaching-message-preview-empty b{font-size:calc(11px * var(--quick-message-scale))}
.teaching-message-dock .teaching-message-preview-empty small,.teaching-message-dock .teaching-message-preview>footer{font-size:calc(8px * var(--quick-message-scale))}
.communication-policy-grid{
  display:grid;
  grid-template-columns:minmax(300px,1fr) minmax(220px,.7fr) minmax(250px,.8fr);
  align-items:stretch;
  gap:12px;
  margin-top:15px;
}
.communication-policy-grid>label:not(.platform-check){
  display:flex;
  min-width:0;
  flex-direction:column;
  gap:6px;
  font-size:10px;
  font-weight:800;
}
.communication-policy-grid input[type="number"]{
  min-height:42px;
  padding:9px 10px;
  border:1px solid var(--border-strong);
  border-radius:7px;
  background:var(--surface-1);
  color:var(--text-primary);
  font:inherit;
}
.communication-policy-grid small{color:var(--text-secondary);font-size:10px;line-height:1.45}
.communication-policy-grid>aside{
  display:flex;
  align-items:flex-start;
  gap:9px;
  padding:12px;
  border:1px solid var(--border);
  border-radius:7px;
  background:var(--surface-1);
  color:var(--text-secondary);
  font-size:10px;
  line-height:1.45;
}
.communication-policy-grid>aside>i{color:var(--accent-text);font-size:19px}
.communication-policy-grid>aside b{display:block;color:var(--text-primary);font-size:11px}
.teaching-workspace-hero{
  position:relative;
  isolation:isolate;
  display:grid;
  grid-template-columns:minmax(0,1.03fr) minmax(410px,.97fr);
  min-height:205px;
  margin:4px 0 22px;
  overflow:hidden;
  border:1px solid rgba(123,94,190,.48);
  border-radius:26px;
  background:
    radial-gradient(circle at 80% 18%,rgba(119,199,255,.24),transparent 27%),
    radial-gradient(circle at 96% 88%,rgba(126,224,195,.17),transparent 29%),
    linear-gradient(132deg,#201543 0%,#2d245c 48%,#153d5d 100%);
  color:#fff;
  box-shadow:0 24px 58px rgba(29,22,70,.16);
}
.teaching-workspace-hero:before{
  position:absolute;
  z-index:-1;
  inset:0;
  content:"";
  opacity:.34;
  background-image:radial-gradient(circle,rgba(255,255,255,.25) 1px,transparent 1.5px);
  background-size:28px 28px;
  mask-image:linear-gradient(90deg,transparent 0,#000 52%,#000 100%);
}
.teaching-workspace-hero-copy{
  display:flex;
  align-items:flex-start;
  justify-content:center;
  flex-direction:column;
  padding:38px clamp(30px,4vw,62px);
}
.teaching-workspace-hero-copy .eyebrow{
  display:inline-flex;
  align-items:center;
  gap:8px;
  color:#cfbdff;
  font-size:11px;
  font-weight:850;
  letter-spacing:.12em;
  text-transform:uppercase;
}
.teaching-workspace-hero-copy .eyebrow i{font-size:19px}
.teaching-workspace-hero-copy h1{
  margin:11px 0 13px;
  color:#fff;
  font-size:clamp(30px,5.5vw,50px);
  font-weight:850;
  letter-spacing:-.06em;
  line-height:.9;
}
.teaching-workspace-hero-copy h1 span{
  color:#a9ddff;
  text-shadow:0 8px 34px rgba(99,186,255,.25);
}
.teaching-workspace-hero-copy p{
  max-width:650px;
  margin:0;
  color:rgba(255,255,255,.76);
  font-size:15px;
  line-height:1.65;
}
.teaching-hero-motto{
  display:flex;
  align-items:center;
  gap:10px;
  margin-top:22px;
  color:#fff;
  font-size:10px;
  font-weight:850;
  letter-spacing:.12em;
  text-transform:uppercase;
}
.teaching-hero-motto i{display:block;width:24px;height:1px;background:linear-gradient(90deg,#c8a7ff,#7ac8ff)}
.teaching-workspace-hero-visual{position:relative;min-height:205px}
.teaching-workspace-hero-visual>svg{position:absolute;inset:8px 5px 0 auto;width:min(100%,540px);height:calc(100% - 14px)}
.teaching-hero-hub{
  position:absolute;
  top:50%;
  left:48%;
  display:grid;
  place-items:center;
  width:138px;
  height:138px;
  padding:16px;
  border:1px solid rgba(255,255,255,.29);
  border-radius:30px;
  background:linear-gradient(145deg,rgba(105,77,176,.94),rgba(32,109,155,.94));
  box-shadow:0 22px 50px rgba(0,0,0,.27),inset 0 1px 0 rgba(255,255,255,.25);
  transform:translate(-50%,-50%) rotate(-4deg);
  text-align:center;
}
.teaching-hero-hub i{font-size:34px}
.teaching-hero-hub b{font-size:30px;line-height:1}
.teaching-hero-hub small{color:rgba(255,255,255,.72);font-size:9px;font-weight:700}
.teaching-hero-course{
  position:absolute;
  display:grid;
  min-width:126px;
  padding:11px 13px;
  border:1px solid rgba(255,255,255,.24);
  border-radius:14px;
  background:rgba(18,30,67,.79);
  color:#fff;
  box-shadow:0 12px 30px rgba(0,0,0,.2);
  backdrop-filter:blur(8px);
}
.teaching-hero-course small{overflow:hidden;max-width:150px;color:rgba(255,255,255,.58);font-size:8px;text-overflow:ellipsis;white-space:nowrap}
.teaching-hero-course b{margin:2px 0;font-size:14px}
.teaching-hero-course em{color:#8de3ca;font-size:8px;font-style:normal;font-weight:800;letter-spacing:.08em;text-transform:uppercase}
.teaching-hero-course-1{top:28px;left:2%;transform:rotate(-3deg)}
.teaching-hero-course-2{top:40px;right:5%;transform:rotate(3deg)}
.teaching-hero-course-3{right:4%;bottom:60px;transform:rotate(-2deg)}
.teaching-hero-caption{
  position:absolute;
  left:5%;
  bottom:24px;
  display:inline-flex;
  align-items:center;
  gap:7px;
  color:rgba(255,255,255,.64);
  font-size:9px;
  font-weight:700;
}
.teaching-hero-caption i{color:#c8a7ff;font-size:14px}
.communication-hero{
  position:relative;
  isolation:isolate;
  display:grid;
  grid-template-columns:minmax(0,1.08fr) minmax(380px,.92fr);
  min-height:205px;
  margin:4px 0 22px;
  overflow:hidden;
  border:1px solid color-mix(in srgb,var(--accent) 42%,var(--border-strong));
  border-radius:26px;
  background:
    radial-gradient(circle at 72% 16%,rgba(101,183,255,.23),transparent 28%),
    radial-gradient(circle at 94% 82%,rgba(102,217,193,.18),transparent 31%),
    linear-gradient(132deg,#0b2140 0%,#102d55 50%,#171d44 100%);
  color:#fff;
  box-shadow:0 24px 58px rgba(8,27,53,.16);
}
.communication-hero:before{
  position:absolute;
  z-index:-1;
  inset:0;
  content:"";
  opacity:.42;
  background-image:linear-gradient(rgba(255,255,255,.045) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.045) 1px,transparent 1px);
  background-size:34px 34px;
  mask-image:linear-gradient(90deg,transparent 0,#000 48%,#000 100%);
}
.communication-hero-copy{
  display:flex;
  align-items:flex-start;
  justify-content:center;
  flex-direction:column;
  padding:38px clamp(30px,4vw,62px);
}
.communication-hero-copy .eyebrow{
  display:inline-flex;
  align-items:center;
  gap:8px;
  color:#9fd0ff;
  font-size:11px;
  font-weight:850;
  letter-spacing:.12em;
  text-transform:uppercase;
}
.communication-hero-copy .eyebrow i{font-size:19px}
.communication-hero-copy h1{
  max-width:760px;
  margin:11px 0 13px;
  color:#fff;
  font-size:clamp(27px,5.2vw,47px);
  font-weight:850;
  letter-spacing:-.055em;
  line-height:.9;
}
.communication-hero-copy h1 span{
  color:#76c4ff;
  text-shadow:0 8px 34px rgba(67,170,255,.23);
}
.communication-hero-copy p{
  max-width:650px;
  margin:0;
  color:rgba(255,255,255,.76);
  font-size:15px;
  line-height:1.65;
}
.communication-hero-actions{display:flex;align-items:center;gap:10px;margin-top:24px}
.communication-hero-actions .btn-accent{
  min-height:46px;
  padding:10px 18px;
  border-color:#fff;
  background:#fff;
  color:#102d55;
  box-shadow:0 10px 26px rgba(0,0,0,.18);
}
.communication-hero-actions .btn-accent:hover,
.communication-hero-actions .btn-accent:focus-visible{border-color:#76c4ff;background:#dff1ff;color:#0b2140}
.communication-hero-actions .btn-accent:disabled{
  border-color:rgba(255,255,255,.28);
  background:rgba(255,255,255,.14);
  color:rgba(255,255,255,.58);
  box-shadow:none;
  cursor:not-allowed;
  opacity:1;
}
.communication-hero-visual{position:relative;min-height:205px}
.communication-hero-visual>svg{position:absolute;inset:12px 5px 0 auto;width:min(100%,520px);height:calc(100% - 18px)}
.communication-hero-hub{
  position:absolute;
  top:50%;
  left:50%;
  display:grid;
  place-items:center;
  width:150px;
  height:150px;
  padding:17px;
  border:1px solid rgba(255,255,255,.27);
  border-radius:50%;
  background:linear-gradient(145deg,rgba(42,118,190,.92),rgba(69,54,149,.92));
  box-shadow:0 20px 48px rgba(0,0,0,.26),inset 0 1px 0 rgba(255,255,255,.25);
  transform:translate(-50%,-50%);
  text-align:center;
}
.communication-hero-hub i{font-size:38px}
.communication-hero-hub b{font-size:15px}
.communication-hero-hub small{color:rgba(255,255,255,.68);font-size:9px}
.communication-hero-course,
.communication-hero-bubble{
  position:absolute;
  display:inline-flex;
  align-items:center;
  gap:6px;
  padding:7px 11px;
  border:1px solid rgba(255,255,255,.25);
  border-radius:999px;
  background:rgba(9,28,58,.76);
  color:#fff;
  box-shadow:0 8px 22px rgba(0,0,0,.16);
  backdrop-filter:blur(8px);
  font-size:10px;
  font-weight:800;
  white-space:nowrap;
}
.communication-hero-course i{color:#76c4ff}
.communication-hero-course-1{top:28px;left:7%}
.communication-hero-course-2{top:56px;right:8%}
.communication-hero-course-3{right:4%;bottom:68px}
.communication-hero-bubble{border-radius:12px;background:rgba(255,255,255,.93);color:#13243b}
.communication-hero-bubble i{color:#246eae;font-size:16px}
.communication-hero-bubble-in{left:4%;bottom:70px}
.communication-hero-bubble-out{top:52px;left:42%}
.communication-hero-caption{
  position:absolute;
  right:30px;
  bottom:22px;
  display:inline-flex;
  align-items:center;
  gap:7px;
  color:rgba(255,255,255,.62);
  font-size:9px;
  font-weight:700;
}
.communication-hero.is-course-scoped{grid-template-columns:minmax(0,1fr) minmax(340px,.7fr);min-height:180px}
.communication-hero.is-course-scoped .communication-hero-visual{min-height:180px}
.communication-hero.is-course-scoped .communication-hero-copy h1{font-size:clamp(26px,4.6vw,42px)}
.communication-totals{
  display:flex;
  align-items:center;
  gap:10px 22px;
  flex-wrap:wrap;
  margin:-4px 0 15px;
  padding:0 2px;
  color:var(--text-secondary);
  font-size:12px;
}
.communication-totals span{display:inline-flex;align-items:baseline;gap:4px}
.communication-totals b{color:var(--text-primary);font-size:15px}
.communication-center-shell{
  overflow:hidden;
  border:1px solid var(--border-strong);
  border-radius:10px;
  background:var(--surface-1);
}
.communication-folders{
  display:flex;
  align-items:center;
  gap:4px;
  padding:8px 12px 0;
  border-bottom:1px solid var(--border);
  background:var(--surface-2);
}
.communication-folders button{
  display:inline-flex;
  min-height:38px;
  align-items:center;
  gap:6px;
  padding:7px 10px;
  border:0;
  border-bottom:3px solid transparent;
  background:transparent;
  color:var(--text-secondary);
  font:inherit;
  font-size:10px;
  font-weight:800;
  cursor:pointer;
}
.communication-folders button span{
  min-width:20px;
  padding:2px 5px;
  border-radius:999px;
  background:var(--surface-1);
  color:var(--text-secondary);
  font-size:8px;
  text-align:center;
}
.communication-folders button:hover,
.communication-folders button.active{border-bottom-color:var(--accent);color:var(--accent-text)}
.communication-folders button.active span{background:var(--accent-bg);color:var(--accent-text)}
.communication-toolbar{
  display:grid;
  grid-template-columns:minmax(230px,1.2fr) minmax(190px,.8fr) minmax(145px,.55fr) auto;
  gap:10px;
  padding:13px;
  border-bottom:1px solid var(--border-strong);
  background:var(--surface-2);
}
.communication-toolbar>label:not(.communication-unread-toggle){
  display:flex;
  align-items:center;
  gap:8px;
  min-width:0;
  padding:0 10px;
  border:1px solid var(--border);
  border-radius:7px;
  background:var(--surface-1);
}
.communication-toolbar input[type="search"],
.communication-toolbar select{
  width:100%;
  min-width:0;
  height:40px;
  border:0;
  outline:0;
  background:transparent;
  color:var(--text-primary);
  font:inherit;
}
.communication-unread-toggle{
  display:flex;
  align-items:center;
  gap:7px;
  padding:0 11px;
  border:1px solid var(--border);
  border-radius:7px;
  background:var(--surface-1);
  white-space:nowrap;
  font-size:11px;
  font-weight:800;
}
.communication-unread-toggle input{width:16px;height:16px}

/* Course announcements use the shared platform modal shell, with a compact
   composer inside it. Keep these rules scoped so message and settings forms
   retain their existing density. */
.platform-form.announcement-composer-form{
  width:min(840px,calc(100vw - 34px));
  max-height:min(760px,calc(100dvh - 34px));
}
.announcement-composer-form .platform-form-body{
  padding:18px 20px 20px;
  background:linear-gradient(180deg,var(--surface-2),color-mix(in srgb,var(--surface-1) 58%,var(--surface-2)));
}
.announcement-composer{
  display:grid;
  width:100%;
  max-width:800px;
  gap:15px;
  margin-inline:auto;
}
.announcement-content-fields{
  display:grid;
  gap:12px;
}
.announcement-field{
  display:grid;
  min-width:0;
  gap:6px;
}
.announcement-field-heading{
  display:flex;
  align-items:baseline;
  justify-content:space-between;
  gap:12px;
}
.announcement-field-heading strong{
  color:var(--text-primary);
  font-size:12px;
  font-weight:850;
}
.announcement-field-heading small{
  color:var(--text-muted);
  font-size:10px;
  font-weight:650;
}
.announcement-field :is(input,textarea){
  box-sizing:border-box;
  width:100%;
  min-height:42px;
  padding:9px 11px;
  border:1px solid var(--border-strong);
  border-radius:8px;
  background:var(--surface-1);
  color:var(--text-primary);
  font:inherit;
  font-size:var(--form-control-font-size,14px);
  font-weight:400;
  transition:border-color .15s ease,box-shadow .15s ease;
}
.announcement-field textarea{
  min-height:96px;
  line-height:1.5;
  resize:vertical;
}
.announcement-field :is(input,textarea):focus{
  border-color:var(--accent);
  box-shadow:0 0 0 3px color-mix(in srgb,var(--accent) 16%,transparent);
  outline:0;
}
.announcement-visibility{
  display:grid;
  grid-template-columns:38px minmax(0,1fr) auto;
  align-items:center;
  gap:11px;
  padding:10px 12px;
  border:1px solid color-mix(in srgb,var(--accent) 28%,var(--border));
  border-radius:10px;
  background:color-mix(in srgb,var(--accent-bg) 56%,var(--surface-1));
}
.announcement-visibility-icon{
  display:grid;
  width:36px;
  height:36px;
  place-items:center;
  border-radius:9px;
  background:var(--accent);
  color:#fff;
  font-size:19px;
}
.announcement-visibility strong{
  display:block;
  color:var(--text-primary);
  font-size:12px;
  font-weight:850;
}
.announcement-visibility p{
  margin:2px 0 0;
  color:var(--text-secondary);
  font-size:10.5px;
  line-height:1.4;
}
.announcement-time-zone{
  display:inline-flex;
  align-items:center;
  gap:5px;
  padding:5px 8px;
  border:1px solid color-mix(in srgb,var(--accent) 24%,var(--border));
  border-radius:999px;
  background:var(--surface-1);
  color:var(--accent-text);
  font-size:9.5px;
  font-weight:800;
  white-space:nowrap;
}
.announcement-schedule-grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  align-items:start;
  gap:12px;
}
.announcement-window-group{
  min-width:0;
  margin:0;
  padding:12px;
  border:1px solid var(--border);
  border-radius:11px;
  background:var(--surface-1);
}
.announcement-window-group legend{
  display:flex;
  width:100%;
  align-items:center;
  gap:8px;
  margin:0 0 9px;
  padding:0;
  color:var(--text-primary);
}
.announcement-window-group legend>span:first-child{
  display:grid;
  width:24px;
  height:24px;
  flex:0 0 24px;
  place-items:center;
  border-radius:7px;
  background:var(--accent-bg);
  color:var(--accent-text);
  font-size:10px;
  font-weight:900;
}
.announcement-window-group legend>span:last-child{
  display:grid;
  gap:1px;
}
.announcement-window-group legend strong{
  font-size:12px;
  font-weight:850;
}
.announcement-window-group legend small{
  color:var(--text-muted);
  font-size:9.5px;
  font-weight:600;
}
.announcement-choice-row{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:7px;
}
.announcement-choice{
  position:relative;
  display:block;
  min-width:0;
  cursor:pointer;
}
.announcement-choice>input{
  position:absolute;
  width:1px;
  height:1px;
  overflow:hidden;
  clip-path:inset(50%);
  opacity:0;
}
.announcement-choice>span{
  display:flex;
  min-height:54px;
  align-items:center;
  gap:8px;
  padding:8px 9px;
  border:1px solid var(--border-strong);
  border-radius:9px;
  background:var(--surface-2);
  color:var(--text-secondary);
  transition:border-color .15s ease,background .15s ease,box-shadow .15s ease,transform .15s ease;
}
.announcement-choice>span>i{
  display:grid;
  width:28px;
  height:28px;
  flex:0 0 28px;
  place-items:center;
  border-radius:8px;
  background:var(--surface-1);
  color:var(--text-muted);
  font-size:15px;
}
.announcement-choice>span>span{
  display:grid;
  min-width:0;
  gap:1px;
}
.announcement-choice b{
  color:var(--text-primary);
  font-size:10.5px;
  font-weight:850;
}
.announcement-choice small{
  overflow:hidden;
  color:var(--text-muted);
  font-size:8.5px;
  font-weight:600;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.announcement-choice:hover>span{
  border-color:var(--accent-border);
  transform:translateY(-1px);
}
.announcement-choice>input:checked+span{
  border-color:var(--accent);
  background:color-mix(in srgb,var(--accent-bg) 58%,var(--surface-1));
  box-shadow:0 0 0 2px color-mix(in srgb,var(--accent) 11%,transparent);
}
.announcement-choice>input:checked+span>i{
  background:var(--accent);
  color:#fff;
}
.announcement-choice>input:focus-visible+span{
  outline:3px solid color-mix(in srgb,var(--accent) 28%,transparent);
  outline-offset:2px;
}
.announcement-choice>input:disabled+span{
  cursor:not-allowed;
  opacity:.62;
  transform:none;
}
.announcement-date-row{
  display:grid;
  gap:5px;
  margin-top:9px;
  padding-top:9px;
  border-top:1px solid var(--border);
}
.announcement-date-row[hidden]{display:none}
.announcement-date-label{
  color:var(--text-secondary);
  font-size:9.5px;
  font-weight:800;
}
.announcement-date-row .dtp-field{
  height:40px;
  border-color:var(--border-strong);
  border-radius:8px;
  font-size:11px;
}
.announcement-composer-form[aria-busy] .announcement-composer{
  opacity:.76;
}
.platform-form-modal[data-platform-window-mode="maximized"] .announcement-composer-form>header{
  padding-left:max(20px,calc((100vw - 800px)/2));
}
.platform-form-modal[data-platform-window-mode="maximized"] .announcement-composer-form>footer{
  padding-right:max(20px,calc((100vw - 800px)/2));
}
@media(max-width:760px){
  .platform-form.announcement-composer-form{width:calc(100vw - 16px);max-height:calc(100dvh - 16px)}
  .announcement-composer-form .platform-form-body{padding:14px}
  .announcement-schedule-grid{grid-template-columns:1fr}
  .announcement-visibility{grid-template-columns:36px minmax(0,1fr)}
  .announcement-time-zone{grid-column:2;justify-self:start}
}
@media(max-width:520px){
  .announcement-field-heading{align-items:flex-start;flex-direction:column;gap:2px}
  .announcement-choice-row{grid-template-columns:1fr}
  .announcement-choice>span{min-height:48px}
}
.communication-center-grid{
  display:grid;
  grid-template-columns:minmax(290px,34%) minmax(0,1fr);
  min-height:590px;
}
.communication-thread-list{
  display:grid;
  grid-template-rows:auto minmax(0,1fr) auto;
  min-width:0;
  border-right:1px solid var(--border-strong);
  background:var(--surface-2);
}
.communication-list-heading{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:8px;
  padding:9px 11px;
  border-bottom:1px solid var(--border);
  color:var(--text-secondary);
  font-size:10px;
}
.communication-list-heading b{color:var(--text-primary);font-size:13px}
.communication-list-heading small{text-align:right}
#communicationThreadRows{min-height:0;overflow:auto}
.communication-thread-row{
  display:flex;
  width:100%;
  min-width:0;
  align-items:stretch;
  flex-direction:column;
  gap:3px;
  padding:9px 10px;
  border:0;
  border-bottom:1px solid var(--border);
  border-left:4px solid transparent;
  background:transparent;
  color:var(--text-primary);
  text-align:left;
  cursor:pointer;
}
.communication-thread-row>*{text-align:left}
.communication-thread-row:hover{background:var(--surface-1)}
.communication-thread-row.is-selected{border-left-color:var(--accent);background:var(--accent-bg)}
.communication-thread-row.is-unread>strong{font-weight:900}
.communication-thread-top,
.communication-thread-course{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:8px;
}
.communication-thread-top b,
.communication-thread-row>strong{
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.communication-thread-top time{flex:0 0 auto;color:var(--text-secondary);font-size:9px}
.communication-thread-row>strong{font-size:11px;line-height:1.35}
.communication-thread-course{
  justify-content:flex-start;
  color:var(--text-secondary);
  min-width:0;
  font-size:9px;
}
.communication-thread-course>span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.communication-thread-course em{
  margin-left:auto;
  padding:0;
  background:transparent;
  color:var(--accent-text);
  font-style:normal;
  font-weight:800;
  white-space:nowrap;
}
.communication-list-footer{
  display:grid;
  gap:8px;
  padding:9px 10px;
  border-top:1px solid var(--border-strong);
  background:var(--surface-1);
  color:var(--text-secondary);
  font-size:9px;
}
.communication-list-footer>label,
.communication-list-footer>div{display:flex;align-items:center;justify-content:space-between;gap:6px}
.communication-list-footer select,
.communication-list-footer input{
  width:72px;
  min-height:30px;
  padding:4px 6px;
  border:1px solid var(--border);
  border-radius:5px;
  background:var(--surface-2);
  color:var(--text-primary);
  font:inherit;
}
.communication-list-footer input{width:62px}
.communication-list-footer button{
  display:grid;
  place-items:center;
  width:30px;
  height:30px;
  padding:0;
  border:1px solid var(--border);
  border-radius:5px;
  background:var(--surface-2);
  color:var(--text-primary);
  cursor:pointer;
}
.communication-list-footer button:disabled{cursor:not-allowed;opacity:.42}
.communication-list-footer>div span{flex:1;text-align:center}
.communication-list-empty,
.communication-no-selection{
  display:flex;
  min-height:310px;
  align-items:center;
  justify-content:center;
  flex-direction:column;
  gap:7px;
  padding:25px;
  color:var(--text-secondary);
  text-align:center;
}
.communication-list-empty{min-height:220px}
.communication-list-empty>i,
.communication-no-selection>i{font-size:40px;color:var(--accent-text)}
.communication-list-empty b,
.communication-no-selection h2{margin:0;color:var(--text-primary)}
.communication-list-empty span,
.communication-no-selection p{margin:0;font-size:11px}
.communication-conversation{min-width:0;background:var(--surface-1)}
.communication-conversation-head{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:15px;
  padding:18px 20px;
  border-bottom:1px solid var(--border);
}
.communication-conversation-actions{display:flex;align-items:center;justify-content:flex-end;gap:6px;flex-wrap:wrap}
.communication-conversation-actions .icon-btn{flex:0 0 auto}
.communication-conversation-actions button:disabled{
  border-color:var(--border);
  background:var(--surface-2);
  color:var(--text-muted);
  box-shadow:none;
  cursor:not-allowed;
  filter:saturate(.35);
  opacity:.58;
  transform:none;
}
.communication-student-identity{display:flex;min-width:0;align-items:center;gap:11px}
.communication-avatar{
  display:inline-flex;
  width:42px;
  height:42px;
  flex:0 0 auto;
  align-items:center;
  justify-content:center;
  border-radius:50%;
  background:var(--accent);
  color:#fff;
  font-size:14px;
  font-weight:900;
}
.communication-student-identity h2{margin:2px 0;font-size:19px}
.communication-student-identity p{margin:0;color:var(--text-secondary);font-size:10px}
.communication-enrollment-context{
  display:flex;
  align-items:flex-start;
  gap:14px;
  padding:12px 20px;
  border-bottom:1px solid var(--border);
  background:var(--surface-2);
}
.communication-enrollment-context>span{
  display:flex;
  flex:0 0 auto;
  align-items:center;
  gap:6px;
  padding-top:5px;
  color:var(--text-secondary);
  font-size:10px;
  font-weight:800;
}
.communication-enrollment-context>div{display:flex;flex-wrap:wrap;gap:6px}
.communication-course-chip{
  display:flex;
  align-items:center;
  gap:5px;
  padding:5px 8px;
  border:1px solid var(--border);
  border-radius:999px;
  background:var(--surface-1);
  font-size:9px;
}
.communication-course-chip.is-context{border-color:var(--accent-border);background:var(--accent-bg)}
.communication-course-chip small{color:var(--text-secondary)}
.communication-thread-topic{
  display:flex;
  align-items:baseline;
  gap:8px 12px;
  flex-wrap:wrap;
  padding:12px 20px 0;
}
.communication-thread-topic>span{
  color:var(--accent-text);
  font-size:9px;
  font-weight:850;
  letter-spacing:.06em;
  text-transform:uppercase;
}
.communication-thread-topic h3{margin:0;font-size:15px}
.communication-thread-topic small{margin-left:auto;color:var(--text-secondary);font-size:9px}
.communication-message-stream{
  display:flex;
  max-height:720px;
  overflow:auto;
  flex-direction:column;
  gap:12px;
  padding:13px 20px 20px;
}
.communication-message{
  width:min(82%,720px);
  padding:13px 15px;
  border:1px solid var(--border);
  border-radius:10px 10px 10px 3px;
  background:var(--surface-2);
}
.communication-message.is-outgoing{
  align-self:flex-end;
  border-color:var(--accent-border);
  border-radius:10px 10px 3px 10px;
  background:var(--accent-bg);
}
.communication-message-meta,
.communication-message>footer{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
}
.communication-message-meta{color:var(--text-secondary);font-size:9px}
.communication-message h3{margin:6px 0 4px;font-size:13px}
.communication-message>p{margin:0;color:var(--text-primary);font-size:12px;line-height:1.55}
.communication-message>footer{margin-top:9px}
.communication-message-state{color:var(--text-secondary);font-size:9px}
.communication-message-actions{display:flex;gap:6px}
.communication-message-actions .btn-ghost{min-height:30px;padding:5px 8px;font-size:9px}
.communication-message-files{display:flex;flex-wrap:wrap;gap:7px;margin-top:10px}
.communication-message-files>a{
  display:flex;
  align-items:center;
  gap:7px;
  padding:7px 9px;
  border:1px solid var(--border);
  border-radius:7px;
  background:var(--surface-1);
  color:var(--text-primary);
  text-decoration:none;
}
.communication-message-files>a:hover{border-color:var(--accent)}
.communication-message-files span,
.communication-message-files b,
.communication-message-files small{display:block}
.communication-message-files b{max-width:230px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:10px}
.communication-message-files small{color:var(--text-secondary);font-size:8px}
.communication-compose-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:13px}
.communication-compose-grid>label{display:flex;flex-direction:column;gap:6px}
.communication-compose-grid>label>span,
.communication-recipient-picker>div:first-child>span{font-size:10px;font-weight:900}
.communication-compose-grid small{color:var(--text-secondary);font-size:9px;line-height:1.45}
.communication-compose-grid input,
.communication-compose-grid select,
.communication-compose-grid textarea{
  width:100%;
  min-width:0;
  padding:10px;
  border:1px solid var(--border-strong);
  border-radius:7px;
  background:var(--surface-1);
  color:var(--text-primary);
  font:inherit;
}
.communication-recipient-picker,
.communication-reply-context,
.communication-message-field,
.communication-attachment-field,
.communication-compose-files,
.communication-compose-status{grid-column:1/-1}
.communication-reply-context{
  display:grid;
  grid-template-columns:42px minmax(180px,.7fr) minmax(220px,1fr);
  align-items:center;
  gap:10px 13px;
  padding:11px 12px;
  border:1px solid var(--accent-border);
  border-radius:8px;
  background:var(--accent-bg);
}
.communication-reply-context>div{display:grid;gap:2px;min-width:0}
.communication-reply-context>div>span{color:var(--text-secondary);font-size:8px;font-weight:800;text-transform:uppercase}
.communication-reply-context b,
.communication-reply-context small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.communication-reply-context b{font-size:11px}
.communication-reply-context small{color:var(--text-secondary);font-size:9px}
.communication-recipient-picker{
  padding:12px;
  border:1px solid var(--border);
  border-radius:8px;
  background:var(--surface-2);
}
.communication-recipient-picker>div:first-child{display:flex;align-items:baseline;justify-content:space-between;gap:8px}
.communication-recipient-picker .message-search{margin:9px 0}
.communication-recipient-picker .message-search input{padding-left:36px}
.communication-selected-recipients{
  display:flex;
  min-height:38px;
  align-items:flex-start;
  justify-content:space-between;
  gap:10px;
  margin-bottom:9px;
  padding:8px 9px;
  border:1px solid var(--accent-border);
  border-radius:7px;
  background:var(--accent-bg);
}
.communication-selected-recipients>div:first-child{display:grid;flex:0 0 auto;gap:1px}
.communication-selected-recipients b{font-size:10px}
.communication-selected-recipients small{color:var(--text-secondary);font-size:8px}
.communication-recipient-chips{display:flex;min-width:0;align-items:center;justify-content:flex-end;gap:5px;flex-wrap:wrap}
.communication-recipient-chips button{
  display:flex;
  max-width:220px;
  align-items:center;
  gap:5px;
  padding:4px 7px;
  border:1px solid var(--accent-border);
  border-radius:999px;
  background:var(--surface-1);
  color:var(--text-primary);
  font:inherit;
  font-size:9px;
  cursor:pointer;
}
.communication-recipient-chips button:hover{border-color:var(--accent);color:var(--accent-text)}
.communication-recipient-chips button span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.communication-recipient-chips button i{flex:0 0 auto}
#communicationRecipientRows{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px;max-height:110px;overflow:auto}
.communication-recipient-picker .platform-empty.compact{min-height:95px;padding:12px}
.communication-recipient-row{
  display:flex;
  min-width:0;
  align-items:center;
  gap:8px;
  padding:8px;
  border:1px solid var(--border);
  border-radius:7px;
  background:var(--surface-1);
}
.communication-recipient-row>input{width:16px;height:16px;flex:0 0 auto}
.communication-recipient-row .communication-avatar{width:30px;height:30px;font-size:10px}
.communication-recipient-row>span:last-child{min-width:0}
.communication-recipient-row b,
.communication-recipient-row small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.communication-recipient-row b{font-size:10px}
.communication-attachment-field{
  display:grid!important;
  grid-template-columns:auto minmax(170px,1fr);
  align-items:center;
  gap:4px 12px!important;
  padding:10px 11px;
  border:1px dashed var(--border-strong);
  border-radius:7px;
  background:var(--surface-2);
}
.communication-attachment-field>span{grid-column:1;font-size:10px;font-weight:900}
.communication-attachment-field>input{
  grid-column:2;
  grid-row:1/3;
  min-height:38px;
  padding:5px!important;
  cursor:pointer;
}
.communication-attachment-field>small{grid-column:1}
.communication-attachment-field.is-disabled{opacity:.65}
.communication-compose-files{min-height:0;color:var(--accent-text);font-size:9px;font-weight:800}
.communication-compose-files:empty{display:none}
.communication-message-field textarea{min-height:260px;resize:vertical}
.communication-compose-status{min-height:18px;color:var(--text-secondary);font-size:10px}
.communication-save-draft{margin-right:auto}
.communication-draft-preview{min-height:500px;padding:20px}
.communication-draft-preview>header{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:18px;
  padding-bottom:16px;
  border-bottom:1px solid var(--border);
}
.communication-draft-preview>header h2{margin:4px 0;font-size:20px}
.communication-draft-preview>header p{margin:0;color:var(--text-secondary);font-size:10px}
.communication-draft-preview>header>div:last-child{display:flex;gap:7px;flex-wrap:wrap}
.communication-draft-preview dl{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin:16px 0}
.communication-draft-preview dl>div,
.communication-draft-preview>section{
  padding:11px;
  border:1px solid var(--border);
  border-radius:7px;
  background:var(--surface-2);
}
.communication-draft-preview dt,
.communication-draft-preview>section>span{color:var(--text-secondary);font-size:8px;font-weight:850;text-transform:uppercase}
.communication-draft-preview dd{margin:5px 0 0;font-size:11px}
.communication-draft-preview>section p{margin:8px 0 0;color:var(--text-primary);font-size:12px;line-height:1.6}
.student-message-attachments{
  display:flex;
  flex-direction:column;
  gap:6px;
  margin:11px 0;
  padding:11px;
  border:1px dashed var(--border-strong);
  border-radius:7px;
  background:var(--surface-2);
  font-size:11px;
}
.student-message-attachments>span{font-weight:800}
.student-message-attachments small{color:var(--text-secondary);font-size:9px;line-height:1.45}
.student-message-attachments.is-disabled{color:var(--text-secondary)}
.desk-message-files{display:flex;flex-wrap:wrap;gap:6px;margin:8px 0}
.desk-message-files>a{
  display:flex;
  align-items:center;
  gap:5px;
  padding:5px 7px;
  border:1px solid var(--border);
  border-radius:6px;
  background:var(--surface-1);
  color:var(--text-primary);
  font-size:9px;
  text-decoration:none;
}
.desk-message-files small{color:var(--text-secondary)}
.desk-message-actions{display:flex;align-items:center;gap:7px;margin-top:7px}
.desk-message-actions button{
  padding:5px 7px;
  border:1px solid var(--border);
  border-radius:5px;
  background:var(--surface-1);
  color:var(--accent-text);
  font:inherit;
  font-size:9px;
  font-weight:800;
  cursor:pointer;
}
.desk-message-actions>span{color:var(--text-secondary);font-size:9px}

@media(max-width:1000px){
  .communication-policy-grid{grid-template-columns:1fr 1fr}
  .communication-policy-grid>aside{grid-column:1/-1}
  .communication-center-grid{grid-template-columns:minmax(260px,40%) minmax(0,1fr)}
  .communication-toolbar{grid-template-columns:repeat(2,minmax(0,1fr))}
  .communication-message{width:92%}
}
@media(max-width:760px){
  .strategy-direction-grid{
    grid-template-columns:1fr;
  }
  .strategy-direction-grid .strategy-direction-values{
    grid-column:auto;
  }
  .teaching-message-details,.teaching-message-loading{width:170px}
  .teaching-message-preview{width:min(390px,calc(100vw - 2rem))}
  .communication-folders{overflow-x:auto}
  .communication-folders button{flex:0 0 auto}
  .communication-toolbar{grid-template-columns:1fr}
  .communication-center-grid{display:block}
  .communication-thread-list{display:grid;max-height:430px;border-right:0;border-bottom:1px solid var(--border-strong)}
  #communicationThreadRows{max-height:290px}
  .communication-conversation-head{align-items:flex-start}
  .communication-conversation-head{flex-direction:column}
  .communication-conversation-actions{width:100%;justify-content:flex-start}
  .communication-enrollment-context{display:block}
  .communication-enrollment-context>div{margin-top:8px}
  .communication-message-stream{max-height:none;padding:13px}
  .communication-message{width:100%}
  .communication-compose-grid,#communicationRecipientRows,.communication-policy-grid,.communication-reply-context{grid-template-columns:1fr}
  .communication-compose-grid>*{grid-column:1}
  .communication-reply-context>.communication-avatar{display:none}
  .communication-selected-recipients{display:grid}
  .communication-recipient-chips{justify-content:flex-start}
  .communication-attachment-field{grid-template-columns:1fr}
  .communication-attachment-field>input,
  .communication-attachment-field>small,
  .communication-attachment-field>span{grid-column:1;grid-row:auto}
  .communication-draft-preview>header{flex-direction:column}
  .communication-draft-preview dl{grid-template-columns:1fr}
  .communication-policy-grid>aside{grid-column:1}
}
.platform-week-resource-policy-grid>label{
  display:flex;
  min-width:0;
  flex-direction:column;
  gap:6px;
  color:var(--text);
  font-size:10px;
  font-weight:700;
}
.platform-week-resource-policy-grid input,
.platform-week-resource-policy-grid textarea{
  width:100%;
  min-height:42px;
  padding:10px 11px;
  border:1px solid var(--border-strong);
  border-radius:7px;
  background:var(--surface-1);
  color:var(--text);
  font:inherit;
  font-size:11px;
  resize:vertical;
}
.platform-week-resource-policy-grid label>small{
  color:var(--text-muted);
  font-size:9px;
  font-weight:500;
  line-height:1.45;
}
.platform-week-resource-policy-grid>aside{
  display:flex;
  align-items:flex-start;
  gap:9px;
  padding:12px;
  border:1px solid var(--accent-border);
  border-radius:7px;
  background:var(--accent-bg);
  color:var(--text-secondary);
  font-size:10px;
  line-height:1.5;
}
.platform-week-resource-policy-grid>aside>i{
  flex:0 0 auto;
  color:var(--accent-text);
  font-size:20px;
}
.platform-week-resource-policy-grid>aside b{
  display:block;
  margin-bottom:2px;
  color:var(--text-primary);
}
.platform-password-policy-grid{
  display:grid;
  grid-template-columns:minmax(150px,.45fr) minmax(170px,.55fr) minmax(210px,.75fr) minmax(260px,1fr);
  align-items:stretch;
  gap:12px;
  margin-top:15px;
}
.platform-password-policy-grid>label{
  display:flex;
  min-width:0;
  flex-direction:column;
  gap:6px;
  color:var(--text);
  font-size:10px;
  font-weight:700;
}
.platform-password-policy-grid input[type="number"]{
  width:100%;
  min-height:42px;
  padding:0 11px;
  border:1px solid var(--border-strong);
  border-radius:7px;
  background:var(--surface-1);
  color:var(--text);
  font:inherit;
  font-size:12px;
}
.platform-password-policy-grid label>small{
  color:var(--text-muted);
  font-size:9px;
  font-weight:500;
}
.platform-password-policy-grid fieldset{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:7px 10px;
  min-width:0;
  margin:0;
  padding:9px 11px 10px;
  border:1px solid var(--border);
  border-radius:7px;
  background:var(--surface-1);
}
.platform-password-policy-grid legend{
  padding:0 4px;
  color:var(--text-secondary);
  font-size:9px;
  font-weight:800;
}
.platform-password-policy-grid fieldset label{
  display:flex;
  align-items:center;
  gap:6px;
  color:var(--text-secondary);
  font-size:9px;
  font-weight:600;
}
.platform-password-policy-grid fieldset input{
  width:15px;
  height:15px;
}
.platform-password-policy-preview{
  display:flex;
  min-width:0;
  flex-direction:column;
  justify-content:center;
  padding:13px 16px;
  border:1px solid var(--accent-border);
  border-radius:8px;
  background:var(--accent-bg);
}
.platform-password-policy-preview>span{
  color:var(--accent-text);
  font-size:9px;
  font-weight:800;
  letter-spacing:.08em;
  text-transform:uppercase;
}
.platform-password-policy-preview>strong{
  margin-top:5px;
  color:var(--text);
  font-size:11px;
  line-height:1.45;
}
.platform-password-policy-preview>small{
  margin-top:4px;
  color:var(--text-secondary);
  font-size:9px;
}
.platform-regional-settings>header>div{
  display:flex;
  align-items:flex-start;
  gap:11px;
}
.platform-regional-settings h2{
  margin:2px 0 3px;
  font-size:18px;
}
.platform-regional-settings p{
  margin:0;
  color:var(--text-secondary);
  font-size:11px;
  line-height:1.5;
}
.platform-date-format-grid{
  display:grid;
  grid-template-columns:minmax(220px,.9fr) minmax(160px,.55fr) minmax(250px,1fr);
  align-items:stretch;
  gap:12px;
  margin-top:15px;
}
.platform-date-format-grid>label{
  display:flex;
  min-width:0;
  flex-direction:column;
  gap:6px;
  color:var(--text);
  font-size:10px;
  font-weight:700;
}
.platform-date-format-grid select{
  width:100%;
  min-height:42px;
  padding:0 11px;
  border:1px solid var(--border-strong);
  border-radius:7px;
  background:var(--surface-1);
  color:var(--text);
  font:inherit;
  font-size:12px;
}
.platform-date-format-grid label>small{
  color:var(--text-muted);
  font-size:9px;
  font-weight:500;
}
.platform-date-preview{
  display:flex;
  min-width:0;
  flex-direction:column;
  justify-content:center;
  padding:13px 16px;
  border:1px solid var(--accent-border);
  border-radius:8px;
  background:var(--accent-bg);
}
.platform-date-preview>span{
  color:var(--accent-text);
  font-size:9px;
  font-weight:800;
  letter-spacing:.08em;
  text-transform:uppercase;
}
.platform-date-preview>strong{
  margin-top:5px;
  color:var(--text);
  font-size:20px;
}
.platform-date-preview>small{
  margin-top:3px;
  color:var(--text-secondary);
  font-size:10px;
}
.platform-settings-taxonomy-editor>section{
  display:flex;
  min-width:0;
  flex-direction:column;
}
.platform-settings-taxonomy-editor>section>header>div{
  display:flex;
  min-width:0;
  align-items:flex-start;
  gap:10px;
}
.platform-settings-category-icon{
  display:inline-flex;
  width:36px;
  height:36px;
  flex:0 0 36px;
  align-items:center;
  justify-content:center;
  border-radius:7px;
  background:var(--accent-bg);
  color:var(--accent-text);
  font-size:19px;
}
.platform-settings-option-count{
  display:block;
  margin-top:auto;
  padding-top:11px;
  color:var(--text-muted);
  font-size:9px;
  text-align:right;
}
.platform-settings-actions{
  position:sticky;
  bottom:10px;
  z-index:4;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:14px;
  padding:12px 14px;
  border:1px solid var(--border-strong);
  border-radius:8px;
  background:color-mix(in srgb,var(--surface-2) 94%,transparent);
  box-shadow:0 8px 28px rgba(0,0,0,.12);
  backdrop-filter:blur(12px);
}
.platform-settings-actions>span{
  display:inline-flex;
  align-items:center;
  gap:6px;
  color:var(--success-text);
  font-size:10px;
  font-weight:700;
}
.platform-settings-actions>span.is-dirty{
  color:var(--warning-text);
}
.platform-settings-actions>span.is-error{
  color:var(--danger-text);
}
.platform-settings-actions>span .ti-loader-2{
  animation:platform-spin 1s linear infinite;
}
.platform-settings-actions>div{
  display:flex;
  align-items:center;
  gap:8px;
}
.platform-settings-actions [data-platform-settings-save]:disabled,.platform-settings-actions [data-platform-settings-reload]:disabled{border-color:var(--border);background:var(--surface-2);color:var(--text-muted);box-shadow:none;cursor:not-allowed;opacity:1;filter:none;transform:none}
.platform-check{
  display:flex!important;
  min-height:42px;
  flex-direction:row!important;
  align-items:center;
  gap:9px!important;
  padding:10px;
  border:1px solid var(--border);
  border-radius:7px;
  background:var(--surface-1);
}
.platform-check input{
  width:18px!important;
  min-height:18px!important;
}
.platform-form-note,
.platform-shell-note{
  display:flex;
  align-items:flex-start;
  gap:10px;
  margin-top:14px;
  padding:12px;
  border-left:3px solid var(--accent);
  background:var(--accent-bg);
  color:var(--text-secondary);
  font-size:11px;
  line-height:1.5;
}
.platform-form-note i,
.platform-shell-note i{
  flex:0 0 auto;
  color:var(--accent-text);
  font-size:19px;
}
.platform-form-note.warning{
  border-left-color:var(--warning-text);
  background:var(--warning-bg);
  color:var(--warning-text);
}
.platform-form-note.warning i{
  color:var(--warning-text);
}
.course-shell-editor{
  max-width:1180px;
  margin-right:auto;
  margin-left:auto;
}
.shell-week-authored-content{
  display:grid;
  gap:16px;
  margin-top:18px;
  padding:18px;
  border:1px solid var(--border);
  border-left:4px solid var(--accent);
  border-radius:8px;
  background:var(--surface-0);
}
.shell-week-authored-content aside{
  display:flex;
  gap:10px;
  padding:12px;
  border-radius:7px;
  background:var(--accent-bg);
}
.shell-week-authored-content aside>i{
  color:var(--accent-text);
  font-size:20px;
}
.shell-week-authored-content aside b{
  display:block;
  margin-bottom:3px;
}
.shell-week-authored-content h3{
  display:flex;
  align-items:center;
  gap:7px;
  margin:0 0 8px;
  font-size:15px;
}
.shell-week-written-sections{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:12px;
}
.shell-week-written-sections>article{
  padding:14px;
  border:1px solid var(--border);
  border-radius:7px;
  background:var(--surface-1);
}
.course-shell-grade-list{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:10px;
}
.course-shell-grade-list>label{
  display:grid;
  grid-template-columns:minmax(0,1fr) 100px auto;
  align-items:center;
  gap:12px;
  min-height:60px;
  padding:10px 12px;
  border:1px solid var(--border);
  border-radius:7px;
  background:var(--surface-1);
}
.course-shell-grade-list input{
  text-align:right;
}
.course-shell-weeks{
  display:grid;
  gap:12px;
  margin-top:14px;
}
.course-shell-weeks>article{
  display:grid;
  grid-template-columns:45px minmax(0,1fr);
  gap:12px;
  align-items:start;
  padding:13px;
  border:1px solid var(--border);
  border-radius:7px;
  background:var(--surface-1);
}
.course-shell-weeks>article>strong,
.course-shell-weeks>article>span:first-child{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:38px;
  height:38px;
  border-radius:7px;
  background:var(--accent-bg);
  color:var(--accent-text);
}
.course-shell-week-editor-head>div:last-child{
  display:flex;
  align-items:flex-end;
  gap:9px;
}
.course-shell-week-editor-head>div:last-child>label{
  width:90px;
}
.course-shell-week-editor-head>div:last-child input{
  min-height:38px;
}
.course-shell-week-fields{
  display:grid;
  grid-template-columns:minmax(160px,1.15fr) repeat(3,minmax(140px,1fr));
  gap:9px;
}
/* Secondary week controls stay available without overwhelming the calendar's primary fields. */
.course-shell-week-more{
  grid-column:2;
  overflow:visible;
  margin-top:2px;
  border:0;
  border-radius:0;
  background:transparent;
}
.course-shell-week-more>summary{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  min-height:44px;
  padding:9px 0;
  color:var(--text-secondary);
  font-size:12px;
  font-weight:800;
  list-style:none;
  cursor:pointer;
}
.course-shell-week-more>summary::-webkit-details-marker{
  display:none;
}
.course-shell-week-more>summary>span{
  display:inline-flex;
  align-items:center;
  gap:8px;
}
.course-shell-week-more>summary>span>i{
  color:var(--accent-text);
  font-size:17px;
}
.course-shell-week-more>summary>.ti-chevron-down{
  transition:transform .18s ease;
}
.course-shell-week-more>summary:hover{
  color:var(--text-primary);
}
.course-shell-week-more>summary:focus-visible{
  outline:0;
}
.course-shell-week-more>summary:focus-visible>span{
  color:var(--accent-text);
  box-shadow:0 3px 0 var(--accent);
}
.course-shell-week-more[open]>summary{
  border-bottom:0;
  color:var(--text-primary);
  background:transparent;
}
.course-shell-week-more[open]>summary>.ti-chevron-down{
  transform:rotate(180deg);
}
.course-shell-week-more-body{
  display:grid;
  gap:12px;
  padding:14px 0 0;
}
.course-shell-week-remove{
  display:flex;
  justify-content:flex-end;
}
.course-shell-week-add{
  display:flex;
  justify-content:center;
  margin-top:12px;
}
/* Launch Studio: eleven transparent setup steps plus the printable course card. */
.course-launch-head-actions{
  display:flex;
  align-items:center;
  gap:10px;
}
.course-launch-steps-grid{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(118px,1fr));
  gap:6px;
}
.launch-field-title{
  display:block;
  margin-bottom:6px;
  font-size:12px;
  font-weight:700;
  color:var(--text-primary);
}
.launch-coded-head{
  display:grid;
  grid-template-columns:110px minmax(0,1fr) 40px;
  gap:8px;
  font-size:10px;
  font-weight:700;
  letter-spacing:.05em;
  text-transform:uppercase;
  color:var(--text-secondary);
  margin-bottom:4px;
}
.launch-coded-row{
  display:grid;
  grid-template-columns:110px minmax(0,1fr) 40px;
  gap:8px;
  margin-bottom:7px;
  align-items:center;
}
.launch-item-row,
.launch-policy-link{
  display:flex;
  gap:8px;
  margin-bottom:7px;
  align-items:center;
}
.launch-item-row input{
  flex:1;
}
.launch-policy-link input[data-policy-label]{
  flex:0 0 32%;
}
.launch-policy-link input[data-policy-url]{
  flex:1;
}
.launch-coded-list [data-coded-add],
.launch-item-list [data-item-add]{
  margin-top:4px;
}
.launch-grading-list{
  display:grid;
  gap:9px;
  margin:12px 0;
}
/* Launch Studio editors sit outside .platform-form-grid, so their controls join the
   platform form baseline explicitly: same height, border, radius and focus treatment
   as every other administrative form. */
.launch-grading-row input:not([type="checkbox"]),
.launch-grading-row select,
.launch-coded-row input,
.launch-item-row input,
.launch-policy-link input,
.launch-week-plan-row input,
.launch-grading-add select,
.launch-grading-add input{
  min-height:38px;
  padding:7px 11px;
  border:1px solid var(--border-strong);
  border-radius:8px;
  background:var(--surface-1);
  color:var(--text-primary);
  font:inherit;
  font-weight:400;
  transition:border-color .15s ease, box-shadow .15s ease;
}
.launch-grading-row input:not([type="checkbox"]):hover,
.launch-grading-row select:hover,
.launch-coded-row input:hover,
.launch-item-row input:hover,
.launch-policy-link input:hover,
.launch-week-plan-row input:hover,
.launch-grading-add select:hover,
.launch-grading-add input:hover{
  border-color:var(--accent);
}
.launch-grading-row input:not([type="checkbox"]):focus-visible,
.launch-grading-row select:focus-visible,
.launch-coded-row input:focus-visible,
.launch-item-row input:focus-visible,
.launch-policy-link input:focus-visible,
.launch-week-plan-row input:focus-visible,
.launch-grading-add select:focus-visible,
.launch-grading-add input:focus-visible{
  outline:none;
  border-color:var(--accent);
  box-shadow:0 0 0 3px var(--accent-soft,rgba(33,103,174,.22));
}
.launch-grading-row input[type="number"]{
  text-align:center;
}
.launch-week-plan-row input{
  font-size:12.5px;
}
/* Grading designer: assessment-type rows beside a live donut and mix insights. */
.launch-grading-designer{
  display:grid;
  grid-template-columns:minmax(0,1fr) 250px;
  gap:16px;
  align-items:start;
  margin:12px 0;
}
.launch-grading-row{
  display:grid;
  gap:9px;
  padding:11px 13px;
  border:1px solid var(--border);
  border-radius:9px;
  background:var(--surface-1);
}
.launch-grading-row.launch-floor-violated{
  border-color:var(--danger,#b3261e);
  box-shadow:0 0 0 2px rgba(179,38,30,.12);
}
.launch-grading-lead{
  display:flex;
  align-items:center;
  gap:10px;
  flex-wrap:wrap;
}
.launch-grading-use{
  display:inline-flex;
  align-items:center;
  gap:9px;
}
.launch-grading-use>span{
  display:inline-flex;
  align-items:center;
  gap:7px;
  font-size:13px;
  color:var(--text-primary);
  font-weight:600;
}
.launch-grading-name{
  min-width:200px;
}
.launch-grading-locked-name{
  display:inline-flex;
  align-items:center;
  color:var(--text-muted);
  font-size:12px;
}
.launch-grading-add{
  display:flex;
  align-items:center;
  gap:9px;
  flex-wrap:wrap;
  margin-top:4px;
}
.launch-grading-add select{
  min-width:230px;
}
.launch-grading-add input{
  min-width:230px;
}
.launch-grading-floor{
  display:inline-flex;
  align-items:center;
  gap:5px;
  padding:3px 9px;
  border-radius:999px;
  background:var(--surface-2);
  border:1px solid var(--border);
  font-size:10.5px;
  font-weight:700;
  color:var(--text-secondary);
}
.launch-floor-violated .launch-grading-floor{
  color:var(--danger,#b3261e);
  border-color:var(--danger,#b3261e);
}
.launch-grading-lead [data-grading-remove]{
  margin-left:auto;
}
.launch-grading-fields{
  display:grid;
  grid-template-columns:96px 96px minmax(170px,1.2fr) minmax(160px,1fr);
  gap:10px;
  align-items:end;
}
.launch-grading-fields>label{
  display:flex;
  flex-direction:column;
  gap:4px;
  min-width:0;
}
.launch-grading-fields>label>span{
  font-size:10px;
  font-weight:700;
  letter-spacing:.05em;
  text-transform:uppercase;
  color:var(--text-secondary);
}
.launch-grading-summary{
  position:sticky;
  top:82px;
  display:grid;
  gap:14px;
  justify-items:center;
  padding:18px 14px;
  border:1px solid var(--border);
  border-radius:11px;
  background:var(--surface-1);
}
.launch-grading-donut{
  position:relative;
  width:150px;
  height:150px;
  border-radius:50%;
  background:conic-gradient(var(--border) 0% 100%);
}
.launch-grading-donut::after{
  content:"";
  position:absolute;
  inset:26px;
  border-radius:50%;
  background:var(--surface-1);
}
.launch-grading-donut span{
  position:absolute;
  inset:0;
  display:flex;
  align-items:center;
  justify-content:center;
  font-size:22px;
  font-weight:800;
  color:var(--text-primary);
  z-index:1;
}
.launch-grading-insights{
  list-style:none;
  margin:0;
  padding:0;
  display:grid;
  gap:8px;
  width:100%;
}
.launch-grading-insights li{
  display:flex;
  align-items:center;
  gap:8px;
  font-size:12px;
  color:var(--text-secondary);
}
.launch-grading-insights li b{
  color:var(--text-primary);
}
.launch-grading-insights li.is-warning{
  color:var(--danger,#b3261e);
}
.launch-profile-brief{
  margin:12px 0;
}
.launch-profile-chips{
  display:flex;
  flex-wrap:wrap;
  gap:8px;
  margin:8px 0 4px;
}
.launch-profile-chip{
  display:inline-flex;
  align-items:center;
  gap:8px;
  padding:7px 12px;
  border:1px solid var(--border);
  border-radius:999px;
  background:var(--surface-1);
  font-size:12px;
}
.launch-profile-chip small{
  color:var(--text-secondary);
}
.launch-profile-chip.is-online{
  border-color:var(--accent);
}
.launch-profile-chip.is-online small{
  color:var(--accent);
  font-weight:700;
}
.launch-profile-chip em{
  display:inline-flex;
  color:var(--support,#B8860B);
  font-size:12px;
}
@media(max-width:900px){
  .launch-grading-designer{grid-template-columns:1fr}
  .launch-grading-summary{position:static}
}
#launchGradingTotal.launch-total-ok{
  color:var(--success-text,#1a7f37);
}
.launch-icon-group{
  margin:9px 0;
  overflow:hidden;
  border:1px solid var(--border);
  border-radius:11px;
  background:var(--surface-1);
}
.launch-icon-group>summary{
  display:flex;
  min-height:52px;
  align-items:center;
  justify-content:space-between;
  flex-wrap:wrap;
  gap:14px;
  padding:10px 13px;
  color:var(--text-primary);
  cursor:pointer;
  list-style:none;
  transition:background .14s ease,border-color .14s ease;
}
.launch-icon-group>summary::-webkit-details-marker{
  display:none;
}
.launch-icon-group>summary:hover{
  background:var(--surface-2);
}
.launch-icon-group>summary:focus-visible{
  outline:2px solid var(--accent);
  outline-offset:-3px;
}
.launch-icon-group>summary>span:last-child{
  display:flex;
  flex:0 0 auto;
  align-items:center;
  gap:8px;
}
.launch-icon-group>summary small{
  color:var(--text-muted);
  font-size:11px;
  font-weight:700;
}
.launch-icon-group [data-launch-icon-group-selected]{
  display:inline-flex;
  align-items:center;
  gap:5px;
  padding:4px 8px;
  border-radius:999px;
  background:color-mix(in srgb,var(--launch-icon-group-color) 12%,var(--surface-1));
  color:var(--launch-icon-group-color);
  font-size:10px;
  font-style:normal;
  font-weight:800;
}
.launch-icon-group [hidden]{
  display:none;
}
.launch-icon-group-title{
  display:flex;
  align-items:center;
  gap:8px;
  margin:0;
  color:var(--launch-icon-group-color,var(--accent));
  font-size:11px;
  font-weight:800;
  letter-spacing:.05em;
  text-transform:uppercase;
}
.launch-icon-group-title>i{
  font-size:15px;
  transition:transform .14s ease;
}
.launch-icon-group[open] .launch-icon-group-title>i{
  transform:rotate(90deg);
}
.launch-icon-grid{
  display:grid;
  grid-template-columns:repeat(auto-fill,minmax(50px,1fr));
  gap:7px;
  margin:0;
  padding:11px 13px 13px;
  border-top:1px solid var(--border);
  background:var(--surface-0);
}
.launch-icon-choice input{
  position:absolute;
  opacity:0;
}
.launch-icon-choice span{
  display:flex;
  align-items:center;
  justify-content:center;
  height:46px;
  border:1px solid var(--border);
  border-radius:9px;
  background:var(--surface-1);
  font-size:21px;
  cursor:pointer;
  transition:transform .12s ease, box-shadow .12s ease;
}
.launch-icon-choice span:hover{
  transform:translateY(-1px);
  box-shadow:0 3px 10px rgba(25,42,59,.12);
}
.launch-icon-choice input:checked+span{
  border-color:currentColor;
  box-shadow:0 0 0 2.5px currentColor;
  background:var(--surface-0);
}
.launch-icon-choice input:focus-visible+span{
  outline:2px solid var(--accent);
  outline-offset:2px;
}
.launch-icon-upload{
  display:flex;
  gap:14px;
  align-items:center;
  margin-top:13px;
  padding:13px;
  border:1px solid var(--border);
  border-radius:11px;
  background:var(--surface-0);
}
.launch-icon-upload>div{
  display:flex;
  gap:8px;
  align-items:center;
  flex-wrap:wrap;
}
.launch-icon-upload small{
  flex-basis:100%;
  color:var(--text-secondary);
}
.launch-icon-preview{
  display:flex;
  align-items:center;
  justify-content:center;
  width:64px;
  height:64px;
  border:1px dashed var(--border-strong);
  border-radius:11px;
  background:var(--surface-1);
  overflow:hidden;
}
.launch-icon-preview img{
  max-width:100%;
  max-height:100%;
}
.launch-template-list{
  display:grid;
  grid-template-columns:repeat(auto-fill,minmax(230px,1fr));
  gap:9px;
  margin-top:12px;
}
.launch-template-choice input{
  position:absolute;
  opacity:0;
}
.launch-template-choice>span{
  display:flex;
  flex-direction:column;
  gap:3px;
  padding:12px 13px;
  border:1px solid var(--border);
  border-radius:9px;
  background:var(--surface-1);
  cursor:pointer;
}
.launch-template-choice>input:checked+span{
  border-color:var(--accent);
  box-shadow:0 0 0 2px var(--accent-soft,rgba(33,103,174,.25));
}
.launch-template-preview{
  display:flex;
  flex-direction:column;
  border-radius:8px;
  overflow:hidden;
  border:1px solid var(--border);
  margin-bottom:9px;
}
.launch-template-preview-head{
  display:flex;
  align-items:center;
  gap:7px;
  padding:7px 10px;
  color:#fff;
  font-size:11.5px;
  font-weight:700;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
}
.launch-template-preview-head i{
  font-size:14px;
}
.launch-template-preview-body{
  display:flex;
  flex-direction:column;
  align-items:flex-start;
  gap:6px;
  padding:10px 10px 12px;
}
.launch-template-preview-line{
  display:block;
  width:62%;
  height:5px;
  border-radius:3px;
  opacity:.55;
}
.launch-template-preview-line.short{
  width:38%;
  background:rgba(90,90,90,.35);
  opacity:1;
}
.launch-template-preview-button{
  margin-top:3px;
  padding:4px 12px;
  font-size:10.5px;
  font-weight:700;
}
.launch-week-plan{
  display:grid;
  gap:9px;
  margin-top:12px;
}
.launch-week-plan-row{
  display:grid;
  grid-template-columns:42px minmax(0,1fr);
  gap:11px;
  align-items:start;
  padding:10px 12px;
  border:1px solid var(--border);
  border-radius:9px;
  background:var(--surface-1);
}
.launch-week-plan-row>span{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:36px;
  height:36px;
  border-radius:8px;
  background:var(--accent-bg);
  color:var(--accent-text);
  font-weight:700;
}
.launch-week-plan-row>div{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:9px;
}
.launch-week-plan-row label{
  display:flex;
  flex-direction:column;
  gap:4px;
  font-size:10px;
  font-weight:700;
  letter-spacing:.05em;
  text-transform:uppercase;
  color:var(--text-secondary);
}
/* Course card: a clean printable record of the full setup. */
.course-card{
  background:var(--surface-1);
  border:1px solid var(--border);
  border-radius:12px;
  padding:26px 30px;
  max-width:960px;
}
.course-card-section{
  margin-bottom:22px;
}
.course-card-section h2{
  font-size:14px;
  letter-spacing:.03em;
  text-transform:uppercase;
  color:var(--text-secondary);
  border-bottom:1px solid var(--border);
  padding-bottom:5px;
  margin:0 0 10px;
}
.course-card-table{
  width:100%;
  border-collapse:collapse;
  font-size:12.5px;
}
.course-card-table th,
.course-card-table td{
  text-align:left;
  vertical-align:top;
  padding:5px 10px 5px 0;
  border-bottom:1px dashed var(--border);
}
.course-card-table th{
  width:140px;
  font-weight:700;
  color:var(--text-secondary);
  white-space:nowrap;
}
.course-card-grading th,
.course-card-weeks th{
  width:auto;
}
.course-card-list{
  margin:4px 0;
  padding-left:18px;
  font-size:12.5px;
}
.course-card-note{
  font-size:11.5px;
  color:var(--text-muted);
  font-style:italic;
}
@media print{
  .admin-side,.course-card-actions .btn-accent,.course-card-actions a,.workspace-topbar,.side-foot{display:none}
  .course-card-page{padding:0}
  .course-card{border:none;max-width:none;padding:0}
  body{background:#fff}
}

.course-shell-week-menu{
  grid-column:2;
  border:1px solid var(--border);
  border-radius:7px;
  background:var(--surface-2);
  overflow:hidden;
}
.course-shell-week-menu>summary{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  min-height:48px;
  padding:9px 11px;
  cursor:pointer;
  list-style:none;
}
.course-shell-week-menu>summary::-webkit-details-marker{display:none}
.course-shell-week-menu>summary>span{
  display:flex;
  align-items:center;
  gap:9px;
  min-width:0;
}
.course-shell-week-menu>summary>span>i{
  color:var(--accent-text);
  font-size:18px;
}
.course-shell-week-menu>summary span span,
.course-shell-week-menu>summary b,
.course-shell-week-menu>summary small{display:block}
.course-shell-week-menu>summary b{font-size:11px}
.course-shell-week-menu>summary small{
  margin-top:2px;
  color:var(--text-muted);
  font-size:9px;
}
.course-shell-week-menu>summary em{
  display:inline-flex;
  align-items:center;
  gap:4px;
  flex:0 0 auto;
  color:var(--text-muted);
  font-size:9px;
  font-style:normal;
  font-weight:700;
}
.course-shell-week-menu>summary em>b{
  color:var(--accent-text);
  font-size:11px;
}
.course-shell-week-menu>summary em>i{transition:transform .18s ease}
.course-shell-week-menu[open]>summary{
  border-bottom:1px solid var(--border);
  background:var(--accent-bg);
}
.course-shell-week-menu[open]>summary em>i{transform:rotate(180deg)}
.course-shell-week-menu-body{padding:10px}
.course-shell-week-menu-options{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:7px;
}
.course-shell-week-menu-option{
  position:relative;
  min-width:0;
  cursor:pointer;
}
.course-shell-week-menu-option>input{
  position:absolute;
  width:1px;
  height:1px;
  opacity:0;
  pointer-events:none;
}
.course-shell-week-menu-option>span{
  display:grid;
  grid-template-columns:28px minmax(0,1fr) 18px;
  align-items:center;
  gap:8px;
  min-height:52px;
  padding:8px;
  border:1px solid var(--border);
  border-radius:6px;
  background:var(--surface-1);
  transition:border-color .15s ease,background .15s ease;
}
.course-shell-week-menu-option>span>i:first-child{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:28px;
  height:28px;
  border-radius:6px;
  background:var(--surface-2);
  color:var(--text-muted);
  font-size:16px;
}
.course-shell-week-menu-option>span>span,
.course-shell-week-menu-option b,
.course-shell-week-menu-option small{display:block;min-width:0}
.course-shell-week-menu-option b{font-size:10px}
.course-shell-week-menu-option small{
  margin-top:2px;
  color:var(--text-muted);
  font-size:8px;
  line-height:1.35;
}
.course-shell-week-menu-option>span>i:last-child{
  color:transparent;
  font-size:15px;
}
.course-shell-week-menu-option>input:checked+span{
  border-color:var(--accent-border);
  background:var(--accent-bg);
}
.course-shell-week-menu-option>input:checked+span>i:first-child,
.course-shell-week-menu-option>input:checked+span>i:last-child{color:var(--accent-text)}
.course-shell-week-menu-option>input:focus-visible+span{
  outline:2px solid var(--accent);
  outline-offset:2px;
}
.course-shell-week-menu-body>footer{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  margin-top:9px;
  padding-top:9px;
  border-top:1px solid var(--border);
}
.course-shell-week-menu-body>footer>span{
  display:flex;
  align-items:center;
  gap:6px;
  color:var(--text-muted);
  font-size:8px;
}
.course-shell-week-menu-body>footer>span i{color:var(--accent-text)}
.course-shell-week-menu-body>footer>div{
  display:flex;
  gap:6px;
  flex:0 0 auto;
}
.course-shell-week-menu-body>footer .btn-ghost{
  min-height:30px;
  padding:5px 8px;
  font-size:9px;
}
.course-shell-appearance{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:12px;
}
.course-shell-preview{
  display:flex;
  align-items:center;
  gap:13px;
  margin-top:18px;
  padding:17px;
  border:1px solid var(--accent-border);
  border-left:5px solid var(--shell-accent,var(--accent));
  border-radius:7px;
  background:var(--accent-bg);
}
.course-shell-preview>i{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:46px;
  height:46px;
  border-radius:7px;
  background:var(--shell-accent,var(--accent));
  color:#fff;
  font-size:25px;
}
.course-shell-preview b,
.course-shell-preview span{
  display:block;
}
.course-shell-preview b{
  color:var(--accent-text);
  font-size:11px;
  letter-spacing:.06em;
}
.shell-course-context{
  display:flex;
  align-items:center;
  gap:10px;
  margin:-10px 0 16px;
  padding:10px 12px;
  border:1px solid var(--accent-border);
  border-radius:7px;
  background:var(--accent-bg);
  color:var(--text-secondary);
  font-size:11px;
}
.shell-course-context>span{
  display:inline-flex;
  align-items:center;
  gap:6px;
  min-width:0;
}
.shell-course-context>span:first-child{
  margin-right:auto;
  color:var(--text-primary);
}
.shell-course-context i{
  color:var(--accent-text);
  font-size:17px;
}
.shell-course-context b{
  color:var(--accent-text);
}
.shell-starter-guide{
  margin:0 0 16px;
  padding:16px;
  border:1px dashed var(--accent-border);
  border-radius:8px;
  background:color-mix(in srgb,var(--accent-bg) 58%,var(--surface-2));
}
.shell-starter-guide>header{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:18px;
}
.shell-starter-guide>header h2{
  margin:6px 0 4px;
  font-size:18px;
}
.shell-starter-guide>header p{
  max-width:780px;
  margin:0;
  color:var(--text-secondary);
  font-size:11px;
  line-height:1.5;
}
.shell-starter-badge{
  display:inline-flex;
  align-items:center;
  gap:5px;
  padding:5px 8px;
  border-radius:999px;
  background:var(--warning-bg);
  color:var(--warning-text);
  font-size:9px;
  font-weight:800;
  letter-spacing:.05em;
  text-transform:uppercase;
}
.shell-starter-prompt{
  display:grid;
  grid-template-columns:32px minmax(0,1fr);
  align-items:center;
  gap:9px;
  margin-top:13px;
  padding:10px;
  border:1px solid var(--accent-border);
  border-radius:7px;
  background:var(--surface-1);
  color:var(--text-secondary);
  font-size:11px;
}
.shell-starter-prompt>i{
  color:var(--accent-text);
  font-size:21px;
}
.shell-starter-prompt span,
.shell-starter-prompt b{
  display:block;
}
.shell-starter-prompt b{
  margin-bottom:2px;
  color:var(--text-primary);
}
.shell-starter-checklist{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:7px;
  margin-top:13px;
}
.shell-starter-checklist h3{
  grid-column:1/-1;
  margin:0 0 2px;
  font-size:13px;
}
.shell-starter-checklist a{
  display:grid;
  grid-template-columns:26px minmax(0,1fr) 18px;
  align-items:center;
  gap:8px;
  padding:9px;
  border:1px solid var(--border);
  border-radius:6px;
  background:var(--surface-1);
  color:var(--text-secondary);
  font-size:10px;
  line-height:1.4;
  text-decoration:none;
}
.shell-starter-checklist a:hover{
  border-color:var(--accent-border);
  color:var(--accent-text);
}
.shell-starter-checklist a>span{
  display:grid;
  place-items:center;
  width:25px;
  height:25px;
  border-radius:50%;
  background:var(--accent-bg);
  color:var(--accent-text);
  font-weight:800;
}
.shell-starter-checklist a>i{
  color:var(--accent-text);
}
.shell-starter-example{
  margin-top:13px;
  padding:12px;
  border-left:4px solid var(--accent);
  background:var(--surface-1);
}
.shell-starter-example>span{
  color:var(--warning-text);
  font-size:9px;
  font-weight:800;
  letter-spacing:.05em;
  text-transform:uppercase;
}
.shell-starter-example h3{
  margin:4px 0;
  font-size:13px;
}
.shell-starter-example p{
  margin:0;
  color:var(--text-secondary);
  font-size:11px;
  line-height:1.5;
}
.shell-starter-hidden{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:16px;
  margin:0 0 16px;
  padding:10px 12px;
  border:1px solid var(--border);
  border-radius:7px;
  background:var(--surface-2);
  color:var(--text-muted);
  font-size:10px;
}
.shell-starter-hidden>span{
  display:flex;
  align-items:center;
  gap:8px;
}
.shell-starter-hidden>span>i{
  color:var(--accent-text);
  font-size:18px;
}
.shell-starter-hidden b{
  display:block;
  color:var(--text-secondary);
  font-size:11px;
}
[data-workspace="teaching"][data-course-button-shape="pill"] .btn-accent,
[data-workspace="teaching"][data-course-button-shape="pill"] .btn-ghost{
  border-radius:999px;
}
[data-workspace="teaching"][data-course-button-style="outline"] .btn-accent{
  border-color:var(--accent);
  background:var(--surface-1);
  color:var(--accent-text);
}
[data-workspace="teaching"][data-course-button-style="outline"] .btn-accent:hover{
  background:var(--accent);
  color:#fff;
}
.shell-course-rich{
  color:var(--text-secondary);
  font-size:13px;
  line-height:1.65;
}
.shell-course-rich>:first-child{margin-top:0}
.shell-course-rich>:last-child{margin-bottom:0}
.shell-course-overview-grid h3{
  margin:20px 0 8px;
  font-size:14px;
}
.shell-course-objectives{
  display:grid;
  gap:7px;
  margin:0;
  padding-left:22px;
  color:var(--text-secondary);
  font-size:12px;
  line-height:1.55;
}
.shell-course-objectives li::marker{
  color:var(--accent-text);
  font-weight:800;
}
.shell-course-facts{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:9px;
  margin:0;
}
.shell-course-facts>div{
  padding:10px;
  border:1px solid var(--border);
  border-radius:6px;
  background:var(--surface-1);
}
.shell-course-facts dt{
  color:var(--text-muted);
  font-size:9px;
  font-weight:800;
  letter-spacing:.07em;
  text-transform:uppercase;
}
.shell-course-facts dd{
  margin:4px 0 0;
  color:var(--text-primary);
  font-size:12px;
  font-weight:700;
}
.shell-course-quick-actions{
  display:flex;
  gap:8px;
  flex-wrap:wrap;
  margin-top:14px;
}
.shell-course-syllabus-lead{
  padding-bottom:18px;
  border-bottom:1px solid var(--border);
}
.shell-course-syllabus .platform-two-column{
  margin:18px 0 0;
}
.shell-course-syllabus-sections{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:10px;
  margin-top:18px;
}
.shell-course-syllabus-sections>article{
  padding:14px;
  border:1px solid var(--border);
  border-radius:7px;
  background:var(--surface-1);
}
.shell-course-syllabus-sections h3{
  margin:0 0 8px;
  font-size:13px;
}
.shell-week-browser{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:20px;
  margin-bottom:12px;
  padding:14px 16px;
}
.shell-week-browser-copy{
  min-width:220px;
}
.shell-week-browser-copy h2{
  margin:2px 0 3px;
  font-size:15px;
}
.shell-week-browser-copy p{
  margin:0;
  color:var(--text-muted);
  font-size:10px;
}
.shell-week-browser-controls{
  display:flex;
  min-width:0;
  align-items:center;
  gap:10px;
}
.shell-week-view-switch{
  display:inline-flex;
  flex:0 0 auto;
  gap:3px;
  padding:3px;
  border:1px solid var(--border);
  border-radius:7px;
  background:var(--surface-1);
}
.shell-week-view-switch button{
  display:inline-flex;
  min-height:34px;
  align-items:center;
  gap:6px;
  padding:6px 10px;
  border:0;
  border-radius:5px;
  background:transparent;
  color:var(--text-secondary);
  cursor:pointer;
  font:inherit;
  font-size:10px;
  font-weight:750;
}
.shell-week-view-switch button:hover{background:var(--surface-2)}
.shell-week-view-switch button.active,
.shell-week-view-switch button[aria-pressed="true"]{
  background:var(--accent);
  color:#fff;
}
.shell-week-navigation{
  display:flex;
  min-width:0;
  align-items:center;
  gap:7px;
}
.shell-week-navigation[hidden]{display:none}
.shell-week-navigation>.icon-btn{
  width:34px;
  height:34px;
  flex:0 0 34px;
}
.shell-week-navigation label{
  display:flex;
  min-width:0;
  align-items:center;
  gap:6px;
}
.shell-week-navigation label>span,
.shell-week-navigation>span{
  color:var(--text-muted);
  font-size:9px;
  font-weight:700;
  white-space:nowrap;
}
.shell-week-navigation select{
  width:min(300px,26vw);
  min-height:34px;
  padding:5px 28px 5px 8px;
  border:1px solid var(--border);
  border-radius:6px;
  background:var(--surface-0);
  color:var(--text-primary);
  font:inherit;
  font-size:10px;
}
.shell-course-week-list{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:10px;
}
.shell-course-week-list[data-week-view-mode="focused"]{
  grid-template-columns:minmax(0,1fr);
}
.shell-course-week-list>.platform-panel{
  margin:0;
  padding:15px;
  scroll-margin-top:88px;
}
.shell-course-week-list>.platform-panel:focus{
  outline:2px solid var(--accent);
  outline-offset:2px;
}
.shell-course-week-list[data-week-view-mode="focused"]>.platform-panel{
  padding:22px;
}
.shell-course-week-list header{
  display:grid;
  grid-template-columns:42px minmax(0,1fr) auto;
  align-items:start;
  gap:10px;
}
.shell-course-week-list header>span{
  display:grid;
  place-items:center;
  width:40px;
  height:40px;
  border-radius:7px;
  background:var(--accent);
  color:#fff;
  font-weight:800;
}
.shell-course-week-list header small{
  color:var(--accent-text);
  font-size:9px;
  font-weight:800;
  letter-spacing:.07em;
  text-transform:uppercase;
}
.shell-course-week-list header h2{
  margin:2px 0 3px;
  font-size:15px;
}
.shell-course-week-list header p{
  margin:0;
  color:var(--text-muted);
  font-size:10px;
}
.shell-course-week-list header em{
  padding:4px 7px;
  border-radius:999px;
  background:var(--warning-bg);
  color:var(--warning-text);
  font-size:8px;
  font-style:normal;
  font-weight:800;
  text-transform:uppercase;
}
.shell-course-week-list header em.published{
  background:var(--success-bg);
  color:var(--success-text);
}
.shell-week-card-actions{
  display:flex;
  align-items:flex-end;
  flex-direction:column;
  gap:8px;
}
.shell-week-card-actions .btn-ghost{
  min-height:31px;
  padding:5px 8px;
  font-size:9px;
}
.shell-course-week-list[data-week-view-mode="focused"] .shell-week-card-actions .btn-ghost{
  display:none;
}
.shell-course-week-list[data-week-view-mode="focused"] header{
  grid-template-columns:58px minmax(0,1fr) auto;
  gap:14px;
}
.shell-course-week-list[data-week-view-mode="focused"] header>span{
  width:56px;
  height:56px;
  font-size:19px;
}
.shell-course-week-list[data-week-view-mode="focused"] header h2{
  margin-top:3px;
  font-size:22px;
}
.shell-course-week-list[data-week-view-mode="focused"] header p{
  font-size:12px;
}
.shell-course-week-sections{
  display:flex;
  gap:5px;
  flex-wrap:wrap;
  margin-top:13px;
}
.shell-course-week-sections span{
  display:inline-flex;
  align-items:center;
  gap:4px;
  padding:5px 7px;
  border-radius:5px;
  background:var(--surface-1);
  color:var(--text-secondary);
  font-size:9px;
}
.shell-course-week-sections i{color:var(--accent-text)}
.shell-course-week-list[data-week-view-mode="focused"] .shell-course-week-sections{
  gap:7px;
  margin-top:18px;
}
.shell-course-week-list[data-week-view-mode="focused"] .shell-course-week-sections span{
  padding:7px 9px;
  font-size:11px;
}
.shell-course-week-list footer{
  display:flex;
  align-items:center;
  gap:5px;
  margin-top:11px;
  padding-top:10px;
  border-top:1px solid var(--border);
  color:var(--text-muted);
  font-size:10px;
}
.week-repository{
  margin-top:12px;
  border:1px solid var(--border);
  border-radius:7px;
  background:var(--surface-1);
  overflow:hidden;
}
.week-repository>summary{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
  padding:10px 11px;
  color:var(--text-secondary);
  cursor:pointer;
  font-size:10px;
  font-weight:750;
  list-style:none;
}
.week-repository>summary::-webkit-details-marker{display:none}
.week-repository>summary>span{
  display:flex;
  min-width:0;
  align-items:center;
  gap:6px;
}
.week-repository>summary>span>i{color:var(--accent-text);font-size:16px}
.week-repository>summary small{
  color:var(--text-muted);
  font-size:9px;
  font-weight:550;
}
.week-repository>summary>i{
  transition:transform .18s ease;
}
.week-repository[open]>summary{
  border-bottom:1px solid var(--border);
  background:var(--accent-bg);
  color:var(--accent-text);
}
.week-repository[open]>summary>i{transform:rotate(180deg)}
.week-repository>[data-week-repository]{padding:12px}
.week-repository-toolbar{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:12px;
}
.week-repository-toolbar h3{
  margin:2px 0;
  font-size:13px;
}
.week-repository-toolbar p{
  margin:0;
  color:var(--text-muted);
  font-size:9px;
}
.week-repository-toolbar-actions{
  display:flex;
  align-items:center;
  gap:6px;
  flex-wrap:wrap;
  justify-content:flex-end;
}
.week-repository-toolbar .btn-ghost,
.week-repository-toolbar .btn-accent{
  min-height:33px;
  padding:6px 9px;
  font-size:9px;
}
.week-repository-view-switch{
  display:inline-grid;
  grid-template-columns:repeat(2,auto);
  align-items:center;
  padding:3px;
  border:1px solid var(--border);
  border-radius:9px;
  background:var(--surface-2);
}
.week-repository-view-switch button{
  display:flex;
  min-height:27px;
  align-items:center;
  justify-content:center;
  gap:5px;
  padding:4px 8px;
  border:0;
  border-radius:6px;
  background:transparent;
  color:var(--text-muted);
  font:inherit;
  font-size:9px;
  font-weight:750;
  cursor:pointer;
}
.week-repository-view-switch button[aria-pressed="true"]{
  background:var(--surface-1);
  color:var(--accent-text);
  box-shadow:0 2px 8px rgba(19,52,82,.1);
}
.week-repository-view-switch button:focus-visible{
  outline:2px solid var(--accent);
  outline-offset:2px;
}
.week-repository-quota{
  height:4px;
  margin:10px 0;
  border-radius:999px;
  background:var(--surface-3);
  overflow:hidden;
}
.week-repository-quota>span{
  display:block;
  height:100%;
  border-radius:inherit;
  background:var(--accent);
}
.week-repository-selection-toolbar{
  display:grid;
  grid-template-columns:auto minmax(0,1fr) auto;
  align-items:center;
  gap:10px;
  margin:10px 0;
  padding:8px 10px;
  border:1px solid var(--accent-border);
  border-radius:8px;
  background:color-mix(in srgb,var(--accent-bg) 62%,var(--surface-2));
}
.week-repository-selection-toolbar[hidden]{display:none}
.week-repository-selection-toolbar>label{
  display:flex;
  align-items:center;
  gap:7px;
  color:var(--text-secondary);
  font-size:10px;
  font-weight:750;
  cursor:pointer;
}
.week-repository-selection-toolbar input{
  width:17px;
  height:17px;
  margin:0;
  accent-color:var(--accent);
}
.week-repository-selection-toolbar>div{
  display:flex;
  align-items:center;
  gap:6px;
}
.week-repository-selection-toolbar button{
  min-height:32px;
  padding:6px 10px;
  font-size:9px;
}
.week-repository-selection-toolbar button.is-loading i{animation:platform-spin 1s linear infinite}
.week-repository-selection-count{
  color:var(--text-muted);
  font-size:9.5px;
}
.week-repository-selection-toolbar>p{
  grid-column:1/-1;
  min-height:0;
  margin:0;
  color:var(--text-muted);
  font-size:9.5px;
}
.week-repository-selection-toolbar>p:empty{display:none}
.week-repository-selection-toolbar>p.is-success{color:var(--success-text,#176B3A)}
.week-repository-selection-toolbar>p.is-error{color:var(--danger-text,#A92D25);font-weight:750}
.week-repository-tree{
  border:1px solid var(--border);
  border-radius:11px;
  background:var(--surface-1);
  overflow:hidden;
  box-shadow:0 7px 22px rgba(18,51,81,.045);
}
.week-repository-row{
  display:grid;
  grid-template-columns:38px minmax(0,1fr) auto;
  align-items:center;
  gap:10px;
  min-height:58px;
  padding:9px 11px 9px calc(11px + var(--repository-depth,0) * 20px);
  border-bottom:1px solid var(--border);
  background:var(--surface-1);
  transition:background .15s ease,box-shadow .15s ease;
}
.week-repository-row.folder{
  grid-template-columns:minmax(0,1fr) auto;
  background:color-mix(in srgb,var(--accent-bg) 38%,var(--surface-1));
}
.week-repository-row.learner-resource{
  grid-template-columns:38px minmax(0,1fr) 34px;
}
[data-week-repository].is-selecting .week-repository-row.learner-resource{
  grid-template-columns:22px 38px minmax(0,1fr) 34px;
}
.week-repository-select{
  display:none;
  place-items:center;
  width:22px;
  height:32px;
  cursor:pointer;
}
[data-week-repository].is-selecting .week-repository-select{display:grid}
.week-repository-select input{
  width:17px;
  height:17px;
  margin:0;
  accent-color:var(--accent);
  cursor:pointer;
}
.week-repository-row.is-dragging{opacity:.45}
.week-repository-row.is-drop-target{
  background:var(--accent-soft,rgba(33,103,174,.14));
  box-shadow:inset 0 0 0 2px var(--accent);
}
.week-repository-row:hover{background:var(--accent-bg)}
.week-repository-folder-toggle{
  display:grid;
  grid-template-columns:18px 38px minmax(0,1fr);
  align-items:center;
  gap:10px;
  min-width:0;
  min-height:40px;
  padding:0;
  border:0;
  border-radius:7px;
  background:transparent;
  color:inherit;
  font:inherit;
  text-align:left;
  cursor:pointer;
}
.week-repository-folder-toggle:focus-visible{
  outline:2px solid var(--accent);
  outline-offset:3px;
}
.week-repository-folder-chevron{
  display:grid;
  width:18px;
  height:30px;
  place-items:center;
  color:var(--text-muted);
  font-size:15px;
}
.week-repository-folder-chevron i{
  transition:transform .18s ease;
}
.week-repository-folder-toggle[aria-expanded="false"] .week-repository-folder-chevron i{
  transform:rotate(-90deg);
}
.week-repository-node-icon{
  display:grid;
  place-items:center;
  width:36px;
  height:36px;
  border-radius:8px;
  background:var(--surface-1);
  color:var(--accent-text);
  font-size:20px;
}
.week-repository-row.folder .week-repository-node-icon{
  background:var(--accent-bg);
}
.week-repository-node-copy{
  display:block;
  min-width:0;
  color:var(--text-secondary);
  text-decoration:none;
}
.week-repository-node-copy b,
.week-repository-node-copy small{
  display:block;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.week-repository-node-copy b{
  color:var(--text-primary);
  font-size:12.5px;
}
.week-repository-node-copy small{
  margin-top:2px;
  color:var(--text-muted);
  font-size:10.5px;
}
.week-repository-row.file .week-repository-node-copy:hover b{
  color:var(--accent-text);
  text-decoration:underline;
}
.week-repository-learner-actions{
  display:flex;
  align-items:center;
  justify-content:flex-end;
  opacity:0;
  transform:translateX(4px);
  transition:opacity .15s ease,transform .15s ease;
}
.week-repository-row:hover .week-repository-learner-actions,
.week-repository-row:focus-within .week-repository-learner-actions{
  opacity:1;
  transform:none;
}
.week-repository-learner-actions button{
  display:grid;
  place-items:center;
  width:34px;
  height:34px;
  padding:0;
  border:1px solid var(--accent-border);
  border-radius:8px;
  background:var(--surface-1);
  color:var(--accent-text);
  font-size:17px;
  cursor:pointer;
  box-shadow:0 4px 12px rgba(22,63,100,.08);
}
.week-repository-learner-actions button:hover,
.week-repository-learner-actions button:focus-visible{
  border-color:var(--accent);
  background:var(--accent-bg);
  outline:0;
  box-shadow:0 0 0 3px color-mix(in srgb,var(--accent) 18%,transparent);
}
@media(hover:none){
  .week-repository-learner-actions{opacity:1;transform:none}
  .week-repository-learner-actions button{width:44px;height:44px}
  .week-repository-row-actions{opacity:1}
}
.week-repository-row-actions{
  display:flex;
  align-items:center;
  gap:2px;
  opacity:.42;
  transition:opacity .15s ease;
}
.week-repository-row:hover .week-repository-row-actions,
.week-repository-row:focus-within .week-repository-row-actions{opacity:1}
.week-repository-row-actions button{
  display:grid;
  place-items:center;
  width:32px;
  height:32px;
  padding:0;
  border:1px solid transparent;
  border-radius:7px;
  background:transparent;
  color:var(--text-secondary);
  font-size:15px;
  cursor:pointer;
}
.week-repository-row-actions button:hover{
  border-color:var(--border-strong);
  background:var(--surface-1);
  color:var(--accent-text);
}
.week-repository-row-actions button.danger:hover{color:var(--danger)}
.week-repository-row-actions button:disabled{opacity:.25;cursor:not-allowed}
.week-resource-preview-modal{
  width:min(1240px,calc(100vw - 34px));
  height:min(860px,calc(100dvh - 34px));
}
.week-resource-preview-modal>.platform-form-body{
  display:flex;
  padding:0;
  background:var(--surface-3);
  overflow:hidden;
}
.week-resource-preview-modal>footer>a:first-child{margin-right:auto}
.week-resource-preview-stage{
  display:grid;
  flex:1;
  min-width:0;
  min-height:420px;
  place-items:center;
  overflow:auto;
  overscroll-behavior:contain;
}
.week-resource-preview-state{
  display:grid;
  width:min(520px,calc(100% - 32px));
  place-items:center;
  gap:8px;
  padding:32px;
  border:1px solid var(--border);
  border-radius:12px;
  background:var(--surface-1);
  color:var(--text-muted);
  text-align:center;
  box-shadow:0 12px 38px rgba(24,48,72,.08);
}
.week-resource-preview-state>i{
  color:var(--accent-text);
  font-size:38px;
}
.week-resource-preview-state>i.ti-loader-2{animation:platform-spin 1s linear infinite}
.week-resource-preview-state>b{color:var(--text-primary);font-size:16px}
.week-resource-preview-state>span{max-width:430px;font-size:11px;line-height:1.55}
.week-resource-preview-state>a{margin-top:6px}
.week-resource-preview-state.is-error{
  border-color:color-mix(in srgb,var(--danger-text,#A92D25) 28%,var(--border));
  background:var(--danger-bg,#FFF0EE);
}
.week-resource-preview-state.is-error>i{color:var(--danger-text,#A92D25)}
.week-resource-preview-media{
  display:grid;
  width:100%;
  min-height:100%;
  place-items:center;
  padding:22px;
}
.week-resource-preview-media img,
.week-resource-preview-media video{
  display:block;
  max-width:100%;
  max-height:calc(100dvh - 190px);
  border-radius:8px;
  box-shadow:0 12px 38px rgba(24,48,72,.16);
}
.week-resource-preview-media.audio{
  align-content:center;
  gap:18px;
}
.week-resource-preview-media.audio>i{color:var(--accent-text);font-size:56px}
.week-resource-preview-media audio{width:min(640px,100%)}
.week-resource-preview-document{
  display:flex;
  align-self:stretch;
  justify-self:stretch;
  min-width:0;
  min-height:100%;
  flex-direction:column;
  background:var(--surface-1);
}
.week-resource-preview-document>header{
  position:sticky;
  z-index:1;
  top:0;
  display:flex;
  align-items:center;
  gap:11px;
  padding:14px 20px;
  border-bottom:1px solid var(--border);
  background:color-mix(in srgb,var(--surface-1) 94%,transparent);
  backdrop-filter:blur(10px);
}
.week-resource-preview-document>header>span:first-child{
  display:grid;
  width:38px;
  height:38px;
  flex:0 0 38px;
  place-items:center;
  border-radius:9px;
  background:var(--accent-bg);
  color:var(--accent-text);
  font-size:21px;
}
.week-resource-preview-document>header b,
.week-resource-preview-document>header small{display:block}
.week-resource-preview-document>header b{color:var(--text-primary);font-size:12px}
.week-resource-preview-document>header small{margin-top:2px;color:var(--text-muted);font-size:9px}
.week-resource-preview-document>p{
  margin:14px 20px 0;
  padding:9px 11px;
  border-left:3px solid var(--accent);
  background:var(--accent-bg);
  color:var(--text-secondary);
  font-size:10px;
  line-height:1.5;
}
.week-resource-preview-document>p[hidden]{display:none}
.week-resource-preview-document>.week-resource-preview-text{
  flex:1;
  min-height:0;
  padding:22px 26px 30px;
}
.week-resource-preview-text{
  align-self:stretch;
  justify-self:stretch;
  min-height:100%;
  margin:0;
  padding:26px;
  background:var(--surface-1);
  color:var(--text-primary);
  font:11px/1.65 ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;
  white-space:pre-wrap;
  word-break:break-word;
  tab-size:2;
}
.week-repository-children>.week-repository-folder:last-child>.week-repository-row,
.week-repository-tree>.week-repository-folder:last-child>.week-repository-row,
.week-repository-tree>.week-repository-row:last-child{border-bottom:0}
.week-repository-folder-empty{
  margin:0;
  padding:7px 12px 8px calc(58px + var(--repository-depth,0) * 20px);
  border-bottom:1px solid var(--border);
  color:var(--text-muted);
  font-size:10.5px;
  font-style:italic;
}
.week-repository-tree[data-repository-layout="tiles"]{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(min(100%,240px),1fr));
  align-items:start;
  gap:12px;
  padding:12px;
  background:color-mix(in srgb,var(--surface-2) 72%,var(--surface-1));
}
.week-repository-tree[data-repository-layout="tiles"] .week-repository-folder{
  display:contents;
}
.week-repository-tree[data-repository-layout="tiles"] .week-repository-children{
  order:2;
  grid-column:1/-1;
  display:grid;
  grid-template-columns:repeat(auto-fill,minmax(min(100%,220px),1fr));
  align-items:start;
  gap:10px;
  padding:11px;
  border:1px solid var(--border);
  border-left:3px solid color-mix(in srgb,var(--accent) 62%,var(--border));
  border-radius:10px;
  background:color-mix(in srgb,var(--accent-bg) 25%,var(--surface-1));
}
.week-repository-tree[data-repository-layout="tiles"] .week-repository-row{
  order:1;
  position:relative;
  display:grid;
  grid-template-columns:minmax(0,1fr);
  align-content:start;
  gap:10px;
  min-width:0;
  min-height:154px;
  padding:15px;
  border:1px solid var(--border);
  border-radius:11px;
  background:var(--surface-1);
  box-shadow:0 7px 20px rgba(18,51,81,.055);
}
.week-repository-tree[data-repository-layout="tiles"] .week-repository-row:hover{
  border-color:var(--accent-border);
  background:color-mix(in srgb,var(--accent-bg) 38%,var(--surface-1));
  box-shadow:0 10px 24px rgba(18,51,81,.09);
}
.week-repository-tree[data-repository-layout="tiles"] .week-repository-folder-toggle{
  grid-template-columns:minmax(0,1fr);
  justify-items:center;
  gap:8px;
  min-height:108px;
  text-align:center;
}
.week-repository-tree[data-repository-layout="tiles"] .week-repository-folder-chevron{
  position:absolute;
  top:9px;
  right:9px;
  width:30px;
  height:30px;
}
.week-repository-tree[data-repository-layout="tiles"] .week-repository-node-icon{
  width:54px;
  height:54px;
  border-radius:13px;
  font-size:27px;
}
.week-repository-tree[data-repository-layout="tiles"] .week-repository-node-copy{
  width:100%;
  text-align:center;
}
.week-repository-tree[data-repository-layout="tiles"] .week-repository-node-copy b,
.week-repository-tree[data-repository-layout="tiles"] .week-repository-node-copy small{
  display:-webkit-box;
  overflow:hidden;
  white-space:normal;
  -webkit-box-orient:vertical;
}
.week-repository-tree[data-repository-layout="tiles"] .week-repository-node-copy b{
  -webkit-line-clamp:2;
}
.week-repository-tree[data-repository-layout="tiles"] .week-repository-node-copy small{
  min-height:2.8em;
  -webkit-line-clamp:2;
}
.week-repository-tree[data-repository-layout="tiles"] .week-repository-row.file>.week-repository-node-icon{
  justify-self:center;
}
.week-repository-tree[data-repository-layout="tiles"] .week-repository-learner-actions{
  position:absolute;
  top:10px;
  right:10px;
}
.week-repository-tree[data-repository-layout="tiles"] .week-repository-row-actions{
  grid-column:1/-1;
  align-self:end;
  justify-content:center;
  flex-wrap:wrap;
  padding-top:8px;
  border-top:1px solid var(--border);
  opacity:.72;
}
.week-repository-tree[data-repository-layout="tiles"] .week-repository-select{
  position:absolute;
  top:10px;
  left:10px;
}
.week-repository-tree[data-repository-layout="tiles"] .week-repository-folder-empty{
  grid-column:1/-1;
  padding:12px;
  border:1px dashed var(--border-strong);
  border-radius:8px;
  background:var(--surface-1);
  text-align:center;
}
.week-repository-tree .week-repository-children[hidden]{display:none}
@media(prefers-reduced-motion:reduce){
  .week-repository-row,
  .week-repository-folder-chevron i{transition:none}
}
/* Drop strip that appears while dragging: releases the item at the top level. */
.week-repository-dropzone{
  display:flex;
  align-items:center;
  gap:8px;
  margin:8px 0;
  padding:10px 14px;
  border:2px dashed var(--accent);
  border-radius:9px;
  color:var(--accent-text);
  font-size:12px;
  font-weight:700;
  background:var(--accent-soft,rgba(33,103,174,.08));
}
.week-repository-dropzone[hidden]{display:none}
.week-repository-dropzone.is-drop-target{
  background:var(--accent-bg);
  box-shadow:inset 0 0 0 2px var(--accent);
}
/* Folder icon picker inside the folder editor. */
.week-folder-icon-picker>span{
  display:block;
  margin-bottom:6px;
  font-size:11px;
  font-weight:700;
  color:var(--text-secondary);
}
.week-folder-icon-picker>div{
  display:flex;
  flex-wrap:wrap;
  gap:7px;
}
.week-folder-icon-picker input{
  position:absolute;
  opacity:0;
}
.week-folder-icon-picker label>span{
  display:grid;
  place-items:center;
  width:42px;
  height:42px;
  border:1px solid var(--border);
  border-radius:9px;
  background:var(--surface-1);
  font-size:19px;
  cursor:pointer;
}
.week-folder-icon-picker input:checked+span{
  border-color:var(--accent);
  box-shadow:0 0 0 2px var(--accent-soft,rgba(33,103,174,.25));
  color:var(--accent);
}
.week-folder-color-picker{
  display:flex;
  flex-wrap:wrap;
  gap:7px;
}
.week-folder-color-picker label>span{
  display:grid;
  place-items:center;
  width:30px;
  height:30px;
  border:1px solid var(--border);
  border-radius:50%;
  background:var(--surface-1);
  color:var(--text-muted);
  font-size:13px;
  cursor:pointer;
}
.week-folder-color-picker input{
  position:absolute;
  opacity:0;
}
.week-folder-color-picker input:checked+span{
  box-shadow:0 0 0 2.5px var(--accent);
}
.week-repository-course-badge{
  display:inline-flex;
  align-items:center;
  gap:4px;
  margin-left:7px;
  padding:1.5px 8px;
  border-radius:999px;
  background:var(--accent-bg);
  color:var(--accent-text);
  font-size:9.5px;
  font-weight:700;
  font-style:normal;
  vertical-align:middle;
}
.week-scope-picker>span{
  display:block;
  margin-bottom:6px;
  font-size:11px;
  font-weight:700;
  color:var(--text-secondary);
}
.week-scope-weeks[hidden]{display:none}
.week-folder-preview{
  display:flex;
  align-items:center;
  gap:11px;
  margin-bottom:11px;
  padding:10px 13px;
  border:1px dashed var(--border-strong);
  border-radius:9px;
  background:var(--surface-2);
}
.week-folder-preview b{
  display:block;
  font-size:12.5px;
  color:var(--text-primary);
}
.week-folder-preview small{
  color:var(--text-muted);
  font-size:10px;
}
.week-scope-weeks input:disabled+span{
  opacity:.75;
  cursor:default;
}
.week-scope-weeks{
  display:flex;
  flex-wrap:wrap;
  gap:6px;
  margin-top:8px;
}
.week-scope-weeks input{
  position:absolute;
  opacity:0;
}
.week-scope-weeks label>span{
  display:grid;
  place-items:center;
  min-width:34px;
  height:30px;
  border:1px solid var(--border);
  border-radius:7px;
  background:var(--surface-1);
  font-size:12px;
  font-weight:700;
  cursor:pointer;
}
.week-scope-weeks input:checked+span{
  border-color:var(--accent);
  background:var(--accent-bg);
  color:var(--accent-text);
}
.week-scope-picker .muted{
  display:block;
  margin-top:7px;
}
.week-repository-empty{
  display:flex;
  align-items:center;
  justify-content:center;
  gap:9px;
  min-height:92px;
  padding:15px;
  color:var(--text-muted);
  text-align:left;
}
.week-repository-empty.compact{min-height:62px}
.week-repository-empty>i{font-size:28px}
.week-repository-empty span,
.week-repository-empty b,
.week-repository-empty small{display:block}
.week-repository-empty b{color:var(--text-secondary);font-size:11px}
.week-repository-empty small{margin-top:2px;font-size:9px}
.week-repository>[data-week-repository]>footer{
  display:flex;
  align-items:flex-start;
  gap:6px;
  margin-top:9px;
  padding:0;
  border:0;
  color:var(--text-muted);
  font-size:8px;
  line-height:1.45;
}
.week-repository>[data-week-repository]>footer i{color:var(--accent-text)}
.week-upload-metadata{
  display:grid;
  gap:8px;
  margin-top:12px;
}
.week-upload-summary{
  display:flex;
  align-items:center;
  justify-content:space-between;
  color:var(--text-secondary);
  font-size:10px;
}
.week-upload-metadata>section{
  display:grid;
  grid-template-columns:minmax(170px,.7fr) minmax(180px,.8fr) minmax(220px,1.2fr);
  align-items:start;
  gap:9px;
  padding:10px;
  border:1px solid var(--border);
  border-radius:7px;
  background:var(--surface-2);
}
.week-upload-metadata>section>div{
  display:flex;
  align-items:center;
  gap:8px;
  min-width:0;
}
.week-upload-metadata>section>div>i{
  flex:0 0 auto;
  color:var(--accent-text);
  font-size:22px;
}
.week-upload-metadata>section>div span,
.week-upload-metadata>section>div b,
.week-upload-metadata>section>div small{display:block;min-width:0}
.week-upload-metadata>section>div b{
  overflow:hidden;
  color:var(--text-primary);
  font-size:10px;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.week-upload-metadata>section>div small{color:var(--text-muted);font-size:8px}
.week-upload-metadata label{
  display:flex;
  min-width:0;
  flex-direction:column;
  gap:4px;
  color:var(--text-secondary);
  font-size:9px;
  font-weight:700;
}
.week-upload-metadata input,
.week-upload-metadata textarea{
  width:100%;
  padding:7px 8px;
  border:1px solid var(--border-strong);
  border-radius:5px;
  background:var(--surface-1);
  color:var(--text-primary);
  font:inherit;
  font-size:9px;
  resize:vertical;
}
#weekUploadStatus.is-error{color:var(--danger)}
.shell-course-grading-list{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:9px;
}
.shell-course-grading-list>article{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  padding:12px;
  border:1px solid var(--border);
  border-radius:7px;
  background:var(--surface-1);
}
.shell-course-grading-list span{
  display:flex;
  align-items:center;
  gap:8px;
}
.shell-course-grading-list i{
  color:var(--accent-text);
  font-size:18px;
}
.shell-course-grading-list strong{
  color:var(--accent-text);
  font-size:17px;
}
.platform-shell-staff{
  display:flex;
  flex-direction:column;
  gap:7px;
}
.platform-shell-staff>span{
  display:grid;
  grid-template-columns:28px minmax(0,1fr);
  align-items:center;
  padding:9px;
  border:1px solid var(--border);
  border-radius:6px;
  background:var(--surface-1);
}
.platform-shell-staff i{
  grid-row:1/3;
  color:var(--accent-text);
  font-size:19px;
}
.platform-shell-staff small{
  color:var(--text-muted);
  font-size:9px;
  text-transform:capitalize;
}
@media(max-width:1180px){
  .platform-planner{grid-template-columns:repeat(2,minmax(240px,1fr))}
  .platform-planning-scope{align-items:stretch;flex-direction:column}
  .platform-planning-scope-fields{width:100%;min-width:0}
  .platform-staff-grid{grid-template-columns:repeat(2,minmax(240px,1fr))}
  .platform-directory-filters{grid-template-columns:repeat(3,minmax(0,1fr))}
  .platform-course-directory-toolbar{grid-template-columns:repeat(3,minmax(0,1fr))}
  .platform-course-directory-search{grid-column:1/-1}
  .platform-sort-direction,.platform-filter-reset{justify-self:start}
  .platform-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}
  .platform-access-role-grid,.platform-account-state,.platform-scope-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .platform-appointment-row{grid-template-columns:minmax(160px,1fr) 130px 130px 36px}
  .platform-appointment-description{grid-column:1/3}
  .platform-appointment-row>.platform-check{grid-column:3}
  .course-shell-week-fields{grid-template-columns:repeat(2,minmax(0,1fr))}
  .course-shell-week-fields>label:last-child{grid-column:1/-1}
  .platform-password-policy-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .platform-week-resource-policy-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .platform-week-resource-policy-grid>aside{grid-column:1/-1}
  .week-upload-metadata>section{grid-template-columns:minmax(160px,.7fr) minmax(180px,1fr)}
  .week-upload-metadata>section>label:last-child{grid-column:1/-1}
}
@media(max-width:900px){
  .teaching-workspace-hero{grid-template-columns:1fr}
  .teaching-workspace-hero-visual{min-height:167px}
  .teaching-workspace-hero-copy{padding-bottom:16px}
  .communication-hero,
  .communication-hero.is-course-scoped{grid-template-columns:1fr}
  .communication-hero-visual,
  .communication-hero.is-course-scoped .communication-hero-visual{min-height:161px}
  .communication-hero-copy{padding-bottom:16px}
  .platform-page-head,
  .course-shell-head{align-items:flex-start;flex-direction:column}
  .platform-page-head.platform-context-head{
    display:grid;
    grid-template-columns:1fr;
    min-height:0;
  }
  .platform-head-actions,
  .course-shell-head>div:last-child{justify-content:flex-start}
  .platform-split,
  .platform-two-column{grid-template-columns:1fr}
  .platform-directory-heading{align-items:stretch;flex-direction:column}
  .platform-directory-primary-controls{justify-content:space-between}
  .platform-directory-primary-controls .platform-search{width:100%}
  .platform-directory-footer{align-items:flex-start;flex-wrap:wrap}
  .platform-page-size{margin-left:0}
  .course-launch-intro{grid-template-columns:1fr}
  .course-launch-steps{grid-template-columns:repeat(3,minmax(0,1fr))}
  .course-launch-steps button:nth-child(3){border-right:0}
  .course-launch-steps button:nth-child(-n+3){border-bottom:1px solid var(--border-soft)}
  .shell-week-browser{align-items:stretch;flex-direction:column}
  .shell-week-browser-controls{justify-content:space-between}
  .course-shell-grade-list,
  .course-shell-appearance{grid-template-columns:1fr}
  .platform-affiliation-list,.platform-taxonomy-editor{grid-template-columns:1fr}
  .shell-course-week-list,.shell-course-syllabus-sections{grid-template-columns:1fr}
  .shell-course-context{align-items:flex-start;flex-direction:column}
  .shell-course-context>span:first-child{margin-right:0}
  .shell-starter-checklist{grid-template-columns:1fr}
}
@media(max-width:680px){
  .teaching-workspace-hero{border-radius:18px}
  .teaching-workspace-hero-copy{padding:17px 22px 10px}
  .teaching-workspace-hero-copy h1{font-size:29px}
  .teaching-workspace-hero-copy p{font-size:13px}
  .teaching-workspace-hero-visual{min-height:146px}
  .teaching-hero-hub{width:118px;height:118px}
  .teaching-hero-course-3{display:none}
  .teaching-hero-caption{left:18px;bottom:13px}
  .communication-hero{border-radius:18px}
  .communication-hero-copy{padding:17px 22px 10px}
  .communication-hero-copy h1{font-size:26px}
  .communication-hero-copy p{font-size:13px}
  .communication-hero-visual,
  .communication-hero.is-course-scoped .communication-hero-visual{min-height:143px}
  .communication-hero-hub{width:126px;height:126px}
  .communication-hero-course-3{display:none}
  .communication-hero-caption{right:18px;bottom:13px}
  .platform-workspace,
  .course-shell{padding-bottom:20px}
  .platform-page-head,
  .course-shell-head{gap:15px;padding-bottom:16px}
  .platform-page-head.platform-context-head{
    gap:15px;
    padding:18px 17px;
    border-radius:17px;
  }
  .platform-context-main{align-items:flex-start;gap:13px}
  .platform-context-icon{width:48px;height:48px;border-radius:14px;font-size:24px}
  .platform-page-head.platform-context-head .platform-context-copy h1{font-size:26px!important}
  .platform-context-motto{margin-top:7px}
  .platform-page-head h1,
  .course-shell-head h1{font-size:27px}
  .platform-head-actions .btn-ghost,
  .platform-head-actions .btn-accent{flex:1;justify-content:center}
  .course-launch-intro{gap:18px;padding:19px}
  .course-launch-paths,
  .course-launch-experiences,
  .course-launch-review-grid{grid-template-columns:1fr}
  .course-launch-steps{grid-template-columns:repeat(2,minmax(0,1fr))}
  .course-launch-steps button:nth-child(3){border-right:1px solid var(--border-soft)}
  .course-launch-steps button:nth-child(even){border-right:0}
  .course-launch-steps button:nth-child(-n+4){border-bottom:1px solid var(--border-soft)}
  .course-launch-panels{min-height:0;padding:22px 17px}
  .course-launch-choice{grid-template-columns:1fr}
  .course-launch-attendance{grid-template-columns:1fr}
  .course-launch-actions{align-items:stretch;flex-wrap:wrap}
  .course-launch-actions>[data-launch-back]{margin-right:0}
  .course-launch-actions #courseLaunchStatus{order:-1;width:100%}
  .course-launch-actions button{flex:1;justify-content:center}
  .platform-kpis,
  .platform-planner,
  .platform-staff-grid{grid-template-columns:1fr}
  .platform-planning-scope-fields{grid-template-columns:1fr}
  .platform-planning-scope-fields>i{display:none}
  .platform-planning-context{align-items:flex-start;flex-direction:column}
  .platform-planning-context>div{align-items:flex-start;flex-direction:column}
  .platform-planning-context>div>i{display:none}
  .platform-directory-primary-controls{align-items:stretch;flex-direction:column}
  .platform-view-switch{align-self:flex-start}
  .platform-directory-filters{grid-template-columns:1fr}
  .platform-course-directory-toolbar{grid-template-columns:1fr}
  .platform-course-directory-search{grid-column:auto}
  .platform-course-directory-toolbar .platform-sort-direction,
  .platform-course-directory-toolbar .platform-filter-reset{width:100%}
  .platform-sort-direction,.platform-filter-reset{width:100%;justify-self:stretch}
  .platform-directory-footer{flex-direction:column}
  .platform-page-size{flex-wrap:wrap}
  .platform-pagination{width:100%;justify-content:space-between}
  .platform-panel{padding:15px}
  .shell-week-browser-controls{align-items:stretch;flex-direction:column}
  .shell-week-view-switch{align-self:flex-start}
  .shell-week-navigation{width:100%}
  .shell-week-navigation label{flex:1}
  .shell-week-navigation select{width:100%}
  .shell-week-navigation>span{display:none}
  .shell-course-week-list[data-week-view-mode="focused"]>.platform-panel{padding:16px}
  .shell-course-week-list[data-week-view-mode="focused"] header{grid-template-columns:44px minmax(0,1fr)}
  .shell-course-week-list[data-week-view-mode="focused"] header>span{width:42px;height:42px;font-size:15px}
  .shell-course-week-list[data-week-view-mode="focused"] header h2{font-size:17px}
  .shell-week-card-actions{grid-column:2;align-items:flex-start;flex-direction:row}
  .shell-course-facts,.shell-course-grading-list{grid-template-columns:1fr}
  .shell-starter-guide>header,.shell-starter-hidden{align-items:stretch;flex-direction:column}
  .platform-section-head{align-items:stretch;flex-direction:column;gap:10px}
  .platform-search{width:100%}
  .platform-structure-title{align-items:flex-start;flex-direction:column}
  .platform-structure-open,
  .platform-structure-static{width:100%}
  .platform-department-card{flex-basis:100%}
  .platform-form-modal{padding:8px}
  .platform-form-modal[data-platform-window-mode="maximized"]{padding:0}
  .platform-form-modal[data-platform-window-mode="maximized"]>.fig-modal-inner{width:100vw;height:100dvh}
  .platform-form-modal[data-platform-window-mode="minimized"]{padding:8px}
  .platform-form-modal[data-platform-window-mode="minimized"]>.fig-modal-inner{width:calc(100vw - 16px)}
  .platform-form{width:calc(100vw - 16px);max-height:calc(100dvh - 16px)}
  .platform-form-modal[data-platform-window-mode="maximized"] .platform-form{width:100vw;max-height:100dvh;border-radius:0}
  .platform-form>header,
  .platform-form>footer,
  .platform-form-body{padding:14px}
  .platform-modal-window-controls{gap:3px}
  .platform-modal-window-controls .icon-btn{width:32px;height:32px;flex-basis:32px}
  .platform-form-grid{grid-template-columns:1fr}
  .platform-form-wide{grid-column:auto}
  .platform-entity-lifecycle{align-items:stretch;flex-direction:column}
  .platform-entity-lifecycle .btn-danger{align-self:flex-start}
  .platform-child-manager-summary{display:grid}
  .platform-child-manager-actions{flex-wrap:wrap}
  .platform-child-manager-list{grid-template-columns:1fr}
  .platform-date-format-grid{grid-template-columns:1fr}
  .platform-password-policy-grid{grid-template-columns:1fr}
  .platform-week-resource-policy-grid{grid-template-columns:1fr}
  .platform-week-resource-policy-grid>aside{grid-column:auto}
  .week-repository-toolbar{align-items:stretch;flex-direction:column}
  .week-repository-toolbar-actions{justify-content:flex-start}
  .week-repository-view-switch{align-self:flex-start}
  .week-repository-row{grid-template-columns:29px minmax(0,1fr)}
  .week-repository-row.learner-resource{grid-template-columns:29px minmax(0,1fr) 44px}
  [data-week-repository].is-selecting .week-repository-row.learner-resource{grid-template-columns:22px 29px minmax(0,1fr) 44px}
  .week-repository-folder-toggle{grid-template-columns:16px 29px minmax(0,1fr);gap:8px}
  .week-repository-learner-actions button{width:44px;height:44px}
  .week-repository-row-actions{grid-column:2;opacity:1}
  .week-repository-row-actions button{width:40px;height:40px}
  .week-repository-tree[data-repository-layout="tiles"]{grid-template-columns:1fr;padding:8px}
  .week-repository-tree[data-repository-layout="tiles"] .week-repository-children{grid-template-columns:1fr;padding:8px}
  .week-repository-tree[data-repository-layout="tiles"] .week-repository-row{grid-template-columns:1fr;min-height:146px}
  .week-repository-tree[data-repository-layout="tiles"] .week-repository-folder-toggle{grid-template-columns:1fr}
  .week-repository-tree[data-repository-layout="tiles"] .week-repository-row-actions{grid-column:1/-1}
  .week-repository-selection-toolbar{grid-template-columns:1fr auto}
  .week-repository-selection-count{justify-self:end}
  .week-repository-selection-toolbar>div{grid-column:1/-1}
  .week-repository-selection-toolbar>div button:last-child{flex:1;justify-content:center}
  .week-resource-preview-modal{width:calc(100vw - 16px);height:calc(100dvh - 16px)}
  .week-resource-preview-modal>footer{align-items:stretch;flex-direction:column}
  .week-resource-preview-modal>footer>a:first-child{margin-right:0}
  .week-resource-preview-stage{min-height:320px}
  .week-upload-metadata>section{grid-template-columns:1fr}
  .week-upload-metadata>section>label:last-child{grid-column:auto}
  .platform-settings-actions{position:static;align-items:stretch;flex-direction:column}
  .platform-settings-actions>div{display:grid;grid-template-columns:1fr}
.platform-settings-actions button{justify-content:center}
  .platform-staff-grid>article>footer{flex-direction:column}
  .platform-person-detail-identity{grid-template-columns:52px minmax(0,1fr)}
  .platform-person-detail-state{grid-column:2}
  .platform-person-detail-grid,
  .platform-person-detail-list{grid-template-columns:1fr}
  .platform-access-role-grid,.platform-account-state,.platform-scope-grid{grid-template-columns:1fr}
  .platform-editor-section-head,.platform-taxonomy-editor>section>header{align-items:stretch;flex-direction:column}
  .platform-affiliation-card>header{flex-direction:column}
  .platform-affiliation-card>div{grid-template-columns:1fr}
  .platform-appointment-row{grid-template-columns:1fr 1fr}
  .platform-appointment-row>label:first-of-type,.platform-appointment-description{grid-column:1/-1}
  .platform-appointment-row>.platform-check{grid-column:1}
  .platform-assignment-list>label{grid-template-columns:20px minmax(0,1fr)}
  .platform-assignment-list>label select{grid-column:2}
  .course-shell-week-editor-head>div:last-child{align-items:stretch;flex-direction:column}
  .course-shell-week-editor-head>div:last-child>label{width:100%}
  .course-shell-weeks>article{grid-template-columns:38px minmax(0,1fr)}
  .course-shell-week-fields{grid-template-columns:1fr}
  .course-shell-week-fields>label:last-child{grid-column:auto}
  .course-shell-week-menu{grid-column:1/-1}
  .course-shell-week-menu-options{grid-template-columns:1fr}
  .course-shell-week-menu-body>footer{align-items:flex-start;flex-direction:column}
  .course-shell-week-menu-body>footer>div{width:100%}
  .course-shell-week-menu-body>footer .btn-ghost{flex:1;justify-content:center}
}
/* Reusable course-companion blueprint previews */
.platform-blueprint-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 20px;
  margin-bottom: 22px;
}
.platform-blueprint-card {
  overflow: hidden;
  border: 1px solid var(--line, #d5d9df);
  border-radius: 18px;
  background: #fff;
  box-shadow: 0 14px 34px rgba(24, 46, 77, .08);
}
.platform-blueprint-card > header {
  display: flex;
  gap: 16px;
  align-items: flex-start;
  padding: 22px;
}
.platform-blueprint-card > header > div { flex: 1; }
.platform-blueprint-card > header h2 { margin: 3px 0 6px; }
.platform-blueprint-card > header p { margin: 0; color: var(--muted, #5e6673); }
.platform-blueprint-card > header > em {
  padding: 5px 9px;
  border-radius: 999px;
  background: var(--blueprint-soft);
  color: var(--blueprint-accent);
  font-size: .75rem;
  font-style: normal;
  font-weight: 800;
  text-transform: uppercase;
}
.platform-blueprint-icon {
  display: grid;
  width: 48px;
  height: 48px;
  place-items: center;
  flex: 0 0 48px;
  border-radius: 14px;
  background: var(--blueprint-accent);
  color: #fff;
  font-size: 1.45rem;
}
.platform-blueprint-preview {
  display: grid;
  grid-template-columns: 150px 1fr;
  min-height: 190px;
  border-block: 1px solid var(--line, #d5d9df);
  background: #f8fafc;
}
.platform-blueprint-preview nav {
  display: flex;
  flex-direction: column;
  gap: 7px;
  padding: 16px 12px;
  background: #fff;
  border-right: 1px solid var(--line, #d5d9df);
}
.platform-blueprint-preview nav span {
  padding: 9px 10px;
  border-radius: 9px;
  color: #596273;
  font-size: .82rem;
  font-weight: 700;
}
.platform-blueprint-preview nav span.active {
  color: var(--blueprint-accent);
  background: var(--blueprint-soft);
}
.platform-blueprint-preview > div { padding: 28px; }
.platform-blueprint-preview > div p { margin: 5px 0 22px; color: #6b7280; }
.platform-blueprint-preview button {
  padding: 9px 13px;
  border: 2px solid var(--blueprint-accent);
  border-radius: 9px;
  background: var(--blueprint-accent);
  color: #fff;
  font: inherit;
  font-weight: 800;
}
.platform-blueprint-preview button.outline,
.platform-blueprint-preview button.secondary {
  background: #fff;
  color: var(--blueprint-accent);
}
.platform-blueprint-preview button.secondary { margin-left: 7px; }
.platform-blueprint-card > footer {
  display: flex;
  gap: 15px;
  align-items: center;
  padding: 15px 20px;
  color: #606a78;
  font-size: .86rem;
}
.platform-blueprint-card > footer span:first-child { margin-right: auto; }
.platform-blueprint-card code { word-break: break-word; }
@media (max-width: 980px) {
  .platform-blueprint-grid { grid-template-columns: 1fr; }
}
@media (max-width: 620px) {
  .platform-blueprint-preview { grid-template-columns: 1fr; }
  .platform-blueprint-preview nav {
    flex-direction: row;
    overflow-x: auto;
    border-right: 0;
    border-bottom: 1px solid var(--line, #d5d9df);
  }
  .platform-blueprint-card > footer { flex-wrap: wrap; }
}

/* Course-qualified professor gradebook */
.course-gradebook { padding: 0; overflow: hidden; }
.gradebook-kpis{
  gap:8px;
  margin-bottom:10px;
}
.gradebook-kpis .platform-kpi{
  min-height:0;
  gap:9px;
  padding:10px 12px;
  border-top-width:2px;
}
.gradebook-kpis .platform-kpi>span{
  width:34px;
  height:34px;
  flex-basis:34px;
  font-size:18px;
}
.gradebook-kpis .platform-kpi strong{font-size:20px}
.gradebook-kpis .platform-kpi b{
  margin-top:3px;
  font-size:11px;
}
.gradebook-kpis .platform-kpi small{
  margin-top:1px;
  font-size:9.5px;
}
.course-gradebook-toolbar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  padding: 13px 16px;
  border-bottom: 1px solid var(--line, #d5d9df);
}
.course-gradebook-toolbar .eyebrow{font-size:.66rem}
.course-gradebook-toolbar h2{
  margin:2px 0;
  font-size:1.08rem;
}
.course-gradebook-toolbar p{
  margin:0;
  color:#687181;
  font-size:.75rem;
}
.course-gradebook-toolbar > div:last-child {
  display: flex;
  align-items: center;
  gap: 8px;
}
.course-gradebook-toolbar label {
  display: grid;
  gap: 6px;
  color: #4d5665;
  font-size: .78rem;
  font-weight: 800;
}
.course-gradebook-toolbar input,
.course-gradebook-toolbar select {
  min-height: 36px;
  border: 1.5px solid var(--line, #cfd5dc);
  border-radius: 8px;
  background: #fff;
  color: #16191e;
  font: inherit;
  font-size:.78rem;
}
.gradebook-search {
  position: relative;
  min-width:min(280px,36vw);
}
.gradebook-search i {
  position: absolute;
  z-index: 1;
  left:11px;
  bottom:10px;
  color: #657080;
  font-size:.9rem;
}
.gradebook-search input{width:100%;padding:7px 11px 7px 32px}
.course-gradebook-toolbar select{padding:7px 31px 7px 10px}
.course-gradebook-scroll {
  width: 100%;
  overflow: auto;
  overscroll-behavior-inline: contain;
  scrollbar-gutter: stable;
}
.course-gradebook-table {
  width:max(100%,760px);
  border-collapse: separate;
  border-spacing: 0;
  table-layout: auto;
  font-size:.86rem;
}
.course-gradebook-table th,
.course-gradebook-table td {
  min-width:118px;
  padding: 0;
  border-right: 1px solid var(--line, #d5d9df);
  border-bottom: 1px solid var(--line, #d5d9df);
  background: #fff;
  text-align: center;
  vertical-align: middle;
}
.course-gradebook-table thead th {
  position: sticky;
  top: 0;
  z-index: 3;
  height:58px;
  background: #f5f6f8;
}
.course-gradebook-table thead th > span {
  display: grid;
  justify-items: center;
  gap:1px;
  padding:7px 8px;
}
.course-gradebook-table thead i{color:var(--accent,#1f67ad);font-size:.95rem}
.course-gradebook-table thead b{font-size:.76rem;line-height:1.18}
.course-gradebook-table thead small{color:#697283;font-size:.66rem;font-weight:700}
.course-gradebook-table .student-column {
  position: sticky;
  left: 0;
  z-index: 2;
  min-width:230px;
  max-width:230px;
  text-align: left;
  box-shadow: 5px 0 10px rgba(16, 24, 40, .045);
}
.course-gradebook-table thead .student-column { z-index: 5; }
.course-gradebook-table thead .student-column > span{justify-items:start;padding-left:14px}
.course-gradebook-table .total-column {
  min-width:105px;
  background: #f8fafc;
}
.gradebook-student {
  position: relative;
  display: grid;
  gap:1px;
  min-height:54px;
  align-content: center;
  padding:7px 61px 7px 14px;
  background: #fff;
}
.gradebook-student b{font-size:.86rem;line-height:1.18}
.gradebook-student small {
  color: #657080;
  font-size:.66rem;
  font-weight: 600;
  line-height: 1.35;
}
.gradebook-student em {
  position: absolute;
  top:50%;
  right:8px;
  padding:3px 5px;
  border-radius: 999px;
  background: #edf1f5;
  color: #536071;
  font-size:.56rem;
  font-style: normal;
  font-weight: 900;
  letter-spacing: .04em;
  text-transform: uppercase;
  transform:translateY(-50%);
}
.gradebook-student em.active { background: #dff3e8; color: #176446; }
.gradebook-cell {
  position: relative;
  display: grid;
  place-items: center;
  width: 100%;
  min-height:54px;
  border: 0;
  background: transparent;
  color: inherit;
  cursor: pointer;
}
.gradebook-cell > i {
  position: absolute;
  top:6px;
  right:6px;
  color: #8a94a3;
  opacity: 0;
  transition: opacity .15s ease;
}
.gradebook-cell:hover { background: color-mix(in srgb, var(--accent, #1f67ad) 6%, white); }
.gradebook-cell:hover > i,
.gradebook-cell:focus-visible > i { opacity: 1; }
.gradebook-cell:focus-visible { outline: 3px solid color-mix(in srgb, var(--accent, #1f67ad) 35%, transparent); outline-offset: -3px; }
.gradebook-result,
.gradebook-total { display: grid; justify-items: center; gap: 2px; }
.gradebook-result b,
.gradebook-total b{font-size:.92rem}
.gradebook-result small,
.gradebook-total small {
  color: #697283;
  font-size:.57rem;
  font-weight: 800;
  letter-spacing: .03em;
  text-transform: uppercase;
}
.gradebook-result.pending { color: #85909f; }
.gradebook-result.absent { color: #a33333; }
.gradebook-result.exempt { color: #687181; }
.gradebook-result.graded b,
.gradebook-total.complete b { color: #176446; }
.gradebook-total.provisional b { color: var(--accent, #1f67ad); }
.course-gradebook-legend {
  display: flex;
  justify-content: space-between;
  gap:16px;
  padding:9px 14px;
  background: #f8fafc;
  color: #616c7b;
  font-size:.69rem;
  line-height:1.35;
}
.course-gradebook-legend span { display: flex; gap: 7px; align-items: flex-start; }
.course-gradebook-legend i { margin-top: 2px; color: var(--accent, #1f67ad); }
.gradebook-editor { display: grid; gap: 20px; }
.gradebook-editor-context {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 12px;
}
.gradebook-editor-context > span {
  display: flex;
  gap: 12px;
  align-items: center;
  padding: 14px;
  border: 1px solid var(--line, #d5d9df);
  border-radius: 12px;
  background: #f8fafc;
}
.gradebook-editor-context > span > i {
  display: grid;
  place-items: center;
  width: 38px;
  height: 38px;
  border-radius: 9px;
  background: color-mix(in srgb, var(--accent, #1f67ad) 12%, white);
  color: var(--accent, #1f67ad);
  font-size: 1.2rem;
}
.gradebook-editor-context span span { display: grid; gap: 2px; }
.gradebook-editor-context small { color: #687181; }
@media (max-width: 860px) {
  .course-gradebook-toolbar { align-items: stretch; flex-direction: column; }
  .course-gradebook-toolbar > div:last-child { align-items: stretch; flex-direction: column; }
  .gradebook-search { min-width: 0; width: 100%; }
  .course-gradebook-toolbar select { width: 100%; }
  .course-gradebook-legend { flex-direction: column; }
  .platform-course-policy-grid{grid-template-columns:1fr}
  .platform-course-policy-card:last-child:nth-child(odd){grid-column:auto}
  .platform-course-policy-editor>header,
  .platform-course-policy-summary>header{flex-direction:column}
}
@media (max-width: 620px) {
  .gradebook-editor-context { grid-template-columns: 1fr; }
  .course-gradebook-table .student-column { min-width: 225px; max-width: 225px; }
  .gradebook-student { padding-left: 14px; }
}
/* Course attendance */
.attendance-policy-editor{display:grid;grid-template-columns:minmax(280px,1fr) minmax(220px,.55fr);gap:18px;align-items:end}
.attendance-policy-editor>div:first-child{grid-column:1/-1}
.attendance-policy-editor .platform-check{align-self:stretch}
.attendance-kpis{grid-template-columns:repeat(3,minmax(0,1fr))}
.attendance-register{padding:0;overflow:hidden}
.attendance-week-nav{display:grid;grid-template-columns:auto minmax(260px,1fr) auto minmax(220px,.8fr);align-items:end;gap:12px;padding:22px;border-bottom:1px solid var(--line)}
.attendance-week-nav>button{width:46px;height:46px;border:1px solid var(--line);border-radius:10px;background:var(--surface);font-size:20px}
.attendance-week-nav label span,.attendance-toolbar label>span,.student-attendance-course>span{display:block;margin-bottom:6px;font-size:12px;font-weight:800;letter-spacing:.06em;text-transform:uppercase}
.attendance-week-nav select,.attendance-toolbar select,.attendance-toolbar input,.attendance-policy-editor input,.student-attendance-course select{width:100%;min-height:46px;border:1px solid var(--line);border-radius:9px;background:var(--surface);padding:9px 12px;color:inherit}
#attendanceWeekMeta{display:flex;min-height:46px;flex-direction:column;justify-content:center}
#attendanceWeekMeta small{color:var(--muted);margin-top:3px}
.attendance-toolbar{display:grid;grid-template-columns:minmax(280px,1.5fr) repeat(3,minmax(140px,.65fr)) auto auto;gap:12px;align-items:end;padding:18px 22px;background:var(--soft)}
.attendance-toolbar .platform-search{margin:0}
.attendance-bulk{display:flex;align-items:center;gap:10px;padding:12px 22px;border-bottom:1px solid var(--line)}
.attendance-bulk span{margin-left:auto;color:var(--muted)}
.attendance-table-wrap{width:100%;overflow:auto}
.attendance-table{width:100%;border-collapse:collapse;min-width:930px}
.attendance-table th{padding:13px 15px;background:var(--soft);border-bottom:1px solid var(--line);font-size:12px;letter-spacing:.08em;text-align:left;text-transform:uppercase}
.attendance-table td{padding:13px 15px;border-bottom:1px solid var(--line);vertical-align:middle}
.attendance-table td:first-child b,.attendance-table td:first-child small{display:block}
.attendance-table td:first-child small{margin-top:3px;color:var(--muted)}
.attendance-table input[data-attendance-note]{width:100%;min-width:170px;border:1px solid var(--line);border-radius:8px;padding:9px}
.attendance-status-control{display:inline-flex;border:1px solid var(--line);border-radius:9px;overflow:hidden;white-space:nowrap}
.attendance-status-control button{border:0;border-right:1px solid var(--line);background:var(--surface);padding:8px 10px;color:inherit}
.attendance-status-control button:last-child{border-right:0}
.attendance-status-control .present.active,.attendance-status-badge.present{background:#d8f3e5;color:#11613e}
.attendance-status-control .late.active,.attendance-status-badge.late{background:#fff0c7;color:#7b5200}
.attendance-status-control .absent.active,.attendance-status-badge.absent{background:#fde1df;color:#9a2922}
.attendance-status-control .unrecorded.active,.attendance-status-badge.unrecorded{background:#e9edf2;color:#4d5966}
.attendance-enrollment,.attendance-status-badge{display:inline-flex;border-radius:999px;padding:5px 9px;font-size:12px;font-weight:800;text-transform:capitalize}
.attendance-enrollment.active{background:#d8f3e5;color:#11613e}
.attendance-enrollment.passive{background:#e9edf2;color:#4d5966}
.attendance-register>.platform-directory-footer{padding:16px 22px;border-top:1px solid var(--line)}
.student-attendance-course{align-self:center;min-width:min(420px,100%)}
.student-attendance-table td:nth-child(3){white-space:nowrap}
@media (max-width:1100px){
  .attendance-toolbar{grid-template-columns:1fr 1fr}
  .attendance-week-nav{grid-template-columns:auto 1fr auto}
  #attendanceWeekMeta{grid-column:1/-1}
}
@media (max-width:700px){
  .attendance-policy-editor,.attendance-kpis,.attendance-toolbar{grid-template-columns:1fr}
  .attendance-week-nav{padding:16px}
  .attendance-bulk{align-items:stretch;flex-direction:column}
  .attendance-bulk span{margin-left:0}
}
/* Career Administration: course-scoped question authoring and privacy-safe trends */
.career-admin-workspace{max-width:none}
.career-admin-head{display:grid;grid-template-columns:minmax(300px,1fr) minmax(360px,620px);align-items:end;gap:24px;padding-bottom:24px;border-bottom:1px solid var(--border)}
.career-admin-head>div:first-child,.career-admin-head-actions,.career-admin-selector{min-width:0}
.career-admin-head h1{max-width:720px;margin:5px 0 8px;font-size:clamp(34px,3.2vw,48px);line-height:1.02;letter-spacing:-.045em;text-wrap:balance}
.career-admin-head p{max-width:850px;margin:0;color:var(--text-muted);font-size:17px}
.career-admin-head-actions{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:flex-end;gap:10px;min-width:0}
.career-admin-selector{display:grid;gap:7px;width:100%;min-width:0;font-weight:700}
.career-admin-selector span{font-size:12px;text-transform:uppercase;letter-spacing:.1em;color:var(--text-muted)}
.career-admin-selector select{width:100%;min-width:0;min-height:50px;border:1px solid var(--border);border-radius:12px;background:var(--surface);padding:0 14px;font:inherit;color:var(--text);text-overflow:ellipsis}
.career-riasec-guide-button{display:flex;align-items:center;gap:10px;min-height:50px;padding:7px 13px;border:1px solid var(--accent-border);border-radius:12px;background:var(--accent-bg);color:var(--accent);cursor:pointer;text-align:left}
.career-riasec-guide-button>i{font-size:24px}.career-riasec-guide-button span{display:grid;gap:2px}.career-riasec-guide-button b{font-size:13px}.career-riasec-guide-button small{font-size:10px;white-space:nowrap}
.career-admin-riasec-strip{margin:18px 0 0;border:1px solid var(--border);border-radius:14px;background:var(--surface);overflow:hidden}
.career-admin-riasec-strip>header{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:11px 14px;border-bottom:1px solid var(--border);background:var(--surface-soft)}
.career-admin-riasec-strip>header div{display:flex;align-items:baseline;gap:9px}.career-admin-riasec-strip>header span{color:var(--text-muted);font-size:10px;font-weight:900;letter-spacing:.09em;text-transform:uppercase}.career-admin-riasec-strip>header b{font-size:13px}
.career-admin-riasec-strip>header button{display:flex;align-items:center;gap:6px;padding:5px 8px;border:0;background:transparent;color:var(--accent);font-weight:800;cursor:pointer}
.career-admin-riasec-strip>div{display:grid;grid-template-columns:repeat(3,minmax(0,1fr))}
.career-admin-riasec-strip>div>button{display:grid;grid-template-columns:36px minmax(0,1fr);align-items:center;gap:9px;min-width:0;padding:10px 12px;border:0;border-right:1px solid var(--border);border-bottom:1px solid var(--border);background:var(--surface);color:var(--text);cursor:pointer;text-align:left}
.career-admin-riasec-strip>div>button:nth-child(3n){border-right:0}.career-admin-riasec-strip>div>button:nth-child(n+4){border-bottom:0}.career-admin-riasec-strip>div>button:hover,.career-admin-riasec-strip>div>button:focus-visible{background:color-mix(in srgb,var(--riasec-color) 8%,var(--surface));outline:0}
.career-admin-riasec-strip>div>button>strong{display:grid;place-items:center;width:34px;height:34px;border-radius:10px;background:var(--riasec-color);color:#fff;font-size:16px}
.career-admin-riasec-strip>div>button span{display:grid;min-width:0;gap:2px}.career-admin-riasec-strip>div>button b{font-size:12px}.career-admin-riasec-strip>div>button small{overflow:hidden;color:var(--text-muted);font-size:9px;text-overflow:ellipsis;white-space:nowrap}
.career-admin-privacy{display:flex;align-items:center;gap:16px;margin:22px 0;padding:16px 18px;border:1px solid #9fd6c8;border-radius:14px;background:#edf9f5}
.career-admin-privacy>i{display:grid;place-items:center;width:44px;height:44px;border-radius:12px;background:#d5f1e8;color:#087f69;font-size:23px}
.career-admin-privacy div{flex:1}.career-admin-privacy p{margin:3px 0 0;color:#385b54}
.career-admin-privacy>span{white-space:nowrap;border:1px solid #9fd6c8;border-radius:999px;padding:7px 11px;color:#087f69;font-weight:800;font-size:12px}
.career-admin-course-context,.career-question-studio,.career-evolution-panel,.career-admin-roster{margin-top:24px;border:1px solid var(--border);border-radius:16px;background:var(--surface);overflow:hidden}
.career-admin-course-context>header,.career-evolution-panel>header,.career-admin-roster>header{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:24px 26px;border-bottom:1px solid var(--border)}
.career-admin-course-context h2,.career-evolution-panel h2,.career-admin-roster h2{margin:5px 0 3px}
.career-admin-course-context header p,.career-evolution-panel header p{margin:0;color:var(--text-muted)}
.career-admin-readonly-grid{display:grid;grid-template-columns:minmax(300px,.8fr) minmax(420px,1.2fr)}
.career-admin-readonly-grid>article{padding:26px}.career-admin-readonly-grid>article+article{border-left:1px solid var(--border)}
.career-admin-readonly-grid>article>span{display:block;margin-bottom:14px;color:var(--accent);font-size:12px;font-weight:900;letter-spacing:.1em;text-transform:uppercase}
.career-admin-week-list{display:grid;gap:0;margin:0;padding:0;list-style:none}
.career-admin-week-list li{display:grid;grid-template-columns:65px 1fr auto;align-items:center;gap:12px;padding:11px 0;border-bottom:1px solid var(--border)}
.career-admin-week-list li>b{color:var(--accent);font-size:12px}.career-admin-week-list li span{display:grid;gap:2px}.career-admin-week-list li small{color:var(--text-muted)}
.career-admin-week-list em{border-radius:999px;padding:5px 8px;font-size:11px;font-style:normal;font-weight:800}.career-admin-week-list em.ready{background:#dff5ea;color:#0a6b50}.career-admin-week-list em.missing{background:#f3f0eb;color:#756d62}
.career-question-studio{display:grid;grid-template-columns:minmax(270px,310px) minmax(0,1fr)}
.career-question-studio>*,.career-question-studio form,.career-question-studio form>header,.career-question-studio aside{min-width:0}
.career-question-studio>aside{padding:24px;border-right:1px solid var(--border);background:color-mix(in srgb,var(--surface) 92%,var(--accent) 8%)}
.career-question-studio aside>label{display:grid;gap:7px;font-weight:800}.career-question-studio aside select{width:100%;min-width:0;min-height:48px;border:1px solid var(--border);border-radius:10px;padding:0 10px;background:var(--surface);color:var(--text);font:inherit;text-overflow:ellipsis}
.career-question-context{margin:22px 0;padding-top:22px;border-top:1px solid var(--border)}.career-question-context>span{color:var(--accent);font-size:11px;font-weight:900;text-transform:uppercase;letter-spacing:.1em}
.career-question-context h2{font-size:23px;margin:7px 0}.career-question-context p,.career-question-context li{color:var(--text-muted);line-height:1.5}.career-question-context ul{padding-left:19px}
.career-question-rules{padding:16px;border:1px solid #e4c77c;border-radius:12px;background:#fff8e5}.career-question-rules p{margin:6px 0;color:#66521c;font-size:13px;line-height:1.45}
#careerQuestionForm>header{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:end;justify-content:space-between;gap:12px 20px;padding:24px 26px;border-bottom:1px solid var(--border)}
#careerQuestionForm>header h2{margin:5px 0}#careerQuestionForm>header p{max-width:720px;margin:0;color:var(--text-muted);overflow-wrap:anywhere}
#careerQuestionForm>header label{display:grid;gap:6px;font-weight:800;white-space:nowrap}#careerQuestionForm>header select{min-height:45px;border:1px solid var(--border);border-radius:10px;background:var(--surface);padding:0 10px}
.career-question-grid{display:grid;gap:12px;padding:24px 26px}
.career-question-row{display:grid;grid-template-columns:minmax(112px,140px) minmax(0,1fr);align-items:stretch;border:1px solid var(--border);border-radius:12px;overflow:hidden}
.career-question-row>span{display:flex;align-items:center;gap:10px;padding:12px 14px;border-left:5px solid var(--riasec-color);background:color-mix(in srgb,var(--riasec-color) 8%,var(--surface))}
.career-question-row>span b{display:grid;flex:0 0 32px;place-items:center;width:32px;min-width:32px;height:32px;aspect-ratio:1;border-radius:9px;background:var(--riasec-color);color:#fff;line-height:1}.career-question-row>span em{min-width:0;font-size:12px;font-style:normal;font-weight:800}
.career-question-row textarea{width:100%;min-width:0;min-height:70px;padding:13px;border:0;border-left:1px solid var(--border);border-radius:0;background:var(--surface);color:var(--text);font:inherit;resize:vertical}
#careerQuestionForm>footer{display:flex;align-items:center;justify-content:flex-end;gap:18px;padding:18px 26px;border-top:1px solid var(--border);background:var(--surface-soft)}
#careerQuestionForm>footer>span{margin-right:auto;color:var(--text-muted);font-size:13px}
.career-evolution-legend{display:flex;flex-wrap:wrap;gap:10px;padding:16px 24px;border-bottom:1px solid var(--border)}
.career-evolution-legend span{display:flex;align-items:center;gap:6px;font-size:12px}.career-evolution-legend i{width:10px;height:10px;border-radius:50%;background:var(--riasec-color)}
.career-evolution-table{display:grid}.career-evolution-row{display:grid;grid-template-columns:minmax(220px,1.2fr) 90px minmax(260px,1fr) 110px;align-items:center;gap:18px;padding:14px 24px;border-bottom:1px solid var(--border)}
.career-evolution-row.head{background:var(--surface-soft);font-size:11px;text-transform:uppercase;letter-spacing:.08em;color:var(--text-muted)}
.career-evolution-row>b{display:grid;grid-template-columns:42px 1fr;align-items:center}.career-evolution-row>b small{color:var(--accent)}
.career-evolution-row>em{font-style:normal;font-size:18px;font-weight:900;letter-spacing:.12em}
.career-evolution-leading{display:flex;gap:4px;letter-spacing:0!important}.career-evolution-leading span{display:grid;place-items:center;width:27px;height:27px;border-radius:8px;background:var(--riasec-color);color:#fff;font-size:12px}
.career-evolution-bars{display:flex;height:26px;border-radius:8px;overflow:hidden;background:var(--surface-soft)}.career-evolution-bars span{display:block;background:var(--riasec-color);min-width:1px}.career-evolution-bars small{margin:auto;color:var(--text-muted)}
.career-student-directory-controls{display:grid;grid-template-columns:minmax(240px,1.5fr) repeat(4,minmax(150px,1fr));gap:12px;padding:16px 24px;border-bottom:1px solid var(--border);background:var(--surface-soft)}
.career-student-directory-controls label{display:grid;gap:6px;min-width:0}.career-student-directory-controls label>span{color:var(--text-muted);font-size:10px;font-weight:900;letter-spacing:.08em;text-transform:uppercase}
.career-student-directory-controls select,.career-student-search>div{width:100%;min-width:0;min-height:45px;border:1px solid var(--border);border-radius:10px;background:var(--surface);color:var(--text);font:inherit}
.career-student-directory-controls select{padding:0 10px;text-overflow:ellipsis}.career-student-search>div{display:flex;align-items:center;gap:8px;padding:0 11px}.career-student-search input{width:100%;min-width:0;min-height:43px;border:0;background:transparent;color:var(--text);font:inherit}
.career-student-table td>.career-student-affiliation{display:grid;gap:2px;min-width:180px}.career-student-affiliation b,.career-student-affiliation small{display:block}.career-student-affiliation small{color:var(--text-muted);font-size:10px}.career-student-table td{vertical-align:middle}
.career-interest-card{padding:0!important;overflow:visible}.career-interest-card>.fb-head{padding:22px 24px}.career-interest-card>.cp-panel{margin:0 24px 20px}
.career-interest-scale-legend{display:grid;grid-template-columns:minmax(190px,.8fr) minmax(430px,1.4fr) auto;align-items:center;gap:18px;margin:0 24px 8px;padding:12px 14px;border:1px solid var(--border);border-radius:13px;background:color-mix(in srgb,var(--surface-soft) 82%,var(--accent-bg))}
.career-interest-scale-copy{display:grid;gap:2px}.career-interest-scale-copy>span{color:var(--accent);font-size:9px;font-weight:900;letter-spacing:.09em;text-transform:uppercase}.career-interest-scale-copy>b{display:flex;align-items:center;gap:6px;font-size:12px}.career-interest-scale-copy i{color:var(--text-muted)}
.career-interest-scale-items{display:grid;grid-template-columns:repeat(5,minmax(70px,1fr));gap:5px}.career-interest-scale-item{display:grid;place-items:center;gap:1px;min-width:0;padding:5px 3px;border-radius:9px;background:var(--surface);text-align:center}.career-interest-scale-item>b{font-size:23px;line-height:1}.career-interest-scale-item>small{overflow:hidden;width:100%;color:var(--text-muted);font-size:8px;font-weight:700;text-overflow:ellipsis;white-space:nowrap}
.career-interest-scale-legend>strong{justify-self:end;padding:5px 9px;border:1px dashed var(--border-strong);border-radius:999px;color:var(--text-muted);font-size:10px;white-space:nowrap}.career-interest-scale-legend>strong.complete{border-color:#1D9E75;border-style:solid;background:color-mix(in srgb,#1D9E75 12%,var(--surface));color:#087c64}
.career-interest-question{position:relative;margin:0;padding:0 24px;border:0}.career-interest-question-inner{display:grid;grid-template-columns:minmax(320px,1fr) auto;align-items:center;gap:20px;padding:13px 4px;border-top:1px solid var(--border);transition:background .16s ease,transform .16s ease}
.career-interest-question:first-of-type .career-interest-question-inner{border-top:0}.career-interest-question:hover .career-interest-question-inner{background:color-mix(in srgb,var(--accent-bg) 34%,transparent);transform:translateX(2px)}
.career-interest-question.answered .career-interest-question-inner{background:color-mix(in srgb,#1D9E75 4%,transparent)}
.career-interest-prompt{display:grid;grid-template-columns:34px minmax(0,1fr);align-items:center;gap:11px;min-width:0}.career-interest-prompt>span{display:grid;place-items:center;width:34px;height:34px;border-radius:10px;background:var(--accent-bg);color:var(--accent);transition:transform .2s ease,background .2s ease,color .2s ease}.career-interest-prompt>span i{font-size:17px}.career-interest-question.answered .career-interest-prompt>span{background:#1D9E75;color:#fff;animation:fbicon .38s ease}
.career-interest-prompt>div{display:grid;gap:3px;min-width:0}.career-interest-prompt b{font-size:14px;line-height:1.4}.career-interest-prompt small{color:var(--text-muted);font-size:10px;font-weight:600}.career-interest-prompt small.show{color:#087c64;font-weight:800;text-transform:uppercase;letter-spacing:.03em}
.career-interest-choices{display:flex;align-items:center;justify-content:flex-end;gap:7px}.career-interest-choice-label{position:relative;display:block;cursor:pointer}.career-interest-choice-label input{position:absolute;width:1px;height:1px;overflow:hidden;opacity:0;pointer-events:none}
.career-interest-choice{position:relative;display:grid;place-items:center;width:49px;height:49px;border:1.5px solid var(--border-strong);border-radius:13px;background:var(--surface);box-shadow:0 1px 2px rgba(0,0,0,.03);transition:transform .12s ease,box-shadow .12s ease,border-color .12s ease,background .12s ease}.career-interest-choice>b{font-size:23px;line-height:1;filter:grayscale(.85);opacity:.58;transition:filter .12s ease,opacity .12s ease,transform .12s ease}
.career-interest-choice::after{content:attr(data-hint);position:absolute;z-index:8;bottom:calc(100% + 8px);left:50%;width:max-content;max-width:180px;padding:5px 8px;border-radius:7px;background:#202b34;color:#fff;font-size:9px;font-weight:700;line-height:1.25;opacity:0;pointer-events:none;transform:translate(-50%,4px);transition:opacity .12s ease,transform .12s ease;white-space:nowrap}.career-interest-choice::before{content:"";position:absolute;z-index:9;bottom:calc(100% + 3px);left:50%;border:5px solid transparent;border-top-color:#202b34;opacity:0;pointer-events:none;transform:translateX(-50%);transition:opacity .12s ease}
.career-interest-choice-label:last-child .career-interest-choice::after{right:0;left:auto;transform:translateY(4px)}.career-interest-choice-label:last-child .career-interest-choice::before{right:17px;left:auto;transform:none}
@media(hover:hover){.career-interest-choice-label:hover .career-interest-choice{z-index:7;transform:translateY(-4px) scale(1.08);border-color:transparent;box-shadow:0 8px 18px rgba(0,0,0,.15)}.career-interest-choice-label:hover .career-interest-choice>b{filter:none;opacity:1;transform:scale(1.16)}.career-interest-choice-label:hover .career-interest-choice::after{opacity:1;transform:translate(-50%,0)}.career-interest-choice-label:last-child:hover .career-interest-choice::after{transform:none}.career-interest-choice-label:hover .career-interest-choice::before{opacity:1}}
.career-interest-choice-label input:focus-visible+.career-interest-choice{outline:2px solid var(--accent);outline-offset:3px}.career-interest-choice-label input:checked+.career-interest-choice{border-color:transparent;box-shadow:0 5px 14px rgba(0,0,0,.18)}.career-interest-choice-label input:checked+.career-interest-choice>b{filter:none;opacity:1;transform:scale(1.08)}
.career-interest-choice-label input:checked+.career-interest-choice-v1{background:#D85A30}.career-interest-choice-label input:checked+.career-interest-choice-v2{background:#DE8A3B}.career-interest-choice-label input:checked+.career-interest-choice-v3{background:#C9A227}.career-interest-choice-label input:checked+.career-interest-choice-v4{background:#7CB342}.career-interest-choice-label input:checked+.career-interest-choice-v5{background:#1D9E75}
.career-interest-choice.pop{animation:fbpop .3s ease}
@media(prefers-reduced-motion:reduce){.career-interest-choice.pop,.career-interest-question.answered .career-interest-prompt>span{animation:none}.career-interest-choice,.career-interest-choice>b,.career-interest-question-inner{transition:none}}
.career-interest-result{display:flex;align-items:center;gap:13px;margin:18px 24px;padding:14px 16px;border:1px solid var(--accent-border);border-radius:12px;background:var(--accent-bg);color:var(--accent)}
.career-interest-result>i{font-size:26px}.career-interest-result span{display:grid;grid-template-columns:auto auto 1fr;align-items:baseline;gap:12px}.career-interest-result b{font-size:26px;letter-spacing:.13em}.career-interest-result em{color:var(--text-muted);font-style:normal}
.career-interest-card .fb-actions{padding:18px 24px;border-top:1px solid var(--border)}
.career-weekly-history{margin:24px 0}.career-weekly-history>.career-section-heading{margin-bottom:12px}.career-weekly-history>div{display:flex;gap:9px;overflow:auto;padding-bottom:6px}
.career-weekly-history article{display:grid;grid-template-columns:1fr auto;grid-template-rows:auto 74px;min-width:115px;padding:12px;border:1px solid var(--border);border-radius:11px;background:var(--surface)}.career-weekly-history article>span{font-size:11px;color:var(--text-muted)}.career-weekly-history article>b{letter-spacing:.1em}.career-weekly-history article>div{grid-column:1/-1;display:flex;align-items:flex-end;gap:3px}.career-weekly-history article i{flex:1;max-height:100%;min-height:2px;background:var(--riasec-color);border-radius:3px 3px 0 0}
.career-riasec-guide{display:grid;gap:20px}
.career-riasec-guide-intro{display:grid;grid-template-columns:58px 1fr;align-items:center;gap:16px;padding:18px;border:1px solid var(--accent-border);border-radius:14px;background:var(--accent-bg)}
.career-riasec-guide-mark{display:grid;place-items:center;width:56px;height:56px;border-radius:16px;background:var(--accent);color:#fff;font-size:30px}.career-riasec-guide-intro h3{margin:4px 0 5px;font-size:22px}.career-riasec-guide-intro p{max-width:900px;margin:0;color:var(--text-secondary);line-height:1.5}
.career-riasec-guide-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.career-riasec-guide-grid article{padding:16px;border:1px solid var(--border);border-top:5px solid var(--riasec-color);border-radius:13px;background:var(--surface)}.career-riasec-guide-grid article.is-focus{box-shadow:0 0 0 3px color-mix(in srgb,var(--riasec-color) 24%,transparent)}
.career-riasec-guide-grid article>header{display:flex;align-items:center;gap:11px}.career-riasec-guide-grid article>header>strong{display:grid;place-items:center;width:42px;height:42px;border-radius:12px;background:var(--riasec-color);color:#fff;font-size:19px}.career-riasec-guide-grid article>header div{display:grid;gap:2px}.career-riasec-guide-grid h4{margin:0;font-size:16px}.career-riasec-guide-grid header span{color:var(--text-muted);font-size:10px}.career-riasec-guide-grid article>p{margin:11px 0 7px;line-height:1.45}.career-riasec-guide-grid ul{display:flex;flex-wrap:wrap;gap:6px;margin:0;padding:0;list-style:none}.career-riasec-guide-grid li{padding:4px 7px;border-radius:999px;background:color-mix(in srgb,var(--riasec-color) 10%,var(--surface));color:var(--text-secondary);font-size:10px}.career-riasec-guide-grid blockquote{display:grid;gap:4px;margin:12px 0 0;padding:10px 11px;border-left:3px solid var(--riasec-color);background:var(--surface-soft);font-size:11px;line-height:1.45}.career-riasec-guide-grid blockquote b{color:var(--riasec-color);font-size:9px;letter-spacing:.08em;text-transform:uppercase}
.career-riasec-authoring-guide{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(280px,.85fr);gap:14px}.career-riasec-authoring-guide>div,.career-riasec-authoring-guide>aside{padding:17px;border:1px solid var(--border);border-radius:13px;background:var(--surface)}.career-riasec-authoring-guide h3{margin:4px 0 9px}.career-riasec-authoring-guide ol{display:grid;gap:6px;margin:0;padding-left:20px;color:var(--text-secondary)}.career-riasec-authoring-guide>aside{display:flex;align-items:flex-start;gap:12px;border-color:#9fd6c8;background:#edf9f5}.career-riasec-authoring-guide>aside>i{font-size:25px;color:#087f69}.career-riasec-authoring-guide>aside p{margin:5px 0 0;color:#385b54;line-height:1.5}
@media(max-width:980px){.career-admin-head{grid-template-columns:1fr;align-items:stretch}.career-admin-head-actions{align-items:stretch}.career-admin-selector{min-width:0}.career-riasec-guide-grid,.career-riasec-authoring-guide{grid-template-columns:1fr}.career-admin-readonly-grid,.career-question-studio{grid-template-columns:1fr}.career-admin-readonly-grid>article+article{border-left:0;border-top:1px solid var(--border)}.career-question-studio>aside{border-right:0;border-bottom:1px solid var(--border)}.career-evolution-row{grid-template-columns:1fr 70px}.career-evolution-row>div{grid-column:1/-1}.career-evolution-row>em{grid-column:2}}
@container app-content (max-width:1120px){.career-admin-head{grid-template-columns:1fr;align-items:stretch}.career-question-studio{grid-template-columns:1fr}.career-question-studio>aside{border-right:0;border-bottom:1px solid var(--border)}}
@container app-content (max-width:1050px){.career-student-directory-controls{grid-template-columns:repeat(2,minmax(0,1fr))}.career-student-search{grid-column:1/-1}}
@media(max-width:1120px){.career-interest-scale-legend{grid-template-columns:1fr auto}.career-interest-scale-copy{grid-column:1}.career-interest-scale-items{grid-column:1/-1;grid-row:2}.career-interest-scale-legend>strong{grid-column:2;grid-row:1}.career-interest-question-inner{grid-template-columns:minmax(280px,1fr) auto;gap:13px}.career-interest-choice{width:45px;height:45px}.career-interest-choice>b{font-size:21px}}
@media(max-width:760px){.career-interest-card>.fb-head{padding:18px 16px}.career-interest-card>.cp-panel{margin-right:16px;margin-left:16px}.career-interest-scale-legend{margin-right:16px;margin-left:16px}.career-interest-scale-items{grid-template-columns:repeat(5,minmax(48px,1fr))}.career-interest-scale-item>small{display:none}.career-interest-question{padding:0 16px}.career-interest-question-inner{grid-template-columns:1fr;gap:10px;padding:14px 2px}.career-interest-choices{justify-content:flex-start;padding-left:45px}.career-interest-choice{width:min(52px,15vw);height:min(52px,15vw)}.career-interest-choice::after,.career-interest-choice::before{display:none}.career-interest-card .fb-actions{padding-right:16px;padding-left:16px}}
@media(max-width:620px){.career-admin-head-actions{grid-template-columns:1fr}.career-riasec-guide-button{justify-content:center}.career-admin-riasec-strip>header{align-items:flex-start;flex-direction:column}.career-admin-riasec-strip>div{grid-template-columns:1fr 1fr}.career-admin-riasec-strip>div>button{border-right:1px solid var(--border);border-bottom:1px solid var(--border)}.career-admin-riasec-strip>div>button:nth-child(3n){border-right:1px solid var(--border)}.career-admin-riasec-strip>div>button:nth-child(n+4){border-bottom:1px solid var(--border)}.career-admin-riasec-strip>div>button:nth-child(2n){border-right:0}.career-admin-riasec-strip>div>button:nth-last-child(-n+2){border-bottom:0}.career-riasec-guide-intro{grid-template-columns:1fr}.career-riasec-guide-mark{width:48px;height:48px}}
@media(max-width:620px){.career-student-directory-controls{grid-template-columns:1fr}.career-student-search{grid-column:auto}}
@media(max-width:900px){.platform-typography-presets,.platform-typography-controls{grid-template-columns:repeat(2,minmax(0,1fr))}.platform-typography-preview{grid-template-columns:1fr}.platform-typography-preview>aside{border-right:0;border-bottom:1px solid var(--border)}}
@media(max-width:620px){.platform-typography-settings>header{flex-direction:column}.platform-typography-presets,.platform-typography-controls{grid-template-columns:1fr}.platform-typography-preview>article{grid-template-columns:1fr}.platform-typography-preview article>label{grid-column:1;grid-row:auto}}

/* Semantic typography system
   LMS Administration chooses the institutional defaults; personal appearance
   settings only replace the requested font, contrast and root text scale. */
body{font-size:var(--type-body);font-family:var(--font-interface)}
:is(.side-head,.platform-nav-group-label,.admin-nav-section-title){font-size:var(--type-nav-group)!important;line-height:1.35}
:is(.nav-item,.platform-nav-item,.admin-sidebar .nav-item){font-size:var(--type-nav-item)!important;line-height:1.35}
:is(.brand-title,.platform-shell-brand b,.course-shell-brand b){font-size:var(--type-body-lg)!important}
:is(.brand-sub,.platform-shell-brand small,.course-shell-brand small){font-size:var(--type-caption)!important}
:is(.platform-page-head,.course-shell-head,.admin-page-head,.report-page-head,.reflection-review-page-head)>:is(div,section) h1,
:is(.platform-page-head,.course-shell-head,.admin-page-head,.report-page-head,.reflection-review-page-head)>h1{
  font-size:var(--type-page-title)!important;
  line-height:1.08;
}
:is(.platform-page-head,.course-shell-head,.admin-page-head,.report-page-head,.reflection-review-page-head) p{font-size:var(--type-body)!important;line-height:1.55}
:is(.platform-settings-form,.fig-modal-inner,.platform-form-modal,.study-notebook-shell) :is(h2,.modal-title){font-size:var(--type-section-title)}
:is(.platform-settings-form,.fig-modal-inner,.platform-form-modal,.study-notebook-shell) :is(h3,.card-title){font-size:var(--type-card-title)}
:is(.platform-settings-form,.fig-modal-inner,.platform-form-modal,.study-notebook-shell) :is(label,legend){font-size:var(--type-label)}
:is(.platform-settings-form,.fig-modal-inner,.platform-form-modal,.study-notebook-shell) :is(small,.field-help,.form-help,.help-text){font-size:var(--type-help)}

/* Configurable sign-in protection and administrative security audit */
.platform-settings-context-tabs{
  display:grid;
  grid-template-columns:repeat(7,minmax(0,1fr));
  gap:.6rem;
  margin:0 0 1rem;
  padding:.55rem;
  border:1px solid var(--border);
  border-radius:18px;
  background:var(--surface-2);
  position:sticky;
  top:calc(var(--topbar-height,72px) + .5rem);
  z-index:8;
  box-shadow:0 10px 28px rgba(20,36,63,.06);
}
.platform-settings-context-tabs button{
  display:flex;
  align-items:center;
  gap:.7rem;
  min-width:0;
  min-height:66px;
  padding:.7rem .8rem;
  border:1px solid transparent;
  border-radius:13px;
  background:transparent;
  color:var(--text-secondary);
  text-align:left;
}
.platform-settings-context-tabs button>i{
  flex:0 0 auto;
  display:grid;
  place-items:center;
  width:36px;
  height:36px;
  border-radius:10px;
  background:var(--surface-1);
  color:var(--accent);
  font-size:1.25rem;
}
.platform-settings-context-tabs button>span{display:grid;gap:.15rem;min-width:0}
.platform-settings-context-tabs b{color:var(--text-primary);font-size:var(--type-label)}
.platform-settings-context-tabs small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:var(--type-help)}
.platform-settings-context-tabs button:hover{border-color:var(--accent-border);background:var(--surface-1)}
.platform-settings-context-tabs button.active{
  border-color:var(--accent);
  background:var(--accent);
  color:#fff;
  box-shadow:0 8px 20px rgba(24,95,165,.2);
}
.platform-settings-context-tabs button.active>i{background:rgba(255,255,255,.16);color:#fff}
.platform-settings-context-tabs button.active b{color:#fff}
.platform-settings-form[data-settings-context]>.platform-settings-note,
.platform-settings-form[data-settings-context]>.platform-regional-settings,
.platform-settings-form[data-settings-context]>.platform-typography-settings,
.platform-settings-form[data-settings-context]>.platform-password-settings,
.platform-settings-form[data-settings-context]>.platform-login-security-settings,
.platform-settings-form[data-settings-context]>.platform-landing-rotation-settings,
.platform-settings-form[data-settings-context]>.platform-week-resource-settings,
.platform-settings-form[data-settings-context]>.platform-course-home-visual-settings,
.platform-settings-form[data-settings-context]>.platform-settings-taxonomy-editor{display:none}
.platform-settings-form[data-settings-context="appearance"]>.platform-settings-note{display:flex}
.platform-settings-form[data-settings-context="appearance"]>.platform-regional-settings,
.platform-settings-form[data-settings-context="appearance"]>.platform-typography-settings,
.platform-settings-form[data-settings-context="appearance"]>.platform-course-home-visual-settings,
.platform-settings-form[data-settings-context="security"]>.platform-password-settings,
.platform-settings-form[data-settings-context="security"]>.platform-login-security-settings,
.platform-settings-form[data-settings-context="landing"]>.platform-landing-rotation-settings,
.platform-settings-form[data-settings-context="files"]>.platform-week-resource-settings{display:block}
.platform-settings-form[data-settings-context="people"]>.platform-settings-taxonomy-editor{display:grid}

/* Long-form global settings use the same reader-led rail pattern as Studio.
   Every section remains mounted, so jumping around never discards a draft. */
#platformSettingsLayout{
  display:grid;
  grid-template-columns:210px minmax(0,1fr);
  gap:18px;
  align-items:start;
  min-width:0;
}
#platformSettingsRail{
  position:sticky;
  top:calc(var(--topbar-height,72px) + .75rem);
  z-index:7;
  display:flex;
  grid-template-columns:none;
  min-width:0;
  flex-direction:column;
  gap:4px;
  margin:0;
  padding:10px;
  border-radius:14px;
}
#platformSettingsRail button{
  min-height:0;
  padding:10px 11px;
  border:0;
  border-radius:9px;
  background:transparent;
  box-shadow:none;
}
#platformSettingsRail button>i{
  width:auto;
  height:auto;
  border-radius:0;
  background:transparent;
  font-size:17px;
}
#platformSettingsRail button:hover,
#platformSettingsRail button:focus-visible,
#platformSettingsRail button.active{
  border-color:transparent;
  background:var(--accent-bg);
  color:var(--accent-text);
  box-shadow:none;
}
#platformSettingsRail button.active>i{background:transparent;color:var(--accent-text)}
#platformSettingsRail button.active b{color:var(--accent-text)}
#platformSettingsSections{
  display:flex;
  min-width:0;
  flex-direction:column;
  gap:18px;
}
#platformSettingsSections>[data-platform-settings-section],
#platformSettingsSections [data-platform-settings-section]{scroll-margin-top:calc(var(--topbar-height,72px) + 20px)}
#platformSettingsSections>.platform-security-log-section{margin-top:0}

@container app-content (max-width:1100px){
  #platformSettingsLayout{grid-template-columns:minmax(0,1fr)}
  #platformSettingsRail{
    position:sticky;
    top:calc(var(--topbar-height,72px) + .5rem);
    z-index:8;
    flex-direction:row;
    overflow-x:auto;
    overscroll-behavior-inline:contain;
    scrollbar-width:thin;
  }
  #platformSettingsRail button{flex:0 0 auto;min-width:190px}
}
@container app-content (max-width:620px){
  #platformSettingsRail{position:static;z-index:auto;padding:7px}
  #platformSettingsRail button{min-width:max-content;padding:9px 10px}
  #platformSettingsRail button small{display:none}
}
.platform-settings-form[hidden],
.platform-security-log-section[hidden],
.platform-observability-threshold-form[hidden]{display:none!important}
.platform-landing-rotation-settings{
  overflow:hidden;
  border:1px solid var(--border);
  border-radius:18px;
  background:var(--surface-1);
}
.platform-landing-rotation-settings>header{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:1rem;
  padding:1.35rem;
  border-bottom:1px solid var(--border);
  background:linear-gradient(115deg,var(--surface-1),color-mix(in srgb,var(--accent-bg) 74%,#f1edff));
}
.platform-landing-rotation-settings>header>div{display:flex;gap:1rem}
.platform-landing-rotation-settings h2{margin:.12rem 0 .3rem}
.platform-landing-rotation-settings p{margin:0;color:var(--text-secondary)}
.platform-landing-policy-summary{
  display:inline-flex;
  align-items:center;
  gap:.4rem;
  flex:0 0 auto;
  max-width:300px;
  padding:.45rem .7rem;
  border:1px solid var(--accent-border);
  border-radius:999px;
  background:var(--surface-1);
  color:var(--accent-strong);
  font-size:var(--type-help);
  font-weight:800;
  text-align:right;
}
.platform-landing-page-preview{
  --landing-campus-tone:#8bdcff;
  position:relative;
  display:grid;
  grid-template-columns:minmax(0,1.2fr) minmax(180px,.8fr);
  min-height:218px;
  overflow:hidden;
  padding:1.35rem;
  color:#fff;
  isolation:isolate;
}
.platform-landing-page-preview::before{content:"";position:absolute;z-index:-1;inset:0;opacity:.17;background-image:radial-gradient(circle,rgba(255,255,255,.9) 0 1.4px,transparent 1.8px);background-size:34px 34px}
.platform-landing-page-preview::after{content:"";position:absolute;z-index:-1;width:22rem;height:22rem;right:-9rem;bottom:-12rem;border:1px solid rgba(255,255,255,.25);border-radius:50%}
.platform-landing-campus-silhouette{position:absolute;z-index:0;inset:0;pointer-events:none;opacity:.38;background-image:linear-gradient(132deg,var(--landing-campus-tone),rgba(255,255,255,.42)),url("../assets/landing/bau-campus-silhouette.png");background-position:center,center;background-size:cover,cover;background-blend-mode:color,normal;filter:contrast(1.08) saturate(.86);mask-image:linear-gradient(105deg,rgba(0,0,0,.9),rgba(0,0,0,.46) 62%,transparent 100%)}
.platform-landing-page-preview[data-landing-variant="connection"]{background:linear-gradient(138deg,#083d70,#176aa8 54%,#4b9fc3)}
.platform-landing-page-preview[data-landing-variant="flight"]{background:linear-gradient(138deg,#063f78,#0a74bc 54%,#38a9d4)}
.platform-landing-page-preview[data-landing-variant="pathways"]{background:linear-gradient(138deg,#28184f,#55408f 54%,#7759b5)}
.platform-landing-page-preview[data-landing-variant="community"]{background:linear-gradient(138deg,#083e50,#08776e 54%,#17966e)}
.platform-landing-page-preview[data-landing-variant="discovery"]{background:linear-gradient(138deg,#26164e,#563d9b 54%,#8b5fc1)}
.platform-landing-page-preview[data-landing-variant="research"]{background:linear-gradient(138deg,#073e48,#087c79 54%,#25a995)}
.platform-landing-page-preview[data-landing-variant="horizon"]{background:linear-gradient(138deg,#54303d,#a85643 54%,#dc9a2c)}
.platform-landing-page-preview[data-landing-variant="studio"]{background:linear-gradient(138deg,#481c46,#963963 54%,#cf6389)}
.platform-landing-page-preview[data-landing-variant="global"]{background:linear-gradient(138deg,#0b335e,#1d67a9 54%,#4b9ad3)}
.platform-landing-page-preview[data-landing-variant="support"]{background:linear-gradient(138deg,#063f49,#087860 54%,#2fa87c)}
.platform-landing-page-preview[data-landing-variant="momentum"]{background:linear-gradient(138deg,#073d65,#087eaf 52%,#20a6d9)}
.platform-landing-page-preview[data-landing-variant="belonging"]{background:linear-gradient(138deg,#451e49,#8d3e71 54%,#c5679b)}
.platform-landing-page-preview[data-landing-variant="content"]{background:linear-gradient(138deg,#102f5b,#286aa4 54%,#5c9bcb)}
.platform-landing-page-preview[data-landing-variant="study"]{background:linear-gradient(138deg,#22285e,#505eb0 54%,#7d89d4)}
.platform-landing-page-preview[data-landing-variant="practice"]{background:linear-gradient(138deg,#07506f,#148eaf 54%,#4ac0d3)}
.platform-landing-page-preview[data-landing-variant="activities"]{background:linear-gradient(138deg,#65351e,#bd6a27 54%,#e3a04a)}
.platform-landing-page-preview[data-landing-variant="collaboration"]{background:linear-gradient(138deg,#06483f,#117e69 54%,#49ad8c)}
.platform-landing-page-preview[data-landing-variant="feedback"]{background:linear-gradient(138deg,#531f53,#9b3d7f 54%,#cf70aa)}
.platform-landing-page-preview[data-landing-variant="assessment"]{background:linear-gradient(138deg,#60301e,#a95731 54%,#d98a5e)}
.platform-landing-page-preview[data-landing-variant="flexible"]{background:linear-gradient(138deg,#25435b,#527b99 54%,#86a9bc)}
.platform-landing-preview-copy{position:relative;z-index:1;align-self:center;max-width:620px}
.platform-landing-preview-copy>span{display:inline-flex;align-items:center;gap:.35rem;color:rgba(255,255,255,.84);font-size:10px;font-weight:850;letter-spacing:.13em;text-transform:uppercase}
.platform-landing-preview-copy>span i{font-size:1rem}
.platform-landing-preview-copy h3{max-width:590px;margin:.55rem 0 .65rem;color:#fff;font-size:clamp(1.6rem,3vw,2.6rem);line-height:1.02;letter-spacing:-.045em}
.platform-landing-preview-copy h3 span{color:#d6f1ff}
.platform-landing-page-preview[data-landing-variant="pathways"] h3 span,.platform-landing-page-preview[data-landing-variant="discovery"] h3 span{color:#eadcff}
.platform-landing-page-preview[data-landing-variant="horizon"] h3 span{color:#fff0bc}
.platform-landing-page-preview[data-landing-variant="studio"] h3 span,.platform-landing-page-preview[data-landing-variant="belonging"] h3 span{color:#ffe3ee}
.platform-landing-page-preview[data-landing-variant="research"] h3 span,.platform-landing-page-preview[data-landing-variant="support"] h3 span,.platform-landing-page-preview[data-landing-variant="community"] h3 span{color:#d9ffee}
.platform-landing-preview-copy p{max-width:610px;margin:0;color:rgba(255,255,255,.82);font-size:var(--type-help);line-height:1.48}
.platform-landing-preview-copy>b{display:inline-flex;align-items:center;gap:.35rem;margin-top:.85rem;padding:.4rem .6rem;border:1px solid rgba(255,255,255,.26);border-radius:999px;background:rgba(3,18,50,.18);color:#fff;font-size:10px}
.platform-landing-preview-art{position:relative;z-index:1;display:grid;place-items:center;min-width:0;padding-left:1rem}
.platform-landing-preview-art .bau-login-career-svg{width:min(100%,245px);height:auto;filter:drop-shadow(0 10px 16px rgba(0,0,0,.16))}
.platform-landing-preview-orbit{position:absolute;right:-4rem;top:-8rem;width:22rem;height:22rem;border:1px solid rgba(255,255,255,.22);border-radius:50%;pointer-events:none}
.platform-landing-rotation-controls{
  display:grid;
  grid-template-columns:repeat(3,minmax(175px,.72fr)) minmax(210px,.8fr) minmax(230px,1.1fr);
  gap:1rem;
  align-items:center;
  padding:1.15rem 1.35rem;
  border-bottom:1px solid var(--border);
  background:var(--surface-2);
}
.platform-landing-rotation-controls>label{display:grid;gap:.38rem;font-weight:800}
.platform-landing-rotation-controls select,.platform-landing-rotation-controls input{width:100%;min-height:44px}
.platform-landing-rotation-controls small{color:var(--text-secondary);font-size:var(--type-help);font-weight:500;line-height:1.35}
.platform-landing-rotation-controls aside{display:flex;align-items:flex-start;gap:.7rem;padding:.75rem .85rem;border:1px solid var(--accent-border);border-radius:12px;background:var(--accent-bg);color:var(--text-secondary);font-size:var(--type-help);line-height:1.45}
.platform-landing-rotation-controls aside>i{color:var(--accent-text);font-size:1.3rem}
.platform-landing-rotation-controls aside span{display:grid;gap:.1rem}
.platform-landing-rotation-controls aside b{color:var(--text-primary)}
.platform-landing-rotation-controls [data-landing-fixed-note]{border-color:color-mix(in srgb,var(--success-text,#087b65) 34%,var(--border));background:color-mix(in srgb,var(--success-bg,#e6f7f2) 70%,var(--surface-1))}
.platform-landing-rotation-controls [data-landing-fixed-note]>i{color:var(--success-text,#087b65)}
.platform-landing-save-control{display:grid;align-content:center;gap:.38rem}.platform-landing-save-control button{justify-content:center;width:100%;min-height:44px}.platform-landing-save-control small{display:flex;align-items:flex-start;gap:.3rem;color:var(--text-muted);font-size:var(--type-help);line-height:1.35}.platform-landing-save-control small i{margin-top:.05rem}.platform-landing-save-control small.is-pending{color:var(--warning-text,#9b6200)}.platform-landing-save-control small.is-saved{color:var(--success-text,#087b65)}.platform-landing-save-control small.is-error{color:var(--danger-text,#b42318)}.platform-landing-save-control small.is-saving{color:var(--accent-text)}.platform-landing-save-control small.is-saving i{animation:spin 1s linear infinite}
.platform-landing-selection-toolbar{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:1rem 1.35rem;border-bottom:1px solid var(--border);background:var(--surface-1)}
.platform-landing-selection-toolbar>div{display:grid;gap:.2rem}.platform-landing-selection-toolbar b{color:var(--text-primary);font-size:var(--type-label)}.platform-landing-selection-toolbar small{color:var(--text-secondary);font-size:var(--type-help);line-height:1.4}
.platform-landing-selection-toolbar .platform-landing-selection-actions{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:.45rem}.platform-landing-selection-actions button{padding:.48rem .7rem;font-size:12px;white-space:nowrap}
.platform-landing-selection-toolbar>span{display:inline-flex;align-items:center;gap:.35rem;flex:0 0 auto;padding:.38rem .62rem;border:1px solid var(--accent-border);border-radius:999px;background:var(--accent-bg);color:var(--accent-text);font-size:var(--type-help);font-weight:850;white-space:nowrap}
.platform-landing-variant-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.8rem;padding:1.35rem}
.platform-landing-variant-card{display:block;min-width:0;cursor:pointer}
.platform-landing-variant-card input{position:absolute;inline-size:1px;block-size:1px;opacity:0;pointer-events:none}
.platform-landing-variant-card>span{position:relative;display:grid;grid-template-columns:34px minmax(0,1fr) auto auto;align-items:center;column-gap:.65rem;min-height:84px;padding:.8rem;border:1px solid var(--border);border-radius:14px;background:linear-gradient(135deg,color-mix(in srgb,var(--landing-preview) 12%,var(--surface-1)),var(--surface-1) 66%);transition:border-color .15s ease,transform .15s ease,box-shadow .15s ease}
.platform-landing-variant-card>span>i{display:grid;grid-row:span 2;place-items:center;width:34px;height:34px;border-radius:10px;background:var(--landing-preview);color:#fff;font-size:1.05rem;box-shadow:0 6px 14px color-mix(in srgb,var(--landing-preview) 28%,transparent)}
.platform-landing-variant-copy{display:grid;min-width:0;gap:.14rem}.platform-landing-variant-copy b{min-width:0;color:var(--text-primary);font-size:var(--type-label)}
.platform-landing-variant-copy small{min-width:0;overflow:hidden;color:var(--text-secondary);font-size:var(--type-help);text-overflow:ellipsis;white-space:nowrap}
.platform-landing-variant-card em{grid-column:3;grid-row:1 / span 2;align-self:center;padding:.25rem .42rem;border:1px solid var(--border);border-radius:999px;background:var(--surface-1);color:var(--text-muted);font-size:9px;font-style:normal;font-weight:800;white-space:nowrap}
.platform-landing-variant-state{display:inline-flex;grid-column:4;grid-row:1 / span 2;align-items:center;justify-content:center;gap:.22rem;align-self:center;min-width:72px;padding:.28rem .42rem;border:1px solid var(--border-strong);border-radius:999px;background:var(--surface-2);color:var(--text-muted);font-size:9px;font-weight:850;text-transform:uppercase}.platform-landing-variant-state i{font-size:.9rem}.platform-landing-variant-state b{font-size:inherit}
.platform-landing-variant-card:hover>span{border-color:var(--accent-border);transform:translateY(-1px)}
.platform-landing-variant-card.is-selected>span{border-color:var(--landing-preview);box-shadow:0 8px 20px color-mix(in srgb,var(--landing-preview) 18%,transparent)}
.platform-landing-variant-card.is-selected .platform-landing-variant-state{border-color:color-mix(in srgb,var(--landing-preview) 62%,var(--border));background:color-mix(in srgb,var(--landing-preview) 14%,var(--surface-1));color:var(--landing-preview)}
.platform-landing-variant-card input:focus-visible+span{outline:3px solid color-mix(in srgb,var(--accent) 28%,transparent);outline-offset:2px}
.platform-landing-selection-help{display:flex;align-items:flex-start;gap:.45rem;margin:0;padding:0 1.35rem 1.35rem;color:var(--text-secondary);font-size:var(--type-help);line-height:1.45}
.platform-landing-selection-help i{margin-top:.05rem;color:var(--accent-text)}
.platform-landing-page-editor{margin:0 1.35rem 1.35rem;border:1px solid var(--border-strong);border-radius:15px;background:var(--surface-2);overflow:hidden}
.platform-landing-page-editor>header{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem;padding:1rem;border-bottom:1px solid var(--border);background:linear-gradient(110deg,var(--surface-1),var(--accent-bg))}
.platform-landing-page-editor>header>div:first-child{display:flex;gap:.75rem}.platform-landing-page-editor>header>div:last-child{display:flex;gap:.5rem;flex-wrap:wrap;justify-content:flex-end}
.platform-landing-page-editor h3{margin:.1rem 0 .2rem;color:var(--text-primary);font-size:var(--type-card-title)}
.platform-landing-page-editor p{margin:0;color:var(--text-secondary);font-size:var(--type-help);line-height:1.45}
.platform-landing-editor-toolbar{display:grid;grid-template-columns:minmax(220px,1fr) minmax(220px,1fr) minmax(120px,.35fr);gap:.8rem;padding:1rem;border-bottom:1px solid var(--border)}
.platform-landing-editor-toolbar label,.platform-landing-editor-grid label{display:grid;gap:.35rem;color:var(--text-primary);font-size:var(--type-label);font-weight:800}
.platform-landing-editor-toolbar select,.platform-landing-editor-toolbar input{width:100%;min-height:42px}
.platform-landing-editor-toolbar input[type="color"]{min-height:42px;padding:.2rem;cursor:pointer}
.platform-landing-editor-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.8rem;padding:1rem}
.platform-landing-editor-grid .is-wide{grid-column:1/-1}
.platform-landing-editor-grid input,.platform-landing-editor-grid select,.platform-landing-editor-grid textarea{width:100%;border:1px solid var(--border-strong);border-radius:9px;background:var(--surface-1);color:var(--text-primary);font:inherit}
.platform-landing-editor-grid input,.platform-landing-editor-grid select{min-height:42px;padding:0 .7rem}.platform-landing-editor-grid textarea{min-height:78px;padding:.65rem;resize:vertical;line-height:1.45}
.platform-observability-threshold-settings{
  padding:18px;
  border:1px solid var(--border-strong);
  border-radius:10px;
  background:var(--surface-2);
}
.platform-observability-threshold-settings>header{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:14px;
  margin-bottom:14px;
}
.platform-observability-threshold-settings>header>div{display:flex;align-items:flex-start;gap:10px}
.platform-observability-threshold-settings .eyebrow{display:block;margin-bottom:2px;color:var(--accent-text);font-size:10px;font-weight:850;letter-spacing:.065em;text-transform:uppercase}
.platform-observability-threshold-settings h2{margin:0;color:var(--text-primary);font-size:18px}
.platform-observability-threshold-settings p{margin:4px 0 0;color:var(--text-secondary);font-size:11px;line-height:1.5}
.platform-observability-policy-source{display:inline-flex;flex:0 0 auto;align-items:center;gap:5px;padding:6px 8px;border:1px solid var(--accent-border);border-radius:999px;background:var(--accent-bg);color:var(--accent-text);font-size:10px;font-weight:800}
.platform-observability-band-legend{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:5px;margin:0 0 10px}
.platform-observability-band-legend span{padding:6px;border:1px solid currentColor;border-radius:6px;background:var(--surface-1);font-size:9px;font-weight:850;text-align:center;text-transform:uppercase}
.platform-observability-threshold-list{display:grid;gap:9px}
.platform-observability-threshold-loading{display:grid;justify-items:center;gap:.4rem;min-height:172px;padding:1.4rem;border:1px dashed var(--accent-border);border-radius:10px;background:var(--accent-bg);color:var(--text-secondary);text-align:center}.platform-observability-threshold-loading>i{color:var(--accent-text);font-size:1.8rem;animation:spin 1s linear infinite}.platform-observability-threshold-loading strong{color:var(--text-primary);font-size:var(--type-label)}.platform-observability-threshold-loading span{max-width:460px;font-size:var(--type-help);line-height:1.45}.platform-observability-threshold-loading.is-error{border-color:var(--danger-border,#efbbb7);background:var(--danger-bg,#fff2f0)}.platform-observability-threshold-loading.is-error>i{animation:none;color:var(--danger-text,#b42318)}
.platform-observability-threshold-row{padding:12px;border:1px solid var(--border);border-radius:9px;background:var(--surface-1)}
.platform-observability-threshold-row>header{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:9px}
.platform-observability-threshold-row header strong,.platform-observability-threshold-row header small{display:block}
.platform-observability-threshold-row header strong{color:var(--text-primary);font-size:12px}
.platform-observability-threshold-row header small{margin-top:2px;color:var(--text-muted);font-size:9px;text-transform:capitalize}
.platform-observability-threshold-row header em{padding:4px 6px;border-radius:5px;background:var(--surface-2);color:var(--text-secondary);font-size:9px;font-style:normal;font-weight:800}
.platform-observability-band-summary{margin:0 0 9px;padding:7px 8px;border-left:3px solid var(--accent);border-radius:5px;background:var(--accent-bg);color:var(--text-secondary);font-size:9.5px;line-height:1.45}
.platform-observability-band-summary b{color:var(--text-primary)}
.platform-observability-threshold-inputs{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}
.platform-observability-threshold-inputs label{display:grid;gap:3px}
.platform-observability-threshold-inputs label>span{color:var(--text-secondary);font-size:9px;font-weight:800}
.platform-observability-threshold-inputs input{min-width:0}
.platform-observability-threshold-inputs small{color:var(--text-muted);font-size:8.5px}
.platform-observability-change-reason{display:grid;gap:5px;margin-top:14px}
.platform-observability-change-reason>span{color:var(--text-primary);font-size:11px;font-weight:800}
.platform-observability-change-reason b{margin-left:4px;color:var(--danger-text);font-size:9px;text-transform:uppercase}
.platform-observability-change-reason textarea{resize:vertical}
.platform-observability-change-reason small,.platform-observability-policy-meta{color:var(--text-muted);font-size:10px;line-height:1.45}
.platform-observability-policy-meta{display:flex;align-items:flex-start;gap:6px;margin:11px 0 0;padding:9px 10px;border-radius:7px;background:var(--surface-1)}
.platform-observability-policy-meta i{margin-top:1px;color:var(--accent-text)}
.platform-login-security-settings,
.platform-security-log-section{
  border:1px solid var(--border);
  border-radius:18px;
  background:var(--surface-1);
  overflow:hidden;
}
.platform-login-security-settings>header,
.platform-security-log-section>header{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:1rem;
  padding:1.35rem;
  border-bottom:1px solid var(--border);
  background:linear-gradient(115deg,var(--surface-1),var(--accent-bg));
}
.platform-login-security-settings>header>div,
.platform-security-log-section>header>div{display:flex;gap:1rem}
.platform-login-security-settings h2,
.platform-security-log-section h2{margin:.12rem 0 .3rem}
.platform-login-security-settings p,
.platform-security-log-section p{margin:0;color:var(--text-secondary)}
.platform-security-live,
.platform-password-redaction,
.platform-two-factor-dormant{
  display:inline-flex;
  align-items:center;
  gap:.4rem;
  border:1px solid var(--accent-border);
  border-radius:999px;
  padding:.45rem .7rem;
  color:var(--accent-strong);
  background:var(--surface-1);
  font-weight:800;
  font-size:var(--type-help);
  white-space:nowrap;
}
.platform-login-policy-grid{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:1rem;
  padding:1.35rem;
}
.platform-login-policy-grid>label:not(.platform-check){display:grid;gap:.42rem;font-weight:700}
.platform-login-policy-grid input[type="number"],
.platform-two-factor-planning select{width:100%;min-height:48px}
.platform-inline-number{display:flex;align-items:center;gap:.6rem}
.platform-inline-number input{max-width:120px}
.platform-inline-number span{color:var(--text-secondary);font-weight:600}
.platform-login-policy-grid .platform-check{
  min-height:82px;
  border:1px solid var(--border);
  border-radius:14px;
  padding:.9rem;
  background:var(--surface-2);
}
.platform-two-factor-planning{
  display:grid;
  grid-template-columns:minmax(260px,1fr) minmax(260px,.7fr) auto;
  align-items:center;
  gap:1rem;
  margin:0 1.35rem 1.35rem;
  padding:1rem;
  border:1px dashed var(--border-strong);
  border-radius:14px;
  background:var(--surface-2);
}
.platform-two-factor-planning>div{display:flex;align-items:center;gap:.8rem}
.platform-two-factor-planning>div>i{font-size:2rem;color:var(--accent)}
.platform-two-factor-planning span{display:grid;gap:.2rem}
.platform-two-factor-planning small{color:var(--text-secondary)}
.platform-two-factor-planning label{display:grid;gap:.35rem;font-weight:700}
.platform-two-factor-dormant{color:var(--text-secondary);border-color:var(--border-strong);background:var(--surface-1)}
.platform-security-log-section{margin-top:1.25rem}
.platform-security-log-toolbar{
  display:grid;
  grid-template-columns:minmax(300px,1fr) repeat(3,minmax(150px,auto));
  gap:.75rem;
  padding:1rem;
  border-bottom:1px solid var(--border);
}
.platform-security-log-toolbar label{display:grid;gap:.3rem;font-weight:700}
.platform-security-search{position:relative;display:flex!important;align-items:center!important}
.platform-security-search i{position:absolute;left:.9rem;color:var(--text-secondary)}
.platform-security-search input{width:100%;padding-left:2.5rem}
.platform-security-log-summary,
.platform-security-log-pagination{
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:1rem;
  padding:.8rem 1rem;
  color:var(--text-secondary);
}
.platform-security-log-table-wrap{overflow:auto;border-block:1px solid var(--border)}
.platform-security-log-table{width:100%;border-collapse:collapse;min-width:1100px}
.platform-security-log-table th,
.platform-security-log-table td{padding:.85rem 1rem;text-align:left;vertical-align:top;border-bottom:1px solid var(--border)}
.platform-security-log-table th{font-size:var(--type-label);letter-spacing:.06em;text-transform:uppercase;background:var(--surface-2)}
.platform-security-log-table td strong,
.platform-security-log-table td small{display:block}
.platform-security-log-table td small{margin-top:.25rem;color:var(--text-secondary)}
.platform-security-event,
.platform-security-redacted{display:inline-flex;align-items:center;gap:.3rem;border-radius:999px;padding:.35rem .55rem;font-weight:800;font-size:var(--type-help)}
.platform-security-event{background:#fff1f0;color:#a52a25}
.platform-security-redacted{background:var(--surface-2);color:var(--text-secondary);white-space:nowrap}
.platform-security-referrer{display:block;max-width:260px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.platform-security-log-pagination>div{display:flex;gap:.5rem}
.platform-security-log-loading,
.platform-security-log-empty{display:grid;place-items:center;gap:.45rem;min-height:180px;padding:2rem;text-align:center;color:var(--text-secondary)}
.platform-security-log-loading i{font-size:2rem;animation:spin 1s linear infinite}
.platform-security-log-empty i{font-size:2.2rem;color:var(--accent)}
.platform-security-log-empty.is-error i{color:var(--danger)}
@media(max-width:1000px){
  .platform-settings-context-tabs{grid-template-columns:repeat(2,minmax(0,1fr));position:static}
  .platform-settings-context-tabs button:last-child{grid-column:1/-1}
  .platform-landing-rotation-settings>header{flex-direction:column}
  .platform-landing-policy-summary{text-align:left}
  .platform-landing-rotation-controls{grid-template-columns:repeat(2,minmax(0,1fr))}
  .platform-landing-rotation-controls aside{grid-column:1/-1}
  .platform-landing-variant-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .platform-landing-editor-toolbar{grid-template-columns:repeat(2,minmax(0,1fr))}
  .platform-landing-editor-toolbar label:last-child{grid-column:1/-1}
  .platform-login-policy-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .platform-two-factor-planning{grid-template-columns:1fr}
  .platform-security-log-toolbar{grid-template-columns:1fr 1fr}
  .platform-security-search{grid-column:1/-1}
  .platform-observability-threshold-settings>header{flex-direction:column}
}
@media(max-width:620px){
  .platform-observability-band-legend{grid-template-columns:1fr 1fr}
  .platform-observability-threshold-inputs{grid-template-columns:1fr 1fr}
  .platform-landing-page-preview{grid-template-columns:1fr;min-height:0;padding:1rem}
  .platform-landing-preview-art{display:none}
  .platform-landing-rotation-controls,.platform-landing-variant-grid{grid-template-columns:1fr}
  .platform-landing-selection-toolbar{align-items:flex-start;flex-direction:column;padding-left:1rem;padding-right:1rem}.platform-landing-selection-toolbar .platform-landing-selection-actions{justify-content:flex-start}.platform-landing-selection-toolbar>span{white-space:normal}
  .platform-landing-page-editor{margin-inline:1rem}
  .platform-landing-page-editor>header{flex-direction:column}.platform-landing-page-editor>header>div:last-child{justify-content:flex-start}
  .platform-landing-editor-toolbar,.platform-landing-editor-grid{grid-template-columns:1fr}.platform-landing-editor-toolbar label:last-child{grid-column:auto}
  .platform-landing-rotation-controls aside{grid-column:auto}
  .platform-landing-rotation-settings>header,.platform-landing-rotation-controls,.platform-landing-variant-grid{padding-left:1rem;padding-right:1rem}
  .platform-landing-selection-help{padding-left:1rem;padding-right:1rem}
  .platform-observability-policy-source{white-space:normal}
}
:is(.btn-accent,.btn-ghost,.btn-danger,button[type="submit"],button[type="reset"]):not(.icon-btn){font-size:var(--type-button)}
:is(table,.platform-table,.admin-table){font-size:var(--type-table)}
.foot{font-size:var(--type-caption)}
:is(.week-content,.theory-text,.course-content,.shell-course-rich,.ed-rich-input,.study-note-input){font-family:var(--font-reading)}
.account-appearance-card{grid-column:1/-1}
.account-appearance-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr)) minmax(240px,1.15fr);gap:11px;margin-top:14px}
.account-appearance-grid>label{display:grid;gap:6px;font-size:var(--type-label);font-weight:700}
.account-appearance-grid select{width:100%;min-height:var(--form-control-height);padding:0 11px;border:1px solid var(--border-strong);border-radius:7px;background:var(--surface-1);color:var(--text-primary);font:inherit;font-size:var(--form-control-font-size)}
.account-appearance-grid>aside{display:flex;align-items:flex-start;gap:9px;padding:11px;border-left:4px solid var(--accent);background:var(--accent-bg);color:var(--text-secondary);font-size:var(--type-help);line-height:1.5}.account-appearance-grid>aside>i{color:var(--accent-text);font-size:20px}
.account-appearance-card>footer{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:13px;padding-top:12px;border-top:1px solid var(--border)}.account-appearance-card>footer span{color:var(--text-muted);font-size:var(--type-help)}
.account-quiz-voice-card{grid-column:1/-1;overflow:hidden;padding:0}
.account-quiz-voice-intro{display:flex;align-items:center;gap:14px;padding:18px 20px;border-bottom:1px solid var(--border);background:linear-gradient(110deg,var(--accent-bg),var(--surface-1))}
.account-quiz-voice-intro>span{display:grid;place-items:center;flex:0 0 48px;width:48px;height:48px;border-radius:14px;background:var(--accent);color:#fff;font-size:25px;box-shadow:0 8px 20px color-mix(in srgb,var(--accent) 22%,transparent)}
.account-quiz-voice-intro .card-title{margin:0}.account-quiz-voice-intro p{margin:5px 0 0;line-height:1.5}
.account-quiz-voice-controls{display:grid;grid-template-columns:minmax(260px,1.5fr) minmax(190px,.7fr) auto;gap:12px;align-items:end;padding:18px 20px}
.account-quiz-voice-controls label{display:grid;gap:6px;font-size:var(--type-label);font-weight:800}.account-quiz-voice-controls select{width:100%;min-height:var(--form-control-height);padding:0 38px 0 12px;border:1px solid var(--border-strong);border-radius:9px;background:var(--surface-1);color:var(--text-primary);font:inherit;font-size:var(--form-control-font-size)}
.account-quiz-voice-controls button{display:inline-flex;align-items:center;justify-content:center;gap:7px;min-height:var(--form-control-height);padding:0 16px;border:1px solid var(--accent-border);border-radius:9px;background:var(--accent-bg);color:var(--accent-text);font-weight:800}.account-quiz-voice-controls button.is-playing{background:var(--accent);color:#fff}
.account-quiz-voice-card>footer{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 20px;border-top:1px solid var(--border);background:var(--surface-2);color:var(--text-secondary);font-size:var(--type-help)}.account-quiz-voice-card>footer small{display:inline-flex;align-items:center;gap:6px;color:var(--text-muted)}
.account-quick-message-card{grid-column:1/-1;overflow:hidden;padding:0}.account-quick-message-intro{display:flex;align-items:center;gap:14px;padding:18px 20px;border-bottom:1px solid var(--border);background:linear-gradient(110deg,color-mix(in srgb,var(--accent-bg) 66%,#e9f6f1),var(--surface-1))}.account-quick-message-intro>span{display:grid;place-items:center;flex:0 0 48px;width:48px;height:48px;border-radius:14px;background:#16806d;color:#fff;font-size:25px;box-shadow:0 8px 20px rgba(22,128,109,.18)}.account-quick-message-intro .card-title{margin:0}.account-quick-message-intro p{margin:5px 0 0;line-height:1.5}.account-quick-message-controls{display:grid;grid-template-columns:minmax(260px,1.2fr) minmax(190px,.7fr);gap:12px;align-items:end;padding:18px 20px}.account-quick-message-controls label{display:grid;gap:6px;font-size:var(--type-label);font-weight:800}.account-quick-message-controls select{width:100%;min-height:var(--form-control-height);padding:0 38px 0 12px;border:1px solid var(--border-strong);border-radius:9px;background:var(--surface-1);color:var(--text-primary);font:inherit;font-size:var(--form-control-font-size)}.account-quick-message-card>footer{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 20px;border-top:1px solid var(--border);background:var(--surface-2);color:var(--success-text);font-size:var(--type-help)}.account-quick-message-card>footer small{display:inline-flex;align-items:center;gap:6px;color:var(--text-muted)}
@media(max-width:900px){.account-appearance-grid{grid-template-columns:1fr 1fr}.account-appearance-grid>aside{grid-column:1/-1}}
@media(max-width:900px){.account-quiz-voice-controls{grid-template-columns:1fr 1fr}.account-quiz-voice-controls button{grid-column:1/-1}.account-quiz-voice-card>footer{align-items:flex-start;flex-direction:column}}
@media(max-width:900px){.account-quick-message-controls{grid-template-columns:1fr 1fr}.account-quick-message-card>footer{align-items:flex-start;flex-direction:column}}
@media(max-width:620px){.account-appearance-grid{grid-template-columns:1fr}.account-appearance-grid>aside{grid-column:auto}.account-appearance-card>footer{align-items:stretch;flex-direction:column}.account-quiz-voice-controls,.account-quick-message-controls{grid-template-columns:1fr}.account-quiz-voice-controls button{grid-column:auto}}

/* Shared form comfort scale
   Keep form typography and hit targets proportional across administration,
   teaching and student workspaces. Compact icon-only tools are intentionally
   excluded so dense editors and table actions retain their visual hierarchy. */
:is(form,[class$="-form"],[class*="-form "]) :is(
  input:not([type="checkbox"]):not([type="radio"]):not([type="range"]):not([type="color"]):not([type="hidden"]):not([type="button"]):not([type="submit"]):not([type="reset"]),
  select
){
  min-height:var(--form-control-height)!important;
  font-size:var(--form-control-font-size)!important;
}
:is(form,[class$="-form"],[class*="-form "]) textarea{
  font-size:var(--form-control-font-size)!important;
  line-height:1.5;
}
:is(form,[class$="-form"],[class*="-form "]) label{
  font-size:var(--form-label-font-size);
  line-height:1.4;
}
:is(form,[class$="-form"],[class*="-form "]) label small,
:is(form,[class$="-form"],[class*="-form "]) .field-help,
:is(form,[class$="-form"],[class*="-form "]) .form-help,
:is(form,[class$="-form"],[class*="-form "]) .help-text{
  font-size:var(--form-help-font-size)!important;
  line-height:1.45;
}
:is(form,[class$="-form"],[class*="-form "]) input[type="checkbox"],
:is(form,[class$="-form"],[class*="-form "]) input[type="radio"]{
  width:var(--form-check-size);
  height:var(--form-check-size);
}
:is(form,[class$="-form"],[class*="-form "]) :is(.btn-accent,.btn-ghost,.btn-danger,button[type="submit"],button[type="reset"]):not(.icon-btn){
  min-height:var(--form-action-height)!important;
  font-size:14px;
}

/* Shared field systems used by older and newer forms. */
.admin-form input,
.admin-form select,
.ed-field input,
.account-password-input input,
.login-form input{
  min-height:var(--form-control-height);
  height:var(--form-control-height);
  font-size:var(--form-control-font-size);
}
/* Native color inputs are compact toolbar swatches, not full-size form fields.
   This must follow the shared field rules above so every rich-editor instance
   keeps the same bounded control instead of stretching into a vertical bar. */
.ed-field .ed-rich-color input[type="color"]{
  appearance:none!important;
  -webkit-appearance:none!important;
  flex:0 0 24px!important;
  width:24px!important;
  min-width:24px!important;
  max-width:24px!important;
  height:24px!important;
  min-height:24px!important;
  max-height:24px!important;
  margin:0!important;
  padding:2px!important;
  overflow:hidden;
  border:1px solid var(--border-strong)!important;
  border-radius:6px;
  background:var(--surface-1)!important;
  box-sizing:border-box;
}
.ed-field .ed-rich-color input[type="color"]::-webkit-color-swatch-wrapper{padding:0}
.ed-field .ed-rich-color input[type="color"]::-webkit-color-swatch{border:0;border-radius:3px}
.ed-field .ed-rich-color input[type="color"]::-moz-color-swatch{border:0;border-radius:3px}
.ed-field textarea{
  font-size:var(--form-control-font-size);
}
.ed-field>span,
.account-password-form>label,
.platform-form-grid label,
.course-shell-editor label,
.platform-week-resource-policy-grid>label{
  font-size:var(--form-label-font-size);
  line-height:1.4;
}
.platform-form-grid input,
.platform-form-grid select,
.platform-form-grid textarea,
.course-shell-editor input,
.course-shell-editor select,
.course-shell-editor textarea,
.platform-week-resource-policy-grid input,
.platform-week-resource-policy-grid textarea{
  min-height:var(--form-control-height);
  font-size:var(--form-control-font-size);
}
.platform-check span small,
.platform-week-resource-policy-grid label>small{
  font-size:var(--form-help-font-size);
}

/* Filter bars are form-like controls even when they are not wrapped in form. */
.platform-search input,
.platform-course-directory-toolbar select,
.career-student-directory-controls select,
.career-student-search>div,
.career-student-search input{
  min-height:var(--form-control-height);
  font-size:14px;
}
.platform-course-directory-toolbar>label:not(.platform-search),
.career-student-directory-controls label>span{
  font-size:12px;
  line-height:1.35;
}
.platform-course-directory-toolbar .platform-sort-direction,
.platform-course-directory-toolbar .platform-filter-reset{
  min-height:var(--form-action-height);
  font-size:13px;
}

/* Student privacy choices predate the shared form wrapper. */
.privacy-request-fields select,
.privacy-request-fields textarea{
  min-height:var(--form-control-height);
  font-size:var(--form-control-font-size);
}
.privacy-request-fields label,
.privacy-consent-check b{
  font-size:var(--form-label-font-size);
  line-height:1.4;
}
.privacy-consent-check small{
  font-size:var(--form-help-font-size);
  line-height:1.45;
}
.privacy-consent-check input{
  width:var(--form-check-size);
  height:var(--form-check-size);
}
.privacy-choice-card .btn-accent,
.privacy-request-fields .btn-accent{
  min-height:var(--form-action-height);
  font-size:14px;
}

/* Dense authoring and import forms inherit the same readable floor. */
.student-import-modal :is(label,legend),
.manual-exam-form-grid label,
.manual-exam-panel-grid label,
.manual-exam-flags label,
.privacy-request-fields label,
.privacy-admin-request-controls label,
.homework-submission-grade label>span{
  font-size:var(--form-label-font-size)!important;
  line-height:1.4;
}
.student-import-modal :is(p,small),
.manual-exam-form-grid small,
.manual-exam-panel-grid small,
.manual-exam-flags small,
.privacy-request-fields small,
.privacy-admin-request-controls small,
.homework-submission-grade small{
  font-size:var(--form-help-font-size)!important;
  line-height:1.45;
}

@media(max-width:620px){
  :root{
    --form-control-height:48px;
    --form-action-height:46px;
  }
}
.launch-week-plan-summary{display:flex;align-items:center;gap:14px}
.launch-week-plan-copy{display:flex;flex:1 1 auto;min-width:0;flex-direction:column;gap:3px}
.launch-week-plan-copy b{font-size:14px}
.launch-week-plan-unit{display:inline-flex;align-self:flex-start;padding:2px 9px;border-radius:999px;background:var(--accent-bg);color:var(--accent-text);font-size:11px;font-weight:700;font-style:normal}
.launch-week-plan-copy small{color:var(--text-secondary);font-size:12px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.launch-week-plan-edit{flex:0 0 auto}
.launch-week-modal{position:fixed;inset:0;z-index:240;display:flex;align-items:center;justify-content:center;padding:22px;background:rgba(15,23,42,.48)}
.launch-week-dialog{display:flex;flex-direction:column;gap:12px;width:100%;max-width:560px;max-height:88vh;overflow:auto;padding:22px;border:1px solid var(--border);border-radius:16px;background:var(--bg);box-shadow:0 24px 60px rgba(15,23,42,.3)}
.launch-week-dialog label{display:flex;flex-direction:column;gap:5px;font-size:13px;font-weight:600}
.launch-week-dialog input{font:inherit;font-weight:400;padding:9px 11px;border:1px solid var(--border);border-radius:9px;background:var(--bg);color:var(--text-primary)}
.launch-week-dialog footer{display:flex;justify-content:flex-end;gap:10px;margin-top:4px}
.launch-review-report{display:flex;flex-direction:column;gap:13px;margin-top:18px}
.launch-review-section{padding:14px 17px;border:1px solid var(--border);border-radius:12px;background:var(--surface-1)}
.launch-review-section h3{display:flex;align-items:center;gap:8px;margin:0 0 8px;font-size:14px}
.launch-review-section ul{margin:6px 0;padding-left:20px;font-size:13px}
.launch-review-section p{margin:4px 0;font-size:13px}
.launch-review-scroll{overflow-x:auto}
.launch-review-table{width:100%;border-collapse:collapse;font-size:12.5px}
.launch-review-table th,.launch-review-table td{padding:6px 9px;border-bottom:1px solid var(--border);text-align:left;vertical-align:top}
.launch-review-table th{color:var(--text-muted);font-size:11px;text-transform:uppercase}
.ed-ai-actions{display:flex;align-items:center;gap:12px;margin:10px 0}
.ed-ai-actions span{font-size:12.5px;color:var(--text-secondary)}
.ed-ai-preview-label{margin:10px 0 6px;font-size:11px;font-weight:800;letter-spacing:.05em;text-transform:uppercase;color:var(--text-muted)}
.ed-ai-preview{min-height:120px;max-height:46vh;overflow:auto;padding:14px;border:1px dashed var(--accent-border);border-radius:12px;background:var(--surface-1)}
.ed-ai-apply{display:flex;flex-wrap:wrap;gap:9px;margin-top:10px}
.course-paragraph-actions{display:flex;gap:5px;margin-right:7px;opacity:0;pointer-events:none;transition:opacity .15s}
.course-inline-authorable:hover .course-paragraph-actions,.course-inline-authorable:focus-within .course-paragraph-actions{opacity:1;pointer-events:auto}
.course-paragraph-actions .ed-handle span{display:none}
.course-dock-tools{display:inline-flex;gap:7px;margin-right:4px}
.ed-history-list{display:flex;flex-direction:column;gap:8px;max-height:46vh;overflow:auto;margin-top:8px}
.ed-history-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:9px 12px;border:1px solid var(--border);border-radius:10px;background:var(--surface-1)}
.ed-history-row span{display:flex;flex-direction:column;gap:2px}
.ed-history-row small{color:var(--text-secondary);font-size:11.5px}
.ed-pi-zone{min-height:180px;max-height:44vh;overflow:auto;margin:10px 0 8px;padding:14px;border:1px dashed var(--accent-border);border-radius:12px;background:var(--surface-1)}
.ed-pi-zone:empty::before{content:attr(data-placeholder);color:var(--text-muted)}
