/*
 * Portal Yayasan v178 — skala huruf yang lebih nyaman dibaca.
 * Diletakkan paling akhir agar komponen lama yang masih memakai 7–12 px
 * ikut mendapatkan ukuran baru tanpa memengaruhi portal lain.
 */

html[data-portal-brand="yayasan"] {
  font-size: 17px;
}

html[data-portal-brand="yayasan"] .foundation-app {
  font-size: 16px;
}

html[data-portal-brand="yayasan"] .foundation-app #foundationNav button {
  min-height: 57px !important;
  font-size: 15px !important;
  line-height: 1.35;
}

html[data-portal-brand="yayasan"] .foundation-app header > div:first-child > small {
  font-size: 12px !important;
  line-height: 1.4;
}

html[data-portal-brand="yayasan"] .foundation-app header h2 {
  font-size: 26px;
}

html[data-portal-brand="yayasan"] .hero-panel > span {
  font-size: 12.5px !important;
  line-height: 1.45;
}

html[data-portal-brand="yayasan"] .hero-panel h1 {
  font-size: clamp(32px, 3vw, 40px);
}

html[data-portal-brand="yayasan"] .hero-panel p {
  font-size: 16px !important;
  line-height: 1.7 !important;
}

html[data-portal-brand="yayasan"] .stat small {
  font-size: 13.5px !important;
}

html[data-portal-brand="yayasan"] .stat b {
  font-size: 30px;
}

html[data-portal-brand="yayasan"] .panel-head h3 {
  font-size: 19px;
}

html[data-portal-brand="yayasan"] .panel-head p,
html[data-portal-brand="yayasan"] .content p {
  font-size: 15px !important;
  line-height: 1.68 !important;
}

html[data-portal-brand="yayasan"] .content :is(label, input, select, textarea) {
  font-size: 15px !important;
}

html[data-portal-brand="yayasan"] .content :is(input, select) {
  min-height: 44px;
}

html[data-portal-brand="yayasan"] .content small {
  font-size: 13px !important;
  line-height: 1.55;
}

html[data-portal-brand="yayasan"] .content :is(
  button.primary,
  button.secondary,
  button.warning,
  button.danger,
  button.ghost
),
html[data-portal-brand="yayasan"] .actions button,
html[data-portal-brand="yayasan"] .foundation-section-tabs button {
  min-height: 42px;
  font-size: 14px !important;
  line-height: 1.4;
}

html[data-portal-brand="yayasan"] .table-wrap th {
  padding: 13px 14px;
  font-size: 13px !important;
  line-height: 1.45;
}

html[data-portal-brand="yayasan"] .table-wrap td {
  padding: 14px;
  font-size: 15px !important;
  line-height: 1.55;
}

html[data-portal-brand="yayasan"] .table-wrap td small {
  font-size: 13px !important;
}

html[data-portal-brand="yayasan"] .badge,
html[data-portal-brand="yayasan"] .duty-request-count,
html[data-portal-brand="yayasan"] .duty-attendance-recorded {
  font-size: 12px !important;
  line-height: 1.4;
}

html[data-portal-brand="yayasan"] :is(.school-card, .school-list-row) h3 {
  font-size: 17px !important;
}

html[data-portal-brand="yayasan"] :is(.school-card, .school-list-row) p,
html[data-portal-brand="yayasan"] .school-list-primary p {
  font-size: 14px !important;
}

html[data-portal-brand="yayasan"] :is(.school-meta, .school-list-facts) small {
  font-size: 12px !important;
}

html[data-portal-brand="yayasan"] :is(.school-meta, .school-list-facts) b {
  font-size: 14px !important;
}

html[data-portal-brand="yayasan"] :is(
  .premium-strip,
  .school-capacity,
  .school-slot-info,
  .foundation-notices,
  .foundation-attendance-summary,
  .payroll-template-list,
  .credential-preview
) :is(p, span, small) {
  font-size: 13px !important;
  line-height: 1.6;
}

html[data-portal-brand="yayasan"] .modal-card h2 {
  font-size: 26px;
}

html[data-portal-brand="yayasan"] .modal-card :is(p, li) {
  font-size: 15px !important;
  line-height: 1.68;
}

html[data-portal-brand="yayasan"] .modal-card label {
  font-size: 14px !important;
}

html[data-portal-brand="yayasan"] .modal-card :is(input, select, textarea) {
  min-height: 44px;
  font-size: 15px !important;
}

html[data-portal-brand="yayasan"] #foundationProfileButton.profile b {
  font-size: 14.5px;
}

html[data-portal-brand="yayasan"] #foundationProfileButton.profile small {
  font-size: 12.5px;
}

html[data-portal-brand="yayasan"] .profile-menu-head small {
  font-size: 11px !important;
}

html[data-portal-brand="yayasan"] .profile-menu-head b {
  font-size: 15px;
}

html[data-portal-brand="yayasan"] .profile-menu-head em {
  font-size: 12.5px;
}

html[data-portal-brand="yayasan"] .profile-menu-status {
  font-size: 13px !important;
}

html[data-portal-brand="yayasan"] #foundationProfileMenu > button {
  min-height: 48px;
  font-size: 14px !important;
}

html[data-portal-brand="yayasan"] .foundation-profile-kicker {
  font-size: 12px !important;
}

html[data-portal-brand="yayasan"] .foundation-profile-heading h3 {
  font-size: 31px;
}

html[data-portal-brand="yayasan"] .foundation-profile-heading p {
  font-size: 15px !important;
}

html[data-portal-brand="yayasan"] .foundation-profile-badge,
html[data-portal-brand="yayasan"] .foundation-profile-actions > span {
  font-size: 13px !important;
}

html[data-portal-brand="yayasan"] .foundation-field-title,
html[data-portal-brand="yayasan"] .foundation-form-section-head h4 {
  font-size: 17px;
}

html[data-portal-brand="yayasan"] .foundation-logo-upload label > small,
html[data-portal-brand="yayasan"] .foundation-form-section-head p {
  font-size: 13px !important;
}

html[data-portal-brand="yayasan"] .foundation-file-button {
  min-height: 42px;
  font-size: 13px;
}

html[data-portal-brand="yayasan"] .foundation-form-section-head > span {
  font-size: 12px;
}

html[data-portal-brand="yayasan"] .foundation-profile-actions > button {
  font-size: 14px !important;
}

/* Layar masuk dan pendaftaran. */
html[data-portal-brand="yayasan"] .back-link {
  font-size: 14px;
}

html[data-portal-brand="yayasan"] .auth-brand span {
  font-size: 12px;
}

html[data-portal-brand="yayasan"] .auth-brand h1 {
  font-size: 29px;
}

html[data-portal-brand="yayasan"] .auth-card > p {
  font-size: 16px !important;
}

html[data-portal-brand="yayasan"] .login-methods b {
  font-size: 15px;
}

html[data-portal-brand="yayasan"] .login-methods span {
  font-size: 13px !important;
}

html[data-portal-brand="yayasan"] .auth-card :is(label, input, button, small) {
  font-size: 14px !important;
}

html[data-portal-brand="yayasan"] .auth-card input {
  min-height: 46px;
  font-size: 15px !important;
}

html[data-portal-brand="yayasan"] .auth-card button {
  min-height: 44px;
}

/* Akun sekolah dan petunjuk kredensial. */
html[data-portal-brand="yayasan"] .credential-title span,
html[data-portal-brand="yayasan"] .credential-grid small,
html[data-portal-brand="yayasan"] .credential-password small {
  font-size: 12px !important;
}

html[data-portal-brand="yayasan"] :is(.credential-notice, .login-guide) {
  font-size: 14px;
}

html[data-portal-brand="yayasan"] .credential-grid b,
html[data-portal-brand="yayasan"] .credential-account-head small,
html[data-portal-brand="yayasan"] .credential-password {
  font-size: 13px;
}

html[data-portal-brand="yayasan"] .credential-password code {
  font-size: 17px;
}

/* Premium, QRIS, notifikasi, dan alur operasional. */
html[data-portal-brand="yayasan"] .contact-box {
  font-size: 13px;
}

html[data-portal-brand="yayasan"] .premium-strip b,
html[data-portal-brand="yayasan"] .foundation-notices article b,
html[data-portal-brand="yayasan"] .payroll-workflow b {
  font-size: 15px;
}

html[data-portal-brand="yayasan"] .pricing-grid small,
html[data-portal-brand="yayasan"] .quote-box span,
html[data-portal-brand="yayasan"] .payroll-template-card-head span,
html[data-portal-brand="yayasan"] .foundation-qris-head span {
  font-size: 12px !important;
}

html[data-portal-brand="yayasan"] .pricing-grid span,
html[data-portal-brand="yayasan"] .payroll-workflow span,
html[data-portal-brand="yayasan"] .payroll-template-empty,
html[data-portal-brand="yayasan"] .payroll-template-card p,
html[data-portal-brand="yayasan"] .payroll-template-components small,
html[data-portal-brand="yayasan"] .payroll-template-components b,
html[data-portal-brand="yayasan"] .foundation-qris-payment ol {
  font-size: 13px !important;
}

html[data-portal-brand="yayasan"] .payroll-template-card h4 {
  font-size: 17px;
}

html[data-portal-brand="yayasan"] .payroll-template-modal h3 {
  font-size: 16px;
}

html[data-portal-brand="yayasan"] .foundation-notices-head b {
  font-size: 16px;
}

html[data-portal-brand="yayasan"] .foundation-notices-head span,
html[data-portal-brand="yayasan"] .foundation-notices article small {
  font-size: 12.5px !important;
}

html[data-portal-brand="yayasan"] .foundation-notices article p {
  font-size: 14px !important;
}

html[data-portal-brand="yayasan"] :is(.form-error, .form-progress, .toast, .loading b) {
  font-size: 14px !important;
}

@media (max-width: 760px) {
  html[data-portal-brand="yayasan"] .foundation-app {
    font-size: 15px;
  }

  html[data-portal-brand="yayasan"] .foundation-app header {
    height: 78px;
  }

  html[data-portal-brand="yayasan"] .foundation-app header > div:first-child > small {
    font-size: 10.5px !important;
  }

  html[data-portal-brand="yayasan"] .foundation-app header h2 {
    font-size: 21px;
  }

  html[data-portal-brand="yayasan"] .hero-panel h1 {
    font-size: 30px;
  }

  html[data-portal-brand="yayasan"] .hero-panel p {
    font-size: 15px !important;
  }

  html[data-portal-brand="yayasan"] .panel-head h3 {
    font-size: 18px;
  }

  html[data-portal-brand="yayasan"] .foundation-app aside nav button span {
    font-size: 10.5px !important;
    line-height: 1.15;
    text-overflow: clip !important;
    white-space: normal !important;
  }

  html[data-portal-brand="yayasan"] .foundation-profile-heading h3 {
    font-size: 27px;
  }

  html[data-portal-brand="yayasan"] .content small {
    font-size: 12.5px !important;
  }

  html[data-portal-brand="yayasan"] .table-wrap td {
    font-size: 14px !important;
  }

  html[data-portal-brand="yayasan"] .foundation-app:not(.hidden) > aside {
    height: calc(88px + env(safe-area-inset-bottom)) !important;
    min-height: calc(88px + env(safe-area-inset-bottom)) !important;
  }

  html[data-portal-brand="yayasan"] .foundation-app:not(.hidden) #foundationNav {
    height: 70px !important;
  }

  html[data-portal-brand="yayasan"] .foundation-app:not(.hidden) #foundationNav > button {
    flex-basis: 76px !important;
    width: 76px !important;
    min-width: 76px !important;
    max-width: 76px !important;
    height: 68px !important;
    min-height: 68px !important;
  }
}
