/* Camada final de legibilidade para TV.
   Prioriza leitura à distância sem deixar os cards de KPI dominarem a tela. */

.tv-shell{
  grid-template-rows:
    clamp(54px,6.6vh,72px)
    clamp(84px,10.2vh,108px)
    minmax(0,1.18fr)
    minmax(0,1.18fr)
    minmax(122px,.82fr)!important;
}

/* Cabeçalho: mantém presença sem roubar espaço operacional. */
.brand-logo{font-size:clamp(24px,1.45vw,29px)!important}
.title-block h1{font-size:clamp(25px,1.75vw,34px)!important}
.title-block p{font-size:clamp(9px,.58vw,11px)!important}

/* KPIs: cards mais baixos, números e rótulos maiores. */
.metrics-row{
  align-items:stretch!important;
  gap:clamp(5px,.36vw,7px)!important;
}
.metric-card{
  height:100%!important;
  display:flex!important;
  align-items:center!important;
  gap:clamp(7px,.46vw,10px)!important;
  padding:clamp(7px,.5vw,10px) clamp(8px,.55vw,11px)!important;
  border-radius:12px!important;
}
.metric-icon{
  width:clamp(31px,1.85vw,38px)!important;
  height:clamp(31px,1.85vw,38px)!important;
  flex:0 0 clamp(31px,1.85vw,38px)!important;
}
.metric-icon .ui-icon{
  width:clamp(16px,.95vw,19px)!important;
  height:clamp(16px,.95vw,19px)!important;
}
.metric-body{
  display:flex!important;
  flex-direction:column!important;
  justify-content:center!important;
  min-width:0!important;
  height:100%!important;
}
.metric-label{
  font-size:clamp(9.2px,.62vw,11.5px)!important;
  line-height:1.08!important;
  font-weight:780!important;
}
.metric-value-row{
  margin-top:clamp(4px,.34vw,6px)!important;
  gap:6px!important;
}
.metric-value-row strong{
  font-size:clamp(23px,1.65vw,32px)!important;
  line-height:.98!important;
  letter-spacing:-.8px!important;
}
.metric-trend,.metric-percent{
  font-size:clamp(8px,.52vw,10px)!important;
}
.metric-body>small{
  margin-top:clamp(4px,.32vw,6px)!important;
  font-size:clamp(7.8px,.52vw,9.5px)!important;
  line-height:1.08!important;
}
.mini-progress{
  height:4px!important;
  margin-top:clamp(5px,.36vw,7px)!important;
  margin-bottom:0!important;
}
.metric-card.inspector-agenda-card{
  align-items:center!important;
}
.metric-card.inspector-agenda-card .metric-label{
  font-size:clamp(8.8px,.59vw,10.8px)!important;
  line-height:1.08!important;
  white-space:normal!important;
}
.metric-card.inspector-agenda-card .metric-value-row strong{
  font-size:clamp(23px,1.58vw,31px)!important;
}
.metric-card.inspector-agenda-card .metric-body>small{
  font-size:clamp(7.6px,.5vw,9px)!important;
}

/* Painéis: não sacrificar leitura para ganhar alguns pixels. */
.panel-heading h2{font-size:clamp(13px,.78vw,16px)!important}
.panel-heading p{font-size:clamp(8px,.5vw,9.5px)!important}
.outline-chip,.counter-chip{font-size:clamp(7.5px,.46vw,9px)!important}
.bar-number,.bar-hour{font-size:clamp(7.3px,.45vw,8.8px)!important}
.rank-header{font-size:clamp(7px,.43vw,8.3px)!important}
.rank-row{font-size:clamp(8.2px,.5vw,9.7px)!important}
.performance b{font-size:clamp(7.3px,.44vw,8.6px)!important}
.queue-header{font-size:clamp(7px,.43vw,8.3px)!important}
.queue-row{font-size:clamp(8.2px,.5vw,9.7px)!important}
.status-pill{font-size:clamp(7.2px,.44vw,8.5px)!important}
.workshop-head{font-size:clamp(7px,.43vw,8.2px)!important}
.workshop-row{font-size:clamp(8.2px,.5vw,9.6px)!important}
.team-title strong{font-size:clamp(8px,.48vw,9.4px)!important}
.team-title small{font-size:clamp(6.8px,.42vw,8px)!important}
.team-column>span{font-size:clamp(7px,.43vw,8.2px)!important}
.team-column>small{font-size:clamp(6.5px,.4vw,7.7px)!important}
.activity-heading strong{font-size:clamp(9.5px,.58vw,11.5px)!important}
.activity-heading small{font-size:clamp(7px,.43vw,8.2px)!important}
.activity-time{font-size:clamp(6.8px,.41vw,7.8px)!important}
.activity-card strong{font-size:clamp(7.2px,.44vw,8.4px)!important}
.activity-card small{font-size:clamp(6.3px,.38vw,7.3px)!important}
.inspection-times-title strong{font-size:clamp(11px,.68vw,13.5px)!important}
.inspection-times-title small{font-size:clamp(7px,.43vw,8.2px)!important}
.inspection-time-head{font-size:clamp(7px,.43vw,8.2px)!important}
.inspection-time-row{font-size:clamp(8.1px,.49vw,9.5px)!important}
.inspection-status,.completion-status{font-size:clamp(7px,.43vw,8.2px)!important}

/* 1366/1280/720p: mantém tudo na tela sem transformar texto em microtexto. */
@media (max-width:1366px){
  .tv-shell{
    grid-template-rows:52px 84px minmax(0,1.18fr) minmax(0,1.18fr) minmax(116px,.8fr)!important;
  }
  .metric-card{padding:7px 8px!important;gap:6px!important}
  .metric-icon{width:30px!important;height:30px!important;flex-basis:30px!important}
  .metric-label{font-size:9px!important}
  .metric-value-row strong{font-size:23px!important}
  .metric-body>small{font-size:7.6px!important}
  .metric-card.inspector-agenda-card .metric-label{font-size:8.6px!important}
  .metric-card.inspector-agenda-card .metric-body>small{font-size:7.3px!important}
}

/* FHD/4K: aumenta leitura, não a altura dos cards. */
@media (min-width:1600px){
  .metric-label{font-size:11px!important}
  .metric-value-row strong{font-size:31px!important}
  .metric-body>small{font-size:9.2px!important}
  .metric-trend,.metric-percent{font-size:9.8px!important}
  .panel-heading h2{font-size:15px!important}
  .rank-row,.queue-row,.workshop-row,.inspection-time-row{font-size:9.4px!important}
}
