/* Admin typography: titles, sections, content, labels, captions and metrics. */
:root {
  --admin-font-title: 24px;
  --admin-font-section: 18px;
  --admin-font-body: 14px;
  --admin-font-label: 13px;
  --admin-font-caption: 12px;
  --admin-font-metric: 28px;
  --admin-weight-regular: 400;
  --admin-weight-medium: 500;
  --admin-weight-strong: 600;
  --admin-line-body: 1.5;
  --admin-line-title: 1.3;
}

body {
  font-family: "PingFang SC", "Microsoft YaHei", sans-serif;
  font-size: var(--admin-font-body);
  font-weight: var(--admin-weight-regular);
  line-height: var(--admin-line-body);
}

h1, h2, h3, h4, strong, b {
  font-weight: var(--admin-weight-strong);
}

small { font-size: var(--admin-font-caption); }

button, input, select, textarea {
  font-family: inherit;
  font-size: var(--admin-font-body);
  line-height: var(--admin-line-body);
}

body :is(.admin-shell, .teacher-drawer, .student-drawer, .requirement-drawer, .modal, .city-modal, .preview-dialog) :is(input, select, textarea) {
  font-size: var(--admin-font-body);
  font-weight: var(--admin-weight-regular);
  line-height: var(--admin-line-body);
}

body :is(.admin-shell, .teacher-drawer, .student-drawer, .requirement-drawer, .modal, .city-modal, .preview-dialog) :is(button, .btn, .btn-link, .ghost-btn, .primary-btn, .danger-btn) {
  font-size: var(--admin-font-body);
  font-weight: var(--admin-weight-medium);
}

body .admin-shell :is(.chip, .mode-tab, .student-queue, .config-tab) {
  font-size: var(--admin-font-label);
  font-weight: var(--admin-weight-medium);
}

body :is(.admin-shell, .teacher-drawer, .student-drawer, .requirement-drawer, .modal, .city-modal, .preview-dialog) :is(h1, .admin-page-title, .dash-title) {
  font-size: var(--admin-font-title);
  font-weight: var(--admin-weight-strong);
  line-height: var(--admin-line-title);
}

body :is(.admin-shell, .teacher-drawer, .student-drawer, .requirement-drawer, .modal, .city-modal, .preview-dialog) :is(h2, h3, h4, .drawer-title, .modal-title) {
  font-size: var(--admin-font-section);
  font-weight: var(--admin-weight-strong);
  line-height: var(--admin-line-title);
}

body :is(.admin-shell, .teacher-drawer, .student-drawer, .requirement-drawer, .modal, .city-modal, .preview-dialog) :is(label, th, .teacher-list-head, .student-columns) {
  font-size: var(--admin-font-label);
  font-weight: var(--admin-weight-medium);
  line-height: var(--admin-line-body);
}

body :is(.admin-shell, .teacher-drawer, .student-drawer, .requirement-drawer, .modal, .city-modal, .preview-dialog) :is(.name, .teacher-name, .order-primary, .profile-name, .city-name, .alert-title, .todo-item-name) {
  font-size: var(--admin-font-body);
  font-weight: var(--admin-weight-medium);
}

body :is(.admin-shell, .teacher-drawer, .student-drawer, .requirement-drawer, .modal, .city-modal, .preview-dialog) :is(.metric-value, .metric strong, .stat-value, .stat strong) {
  font-size: var(--admin-font-metric);
  font-weight: var(--admin-weight-strong);
  line-height: var(--admin-line-title);
  font-variant-numeric: tabular-nums;
}

.admin-nav .admin-nav-item {
  font-size: var(--admin-font-body);
  line-height: var(--admin-line-body);
}

/* Symbols are controls, not headings; retain their own optical size. */
body :is(.admin-shell, .teacher-drawer, .student-drawer, .requirement-drawer, .modal, .city-modal) :is(.drawer-close, .modal-close, .city-modal-close) {
  font-size: 20px;
  line-height: 1;
}

.admin-shell .map-tools button { font-size: 20px; line-height: 1; }

body :is(.admin-shell, .teacher-drawer, .student-drawer, .requirement-drawer, .modal, .city-modal, .preview-dialog) .list-card h3 { font-size: var(--admin-font-body); }

/* Main business cells remain readable beside their secondary metadata. */
body :is(.admin-shell, .teacher-drawer, .student-drawer, .requirement-drawer, .modal, .preview-dialog) :is(.student-card, .kv-row) { font-size: var(--admin-font-body); }
