/* SCHOOL43_UNIFIED_TYPOGRAPHY_V1
   Единая типографика интерфейса. Подключается последней в base.html. */
:root {
  --ui-font: "Segoe UI", Arial, Helvetica, sans-serif;
  --ui-text: 15px;
  --ui-small: 13px;
  --ui-control: 14px;
  --ui-line: 1.5;
}
html {
  font-size: 16px;
  -webkit-text-size-adjust: 100%;
  text-size-adjust: 100%;
}
body,
button,
input,
select,
textarea {
  font-family: var(--ui-font) !important;
}
body {
  font-size: var(--ui-text) !important;
  line-height: var(--ui-line) !important;
  font-weight: 400;
}
h1, h2, h3, h4, h5, h6,
.page-title, .section-title, .card-title, .panel-title,
.modal-title, .student-hero__name, .sc-header-title {
  font-family: var(--ui-font) !important;
  font-style: normal;
  line-height: 1.25 !important;
  letter-spacing: normal !important;
}
h1, .page-title, .content-frame h1 { font-size: 30px !important; font-weight: 700 !important; }
h2, .section-title { font-size: 24px !important; font-weight: 700 !important; }
h3, .card-title, .panel-title, .modal-title, .sc-header-title { font-size: 18px !important; font-weight: 700 !important; }
h4 { font-size: 16px !important; font-weight: 700 !important; }
h5 { font-size: 15px !important; font-weight: 700 !important; }
h6 { font-size: 14px !important; font-weight: 700 !important; }

p, li, dd, dt {
  font-family: var(--ui-font) !important;
  line-height: var(--ui-line);
}
label, .form-label, .field-label {
  font-family: var(--ui-font) !important;
  font-size: var(--ui-small) !important;
  line-height: 1.35 !important;
  font-weight: 600;
}
input:not([type="checkbox"]):not([type="radio"]),
select,
textarea {
  font-size: var(--ui-text) !important;
  line-height: 1.4 !important;
}
button, .btn, [role="button"] {
  font-size: var(--ui-control) !important;
  line-height: 1.35 !important;
  font-weight: 600;
}
table, thead, tbody, tfoot, tr, th, td {
  font-family: var(--ui-font) !important;
}
table { font-size: 14px !important; line-height: 1.4 !important; }
th, .table th {
  font-size: var(--ui-small) !important;
  line-height: 1.35 !important;
  font-weight: 700 !important;
}
td, .table td {
  font-size: 14px !important;
  line-height: 1.45 !important;
}
.sidebar, .sidebar a, .sidebar button,
.nav-single, .nav-group-header, .nav-sub-item, .nav-group-label,
.header, .header a, .header button, .breadcrumb, .breadcrumbs {
  font-family: var(--ui-font) !important;
  font-size: 14px !important;
  line-height: 1.35 !important;
}
.sidebar-logo-text span:first-child { font-size: 13px !important; }
.sidebar-logo-text span:last-child { font-size: 12px !important; }
.help-text, .form-text, .text-muted, small,
.meta, .subtitle, .description, .hint {
  font-family: var(--ui-font) !important;
  font-size: var(--ui-small) !important;
  line-height: 1.45 !important;
}
.badge, [class*="badge"], .chip, [class*="chip"],
.status-pill, .tag, .q-chip {
  font-family: var(--ui-font) !important;
  font-size: 12px !important;
  line-height: 1.25 !important;
}
/* Числовые показатели сохраняют визуальный акцент, но используют общий шрифт. */
.metric-value, .stat-value, .card-number-v, .kpi-value {
  font-family: var(--ui-font) !important;
  line-height: 1.1 !important;
}
/* Не переопределяем шрифты пиктограмм. */
.fa, .fas, .far, .fal, .fat, .fab,
.fa-solid, .fa-regular, .fa-light, .fa-thin, .fa-brands,
.bi, [class^="bi-"], [class*=" bi-"],
.material-icons, .material-symbols-outlined {
  font-style: normal;
}

/* Все экранные блоки наследуют один UI-шрифт, включая старые модули. */
body .main-wrapper,
body .main-wrapper :where(div,span,a,p,li,ul,ol,h1,h2,h3,h4,h5,h6,
button,input,select,textarea,label,table,thead,tbody,tfoot,tr,th,td,
section,article,header,footer,nav,strong,b,small,em,dl,dt,dd) {
  font-family: var(--ui-font) !important;
}
@media (max-width: 768px) {
  body { font-size: 15px !important; }
  h1, .page-title, .content-frame h1 { font-size: 26px !important; }
  h2, .section-title { font-size: 22px !important; }
  h3, .card-title, .panel-title, .modal-title, .sc-header-title { font-size: 18px !important; }
  input:not([type="checkbox"]):not([type="radio"]),
  select, textarea { font-size: 16px !important; }
}
@media print {
  body { font-family: var(--ui-font) !important; font-size: 11pt !important; line-height: 1.35 !important; }
  h1, h2, h3, .page-title, .section-title, .card-title {
    font-family: var(--ui-font) !important;
    font-size: 14pt !important;
    line-height: 1.25 !important;
  }
  table, th, td { font-family: var(--ui-font) !important; font-size: 10pt !important; }
}