/* SMC Unified Typography Contract v1.0 — 2026-09-08
   Loaded after module CSS. It standardizes readable operational text without
   replacing each module's information architecture or status semantics. */

:root {
  --smc-type-body:var(--smc-font-size,14px);
  --smc-type-compact:max(13px,calc(var(--smc-font-size,14px) - 1px));
  --smc-type-meta:max(12px,calc(var(--smc-font-size,14px) - 2px));
  --smc-type-badge:max(11px,calc(var(--smc-font-size,14px) - 3px));
  --smc-type-section:max(16px,calc(var(--smc-font-size,14px) + 2px));
  --smc-type-module:max(20px,calc(var(--smc-font-size,14px) + 6px));
  --smc-type-page:max(28px,calc(var(--smc-font-size,14px) + 14px));
  --smc-leading-body:1.45;
  --smc-leading-table:1.35;
  --smc-leading-title:1.2;
}

html {
  font-size:var(--smc-font-size,14px);
  -webkit-text-size-adjust:100%;
  text-size-adjust:100%;
}

body {
  zoom:1 !important;
  font-family:var(--smc-font-ui,'Segoe UI',Arial,sans-serif) !important;
  font-size:var(--smc-type-body) !important;
  line-height:var(--smc-leading-body);
  font-synthesis-weight:none;
  text-rendering:optimizeLegibility;
}

button,
input,
select,
textarea {
  font-family:var(--smc-font-ui,'Segoe UI',Arial,sans-serif) !important;
  font-size:var(--smc-type-compact) !important;
  line-height:1.3;
}

h1,
h2,
h3,
h4,
h5,
h6,
.page-title,
.hero-title,
.workspace-title,
.module-title {
  font-family:var(--smc-font-display,'Arial Narrow','Segoe UI',Arial,sans-serif) !important;
  line-height:var(--smc-leading-title) !important;
}

h1,
.page-title { font-size:var(--smc-type-page) !important; font-weight:700 !important; }
h2,
.module-title { font-size:var(--smc-type-module) !important; font-weight:700 !important; }
h3,
.section-title,
.panel-title { font-size:var(--smc-type-section) !important; font-weight:700 !important; }

table {
  font-family:var(--smc-font-ui,'Segoe UI',Arial,sans-serif) !important;
  font-size:var(--smc-type-compact) !important;
  font-variant-numeric:tabular-nums;
}

table th {
  font-family:var(--smc-font-data,'Cascadia Mono',Consolas,monospace) !important;
  font-size:var(--smc-type-meta) !important;
  font-weight:600 !important;
  line-height:1.25 !important;
}

table td {
  font-size:var(--smc-type-compact) !important;
  line-height:var(--smc-leading-table) !important;
}

small,
.small,
.meta,
.subtext,
.helper,
.hint,
.caption,
.eyebrow,
.kicker,
[class$="-meta"],
[class$="-sub"],
[class$="-hint"],
[class$="-kicker"] {
  font-size:var(--smc-type-meta) !important;
  line-height:1.35 !important;
}

.badge,
.pill,
.chip,
.tag,
.status-badge,
.status-pill,
[class$="-badge"],
[class$="-pill"],
[class$="-chip"] {
  font-size:var(--smc-type-badge) !important;
  line-height:1.2 !important;
  font-weight:600 !important;
}

.smc-topbar,
.smc-module-topbar,
[data-smc-module-topbar],
.topbar,
.portal-topbar {
  font-family:var(--smc-font-ui,'Segoe UI',Arial,sans-serif) !important;
  font-size:var(--smc-type-compact) !important;
  line-height:1.25 !important;
}

.clock,
.time-pill,
.clock-time,
.tb-pill,
.data-value,
.metric-value,
.stat-value,
.stat-val,
code,
kbd,
pre {
  font-family:var(--smc-font-data,'Cascadia Mono',Consolas,monospace) !important;
  font-variant-numeric:tabular-nums;
}

.leaflet-tooltip,
.leaflet-popup-content,
.maplibregl-popup-content,
.cesium-infoBox-description {
  font-family:var(--smc-font-ui,'Segoe UI',Arial,sans-serif) !important;
  font-size:var(--smc-type-meta) !important;
  line-height:1.35 !important;
}

@media (max-width:860px) {
  button,
  input,
  select,
  textarea { min-height:36px; font-size:max(14px,var(--smc-type-compact)) !important; }
  table th { font-size:12px !important; }
  table td { font-size:13px !important; }
}

@media print {
  html,
  body { font-size:10pt !important; line-height:1.3; }
  table th { font-size:8.5pt !important; }
  table td { font-size:9pt !important; }
}
