/* SAmuel-sized portal: actual CSS units, no artificial page scaling. */
body.portal-view{font-size:11px}.portal-header{height:108px;padding:12px 20px;grid-template-columns:315px minmax(0,1fr) auto;gap:24px}.portal-identity{grid-template-columns:76px minmax(0,1fr);gap:12px;width:310px;justify-self:center;padding-right:12px}.portal-brand-symbol{width:82px;height:88px}.portal-wordmark{font-size:42px}.portal-wordmark>span{font-size:18px;color:#8fd9e8}.portal-endorsement img{width:106px;height:22px}.portal-endorsement{font-size:9px;margin-bottom:3px}.portal-brand-type>p{font-size:9px;margin:7px 0 0}.portal-header-copy h1{font-size:21px;line-height:1.15;margin-bottom:7px}.portal-header-copy p{font-size:10px;margin:0}.portal-access{display:flex;border-radius:14px;padding:12px 14px;gap:10px}.portal-access strong{font-size:12px}.portal-access small{font-size:9px}.portal-access>span{font-size:24px}
.portal-background{padding:36px 20px 10px;justify-content:flex-start}.portal-grid{max-width:1140px;grid-template-columns:220px minmax(0,1fr) 270px;gap:26px;flex:none;height:min(484px,calc(100dvh - 218px));margin:0 auto}.portal-presentation,.portal-catalog,.portal-login.auth{border-radius:20px;padding:16px;min-height:0}.portal-catalog{margin-right:-26px;border-radius:20px 0 0 20px;padding:14px}.portal-login.auth{border-radius:0 20px 20px 0}.portal-presentation h2{font-size:18px;margin:8px 0 10px}.portal-presentation .eyebrow,.portal-catalog .eyebrow,.portal-login .eyebrow{font-size:9px;letter-spacing:1.4px}.portal-presentation .presentation-tabs{margin:8px 0}.portal-view .presentation-tabs button{font-size:10px;min-height:27px;padding:6px 4px}.portal-presentation video{max-height:110px}.portal-presentation .presentation-note{font-size:9px;margin:5px 0;line-height:1.3}.portal-benefit-label{font-size:9px;margin:12px 0 6px}.portal-benefits{grid-auto-rows:58px;gap:6px}.portal-view .portal-benefits strong{font-size:10px;line-height:1.15}.portal-view .portal-benefits small{font-size:9px;line-height:1.15;margin-top:3px}.portal-benefits button{padding:6px}.portal-catalog h2{font-size:19px;line-height:1.18;margin:7px 0 9px}.portal-catalog h2 br{display:block}.portal-catalog h2 span{display:block;margin:0}.portal-catalog>p:not(.eyebrow){display:none}.portal-filters{margin:2px 0 8px;gap:6px}.portal-filters input,.portal-filters select{font-size:10px;padding:6px;min-height:28px}.portal-cards{grid-template-columns:repeat(3,minmax(0,1fr));grid-auto-rows:43px;gap:5px}.portal-tile{padding:4px 6px;min-height:0;border-radius:8px;box-shadow:0 2px 0 #78d3c9}.portal-view .portal-tile strong{font-size:10px;line-height:1.15}.portal-tile>span{display:none}.portal-view .portal-tile small{font-size:9px;line-height:1.1;padding-top:2px;margin-top:1px}.portal-tile.long-title strong{-webkit-line-clamp:2}.portal-view .portal-tile.long-title small{display:flex}.portal-catalog #portal-result{display:none}.portal-login h2{font-size:21px;margin:12px 0 8px;line-height:1.2}.portal-login p,.portal-login .auth-form>p{font-size:10px;line-height:1.45;margin:0 0 8px}.portal-login .portal-account-steps{font-size:10px;padding:10px 0;margin:0 0 12px;gap:12px}.portal-login form{margin-top:8px}.portal-login label{font-size:11px;margin:9px 0}.portal-login input{font-size:12px;min-height:34px;padding:7px 9px}.portal-login .password-control,.portal-login .password-control input{height:34px;min-height:34px}.portal-login .password-control input{padding-right:104px}.portal-login .password-control button{font-size:9px;max-width:103px;padding:4px}.portal-login .primary{font-size:13px;min-height:38px;margin:9px 0}.portal-access-info{padding-top:8px}.portal-access-info details{font-size:10px;padding:9px;border-radius:9px;margin:5px 0}.portal-access-info p,.portal-access-info>a{font-size:9px;line-height:1.4}.portal-footer,.portal-footer a,.portal-footer button{font-size:9px}.portal-footer{margin:35px auto 0;gap:9px;min-height:24px}.portal-footer button{padding:5px 7px;min-height:25px}.portal-footer-brand{width:68px;height:17px}
.experience-dialog .dialog-heading{padding:13px 16px}.experience-dialog .dialog-heading h2{font-size:18px}.experience-dialog .dialog-heading .eyebrow{font-size:10px}.experience-dialog .dialog-heading button{font-size:11px;padding:6px 10px}.experience-dialog .dialog-content{font-size:11.5px;padding:12px}.procedure-info h3{font-size:13px}.procedure-info p{font-size:11.5px}.experience-dialog .guide-explanation{font-size:13px}.portal-module-dialog .document-callout,.module-access-guide{font-size:11px}.experience-dialog .primary,.experience-dialog .dialog-actions button{font-size:12px}
@media(max-width:1099px),(max-height:620px){.portal-access{display:none}.portal-header{grid-template-columns:300px 1fr;height:96px}.portal-grid{max-width:100%;height:auto;flex:1;min-height:0}.portal-background{padding-top:12px}.portal-footer{margin-top:10px}.portal-catalog{margin:0;border-radius:20px;overflow:auto}.portal-cards{grid-auto-rows:minmax(43px,auto)}.portal-login.auth{border-radius:20px}.portal-presentation{overflow:auto}}
@media(max-width:520px){.portal-header{grid-template-columns:1fr;padding:8px 12px}.portal-identity{width:100%;max-width:320px;grid-template-columns:64px 1fr}.portal-brand-symbol{width:68px;height:78px}.portal-wordmark{font-size:36px}.portal-header-copy{display:none}.portal-grid{display:block}.portal-cards{grid-template-columns:repeat(2,minmax(0,1fr))}.portal-view .portal-tile strong{font-size:11px}.portal-view .portal-tile small{font-size:10px}}

.portal-background:before{background-image:none;animation:none}.aspira-ambient{position:absolute;inset:0;z-index:-1;opacity:.42;pointer-events:none}.ambient-paused .aspira-ambient{opacity:.32}

.portal-player{position:relative}.portal-player video{display:block}.portal-player #portal-video-quality{position:absolute;right:4px;top:4px;width:92px;min-height:20px;padding:2px 4px;font-size:9px;background:#0a2c3ce8;color:#e4f7f2;border:1px solid #578894;border-radius:5px}.portal-player #portal-video-fullscreen{position:absolute;bottom:30px;right:4px;font-size:9px;min-height:22px;padding:3px 5px;background:#0a2c3cdb;color:#e4f7f2;border:1px solid #578894;border-radius:5px}.portal-presentation .presentation-note a{color:#c5e6e7;text-decoration:underline}

#aspira-video::cue{font-size:12px;background:#082331df;color:#f5fffc}#aspira-video:fullscreen::cue{font-size:24px}
/* Wider presentation and compact cards; preserve the agreed type sizes. */
@media(min-width:1100px) and (min-height:621px){
 .portal-grid{max-width:1210px;grid-template-columns:290px minmax(0,1fr) 270px;height:min(430px,calc(100dvh - 218px))}
 .portal-presentation{padding:14px}
 .portal-presentation h2{margin:6px 0 8px}
 .portal-presentation .presentation-tabs{margin:6px 0}
 .portal-benefit-label{margin:8px 0 4px}
 .portal-benefits{grid-auto-rows:48px;gap:6px}
 .portal-benefits button{padding:5px}
 .portal-view .portal-benefits strong{display:block;white-space:nowrap}
 .portal-cards{grid-auto-rows:34px;gap:4px}
 .portal-tile{padding:3px 6px}
 .portal-tile small{margin-top:0;padding-top:1px}
}
@media(min-width:1100px) and (min-height:621px){
 .portal-login.auth{padding:14px}
 .portal-login h2{margin:10px 0 6px}
 .portal-login .portal-account-steps{padding:8px 0;margin-bottom:8px}
 .portal-login form{margin-top:6px}
 .portal-access-info details{margin:3px 0}
}
/* SAmuel reference dimensions, replacing the intermediate compact layout. */
@media(min-width:1100px) and (min-height:621px){
 .portal-background{padding-top:37px}
 .portal-grid{max-width:1142px;grid-template-columns:225px minmax(0,1fr) 274px;gap:25px;height:min(484px,calc(100dvh - 218px))}
 .portal-presentation{padding:16px}
 .portal-catalog{margin-right:-25px}
 .portal-presentation h2{margin:8px 0 10px}
 .portal-presentation .presentation-tabs{margin:8px 0}
 .portal-benefit-label{margin:12px 0 6px}
 .portal-benefits{grid-auto-rows:60px;gap:6px}
 .portal-benefits button{display:flex;flex-direction:column;padding:5px 6px;gap:1px}
 .portal-view .portal-benefits strong{display:block;white-space:normal;font-size:10px;line-height:1.15}
 .portal-benefits .benefit-summary{display:block;font-size:9px;line-height:1.1;color:#557082;margin-top:auto}
 .portal-view .portal-benefits small{display:flex;justify-content:space-between;border-top:1px solid #c5e1e3;margin:0;padding-top:2px;font-size:9px;line-height:1.1;width:100%;color:#087f8c}
 .portal-cards{grid-auto-rows:38px;gap:5px}
 .portal-tile{padding:2px 6px;justify-content:flex-start;gap:0}
 .portal-view .portal-tile strong{font-size:10px;line-height:1.1;white-space:nowrap;display:block;overflow:visible}
 .portal-view .portal-tile>span.portal-tile-summary{display:block!important;flex:none;font-size:9px;line-height:1.1;color:#557082;white-space:nowrap;max-height:none;margin:0;overflow:visible}
 .portal-view .portal-tile small{font-size:9px;line-height:1.1;margin:0;padding-top:0}
}
@media(max-width:1099px),(max-height:620px){
 .portal-view .portal-tile>span.portal-tile-summary{display:block!important;font-size:10px;line-height:1.2;max-height:none;white-space:normal}
 .portal-cards{grid-auto-rows:minmax(60px,auto)}
 .portal-benefits .benefit-summary{display:block;font-size:10px;color:#557082}
 .portal-view .portal-benefits small{display:flex;justify-content:space-between;border-top:1px solid #c5e1e3}
 .portal-benefits{grid-auto-rows:minmax(65px,auto)}
}
/* Complete catalog heading and bottom-aligned controls, like the reference. */
.portal-catalog .portal-catalog-brand{display:flex;align-items:center;gap:16px;margin:0;flex:none}
.portal-catalog-brand img{display:block;width:54px;height:15px;object-fit:contain}
.portal-catalog-brand span{font-size:9px;letter-spacing:1.4px;color:#8ce4d2}
.portal-catalog>p.portal-purpose{display:block;font-size:10px;line-height:1.4;color:#d2e7e9;margin:0 0 8px;flex:none}
@media(min-width:1100px) and (min-height:621px){
 .portal-catalog .portal-filters{margin-top:auto;margin-bottom:8px;flex-shrink:0}
 .portal-catalog .portal-cards{margin-top:0;flex-shrink:0}
}

/* Portal dialogs: same editorial hierarchy and reading sizes as SAmuel. */
.portal-view .experience-dialog{width:min(1180px,calc(100vw - 40px));max-height:90dvh;border:1px solid #cbdde5;border-radius:18px;overflow:hidden;background:#fff;box-shadow:0 24px 80px #082d4050}
.portal-view .experience-dialog[open]{display:flex;flex-direction:column;min-height:0;margin:auto}
.portal-view .experience-dialog::backdrop{background:#082d4070;backdrop-filter:blur(2px)}
.portal-view .experience-dialog .dialog-heading{position:static;flex:none;display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:start;gap:20px;padding:20px 24px;background:#f3f9fa;color:#173d54;border-bottom:1px solid #dce8ee}
.portal-view .experience-dialog .dialog-heading h2{font-size:25px;line-height:1.25;margin:4px 0;color:#173d54;overflow-wrap:anywhere}
.portal-view .experience-dialog .dialog-heading .eyebrow{font-size:11px;color:#087f8c}
.portal-view .experience-dialog .dialog-heading button{font-size:13px;line-height:1.4;min-height:38px;padding:8px 12px;background:#fff;color:#173d54;margin:0}
.portal-view .experience-dialog .dialog-content{min-height:0;overflow:auto;overscroll-behavior:contain;padding:18px 24px;font-size:14px;line-height:1.65;scrollbar-width:thin}
.portal-view .experience-dialog .guide-explanation{font-size:14px;line-height:1.65;margin:0 0 20px}
.module-category{font-size:11px;color:#087f8c;letter-spacing:1px;margin:0 0 6px}
.portal-module-dialog .module-overview{display:grid;grid-template-columns:minmax(0,1.12fr) minmax(0,1fr);gap:26px}
.portal-module-dialog .module-section-title{color:#087f8c;font-size:16px;margin:0 0 12px}
.portal-module-dialog .procedure-cards{display:grid;grid-template-columns:1fr;gap:12px}
.portal-module-dialog .procedure-info{display:block;border:0;border-bottom:1px solid #dce8ee;border-radius:0;padding:0 0 14px;margin:0;background:transparent;min-width:0}
.portal-module-dialog .procedure-info h3{font-size:16px;line-height:1.3;margin:0 0 8px}
.portal-module-dialog .procedure-info p{font-size:13px;line-height:1.55;margin:0;color:#496b7b}
.portal-module-dialog .procedure-number{position:static;display:inline;color:#087f8c;font-size:12px;background:none;padding:0;margin-right:5px}
.portal-module-dialog .module-access-guide{border-left:1px solid #dce8ee;padding-left:26px;font-size:14px;min-width:0}
.portal-module-dialog .module-access-guide>.eyebrow{margin:0;color:#087f8c;font-size:11px}
.portal-module-dialog .module-access-guide h3{font-size:18px;color:#087184;margin:12px 0}
.portal-module-dialog .module-access-guide ol{padding-left:22px;margin:0}
.portal-module-dialog .module-access-guide li{font-size:14px;line-height:1.7;padding-bottom:10px}
.portal-module-dialog .module-benefit{background:#edf8f6;border-left:3px solid #079d98;border-radius:0 10px 10px 0;padding:14px 16px;margin-top:10px}
.portal-module-dialog .module-benefit h4{font-size:15px;color:#087f8c;margin:0 0 6px}
.portal-module-dialog .module-benefit p{font-size:13px;line-height:1.6;margin:0}
.portal-view .experience-dialog .dialog-entry{font-size:13px;line-height:1.4;min-height:38px;padding:10px 14px;white-space:normal;text-decoration:none}
.portal-view .experience-dialog:not(.portal-module-dialog):not(.portal-image-dialog){width:min(760px,calc(100vw - 40px))}
.portal-view .portal-image-dialog .image-toolbar{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:12px;align-items:center}
.portal-view .portal-image-dialog .image-toolbar :is(button,a){font-size:13px;padding:8px 12px;min-height:38px;border:1px solid #91c9ca;border-radius:7px;background:#f1faf8;color:#087f8c;text-decoration:none}
.portal-view .portal-image-dialog .image-stage{max-height:calc(90dvh - 205px);overflow:auto;text-align:center;background:#edf6f7;border:1px solid #cbdde5;border-radius:10px}
.portal-view .portal-image-dialog .image-stage img{display:block;width:100%;height:auto;max-height:calc(90dvh - 210px);object-fit:contain;margin:auto}
.portal-view .portal-image-dialog .image-stage.zoomed img{width:1600px;max-width:none;max-height:none}
@media(max-width:800px){.portal-module-dialog .module-overview{grid-template-columns:1fr}.portal-module-dialog .module-access-guide{padding:16px 0 0;border-left:0;border-top:1px solid #dce8ee}}
@media(max-width:640px){.portal-view .experience-dialog{width:calc(100vw - 20px);max-height:94dvh}.portal-view .experience-dialog .dialog-heading{padding:14px;gap:10px}.portal-view .experience-dialog .dialog-heading h2{font-size:21px}.portal-view .experience-dialog .dialog-content{padding:14px}}
.portal-view .experience-dialog{max-width:1180px}
.portal-module-dialog .module-access-guide{padding:0 0 0 26px;border-radius:0;border-top:0;border-right:0;border-bottom:0;background:transparent;margin:0}
@media(max-width:800px){.portal-module-dialog .module-access-guide{padding:16px 0 0;border-left:0;border-top:1px solid #dce8ee}}
.portal-view .portal-image-dialog .image-stage:not(.zoomed) img{width:100%;height:100%;max-height:100%;object-fit:contain}.portal-view .portal-image-dialog .image-stage.zoomed img{height:auto;max-height:none}
