/* Shared module workspace styling. Every rule is scoped away from public and login pages. */
body.portal-page,body.portal-admin{--portal-ink:#172b4d;--portal-muted:#64748b;--portal-line:#e2e8f0;--portal-accent:var(--portal-theme-color,var(--primary,#333333));--portal-radius:12px;}
body.portal-page{background:#f5f7fb;}
.portal-page .portal-surface{font-family:system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:var(--portal-ink);font-size:14px;line-height:1.55;}
.portal-page .portal-hero{padding:26px 0!important;background:var(--portal-accent)!important;background-image:none!important;border-bottom:1px solid #293e5e;}
.portal-page .portal-hero>.container{max-width:1280px;}
.portal-page .portal-hero h1,.portal-page .portal-hero h2,.portal-page .portal-hero h4{font-family:inherit;font-size:24px!important;line-height:1.3;letter-spacing:-.4px;text-transform:none!important;margin:0!important;color:#fff;}
.portal-page .portal-hero p{font-size:13px;line-height:1.5;margin:6px 0 0;color:#d8e1ef;}
.portal-page .portal-hero>.container>br{display:none;}
.portal-page .portal-content{padding:24px 0 36px!important;background:#f5f7fb!important;overflow:visible;}
.portal-page .portal-content>.container{max-width:1280px;}
.portal-page .portal-content [class*="padding-60px-left"]{padding-left:16px!important;}
.portal-page .portal-content :is(h2,h3){font-size:21px;line-height:1.35;letter-spacing:-.3px;margin-bottom:10px;}
.portal-page .portal-content :is(h5,h6){font-size:15px;line-height:1.4;letter-spacing:0;margin-bottom:8px;}
.portal-page .portal-content p{line-height:1.6;}
.portal-page .portal-content :is(.widget-card,.summary-card,.assignment-card,.transaction-card,.tier-card,.payment-method-card,.profile-card,.filter-card,.transactions-filter,.grades-filter,.filter-section,.bank-instructions-card,.form-card,.donation-summary,.donation-card){background:#fff;border:1px solid var(--portal-line)!important;border-radius:var(--portal-radius)!important;padding:18px!important;box-shadow:0 2px 5px #172b4d04!important;transform:none!important;}
.portal-page .portal-content :is(.widget-header,.card-header){border-bottom:1px solid #edf1f6;padding-bottom:12px;margin-bottom:14px;display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap;}
.portal-page .portal-content :is(.widget-title,.card-title){font-size:15px!important;color:var(--portal-ink);margin:0;font-weight:650;}
.portal-page .portal-content :is(.summary-card,.stats-card,.donor-stats-card){text-shadow:none!important;}
.portal-page .portal-content :is(.summary-value,.stat-value){font-size:25px!important;line-height:1.25;font-weight:700;color:var(--portal-ink);}
.portal-page .portal-content :is(.summary-label,.stat-label,.text-muted){color:var(--portal-muted)!important;font-size:13px;}
.portal-page .portal-content :is(.form-group,.filter-group){margin-bottom:14px;min-width:0;}
.portal-page .portal-content :is(label,.form-label,.filter-label){font-size:13px;font-weight:600;line-height:1.5;color:#334155;margin-bottom:6px;letter-spacing:0;}
.portal-page .portal-content input:not([type=checkbox]):not([type=radio]):not([type=hidden]):not([type=submit]):not([type=button]),.portal-page .portal-content :is(select,textarea){border:1px solid #cbd5e1!important;border-radius:8px!important;background:#fff;color:#172b4d;font:inherit;padding:10px 12px!important;min-height:42px;max-width:100%;box-shadow:none;}
.portal-page .portal-content textarea{min-height:110px;resize:vertical;}
.portal-page .portal-content :is(input,select,textarea):focus{outline:0;border-color:var(--portal-accent)!important;box-shadow:0 0 0 3px color-mix(in srgb,var(--portal-accent) 12%,transparent)!important;}
.portal-page .portal-content :is(.btn,.quick-donate-btn,.pay-dues-btn,.submit-btn,.filter-btn){border-radius:8px!important;font-size:13px!important;letter-spacing:0!important;text-transform:none!important;font-weight:600;min-height:40px;padding:10px 16px!important;box-shadow:none!important;transform:none!important;}
.portal-page .portal-content :is(.btn-primary,.quick-donate-btn,.submit-btn){background:var(--portal-accent)!important;border-color:var(--portal-accent)!important;color:#fff!important;}
.portal-page .portal-content :is(.btn-secondary,.btn-outline-secondary,.btn-light){background:#fff!important;border:1px solid #cbd5e1!important;color:#334155!important;}
.portal-page .portal-content :is(a,button):focus-visible,.portal-page .portal-workspace-nav a:focus-visible{outline:2px solid var(--portal-accent);outline-offset:3px;}
.portal-page .portal-content :is(.alert,.notice){border-radius:9px;padding:12px 14px;font-size:13px;line-height:1.5;}
.portal-page .dashboard-sidebar{background:#fff;border:1px solid var(--portal-line);border-radius:12px;box-shadow:none!important;overflow:hidden;}
.portal-page .student-info{background:var(--portal-accent)!important;padding:16px 14px!important;color:#fff;}
.portal-page .student-info :is(h4,h5,h6){color:#fff;font-size:16px!important;line-height:1.4;margin:0 0 5px!important;}
.portal-page .student-info p{color:#d8e1ef;font-size:12px;line-height:1.5;margin:0 0 3px;overflow-wrap:anywhere;}
.portal-page .dashboard-nav{padding:8px!important;}
.portal-page .dashboard-nav ul{padding:0;margin:0;list-style:none;}
.portal-page .dashboard-nav li{margin:0;}
.portal-page .dashboard-nav a{display:flex;align-items:center;gap:8px;padding:10px 12px!important;border:0!important;border-radius:7px!important;font-size:13px;line-height:1.4;min-height:40px;margin:2px 0;color:#475569;font-weight:500;}
.portal-page .dashboard-nav a.active,.portal-page .dashboard-nav a[aria-current=page]{background:color-mix(in srgb,var(--portal-accent) 10%,white)!important;color:var(--portal-accent)!important;font-weight:650;}
.portal-page .dashboard-nav a:hover{background:#f1f5f9;}
.portal-page .portal-content :is(.assignment-item,.grade-item,.donation-item,.fee-item,.due-item,.class-item,.transaction-item){padding:12px 0!important;margin:0;border-color:#edf1f6;}
.portal-page .portal-content :is(.assignment-meta,.donation-meta,.due-meta,.fee-meta){font-size:12px;color:#64748b;line-height:1.5;flex-wrap:wrap;gap:6px;}
.portal-page .portal-table-scroll{overflow:auto;max-width:100%;border:1px solid var(--portal-line);border-radius:10px;background:#fff;overscroll-behavior-inline:contain;}
.portal-page .portal-content table{width:100%;margin:0;font-size:13px;border-collapse:collapse;background:#fff;}
.portal-page .portal-content table th{background:#f8fafc!important;color:#475569!important;font-size:11px!important;letter-spacing:.35px;text-transform:uppercase;font-weight:650;padding:12px 14px!important;border-bottom:1px solid #e2e8f0;white-space:nowrap;}
.portal-page .portal-content table td{padding:12px 14px!important;border-bottom:1px solid #edf1f6;vertical-align:middle;color:#334155;}
.portal-page .portal-content table tbody tr:last-child td{border-bottom:0;}
.portal-page .portal-content table tbody tr:hover{background:#f8fafc;}
.portal-page .portal-content :is(.table-responsive,.transactions-table-container){overflow-x:auto;max-width:100%;}
.portal-page .portal-content :is(.pagination,.pagination-container){gap:6px;margin-top:16px;flex-wrap:wrap;}
.portal-page .portal-content .page-link{border-radius:7px!important;border-color:#e2e8f0!important;font-size:13px;min-width:36px;min-height:36px;}
.portal-page .portal-content .page-item.active .page-link{background:var(--portal-accent)!important;color:#fff!important;}
.portal-page .portal-workspace-nav{max-width:1280px;margin:16px auto 0;padding:0 15px;display:flex;gap:6px;overflow-x:auto;}
.portal-page .portal-workspace-nav a{white-space:nowrap;color:#475569;background:#fff;border:1px solid #e2e8f0;border-radius:8px;padding:9px 14px;font-size:13px;font-weight:600;text-decoration:none;}
.portal-page .portal-workspace-nav a[aria-current=page]{background:var(--portal-accent);border-color:var(--portal-accent);color:#fff;}
.portal-page .portal-content .tier-card.featured,.portal-page .portal-content .payment-method-card.selected{border:2px solid var(--portal-accent)!important;box-shadow:0 0 0 2px color-mix(in srgb,var(--portal-accent) 5%,transparent)!important;}
.portal-page .portal-content :is(.tier-price,.donation-amount){font-variant-numeric:tabular-nums;}
.portal-page .modal-content{border:1px solid #e2e8f0;border-radius:14px;box-shadow:0 20px 60px #172b4d26;}
.portal-admin .main-content{color:var(--portal-ink);background:#f5f7fb;}
.portal-admin .main-content-inner{gap:18px!important;}
.portal-admin .main-content :is(.heading,h4.heading){font-size:23px!important;line-height:1.3;letter-spacing:-.3px;}
.portal-admin .main-content .wg-box{padding:20px!important;gap:16px!important;background:#fff;border:1px solid #e2e8f0!important;border-radius:12px!important;box-shadow:0 2px 5px #172b4d04!important;}
.portal-admin .main-content :is(.title,.text-title,h5){font-size:16px;line-height:1.4;}
.portal-admin .main-content :is(.tf-button,.btn){border-radius:8px!important;font-size:13px!important;padding:10px 16px!important;min-height:40px;box-shadow:none;}
.portal-admin .main-content :is(label,.body-title,.form-label){font-size:13px;font-weight:600;line-height:1.5;}
.portal-admin .main-content input:not([type=checkbox]):not([type=radio]):not([type=hidden]),.portal-admin .main-content :is(select,textarea){border:1px solid #cbd5e1!important;border-radius:8px!important;font-size:14px!important;padding:10px 12px!important;min-height:42px;}
.portal-admin .main-content :is(input,select,textarea):focus{border-color:var(--portal-accent)!important;box-shadow:0 0 0 3px color-mix(in srgb,var(--portal-accent) 12%,transparent)!important;outline:0;}
.portal-admin .main-content :is(.table-title li,table th){background:#f8fafc;color:#475569;font-size:11px!important;letter-spacing:.35px;text-transform:uppercase;padding:12px!important;}
.portal-admin .main-content :is(table td,.wg-table li){font-size:13px;line-height:1.5;}
.portal-admin .main-content table td{padding:12px!important;border-bottom:1px solid #edf1f6;}
.portal-admin .main-content .table-responsive,.portal-admin .portal-table-scroll{overflow-x:auto;max-width:100%;}
.portal-admin .main-content .grid{gap:12px;}
.portal-admin .main-content .statistics-card{padding:16px!important;}
.portal-admin .main-content .statistics-content .text-title{font-size:24px;}
@media(max-width:991px){.portal-page .portal-content [class*="padding-60px-left"]{padding-left:0!important;}.portal-page .dashboard-nav ul{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:2px;}.portal-page .portal-content .student-avatar{display:none;}.portal-page .dashboard-sidebar{margin-bottom:16px;}}
@media(max-width:575px){.portal-page .portal-hero{padding:20px 0!important;}.portal-page .portal-hero h1,.portal-page .portal-hero h2{font-size:21px!important;}.portal-page .portal-content{padding:16px 0 24px!important;}.portal-page .portal-content :is(.widget-card,.summary-card,.assignment-card,.transaction-card,.tier-card,.filter-card,.transactions-filter,.form-card){padding:14px!important;}.portal-page .portal-content :is(.filter-options,.filter-row){align-items:stretch;flex-direction:column;gap:10px;}.portal-page .portal-content .filter-group{width:100%;margin:0;}.portal-page .portal-content .filter-select{flex:1;min-width:0;}.portal-page .dashboard-nav a{min-height:44px;font-size:12px;}.portal-page .portal-content :is(input,select,textarea){font-size:16px!important;}.portal-admin .main-content .wg-box{padding:14px!important;}.portal-admin .main-content :is(.flex.gap20,.flex.gap10){flex-wrap:wrap;}.portal-admin .main-content .heading{font-size:20px!important;}}
@media(prefers-reduced-motion:reduce){.portal-page .portal-surface *,.portal-admin .main-content *{animation:none!important;transition:none!important;}}
.portal-page .portal-hero .breadcrumb{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin:8px 0 0;padding:0;background:transparent;font-size:12px;}
.portal-page .portal-hero .breadcrumb li+li:before{content:'/';display:inline-block;margin-right:8px;color:#91a2bd;}
.portal-page .portal-hero .breadcrumb a{color:#d8e1ef;}

/* One sidebar and aligned title trail across member screens. */
.portal-page .portal-workspace{display:grid;grid-template-columns:240px minmax(0,1fr);gap:22px;max-width:1280px;margin:24px auto;padding:0 16px;align-items:start;}
.portal-page .portal-sidebar{min-width:0;position:sticky;top:24px;}
.portal-page .portal-workspace-main{min-width:0;}
.portal-page .portal-workspace-main .portal-content{padding:20px 0 28px!important;}
.portal-page .portal-workspace-main .portal-content>.container{padding:0;width:100%;}
.portal-page .portal-full-width{flex:0 0 100%!important;max-width:100%!important;padding-left:15px!important;}
.portal-page .portal-workspace .portal-hero{border-radius:12px;padding:18px 0!important;border:0;}
.portal-page .portal-workspace .portal-hero .container{padding:0 20px;}
.portal-page .portal-workspace .portal-hero [class*="col-"]{max-width:100%;flex:0 0 100%;text-align:left!important;}
.portal-page .portal-breadcrumb{margin-bottom:10px;}
.portal-page .portal-breadcrumb .breadcrumb{justify-content:flex-start!important;margin:0!important;font-size:12px;gap:8px;}
.portal-page .portal-hero .breadcrumb li:before{background:none!important;border:0!important;position:static!important;width:auto!important;height:auto!important;}
.portal-page .portal-hero .breadcrumb li:first-child:before{content:none!important;}
.portal-page .portal-hero .breadcrumb li+li:before{content:'/'!important;color:inherit;opacity:.65;}
.portal-page .portal-sidebar .student-info{font-weight:600;overflow-wrap:anywhere;}
.portal-page .portal-sidebar .dashboard-nav{display:block!important;}
.portal-page .portal-sidebar .dashboard-nav ul{display:block!important;}
@media(max-width:991px){.portal-page .portal-workspace{grid-template-columns:200px minmax(0,1fr);gap:16px;}.portal-page .portal-sidebar .dashboard-sidebar{margin-bottom:0;}}
@media(max-width:767px){.portal-page .portal-workspace{grid-template-columns:minmax(0,1fr);gap:16px;margin:16px auto;}.portal-page .portal-sidebar{position:static;}.portal-page .portal-sidebar .dashboard-nav ul{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr));}.portal-page .portal-sidebar .dashboard-nav:not(:has(ul)){display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr));}.portal-page .portal-workspace .portal-hero .container{padding:0 16px;}}

/* Member pages need an opaque header in document flow, above the workspace. */
body.portal-page>header,body.portal-page>header.sticky,body.portal-page .main-header{position:relative!important;top:auto!important;transform:none!important;}
body.portal-page>header nav.navbar.navbar-fixed-top,body.portal-page>header.sticky nav.navbar.navbar-fixed-top{position:relative!important;top:auto!important;left:auto!important;right:auto!important;transform:none!important;width:100%;background:var(--portal-accent)!important;}
body.portal-page>header nav.navbar.white-link .navbar-nav>li>a,body.portal-page>header.sticky nav.navbar.white-link .navbar-nav>li>a{color:#fff!important;}
body.portal-page>header nav.navbar .navbar-toggler .icon-bar{background:#fff!important;}
body.portal-page>header nav.navbar .logo-light.default{visibility:visible!important;opacity:1!important;width:auto!important;}
body.portal-page>header nav.navbar .logo-dark{visibility:hidden!important;opacity:0!important;width:0!important;}
.portal-page .portal-breadcrumb li[aria-current=page]{color:#fff;opacity:.8;}

/* Compact account cards share the member workspace layout. */
.portal-page .portal-workspace-main .portal-content .padding-40px-all{padding:20px!important;border:1px solid var(--portal-line);border-radius:12px;box-shadow:none!important;}
.portal-page .portal-workspace-main .portal-content .margin-30px-bottom{margin-bottom:18px!important;}
.portal-page .portal-sidebar .padding-40px-all{padding:16px!important;}
.portal-page .portal-sidebar .margin-30px-bottom{margin-bottom:14px!important;}
.portal-page .portal-sidebar :is(h5,h6){font-size:15px;overflow-wrap:anywhere;}
.portal-page .portal-sidebar p{font-size:12px;overflow-wrap:anywhere;}
.portal-page .portal-content .btn-fast-blue{background:var(--portal-accent)!important;border-color:var(--portal-accent)!important;color:#fff!important;}
@media(max-width:575px){.portal-page .portal-workspace-main .portal-content .padding-40px-all{padding:14px!important;}}
.portal-page .portal-hero>.opacity-medium{display:none;}
.portal-page .portal-hero .page-title-large{padding-top:0!important;padding-bottom:0!important;align-items:flex-start;text-align:left!important;}
.portal-page .portal-hero .page-title-large>span{font-size:12px;color:#fff;opacity:.8;margin-bottom:4px!important;}

.portal-page .portal-content input:not([type=checkbox]):not([type=radio]):not([type=hidden]),.portal-page .portal-content select,.portal-page .portal-content textarea{margin-bottom:0!important;}
.portal-page .portal-content label{margin-bottom:6px!important;}
.portal-page .portal-content [class*="col-"].margin-20px-bottom{margin-bottom:12px!important;}
.portal-page .portal-sidebar .width-80.height-80{width:44px;height:44px;line-height:44px;margin-bottom:10px!important;}

/* Polished school workspace: clear hierarchy, restrained depth and uniform navigation. */
.portal-page .portal-workspace{gap:24px;}
.portal-page .portal-workspace .portal-hero{background:linear-gradient(115deg,var(--portal-accent),color-mix(in srgb,var(--portal-accent) 85%,#fff))!important;box-shadow:0 8px 24px #172b4d0a;}
.portal-page .portal-school-sidebar .dashboard-sidebar{border-radius:16px;box-shadow:0 6px 22px #172b4d06!important;}
.portal-page .portal-school-sidebar .dashboard-nav{padding:10px!important;}
.portal-page .portal-school-sidebar .dashboard-nav a{min-height:44px;gap:11px;padding:11px 12px!important;border-radius:9px!important;font-weight:550;transition:background-color .15s;}
.portal-page .portal-school-sidebar .dashboard-nav a svg{width:19px;height:19px;flex:0 0 19px;}
.portal-page .portal-school-sidebar .dashboard-nav a[aria-current=page]{box-shadow:inset 3px 0 var(--portal-accent);}
.portal-page .portal-school-sidebar .dashboard-nav .portal-logout{margin-top:10px;border-top:1px solid var(--portal-line)!important;border-radius:0!important;color:#64748b;}
.portal-page .portal-school-sidebar .student-info{padding:18px 16px!important;text-align:left;font-weight:500;}
.portal-page .portal-school-sidebar .student-avatar{width:40px;height:40px;font-size:19px;margin:0 0 10px;}
.portal-page .member-dashboard-main .widget-card{border-radius:14px!important;box-shadow:0 4px 16px #172b4d05!important;padding:20px!important;}
.portal-page .member-dashboard-main .widget-header{padding-bottom:14px;margin-bottom:16px;}
.portal-page .member-dashboard-main .widget-title{font-size:16px!important;font-weight:650;}
.portal-page .member-dashboard-main .dashboard-metrics :is(.stats-card,.donor-stats-card){border-radius:14px!important;box-shadow:0 4px 16px #172b4d05!important;min-height:108px;}
.portal-page .member-dashboard-main .dashboard-metrics :is(h3,.stat-value){font-size:27px!important;letter-spacing:-.7px;}
.portal-page .member-dashboard-main .dashboard-metrics .stats-icon{border-radius:11px;background:color-mix(in srgb,var(--portal-accent) 8%,white);}
.portal-page .member-dashboard-main .dashboard-header{margin-bottom:18px;}
.portal-page .member-dashboard-main .dashboard-header h2{font-size:23px;font-weight:650;}
.portal-page .portal-school-sidebar .padding-40px-all{padding:0!important;}
.portal-page .portal-school-sidebar .student-info p{margin-bottom:3px;font-size:12px;line-height:1.5;}
.portal-page .portal-school-sidebar .dashboard-nav li{border:0!important;}
.portal-page .portal-timetable-note{display:flex;align-items:flex-start;gap:14px;background:#fff;border:1px solid var(--portal-line);border-radius:14px;padding:20px;margin-bottom:18px;}
.portal-page .portal-timetable-note h2{font-size:18px;margin:0 0 6px;}
.portal-page .portal-timetable-note p{margin:0;color:var(--portal-muted);}
.portal-page .portal-timetable-note .portal-status{white-space:nowrap;border-radius:20px;padding:5px 10px;font-size:11px;background:color-mix(in srgb,var(--portal-accent) 8%,white);color:var(--portal-accent);}
@media(max-width:767px){.portal-page .portal-workspace{gap:16px;}.portal-page .portal-school-sidebar .dashboard-nav .portal-logout{margin-top:0;border-top:0!important;border-radius:9px!important;}.portal-page .portal-timetable-note{flex-direction:column;padding:16px;}.portal-page .member-dashboard-main .widget-card{padding:16px!important;}}

/* Compact campaign cards: photograph beside details and donation actions. */
.portal-page .portal-content .cause-card:has(>.cause-image){display:grid;grid-template-columns:150px minmax(0,1fr);border:1px solid var(--portal-line);border-radius:14px;margin-bottom:14px;overflow:hidden;background:#fff;box-shadow:0 3px 12px #172b4d04!important;transform:none!important;}
.portal-page .portal-content .cause-card>.cause-image{width:100%;height:100%!important;min-height:150px;background-size:cover;background-position:center;position:relative;}
.portal-page .portal-content .cause-card>.padding-30px-all{padding:14px!important;min-width:0;}
.portal-page .portal-content .cause-card h6{font-size:15px;margin-bottom:6px!important;}
.portal-page .portal-content .cause-card>.padding-30px-all>p{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;font-size:12px!important;line-height:1.5;margin-bottom:8px!important;}
.portal-page .portal-content .cause-card .mb-3{margin-bottom:8px!important;}
.portal-page .portal-content .cause-card .mb-2{margin-bottom:5px!important;font-size:12px;gap:8px;flex-wrap:wrap;}
.portal-page .portal-content .cause-card .cause-progress{height:5px;border-radius:5px;}
.portal-page .portal-content .cause-card .d-flex.flex-wrap{gap:5px;margin-bottom:8px!important;}
.portal-page .portal-content .cause-card .quick-donate-btn{min-height:32px;padding:6px 9px!important;font-size:11px!important;margin:0!important;}
.portal-page .portal-content .cause-card .custom-donate{min-height:34px;padding:7px 12px!important;font-size:12px!important;}
.portal-page .portal-content .cause-card .featured-badge{font-size:10px;padding:4px 7px;top:9px;left:9px;right:auto;}
/* Auth screens reuse the theme palette while keeping the original form actions. */
.portal-auth .portal-hero{padding:22px 0!important;}
.portal-auth .portal-hero .opacity-medium{display:none;}
.portal-auth .portal-hero .page-title-large{padding:0!important;align-items:center;text-align:center!important;}
.portal-auth .portal-content{padding:32px 0 44px!important;}
.portal-auth .portal-content>.container{max-width:1050px;}
.portal-auth .portal-auth-card{padding:28px!important;border:1px solid var(--portal-line);border-radius:16px!important;background:#fff;box-shadow:0 8px 32px #172b4d08!important;}
.portal-auth .portal-auth-card h5{font-size:23px!important;margin-bottom:20px!important;}
.portal-auth .portal-auth-card .margin-20px-bottom{margin-bottom:14px!important;}
.portal-auth .portal-auth-form label{font-size:13px;font-weight:600;}
.portal-auth .portal-auth-form input:not([type=checkbox]):not([type=radio]){min-height:44px;padding:11px 12px!important;}
.portal-auth .portal-auth-form button[type=submit]{background:var(--portal-accent)!important;border-color:var(--portal-accent)!important;min-height:44px;width:100%;border-radius:9px!important;color:#fff!important;}
.portal-auth .portal-auth-form a{color:var(--portal-accent);text-decoration:underline;text-underline-offset:3px;}
.portal-auth .portal-content .padding-50px-right{padding-right:24px!important;}
.portal-auth .portal-content .padding-50px-left{padding-left:24px!important;}
.portal-auth .portal-auth-form input[type=checkbox]{width:16px;height:16px;accent-color:var(--portal-accent);}
.portal-auth .portal-auth-form .toggle-password,.portal-auth .portal-auth-form .toggle-password-confirm{padding:4px;}
.portal-auth .portal-content .margin-30px-bottom{margin-bottom:18px!important;}
.portal-auth .portal-hero h1{color:#fff!important;}
.portal-auth .portal-hero span{color:#fff;opacity:.8;font-size:12px;}
@media(max-width:767px){.portal-auth .portal-content{padding:20px 0 28px!important;}.portal-auth .portal-content .padding-50px-right,.portal-auth .portal-content .padding-50px-left{padding-left:15px!important;padding-right:15px!important;}.portal-auth .portal-auth-card{padding:20px!important;}.portal-page .portal-content .cause-card:has(>.cause-image){grid-template-columns:100px minmax(0,1fr);}.portal-page .portal-content .cause-card>.padding-30px-all{padding:10px!important;}}
@media(max-width:400px){.portal-page .portal-content .cause-card:has(>.cause-image){grid-template-columns:80px minmax(0,1fr);}.portal-page .portal-content .cause-card .featured-badge{font-size:9px;left:4px;padding:3px 5px;}}

.portal-auth .portal-auth-title{font-size:24px!important;font-weight:650;letter-spacing:-.5px;margin-bottom:5px!important;}
.portal-auth .portal-auth-subtitle{font-size:13px;color:var(--portal-muted);margin-bottom:20px;}
.portal-auth .portal-auth-form [role=button]:focus-visible{outline:2px solid var(--portal-accent);outline-offset:2px;border-radius:5px;}

/* Final metric and Quick Actions design. */
.portal-page .member-dashboard-main .dashboard-metrics :is(.stats-card,.donor-stats-card){display:grid!important;grid-template-columns:minmax(0,1fr) 42px;grid-template-rows:auto auto;gap:5px 12px;align-content:center;min-height:106px!important;padding:18px!important;border:1px solid var(--portal-line)!important;border-radius:14px!important;box-shadow:0 4px 16px #172b4d04!important;text-align:left;}
.portal-page .member-dashboard-main .dashboard-metrics .stats-card:has(>.card-content){display:block!important;}
.portal-page .member-dashboard-main .dashboard-metrics .card-content{display:grid!important;grid-template-columns:minmax(0,1fr) 42px;grid-template-rows:auto auto;gap:5px 12px;align-content:center;min-height:68px;text-align:left;}
.portal-page .member-dashboard-main .dashboard-metrics :is(h3,h6){grid-column:1;grid-row:2;font-size:clamp(21px,2vw,28px)!important;line-height:1.15!important;font-weight:700!important;letter-spacing:-.6px!important;margin:0!important;color:var(--portal-ink)!important;font-variant-numeric:tabular-nums;overflow-wrap:anywhere;}
.portal-page .member-dashboard-main .dashboard-metrics p{grid-column:1;grid-row:1;font-size:11px!important;font-weight:550!important;line-height:1.4!important;margin:0!important;color:var(--portal-muted)!important;letter-spacing:0;}
.portal-page .member-dashboard-main .dashboard-metrics .stats-icon{grid-column:2!important;grid-row:1 / 3!important;align-self:center;width:42px!important;height:42px!important;min-width:42px!important;margin:0!important;border-radius:12px!important;display:flex!important;align-items:center;justify-content:center;background:color-mix(in srgb,var(--portal-accent) 8%,white)!important;color:var(--portal-accent)!important;}
.portal-page .member-dashboard-main .dashboard-metrics .stats-icon :is(svg,.icon){width:22px!important;height:22px!important;stroke:var(--portal-accent)!important;}
.portal-page .member-dashboard-main .quick-actions{padding:20px!important;background:#fff;border:1px solid var(--portal-line);border-radius:14px;box-shadow:0 4px 16px #172b4d04;}
.portal-page .member-dashboard-main .dashboard-actions{display:grid!important;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin:0!important;text-align:left!important;}
.portal-page .member-dashboard-main .dashboard-actions>[class*="col-"]{padding:0!important;margin:0!important;width:auto;max-width:none;flex:none;min-width:0;}
.portal-page .member-dashboard-main .dashboard-actions .action-item{padding:0!important;height:100%;}
.portal-page .member-dashboard-main .dashboard-actions .action-link{display:grid!important;grid-template-columns:38px minmax(0,1fr) 8px;align-items:center;gap:10px;min-height:82px;height:100%;padding:14px!important;text-align:left!important;border:1px solid var(--portal-line)!important;border-radius:12px!important;background:#fff!important;color:var(--portal-ink)!important;text-decoration:none;transform:none!important;box-shadow:none!important;transition:border-color .15s,background-color .15s;}
.portal-page .member-dashboard-main .dashboard-actions .action-link:after{content:'›';font-size:20px;line-height:1;color:var(--portal-muted);}
.portal-page .member-dashboard-main .dashboard-actions .action-icon{width:38px!important;height:38px!important;margin:0!important;border-radius:11px;display:flex;align-items:center;justify-content:center;background:color-mix(in srgb,var(--portal-accent) 8%,white);color:var(--portal-accent)!important;font-size:19px!important;transform:none!important;}
.portal-page .member-dashboard-main .dashboard-actions .action-icon svg{width:21px;height:21px;}
.portal-page .member-dashboard-main .dashboard-actions .action-label{font-size:12px!important;line-height:1.4;font-weight:600;color:inherit!important;margin:0;overflow-wrap:anywhere;}
.portal-page .member-dashboard-main .dashboard-actions .action-link:hover{background:color-mix(in srgb,var(--portal-accent) 3%,white)!important;border-color:color-mix(in srgb,var(--portal-accent) 35%,white)!important;}
.portal-page .member-dashboard-main .dashboard-actions .action-link:focus-visible{outline:2px solid var(--portal-accent);outline-offset:3px;}
@media(max-width:767px){.portal-page .member-dashboard-main .dashboard-actions{grid-template-columns:repeat(2,minmax(0,1fr));}.portal-page .member-dashboard-main .dashboard-metrics :is(.stats-card,.donor-stats-card){padding:14px!important;min-height:96px!important;grid-template-columns:minmax(0,1fr) 34px;gap:5px 8px;}.portal-page .member-dashboard-main .dashboard-metrics .card-content{grid-template-columns:minmax(0,1fr) 34px;gap:5px 8px;}.portal-page .member-dashboard-main .dashboard-metrics .stats-icon{width:34px!important;height:34px!important;min-width:34px!important;border-radius:10px!important;}.portal-page .member-dashboard-main .dashboard-metrics :is(h3,h6){font-size:21px!important;}.portal-page .member-dashboard-main .dashboard-actions .action-link{grid-template-columns:32px minmax(0,1fr);gap:8px;padding:12px!important;min-height:76px;}.portal-page .member-dashboard-main .dashboard-actions .action-link:after{display:none;}.portal-page .member-dashboard-main .dashboard-actions .action-icon{width:32px!important;height:32px!important;border-radius:9px;}}

/* Compact dashboard detail panels; metric cards and Quick Actions retain their design. */
.portal-page .member-dashboard-main .widget-card{padding:14px!important;border-radius:12px!important;font-size:12px;}
.portal-page .member-dashboard-main .widget-header{padding-bottom:9px;margin-bottom:10px;gap:8px;}
.portal-page .member-dashboard-main .widget-title{font-size:14px!important;line-height:1.4;font-weight:650;}
.portal-page .member-dashboard-main .widget-link{font-size:11px!important;line-height:1.4;font-weight:550;white-space:nowrap;}
.portal-page .member-dashboard-main .widget-card p{font-size:12px!important;line-height:1.5!important;margin-bottom:6px;}
.portal-page .member-dashboard-main .widget-card :is(.assignment-item,.grade-item,.class-item,.fee-item,.donation-item,.due-item){padding:10px 0!important;}
.portal-page .member-dashboard-main .widget-card :is(.assignment-header,.grade-header,.class-header,.fee-header,.donation-header,.due-header){display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:4px;}
.portal-page .member-dashboard-main .widget-card :is(.assignment-subject,.grade-subject,.class-subject,.fee-name,.donation-cause,.due-period){font-size:12px!important;line-height:1.4!important;font-weight:600!important;margin:0!important;}
.portal-page .member-dashboard-main .widget-card :is(.assignment-title,.grade-exam,.class-teacher){font-size:11px!important;line-height:1.5!important;margin:0 0 5px!important;color:var(--portal-muted);}
.portal-page .member-dashboard-main .widget-card :is(.assignment-status,.fee-status,.donation-status,.due-status,.grade-score){font-size:10px!important;line-height:1.3!important;padding:3px 7px!important;white-space:nowrap;border-radius:5px;}
.portal-page .member-dashboard-main .widget-card :is(.assignment-meta,.grade-meta,.class-location,.fee-meta,.donation-meta,.due-meta){display:flex;align-items:center;flex-wrap:wrap;gap:6px 14px;font-size:11px!important;line-height:1.5;margin-top:4px;color:var(--portal-muted);}
.portal-page .member-dashboard-main .widget-card :is(.assignment-link,.donation-link){display:inline-block;font-size:11px!important;font-weight:550;margin-top:5px;}
.portal-page .member-dashboard-main .widget-card :is(.class-duration,.donation-amount,.due-amount){font-size:11px!important;font-weight:600;line-height:1.4;}
.portal-page .member-dashboard-main .widget-card .fee-meta{justify-content:space-between;}
.portal-page .member-dashboard-main .widget-card .fee-summary{padding:10px 12px!important;margin-top:10px;border-radius:8px;}
.portal-page .member-dashboard-main .widget-card .fee-summary-item{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:3px 0!important;margin:0;}
.portal-page .member-dashboard-main .widget-card :is(.fee-summary-label,.fee-summary-value){font-size:11px!important;line-height:1.5;font-variant-numeric:tabular-nums;}
.portal-page .member-dashboard-main .widget-card :is(.quick-donate-btn,.pay-dues-btn){min-height:34px!important;padding:8px 12px!important;font-size:11px!important;line-height:1.4!important;margin-top:8px!important;border-radius:7px!important;}
.portal-page .member-dashboard-main .widget-card .padding-30px-tb{padding-top:10px!important;padding-bottom:10px!important;}
.portal-page .member-dashboard-main .widget-card .padding-30px-tb>i{font-size:24px!important;margin-bottom:6px!important;}
.portal-page .member-dashboard-main .widget-card .py-3{padding-top:10px!important;padding-bottom:10px!important;}
.portal-page .member-dashboard-main .widget-card .margin-15px-top{margin-top:10px!important;}
.portal-page .member-dashboard-main .widget-card .margin-15px-bottom{margin-bottom:8px!important;}
body.portal-page:has(script[data-portal-role="public-donations"]) .portal-content>.container{max-width:1100px;}
body.portal-page:has(script[data-portal-role="public-donations"]) .portal-content h6{font-size:14px!important;}
body.portal-page:has(script[data-portal-role="public-donations"]) .portal-content :is(.padding-50px-all,.padding-30px-all):not(.cause-card>div){padding:18px!important;}
body.portal-page:has(script[data-portal-role="public-donations"]) .portal-content .cause-card:not(:has(>.cause-image)){font-size:12px;padding:18px!important;border:1px solid var(--portal-line);border-radius:12px;}

/* Shared compact scale for every member workspace and back-office content page. */
.portal-page .portal-content{font-size:12px;line-height:1.5;}
.portal-page .portal-content :is(.widget-card,.assignment-card,.transaction-card,.tier-card,.payment-method-card,.profile-card,.filter-card,.transactions-filter,.grades-filter,.filter-section,.bank-instructions-card,.form-card,.donation-summary,.donation-card){padding:14px!important;border-radius:12px!important;}
.portal-page .portal-content :is(.widget-title,.card-title){font-size:14px!important;line-height:1.4;}
.portal-page .portal-content :is(h2,h3){font-size:18px;line-height:1.35;}
.portal-page .portal-content :is(h5,h6){font-size:14px;line-height:1.4;}
.portal-page .portal-content p{font-size:12px;line-height:1.5;}
.portal-page .portal-content :is(.widget-header,.card-header){padding-bottom:9px;margin-bottom:10px;gap:8px;}
.portal-page .portal-content :is(.form-group,.filter-group){margin-bottom:12px;}
.portal-page .portal-content :is(label,.form-label,.filter-label){font-size:12px;line-height:1.5;}
.portal-page .portal-content :is(.btn,.submit-btn,.filter-btn){font-size:12px!important;min-height:36px;padding:8px 12px!important;}
.portal-page .portal-content :is(.assignment-item,.grade-item,.donation-item,.fee-item,.due-item,.class-item,.transaction-item){padding:10px 0!important;}
.portal-page .portal-content :is(.assignment-meta,.grade-meta,.donation-meta,.due-meta,.fee-meta){font-size:11px!important;gap:6px 14px;}
.portal-page .portal-content table th{font-size:10px!important;padding:10px 12px!important;}
.portal-page .portal-content table td{font-size:12px!important;padding:10px 12px!important;line-height:1.5;}
.portal-page .portal-content :is(.alert,.notice){font-size:12px;padding:10px 12px;}
.portal-admin .main-content{font-size:12px;line-height:1.5;}
.portal-admin .main-content .wg-box{padding:16px!important;gap:12px!important;}
.portal-admin .main-content :is(.title,.text-title,h5){font-size:14px;line-height:1.4;}
.portal-admin .main-content :is(.heading,h4.heading){font-size:21px!important;}
.portal-admin .main-content :is(.body-text,p,label,.body-title,.form-label){font-size:12px!important;line-height:1.5;}
.portal-admin .main-content :is(.tf-button,.btn){font-size:12px!important;min-height:36px;padding:8px 12px!important;}
.portal-admin .main-content :is(table td,.wg-table li){font-size:12px!important;line-height:1.5;}
.portal-admin .main-content :is(table td,table th){padding:10px!important;}
.portal-admin .main-content :is(.table-title li,table th){font-size:10px!important;}
.portal-admin .main-content :is(.form-group,.form-section){margin-bottom:12px;}
@media(max-width:575px){.portal-page .portal-content :is(.btn,.submit-btn,.filter-btn),.portal-admin .main-content :is(.tf-button,.btn){min-height:44px;}.portal-admin .main-content input:not([type=checkbox]):not([type=radio]):not([type=hidden]),.portal-admin .main-content :is(select,textarea){font-size:16px!important;}}

/* Assignment details: readable instructions and one compact submission area. */
.portal-assignment-detail .portal-content .assignment-detail-card{padding:20px!important;background:#fff;border:1px solid var(--portal-line);border-radius:14px;box-shadow:0 4px 16px #172b4d04;margin-bottom:16px;}
.portal-assignment-detail .assignment-detail-card>.assignment-header{display:block;padding-bottom:12px;margin-bottom:14px;border-bottom:1px solid var(--portal-line);}
.portal-assignment-detail .assignment-detail-card .assignment-title{font-size:22px!important;line-height:1.35;font-weight:650;margin:0 0 6px;letter-spacing:-.3px;}
.portal-assignment-detail .assignment-detail-card .assignment-subject,.portal-assignment-detail .assignment-detail-card .assignment-teacher{font-size:12px!important;margin:4px 0;color:var(--portal-muted);}
.portal-assignment-detail .assignment-detail-card .assignment-meta-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(145px,1fr));gap:8px;margin:14px 0 18px;}
.portal-assignment-detail .assignment-detail-card .meta-card{padding:10px 12px;background:#f8fafc;border:1px solid var(--portal-line);border-radius:8px;box-shadow:none;min-width:0;}
.portal-assignment-detail .assignment-detail-card .meta-card h4{font-size:10px!important;line-height:1.5;letter-spacing:.2px;margin:0 0 4px;font-weight:600;color:var(--portal-muted);}
.portal-assignment-detail .assignment-detail-card .meta-card .value{font-size:12px!important;line-height:1.5;font-weight:600;overflow-wrap:anywhere;}
.portal-assignment-detail .assignment-detail-card .submission-status{font-size:10px!important;padding:4px 7px;line-height:1.4;border-radius:5px;}
.portal-assignment-detail .assignment-detail-card .assignment-content{margin-bottom:16px;}
.portal-assignment-detail .assignment-detail-card .content-section{margin-bottom:16px;}
.portal-assignment-detail .assignment-detail-card .content-section :is(h3,h6){font-size:14px!important;line-height:1.4;margin:0 0 8px;font-weight:650;}
.portal-assignment-detail .assignment-detail-card .assignment-description{font-size:13px!important;line-height:1.65;padding:12px 14px;border:1px solid var(--portal-line);border-radius:8px;background:#fafbfc;overflow-wrap:anywhere;}
.portal-assignment-detail .assignment-detail-card .assignment-description p{font-size:13px;line-height:1.65;margin:0 0 8px;}
.portal-assignment-detail .assignment-detail-card .assignment-description img{max-width:100%;height:auto;}
.portal-assignment-detail .assignment-detail-card .assignment-description pre{overflow:auto;max-width:100%;}
.portal-assignment-detail .assignment-detail-card .attachment-section{padding:12px;border:1px solid var(--portal-line);border-radius:8px;background:#fff;}
.portal-assignment-detail .assignment-detail-card .attachment-item{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:10px;}
.portal-assignment-detail .assignment-detail-card .attachment-info{display:flex;align-items:center;gap:10px;min-width:0;font-size:12px;overflow-wrap:anywhere;}
.portal-assignment-detail .assignment-detail-card .attachment-icon{width:32px;height:32px;min-width:32px;border-radius:8px;font-size:16px;}
.portal-assignment-detail .assignment-detail-card .submission-section{padding:16px 0 0;margin-top:16px;border-top:1px solid var(--portal-line);background:transparent;}
.portal-assignment-detail .assignment-detail-card .submission-section>h3{font-size:16px!important;margin:0 0 12px;}
.portal-assignment-detail .assignment-detail-card .submission-form-section{padding:16px;border:1px solid var(--portal-line);border-radius:10px;background:#fafbfc;scroll-margin-top:20px;}
.portal-assignment-detail .assignment-detail-card .submission-form-section h6{font-size:14px!important;margin:0 0 12px;}
.portal-assignment-detail .assignment-detail-card textarea{min-height:140px;height:140px;font-size:13px;line-height:1.6;}
.portal-assignment-detail .assignment-detail-card input[type=file]{padding:8px!important;font-size:12px;}
.portal-assignment-detail .assignment-detail-card :is(.form-actions,.actions-section){display:flex;align-items:center;flex-wrap:wrap;gap:8px;padding-top:12px;margin-top:12px;border-top:1px solid var(--portal-line);}
.portal-assignment-detail .assignment-detail-card .grade-display{padding:14px;border-radius:10px;margin-bottom:12px;text-align:left;}
.portal-assignment-detail .assignment-detail-card .grade-score{font-size:24px!important;line-height:1.3;}
.portal-assignment-detail .assignment-detail-card .grade-percentage{font-size:12px!important;}
.portal-assignment-detail .assignment-detail-card .teacher-remarks{padding:12px;font-size:13px;border-radius:8px;}
.portal-assignment-detail .assignment-detail-card .teacher-remarks h4{font-size:13px!important;}
@media(max-width:575px){.portal-assignment-detail .portal-content .assignment-detail-card{padding:14px!important;}.portal-assignment-detail .assignment-detail-card .assignment-title{font-size:19px!important;}.portal-assignment-detail .assignment-detail-card .submission-form-section{padding:12px;}.portal-assignment-detail .assignment-detail-card :is(.form-actions,.actions-section) .btn{min-height:44px;}}

/* Remaining account views: fees, membership, results, rosters and teacher forms. */
.portal-page .portal-content :is(.fee-card,.student-card,.exam-card,.search-filter-card,.dues-summary,.performance-summary,.assignment-form-container,.assignments-container,.grading-container,.student-progress-container,.submission-details-card){padding:16px!important;background:#fff;border:1px solid var(--portal-line)!important;border-radius:12px!important;box-shadow:0 3px 12px #172b4d04!important;margin-bottom:14px;}
.portal-page .portal-content :is(.fee-section,.form-section,.results-section){margin-bottom:16px;padding-top:0;}
.portal-page .portal-content :is(.fee-header,.student-header,.exam-header,.table-header,.section-header){display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:10px;margin-bottom:10px;padding-bottom:10px;border-bottom:1px solid var(--portal-line);}
.portal-page .portal-content :is(.fee-title,.student-name,.exam-title,.section-title){font-size:15px!important;line-height:1.4;margin:0;font-weight:650;}
.portal-page .portal-content :is(.fee-amount,.summary-amount,.stat-card h3){font-size:24px!important;line-height:1.25;letter-spacing:-.4px;font-variant-numeric:tabular-nums;margin:0;color:var(--portal-ink);}
.portal-page .portal-content :is(.summary-cards,.stats-grid){gap:0;margin-bottom:16px;}
.portal-page .portal-content :is(.summary-card,.stat-card){padding:14px!important;border-radius:12px!important;border:1px solid var(--portal-line);box-shadow:0 3px 12px #172b4d04!important;}
.portal-page .portal-content :is(.summary-label,.stat-card p){font-size:11px!important;line-height:1.5;margin:4px 0 0;}
.portal-page .portal-content .summary-icon{width:32px;height:32px;font-size:17px;margin-bottom:8px;}
.portal-page .portal-content .summary-icon svg{width:21px;height:21px;}
.portal-page .portal-content :is(.fee-meta,.student-details-grid,.compact-filter-row){display:flex;flex-wrap:wrap;gap:10px 18px;align-items:flex-start;}
.portal-page .portal-content .meta-item{display:flex;flex-direction:column;gap:3px;min-width:110px;}
.portal-page .portal-content :is(.meta-label,.detail-label){font-size:10px!important;color:var(--portal-muted);line-height:1.5;}
.portal-page .portal-content :is(.meta-value,.detail-value){font-size:12px!important;line-height:1.5;font-weight:550;overflow-wrap:anywhere;}
.portal-page .portal-content :is(.fee-status,.performance-badge,.recurring-badge){font-size:10px!important;line-height:1.4;padding:3px 7px!important;border-radius:5px;}
.portal-page .portal-content :is(.fee-actions,.form-actions,.filter-actions,.assignment-actions){display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin-top:12px;}
.portal-page .portal-content .action-btn{font-size:12px!important;min-height:36px;padding:8px 12px!important;border-radius:7px;}
.portal-page .portal-content .tier-header{padding:14px!important;border-radius:8px;}
.portal-page .portal-content .tier-header h6{font-size:15px!important;margin-bottom:6px!important;}
.portal-page .portal-content .tier-price{font-size:25px!important;line-height:1.25;letter-spacing:-.5px;}
.portal-page .portal-content .tier-period{font-size:11px!important;margin-top:4px;}
.portal-page .portal-content .tier-body{padding:14px 0 0!important;}
.portal-page .portal-content .tier-features{font-size:12px;line-height:1.5;padding-left:18px;margin-bottom:12px;}
.portal-page .portal-content .tier-features li{padding:4px 0!important;margin:0;}
.portal-page .portal-content .payment-method-card{padding:12px!important;font-size:12px;}
.portal-page .portal-content .payment-method-card.selected{border:2px solid var(--portal-accent)!important;}
.portal-page .portal-content .performance-summary .summary-item{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:8px;padding:8px 0;font-size:12px;}
.portal-page .portal-content .performance-summary .summary-value{font-size:14px!important;}
.portal-page .portal-content .student-avatar{max-width:48px;max-height:48px;}
@media(max-width:575px){.portal-page .portal-content :is(.fee-card,.student-card,.exam-card,.search-filter-card,.dues-summary,.performance-summary,.assignment-form-container,.assignments-container,.grading-container,.student-progress-container,.submission-details-card){padding:14px!important;}.portal-page .portal-content .action-btn{min-height:44px;}.portal-page .portal-content :is(.fee-amount,.summary-amount){font-size:21px!important;}}
/* Editorial article layout, scoped away from account forms and storefront content. */
.portal-blog{background:#f8fafb;}
.portal-blog .modern-blog{max-width:1120px;margin:0 auto;padding:26px 24px 48px;color:#243044;font-family:system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;}
.portal-blog .article-breadcrumb{display:flex;align-items:center;flex-wrap:wrap;gap:9px;font-size:12px;color:#64748b;margin-bottom:30px;}
.portal-blog .article-breadcrumb a{color:#64748b;}
.portal-blog .modern-article{background:#fff;border:1px solid #e7ebf0;border-radius:18px;overflow:hidden;box-shadow:0 6px 28px #172b4d04;}
.portal-blog .article-heading{max-width:850px;margin:0 auto;padding:36px 34px 28px;}
.portal-blog .article-category{display:inline-block;font-size:11px;font-weight:650;letter-spacing:.4px;text-transform:uppercase;background:color-mix(in srgb,var(--portal-accent) 8%,white);color:var(--portal-accent);border-radius:6px;padding:5px 9px;margin-bottom:14px;}
.portal-blog .article-heading h1{font:700 clamp(27px,3.4vw,42px)/1.18 system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;letter-spacing:-1px;color:#172435;margin:0 0 16px;overflow-wrap:anywhere;}
.portal-blog .article-intro{font-size:17px;line-height:1.65;color:#657184;margin:0 0 20px;}
.portal-blog .article-byline{display:flex;align-items:center;flex-wrap:wrap;gap:8px;font-size:12px;line-height:1.6;color:#64748b;}
.portal-blog .article-author-mark{width:29px;height:29px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;background:var(--portal-accent);color:#fff;font-size:12px;font-weight:600;}
.portal-blog .article-feature{margin:0 24px 30px;background:#f5f7f9;border-radius:12px;overflow:hidden;}
.portal-blog .article-feature img{display:block;width:100%;height:auto;max-height:540px;object-fit:contain;}
.portal-blog .article-body{max-width:760px;margin:0 auto;padding:0 30px 24px;font-size:16px;line-height:1.8;overflow-wrap:anywhere;color:#334155;}
.portal-blog .article-body :is(p,li){font-size:16px;line-height:1.8;}
.portal-blog .article-body p{margin:0 0 18px;}
.portal-blog .article-body :is(h2,h3,h4){color:#172435;letter-spacing:-.3px;font-weight:650;line-height:1.35;margin:28px 0 12px;}
.portal-blog .article-body h2{font-size:24px;}.portal-blog .article-body h3{font-size:20px;}.portal-blog .article-body h4{font-size:17px;}
.portal-blog .article-body img,.portal-blog .article-body video{max-width:100%;height:auto;border-radius:8px;}
.portal-blog .article-body iframe{max-width:100%;}
.portal-blog .article-body blockquote{margin:22px 0;padding:14px 20px;border-left:3px solid var(--portal-accent);background:#f8fafc;color:#475569;}
.portal-blog .article-body a{color:var(--portal-accent);text-decoration:underline;text-underline-offset:3px;}
.portal-blog .article-body pre{overflow:auto;}.portal-blog .article-body table{display:block;max-width:100%;overflow:auto;}
.portal-blog .article-gallery{max-width:850px;margin:0 auto;padding:0 30px 28px;}
.portal-blog .article-gallery h2{font-size:18px;font-weight:650;margin:0 0 14px;}
.portal-blog .article-gallery-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;}
.portal-blog .article-gallery-grid img{width:100%;aspect-ratio:4/3;object-fit:cover;border-radius:10px;display:block;}
.portal-blog .article-share{max-width:790px;margin:0 auto;padding:20px 30px 28px;border-top:1px solid #edf0f4;display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:12px;font-size:12px;font-weight:550;}
.portal-blog .article-share>div{display:flex;gap:8px;flex-wrap:wrap;}
.portal-blog .article-share a{display:inline-flex;align-items:center;padding:7px 11px;border:1px solid #e2e8f0;border-radius:7px;color:#475569;font-size:11px;}
.portal-blog .article-related{margin-top:34px;}
.portal-blog .article-related-heading{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:16px;}
.portal-blog .article-related-heading h2{font-size:20px;margin:0;font-weight:650;}
.portal-blog .article-related-heading>a{font-size:12px;color:var(--portal-accent);}
.portal-blog .article-related-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;}
.portal-blog .article-story{display:block;border:1px solid #e7ebf0;border-radius:12px;overflow:hidden;background:#fff;color:#334155;}
.portal-blog .article-story>img{width:100%;aspect-ratio:16/10;object-fit:cover;display:block;}
.portal-blog .article-story>div{padding:14px;}
.portal-blog .article-story time{font-size:10px;color:#64748b;}
.portal-blog .article-story h3{font-size:14px;line-height:1.45;margin:8px 0;font-weight:650;color:#172435;}
.portal-blog .article-story p{font-size:12px;line-height:1.55;margin-bottom:12px;color:#64748b;}
.portal-blog .article-read-more{font-size:11px;font-weight:600;color:var(--portal-accent);}
.portal-blog .modern-blog a:focus-visible{outline:2px solid var(--portal-accent);outline-offset:3px;}
@media(max-width:991px){.portal-blog .article-related-grid{grid-template-columns:repeat(2,minmax(0,1fr));}}
@media(max-width:575px){.portal-blog .modern-blog{padding:18px 15px 30px;}.portal-blog .article-breadcrumb{margin-bottom:18px;}.portal-blog .modern-article{border-radius:12px;}.portal-blog .article-heading{padding:24px 18px 22px;}.portal-blog .article-heading h1{font-size:27px;letter-spacing:-.6px;}.portal-blog .article-intro{font-size:15px;line-height:1.65;}.portal-blog .article-feature{margin:0 12px 24px;border-radius:8px;}.portal-blog .article-body{padding:0 18px 18px;font-size:15px;}.portal-blog .article-body :is(p,li){font-size:15px;}.portal-blog .article-gallery{padding:0 18px 22px;}.portal-blog .article-gallery-grid{gap:8px;}.portal-blog .article-share{padding:18px;}.portal-blog .article-share a{min-height:40px;}.portal-blog .article-related-grid{gap:10px;}.portal-blog .article-story>div{padding:12px;}.portal-blog .article-story h3{font-size:13px;}}
/* Normalize pasted editor font sizes and colors within article content. */
.portal-blog .article-body [style*="font-size"],.portal-blog .article-body font[size]{font-size:inherit!important;line-height:inherit!important;}
.portal-blog .article-body [style*="color"],.portal-blog .article-body font[color]{color:inherit!important;}
.portal-blog .article-body :is(h1,h2,h3,h4){font-size:22px!important;line-height:1.4!important;color:#172435!important;}
.portal-blog .article-body h3{font-size:20px!important;}.portal-blog .article-body h4{font-size:17px!important;}

/* Modern public event details with an uncluttered title and real featured photo. */
.portal-event{background:#f8fafb;}
.portal-event .portal-hero{padding:30px 0!important;}
.portal-event .portal-hero>.container,.portal-event .portal-content>.container{max-width:1080px;}
.portal-event .portal-hero .opacity-medium{display:none;}
.portal-event .portal-hero .one-second-screen{height:auto!important;min-height:0!important;padding:0!important;align-items:flex-start;text-align:left!important;}
.portal-event .portal-hero h1{font-size:clamp(28px,3.2vw,40px)!important;line-height:1.2;letter-spacing:-.7px;margin-bottom:12px!important;}
.portal-event .event-meta{display:flex;align-items:center;flex-wrap:wrap;gap:8px 16px;text-transform:none!important;font-size:12px;opacity:1;}
.portal-event .event-meta>br{display:none!important;}.portal-event .event-meta .margin-10px-top{margin-top:0!important;}
.portal-event .event-meta .badge{font-size:10px;padding:4px 8px;border-radius:5px;}
.portal-event .event-feature-photo{max-width:1050px;margin:24px auto 0;padding:0 15px;}
.portal-event .event-feature-photo img{display:block;width:100%;height:auto;max-height:520px;object-fit:contain;background:#edf1f5;border-radius:14px;}
.portal-event .portal-content{padding:24px 0!important;}
.portal-event .event-reading-block{max-width:800px;margin:0 auto 22px!important;}
.portal-event .event-reading-block :is(p,li){font-size:15px!important;line-height:1.8!important;}
.portal-event .event-reading-block :is(h1,h2,h3,h4){font-size:22px!important;line-height:1.4!important;letter-spacing:-.3px;margin-bottom:12px;}
.portal-event .event-reading-block [style*="font-size"],.portal-event .event-reading-block font[size]{font-size:inherit!important;}
.portal-event .event-reading-block img{max-width:100%;height:auto;border-radius:10px;}
.portal-event .portal-content :is(.event-status-card,.event-details-card,.event-location-card){padding:20px!important;background:#fff!important;border:1px solid var(--portal-line);border-radius:12px!important;box-shadow:0 4px 16px #172b4d04!important;transform:none!important;}
.portal-event .portal-content .event-detail-item{padding:12px;background:#f8fafc;border:1px solid var(--portal-line);border-radius:8px;height:100%;text-align:left!important;}
.portal-event .portal-content .event-detail-item>i{font-size:17px!important;margin-bottom:8px!important;}
.portal-event .portal-content .event-detail-item h6{font-size:12px!important;margin-bottom:5px;}
.portal-event .portal-content .event-detail-item p{font-size:12px!important;line-height:1.6;}
.portal-event .portal-content .margin-80px-bottom{margin-bottom:18px!important;}
.portal-event .portal-content .margin-30px-bottom{margin-bottom:14px!important;}
.portal-event .portal-content .padding-60px-all{padding:24px!important;border-radius:12px;}
.portal-event .portal-content .event-card{border:1px solid var(--portal-line);border-radius:12px!important;overflow:hidden;box-shadow:0 3px 12px #172b4d04!important;}
.portal-event .portal-content .event-images{margin-bottom:0!important;}
.portal-event .portal-content .event-images img{width:100%;height:160px!important;object-fit:cover;}
.portal-event .portal-content .event-details{padding:14px!important;}
.portal-event .portal-content .event-title{font-size:14px!important;line-height:1.5;}
.portal-event .portal-content .event-date{font-size:10px!important;}
.portal-event .social-sharing h6{font-size:14px!important;margin-bottom:12px!important;}
@media(max-width:575px){.portal-event .portal-hero{padding:24px 0!important;}.portal-event .portal-hero h1{font-size:27px!important;}.portal-event .event-feature-photo{margin-top:16px;}.portal-event .event-feature-photo img{border-radius:10px;}.portal-event .portal-content :is(.event-status-card,.event-details-card,.event-location-card){padding:14px!important;}.portal-event .event-reading-block :is(p,li){font-size:14px!important;}.portal-event .portal-content .event-detail-item{padding:10px;}}
/* Event content stays visible without waiting for scroll-triggered theme animations. */
.portal-event .wow{visibility:visible!important;opacity:1!important;animation:none!important;}
.portal-event .portal-content .text-medium-gray{color:#64748b!important;}
.portal-event .portal-content.bg-primary{background:var(--portal-accent)!important;color:#fff;}
.portal-event .portal-content.bg-primary h3{font-size:22px!important;line-height:1.35;}

/* Accessible contrast for light event theme accents. */
body.portal-event>header nav.navbar.navbar-fixed-top,body.portal-event>header.sticky nav.navbar.navbar-fixed-top,.portal-event .portal-hero,.portal-event .portal-content.bg-primary{background:color-mix(in srgb,var(--portal-accent) 60%,#000)!important;}
.portal-event .portal-content.bg-primary :is(h3,p),.portal-event .portal-hero .event-meta,.portal-event .portal-hero h1{color:#fff!important;opacity:1!important;}
.portal-event .portal-content :is(.text-medium-gray,.text-muted,.event-detail-item p,.event-location-card p,.event-date){color:#475569!important;opacity:1!important;}
.portal-event .badge.bg-info,.portal-event .badge.bg-primary{background:#e0f2fe!important;color:#075985!important;}
.portal-event .badge.bg-success{background:#dcfce7!important;color:#166534!important;}
.portal-event .badge.bg-warning{background:#fef3c7!important;color:#92400e!important;}
.portal-event .badge.bg-danger{background:#fee2e2!important;color:#991b1b!important;}
.portal-event .portal-content.bg-primary .btn{background:#fff!important;color:#172b4d!important;opacity:1!important;}

/* Align event panels with the featured image and use font-independent share icons. */
.portal-event .event-feature-photo{max-width:1080px;}
.portal-event .portal-content .event-full-width{flex:0 0 100%!important;max-width:100%!important;}
.portal-event .portal-content .event-full-width>.event-reading-block:has(.event-status-card){max-width:none;}
.portal-event .social-sharing ul{display:flex;align-items:center;justify-content:center;gap:10px;list-style:none;padding:0;margin:0;}
.portal-event .social-sharing li{margin:0!important;}
.portal-event .social-sharing a{display:inline-flex!important;align-items:center;justify-content:center;width:44px!important;height:44px!important;border:1px solid #cbd5e1;border-radius:10px!important;background:#fff;color:#334155!important;line-height:1!important;}
.portal-event .social-sharing a svg{width:20px;height:20px;display:block;}
.portal-event .social-sharing a:hover{background:#edf2f7;}
.portal-event .social-sharing a:focus-visible{outline:2px solid var(--portal-accent);outline-offset:3px;}
.portal-event .portal-content .event-full-width>.event-reading-block:has(.event-status-card){margin-left:-15px!important;margin-right:-15px!important;}
.portal-event .event-reading-block:has(.event-status-card){max-width:none!important;margin-left:-15px!important;margin-right:-15px!important;}

/* Compact event photograph, with the same image retained behind the header. */
.portal-event .portal-hero{background-image:linear-gradient(#10251fdb,#10251fe8),var(--event-header-image)!important;background-size:cover!important;background-position:center!important;}
.portal-event .event-feature-photo{margin-top:16px;}
.portal-event .event-feature-photo img{height:280px;max-height:280px;object-fit:contain;}
.portal-event .event-inline-icon{display:inline-block;width:18px;height:18px;vertical-align:-3px;flex-shrink:0;}
.portal-event .event-inline-icon.d-block{display:block;width:22px;height:22px;}
.portal-event .event-status-info .badge.bg-secondary,.portal-event .event-meta .badge.bg-secondary{background:#e2e8f0!important;color:#334155!important;}
@media(max-width:575px){.portal-event .event-feature-photo img{height:200px;max-height:200px;}}

.portal-event .event-status-icon{width:14px;height:14px;margin-right:5px;vertical-align:-3px;}

.portal-event .portal-hero .one-second-screen{padding:0 15px!important;}
.portal-event .event-feature-photo a{display:block;border-radius:14px;}
.portal-event .event-feature-photo a:focus-visible{outline:2px solid var(--portal-accent);outline-offset:3px;}

.event-image-viewer{position:fixed;inset:0;margin:auto;width:fit-content;max-width:94vw;max-height:94dvh;padding:48px 12px 12px;border:0;border-radius:12px;background:#101820;box-shadow:0 20px 80px #0008;}
.event-image-viewer::backdrop{background:#07111ce6;}
.event-image-viewer img{display:block;width:auto;height:auto;max-width:calc(94vw - 24px);max-height:calc(94dvh - 60px);object-fit:contain;}
.event-image-viewer .event-image-close{position:absolute;right:12px;top:10px;border:1px solid #ffffff70;border-radius:6px;padding:5px 12px;background:#fff;color:#172437;font:600 13px/1.5 system-ui;cursor:pointer;}
.event-image-viewer .event-image-close:focus-visible{outline:2px solid #fff;outline-offset:3px;}
body.event-zoom-open{overflow:hidden;}
.portal-event .event-feature-photo a{cursor:zoom-in;}

/* Keep navigation dropdowns above isolated page banners and image panels. */
body.portal-page>header,body.portal-page>header.sticky{position:relative!important;z-index:1000!important;isolation:isolate;overflow:visible!important;}
body.portal-page>header nav.navbar,body.portal-page>header .navbar-collapse{overflow:visible;}
body.portal-page>header .dropdown-menu{z-index:1010;}
