/* 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;}}
