:root {
  --jsi-heading-font: "ivypresto-display", Georgia, serif;
  --jsi-body-font: "neue-haas-unica", "Helvetica Neue", Arial, sans-serif;
  --jsi-technical-font: "IBM Plex Mono", ui-monospace, SFMono-Regular, Menlo, monospace;
}

html,
body,
button,
input,
select,
textarea {
  font-family: var(--jsi-body-font) !important;
}

body {
  font-size: 16px;
  font-weight: 400;
}

h1,
h2,
.modal-card h2,
.planner-head h2,
.copy-info-card h2,
.export-card h2,
.jsi-compliance-card h2,
.jsi-tour h2,
.group h2 {
  font-family: var(--jsi-heading-font) !important;
  font-weight: 300 !important;
}

button,
select,
.button,
.back-link,
.download-button,
.quick-tools button,
.quick-tools .files-link,
.controls .site-return,
.model-tools button,
.jsi-compliance-trigger,
.jsi-compliance-close,
.jsi-tour button,
.topbar button {
  font-family: var(--jsi-body-font) !important;
  font-weight: 600 !important;
}

.help-grid dt,
.notice strong,
.scope-note strong,
.library-tools label,
.file-card h3,
.coach strong,
.status strong,
.title strong {
  font-family: var(--jsi-body-font) !important;
  font-weight: 600 !important;
}

body .blueprint-dimension span,
body .eyebrow,
body .file-type,
body .file-meta,
body .brand small,
body .library-tools p,
body .viewer-shell > footer,
body #modelStats,
body .technical-value,
body .coordinate-value,
body .measurement-value {
  font-family: var(--jsi-technical-font) !important;
}

button,
select,
input[type="button"],
input[type="submit"],
.button,
.back-link,
.download-button,
.quick-tools button,
.quick-tools .files-link,
.controls .site-return,
.model-tools button,
.jsi-compliance-close,
.jsi-tour button,
.topbar button {
  min-height: 44px !important;
}

.jsi-compliance-card p,
.jsi-tour p,
.modal-card,
.planner-body,
.intro > p,
.file-card p,
.notice span,
.scope-note span {
  font-family: var(--jsi-body-font) !important;
  font-weight: 400 !important;
}

@media print {
  body { font-family: var(--jsi-body-font) !important; }
  h1, h2, h3 { font-family: var(--jsi-heading-font) !important; font-weight: 300 !important; }
  .jsi-print-notice { font-family: var(--jsi-body-font) !important; }
}

@media (min-width: 721px) and (max-width: 1400px) {
  .topbar { gap: 8px !important; padding-inline: 10px !important; }
  .topbar .brand::after { display: none !important; }
  .topbar .controls { min-width: 0; gap: 6px !important; }
  .topbar .field select,
  .topbar .button { padding-left: 9px !important; padding-right: 24px !important; }
}

@media (min-width: 721px) and (max-width: 1200px) {
  .topbar .dataset-field { display: none !important; }
}
