/* Onest remains the only face; roles follow the existing compact UI. */
:root {
  --text-caption: .8125rem;
  --text-ui: .875rem;
  --text-body: 1rem;
  --text-heading: 1.125rem;
  --text-title: 1.875rem;
  font-synthesis: weight style;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}
body { -webkit-font-smoothing: inherit; line-height:1.5; }
button, input, select, textarea { line-height:1.4; }
p { text-wrap:pretty; }
a { text-underline-position:from-font; text-decoration-thickness:from-font; }
.catalog-search-field input, #find-input { font-size:var(--text-body); line-height:1.5; }
.catalog-heading h1 { font-size:1.5rem; line-height:1.25; letter-spacing:-.02em; }
.model-card-name {
  display:block; -webkit-line-clamp:unset; overflow:visible;
  font-size:var(--text-ui); line-height:1.4; font-weight:650;
  overflow-wrap:anywhere; text-wrap:balance;
}
.model-card-meta {
  display:block; -webkit-line-clamp:unset; overflow:visible;
  font-size:var(--text-caption); line-height:1.5; font-weight:400;
  margin-top:4px; overflow-wrap:anywhere; text-wrap:pretty;
}
.catalog-status, .catalog-empty p, dialog p { font-size:var(--text-ui); line-height:1.6; max-width:70ch; }
.catalog-footer p, #catalog-count, #find-status, #qr-status,
.palette-setting p, .settings-feedback, #settings-position-note {
  font-size:var(--text-caption); line-height:1.5;
}
.catalog-filters button, .view-tool, .view-presets button,
.settings-option, .settings-action, .find-modes button {
  font-size:var(--text-ui); line-height:1.4;
}
.model-heading h1, .spec-heading h1, .settings-heading h1 {
  font-size:var(--text-title); line-height:1.2; letter-spacing:-.02em;
}
.model-heading p, .spec-heading p, .settings-heading p { font-size:.9375rem; line-height:1.4; }
dialog h2, .qr-dialog h2, .exit-dialog h2, #find-title {
  font-size:1.375rem; line-height:1.3; letter-spacing:-.015em;
  text-wrap:balance; overflow-wrap:anywhere;
}
.spec-row__title {
  white-space:normal; overflow:visible; text-overflow:clip;
  font-size:var(--text-ui); line-height:1.4; overflow-wrap:anywhere;
}
.spec-row__sub, .spec-row__amount, .spec-material small,
.drawing-header p, .drawing-facts span, .drawing-facts strong,
.drawing-edge-legend p, .drawing-footer p { font-size:var(--text-caption); line-height:1.5; }
.spec-position, .selected-eyebrow, .selected-position>span,
.selection-menu button, .bottom-menu button { font-size:.75rem; line-height:1.4; }
.selected-card { height:auto; min-height:132px; }
.selected-title { height:auto; min-height:57px; }
.selected-position { height:auto; min-height:57px; }
#selected-name { font-size:var(--text-heading); line-height:1.4; letter-spacing:0; white-space:normal; overflow:visible; overflow-wrap:anywhere; }
#selected-size { font-size:.75rem; line-height:1.5; overflow-wrap:anywhere; }
.drawing-header h2 { white-space:normal; overflow:visible; overflow-wrap:anywhere; font-size:var(--text-ui); line-height:1.4; }
.drawing-header__name>span { font-size:1.25rem; line-height:1.3; letter-spacing:-.015em; overflow-wrap:anywhere; }
.drawing-face h3 { font-size:var(--text-ui); line-height:1.4; }
.drawing-hole-table table { font-size:var(--text-caption); line-height:1.5; }
.drawing-hole-table__heading span { font-size:.75rem; line-height:1.4; }
#catalog-count, #catalog-progress, #selected-position, #selected-size,
.spec-row__sub, .spec-row__amount, .spec-position, .drawing-facts strong,
.drawing-hole-table td, #explosion-value, .palette-option__code { font-variant-numeric:tabular-nums; }
.model-card-badge { font-size:.75rem; line-height:1.3; white-space:nowrap; }
@media(min-width:600px) {
  .model-card-name { font-size:var(--text-heading); }
  .catalog-heading h1 { font-size:1.75rem; }
}
@media(max-width:350px), (max-height:680px) {
  .model-heading h1, .spec-heading h1, .settings-heading h1 { font-size:1.625rem; }
  .model-heading p, .spec-heading p, .settings-heading p { font-size:var(--text-ui); }
}
