/* Shared IndiaMBA type scale. Keep body copy readable and compact metadata legible. */
:root {
  --site-type-body: 16px;
  --site-type-meta: 14px;
  --site-type-dense: 13px;
}

body {
  font-size: var(--site-type-body) !important;
  line-height: 1.55;
  font-family: "IBM Plex Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif !important;
}

body :is(h1, h2, h3, h4) {
  font-family: "Space Grotesk", "Segoe UI", Helvetica, Arial, sans-serif !important;
}

/* Ordinary explanatory copy should never inherit the 8–12 px utility styles
   used by the legacy page sheets. */
body :is(p, li, dd, blockquote) {
  font-size: max(15px, 1rem) !important;
  line-height: 1.6;
}

body small,
body :is(.eyebrow, .kicker, [class*="-meta"], [class*="-label"], [class*="-badge"], [class*="-status"], [class*="-count"], [class*="-published"], [class*="-byline"], [class*="-hint"], [class*="-caption"], [class*="-kicker"], [class*="-origin"], [class*="-chip"], [class*="-tag"], [class*="-footer"], [class*="-summary"], [class*="-stat"]) {
  font-size: var(--site-type-meta) !important;
  line-height: 1.45;
}

body :is(button, input, select, textarea, summary, kbd) {
  font-size: 15px !important;
  line-height: 1.35;
}

/* Inline labels and table text used to carry isolated 7–12 px declarations. */
body :is(span, small, strong, label, th, td, kbd, em) {
  font-size: max(14px, 1em) !important;
  line-height: 1.45;
}

body :is([class*="footer"], [class*="eyebrow"], [class*="divider"], [class*="optional"], [class*="stage-title"], [class*="stage-percent"], [class*="current"], [class*="live"], [class*="phase"]) {
  font-size: 14px !important;
  line-height: 1.45;
}

body .state-panel strong { font-size: 16px !important; }
body a.button, body .skip-link { font-size: 15px !important; }
body footer { font-size: 14px !important; }
body .auth-back, body .policy-steps strong { font-size: 14px !important; }

body :is(.brand, .brand-footer, .text-link, .auth-brand, .auth-back, .mobile-brand, .portal-legal-bar a) {
  min-height: 44px;
  display: inline-flex;
  align-items: center;
}
body .mobile-brand { min-width: 44px; }
body .legal-toc a { min-height: 44px; display: flex; align-items: center; }
body footer a { min-height: 44px; display: inline-flex; align-items: center; }
body .discussion-all { min-height: 44px; display: inline-flex; align-items: center; font-size: 15px !important; }
body a[href="portal.html"] {
  min-height: 44px;
  display: inline-flex;
  align-items: center;
}

body :focus-visible {
  outline: 3px solid #145e89 !important;
  outline-offset: 3px;
  box-shadow: 0 0 0 2px #fff !important;
}

/* Primary navigation is a high priority reading and touch target. */
body :is(.header-nav a, .primary-nav a, .desktop-nav a, .mobile-primary-nav a, .sidebar-links a, .site-footer a:not(.brand):not(.footer-brand), .footer-inner nav a, .nav-item, .mobile-nav button) {
  min-height: 44px;
  display: inline-flex;
  align-items: center;
  font-size: 15px !important;
  line-height: 1.35;
}

body :is(.format-contract > span, .format-contract > strong, .mock-card-top > span, .mock-card-meta, .mock-card-footer small, .thread-card-top > span, .thread-card-bottom > span, .thread-card h3, .thread-excerpt, .thread-published, .thread-byline, .reader-content, .dashboard-footer, .portal-legal-bar) {
  font-size: var(--site-type-meta) !important;
}

body :is(.thread-card h3, .mock-card h3) {
  font-size: 19px !important;
  line-height: 1.35;
}

body .mock-card {
  min-height: 280px;
  padding: 22px;
}

.practice-section-group { margin: 24px 0; }
.practice-section-group > h3 { display: flex; justify-content: space-between; gap: 12px; align-items: baseline; font-size: 22px !important; }
.practice-section-group > h3 span, .practice-section-empty { color: #5f6d73; font-size: 15px !important; }
.practice-topic { margin: 10px 0; border: 1px solid #d8cdb9; border-radius: 12px; background: #fffdf9; overflow: clip; }
.practice-topic > summary { min-height: 52px; padding: 12px 16px; display: flex; align-items: center; justify-content: space-between; gap: 12px; cursor: pointer; font-weight: 700; }
.practice-topic > summary small { font-size: 14px !important; color: #59666b; }
.practice-topic-questions { padding: 0 14px 14px; }
.topic-pagination { margin-top: 12px; }
.topic-pagination button { min-height: 44px; }
.resource-admin-panel { margin: 20px 0; padding: 22px; border: 1px solid #d7c9af; border-radius: 14px; background: #fffdf8; }
.resource-form { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; }
.resource-form label { display: grid; gap: 6px; font-weight: 650; }
.resource-form label:nth-of-type(4), .resource-form label:nth-of-type(5), .resource-form p { grid-column: 1 / -1; }
.resource-form input, .resource-form select, .resource-form textarea { min-width: 0; width: 100%; padding: 10px 12px; border: 1px solid #b8ad9b; border-radius: 8px; background: white; }
.resource-form textarea { resize: vertical; }
.resource-tags { display: flex; flex-wrap: wrap; gap: 6px; margin: 10px 0; }
.resource-tag { display: inline-flex; min-height: 28px; align-items: center; padding: 3px 9px; border-radius: 99px; background: #f3ead9; color: #3d4c50; }
.resource-delete { min-height: 44px; padding: 8px 12px; border: 1px solid #9c4840; border-radius: 8px; color: #8d2e28; background: #fff; }
.resource-open { display: inline-flex; min-height: 44px; align-items: center; gap: 8px; font-weight: 700; }
@media (max-width: 700px) { .resource-form { grid-template-columns: minmax(0, 1fr); } .resource-form label, .resource-form p { grid-column: 1; } }
body .thread-card { padding: 18px; }

body :is(.pagination, .dashboard-footer) {
  font-size: var(--site-type-meta) !important;
}

body :is(.thread-excerpt, .reader-content p, .reader-content li, .mock-card > p) {
  font-size: 15px !important;
  line-height: 1.6;
}

body :is(.visually-hidden, .sr-only) {
  font-size: 1px !important;
}

@media (max-width: 700px) {
  body :is(.thread-card h3, .mock-card h3) { font-size: 18px !important; }
  body :is(p, li, dd, blockquote) { font-size: 15px !important; }
  body :is(button, input:not([type="checkbox"]):not([type="radio"]), select) { min-height: 44px; }
  body button { min-width: 44px; }
  body :is(input:not([type="checkbox"]):not([type="radio"]), select, textarea) { font-size: 16px !important; }
  body :is(.mobile-primary-nav a, .mobile-nav a, .mobile-nav button) { min-height: 44px; }
}
