/*
 * CAS Premium College Management System — Responsive Readability Layer v4
 * Purpose: normalize the screenshot-dense v2/v3 theme into a production UI
 * that is readable, premium and responsive without changing application logic.
 */

/* ---------- Global scale & readability ---------- */
html{font-size:16px;-webkit-text-size-adjust:100%;text-size-adjust:100%}
body{min-width:320px;font-size:1rem;line-height:1.55}
body.admin-body{font-size:.9375rem}
button,input,select,textarea{font-size:1rem}
img,svg{max-width:100%}
.panel,.content-card,.portal-card,.report-card{min-width:0}

/* Never allow the legacy compact theme to make core text microscopic. */
.cas-admin-theme :where(p,li,dd,dt,label,input,select,textarea,button),
.cas-portal-theme :where(p,li,dd,dt,label,input,select,textarea,button){font-size:max(.875rem,1em)}

/* ---------- Public website ---------- */
.cas-theme-public{font-size:1rem}
.cas-theme-public .container{width:min(1240px,calc(100% - 40px))}
.cas-top-strip{font-size:.8125rem}
.cas-theme-public .public-nav{font-size:.9rem;gap:18px}
.cas-theme-public .public-nav>a:not(.button){font-size:.9rem;line-height:1.25}
.nav-caret{font-size:.85rem}
.cas-theme-public .button{min-height:42px;font-size:.875rem;padding:10px 16px}
.cas-home-copy{max-width:680px}
.cas-home-copy h1{font-size:clamp(2.65rem,5.2vw,5.35rem);line-height:1.02;letter-spacing:-.035em}
.cas-home-copy p,.cas-about-copy p{font-size:1rem;line-height:1.7}
.cas-section-kicker,.cas-gold-kicker{font-size:.75rem}
.cas-program-finder label>span{font-size:.75rem}
.cas-feature-chip small,.cas-number-grid small,.cas-school-card small,.cas-outcome-grid small{font-size:.78rem;line-height:1.4}
.cas-program-card p,.cas-featured-program p,.cas-list-panel small,.cas-service-row small,.cas-three-info ul,
.cas-faq-grid p,.cas-admission-benefits small,.cas-steps small,.cas-check-list li,.cas-file-list li,
.cas-important-dates>div,.cas-mini-action small,.cas-apply-option small{font-size:.84rem;line-height:1.55}
.cas-list-panel strong,.cas-service-row strong,.cas-school-card strong,.cas-admission-benefits strong,
.cas-steps strong,.cas-mini-action strong,.cas-apply-option strong{font-size:.9rem}
.cas-program-card>span:last-child,.cas-program-tag,.cas-featured-program li,.cas-featured-program>div:last-child,
.cas-placeholder-row,.cas-journey-banner p,.cas-journey-actions small,.cas-newsletter-title small,.cas-newsletter input,
.cas-recruiter-grid span,.cas-faq-grid summary,.cas-number-band small,.cas-mini-action span,.cas-apply-option b{font-size:.8rem}
.cas-date-badge b,.cas-pdf-icon{font-size:.75rem}
.cas-breadcrumbs{font-size:.8rem}
.cas-public-footer{font-size:.875rem}
.footer-about p,.cas-public-footer p{font-size:.84rem;line-height:1.65}
.cas-public-footer h3{font-size:.82rem;letter-spacing:.06em}
.cas-public-footer a{font-size:.84rem;line-height:1.5}
.footer-socials span{font-size:.8rem}
.cas-public-footer .footer-bottom{font-size:.78rem;line-height:1.5}

/* ---------- Admin / portal shell ---------- */
.cas-admin-theme,.cas-portal-theme{--sidebar:270px}
.cas-sidebar{width:var(--sidebar)!important}
.admin-main-wrap{margin-left:var(--sidebar);min-width:0}
.cas-sidebar .sidebar-brand{min-height:76px;height:76px;padding:12px 16px}
.cas-sidebar-logo,.cas-sidebar-logo .brand-logo{width:172px;max-width:100%;max-height:52px;object-fit:contain;object-position:left center}
.sidebar-main-label{font-size:.7rem;letter-spacing:.11em;padding:12px 17px 5px}
.cas-sidebar .sidebar-nav{padding:10px 11px 16px}
.cas-sidebar .nav-item{min-height:44px;height:auto;padding:10px 13px;gap:11px;font-size:.875rem;line-height:1.25;border-radius:10px}
.cas-sidebar .nav-group summary{min-height:44px;padding:10px 13px;font-size:.82rem;line-height:1.25}
.cas-sidebar .nav-submenu{padding-left:11px}
.cas-sidebar .nav-submenu .nav-item{min-height:38px;font-size:.8125rem;padding-block:8px}
.nav-count{font-size:.72rem}
.cas-sidebar-help{margin:10px 11px;padding:13px;border-radius:12px}
.cas-sidebar-help strong{font-size:.8rem}
.cas-sidebar-help small{font-size:.72rem;line-height:1.45}
.cas-sidebar-help a{font-size:.75rem;min-height:34px;display:inline-flex;align-items:center}
.cas-sidebar .sidebar-user{padding:12px 14px;min-height:64px}
.cas-sidebar .brand-copy strong{font-size:.8rem}
.cas-sidebar .brand-copy small{font-size:.72rem}

.cas-admin-header,.cas-portal-header{height:76px;min-height:76px;padding:0 22px;gap:14px}
.cas-admin-header .header-left,.cas-portal-header .header-left{min-width:0}
.cas-admin-header .header-left h1,.cas-portal-header .header-left h1{font-size:1.18rem;line-height:1.25}
.cas-admin-header .breadcrumbs,.cas-portal-header .breadcrumbs{font-size:.75rem;line-height:1.35}
.cas-admin-header .header-actions,.cas-portal-header .header-actions{gap:6px;min-width:0}
.cas-notify,.cas-admin-header .icon-button,.cas-portal-header .icon-button{width:40px;height:40px;min-width:40px}
.cas-user-menu{min-height:44px;padding:4px 8px;gap:8px}
.cas-user-menu strong{font-size:.8rem;line-height:1.2}
.cas-user-menu small{font-size:.7rem;line-height:1.2}
.cas-user-menu b{font-size:.8rem}
.cas-user-menu .avatar{width:36px;height:36px}

.admin-content{width:min(1600px,100%);padding:24px 26px 28px;margin-inline:auto;overflow-x:clip}
.cas-admin-footer,.cas-portal-footer{min-height:64px;padding:12px 22px;font-size:.75rem;line-height:1.45;gap:14px;flex-wrap:wrap}
.cas-footer-brand small{font-size:.68rem}
.cas-footer-brand img{width:92px;max-height:38px}

/* ---------- Panels, typography, forms & tables ---------- */
.panel{border-radius:14px;box-shadow:0 4px 18px rgba(13,48,75,.065)}
.panel-header{min-height:54px;padding:13px 17px;gap:12px}
.panel-header h2{font-size:1rem;line-height:1.25}
.panel-header a,.panel-header>span{font-size:.75rem;line-height:1.3}
.panel-kicker{font-size:.69rem;letter-spacing:.085em}

.table-wrap{width:100%;max-width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch;scrollbar-width:thin}
.table-wrap table{width:100%;font-size:.8125rem;line-height:1.45}
.table-wrap th,.table-wrap td{padding:11px 13px;vertical-align:middle}
th{font-size:.72rem;letter-spacing:.035em}
.status-badge{font-size:.7rem;line-height:1.2;padding:5px 8px}
.pagination{font-size:.78rem}
.dots-menu a,.dots-menu button{font-size:.8rem}

.premium-form input,.premium-form select,.premium-form textarea,
.form-grid input,.form-grid select,.form-grid textarea,.form-grid-admin input,.form-grid-admin select,.form-grid-admin textarea,
.settings-grid input,.settings-grid select,.settings-grid textarea,.filter-bar input,.filter-bar select,.search-field input{
  min-height:44px;font-size:.875rem;line-height:1.4;padding:10px 12px
}
.premium-form textarea,.form-grid textarea,.form-grid-admin textarea,.settings-grid textarea{min-height:112px}
.field label,.premium-form label,.form-grid label,.form-grid-admin label,.settings-grid label{font-size:.8rem;line-height:1.35}
.required-note,.filter-bar label{font-size:.75rem}
.button{min-height:40px;font-size:.82rem}
.button-small{min-height:34px;font-size:.75rem}
.button-large{min-height:48px;font-size:.9rem}
.notice{font-size:.8rem;line-height:1.5}

/* ---------- Admin dashboard ---------- */
.cas-admin-search-band{gap:12px;margin-bottom:16px}
.cas-admin-search-band form{min-height:46px;border-radius:12px}
.cas-admin-search-band input{font-size:.875rem}
.cas-admin-search-band small{font-size:.72rem}
.cas-admin-search-band .button{height:46px}

.cas-admin-dashboard-hero{height:auto;min-height:210px;border-radius:16px;margin-bottom:16px}
.cas-admin-dashboard-hero>div:first-child{padding:27px 30px}
.cas-admin-dashboard-hero>div>span{font-size:.9rem}
.cas-admin-dashboard-hero h2{font-size:clamp(1.75rem,2.5vw,2.45rem);line-height:1.08;margin:.35rem 0}
.cas-admin-dashboard-hero p{font-size:.875rem;line-height:1.5}
.cas-hero-meta{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px 18px;margin-top:20px}
.cas-hero-meta b{font-size:.69rem}
.cas-hero-meta strong{font-size:.8rem}

.cas-admin-top-stats-five{display:grid;grid-template-columns:repeat(5,minmax(170px,1fr));gap:12px;overflow:visible}
.cas-admin-top-stats article{padding:15px 16px;min-height:94px}
.cas-admin-top-stats small{font-size:.72rem;line-height:1.3}
.cas-admin-top-stats strong{font-size:1.75rem;line-height:1.05}
.cas-admin-top-stats em{font-size:.68rem;line-height:1.3}

.cas-admin-main-grid{display:grid;grid-template-columns:1.05fr 1.55fr 1fr;gap:14px;margin:14px 0}
.cas-three-dashboard-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin:14px 0}
.cas-admin-bottom-grid{display:grid;grid-template-columns:1fr 1.3fr 1.05fr;gap:14px;margin:14px 0}
.cas-module-list>a{min-height:48px;padding:10px 15px;gap:10px}
.cas-module-list strong{font-size:.8rem;line-height:1.3}
.cas-module-list b{font-size:.75rem}
.cas-module-list small{font-size:.7rem;line-height:1.3}
.cas-dashboard-list>a,.cas-dashboard-list>article,.cas-dashboard-list>div{padding:11px 15px;gap:11px}
.cas-dashboard-list strong{font-size:.8rem;line-height:1.3}
.cas-dashboard-list small{font-size:.72rem;line-height:1.45}
.cas-dashboard-list em,.cas-dashboard-list b{font-size:.68rem;line-height:1.3}
.cas-empty-mini{font-size:.76rem;line-height:1.5}
.cas-analytics-kpis small{font-size:.69rem}
.cas-analytics-kpis strong{font-size:1.18rem}
.cas-analytics-foot{font-size:.7rem}
.cas-quick-action-grid small{font-size:.72rem;line-height:1.3}
.cas-health-list>div{font-size:.75rem;min-height:40px}
.cas-health-list strong{font-size:.7rem}
.cas-panel-action a{font-size:.73rem}
.cas-tab-strip{font-size:.72rem}
.cas-donut small,.cas-ring-legend p{font-size:.72rem}
.cas-bar-chart b,.cas-bar-chart small{font-size:.68rem}
.cas-admin-help-band strong,.cas-portal-help-band strong{font-size:.82rem}
.cas-admin-help-band small,.cas-portal-help-band small{font-size:.72rem}
.cas-admin-help-band>span,.cas-admin-help-band>a{font-size:.75rem}

/* ---------- Portal dashboards ---------- */
.cas-portal-hero{height:auto;min-height:220px;border-radius:16px}
.cas-portal-hero-copy{padding:28px 30px;max-width:68%}
.cas-portal-greeting{font-size:.86rem}
.cas-portal-hero h2{font-size:clamp(1.65rem,2.5vw,2.25rem);line-height:1.12}
.cas-portal-hero p{font-size:.875rem;line-height:1.55}
.cas-portal-stat-grid,.cas-role-stat-grid{display:grid;grid-template-columns:repeat(4,minmax(170px,1fr));gap:12px;margin:14px 0}
.cas-portal-stat-grid>a,.cas-role-stat-grid>a{min-height:92px;padding:14px 15px;border-radius:12px}
.cas-portal-stat-grid small,.cas-role-stat-grid small{font-size:.72rem;line-height:1.3}
.cas-portal-stat-grid strong,.cas-role-stat-grid strong{font-size:1.65rem}
.cas-portal-stat-grid em,.cas-role-stat-grid em{font-size:.68rem;line-height:1.3}
.cas-portal-dashboard-grid,.cas-role-dashboard-grid{display:grid;grid-template-columns:1.25fr 1fr;gap:14px;margin:14px 0}
.cas-portal-lower-grid{gap:14px}
.cas-progress-list span,.cas-progress-list b{font-size:.75rem}
.cas-management-welcome p{font-size:.82rem}
.cas-date-control{font-size:.76rem;min-height:40px}
.cas-exec-stats{display:grid;grid-template-columns:repeat(6,minmax(145px,1fr));gap:10px}
.cas-exec-stats small{font-size:.7rem}
.cas-exec-stats strong{font-size:1.45rem}
.cas-exec-stats em{font-size:.66rem}
.cas-funnel span,.cas-panel-footer{font-size:.72rem}
.cas-report-shortcuts strong{font-size:.76rem}
.cas-report-shortcuts small{font-size:.68rem;line-height:1.4}

/* Role-specific v3 components */
.cas-role-summary-main strong{font-size:1.7rem}
.cas-role-summary-main small{font-size:.72rem}
.cas-role-mini-list>a{font-size:.76rem;min-height:39px}
.cas-role-mini-list>a b{font-size:.72rem}
.cas-decision-grid strong{font-size:.76rem}
.cas-decision-grid small{font-size:.68rem;line-height:1.4}
.cas-strategic-focus .cas-section-kicker{font-size:.68rem}
.cas-strategic-focus strong{font-size:.92rem}
.cas-strategic-focus small{font-size:.7rem}
.cas-status-steps>a>span{font-size:.74rem}
.cas-status-steps strong{font-size:.72rem}
.cas-status-steps small{font-size:.66rem}
.cas-document-checklist>div,.cas-document-checklist>a{font-size:.75rem}
.cas-document-checklist strong{font-size:.72rem}
.cas-offer-box p,.cas-service-callout p,.cas-parent-security p{font-size:.78rem;line-height:1.5}
.cas-list-index{font-size:.72rem}
.cas-role-list strong{font-size:.76rem}
.cas-role-list small{font-size:.68rem}
.cas-role-list b{font-size:.7rem}
.cas-parent-verified{font-size:.75rem}
.cas-dependent-grid strong{font-size:.78rem}
.cas-dependent-grid small{font-size:.68rem}
.cas-add-dependent,.cas-staff-quick>a{font-size:.75rem}

/* ---------- Backup / restore page ---------- */
.cas-maintenance-hero{min-height:160px;padding:26px 30px}
.maintenance-intro h2{font-size:1.7rem;line-height:1.2}
.maintenance-intro p{font-size:.85rem;line-height:1.55;max-width:900px}
.cas-maintenance-meta{gap:10px;flex-wrap:wrap}
.cas-maintenance-meta span{font-size:.72rem}
.cas-backup-warning strong{font-size:.82rem}
.cas-backup-warning p{font-size:.76rem;line-height:1.5}
.maintenance-grid{gap:16px}
.maintenance-card{padding:22px}
.maintenance-card p{font-size:.8rem;line-height:1.55}
.cas-backup-includes span{font-size:.72rem}
.cas-backup-note{font-size:.72rem;line-height:1.5}
.file-drop{padding:22px 16px;min-height:122px;display:grid;place-items:center}
.file-drop strong{font-size:.85rem}
.file-drop small{font-size:.72rem;line-height:1.45}
.cas-maintenance-summary small{font-size:.7rem}
.cas-security-grid span{font-size:.72rem}

/* ---------- Large tablet / small laptop ---------- */
@media (min-width:1025px) and (max-width:1320px){
  .cas-admin-theme,.cas-portal-theme{--sidebar:238px}
  .cas-sidebar-logo,.cas-sidebar-logo .brand-logo{width:150px}
  .cas-admin-main-grid{grid-template-columns:1fr 1.35fr}
  .cas-admin-main-grid>.cas-recent-activity{grid-column:1/-1}
  .cas-admin-top-stats-five{grid-template-columns:repeat(3,minmax(165px,1fr))}
  .cas-admin-top-stats-five article:nth-child(n+4){min-width:0}
  .cas-three-dashboard-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .cas-three-dashboard-grid>article:last-child{grid-column:1/-1}
  .cas-admin-bottom-grid{grid-template-columns:1fr 1fr}
  .cas-admin-bottom-grid>article:last-child{grid-column:1/-1}
  .cas-exec-stats{grid-template-columns:repeat(3,minmax(150px,1fr))}
}

/* ---------- Tablet / mobile shell ---------- */
@media (max-width:1024px){
  .cas-theme-public .container{width:min(100% - 28px,1240px)}
  .cas-theme-public .public-nav{font-size:.95rem;gap:8px;padding:18px;max-height:calc(100dvh - 78px);overflow:auto}
  .cas-theme-public .public-nav>a:not(.button){font-size:.95rem;padding:9px 8px}

  .cas-admin-theme,.cas-portal-theme{--sidebar:min(88vw,300px)}
  .cas-sidebar{width:min(88vw,300px)!important}
  .admin-main-wrap,.admin-app.sidebar-folded .admin-main-wrap{margin-left:0!important}
  .cas-sidebar-logo,.cas-sidebar-logo .brand-logo{width:165px}
  .mobile-sidebar-toggle{display:grid!important}
  .cas-admin-header,.cas-portal-header{height:68px;min-height:68px;padding-inline:12px}
  .admin-content{padding:18px}
  .cas-admin-main-grid,.cas-admin-bottom-grid,.cas-portal-dashboard-grid,.cas-role-dashboard-grid{grid-template-columns:1fr}
  .cas-three-dashboard-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .cas-admin-top-stats-five{grid-template-columns:repeat(3,minmax(150px,1fr))}
  .cas-portal-stat-grid,.cas-role-stat-grid{grid-template-columns:repeat(2,minmax(150px,1fr))}
  .cas-exec-stats{grid-template-columns:repeat(3,minmax(145px,1fr))}
  .cas-portal-hero-copy{max-width:78%}
}

@media (max-width:768px){
  html{font-size:16px}
  body.admin-body{font-size:.9375rem}
  .cas-theme-public .container{width:min(100% - 24px,1240px)}
  .cas-theme-public .public-header,.cas-theme-public .nav-shell{height:64px}
  .cas-theme-public .public-nav{top:64px;left:10px;right:10px;border-radius:14px}
  .cas-home-copy h1{font-size:clamp(2.15rem,11vw,3.25rem);line-height:1.04}
  .cas-home-copy p,.cas-about-copy p{font-size:.95rem}
  .cas-home-copy .hero-actions{display:grid;grid-template-columns:1fr 1fr;gap:9px}
  .cas-home-copy .hero-actions .button{width:100%;min-width:0}
  .cas-public-footer .footer-grid,.cas-footer-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .cas-public-footer .footer-about{grid-column:1/-1}

  .cas-admin-header,.cas-portal-header{padding-inline:9px;gap:6px}
  .cas-admin-header .header-left,.cas-portal-header .header-left{gap:7px;flex:1;min-width:0}
  .cas-admin-header .header-left>div,.cas-portal-header .header-left>div{min-width:0}
  .cas-admin-header .header-left h1,.cas-portal-header .header-left h1{font-size:.95rem;max-width:none;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .cas-admin-header .breadcrumbs,.cas-portal-header .breadcrumbs{font-size:.68rem}
  .cas-admin-header .header-actions,.cas-portal-header .header-actions{gap:2px}
  .cas-notify,.cas-admin-header .icon-button,.cas-portal-header .icon-button{width:36px;height:36px;min-width:36px}
  .cas-user-menu{padding:2px 3px;min-height:38px}
  .cas-user-menu>span:nth-child(2),.cas-user-menu>b{display:none}
  .cas-user-menu .avatar{width:32px;height:32px}
  .admin-content{padding:13px 11px 18px}

  .cas-admin-search-band{align-items:stretch;flex-direction:column}
  .cas-admin-search-band .button{width:100%;justify-content:center}
  .cas-admin-dashboard-hero,.cas-portal-hero{min-height:230px}
  .cas-admin-dashboard-hero>div:first-child,.cas-portal-hero-copy{padding:22px 20px;max-width:100%;position:relative;z-index:2}
  .cas-admin-campus,.cas-portal-campus{opacity:.2;inset:0 0 0 30%}
  .cas-admin-dashboard-hero h2,.cas-portal-hero h2{font-size:1.65rem}
  .cas-hero-meta{grid-template-columns:1fr 1fr;gap:10px}

  .cas-admin-top-stats-five,.cas-portal-stat-grid,.cas-role-stat-grid,.cas-exec-stats{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
  .cas-three-dashboard-grid,.cas-admin-bottom-grid{grid-template-columns:1fr}
  .cas-three-dashboard-grid>article:last-child,.cas-admin-bottom-grid>article:last-child{grid-column:auto}

  .panel-header{padding:12px 14px;min-height:50px;align-items:flex-start}
  .panel-header h2{font-size:.94rem}
  .table-wrap table{min-width:680px;font-size:.78rem}
  .table-wrap th,.table-wrap td{padding:10px 11px}
  .form-grid,.form-grid-admin,.settings-grid,.profile-grid,.detail-admin-grid,.contact-grid,.form-layout{grid-template-columns:1fr!important}
  .page-toolbar,.filter-bar{align-items:stretch;flex-direction:column}
  .page-toolbar .button,.filter-bar .button{width:100%;justify-content:center}
  .maintenance-grid,.cas-maintenance-summary-grid{grid-template-columns:1fr!important}
  .maintenance-card{padding:18px}
  .cas-maintenance-hero{padding:22px 20px}
  .shield-hero{display:none}

  .cas-admin-footer,.cas-portal-footer{padding:12px 14px;justify-content:flex-start;text-align:left}
  .cas-footer-brand{width:100%}
}

@media (max-width:520px){
  .cas-top-strip{display:none}
  .cas-theme-public .public-brand .brand-logo{max-width:136px}
  .cas-home-copy .hero-actions{grid-template-columns:1fr}
  .cas-public-footer .footer-grid,.cas-footer-grid{grid-template-columns:1fr}
  .cas-public-footer .footer-about{grid-column:auto}
  .cas-public-footer .footer-bottom{flex-direction:column;align-items:flex-start;gap:8px}

  .cas-admin-header .breadcrumbs,.cas-portal-header .breadcrumbs{display:none}
  .cas-admin-header .header-left h1,.cas-portal-header .header-left h1{font-size:.88rem}
  .header-actions form:last-child{display:none}
  .admin-content{padding:10px 8px 16px}
  .cas-admin-dashboard-hero,.cas-portal-hero{min-height:245px}
  .cas-admin-campus,.cas-portal-campus{inset:0 0 0 45%;opacity:.18}
  .cas-hero-meta{grid-template-columns:1fr}
  .cas-admin-top-stats-five,.cas-portal-stat-grid,.cas-role-stat-grid,.cas-exec-stats{grid-template-columns:1fr}
  .cas-admin-top-stats article,.cas-portal-stat-grid>a,.cas-role-stat-grid>a{min-height:86px}
  .cas-quick-action-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .cas-status-steps{grid-template-columns:1fr!important;gap:6px}
  .cas-status-steps>a{min-height:54px}
  .cas-admin-footer,.cas-portal-footer>span:not(.cas-footer-brand){font-size:.7rem}
  .cas-version-chip{margin-left:0}
  .confirmation-card{margin:12px auto;padding:22px 16px}
}

@media (min-width:1025px){
  .admin-app.sidebar-folded .admin-main-wrap{margin-left:78px}
}

@media (prefers-reduced-motion:reduce){
  *,*:before,*:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}
}

/* ============================================================
   CAS Premium Responsive v1.5.2 — Sidebar flow + UI polish
   Fixes the legacy absolute Need Help card overlapping navigation.
   ============================================================ */

/* Turn the sidebar into a real vertical application shell. */
.cas-sidebar{
  display:flex!important;
  flex-direction:column;
  height:100dvh;
  max-height:100dvh;
  overflow:hidden!important;
}
.cas-sidebar .sidebar-brand,
.cas-sidebar .sidebar-main-label{
  flex:0 0 auto;
}
.cas-sidebar .sidebar-nav{
  position:relative!important;
  flex:1 1 auto;
  min-height:0;
  overflow-x:hidden;
  overflow-y:auto;
  overscroll-behavior:contain;
  scrollbar-gutter:stable;
  padding-bottom:12px!important;
}
.cas-sidebar .sidebar-nav::-webkit-scrollbar{width:6px}
.cas-sidebar .sidebar-nav::-webkit-scrollbar-track{background:transparent}
.cas-sidebar .sidebar-nav::-webkit-scrollbar-thumb{background:rgba(255,255,255,.18);border-radius:999px}
.cas-sidebar .sidebar-nav::-webkit-scrollbar-thumb:hover{background:rgba(255,255,255,.3)}

/* Help card belongs AFTER the menu, never on top of it. */
.cas-sidebar .cas-sidebar-help{
  position:relative!important;
  inset:auto!important;
  left:auto!important;
  right:auto!important;
  top:auto!important;
  bottom:auto!important;
  flex:0 0 auto;
  display:grid!important;
  grid-template-columns:34px minmax(0,1fr);
  align-items:start;
  gap:5px 9px;
  margin:8px 11px 10px!important;
  padding:12px!important;
  border:1px solid rgba(255,255,255,.16)!important;
  border-radius:13px!important;
  background:linear-gradient(145deg,rgba(10,66,118,.96),rgba(0,35,72,.96))!important;
  box-shadow:0 10px 26px rgba(0,15,38,.22);
  overflow:hidden;
}
.cas-sidebar .cas-sidebar-help:before{
  content:"";
  position:absolute;
  width:90px;
  height:90px;
  right:-42px;
  top:-42px;
  border-radius:50%;
  background:rgba(216,170,69,.12);
  pointer-events:none;
}
.cas-sidebar .cas-sidebar-help>span{
  grid-row:1/2!important;
  width:34px;
  height:34px;
  display:grid;
  place-items:center;
  border-radius:10px;
  color:#ffe1a1;
  background:rgba(216,170,69,.14);
}
.cas-sidebar .cas-sidebar-help>div{min-width:0}
.cas-sidebar .cas-sidebar-help strong{
  display:block;
  margin:0 0 2px;
  font-size:.8rem!important;
  line-height:1.25;
  color:#fff;
}
.cas-sidebar .cas-sidebar-help small{
  display:block;
  font-size:.7rem!important;
  line-height:1.42!important;
  color:#c9d9e9!important;
  overflow-wrap:anywhere;
}
.cas-sidebar .cas-sidebar-help a{
  position:relative;
  z-index:1;
  grid-column:1/-1!important;
  width:100%;
  min-height:34px!important;
  margin-top:4px;
  display:inline-flex!important;
  align-items:center;
  justify-content:center;
  border:1px solid rgba(255,255,255,.17)!important;
  border-radius:9px!important;
  background:rgba(255,255,255,.08);
  color:#fff!important;
  font-size:.73rem!important;
  font-weight:800;
  text-decoration:none;
  transition:background .18s ease,border-color .18s ease,transform .18s ease;
}
.cas-sidebar .cas-sidebar-help a:hover{
  background:rgba(216,170,69,.18);
  border-color:rgba(255,225,161,.42)!important;
  transform:translateY(-1px);
}

/* User strip participates in sidebar flow instead of covering content. */
.cas-sidebar .sidebar-user{
  position:relative!important;
  inset:auto!important;
  left:auto!important;
  right:auto!important;
  top:auto!important;
  bottom:auto!important;
  flex:0 0 auto;
  width:100%;
  height:auto!important;
  min-height:64px;
  background:rgba(0,29,61,.98)!important;
}

/* Keep the compact folded desktop sidebar clean. */
@media (min-width:1025px){
  .admin-app.sidebar-folded .cas-sidebar-help,
  .admin-app.sidebar-folded .sidebar-main-label{display:none!important}
  .admin-app.sidebar-folded .sidebar-nav{padding-inline:8px!important}
}

/* Mobile drawer: visible help card, compact but fully readable. */
@media (max-width:1024px){
  .cas-sidebar{height:100dvh;max-height:100dvh}
  .cas-sidebar .sidebar-nav{padding-bottom:10px!important}
  .cas-sidebar .cas-sidebar-help{margin:7px 10px 8px!important}
}
@media (max-width:520px){
  .cas-sidebar .cas-sidebar-help{
    display:grid!important;
    grid-template-columns:30px minmax(0,1fr);
    gap:4px 8px;
    padding:10px!important;
    margin:6px 9px 7px!important;
    border-radius:11px!important;
  }
  .cas-sidebar .cas-sidebar-help>span{width:30px;height:30px;border-radius:9px}
  .cas-sidebar .cas-sidebar-help strong{font-size:.75rem!important}
  .cas-sidebar .cas-sidebar-help small{font-size:.64rem!important;line-height:1.35!important}
  .cas-sidebar .cas-sidebar-help a{min-height:32px!important;font-size:.68rem!important;margin-top:3px}
  .cas-sidebar .sidebar-user{min-height:58px;padding:9px 12px!important}
}

/* Premium interaction/readability finishing. */
.cas-admin-theme :where(a,button,input,select,textarea,summary):focus-visible,
.cas-portal-theme :where(a,button,input,select,textarea,summary):focus-visible,
.cas-theme-public :where(a,button,input,select,textarea,summary):focus-visible{
  outline:3px solid #e7bd61;
  outline-offset:2px;
}
.cas-admin-theme .panel,
.cas-portal-theme .panel{
  border-color:rgba(24,69,105,.10);
}
.cas-admin-theme .panel-header,
.cas-portal-theme .panel-header{
  background:linear-gradient(180deg,#fff,#fbfdff);
}
.cas-admin-theme .button,
.cas-portal-theme .button,
.cas-theme-public .button{
  font-weight:800;
  letter-spacing:.005em;
}
.cas-admin-theme input,
.cas-admin-theme select,
.cas-admin-theme textarea,
.cas-portal-theme input,
.cas-portal-theme select,
.cas-portal-theme textarea{
  min-height:42px;
}
.cas-admin-theme textarea,
.cas-portal-theme textarea{min-height:110px}
.table-wrap{
  scrollbar-width:thin;
  overscroll-behavior-x:contain;
}
@media (hover:hover) and (pointer:fine){
  .cas-admin-theme .panel,
  .cas-portal-theme .panel{transition:box-shadow .18s ease,border-color .18s ease}
  .cas-admin-theme .panel:hover,
  .cas-portal-theme .panel:hover{box-shadow:0 8px 26px rgba(13,48,75,.085);border-color:rgba(21,108,159,.16)}
}

/* ============================================================
   CAS Premium Responsive v1.5.3 — Public footer single-row rail
   Keeps every footer section in one horizontal line. On compact
   screens the row scrolls smoothly instead of dropping columns.
   ============================================================ */
.cas-public-footer{
  position:relative;
  overflow:hidden;
  padding:46px 0 18px!important;
  background:
    radial-gradient(circle at 8% 0%,rgba(40,127,182,.20),transparent 34%),
    radial-gradient(circle at 92% 18%,rgba(216,170,69,.11),transparent 28%),
    linear-gradient(180deg,#062b51 0%,#031d3a 58%,#02172f 100%)!important;
  border-top:1px solid rgba(216,170,69,.18);
}
.cas-public-footer:before{
  content:"";
  position:absolute;
  inset:0;
  pointer-events:none;
  background:linear-gradient(90deg,transparent,rgba(255,255,255,.025),transparent);
}
.cas-public-footer .cas-footer-grid{
  position:relative;
  z-index:1;
  display:grid!important;
  grid-template-columns:minmax(225px,1.45fr) minmax(125px,.82fr) minmax(155px,1fr) minmax(140px,.9fr) minmax(210px,1.25fr)!important;
  align-items:start;
  gap:clamp(14px,2vw,30px)!important;
  width:min(1440px,calc(100% - 40px))!important;
  max-width:1440px;
  margin-inline:auto;
}
.cas-public-footer .cas-footer-grid>.cas-footer-column{
  min-width:0;
  grid-column:auto!important;
  align-self:stretch;
  position:relative;
  display:flex!important;
  flex-direction:column;
  gap:7px!important;
  padding:2px 0 2px clamp(12px,1.45vw,24px);
  border-left:1px solid rgba(255,255,255,.09);
}
.cas-public-footer .cas-footer-grid>.cas-footer-brand-column{
  padding-left:0;
  border-left:0;
}
.cas-public-footer .brand-footer{
  width:max-content;
  max-width:100%;
  margin-bottom:11px;
}
.cas-public-footer .brand-footer .brand-logo{
  width:auto;
  max-width:165px!important;
  max-height:58px;
  object-fit:contain;
  object-position:left center;
}
.cas-public-footer .footer-about p{
  max-width:315px;
  margin:0;
  font-size:.84rem!important;
  line-height:1.7!important;
  color:#ccdaea!important;
}
.cas-public-footer h3{
  position:relative;
  width:max-content;
  max-width:100%;
  margin:0 0 11px!important;
  padding-bottom:8px;
  font-size:.76rem!important;
  line-height:1.25;
  letter-spacing:.105em!important;
  font-weight:900;
  color:#fff;
  white-space:nowrap;
}
.cas-public-footer h3:after{
  content:"";
  position:absolute;
  left:0;
  bottom:0;
  width:30px;
  height:2px;
  border-radius:999px;
  background:linear-gradient(90deg,#e0b351,#f4d997);
}
.cas-public-footer .cas-footer-column>a:not(.button),
.cas-public-footer .cas-footer-contact-link{
  width:max-content;
  max-width:100%;
  color:#d6e3ef!important;
  font-size:.79rem!important;
  line-height:1.42!important;
  font-weight:600;
  text-decoration:none;
  overflow-wrap:anywhere;
  transition:color .17s ease,transform .17s ease;
}
.cas-public-footer .cas-footer-column>a:not(.button):hover,
.cas-public-footer .cas-footer-contact-link:hover{
  color:#f2cf7f!important;
  transform:translateX(2px);
}
.cas-public-footer .cas-footer-contact p{
  margin:0;
  font-size:.77rem!important;
  line-height:1.5!important;
  color:#cbd9e7!important;
  overflow-wrap:anywhere;
}
.cas-public-footer .cas-footer-contact .cas-footer-lead{
  margin-bottom:4px;
  color:#e5edf5!important;
}
.cas-public-footer .cas-footer-contact-button{
  width:max-content;
  min-height:34px;
  margin-top:5px;
  padding:7px 12px;
  border-color:rgba(255,255,255,.20)!important;
  background:rgba(255,255,255,.06)!important;
  color:#fff!important;
  box-shadow:none!important;
}
.cas-public-footer .cas-footer-contact-button:hover{
  border-color:rgba(235,198,112,.50)!important;
  background:rgba(216,170,69,.13)!important;
}
.cas-public-footer .footer-socials{
  display:flex;
  flex-wrap:nowrap;
  gap:8px;
  margin-top:14px;
}
.cas-public-footer .footer-socials span{
  width:31px;
  height:31px;
  flex:0 0 31px;
  display:grid;
  place-items:center;
  border:1px solid rgba(255,255,255,.13);
  border-radius:10px;
  background:rgba(255,255,255,.065);
  color:#fff;
  font-size:.72rem!important;
  font-weight:800;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.06);
}
.cas-public-footer .footer-bottom{
  position:relative;
  z-index:1;
  width:min(1440px,calc(100% - 40px));
  max-width:1440px;
  margin:30px auto 0!important;
  padding-top:15px!important;
  border-top:1px solid rgba(255,255,255,.10);
  display:flex!important;
  flex-direction:row!important;
  align-items:center!important;
  justify-content:space-between;
  gap:16px;
  color:#9fb4c8;
  font-size:.72rem!important;
  line-height:1.45;
}

/* Medium screens still keep all five columns on one line. */
@media (min-width:901px) and (max-width:1180px){
  .cas-public-footer .cas-footer-grid{
    grid-template-columns:minmax(190px,1.3fr) minmax(112px,.82fr) minmax(140px,1fr) minmax(125px,.9fr) minmax(185px,1.2fr)!important;
    gap:13px!important;
    width:min(100% - 26px,1180px)!important;
  }
  .cas-public-footer .cas-footer-grid>.cas-footer-column{padding-left:12px}
  .cas-public-footer .cas-footer-grid>.cas-footer-brand-column{padding-left:0}
  .cas-public-footer .footer-about p{font-size:.78rem!important}
  .cas-public-footer .cas-footer-column>a:not(.button),
  .cas-public-footer .cas-footer-contact-link{font-size:.73rem!important}
  .cas-public-footer .cas-footer-contact p{font-size:.72rem!important}
  .cas-public-footer h3{font-size:.69rem!important;letter-spacing:.075em!important}
}

/* Tablet/mobile: never send a footer column beneath another one. */
@media (max-width:900px){
  .cas-public-footer{padding-top:36px!important}
  .cas-public-footer .cas-footer-grid{
    display:flex!important;
    flex-wrap:nowrap!important;
    align-items:stretch;
    gap:12px!important;
    width:100%!important;
    max-width:none!important;
    padding:0 14px 12px;
    overflow-x:auto;
    overflow-y:hidden;
    overscroll-behavior-x:contain;
    scroll-snap-type:x proximity;
    scroll-padding-inline:14px;
    -webkit-overflow-scrolling:touch;
    scrollbar-width:thin;
    scrollbar-color:rgba(255,255,255,.24) transparent;
  }
  .cas-public-footer .cas-footer-grid::-webkit-scrollbar{height:5px}
  .cas-public-footer .cas-footer-grid::-webkit-scrollbar-track{background:transparent}
  .cas-public-footer .cas-footer-grid::-webkit-scrollbar-thumb{background:rgba(255,255,255,.22);border-radius:999px}
  .cas-public-footer .cas-footer-grid>.cas-footer-column{
    flex:0 0 clamp(190px,56vw,245px)!important;
    width:auto!important;
    min-width:0!important;
    grid-column:auto!important;
    scroll-snap-align:start;
    padding:16px!important;
    border:1px solid rgba(255,255,255,.10)!important;
    border-radius:14px;
    background:rgba(255,255,255,.035);
    box-shadow:inset 0 1px 0 rgba(255,255,255,.04);
  }
  .cas-public-footer .cas-footer-grid>.cas-footer-brand-column{flex-basis:clamp(225px,66vw,285px)!important}
  .cas-public-footer .footer-about p{max-width:none}
  .cas-public-footer .footer-bottom{
    width:calc(100% - 28px)!important;
    margin-top:18px!important;
    padding-top:13px!important;
    flex-direction:row!important;
    align-items:center!important;
    justify-content:space-between;
    gap:12px;
    font-size:.68rem!important;
  }
}

@media (max-width:520px){
  .cas-public-footer .cas-footer-grid{padding-inline:11px;scroll-padding-inline:11px}
  .cas-public-footer .cas-footer-grid>.cas-footer-column{flex-basis:78vw!important;max-width:290px}
  .cas-public-footer .cas-footer-grid>.cas-footer-brand-column{flex-basis:84vw!important}
  .cas-public-footer .footer-bottom{
    width:calc(100% - 22px)!important;
    display:grid!important;
    grid-template-columns:1fr!important;
    gap:5px!important;
    align-items:start!important;
  }
}

/* ============================================================
   CAS Premium Responsive v1.5.4 — Mobile viewport hardening
   Removes legacy horizontal page expansion / right-side blank space.
   ============================================================ */

/* The legacy screenshot theme contains off-canvas / vw-positioned artwork.
   Keep the document itself locked to the real viewport while allowing
   intentional local scrollers (tables/footer rail) to scroll internally. */
html,
body{
  width:100%!important;
  max-width:100%!important;
  min-width:0!important;
  overflow-x:hidden!important;
}

body.cas-theme-public,
body.cas-admin-theme,
body.cas-portal-theme,
.admin-app,
.admin-main-wrap,
.admin-content,
.cas-theme-public main,
.cas-theme-public .public-header,
.cas-theme-public .public-footer{
  width:100%;
  max-width:100%;
  min-width:0;
}

/* Clip decorative artwork at section boundaries instead of letting it widen
   the mobile document. This directly neutralizes the old right:-30% hero. */
.cas-theme-public .cas-home-hero,
.cas-theme-public .cas-page-hero,
.cas-theme-public .hero-section,
.cas-theme-public .cta-band,
.cas-theme-public .cas-journey-banner,
.cas-theme-public .public-footer{
  overflow-x:hidden!important;
  overflow-x:clip!important;
}

/* Prevent flex/grid children, long links and controls from defining a wider
   intrinsic width than the viewport. */
.cas-theme-public :where(main,section,article,div,nav,form,fieldset),
.cas-admin-theme :where(main,section,article,div,nav,form,fieldset),
.cas-portal-theme :where(main,section,article,div,nav,form,fieldset){
  min-width:0;
}
.cas-theme-public :where(a,p,h1,h2,h3,h4,h5,h6,span,strong,small,label),
.cas-admin-theme :where(a,p,h1,h2,h3,h4,h5,h6,span,strong,small,label),
.cas-portal-theme :where(a,p,h1,h2,h3,h4,h5,h6,span,strong,small,label){
  overflow-wrap:anywhere;
}

/* Local horizontal scrolling stays local; it must never widen the page. */
.table-wrap,
.cas-public-footer .cas-footer-grid{
  max-width:100%!important;
  overscroll-behavior-x:contain;
}

@media (max-width:1024px){
  .cas-theme-public .container,
  .cas-theme-public .container-wide{
    max-width:calc(100% - 28px)!important;
    margin-left:auto!important;
    margin-right:auto!important;
  }
  .cas-theme-public .cas-campus-visual{
    right:-8%!important;
    width:72%!important;
    max-width:72%!important;
  }
}

@media (max-width:768px){
  .cas-theme-public .container,
  .cas-theme-public .container-wide{
    width:calc(100% - 24px)!important;
    max-width:calc(100% - 24px)!important;
  }
  .cas-theme-public .cas-home-hero{
    overflow:hidden!important;
  }
  .cas-theme-public .cas-campus-visual{
    right:-12%!important;
    width:82%!important;
    max-width:82%!important;
    height:100%!important;
    pointer-events:none;
  }
  .cas-theme-public .cas-page-campus{
    right:0!important;
    max-width:72%!important;
  }

  /* Footer remains a one-line horizontal rail, but its padding is included
     inside its own viewport width and cannot create body-level overflow. */
  .cas-public-footer .cas-footer-grid{
    box-sizing:border-box!important;
    width:100%!important;
    max-width:100%!important;
    margin-left:0!important;
    margin-right:0!important;
    padding-left:12px!important;
    padding-right:12px!important;
    scroll-padding-left:12px;
    scroll-padding-right:12px;
  }
  .cas-public-footer .cas-footer-grid>.cas-footer-column{
    max-width:min(82vw,290px)!important;
  }
}

@media (max-width:520px){
  .cas-theme-public .container,
  .cas-theme-public .container-wide{
    width:calc(100% - 20px)!important;
    max-width:calc(100% - 20px)!important;
  }
  .cas-theme-public .cas-campus-visual{
    right:-16%!important;
    width:92%!important;
    max-width:92%!important;
  }
  .cas-theme-public .public-nav{
    max-width:calc(100% - 20px)!important;
  }
  .cas-public-footer .cas-footer-grid{
    padding-left:10px!important;
    padding-right:10px!important;
  }
  .cas-public-footer .cas-footer-grid>.cas-footer-column,
  .cas-public-footer .cas-footer-grid>.cas-footer-brand-column{
    flex-basis:min(82vw,286px)!important;
    max-width:min(82vw,286px)!important;
  }
}

/* v1.6 final-content: retire legacy/demo campus photography from operational UI. */
.cas-sidebar:after{background:radial-gradient(circle at 22% 28%,rgba(255,255,255,.12),transparent 20%),radial-gradient(circle at 78% 62%,rgba(216,170,69,.14),transparent 24%),linear-gradient(150deg,rgba(14,87,135,.42),rgba(2,31,59,.02))!important;opacity:.72!important}
.cas-portal-campus{background:radial-gradient(circle at 68% 34%,rgba(255,255,255,.16),transparent 18%),radial-gradient(circle at 34% 70%,rgba(216,170,69,.2),transparent 22%),linear-gradient(135deg,#0a4770,#072b49)!important;border-left:3px solid var(--cas-gold)!important}
