.portal-body{font-family:'Segoe UI',Arial,sans-serif;background:#f3f6fc;color:#15213d;font-size:15px}button,input,select,textarea{font:inherit}button{cursor:pointer}input,select,textarea{width:100%;padding:12px 14px;border:1px solid #ced9ed;border-radius:9px;color:#15213d;background:white;outline:none}input:focus,select:focus,textarea:focus{border-color:#3366c3;box-shadow:0 0 0 3px #0033a012}input[type=checkbox]{width:18px;height:18px;accent-color:#0033a0;flex-shrink:0}input[type=file]{font-size:13px}textarea{min-height:100px;resize:vertical;line-height:1.6}.initial-loader{min-height:100vh;display:grid;align-content:center;justify-items:center;gap:15px}.initial-loader h2{color:#0033a0;font-size:21px}.portal-shell{display:grid;grid-template-columns:252px minmax(0,1fr);min-height:100vh}.portal-sidebar{position:sticky;top:0;height:100vh;background:#fff;border-right:1px solid #e2e8f4;padding:30px 20px;display:flex;flex-direction:column;z-index:2}.portal-logo{display:flex;align-items:center;gap:10px;color:#0033a0;font-size:24px;font-weight:800;letter-spacing:-1px;padding:0 8px}.portal-logo .brand-icon{width:39px;height:39px;border:0;font-size:23px}.portal-logo small{display:block;font-size:9px;letter-spacing:2px;text-transform:uppercase;color:#7b89a3;margin-top:2px}.side-section{font-size:10px;color:#8d99b1;letter-spacing:1.4px;font-weight:800;margin:40px 12px 13px}.side-nav{display:flex;flex-direction:column;gap:7px}.side-nav button{display:flex;align-items:center;gap:12px;text-align:left;border:0;background:none;color:#66738c;border-radius:10px;padding:13px 15px;font-size:14px;font-weight:600}.side-nav button.active{background:#eaf0ff;color:#0033a0}.side-nav button.active:before{content:'';width:3px;height:18px;background:#0033a0;border-radius:3px;margin-left:-15px;margin-right:9px}.nav-symbol{width:19px;height:19px;display:grid;place-items:center;font-size:18px}.nav-count{margin-left:auto;background:#dce6ff;color:#0033a0;font-size:10px;border-radius:6px;padding:3px 7px}.sidebar-note{margin-top:auto;border-radius:13px;padding:18px 15px;background:linear-gradient(130deg,#062c84,#134db7);color:white;line-height:1.65;font-size:12px}.sidebar-note strong{display:block;color:#fcd116;font-size:13px;margin:7px 0}.sidebar-note p{margin:0;color:#d4e2ff}.sidebar-foot{border-top:1px solid #e9edf6;margin-top:22px;padding:20px 10px 0;font-size:11px;color:#8b97ac}.portal-main{width:100%;max-width:1600px;margin:0 auto;padding:0 38px 35px;min-width:0}.portal-topbar{height:90px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid #e0e7f3;margin-bottom:30px;gap:15px}.portal-breadcrumb{font-size:13px;color:#94a0b6;display:flex;gap:12px;align-items:center}.portal-breadcrumb b{color:#475976;font-weight:600}.portal-user{display:flex;align-items:center;gap:11px}.portal-avatar{width:37px;height:37px;border-radius:50%;background:#fff0a8;color:#0033a0;display:grid;place-items:center;font-weight:800;font-size:13px;border:3px solid white}.portal-user strong{display:block;font-size:12px}.portal-user small{font-size:10px;color:#7f8ca5;text-transform:capitalize}.logout-btn{border:1px solid #dce3f0;background:white;border-radius:7px;padding:7px 10px;font-size:11px;color:#72819c;margin-left:8px}.page-title{display:flex;align-items:center;justify-content:space-between;gap:20px;margin:0 0 25px}.page-title h1{font-size:29px;letter-spacing:-.8px;margin:0 0 7px}.page-title p{font-size:13px;color:#8090aa;margin:0;line-height:1.7}.portal-btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;border:0;background:#0033a0;color:white;padding:12px 17px;border-radius:9px;font-weight:700;font-size:12px;min-height:42px;white-space:nowrap}.portal-btn:hover{background:#164bb9}.portal-btn.yellow{background:#fcd116;color:#001f63}.portal-btn.yellow:hover{background:#f6c700}.portal-btn.ghost{background:white;border:1px solid #d6e0f2;color:#0033a0}.portal-btn.danger{background:#fff0f0;color:#b62d39}.portal-btn:disabled{opacity:.55;cursor:wait}.portal-btn.small{padding:8px 12px;font-size:11px;min-height:33px}.hero-banner{position:relative;overflow:hidden;border-radius:18px;padding:30px 33px;background:linear-gradient(115deg,#001f63,#0033a0 60%,#2264d0);color:white;display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:25px}.hero-banner:after{content:'✦';position:absolute;right:30px;top:-60px;font-size:240px;color:#ffffff08;pointer-events:none}.hero-eyebrow{display:block;letter-spacing:1.7px;font-size:9px;font-weight:800;color:#fcd116;margin-bottom:10px}.hero-banner h2{font-size:28px;letter-spacing:-.6px;margin:0 0 10px;position:relative;z-index:1}.hero-banner p{font-size:13px;color:#cbdbfc;margin:0;line-height:1.8;max-width:540px;position:relative;z-index:1}.hero-banner .portal-btn{position:relative;z-index:1}.metric-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;margin-bottom:27px}.metric{background:white;border:1px solid #e1e8f4;border-radius:13px;padding:20px;display:flex;gap:15px;align-items:center}.metric-symbol{display:grid;place-items:center;width:43px;height:43px;border-radius:11px;background:#eaf0ff;color:#0033a0;font-size:20px;flex-shrink:0}.metric:nth-child(2) .metric-symbol{background:#fff6c9;color:#997408}.metric:nth-child(3) .metric-symbol{background:#e9f5ed;color:#208758}.metric:nth-child(4) .metric-symbol{background:#f1ecfc;color:#7e5cb7}.metric strong{display:block;font-size:25px;line-height:1.3;letter-spacing:-.5px}.metric small{font-size:10px;color:#8390a7}.panel{border:1px solid #e1e7f2;background:white;border-radius:15px;padding:24px;margin-bottom:24px;min-width:0}.panel-header{display:flex;align-items:center;justify-content:space-between;gap:15px;margin-bottom:21px}.panel-header h2{font-size:16px;margin:0;letter-spacing:-.2px}.panel-header p{font-size:12px;color:#8b98af;margin:5px 0 0}.text-button{border:0;background:none;color:#0033a0;font-size:12px;font-weight:700;padding:5px}.course-cards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:15px}.course-card{border:1px solid #e0e8f7;border-radius:12px;padding:20px;background:#fff;position:relative}.course-top{display:flex;justify-content:space-between;align-items:center;margin-bottom:18px}.course-symbol{width:40px;height:40px;border-radius:10px;background:#eaf0ff;display:grid;place-items:center;font-size:22px}.grade-badge{display:inline-block;font-size:10px;font-weight:700;color:#7383a3;background:#f2f5fb;border:1px solid #e4eaf6;padding:4px 8px;border-radius:5px}.course-card h3{font-size:17px;margin:0 0 6px}.course-card p{font-size:11px;color:#8a97ad;margin:0 0 18px}.course-card .text-button{padding:0}.course-card:nth-child(3n+2) .course-symbol{background:#fff7d1}.course-card:nth-child(3n+3) .course-symbol{background:#e8f5ee}.table-wrap{overflow:auto}table{width:100%;border-collapse:collapse;font-size:12px;white-space:nowrap}th{text-align:left;color:#95a1b7;font-size:9px;font-weight:700;text-transform:uppercase;letter-spacing:1px;padding:13px 12px;border-bottom:1px solid #e7edf7;background:#fafbfe}td{padding:17px 12px;border-bottom:1px solid #edf1f8;vertical-align:middle}tbody tr:last-child td{border-bottom:0}.table-name{display:block;color:#263b60;font-size:12px;font-weight:700}.table-sub{display:block;color:#9aa5b8;font-size:10px;margin-top:5px}.table-actions{display:flex;align-items:center;gap:8px}.status-badge{display:inline-flex;align-items:center;gap:5px;padding:5px 8px;border-radius:5px;font-size:9px;font-weight:700;background:#f1f3f7;color:#7f8ca3}.status-badge:before{content:'';width:4px;height:4px;border-radius:50%;background:currentColor}.status-badge.published,.status-badge.submitted{background:#e9f6ed;color:#318b58}.status-badge.draft{background:#fff7dc;color:#b08b21}.status-badge.in_progress{background:#eaf0ff;color:#325fb6}.filter-bar{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-bottom:20px}.filter-bar select{width:auto;max-width:300px;font-size:12px;padding:10px 32px 10px 12px}.filter-bar .search-input{max-width:300px;font-size:12px}.empty-state{text-align:center;padding:40px 20px;color:#8e9cb2;font-size:14px;line-height:1.8}.empty-state strong{display:block;color:#425778;font-size:17px;margin-bottom:6px}.ai-notice{display:flex;align-items:start;gap:10px;padding:15px 18px;background:#fff9e3;border:1px solid #eee1a7;border-radius:10px;color:#8c752e;font-size:12px;line-height:1.7;margin-bottom:23px}.ai-notice strong{display:block;color:#69581f}.ai-notice.connected{background:#eaf5ef;border-color:#cce5d6;color:#32784d}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px}.form-field{display:block;font-size:12px;font-weight:700;color:#4f6181;margin-bottom:17px}.form-field input,.form-field select,.form-field textarea{display:block;margin-top:7px;font-size:14px;font-weight:400}.form-field small{display:block;font-weight:400;color:#93a0b5;font-size:11px;margin-top:6px;line-height:1.6}.span-two{grid-column:span 2}.modal-title{display:flex;justify-content:space-between;align-items:center;margin-bottom:17px}.modal-title h2{margin:0;font-size:22px;color:#0033a0}.modal-close{border:0;background:none;font-size:28px;color:#8492aa}.modal-description{font-size:13px;color:#8190a9;line-height:1.8;margin-bottom:24px}.modal-footer{display:flex;gap:10px;justify-content:flex-end;flex-wrap:wrap;padding-top:20px;border-top:1px solid #e7ecf5;margin-top:20px}#portal-dialog{width:min(720px,calc(100% - 30px));max-height:90vh;overflow:auto;border-radius:17px;padding:28px}#portal-dialog p{font-size:13px}.form-error{color:#b52d3c;background:#fff0f0;border:1px solid #ffd9dd;padding:11px 14px;border-radius:8px;font-size:12px;line-height:1.7;margin:15px 0}.question-editor{border:1px solid #dce5f5;border-radius:12px;padding:22px;margin-bottom:18px;background:white}.question-editor-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:14px}.question-editor-head h3{font-size:14px;margin:0}.question-editor textarea{font-size:18px;min-height:87px}.option-edit-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:15px}.option-edit{display:flex;align-items:center;gap:9px}.option-edit span{width:29px;height:29px;background:#0033a0;color:#fff;border-radius:50%;display:grid;place-items:center;font-size:12px;flex-shrink:0}.editor-key{margin-top:17px;display:flex;gap:14px;align-items:center;flex-wrap:wrap}.editor-key label{font-size:12px;font-weight:600;color:#7385a1}.editor-key select{width:auto;font-size:13px}.key-source{font-size:10px;color:#9e7c13;background:#fff7dc;padding:5px 8px;border-radius:5px}.editor-toolbar{display:flex;gap:12px;justify-content:space-between;align-items:center;margin:20px 0}.learner-checks{display:grid;gap:9px;max-height:300px;overflow:auto}.learner-check{display:flex;align-items:center;gap:12px;padding:12px;border:1px solid #e3eaf5;border-radius:9px;font-size:13px}.learner-check small{margin-left:auto;color:#8f9ab0;font-size:11px}.acknowledgement{display:flex;gap:10px;align-items:flex-start;margin-top:20px;background:#fff9e3;padding:14px;border-radius:9px;font-size:12px;color:#8b7430;line-height:1.7}.login-code{display:inline-block;background:#eaf0ff;color:#0033a0;padding:5px 9px;border-radius:5px;font-family:monospace;letter-spacing:2px;font-size:13px;font-weight:700}.learner-exam-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:19px;margin-bottom:25px}.learner-exam{border:1px solid #dce5f4;border-radius:15px;background:white;overflow:hidden}.learner-exam-banner{background:linear-gradient(120deg,#001f63,#1c55bd);padding:21px 23px;color:#fff;display:flex;justify-content:space-between;align-items:center}.learner-exam-banner h3{font-size:17px;margin:0}.learner-exam-body{padding:23px}.learner-exam-body h2{font-size:22px;line-height:1.4;margin:0 0 10px;letter-spacing:-.4px}.learner-exam-body p{color:#8c9ab1;font-size:12px;margin-bottom:23px}.learner-exam .portal-btn{width:100%}.exam-card-meta{display:flex;justify-content:space-between;gap:15px;font-size:12px;color:#7283a0;margin:18px 0}.score-number{font-size:32px;color:#0033a0;font-weight:800}.score-number small{font-size:15px;color:#8c9ab1;font-weight:400}.rank-badge{width:27px;height:27px;display:grid;place-items:center;border-radius:50%;background:#edf2fb;color:#46618e;font-size:11px;font-weight:800}.rank-badge.top{background:#fff2b0;color:#a1800b}.detail-answer{border:1px solid #e0e7f3;padding:17px;border-radius:10px;margin-bottom:12px}.detail-answer h3{font-size:16px;line-height:1.6;margin:0 0 10px}.detail-answer p{font-size:13px;margin:5px 0;color:#7184a1}.answer-correct{color:#218351!important}.answer-incorrect{color:#bc3341!important}.source-preview{white-space:pre-wrap;font-size:12px;color:#7b8ba8;max-height:350px;overflow:auto;line-height:1.7;background:#f7f9fd;padding:18px;border-radius:8px}.source-details{margin:15px 0;font-size:13px;color:#526b94}.source-details summary{cursor:pointer;padding:10px 0}.login-layout{min-height:100vh;display:grid;grid-template-columns:1.05fr 1fr}.login-brand-panel{background:linear-gradient(140deg,#001846,#0033a0 65%,#245ecb);padding:50px 65px;display:flex;flex-direction:column;color:white;position:relative;overflow:hidden}.login-brand-panel:after{content:'?';position:absolute;bottom:-150px;right:-10px;font-family:Georgia,serif;font-size:680px;line-height:1;color:#ffffff06;pointer-events:none}.login-brand-panel .portal-logo{color:white;padding:0;position:relative;z-index:1}.login-brand-panel .portal-logo small{color:#a9c3ef}.login-brand-content{margin:auto 0;padding:70px 0;position:relative;z-index:1}.login-brand-content .hero-eyebrow{font-size:10px}.login-brand-content h1{font-size:clamp(35px,4vw,59px);letter-spacing:-1.8px;line-height:1.18;margin:20px 0}.login-brand-content h1 span{color:#fcd116}.login-brand-content p{color:#b9cef3;line-height:1.9;font-size:15px;max-width:420px}.login-features{display:flex;flex-wrap:wrap;gap:12px;margin-top:30px}.login-features span{border:1px solid #ffffff26;background:#ffffff08;padding:8px 12px;border-radius:7px;font-size:11px;color:#d2e0fa}.login-brand-foot{font-size:11px;color:#87a7db}.login-form-panel{display:flex;align-items:center;justify-content:center;padding:45px 35px;background:#fafbff}.login-form-inner{width:100%;max-width:420px}.login-form-inner .eyebrow{font-size:10px;letter-spacing:2px;color:#7d90b3;font-weight:800}.login-form-inner h2{color:#172e55;font-size:33px;letter-spacing:-1px;margin:13px 0 10px}.login-form-inner>p{font-size:14px;color:#8b99af;line-height:1.8;margin-bottom:27px}.login-tabs{display:flex;padding:5px;border-radius:10px;background:#eaf0fb;margin-bottom:27px;gap:5px}.login-tabs button{flex:1;border:0;border-radius:7px;padding:11px 12px;background:none;color:#7d8eab;font-size:12px;font-weight:700}.login-tabs button.active{background:white;color:#0033a0;box-shadow:0 3px 8px #0033a00a}.login-form-inner .portal-btn{width:100%;font-size:14px;margin-top:5px;padding:15px}.demo-box{margin-top:25px;border:1px solid #e0e7f4;border-radius:10px;padding:16px;font-size:11px;color:#8c9bb3;line-height:1.8;background:white}.demo-box strong{display:block;color:#637899;margin-bottom:5px}.demo-account{border:0;background:none;color:#0033a0;font-size:11px;text-align:left;padding:3px 0;display:block}.login-preview{text-align:center;font-size:12px;margin-top:22px;color:#7f90ad}.login-preview a{color:#0033a0;font-weight:600}.portal-footer{font-size:10px;color:#9ca8bc;text-align:center;margin-top:24px}.loading-button{opacity:.65;pointer-events:none}#portal-toast{position:fixed;bottom:22px;left:50%;transform:translate(-50%,20px);max-width:calc(100% - 30px);opacity:0;pointer-events:none;border-radius:10px;background:#001f63;color:white;padding:14px 22px;font-size:13px;box-shadow:0 8px 35px #001f6320;transition:all .2s;z-index:100}#portal-toast.visible{opacity:1;transform:translate(-50%,0)}.inline-actions{display:flex;gap:10px;flex-wrap:wrap}.two-panels{display:grid;grid-template-columns:1fr 1fr;gap:22px}.two-panels>.panel{margin:0}.select-all{display:flex;align-items:center;gap:9px;font-size:12px;margin-bottom:15px;color:#6d81a3}.mobile-menu{display:none}.teacher-assignment{display:flex;justify-content:space-between;gap:12px;padding:15px 0;border-bottom:1px solid #edf1f8;font-size:12px}.teacher-assignment:last-child{border:0}.teacher-assignment span{color:#8a98b1}.section-label{color:#8b99af;font-size:10px;letter-spacing:1.5px;font-weight:700;margin:25px 0 15px}.grade-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.grade-card{padding:17px;border:1px solid #e1e8f5;border-radius:10px}.grade-card strong{font-size:14px}.grade-card p{font-size:11px;color:#8b99af;margin:7px 0 0}.error-banner{padding:14px 18px;background:#fff0f0;color:#a93243;border-radius:10px;font-size:13px;line-height:1.7;margin-bottom:20px}.busy-panel{position:fixed;inset:0;background:#001f6340;backdrop-filter:blur(3px);z-index:80;display:grid;place-items:center}.busy-panel>div{padding:35px;background:white;border-radius:17px;max-width:400px;text-align:center;box-shadow:0 20px 80px #001f6330}.busy-panel h2{font-size:20px;color:#0033a0}.busy-panel p{font-size:13px;line-height:1.8;color:#7c8faa}.spinner{width:30px;height:30px;border:3px solid #e3ebfc;border-top-color:#0033a0;border-radius:50%;animation:spin 1s linear infinite;margin:auto}@keyframes spin{to{transform:rotate(360deg)}}@media(min-width:1600px){.portal-main{padding:0 55px 40px}.hero-banner{padding:38px}.metric{padding:25px}}@media(max-width:1150px){.portal-shell{grid-template-columns:210px minmax(0,1fr)}.portal-sidebar{padding:28px 14px}.portal-main{padding:0 25px 30px}.portal-logo{font-size:21px}.metric-grid{gap:10px}.metric{padding:15px 12px;gap:9px}.metric-symbol{width:33px;height:33px;font-size:17px}.metric strong{font-size:22px}.course-cards{grid-template-columns:repeat(2,minmax(0,1fr))}.hero-banner{padding:25px}.hero-banner h2{font-size:25px}.login-brand-panel{padding:45px 40px}.two-panels{grid-template-columns:1fr}.grade-grid{grid-template-columns:repeat(3,1fr)}}@media(max-width:800px){.portal-shell{grid-template-columns:1fr}.portal-sidebar{height:auto;position:relative;padding:18px 20px;border-right:0;border-bottom:1px solid #e1e7f3}.portal-logo{font-size:23px}.portal-logo small{font-size:8px}.side-section,.sidebar-note,.sidebar-foot{display:none}.side-nav{flex-direction:row;gap:5px;overflow:auto;margin-top:17px}.side-nav button{white-space:nowrap;padding:10px 12px;font-size:12px;gap:7px}.side-nav button.active:before{display:none}.nav-symbol{font-size:16px}.nav-count{font-size:9px}.portal-main{padding:0 23px 25px}.portal-topbar{height:75px;margin-bottom:25px}.portal-user strong{font-size:11px}.portal-user small{font-size:9px}.portal-breadcrumb{font-size:11px;gap:7px}.portal-avatar{height:33px;width:33px}.hero-banner h2{font-size:24px}.hero-banner p{font-size:12px}.metric small{font-size:9px}.login-layout{grid-template-columns:1fr}.login-brand-panel{padding:25px 30px}.login-brand-content{padding:30px 0 10px}.login-brand-content h1{font-size:37px;letter-spacing:-1px;margin:15px 0}.login-brand-content p,.login-features,.login-brand-foot{display:none}.login-brand-panel:after{font-size:350px;bottom:-125px}.login-form-panel{padding:35px 25px}.page-title h1{font-size:25px}.panel{padding:20px}.form-grid{gap:12px}}@media(max-width:520px){.portal-sidebar{padding:17px 15px}.side-nav button{padding:10px;font-size:11px}.nav-count{display:none}.portal-main{padding:0 15px 25px}.portal-topbar{gap:8px}.portal-user{gap:7px}.portal-user strong{max-width:95px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.logout-btn{font-size:10px;padding:7px;margin-left:3px}.portal-breadcrumb>span{display:none}.hero-banner{padding:25px 22px;flex-direction:column;align-items:flex-start}.hero-banner h2{font-size:25px}.hero-banner .portal-btn{margin-top:5px}.metric-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.metric{padding:17px 13px;gap:12px}.metric-symbol{width:35px;height:35px}.metric small{font-size:10px}.course-cards{grid-template-columns:1fr}.page-title{align-items:flex-start;gap:12px}.page-title h1{font-size:23px}.page-title p{font-size:12px}.page-title>.portal-btn{padding:10px 12px;font-size:11px}.panel{padding:18px 15px}.panel-header h2{font-size:15px}.filter-bar{gap:9px}.filter-bar select{max-width:100%;flex:1;font-size:11px}.learner-exam-grid{grid-template-columns:1fr}.learner-exam-body h2{font-size:23px}.form-grid{grid-template-columns:1fr}.span-two{grid-column:span 1}.option-edit-grid{grid-template-columns:1fr}.question-editor{padding:17px}.question-editor textarea{font-size:17px}.grade-grid{grid-template-columns:repeat(2,1fr)}.editor-toolbar{align-items:flex-start;gap:10px;flex-wrap:wrap}.login-brand-panel{padding:22px 25px}.login-brand-content h1{font-size:32px}.login-form-inner h2{font-size:29px}.login-form-panel{padding:30px 22px}.login-tabs button{padding:10px 8px;font-size:11px}.modal-title h2{font-size:20px}#portal-dialog{padding:23px}.course-card{padding:19px}.panel-header .text-button{font-size:11px}.portal-btn{white-space:normal}.learner-check small{font-size:10px}.portal-footer{font-size:9px}}@media(prefers-reduced-motion:reduce){.spinner{animation:none}}
/* Keep long administrator navigation inside its own mobile scroll area. */
.portal-sidebar { min-width: 0; }
.side-nav { min-width: 0; }
.page-title > div { min-width: 0; }
@media (max-width: 800px) {
  .portal-shell { grid-template-columns: minmax(0, 1fr); }
  .portal-sidebar { width: 100%; }
  .side-nav { width: 100%; }
  .side-nav button { flex-shrink: 0; }
}
@media (max-width: 520px) {
  .page-title:has(.inline-actions) { flex-wrap: wrap; }
  .page-title .inline-actions { max-width: 100%; }
  .header-tools { flex-wrap: wrap; justify-content: flex-end; max-width: 140px; }
}
/* Large, readable menus and comfortable button targets throughout the workspace. */
.portal-shell { grid-template-columns: 288px minmax(0, 1fr); }
.portal-sidebar { overflow-y: auto; }
.side-nav { gap: 9px; }
.side-nav button { min-height: 54px; padding: 15px 16px; font-size: 17px; line-height: 1.45; }
.nav-symbol { width: 23px; height: 23px; font-size: 23px; }
.nav-count { font-size: 13px; padding: 4px 8px; }
.side-section { font-size: 12px; }
.portal-btn, .portal-btn.small { min-height: 50px; padding: 13px 20px; font-size: 16px; line-height: 1.4; }
.portal-btn.small { min-height: 46px; padding: 11px 15px; font-size: 15px; }
.text-button, .panel-header .text-button { min-height: 44px; padding: 10px 5px; font-size: 15px; line-height: 1.5; }
.logout-btn { min-height: 44px; padding: 10px 14px; font-size: 14px; }
.login-tabs button { min-height: 52px; padding: 13px 12px; font-size: 16px; }
.login-form-inner .portal-btn { min-height: 56px; font-size: 18px; }
.demo-account { min-height: 44px; font-size: 14px; padding: 9px 0; line-height: 1.5; }
.form-field { font-size: 15px; }
.form-field input, .form-field select, .form-field textarea,
.filter-bar select, .filter-bar .search-input, .editor-key select {
  min-height: 50px; padding: 12px 15px; font-size: 16px;
}
input, select { font-size: 16px; }
input[type=file] { font-size: 15px; }
input[type=file]::file-selector-button { padding: 10px 13px; margin-right: 12px; border: 1px solid #cbd8ef; border-radius: 7px; background: #eaf0ff; color: #0033a0; font-size: 15px; font-weight: 600; cursor: pointer; }
input[type=checkbox] { width: 22px; height: 22px; }
.modal-close { min-width: 48px; min-height: 48px; font-size: 36px; }
.learner-check, .select-all, .acknowledgement { font-size: 15px; line-height: 1.6; }
.learner-check { min-height: 54px; }
.learner-exam .portal-btn { min-height: 54px; }
.table-actions { gap: 10px; }
.editor-key label { font-size: 15px; }
.portal-breadcrumb { font-size: 14px; }
@media (max-width: 1150px) and (min-width: 801px) {
  .portal-shell { grid-template-columns: 260px minmax(0, 1fr); }
  .metric-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 800px) {
  .portal-shell { grid-template-columns: minmax(0, 1fr); }
  .portal-sidebar { overflow: visible; }
  .side-nav { gap: 8px; padding-bottom: 5px; }
  .side-nav button { min-height: 50px; padding: 12px 15px; font-size: 16px; }
  .nav-symbol { font-size: 21px; }
  .portal-topbar { height: auto; min-height: 84px; padding: 15px 0; flex-wrap: wrap; }
}
@media (max-width: 520px) {
  .portal-btn, .portal-btn.small, .page-title > .portal-btn { min-height: 48px; padding: 12px 16px; font-size: 16px; }
  .page-title { flex-wrap: wrap; }
  .page-title > .portal-btn { width: 100%; }
  .page-title .inline-actions { width: 100%; }
  .page-title .inline-actions .portal-btn { flex: 1; }
  .filter-bar select { flex: 1 1 100%; max-width: 100%; font-size: 16px; }
  .login-tabs button { font-size: 15px; padding: 12px 8px; }
  .logout-btn { min-height: 44px; font-size: 14px; padding: 10px 12px; }
  .portal-user { flex-wrap: wrap; }
  .editor-toolbar .inline-actions { width: 100%; }
  .editor-toolbar .portal-btn { flex: 1; }
  .dialog-actions { flex-wrap: wrap; }
}
/* Compact spacing while retaining the larger type and control targets. */
.portal-shell { grid-template-columns: 264px minmax(0, 1fr); }
.portal-sidebar { padding: 24px 16px; }
.side-section { margin: 25px 12px 10px; }
.side-nav { gap: 5px; }
.side-nav button { padding: 11px 14px; min-height: 50px; }
.sidebar-note { margin-top: 24px; padding: 15px; }
.sidebar-foot { margin-top: 16px; padding-top: 15px; }
.portal-main { padding: 0 28px 24px; }
.portal-topbar { height: 70px; margin-bottom: 20px; }
.page-title { margin-bottom: 16px; }
.page-title h1 { margin-bottom: 4px; }
.hero-banner { padding: 22px 25px; margin-bottom: 17px; }
.hero-eyebrow { margin-bottom: 7px; }
.hero-banner h2 { margin-bottom: 6px; }
.metric-grid { gap: 12px; margin-bottom: 18px; }
.metric { padding: 15px; gap: 12px; }
.panel { padding: 18px; margin-bottom: 17px; }
.panel-header { margin-bottom: 13px; }
.course-cards { gap: 12px; }
.course-card { padding: 16px; }
.course-top { margin-bottom: 11px; }
.course-card p { margin-bottom: 7px; }
.course-card h3 { margin-bottom: 4px; }
.course-card .text-button { padding-top: 6px; padding-bottom: 6px; }
th { padding: 11px 10px; }
td { padding: 11px 10px; }
.table-sub { margin-top: 3px; }
.filter-bar { margin-bottom: 14px; gap: 10px; }
.ai-notice { padding: 12px 15px; margin-bottom: 16px; }
.form-grid { gap: 14px; }
.form-field { margin-bottom: 13px; }
.form-field input, .form-field select, .form-field textarea { margin-top: 5px; }
.question-editor { padding: 18px; margin-bottom: 13px; }
.question-editor-head { margin-bottom: 10px; }
.option-edit-grid { gap: 10px; margin-top: 12px; }
.editor-key { margin-top: 12px; }
.editor-toolbar { margin: 14px 0; }
.learner-exam-grid { gap: 15px; margin-bottom: 18px; }
.learner-exam-banner { padding: 17px 20px; }
.learner-exam-body { padding: 19px; }
.learner-exam-body p { margin-bottom: 16px; }
.exam-card-meta { margin: 13px 0; }
.modal-description { margin-bottom: 16px; }
.modal-footer { margin-top: 14px; padding-top: 14px; }
.portal-footer { margin-top: 16px; }
.two-panels { gap: 16px; }
@media (min-width: 1600px) {
  .portal-main { padding: 0 35px 26px; }
  .hero-banner { padding: 24px 28px; }
  .metric { padding: 17px; }
}
@media (max-width: 1150px) and (min-width: 801px) {
  .portal-shell { grid-template-columns: 248px minmax(0, 1fr); }
  .portal-main { padding: 0 22px 24px; }
}
@media (max-width: 800px) {
  .portal-shell { grid-template-columns: minmax(0, 1fr); }
  .portal-sidebar { padding: 16px 20px 10px; }
  .side-nav { margin-top: 12px; gap: 6px; }
  .side-nav button { padding: 10px 13px; }
  .portal-main { padding: 0 20px 20px; }
  .portal-topbar { height: auto; min-height: 68px; padding: 10px 0; margin-bottom: 17px; }
}
@media (max-width: 520px) {
  .portal-sidebar { padding: 15px 15px 8px; }
  .portal-main { padding: 0 15px 18px; }
  .page-title { gap: 10px; margin-bottom: 14px; }
  .hero-banner { padding: 20px; gap: 12px; margin-bottom: 15px; }
  .metric-grid { gap: 9px; margin-bottom: 17px; }
  .metric { padding: 13px; gap: 10px; }
  .panel { padding: 15px 13px; }
  .panel-header { gap: 10px; }
  .course-card { padding: 15px; }
  .form-grid { gap: 8px; }
  .question-editor { padding: 15px; }
  .learner-exam-body { padding: 17px; }
}
/* Learner workspace: full-width content with top navigation only. */
.learner-shell { min-height: 100vh; }
.learner-header { background: #fff; border-bottom: 1px solid #dce5f5; box-shadow: 0 3px 14px #0033a004; }
.learner-topbar { max-width: 1360px; margin: 0 auto; padding: 17px 28px; display: flex; align-items: center; gap: 24px; }
.learner-topbar .portal-logo { padding: 0; flex-shrink: 0; }
.learner-nav { display: flex; gap: 10px; margin-left: auto; }
.learner-nav-button { display: flex; align-items: center; justify-content: center; gap: 10px; min-height: 56px; border: 1px solid #dbe5f8; border-radius: 11px; padding: 14px 21px; background: #f7f9ff; color: #325484; font-size: 18px; font-weight: 700; line-height: 1.4; }
.learner-nav-button:hover { background: #eaf0ff; border-color: #9bb7ec; }
.learner-nav-button.active { background: #0033a0; color: #fff; border-color: #0033a0; box-shadow: 0 4px 12px #0033a018; }
.learner-nav-button .nav-symbol { width: 22px; height: 22px; font-size: 22px; }
.learner-nav-count { border-radius: 6px; padding: 3px 7px; font-size: 13px; background: #e4ecff; color: #0033a0; }
.learner-nav-button.active .learner-nav-count { background: #fcd116; color: #001f63; }
.learner-account { display: flex; align-items: center; gap: 10px; flex-shrink: 0; }
.learner-account-name strong { display: block; font-size: 14px; color: #263b60; }
.learner-account-name small { display: block; font-size: 12px; color: #8091ad; margin-top: 3px; }
.learner-signout { min-height: 52px; margin-left: 5px; }
.learner-main { width: 100%; max-width: 1250px; margin: 0 auto; padding: 18px 28px 24px; }
.learner-page-label { display: flex; align-items: center; gap: 10px; color: #8091ad; font-size: 11px; font-weight: 600; letter-spacing: .7px; margin: 0 0 16px; }
.learner-page-label span { color: #b7c3d8; }
.learner-main .learner-exam-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.learner-main .learner-exam-body h2 { font-size: 23px; }
.learner-main .learner-exam .portal-btn { min-height: 56px; font-size: 17px; }
@media (max-width: 1150px) {
  .learner-topbar { flex-wrap: wrap; gap: 14px; padding: 15px 24px; }
  .learner-topbar .portal-logo { margin-right: auto; }
  .learner-nav { order: 3; margin: 0; width: 100%; }
  .learner-nav-button { flex: 1; }
  .learner-main .learner-exam-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .learner-main { padding: 18px 24px 22px; }
}
@media (max-width: 680px) {
  .learner-topbar { padding: 16px; gap: 14px; }
  .learner-topbar .portal-logo { font-size: 24px; }
  .learner-account { width: 100%; gap: 10px; order: 2; }
  .learner-account-name { margin-right: auto; min-width: 0; }
  .learner-account-name strong { font-size: 15px; overflow-wrap: anywhere; }
  .learner-signout { min-height: 48px; padding: 12px 16px; font-size: 16px; }
  .learner-nav { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 9px; }
  .learner-nav-button { padding: 13px 10px; min-height: 56px; font-size: 16px; gap: 7px; }
  .learner-nav-button .nav-symbol { font-size: 20px; width: 20px; height: 20px; }
  .learner-nav-count { font-size: 12px; padding: 3px 6px; }
  .learner-main { padding: 16px; }
  .learner-main .learner-exam-grid { grid-template-columns: minmax(0, 1fr); }
  .learner-main .hero-banner { padding: 20px; }
  .learner-main .metric-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .learner-page-label { margin-bottom: 13px; font-size: 10px; }
}
/* Learners see all assigned subjects in compact rows, without the hero or large cards. */
.learner-main { max-width: 1200px; padding-top: 14px; }
.learner-page-label { display: none; }
.learner-main .portal-footer { margin-top: 12px; }
.learner-compact-heading { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin: 0 0 12px; }
.learner-compact-heading h1 { font-size: 27px; line-height: 1.25; letter-spacing: -.6px; margin: 0 0 5px; }
.learner-compact-heading p { font-size: 13px; color: #8091ad; line-height: 1.5; margin: 0; }
.learner-summary { display: flex; align-items: center; flex-wrap: wrap; gap: 22px; padding: 11px 15px; border: 1px solid #dfe7f5; border-radius: 9px; background: #fff; margin-bottom: 12px; color: #7b8eab; font-size: 13px; }
.learner-summary b { color: #0033a0; margin-right: 4px; }
.learner-subject-list { display: grid; gap: 10px; }
.learner-subject-row { display: grid; grid-template-columns: minmax(0,1fr) 175px 165px; align-items: center; gap: 20px; min-height: 98px; border: 1px solid #dfe7f5; border-radius: 12px; padding: 15px 20px; background: #fff; }
.learner-subject-info { display: flex; align-items: center; gap: 14px; min-width: 0; }
.learner-subject-info>div { min-width: 0; }
.learner-subject-icon { display: grid; place-items: center; flex-shrink: 0; width: 44px; height: 44px; border-radius: 10px; background: #eaf0ff; color: #0033a0; font-size: 24px; }
.learner-subject-info h2 { font-size: 20px; line-height: 1.3; margin: 0 0 3px; color: #173361; }
.learner-subject-info p { font-size: 13px; color: #6c809f; line-height: 1.4; margin: 0 0 3px; overflow-wrap: anywhere; }
.learner-subject-meta { font-size: 11px; color: #95a2b7; }
.learner-subject-state { display: flex; flex-direction: column; align-items: flex-start; gap: 7px; }
.learner-subject-state>strong { display: flex; gap: 10px; align-items: center; font-size: 17px; color: #0033a0; }
.learner-subject-state small { font-size: 12px; font-weight: 500; color: #8494ad; }
.learner-subject-action .portal-btn { width: 100%; min-height: 50px; font-size: 16px; padding: 12px 15px; }
@media (max-width: 1150px) {
  .learner-topbar { padding: 12px 20px; gap: 10px; }
  .learner-nav-button { min-height: 50px; padding-top: 11px; padding-bottom: 11px; }
}
@media (max-width: 680px) {
  .learner-topbar { padding: 12px 15px; gap: 10px; }
  .learner-topbar .portal-logo { font-size: 22px; }
  .learner-topbar .portal-logo .brand-icon { width: 34px; height: 34px; font-size: 21px; }
  .learner-account { gap: 8px; }
  .learner-account .portal-avatar { width: 30px; height: 30px; }
  .learner-account-name strong { font-size: 14px; }
  .learner-signout { min-height: 44px; padding: 10px 13px; }
  .learner-nav-button { min-height: 50px; }
  .learner-main { padding: 13px 15px; }
  .learner-compact-heading { margin-bottom: 10px; }
  .learner-compact-heading h1 { font-size: 23px; }
  .learner-compact-heading p { font-size: 11px; }
  .learner-summary { gap: 12px; padding: 9px 11px; margin-bottom: 10px; font-size: 11px; }
  .learner-subject-list { gap: 8px; }
  .learner-subject-row { grid-template-columns: minmax(0,1fr) 112px; gap: 6px 10px; min-height: 105px; padding: 12px; }
  .learner-subject-icon { display: none; }
  .learner-subject-info { gap: 0; }
  .learner-subject-info h2 { font-size: 18px; }
  .learner-subject-info p { font-size: 12px; }
  .learner-subject-meta { font-size: 10px; }
  .learner-subject-state { grid-column: 2; grid-row: 1; gap: 4px; align-items: flex-end; }
  .learner-subject-state .status-badge { font-size: 9px; padding: 3px 6px; }
  .learner-subject-state>strong { font-size: 15px; gap: 6px; }
  .learner-subject-action { grid-column: 2; }
  .learner-subject-info { grid-row: 1 / span 2; }
  .learner-subject-action .portal-btn { min-height: 44px; font-size: 14px; padding: 10px; }
  .learner-main .portal-footer { font-size: 9px; margin-top: 10px; }
}
@media (max-height: 740px) and (min-width: 681px) {
  .learner-subject-row { min-height: 82px; padding-top: 10px; padding-bottom: 10px; }
  .learner-topbar { padding-top: 10px; padding-bottom: 10px; }
  .learner-main { padding-top: 12px; }
}
.learner-submitted-label { display: flex; align-items: center; justify-content: center; min-height: 48px; padding: 10px 12px; border: 1px solid #d7e9dd; border-radius: 9px; background: #f0f8f3; color: #3d8058; font-size: 15px; font-weight: 600; }
/* Separate pending and completed summatives without revealing results. */
.learner-exam-tabs { display: flex; gap: 10px; margin: 0 0 14px; padding-bottom: 12px; border-bottom: 1px solid #dce5f4; }
.learner-exam-tab { display: flex; align-items: center; justify-content: center; gap: 12px; min-height: 54px; padding: 13px 22px; border: 1px solid #d5e0f4; border-radius: 10px; background: #fff; color: #46618c; font-size: 17px; font-weight: 700; line-height: 1.4; }
.learner-exam-tab:hover { background: #eaf0ff; }
.learner-exam-tab.active { background: #0033a0; border-color: #0033a0; color: #fff; }
.learner-tab-count { display: grid; place-items: center; min-width: 26px; min-height: 25px; padding: 2px 7px; background: #eaf0ff; border-radius: 6px; color: #0033a0; font-size: 13px; }
.learner-exam-tab.active .learner-tab-count { background: #fcd116; color: #001f63; }
.learner-tab-panel { outline: none; }
.learner-tab-panel:focus-visible { outline: 2px solid #9bb7ec; outline-offset: 4px; }
.learner-tab-panel .empty-state { padding: 32px 20px; background: #fff; border: 1px solid #dfe7f5; border-radius: 12px; font-size: 14px; }
@media (max-width: 680px) {
  .learner-exam-tabs { display: grid; grid-template-columns: minmax(0,1fr) minmax(0,1.35fr); gap: 8px; margin-bottom: 10px; padding-bottom: 10px; }
  .learner-exam-tab { gap: 7px; padding: 12px 9px; min-height: 52px; font-size: 15px; }
  .learner-tab-count { font-size: 12px; min-width: 22px; min-height: 23px; padding: 2px 5px; }
  .learner-tab-panel .empty-state { font-size: 13px; padding: 25px 17px; }
}
.learner-compact-heading > .grade-badge { flex-shrink: 0; white-space: nowrap; }
.learner-submitted-label { white-space: nowrap; gap: 6px; }
@media (max-width: 680px) { .learner-submitted-label { font-size: 14px; padding: 10px 8px; } }
@media (max-width: 680px) { .learner-nav { grid-template-columns: minmax(0, 1fr); } }
/* Compact learner subject grid; smaller displays use pages instead of long scrolling. */
.learner-subject-list { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 12px; align-items: stretch; }
.learner-subject-row { display: flex; flex-direction: column; align-items: stretch; justify-content: flex-start; gap: 9px; padding: 14px; min-height: 166px; border-top: 3px solid #0033a0; }
.learner-subject-info { display: block; flex: 1; min-width: 0; }
.learner-subject-icon { display: none; }
.learner-subject-info h2 { display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 2; overflow: hidden; font-size: 18px; line-height: 1.3; margin-bottom: 5px; overflow-wrap: anywhere; }
.learner-subject-info p { display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 2; overflow: hidden; font-size: 12px; line-height: 1.4; margin-bottom: 4px; }
.learner-subject-state { display: flex; align-items: flex-start; min-height: 18px; }
.learner-subject-action { width: 100%; }
.learner-subject-action .portal-btn { min-height: 44px; padding: 10px 12px; font-size: 15px; }
.learner-submitted-label { min-height: 44px; }
.learner-grid-pagination { display: flex; align-items: center; justify-content: center; gap: 18px; margin-top: 12px; }
.learner-grid-pagination>span { font-size: 12px; color: #8293ad; }
.learner-grid-pagination .portal-btn { min-height: 44px; padding: 10px 16px; font-size: 14px; }
.learner-grid-pagination button:disabled { opacity: .4; cursor: default; }
@media (max-width: 1100px) { .learner-subject-list { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
@media (max-width: 680px) {
  .learner-subject-list { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 9px; }
  .learner-subject-row { min-height: 166px; padding: 12px; gap: 7px; }
  .learner-subject-info h2 { font-size: 16px; }
  .learner-subject-info p { font-size: 11px; }
  .learner-subject-state { align-items: flex-start; }
  .learner-subject-state .status-badge { font-size: 8px; }
  .learner-subject-action .portal-btn { min-height: 44px; font-size: 14px; padding: 10px 8px; }
  .learner-grid-pagination { gap: 10px; }
  .learner-grid-pagination .portal-btn { padding: 10px 12px; font-size: 13px; }
}
/* Learner pages navigate through Summative tabs, without a redundant dashboard button. */
.learner-topbar .portal-logo { margin-right: auto; }
.learner-topbar { justify-content: space-between; }
@media (max-width: 680px) {
  .learner-topbar { padding-bottom: 12px; }
}
/* Distinct, readable colored backgrounds for learner subject names. */
.learner-subject-info h2.learner-subject-name { display: block; padding: 9px 11px; margin: 0 0 10px; min-height: 40px; border-radius: 7px; background: #224b9a; color: #fff; font-size: 17px; line-height: 1.35; }
.learner-subject-name > span { display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 2; overflow: hidden; }
.learner-subject-info h2.subject-science { background: #17664e; }
.learner-subject-info h2.subject-math { background: #224b9a; }
.learner-subject-info h2.subject-english { background: #70439a; }
.learner-subject-info h2.subject-filipino { background: #a83e50; }
.learner-subject-info h2.subject-ap { background: #8e5b13; }
.learner-subject-info h2.subject-values { background: #5c54a0; }
.learner-subject-info h2.subject-mapeh { background: #086a79; }
.learner-subject-info h2.subject-tle { background: #8b4c21; }
@media (max-width: 680px) {
  .learner-subject-info h2.learner-subject-name { padding: 8px 9px; font-size: 16px; min-height: 38px; margin-bottom: 8px; }
}
/* A consistent hand-drawn-style vector icon set for the subject headers. */
.learner-subject-info h2.learner-subject-name { display: flex; align-items: center; gap: 9px; padding: 8px 10px; }
.learner-subject-name > .subject-icon-badge { display: grid; place-items: center; flex: 0 0 34px; width: 34px; height: 34px; border-radius: 9px; background: #ffffff20; border: 1px solid #ffffff25; box-shadow: inset 0 1px 0 #ffffff12; }
.subject-icon-badge svg { width: 25px; height: 25px; stroke-width: 1.55; color: #fff; }
.learner-subject-name > .subject-name-text { min-width: 0; flex: 1; }
@media (max-width: 680px) {
  .learner-subject-info h2.learner-subject-name { padding: 8px; gap: 7px; }
  .learner-subject-name > .subject-icon-badge { flex-basis: 28px; width: 28px; height: 28px; border-radius: 7px; }
  .subject-icon-badge svg { width: 21px; height: 21px; }
}
.source-instructions { white-space: pre-wrap; font-size: 18px; line-height: 1.6; }
.source-label-notice { padding: 12px 16px; background: #fff5d6; color: #6d5100; border-radius: 10px; font-size: 15px; }
.editor-key select { max-width: min(100%, 480px); }

/* Readable workspace typography, including submission tables and supporting text. */
.portal-shell { font-size: 18px; line-height: 1.5; }
.portal-shell .page-title h1 { font-size: 36px; line-height: 1.2; }
.portal-shell .page-title p, .portal-shell .portal-breadcrumb { font-size: 17px; color: #536786; }
.portal-shell .portal-user strong { font-size: 17px; }
.portal-shell .portal-user small { font-size: 14px; color: #536786; }
.portal-shell .portal-topbar { height: auto; min-height: 76px; padding: 10px 0; }
.portal-shell .side-nav button, .portal-shell .portal-btn,
.portal-shell .portal-btn.small, .portal-shell .text-button { font-size: 18px; }
.portal-shell .logout-btn { font-size: 16px; }
.portal-shell .form-field { font-size: 18px; }
.portal-shell input, .portal-shell select, .portal-shell textarea,
.portal-shell .filter-bar select, .portal-shell .filter-bar .search-input { font-size: 18px; }
.portal-shell .filter-bar select { max-width: min(100%, 380px); }
.portal-shell table { font-size: 18px; line-height: 1.5; }
.portal-shell th { font-size: 14px; letter-spacing: .6px; color: #526585; }
.portal-shell td { padding: 14px 12px; }
.portal-shell .table-name { font-size: 18px; }
.portal-shell .table-sub { font-size: 15px; color: #536786; }
.portal-shell .status-badge { font-size: 14px; padding: 6px 10px; }
.portal-shell .grade-badge { font-size: 14px; }
.portal-shell .panel-header h2 { font-size: 23px; }
.portal-shell .panel-header p, .portal-shell .course-card p,
.portal-shell .metric small, .portal-shell .hero-banner p { font-size: 16px; }
.portal-shell .course-card h3 { font-size: 23px; }
.portal-shell .ai-notice, .portal-shell .sidebar-note { font-size: 16px; }
.portal-shell .sidebar-note strong { font-size: 17px; }
.portal-shell .portal-footer, .portal-shell .sidebar-foot { font-size: 14px; color: #536786; }
#portal-dialog .modal-description, #portal-dialog .form-field,
#portal-dialog input, #portal-dialog select, #portal-dialog textarea,
#portal-dialog .learner-check, #portal-dialog .acknowledgement { font-size: 18px; }
@media (max-width: 680px) {
  .portal-shell .page-title h1 { font-size: 30px; }
  .portal-shell .portal-topbar { flex-wrap: wrap; }
  .portal-shell .portal-user { flex-wrap: wrap; }
  .portal-shell .filter-bar select { max-width: 100%; }
}
.status-badge.archived { background: #f0edf7; color: #62547a; }
.table-actions { flex-wrap: wrap; min-width: 210px; }
