/* Bank Senoa v2.7.0 — Proportional Layout & Visual Density Rebuild
   Final visual layer. Keeps shell geometry stable while removing stretched,
   over-wide and visually empty surfaces across desktop/tablet/mobile. */

:root{--s-content-max:1380px}

/* Global rhythm: content should feel intentional, not stretched. */
.grid{gap:14px}
.grid-2,.grid-3{align-items:start}
.grid-4{align-items:stretch}
.dashboard-hero,.subgrid,.student-top-grid,.teller-workspace{align-items:start}
.hero-aside{align-content:start;grid-auto-rows:max-content;gap:12px}
.panel,.hero-card,.hero-mini,.stat,.tenant-card,.goal-card,.account-card{height:auto;min-height:0}
.panel{padding:20px;border-radius:23px}
.panel-head{margin-bottom:14px;gap:12px}
.panel-head h2{font-size:17px;line-height:1.22}
.panel-head p{margin:4px 0 0;line-height:1.55}
.section-gap{margin-top:15px!important}.section-gap-sm{margin-top:10px!important}
.metric-list{gap:10px}.metric-item{padding:12px 14px;border-radius:16px}.metric-item .ico{width:38px;height:38px;border-radius:12px}
.mini-row{padding:10px 0}.activity-item{padding:11px 4px}.activity-list{gap:0}
.empty-state{padding:20px 14px;border:1px dashed rgba(255,255,255,.08);border-radius:16px;background:rgba(255,255,255,.018)}
.empty-state.compact{padding:16px}
.alert{margin-bottom:14px}
.form-grid{gap:13px}.field input,.field select,.field textarea{padding:13px 14px;border-radius:15px}
.btn{min-height:43px;padding:12px 16px;border-radius:15px}.btn-soft{box-shadow:none}
.quick-actions{gap:8px}.quick-actions .btn{min-height:43px}
.table-wrap{border-radius:16px}th{padding:11px 10px}td{padding:12px 10px}
.badge{padding:6px 9px}

/* Dashboard: compact command center rather than oversized marketing hero. */
.dashboard-hero{grid-template-columns:minmax(0,1.52fr) minmax(280px,.48fr);gap:14px;margin-bottom:14px}
.hero-card{padding:24px;border-radius:27px}
.hero-card h2{font-size:clamp(27px,2.35vw,34px);margin:11px 0;max-width:760px}
.hero-card p{margin:0;line-height:1.7;max-width:720px}
.hero-card .actions{margin-top:19px;gap:8px}
.inline-stats{gap:12px;margin-top:18px}.inline-stats b{font-size:18px}.inline-stats span{font-size:11px}
.hero-mini{padding:17px;border-radius:20px}
.hero-mini h3{font-size:13px;margin-bottom:7px}.hero-mini strong{font-size:25px;margin-bottom:4px}
.hero-mini .ring{width:104px!important;height:104px!important;margin-top:12px!important;padding:9px!important}
.hero-mini .ring b{font-size:24px!important}
.stat{min-height:108px!important;padding:17px 18px!important;border-radius:21px}
.stat strong{font-size:clamp(22px,1.7vw,28px)!important;margin:9px 0 4px}.stat small{font-size:10px}.stat em{font-size:11px}
.bar-chart{min-height:182px}

/* Dense operational pages. Tall sibling panels no longer stretch each other. */
.page-students .student-top-grid,.page-classes .grid-2,.page-users .grid-2,.page-cash .grid-2,.page-withdrawals .grid-2,.page-goals .grid-2,.page-parents .grid-2{align-items:start!important}
.page-students .student-lifecycle-card,.page-users .hero-mini,.page-goals .hero-mini{align-self:start}
.page-teller .teller-workspace{grid-template-columns:minmax(0,1.08fr) minmax(360px,.92fr);gap:14px}
.page-teller .selected-student{min-height:92px}.page-teller .transaction-panel{align-self:start}
.page-teller .search-results{max-height:285px}.page-teller .big-search input{padding:15px 46px 15px 16px}
.page-accounts .account-list{gap:10px}.page-accounts .account-tile{padding:14px 16px}
.page-reports .report-summary-grid,.page-import .grid-4,.page-import_savings .grid-4,.page-leads .grid-4{gap:12px}
.page-reports .filter-grid{gap:11px}.page-reports .statement-launcher{padding:18px}
.page-audit .audit-summary-grid,.page-alerts .grid-3,.page-cash .grid-3{gap:12px}
.page-health .health-grid{gap:10px}.page-health .health-card{padding:15px;border-radius:17px}
.page-schools .tenant-grid{gap:13px}.page-schools .tenant-card{padding:18px;border-radius:22px}
.page-goals .goal-grid{gap:12px}.page-goals .goal-card{padding:18px;border-radius:21px}
.page-cards .card-grid{gap:16px}

/* Form/config pages should not sprawl across an ultrawide display. */
.page-settings .content,.page-maintenance .content{max-width:1120px!important}
.page-backup .content,.page-health .content,.page-classes .content{max-width:1240px!important}
.page-users .content,.page-parents .content{max-width:1280px!important}

/* Public/commercial pages: tighter vertical rhythm while retaining hierarchy. */
.public-main .section,.landing .section{padding:72px 0}
.landing .hero{padding:76px 0 68px}
.section-head{margin-bottom:34px}.section-head h2{margin:11px 0}.section-head p{line-height:1.7}
.feature-grid{gap:16px}.feature-card{padding:22px;border-radius:24px}.feature-card h3{margin:15px 0 7px}.feature-card p{line-height:1.65}
.phone-stage{min-height:560px}
.pricing-shell{gap:14px}.price-card{border-radius:24px}.trial-layout{align-items:start}

/* Parent portal: balance information and controls remain prominent without giant empty cards. */
.parent-main{max-width:1120px;margin-inline:auto;padding-top:24px!important}
.parent-page-head{margin-bottom:17px}
.parent-dashboard-hero{align-items:start!important;gap:14px!important}
.parent-balance-card,.parent-quick-panel{min-height:188px!important}
.parent-balance-card{padding:24px!important}.parent-balance-card>strong{margin:20px 0 18px!important;font-size:clamp(37px,4.2vw,52px)!important}
.parent-quick-panel{padding:18px}.parent-quick-grid{margin-top:13px;gap:8px}.parent-quick-grid>a{min-height:61px}
.parent-section{margin-top:19px}.parent-dashboard-lower{align-items:start!important;gap:14px!important}.parent-panel{align-self:start}
.parent-child-grid{gap:10px}.parent-child-card{padding:15px!important}

@media (min-width:1024px){
  .desktop-topbar{height:86px!important;min-height:86px!important;padding-inline:26px!important}
  .desktop-topbar h1{font-size:24px!important}
  .content{width:min(100%,var(--s-content-max))!important;max-width:var(--s-content-max)!important;padding:21px 26px 48px!important}
  .school-pill{margin-bottom:11px!important;padding:11px 13px!important}
  .sidebar nav a{min-height:41px!important;padding:8px 11px!important}
  .sidebar-foot{min-height:62px!important;padding-top:10px!important}
  .grid-2,.grid-3{align-items:start!important}
  .dashboard-hero{align-items:start!important}
  .hero-aside>*{height:auto!important}
}

@media (min-width:1024px) and (max-width:1279px){
  :root{--s-content-max:1180px}
  .dashboard-hero{grid-template-columns:1fr!important}
  .hero-aside{grid-template-columns:repeat(2,minmax(0,1fr))!important}
  .page-teller .teller-workspace{grid-template-columns:1fr!important}
}

@media (min-width:768px) and (max-width:1023px){
  .content{padding:18px 18px 40px!important}
  .panel,.hero-card,.hero-mini{padding:18px!important}
  .grid{gap:12px}
  .dashboard-hero,.page-teller .teller-workspace{gap:12px}
  .hero-aside{grid-template-columns:repeat(2,minmax(0,1fr))}
  .parent-main{padding-top:20px!important}
}

@media (max-width:767px){
  .content{padding:12px 12px calc(var(--s-mobile-nav) + var(--s-safe-bottom) + 22px)!important}
  .grid{gap:10px}
  .panel,.stat,.hero-card,.hero-mini{padding:15px!important;border-radius:19px!important}
  .panel-head{margin-bottom:11px}
  .stat{min-height:94px!important}.stat strong{font-size:24px!important}
  .hero-card h2{font-size:26px}.hero-card .actions{margin-top:15px}
  .hero-aside{grid-template-columns:1fr!important}
  .metric-item{padding:11px 12px}
  .empty-state{padding:17px 12px}
  .page-teller .teller-workspace{grid-template-columns:1fr!important;gap:10px}
  .page-teller .search-results{max-height:240px}
  .parent-main{padding:15px 12px calc(var(--s-mobile-nav) + var(--s-safe-bottom) + 24px)!important}
  .parent-dashboard-hero{gap:10px!important}.parent-balance-card,.parent-quick-panel{min-height:0!important}
  .parent-balance-card{padding:20px!important}.parent-balance-card>strong{margin:16px 0 14px!important;font-size:36px!important}
  .parent-quick-panel{padding:15px}.parent-section{margin-top:15px}
  .parent-child-grid{gap:8px}
  .public-main .section,.landing .section{padding:56px 0}.landing .hero{padding:56px 0 50px}
}

@media (min-width:1600px){
  :root{--s-content-max:1420px}
  .content{padding-inline:28px!important}
}

/* v2.7.1 public/commercial polish */
.commercial-cta .cta-card{align-items:center;background:radial-gradient(circle at 92% 18%,rgba(42,215,196,.12),transparent 28%),linear-gradient(145deg,#0d1b39,#10224a)}
.commercial-cta .cta-card>div:first-child{max-width:760px}
.commercial-cta .cta-card h2{font-size:clamp(30px,3.2vw,43px);line-height:1.08;margin:10px 0 11px}
.commercial-cta .cta-card p{max-width:690px;line-height:1.7;margin:0}
.commercial-cta .quick-actions{justify-content:flex-end;min-width:240px}

.public-footer{padding-top:38px!important;background:linear-gradient(180deg,rgba(7,15,33,.2),rgba(3,9,21,.74));border-top:1px solid rgba(255,255,255,.07)}
.footer-rich-commercial{grid-template-columns:minmax(0,1.65fr) repeat(3,minmax(150px,.75fr))!important;gap:34px!important;padding-bottom:28px}
.footer-brand-block{gap:14px!important}
.footer-rich-commercial>div:not(.footer-brand-block){padding-top:8px}
.footer-rich-commercial b{font-size:13px;letter-spacing:.02em}
.footer-rich-commercial a,.footer-rich-commercial span{font-size:13px;line-height:1.5}
.footer-rich-commercial a:hover{color:#d9e7ff}
.footer-contact-actions{display:flex!important;flex-direction:row!important;flex-wrap:wrap;gap:9px!important;margin-top:3px}
.footer-contact-chip{display:grid!important;grid-template-columns:32px auto!important;grid-template-rows:auto auto;column-gap:9px!important;row-gap:0!important;min-width:190px;padding:10px 12px;border:1px solid rgba(255,255,255,.07);border-radius:15px;background:rgba(255,255,255,.035);color:#dce8ff!important}
.footer-contact-chip>span{grid-row:1/3;width:32px;height:32px;border-radius:10px;display:grid;place-items:center;background:linear-gradient(135deg,rgba(43,140,255,.2),rgba(42,215,196,.17));color:#82f1d9;font-size:14px!important}
.footer-contact-chip strong{font-size:12px;line-height:1.3}
.footer-contact-chip small{font-size:11px;color:#8fa2c6;line-height:1.4}
.footer-bottom{display:flex!important;align-items:center!important;justify-content:space-between!important;gap:18px;padding:18px 0!important;border-top:1px solid rgba(255,255,255,.06);color:#8194b8;font-size:12px}
.footer-powered{display:flex;align-items:center;gap:5px}.footer-powered a{font-weight:900;color:#9ceadb}.footer-powered a:hover{color:#c4fff0}
.public-footer .legal-note{margin-top:0!important;padding:18px 0 34px!important;border-top:1px solid rgba(255,255,255,.045);font-size:11px;color:#7084aa}
.public-doc a{color:#8fe5d3;text-decoration:underline;text-underline-offset:3px}

@media(max-width:1080px){
  .footer-rich-commercial{grid-template-columns:1.4fr repeat(2,1fr)!important}
  .footer-rich-commercial>div:last-child{grid-column:2/4}
  .commercial-cta .cta-card{align-items:flex-start}
  .commercial-cta .quick-actions{min-width:0;justify-content:flex-start}
}
@media(max-width:720px){
  .footer-rich-commercial{grid-template-columns:1fr!important;gap:22px!important}
  .footer-rich-commercial>div:last-child{grid-column:auto}
  .footer-contact-actions{flex-direction:column!important}
  .footer-contact-chip{width:100%}
  .footer-bottom{align-items:flex-start!important;flex-direction:column!important;gap:7px;padding:16px 0!important}
  .commercial-cta .cta-card h2{font-size:29px}
  .commercial-cta .quick-actions{width:100%}
  .commercial-cta .quick-actions .btn{width:100%}
}
