/* Flycoded UI system. Loaded last so it safely unifies legacy view styling. */
:root {
  --font-family: Inter, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
  --font-xs:12px; --font-sm:13px; --font-base:15px; --font-md:16px; --font-lg:18px; --font-xl:22px; --font-2xl:28px; --font-3xl:32px;
  --primary:var(--brand-navy,#0A1B3D); --primary-strong:#06152f; --accent:var(--brand-orange,#FF6A00); --accent-hover:#d95700;
  --background:var(--site-bg,#f5f7fb); --surface:#fff; --surface-soft:#f8fafc; --text-primary:#182230; --text-secondary:#5f6e85;
  --border:#dfe5ee; --border-strong:#cbd5e1; --success:#16834d; --warning:#a55c00; --danger:#b43228; --info:#1f5fa9;
  --space-1:4px; --space-2:8px; --space-3:12px; --space-4:16px; --space-5:20px; --space-6:24px; --space-7:32px;
  --radius-sm:8px; --radius-md:10px; --radius-lg:14px; --shadow-sm:0 1px 3px rgba(16,24,40,.06); --shadow-md:0 6px 18px rgba(16,24,40,.07);
  --navy:var(--primary); --orange:var(--accent); --ink:var(--text-primary); --muted:var(--text-secondary); --line:var(--border); --soft:var(--background); --radius:var(--radius-lg); --shadow:var(--shadow-md);
}
html{overflow-x:hidden} *,*::before,*::after{box-sizing:border-box}
body,button,input,select,textarea{font-family:var(--font-family)!important}body{min-width:320px;color:var(--text-primary);font-size:var(--font-base);line-height:1.55;background:var(--background)}
img,svg,video,canvas{max-width:100%}button,input,select,textarea{font:inherit}button{cursor:pointer}button:disabled,input:disabled,select:disabled,textarea:disabled{cursor:not-allowed;opacity:.62}a{text-underline-offset:2px}
:is(a,button,input,select,textarea,summary):focus-visible{outline:3px solid rgba(255,106,0,.30)!important;outline-offset:2px}

/* Global typography: no functional text should fall below the 13px helper scale. */
h1,h2,h3,h4,p{overflow-wrap:anywhere}h1{font-size:clamp(27px,3vw,32px)!important;line-height:1.16;letter-spacing:-.035em}h2{font-size:clamp(20px,2vw,24px)!important;line-height:1.25;letter-spacing:-.02em}h3{font-size:var(--font-lg)!important;line-height:1.35}p,li{font-size:var(--font-base)}small,.helper-text,.field-help,.muted{font-size:var(--font-sm)!important;line-height:1.5}code{font-size:var(--font-sm)}

/* Reusable layout, card and page-header primitives. */
.container,.home-container{width:min(calc(100% - 40px),var(--site-max,1480px));margin-inline:auto}.narrow{width:min(920px,100%)}.section,.public-section{padding-block:clamp(48px,6vw,72px)}.section-heading,.public-heading{margin-bottom:var(--space-6)}.section-heading p,.public-heading p,.lead{color:var(--text-secondary);font-size:var(--font-md)!important;line-height:1.65}.eyebrow,.course-tag,.portal-kicker{font-size:var(--font-sm)!important;font-weight:800;letter-spacing:.07em}
.card,.portal-panel,.table-card,.mini-card,.card-lite,.course-enrol-card,.auth-card,.empty,.empty-cell,.portal-empty{background:var(--surface)!important;border:1px solid var(--border)!important;border-radius:var(--radius-lg)!important;box-shadow:var(--shadow-sm)!important}.card,.portal-panel,.mini-card,.card-lite,.course-enrol-card{padding:var(--space-5)!important}.card>:last-child,.portal-panel>:last-child,.mini-card>:last-child,.card-lite>:last-child{margin-bottom:0}.card h2,.portal-panel h2,.table-card h2{margin:0 0 var(--space-2);font-size:var(--font-lg)!important}.card h3,.portal-panel h3{margin:0 0 var(--space-2);font-size:var(--font-md)!important}.card p,.portal-panel p{color:var(--text-secondary);font-size:var(--font-base)!important;line-height:1.6}
.card-grid,.dashboard-grid,.portal-grid,.portal-action-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:var(--space-4)!important}.split{gap:var(--space-5)!important}.page-header,.dashboard-head,.portal-page-head,.lesson-head{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--space-4);margin-bottom:var(--space-6)!important}.page-header>div,.dashboard-head>div,.portal-page-head>div,.lesson-head>div{min-width:0}.page-header h1,.dashboard-head h1,.portal-page-head h1,.lesson-head h1{margin:0 0 var(--space-1)}.page-header p,.dashboard-head p,.portal-page-head p,.lesson-head p{margin:0;color:var(--text-secondary);font-size:var(--font-base)!important}.hero-actions,.inline-actions,.card-actions{display:flex;align-items:center;gap:var(--space-2);flex-wrap:wrap}

/* Unified button, badge, input and selection-control system. */
.btn,.home-btn,.auth-primary-btn,.load-more,.portal-topbar .topbar-quick{display:inline-flex!important;align-items:center;justify-content:center;gap:8px;min-height:42px!important;padding:9px 15px!important;border:1px solid var(--accent)!important;border-radius:var(--radius-md)!important;background:var(--accent)!important;color:#fff!important;font-size:14px!important;font-weight:700!important;line-height:1.25;text-align:center;text-decoration:none;transition:background-color .18s ease,border-color .18s ease,transform .18s ease,box-shadow .18s ease}.btn:hover,.home-btn:hover,.auth-primary-btn:hover,.load-more:hover,.portal-topbar .topbar-quick:hover{background:var(--accent-hover)!important;border-color:var(--accent-hover)!important;color:#fff!important;box-shadow:0 5px 12px rgba(255,106,0,.18);transform:translateY(-1px)}.btn-small{min-height:36px!important;padding:7px 11px!important;font-size:var(--font-sm)!important}.btn-ghost,.btn-outline{background:var(--surface)!important;border-color:var(--border-strong)!important;color:var(--primary)!important;box-shadow:none!important}.btn-ghost:hover,.btn-outline:hover{background:var(--surface-soft)!important;border-color:var(--primary)!important;color:var(--primary)!important}.btn-danger{background:var(--danger)!important;border-color:var(--danger)!important}.btn-danger:hover{background:#942b25!important;border-color:#942b25!important}.link-button{color:var(--primary);font-size:var(--font-sm)!important;font-weight:700}
.badge{display:inline-flex!important;align-items:center;min-height:25px;padding:4px 9px!important;border-radius:999px!important;font-size:var(--font-xs)!important;font-weight:700!important;letter-spacing:0!important;line-height:1.2;text-transform:capitalize!important}
label{color:#344054;font-size:14px!important;font-weight:650;line-height:1.4}label small{display:block;margin-top:4px;color:var(--text-secondary);font-weight:500}
input:not([type="hidden"]):not([type="checkbox"]):not([type="radio"]):not([type="file"]):not([type="range"]),select,textarea{width:100%!important;min-height:44px!important;margin-top:7px;padding:10px 12px!important;border:1px solid var(--border-strong)!important;border-radius:var(--radius-md)!important;background:var(--surface)!important;color:var(--text-primary)!important;font-size:var(--font-base)!important;line-height:1.35;box-shadow:0 1px 2px rgba(16,24,40,.03)}textarea{min-height:112px!important;resize:vertical}input:not([type="hidden"]):not([type="checkbox"]):not([type="radio"]):not([type="file"]):not([type="range"]):focus,select:focus,textarea:focus{border-color:var(--accent)!important;box-shadow:0 0 0 3px rgba(255,106,0,.12)!important;outline:none}
input[type="checkbox"],input[type="radio"]{width:18px!important;height:18px!important;min-height:0!important;margin:0!important;padding:0!important;flex:0 0 18px!important;accent-color:var(--accent)!important;vertical-align:middle;cursor:pointer}.checkbox-wrapper,label.check,label.option,.auth-consent,.option{display:flex!important;align-items:center;gap:8px}label.check,label.option{min-height:44px;padding:9px 12px!important;border:1px solid var(--border)!important;border-radius:var(--radius-md)!important;background:var(--surface-soft)!important}
label.toggle input[type="checkbox"],.toggle input[type="checkbox"]{position:relative;width:42px!important;height:24px!important;flex-basis:42px!important;appearance:none;border:1px solid #c6d0dd;border-radius:999px;background:#cbd5e1;transition:background-color .18s ease,border-color .18s ease}label.toggle input[type="checkbox"]::after,.toggle input[type="checkbox"]::after{content:"";position:absolute;top:3px;left:3px;width:16px;height:16px;border-radius:50%;background:#fff;box-shadow:0 1px 2px rgba(16,24,40,.22);transition:transform .18s ease}label.toggle input[type="checkbox"]:checked,.toggle input[type="checkbox"]:checked{background:var(--accent);border-color:var(--accent)}label.toggle input[type="checkbox"]:checked::after,.toggle input[type="checkbox"]:checked::after{transform:translateX(18px)}
.form-grid,.auth-form-grid{gap:var(--space-4)!important}.form-divider{margin-block:var(--space-5)!important;padding-bottom:var(--space-5)!important}.info-box{padding:var(--space-3) var(--space-4)!important;border-radius:var(--radius-md)!important;font-size:var(--font-sm)!important}

/* Tables stay readable and scroll inside their own container on narrow screens. */
.table-card,.table-responsive,.table-scroll{max-width:100%;overflow-x:auto!important}.table-card{margin-bottom:var(--space-5)!important}.table-card>h2,.table-card>.card-top{padding:var(--space-4) var(--space-5);margin:0;border-bottom:1px solid var(--border)}.table-card>.card-top{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--space-3)}.table-card>.card-top h2{margin:0 0 4px}.table-card>.card-top p{margin:0;color:var(--text-secondary);font-size:var(--font-sm)!important}table{width:100%;min-width:680px;border-collapse:collapse;background:transparent}th,td{padding:12px 14px!important;border-bottom:1px solid var(--border)!important;text-align:left;vertical-align:middle}th{background:#f6f8fb!important;color:#526176!important;font-size:var(--font-sm)!important;font-weight:750;letter-spacing:.035em;text-transform:uppercase}td{color:#344054!important;font-size:14px!important;line-height:1.45}td small{display:block;margin-top:3px;color:var(--text-secondary)}tbody tr:hover td{background:#fbfcfe!important}
.empty,.empty-cell,.portal-empty{padding:var(--space-6) var(--space-5)!important;color:var(--text-secondary)!important;font-size:var(--font-base)!important;text-align:center;border-style:dashed!important;box-shadow:none!important}.flash{padding:13px 0;font-size:var(--font-base)}

/* Public pages and authentication follow the same compact, readable rhythm. */
.public-body{background:var(--surface)}.public-body main{overflow:clip}.public-body .page-hero,.public-body .public-page-hero{padding-block:clamp(54px,7vw,84px)!important}.public-body .page-hero h1,.public-body .public-page-hero h1{font-size:clamp(30px,4vw,44px)!important}.public-body .page-hero .lead,.public-body .public-page-hero .lead{max-width:760px}.public-body .public-info-card,.public-body .public-service-overview,.public-body .home-service-card,.public-body .home-audience-card,.public-body .home-resource-card,.public-body .home-testimonial-card,.public-body .home-cac-card,.public-body .home-process-card,.public-body .inner-step-grid>article{padding:var(--space-5)!important;border-radius:var(--radius-lg)!important}.public-body .home-service-card p,.public-body .home-audience-card p,.public-body .home-resource-card p,.public-body .home-testimonial-card p,.public-body .public-info-card p,.public-body .public-service-overview p{font-size:var(--font-base)!important}.public-body .home-service-card h3,.public-body .home-audience-card h3,.public-body .home-resource-card h3,.public-body .home-testimonial-card h3,.public-body .public-info-card h3,.public-body .public-service-overview h3{font-size:var(--font-lg)!important}.public-body .home-work-card>div:last-child,.public-body .public-portfolio-body{padding:var(--space-5)!important}.public-body .home-work-card p,.public-body .public-portfolio-body p{font-size:var(--font-base)!important}.public-body .home-work-card h3,.public-body .public-portfolio-body h2{font-size:var(--font-lg)!important}
.auth-modern-page{padding:clamp(24px,4vw,48px) 0!important;min-height:100vh}.auth-modern-shell{min-height:min(760px,calc(100vh - 48px))}.auth-modern-form-panel{padding:clamp(24px,3vw,38px)!important}.auth-modern-form-head h2{font-size:clamp(24px,2.4vw,30px)!important}.auth-modern-intro,.auth-v4-inline-note span,.auth-entry-option small,.auth-v4-copy-card>p{font-size:var(--font-base)!important;line-height:1.6}.auth-v4-feature-grid small,.auth-v4-security-note small,.auth-steps small{font-size:var(--font-sm)!important}.auth-form-links{display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-top:-8px;font-size:var(--font-sm)}.center-actions{justify-content:center}.verification-container{max-width:900px}.verification-form{padding:var(--space-5)!important}.verification-result,.verification-empty{margin-top:var(--space-5)!important}
.auth-input-wrap input:not([type="checkbox"]):not([type="radio"]){min-height:48px!important;margin:0!important;padding:12px 12px 12px 44px!important;border-color:var(--border-strong)!important;box-shadow:none!important}.auth-v4-panel .auth-input-wrap input:not([type="checkbox"]):not([type="radio"]){min-height:52px!important;padding-left:46px!important}.password-toggle{min-height:34px!important;padding:7px 10px!important;border-radius:var(--radius-sm)!important;font-size:var(--font-sm)!important}.account-type-card{min-height:0!important;padding:16px!important}.account-type-card small{font-size:var(--font-sm)!important}.account-type-card em{font-size:var(--font-xs)!important}.auth-consent{font-size:var(--font-sm)!important}.auth-trust-row{font-size:var(--font-sm)!important}

/* One shared authenticated SaaS shell — same sizing for admin, clients, students and staff. */
.portal-body{--portal-bg:var(--background);--portal-card:var(--surface);--portal-card-soft:var(--surface-soft);--portal-border:var(--border);--portal-border-strong:var(--border-strong);--portal-text:var(--text-primary);--portal-muted:var(--text-secondary);--portal-orange:var(--accent);--portal-shadow:var(--shadow-sm);--portal-radius:var(--radius-lg);background:var(--background)!important}.portal-app{display:grid;grid-template-columns:264px minmax(0,1fr);min-height:100vh;background:var(--background)}.portal-workspace{min-width:0;background:var(--background)!important}.portal-sidebar{position:sticky;top:0;width:264px;height:100vh;padding:14px 12px;overflow-y:auto;background:linear-gradient(180deg,#071a3a 0%,var(--primary) 52%,#0e3267 100%)!important;border-right:1px solid rgba(255,255,255,.08);box-shadow:8px 0 24px rgba(7,26,58,.08)!important}.portal-brand-row{min-height:56px;padding:0 8px}.portal-brand img{max-height:42px;width:auto}.portal-user-mini{margin:12px 4px 16px;padding:12px;border:1px solid rgba(255,255,255,.12);border-radius:12px;background:rgba(255,255,255,.08)}.portal-user-mini strong{font-size:var(--font-sm)!important}.portal-user-mini small{color:#cbd7e9!important}.portal-avatar{width:36px!important;height:36px!important;font-size:var(--font-sm)!important}.portal-nav{padding:0 2px}.portal-nav-group{margin:14px 0}.portal-nav-group>p{margin:0 9px 7px!important;color:#a8b8cf!important;font-size:var(--font-xs)!important;font-weight:800;letter-spacing:.08em}.portal-nav-group>a{display:flex;align-items:center;gap:10px;min-height:44px!important;margin:3px 0;padding:9px 10px!important;border:1px solid transparent;border-radius:var(--radius-md)!important;color:#d8e1ef!important;font-size:14px!important;font-weight:600}.portal-nav-group>a:hover{background:rgba(255,255,255,.08)!important;color:#fff!important}.portal-nav-group>a.active{background:rgba(255,106,0,.20)!important;border-color:rgba(255,178,123,.2);color:#fff!important;box-shadow:inset 3px 0 var(--accent)!important}.portal-nav-icon{width:28px!important;height:28px!important;min-width:28px!important;border-radius:8px!important}.portal-nav-svg{width:16px!important;height:16px!important}.portal-sidebar-footer{padding:12px 8px 2px;font-size:var(--font-sm)}.portal-sidebar-footer a,.portal-sidebar-footer button{font-size:var(--font-sm)!important}
.portal-topbar{position:sticky;top:0;z-index:20;min-height:68px!important;padding:0 28px!important;border-bottom:1px solid var(--border)!important;background:rgba(255,255,255,.94)!important;box-shadow:0 1px 2px rgba(16,24,40,.04)!important;backdrop-filter:blur(12px)}.portal-search-wrap{max-width:330px}.portal-search-wrap input,.portal-nav-search{min-height:38px!important;margin:0!important;font-size:var(--font-sm)!important}.topbar-icon{width:38px!important;height:38px!important;border-radius:var(--radius-sm)!important;font-size:17px!important}.portal-profile-button{min-height:42px!important;padding:4px 8px!important}.portal-profile-button strong{font-size:var(--font-sm)!important}.portal-profile-button small{font-size:var(--font-xs)!important}.portal-main{width:100%;padding:28px 30px 56px!important;background:var(--background)!important}.portal-main .container{width:100%;max-width:1480px;padding:0}.portal-main>.dashboard-shell,.portal-main>.admin-shell,.portal-main>.section{min-height:0!important;padding:0!important;background:transparent!important}.portal-main .page-hero,.portal-main .page-hero.compact,.portal-main .page-hero.academy-hero{margin:0 0 var(--space-6)!important;padding:0!important;color:var(--text-primary)!important;background:transparent!important}.portal-main .page-hero h1,.portal-main .page-hero.academy-hero h1,.portal-main .dashboard-head h1,.portal-main .portal-page-head h1,.portal-main .lesson-head h1{font-size:clamp(27px,2.6vw,32px)!important;color:var(--text-primary)!important}.portal-main .page-hero .lead,.portal-main .page-hero.academy-hero .lead,.portal-main .dashboard-head p,.portal-main .portal-page-head p,.portal-main .lesson-head p{color:var(--text-secondary)!important;font-size:var(--font-base)!important}.portal-main .eyebrow,.portal-main .portal-kicker,.portal-main .course-tag{font-size:var(--font-sm)!important}.portal-main .card,.portal-main .portal-panel,.portal-main .table-card,.portal-main .mini-card,.portal-main .card-lite,.portal-main .course-enrol-card,.portal-main details.card{border-color:var(--border)!important;border-radius:var(--radius-lg)!important;box-shadow:var(--shadow-sm)!important}.portal-main .card,.portal-main .portal-panel,.portal-main .course-enrol-card{padding:var(--space-5)!important}.portal-main .card h2,.portal-main .portal-panel h2,.portal-main .table-card h2{font-size:var(--font-lg)!important}.portal-main .card h3{font-size:var(--font-md)!important}.portal-main .card p,.portal-main .portal-panel p{font-size:var(--font-base)!important}.portal-main small,.portal-main .muted{font-size:var(--font-sm)!important}.portal-main .dashboard-grid,.portal-main .split,.portal-main .card-grid{gap:var(--space-4)!important}.portal-main .section+.section{margin-top:var(--space-5)!important}
.portal-main .portal-stat-grid,.portal-main .stat-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:var(--space-4)!important;margin-bottom:var(--space-5)!important}.portal-main .portal-stat-card,.portal-main .stat-grid>a,.portal-main .stat-grid>div{min-height:118px!important;padding:18px!important;border:1px solid var(--border)!important;border-radius:var(--radius-lg)!important;background:var(--surface)!important;box-shadow:var(--shadow-sm)!important}.portal-main .portal-stat-card strong,.portal-main .stat-grid strong{font-size:clamp(26px,2vw,30px)!important;line-height:1.15;color:var(--text-primary)!important}.portal-main .portal-stat-card small,.portal-main .stat-grid span{font-size:var(--font-sm)!important;color:var(--text-secondary)!important}.portal-main .metric-icon{width:40px;height:40px;border-radius:var(--radius-md)}.portal-main .table-card{margin-bottom:var(--space-5)!important}.portal-main table{min-width:700px}.portal-main th{padding:12px 14px!important;font-size:var(--font-sm)!important}.portal-main td{padding:13px 14px!important;font-size:14px!important}.portal-main td small{font-size:var(--font-sm)!important}.portal-main .portal-mini-table th,.portal-main .portal-mini-table td{font-size:var(--font-sm)!important}.portal-main label{font-size:14px!important}.portal-main label small{font-size:var(--font-sm)!important}.portal-main input:not([type="hidden"]):not([type="checkbox"]):not([type="radio"]):not([type="file"]):not([type="range"]),.portal-main select,.portal-main textarea{min-height:44px!important;font-size:var(--font-base)!important}.portal-main .btn{min-height:42px!important;font-size:14px!important}.portal-main .btn-small{min-height:36px!important;font-size:var(--font-sm)!important}.portal-main .badge{font-size:var(--font-xs)!important}.portal-main .empty,.portal-main .empty-cell,.portal-main .portal-empty{font-size:var(--font-base)!important;padding:var(--space-6) var(--space-5)!important}.portal-main .portal-list-item{padding:13px 0!important;gap:var(--space-3)}.portal-main .portal-list-item strong,.portal-main .assignment strong{font-size:var(--font-base)!important}.portal-main .portal-list-item small,.portal-main .assignment small{font-size:var(--font-sm)!important}.portal-main .portal-section-tabs a,.portal-main .course-filter-bar a,.portal-main .admin-tabs a,.portal-settings-nav a{min-height:38px;padding:8px 11px!important;border-radius:var(--radius-sm)!important;font-size:var(--font-sm)!important}.portal-main .portal-section-tabs a.active,.portal-main .course-filter-bar a.active,.portal-main .admin-tabs a.active{background:var(--primary)!important;border-color:var(--primary)!important}.portal-main .portal-chart-panel,.portal-main .portal-panel:has(.portal-bar-chart),.portal-main .portal-panel:has(.portal-line-chart){min-height:0!important}.portal-main .portal-bar-chart,.portal-main .portal-line-chart,.portal-main .portal-pie-layout{max-height:320px}
.portal-main .portal-action-card,.portal-main .portal-chart-panel,.portal-main .portal-workflow-illustration{padding:var(--space-5)!important;border:1px solid var(--border)!important;border-radius:var(--radius-lg)!important;background:var(--surface)!important;box-shadow:var(--shadow-sm)!important}.portal-main .portal-action-card b,.portal-main .portal-action-card strong{font-size:var(--font-md)!important}.portal-main .portal-action-card small{font-size:var(--font-sm)!important}.portal-main .portal-bar-chart,.portal-main .portal-line-chart{height:280px!important}.portal-main .portal-panel-head h2{font-size:var(--font-lg)!important}.portal-main .portal-panel-head span,.portal-main .portal-panel-head a{font-size:var(--font-sm)!important}

/* Dark mode shares the exact same hierarchy and sizing. */
.portal-body.portal-dark{--background:#0b1629;--surface:#111e34;--surface-soft:#15243c;--text-primary:#eef3fa;--text-secondary:#b6c2d3;--border:#2b3d59;--border-strong:#40536f;background:var(--background)!important}.portal-body.portal-dark .portal-topbar{background:rgba(12,23,42,.94)!important}.portal-body.portal-dark .portal-main th{background:#172740!important;color:#c5d0df!important}.portal-body.portal-dark .portal-main td{color:#e0e7f0!important;border-color:var(--border)!important}.portal-body.portal-dark .portal-main tbody tr:hover td{background:#16243a!important}.portal-body.portal-dark .portal-main input:not([type="checkbox"]):not([type="radio"]),.portal-body.portal-dark .portal-main select,.portal-body.portal-dark .portal-main textarea,.portal-body.portal-dark .portal-main .btn-ghost,.portal-body.portal-dark .portal-main label.check,.portal-body.portal-dark .portal-main label.option{background:#111e34!important;color:#eef3fa!important;border-color:var(--border-strong)!important}

/* Mobile behaviour is one-column content plus the existing JavaScript drawer. */
@media(max-width:920px){.container,.home-container{width:min(calc(100% - 32px),var(--site-max,1480px))}.portal-app{display:block}.portal-sidebar{position:fixed;z-index:60;top:0;left:0;width:min(304px,88vw)!important;transform:translateX(-105%);transition:transform .22s ease;border-radius:0 var(--radius-lg) var(--radius-lg) 0}.portal-app.sidebar-open .portal-sidebar{transform:translateX(0)}.portal-backdrop{position:fixed;z-index:55;inset:0;display:block;border:0;background:rgba(4,13,29,.45);opacity:0;visibility:hidden;transition:opacity .2s ease,visibility .2s ease}.portal-app.sidebar-open .portal-backdrop{opacity:1;visibility:visible}.portal-topbar{min-height:64px!important;padding-inline:16px!important}.portal-main{padding:22px 16px 94px!important}.portal-main .portal-page-head,.portal-main .dashboard-head,.portal-main .lesson-head,.page-header{flex-direction:column;align-items:stretch}.portal-main .portal-page-head .hero-actions,.portal-main .dashboard-head .hero-actions{width:100%}.portal-main .course-hero-grid,.portal-main .lesson-layout,.portal-main .split{grid-template-columns:1fr!important}.portal-main .lesson-sidebar{position:static;max-height:none}.portal-main .table-card{width:100%}.portal-main table{min-width:680px}.auth-modern-shell{grid-template-columns:1fr!important;min-height:auto}.auth-modern-visual{min-height:300px}}
@media(max-width:640px){body{font-size:var(--font-base)}.container,.home-container{width:min(calc(100% - 26px),var(--site-max,1480px))}h1{font-size:clamp(26px,8vw,30px)!important}h2{font-size:clamp(20px,6vw,23px)!important}.section,.public-section{padding-block:44px}.card,.portal-panel,.mini-card,.card-lite,.course-enrol-card{padding:16px!important}.card-grid,.dashboard-grid,.portal-grid,.portal-action-grid,.portal-main .portal-stat-grid,.portal-main .stat-grid{grid-template-columns:1fr!important}.form-grid,.auth-form-grid{grid-template-columns:1fr!important}.form-grid .full{grid-column:auto!important}.btn,.home-btn,.auth-primary-btn{width:100%}.hero-actions .btn,.inline-actions .btn,.card-actions .btn{width:auto}.portal-topbar-actions .topbar-quick,.portal-search-wrap,.portal-sidebar-collapse{display:none!important}.portal-main{padding:18px 13px 96px!important}.portal-main .page-hero h1,.portal-main .dashboard-head h1,.portal-main .portal-page-head h1,.portal-main .lesson-head h1{font-size:27px!important}.portal-main .card h2,.portal-main .portal-panel h2,.portal-main .table-card h2{font-size:var(--font-md)!important}.portal-mobile-nav a{font-size:var(--font-xs)!important}.auth-modern-page{padding:0!important}.auth-modern-visual{min-height:260px}.auth-modern-form-panel{padding:24px 18px!important}.auth-v4-feature-grid{grid-template-columns:1fr!important}.auth-entry-option{padding:12px!important}}
@media print{.portal-sidebar,.portal-topbar,.portal-mobile-nav,.portal-backdrop,.no-print{display:none!important}.portal-app{display:block}.portal-main{padding:0!important}}

/* Final readable-content guard for highly specific legacy module rules. */
body.portal-body .portal-main[class*="portal-view-"] :is(p,li){font-size:var(--font-base)!important}
body.portal-body .portal-main[class*="portal-view-"] :is(a,button,label,summary){font-size:14px!important}
body.portal-body .portal-main[class*="portal-view-"] :is(span,small,em,.muted,.helper-text,.field-help){font-size:var(--font-sm)!important}
body.portal-body .portal-main[class*="portal-view-"] th{font-size:var(--font-sm)!important}
body.portal-body .portal-main[class*="portal-view-"] td{font-size:14px!important}
body.portal-body .portal-main[class*="portal-view-"] .portal-stat-card strong,body.portal-body .portal-main[class*="portal-view-"] .stat-grid strong{font-size:clamp(26px,2vw,30px)!important}
body.portal-body .portal-main[class*="portal-view-"] .portal-nav-group>a{font-size:14px!important}
