/* ========================================================================== 
   NAMINATA 3.6.4 — Proportional Typography System
   A consistent enterprise type scale for navigation, forms, dashboards,
   AI panels, tables, and responsive screens. No operational text is rendered
   below 11px at the default browser scale.
   ========================================================================== */
:root {
  --nmt-type-micro: clamp(.6875rem, .665rem + .07vw, .75rem);
  --nmt-type-caption: clamp(.75rem, .725rem + .08vw, .8125rem);
  --nmt-type-sm: clamp(.8125rem, .785rem + .08vw, .875rem);
  --nmt-type-body: clamp(.875rem, .845rem + .08vw, .9375rem);
  --nmt-type-md: clamp(.9375rem, .9rem + .1vw, 1rem);
  --nmt-type-title: clamp(1rem, .96rem + .12vw, 1.0875rem);
  --nmt-type-page: clamp(1.35rem, 1.2rem + .42vw, 1.7rem);
  --nmt-type-metric: clamp(1.55rem, 1.35rem + .55vw, 1.95rem);
  --nmt-leading-tight: 1.25;
  --nmt-leading-normal: 1.5;
  --nmt-leading-relaxed: 1.62;
}
html {
  -webkit-text-size-adjust: 100%;
  text-size-adjust: 100%;
}
body.nmt-body {
  font-size: var(--nmt-type-body);
  line-height: var(--nmt-leading-normal);
  font-kerning: normal;
  text-rendering: optimizeLegibility;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}
body.nmt-body p,
body.nmt-body li,
body.nmt-body label,
body.nmt-body td,
body.nmt-body input,
body.nmt-body select,
body.nmt-body textarea,
body.nmt-body button {
  line-height: var(--nmt-leading-normal);
}
body.nmt-body small,
body.nmt-body .small {
  font-size: var(--nmt-type-caption);
  line-height: 1.45;
}
body.nmt-body h1,
body.nmt-body h2,
body.nmt-body h3,
body.nmt-body h4,
body.nmt-body h5,
body.nmt-body h6,
body.nmt-body strong,
body.nmt-body b {
  text-wrap: pretty;
}

/* Navigation hierarchy */
.nmt-sidebar {
  width: 300px;
}
.nmt-main {
  margin-left: 300px !important;
}
.nmt-brand {
  min-height: 82px;
  padding: 18px 20px !important;
}
.nmt-brand-copy strong {
  font-size: 1.18rem !important;
  line-height: 1.15;
}
.nmt-brand-copy small {
  margin-top: 4px;
  font-size: var(--nmt-type-caption) !important;
  line-height: 1.35;
}
.nmt-nav {
  padding: 14px 13px 20px;
}
.nmt-nav .sidebar-section-label {
  margin: 18px 9px 8px !important;
  font-size: var(--nmt-type-micro) !important;
  line-height: 1.25;
}
.nmt-nav > .nav-link {
  min-height: 42px;
  padding: 10px 11px !important;
  font-size: var(--nmt-type-sm);
  line-height: 1.35;
}
.nmt-nav-group {
  margin: 4px 0 8px;
  padding: 9px 8px;
}
.nmt-nav-group-title {
  grid-template-columns: 23px 20px minmax(0, 1fr) 14px;
  gap: 7px;
  min-height: 39px;
  padding: 5px 4px 7px;
}
.nmt-nav-group-title strong {
  font-size: var(--nmt-type-sm);
  line-height: 1.35;
  letter-spacing: -.006em;
}
.nmt-nav-group-title > i {
  font-size: 1rem;
}
.nmt-nav-number {
  width: 22px;
  height: 22px;
  font-size: var(--nmt-type-micro);
}
.nmt-nav-group > .nav-link {
  min-height: 36px;
  margin: 2px 0;
  padding: 8px 9px 8px 56px !important;
  font-size: var(--nmt-type-caption) !important;
  line-height: 1.4;
}
.nmt-sidebar-footer {
  padding: 14px 16px 16px !important;
}
.nmt-user-mini small {
  font-size: var(--nmt-type-micro) !important;
}
.nmt-user-mini strong {
  font-size: var(--nmt-type-sm);
  line-height: 1.3;
}

/* Header, search, and page titles */
.nmt-topbar {
  min-height: 78px !important;
  height: auto !important;
  padding: 14px 26px !important;
}
.nmt-global-search input {
  height: 44px;
  font-size: var(--nmt-type-sm);
}
.nmt-global-search kbd {
  font-size: var(--nmt-type-micro);
}
.nmt-unit-chip,
.nmt-user-chip {
  min-height: 42px;
  height: auto;
  font-size: var(--nmt-type-caption);
  line-height: 1.25;
}
.nmt-page-heading {
  padding: 24px 30px 0;
}
.nmt-page-heading h1 {
  font-size: var(--nmt-type-page);
  line-height: 1.2;
}
.nmt-page-heading p {
  max-width: 980px;
  margin-top: 7px;
  font-size: var(--nmt-type-sm);
  line-height: 1.5;
}
.nmt-page-clock {
  font-size: var(--nmt-type-caption);
}
.nmt-content-wrap {
  padding: 22px 30px 48px !important;
}

/* Forms, controls, buttons, and data tables */
body.nmt-body .form-label,
body.nmt-body .filter-field label {
  font-size: var(--nmt-type-caption) !important;
  line-height: 1.35;
}
body.nmt-body .form-control,
body.nmt-body .form-select,
body.nmt-body .input-group-text,
body.nmt-body .smart-select-trigger {
  font-size: var(--nmt-type-sm) !important;
}
body.nmt-body .form-control,
body.nmt-body .form-select {
  min-height: 44px;
}
body.nmt-body .form-text,
body.nmt-body .form-help {
  font-size: var(--nmt-type-caption) !important;
  line-height: 1.5;
}
body.nmt-body .btn {
  min-height: 40px;
  padding: .58rem .86rem;
  font-size: var(--nmt-type-sm);
  line-height: 1.2;
}
body.nmt-body .btn-sm {
  min-height: 34px;
  padding: .42rem .68rem;
  font-size: var(--nmt-type-caption);
}
body.nmt-body .btn-icon {
  min-width: 40px;
  padding-inline: .55rem;
}
body.nmt-body .form-check-label,
body.nmt-body .check-option {
  font-size: var(--nmt-type-sm);
}
body.nmt-body .table-premium thead th,
body.nmt-body .table thead th {
  font-size: var(--nmt-type-micro);
  line-height: 1.3;
}
body.nmt-body .table-premium td,
body.nmt-body .table td {
  font-size: var(--nmt-type-sm);
  line-height: 1.45;
}
body.nmt-body .table-premium td small,
body.nmt-body .table td small,
body.nmt-body .table-person small {
  font-size: var(--nmt-type-caption);
}
body.nmt-body .status-badge,
body.nmt-body .badge-event,
body.nmt-body .danger-label,
body.nmt-body .device-code {
  font-size: var(--nmt-type-micro);
}
body.nmt-body .panel-header h3,
body.nmt-body .card-header h3,
body.nmt-body .card-title {
  font-size: var(--nmt-type-title);
  line-height: 1.3;
}
body.nmt-body .panel-header p {
  font-size: var(--nmt-type-caption);
  line-height: 1.5;
}

/* Main module cards */
.nmt-module-grid {
  gap: 12px;
}
.nmt-module-card {
  min-height: 170px;
  padding: 17px 14px 15px;
}
.nmt-module-card span {
  font-size: var(--nmt-type-micro);
}
.nmt-module-card h3 {
  margin: 4px 0 8px;
  font-size: var(--nmt-type-sm);
  line-height: 1.32;
}
.nmt-module-card p {
  font-size: var(--nmt-type-caption);
  line-height: 1.5;
}
.nmt-module-icon {
  width: 46px;
  height: 46px;
  margin-bottom: 12px;
  font-size: 1.35rem;
}

/* AI architecture strip */
.nmt-ai-architecture > header {
  padding: 14px 17px;
}
.nmt-ai-architecture > header > div {
  font-size: var(--nmt-type-sm);
}
.nmt-ai-architecture > header p,
.nmt-ai-architecture > header a {
  font-size: var(--nmt-type-caption);
  line-height: 1.4;
}
.nmt-ai-flow {
  gap: 10px;
  padding: 15px;
}
.nmt-ai-step {
  min-height: 108px;
  grid-template-columns: 30px 35px minmax(0, 1fr);
  gap: 3px 8px;
  padding: 12px;
}
.nmt-ai-step > span {
  width: 27px;
  height: 27px;
  font-size: var(--nmt-type-micro);
}
.nmt-ai-step > i {
  font-size: 1.25rem;
}
.nmt-ai-step strong {
  font-size: var(--nmt-type-caption);
  line-height: 1.3;
}
.nmt-ai-step small {
  font-size: var(--nmt-type-micro);
  line-height: 1.5;
}

/* Dashboard metrics and information cards */
.nmt-dashboard-layout {
  grid-template-columns: minmax(0, 1fr) 360px;
  gap: 16px;
}
.nmt-stat-grid,
.nmt-dashboard-cards,
.nmt-activity-grid {
  gap: 14px;
}
.nmt-stat-card {
  min-height: 116px;
  padding: 16px;
}
.nmt-stat-card small {
  font-size: var(--nmt-type-caption);
  line-height: 1.35;
}
.nmt-stat-card strong {
  font-size: var(--nmt-type-metric);
  line-height: 1.1;
  margin: 5px 0 4px;
}
.nmt-stat-card p {
  font-size: var(--nmt-type-caption);
  line-height: 1.4;
}
.nmt-insight-card {
  padding: 17px;
}
.nmt-insight-card header strong,
.nmt-list-card header strong {
  font-size: var(--nmt-type-sm);
  line-height: 1.35;
}
.nmt-insight-card header small {
  font-size: var(--nmt-type-caption);
  line-height: 1.4;
}
.nmt-insight-card > header > a,
.nmt-list-card > header > a {
  font-size: var(--nmt-type-caption);
}
.nmt-three-metrics strong {
  font-size: clamp(1.2rem, 1.1rem + .28vw, 1.45rem);
}
.nmt-three-metrics span {
  font-size: var(--nmt-type-micro);
  line-height: 1.35;
}
.nmt-card-note,
.nmt-check-list li,
.nmt-feature-number span {
  font-size: var(--nmt-type-caption);
  line-height: 1.55;
}
.nmt-feature-number strong {
  font-size: clamp(1.7rem, 1.5rem + .35vw, 2rem);
}
.nmt-list-card > header {
  padding: 14px 16px;
}
.nmt-list-body {
  padding: 6px 16px 12px;
}
.nmt-list-row {
  min-height: 54px;
  padding: 10px 0;
}
.nmt-list-row strong {
  font-size: var(--nmt-type-caption);
  line-height: 1.35;
}
.nmt-list-row small {
  font-size: var(--nmt-type-micro);
  line-height: 1.4;
}
.nmt-status-pill {
  max-width: 145px;
  padding: 5px 8px;
  font-size: var(--nmt-type-micro);
  line-height: 1.2;
}
.nmt-empty-state {
  font-size: var(--nmt-type-caption);
}

/* AI side panel */
.nmt-ai-panel {
  top: 96px;
}
.nmt-ai-panel > header {
  padding: 15px;
}
.nmt-ai-panel header strong {
  font-size: var(--nmt-type-sm);
  line-height: 1.3;
}
.nmt-ai-panel header small {
  font-size: var(--nmt-type-micro);
  line-height: 1.4;
}
.nmt-ai-state {
  padding: 4px 8px;
  font-size: var(--nmt-type-micro);
}
.nmt-ai-summary > div {
  padding: 11px 6px;
}
.nmt-ai-summary strong {
  font-size: 1.12rem;
}
.nmt-ai-summary small {
  font-size: var(--nmt-type-micro);
  line-height: 1.35;
}
.nmt-ai-feature-list {
  padding: 9px 13px;
}
.nmt-ai-feature-list > div {
  grid-template-columns: 34px minmax(0, 1fr);
  gap: 9px;
  padding: 10px 0;
}
.nmt-ai-feature-list > div > i {
  width: 32px;
  height: 32px;
}
.nmt-ai-feature-list strong {
  font-size: var(--nmt-type-caption);
  line-height: 1.35;
}
.nmt-ai-feature-list small {
  font-size: var(--nmt-type-micro);
  line-height: 1.5;
}
.nmt-ai-task-list strong {
  font-size: var(--nmt-type-caption);
}
.nmt-ai-task-list small {
  font-size: var(--nmt-type-micro);
}
.nmt-ai-disclaimer {
  font-size: var(--nmt-type-micro);
  line-height: 1.55;
}

/* Agent, JSON, and technical-detail views */
.nmt-json-output {
  font-size: var(--nmt-type-caption);
  line-height: 1.55;
}
.nmt-agent-step > span,
.nmt-agent-step strong {
  font-size: var(--nmt-type-caption);
}
.nmt-agent-step small {
  font-size: var(--nmt-type-micro);
  line-height: 1.5;
}

/* Responsive proportional adjustments */
@media (max-width: 1550px) {
  .nmt-dashboard-layout {
    grid-template-columns: minmax(0, 1fr) 340px;
  }
  .nmt-module-card {
    min-height: 155px;
  }
}
@media (max-width: 1199.98px) {
  .nmt-dashboard-layout {
    grid-template-columns: 1fr;
  }
  .nmt-ai-panel {
    position: static;
  }
}
@media (max-width: 991.98px) {
  .nmt-sidebar {
    width: min(320px, 92vw);
  }
  .nmt-main {
    margin-left: 0 !important;
  }
  .nmt-page-heading {
    padding: 20px 19px 0;
  }
  .nmt-content-wrap {
    padding: 18px 19px 40px !important;
  }
}
@media (max-width: 767.98px) {
  .nmt-page-heading h1 {
    font-size: clamp(1.2rem, 1.12rem + .4vw, 1.35rem);
  }
  .nmt-page-heading p {
    font-size: var(--nmt-type-caption);
  }
  .nmt-module-card {
    min-height: 145px;
  }
  .nmt-ai-step {
    min-width: 235px;
  }
}
@media (max-width: 480px) {
  .nmt-module-card {
    min-height: 120px;
    grid-template-columns: 50px minmax(0, 1fr);
  }
  .nmt-module-card p {
    font-size: var(--nmt-type-caption);
  }
  .nmt-topbar {
    min-height: 68px !important;
  }
}

/* Cross-module microcopy normalization: tracker, geofence, face registration,
   offline synchronization, assignment, and smart-select components. */
.person-face-status span,
.face-tile span,
.location-map-mini span,
.location-stats span,
.policy-tags span,
.switch-list small,
.device-title > div > span,
.device-body code,
.device-meta span,
.assignment-person small,
.assignment-tag,
.smart-select-trigger-copy small,
.smart-select-option-copy small,
.smart-select-empty small,
.smart-select-footer,
.smart-select-footer kbd,
.capture-mode-button small,
.camera-guide > span,
.camera-status,
.camera-device-field label,
.quality-item span,
.quality-item small,
.premium-upload small,
.privacy-note span,
.tracker-map-note,
.tracker-popup dl,
.tracker-unactivated-item small,
.tracker-last-refresh,
.tracker-policy-switches small,
.premium-modal .modal-header small,
.panel-inline-filter,
.pagination-summary,
.face-count-chip,
.person-card-photo .person-face-status span,
.device-source,
.tracker-map-cluster small,
.tracker-popup-group li small,
.tracker-popup-more,
.table-person small,
.tracker-branch-cluster small,
.tracker-branch-popup > small,
.tracker-branch-popup-list small,
.tracker-branch-issues-head small,
.tracker-branch-issue-chip,
.tracker-unactivated-result,
.tracker-unactivated-person small,
.tracker-day-grid span,
.tracker-selected-device small,
.attendance-status,
.smart-select-page-label,
.batch-upload-toolbar span,
.face-batch-number,
.face-batch-meta,
.face-batch-status,
.batch-progress-header span,
.face-batch-progress .progress-bar,
.batch-result-summary span,
.offline-mode-badge,
.risk-score,
.offline-meta-grid small,
.risk-flag-list span,
.offline-decision-readonly strong,
.offline-sync-result span,
.radius-source-note small,
.outlet-location-summary span,
.child-location-top > div > span,
.location-id-chip,
.child-location-metrics span,
.child-location-metrics strong,
.empty-location-child span,
.employee-outlet-primary span,
.employee-outlet-toolbar p,
.employee-outlet-copy small,
.assignment-summary-card span {
  font-size: var(--nmt-type-micro) !important;
  line-height: 1.42;
}

/* Descriptive content that must remain comfortably readable. */
.form-help,
.outlet-location-identity p,
.child-location-address,
.offline-meta-grid strong,
.offline-sync-result,
.tracker-unactivated-result,
.assignment-note,
.secondary-outlet-note {
  font-size: var(--nmt-type-caption) !important;
  line-height: 1.5;
}
