/* Shared application typography. Artwork uses SVG/canvas or .ops-batch-art,
   and is intentionally excluded from the HTML heading/body rules below. */
@import url('https://fonts.googleapis.com/css2?family=Instrument+Sans:wght@400;500;600;700&display=swap');
:root{
  --ui-font:"Instrument Sans",-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
  --ui-title:30px;--ui-section:18px;--ui-card:16px;
  --ui-body:14px;--ui-caption:12px;--ui-metric:30px;
  --ui-weight-title:700;--ui-weight-heading:600;--ui-weight-label:500;--ui-weight-body:400;
}
body{font-family:var(--ui-font)!important;font-size:var(--ui-body)!important;line-height:1.5}
/* Use explicit roles so historic console-specific sizes cannot override them. */
body h1:not(svg *, .ops-batch-art *){font-family:var(--ui-font)!important;font-size:var(--ui-title)!important;font-weight:700!important;line-height:1.2!important;letter-spacing:-.6px!important}
body h2:not(svg *, .ops-batch-art *){font-family:var(--ui-font)!important;font-size:var(--ui-section)!important;font-weight:600!important;line-height:1.35!important;letter-spacing:-.2px!important}
body h3:not(svg *, .ops-batch-art *){font-family:var(--ui-font)!important;font-size:var(--ui-card)!important;font-weight:600!important;line-height:1.4!important;letter-spacing:0!important}
body .studio-heading h2{font-size:var(--ui-title)!important;font-weight:700!important;line-height:1.2!important;letter-spacing:-.6px!important}
body :is(button,input,select,textarea,summary){font-family:var(--ui-font)!important}
body :is(.btn,.button,.team-btn,.primary-btn,.secondary-btn,.tabs button,.segmented button,.segments button,input,select,textarea){font-size:var(--ui-body)!important;line-height:1.45}
body :is(.ops-head,.heading,.team-heading,.page-heading,.page-head,.studio-heading) p,
body :is(.ops-panel-body,.team-tool,.team-panel-head,.panel-head,.section-head,.empty,.ops-empty) p{
  font-size:var(--ui-body)!important;line-height:1.55
}
body :is(.ops-form,.filters,.team-toolbar) label,
body :is(.team-label,.kpi-label,.ops-kpi label,.stat-head,.field>span,.field-label){font-size:var(--ui-body)!important;line-height:1.45}
body :is(.ops-nav,.nav-link,.nav-item,.team-sidebar a:not(.team-logo),.sidebar>a:not(.brand),.sidebar nav button,.side-action,.dashboard-switcher>summary,.dashboard-switcher .ds-panel>a,.dashboard-switcher .ds-current),
body [data-team-links] a{font-family:var(--ui-font)!important;font-size:var(--ui-body)!important;line-height:1.45!important;font-weight:500}
body :is(.ops-group,.side-label,.team-nav-label,.nav-label,.eyebrow,.ops-eyebrow,.team-eyebrow){
  font-size:var(--ui-caption)!important;line-height:1.4!important;letter-spacing:1.2px!important;font-weight:500
}
body :is(.ops-muted,.team-muted,.scope-line,.subtle-note,.team-card-meta,.team-row p,.team-empty,.badge,.ops-pill,.team-badge,.canvas-meta),
body :is(.kpi,.ops-kpi,.stat,.team-attention,.team-sidebar,.sidebar,.ops-sidebar-foot) small,
body [data-team-links] .team-suggest,
body .dashboard-switcher small{font-family:var(--ui-font)!important;font-size:var(--ui-caption)!important;line-height:1.5!important}
body :is(.kpi,.ops-kpi,.stat,.team-attention,.forecast-kpis) strong{
  font-size:var(--ui-metric)!important;line-height:1.2!important;font-weight:600!important;letter-spacing:-.5px;font-variant-numeric:tabular-nums
}
body :is(.ops-table,.data-table,table){font-size:var(--ui-body)}
body :is(.ops-table,.data-table,table) th{font-size:var(--ui-caption)!important;font-weight:600;line-height:1.4}
body :is(.ops-table,.data-table,table) td{font-size:var(--ui-body);line-height:1.5}
body :is(.ops-table,.data-table,table) small{font-size:var(--ui-caption)!important}
@media(max-width:700px){
  :root{--ui-title:26px;--ui-metric:26px}
  /* Prevent mobile browsers from zooming when editing a form. */
  body :is(input,select,textarea){font-size:16px!important}
}

/* Shared interface roles. Keep artwork and chart marks under their own styles. */
body :is(.filters,.local-filters,.metric-toolbar,.hour-filters,.team-toolbar,.ops-form) label{font-size:var(--ui-body)!important;line-height:1.45!important;font-weight:var(--ui-weight-label)!important}
body :is(.subtitle,.scope,.detail-note,.chart-note,.panel>p,.section-heading p,.ci-muted){font-family:var(--ui-font)!important;font-size:var(--ui-caption)!important;font-weight:var(--ui-weight-body)!important;line-height:1.5!important}
body :is(.page-heading,.heading,.ops-head,.studio-heading)>.subtitle{font-size:var(--ui-body)!important}
body :is(.kpi>span,.kpi>small,.ci-kpi>span,.stat-head,.kpi-label){font-size:var(--ui-caption)!important;font-weight:var(--ui-weight-label)!important;line-height:1.4!important;letter-spacing:0!important;text-transform:none!important}
body .ci-kpi strong{font-size:var(--ui-metric)!important;font-weight:var(--ui-weight-heading)!important;line-height:1.2!important;letter-spacing:-.5px;font-variant-numeric:tabular-nums}
body .ci-kpi small{font-size:var(--ui-caption)!important;font-weight:var(--ui-weight-body)!important}
body :is(.filters,.local-filters,.metric-toolbar,.hour-filters) :is(input,select){font-weight:var(--ui-weight-body)!important}
body :is(.tabs,.segments,.segmented,#analysis-modes) button{font-weight:var(--ui-weight-label)!important}
body :is(.tabs,.segments,.segmented,#analysis-modes) button:is([aria-pressed=true],[aria-selected=true],[aria-current=page]){font-weight:var(--ui-weight-heading)!important}
body :is(.sidebar,.team-sidebar,#ops-sidebar) :is(button,a)[aria-current=page]{font-weight:var(--ui-weight-heading)!important}
body .dashboard-switcher .ds-current{font-weight:var(--ui-weight-heading)!important}
body :is(.panel-head,.ci-panel) h2 small{font-size:var(--ui-caption)!important;font-weight:var(--ui-weight-body)!important;letter-spacing:0!important}
