* , *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }

:root {
  --bg: #0b0c0e;
  --card: #16181c;
  --line: #2a2e33;
  --green: #32d74b;
  --red: #ff453a;
  --text: #fff;
  --muted: #9aa3ad;
}

html, body {
  height: 100%;
  background: var(--bg);
  color: var(--text);
  font-family: Inter, system-ui, sans-serif;
  overflow: hidden;
}

.tv {
  height: 100vh;
  padding: 1.1vh 1.4vw 0.8vh;
  display: grid;
  grid-template-rows: auto auto minmax(0, 1.05fr) minmax(0, 0.92fr) auto;
  gap: 1vh;
}

header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  width: 100%;
}

.brand {
  display: flex;
  align-items: center;
  gap: 10px;
  min-width: 0;
  flex: 1 1 auto;
}

.logo {
  height: clamp(40px, 4.6vh, 56px);
  width: auto;
  max-width: min(280px, 28vw);
  flex-shrink: 0;
  object-fit: contain;
  display: block;
  background: transparent;
}

.brand strong {
  display: block;
  font-size: clamp(16px, 1.25vw, 22px);
  font-weight: 800;
  letter-spacing: -0.02em;
  line-height: 1.1;
}

.brand span {
  display: block;
  color: var(--muted);
  font-size: clamp(11px, 0.9vw, 14px);
  font-weight: 600;
}

.tabs {
  display: flex;
  justify-content: center;
  gap: 8px;
}

.tab {
  appearance: none;
  border: 1px solid var(--line);
  background: var(--card);
  color: var(--muted);
  border-radius: 999px;
  padding: 0.7vh 1.2vw;
  font: 800 clamp(13px, 1.05vw, 16px)/1 Inter, sans-serif;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  cursor: default;
}

.tab.active {
  color: #04130a;
  background: var(--green);
  border-color: var(--green);
}

.tab:disabled {
  opacity: 0.45;
  cursor: not-allowed;
}

.clock {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 8px;
  margin-left: auto;
  flex: 0 0 auto;
  color: var(--muted);
  font-weight: 700;
  font-size: clamp(15px, 1.2vw, 20px);
  font-variant-numeric: tabular-nums;
  white-space: nowrap;
}

.ico {
  display: inline-flex;
  color: var(--green);
  align-items: center;
}

.ico svg {
  width: 22px;
  height: 22px;
}

.kpis {
  display: grid;
  grid-template-columns: repeat(6, minmax(0, 1fr)) 1.55fr;
  gap: 10px;
}

.kpi {
  background: var(--card);
  border: 1px solid var(--line);
  border-radius: 14px;
  padding: 1.1vh 0.7vw;
  min-width: 0;
}

.kpi .lbl {
  display: flex;
  align-items: center;
  gap: 6px;
  color: var(--muted);
  font-size: clamp(11px, 0.95vw, 14px);
  font-weight: 800;
  letter-spacing: 0.05em;
  margin-bottom: 6px;
  white-space: nowrap;
}

.kpi strong {
  font-size: clamp(22px, 2.05vw, 36px);
  color: var(--green);
  letter-spacing: -0.03em;
  font-variant-numeric: tabular-nums;
}

.kpi.bad strong { color: var(--red); }
.kpi small {
  color: var(--muted);
  font-size: clamp(12px, 1vw, 15px);
  margin-left: 4px;
  font-weight: 700;
}

.kpi.feat {
  border-color: var(--green);
  box-shadow: 0 0 0 1px rgba(50, 215, 75, 0.35), 0 0 22px rgba(50, 215, 75, 0.18);
  padding: 1.1vh 0.9vw;
}

.kpi.feat .lbl {
  color: var(--green);
  font-size: clamp(12px, 1.05vw, 16px);
}

.kpi.feat strong {
  font-size: clamp(34px, 3.3vw, 54px);
  font-weight: 900;
}

.kpi.feat.bad {
  border-color: var(--red);
  box-shadow: 0 0 0 1px rgba(255, 69, 58, 0.35), 0 0 22px rgba(255, 69, 58, 0.16);
}

.kpi.feat.bad .lbl { color: var(--red); }

/* GridDash: CONJ. FORMADOS (esq.) e ATINGIMENTO (dir.) em destaque */
.kpis.kpis-gd {
  grid-template-columns: 1.55fr repeat(5, minmax(0, 1fr)) 1.55fr;
}

.kpis-gd .kpi.feat strong small {
  color: var(--muted);
  font-size: 0.42em;
  font-weight: 800;
  margin-left: 6px;
  letter-spacing: 0;
}

.coords {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 12px;
  min-height: 0;
}

.card {
  background: var(--card);
  border: 1px solid var(--line);
  border-radius: 14px;
  padding: 1.2vh 1.1vw;
  display: flex;
  flex-direction: column;
  min-height: 0;
  overflow: hidden;
}

.card .head {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 12px;
}

.card .name {
  display: flex;
  align-items: center;
  gap: 10px;
  font-size: clamp(16px, 1.35vw, 22px);
  font-weight: 800;
  letter-spacing: 0.06em;
  min-width: 0;
  overflow: hidden;
}

.card .pct-hero {
  font-size: clamp(32px, 2.8vw, 48px);
  font-weight: 900;
  color: var(--green);
  line-height: 1;
  letter-spacing: -0.04em;
  flex-shrink: 0;
}

.card .pct-hero.bad { color: var(--red); }

.foto {
  width: clamp(44px, 4.8vh, 60px);
  height: clamp(44px, 4.8vh, 60px);
  border-radius: 50%;
  flex-shrink: 0;
  border: 2px solid var(--green);
  background: #0e2418;
  overflow: hidden;
  position: relative;
}

.foto.bad { border-color: var(--red); background: #241010; }

.foto img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center 20%;
  display: block;
}

.foto .ini {
  display: none;
  place-items: center;
  position: absolute;
  inset: 0;
  font-size: 15px;
  font-weight: 800;
  color: var(--green);
}

.card > .veh {
  display: grid;
  grid-template-columns: 1fr 1fr 1fr;
  gap: 0;
  margin: 10px 0 14px;
  padding: 8px 0;
  border-top: 1px solid var(--line);
  border-bottom: 1px solid var(--line);
}

.card .veh-blocos {
  display: grid;
  gap: 6px;
  margin: 8px 0 0;
  padding: 8px 0;
  border-top: 1px solid var(--line);
  flex-shrink: 0;
}

.card .veh-bloco .veh {
  display: grid;
  grid-template-columns: 1fr 1fr 1fr;
  gap: 0;
  margin: 0;
  padding: 4px 0 6px;
  border: none;
}

.card .veh-bloco-label,
.card .ops-bloco-title {
  color: var(--muted);
  font-size: clamp(10px, 0.82vw, 12px);
  font-weight: 800;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  padding: 0 22px;
}

.card .veh-bloco + .veh-bloco {
  border-top: 1px dashed var(--line);
  padding-top: 6px;
}

.card .veh-bloco.empty .stat b {
  color: var(--muted);
  font-size: clamp(18px, 1.5vw, 26px);
}

/* GridDash compacto — sobra espaço para a lista de tipos */
.card-gd {
  padding: 0.7vh 0.7vw;
}

.card-gd .head {
  margin-bottom: 0;
  gap: 8px;
}

.card-gd .foto {
  width: clamp(26px, 2.8vh, 34px);
  height: clamp(26px, 2.8vh, 34px);
  border-width: 1.5px;
}

.card-gd .name {
  font-size: clamp(12px, 1vw, 15px);
  gap: 6px;
  letter-spacing: 0.04em;
}

.card-gd .pct-hero {
  font-size: clamp(16px, 1.5vw, 24px);
}

.card-gd .veh-blocos {
  gap: 0;
  margin: 2px 0 0;
  padding: 3px 0;
}

.card-gd .veh-bloco + .veh-bloco {
  padding-top: 1px;
}

.card-gd .veh-bloco-label {
  padding: 0 8px;
  font-size: clamp(8px, 0.65vw, 10px);
  letter-spacing: 0.08em;
  line-height: 1.1;
}

.card-gd .veh-bloco .veh,
.card-gd .veh-compact {
  padding: 0;
  align-items: end;
}

.card-gd .veh-bloco .stat {
  padding: 0 8px;
  gap: 0;
}

.card-gd .veh-bloco .stat span {
  font-size: clamp(7px, 0.6vw, 9px);
  letter-spacing: 0.06em;
  line-height: 1;
}

.card-gd .veh-bloco .stat b,
.card-gd .veh-bloco.empty .stat b {
  font-size: clamp(12px, 1vw, 16px);
  line-height: 1.05;
}

.card-gd .ops-wrap {
  flex: 1;
  min-height: 0;
  overflow: auto;
  margin: 0;
  padding: 3px 0 0;
  border-top: 1px solid var(--line);
  display: flex;
  flex-direction: column;
  gap: 4px;
}

.card-gd .ops-bloco-sec {
  flex: 0 0 auto;
  display: flex;
  flex-direction: column;
  min-height: 0;
}

.card-gd .ops-bloco-sec + .ops-bloco-sec {
  padding-top: 3px;
  border-top: 1px dashed var(--line);
}

.card-gd .ops-bloco-title {
  margin-bottom: 2px;
  flex-shrink: 0;
  padding: 0 8px;
  font-size: clamp(8px, 0.65vw, 10px);
  letter-spacing: 0.08em;
}

.card-gd .ops-table {
  display: flex;
  flex-direction: column;
  gap: 0.2vh;
  padding: 0 8px;
  width: 100%;
  box-sizing: border-box;
}

.card-gd .ops-row {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 52px 46px 40px;
  column-gap: 8px;
  align-items: center;
  width: 100%;
  box-sizing: border-box;
  min-width: 0;
}

.card-gd .ops-row.ops-row-ded {
  grid-template-columns: minmax(0, 1.2fr) 34px 34px 34px 34px 36px;
  column-gap: 4px;
}

.card-gd .ops-row .num.muted {
  color: var(--muted);
  font-weight: 600;
}

.card-gd .veh-ded .stat b small {
  color: var(--muted);
  font-size: 0.72em;
  font-weight: 700;
  margin-left: 1px;
}

.card-gd .ops-row.head {
  color: var(--muted);
  font-size: 9px;
  font-weight: 700;
  letter-spacing: 0;
  margin-bottom: 2px;
}

.card-gd .ops-row > span {
  display: block;
  min-width: 0;
  max-width: 100%;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  line-height: 1.2;
  box-sizing: border-box;
}

.card-gd .ops-row > .lab,
.card-gd .ops-row > span:first-child {
  text-align: left;
}

.card-gd .ops-row > .num,
.card-gd .ops-row > .pct {
  text-align: right;
  font-variant-numeric: tabular-nums;
}

.card-gd .ops-row:not(.head) > span {
  font-size: clamp(10px, 0.8vw, 12px);
  font-weight: 700;
}

.card-gd .ops-row .pct.ok { color: var(--green); }
.card-gd .ops-row .pct.warn { color: #ffd60a; }
.card-gd .ops-row .pct.bad { color: var(--red); }

.card-gd .bar {
  padding-top: 4px;
  gap: 6px;
}

.card-gd .bar i {
  height: 6px;
}

.card-gd .bar b {
  font-size: clamp(12px, 1vw, 16px);
  min-width: 36px;
}

/* GridDash: coordenadores encolhidos + card de agregados à direita */
.coords.coords-agreg {
  grid-template-columns: minmax(0, 1fr) clamp(200px, 15.5vw, 280px);
  gap: 10px;
}

.coords-agreg .coord-cards {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 10px;
  min-height: 0;
  min-width: 0;
}

.card-agreg .head .name {
  color: var(--muted);
  letter-spacing: 0.1em;
}

.card-agreg .head .name .ico svg {
  width: 1.15em;
  height: 1.15em;
}

.card-agreg .pct-hero {
  color: var(--green);
}

.card-agreg .veh-bloco .stat b.ok { color: var(--green); }
.card-agreg .veh-bloco .stat b.bad { color: var(--red); }

.card-gd .ops-row.ops-row-agreg {
  grid-template-columns: minmax(0, 1fr) 44px;
}

.card-agreg .empty-ops {
  padding: 6px 8px;
}

.card-agreg .ops-bloco-title {
  display: flex;
  justify-content: space-between;
  align-items: baseline;
}

.card-agreg .ops-bloco-title .agreg-sub {
  color: var(--text);
  font-size: 1.15em;
  letter-spacing: 0;
}

.card .empty-ops {
  color: var(--muted);
  font-size: clamp(12px, 0.95vw, 14px);
  font-weight: 600;
  padding: 8px 22px;
}

.card .stat {
  display: flex;
  flex-direction: column;
  gap: 3px;
  min-width: 0;
  padding: 0 22px;
}

.card .stat + .stat {
  border-left: 1px solid var(--line);
}

.card .stat span {
  color: var(--muted);
  font-size: clamp(10px, 0.85vw, 12px);
  font-weight: 800;
  letter-spacing: 0.12em;
}

.card .stat b {
  color: var(--text);
  font-size: clamp(22px, 1.85vw, 32px);
  font-weight: 900;
  font-variant-numeric: tabular-nums;
  line-height: 1;
}

.card .stat b.ok { color: var(--green); }
.card .stat b.bad { color: var(--red); }

.ops-head,
.ops li {
  display: grid;
  grid-template-columns: minmax(0, 1.4fr) 6.2em 6.2em 5em;
  gap: 22px;
  align-items: center;
}

.ops-head {
  margin: 0 0 6px;
  font-size: clamp(11px, 0.9vw, 13px);
  letter-spacing: 0.06em;
  color: var(--muted);
  font-weight: 700;
}

.ops-head > span:first-child,
.ops .lab {
  text-align: left;
  justify-self: start;
}

.ops-head span:not(:first-child),
.ops .num,
.ops .pct {
  text-align: right;
  justify-self: end;
  width: 100%;
}

.ops {
  display: grid;
  grid-template-columns: 1fr;
  row-gap: 0.7vh;
  margin: 0;
  padding: 0;
  flex: 1;
  align-content: start;
}

.ops li { list-style: none; }

.ops .lab {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  color: #c8d0d6;
  font-size: clamp(16px, 1.35vw, 22px);
  font-weight: 600;
}

.ops .num,
.ops .pct {
  font-variant-numeric: tabular-nums;
  font-weight: 800;
  font-size: clamp(16px, 1.4vw, 24px);
  color: #d8dde2;
}

.ops .ok { color: var(--green); }
.ops .bad { color: var(--red); }

.ops .ops-bloco {
  color: var(--muted);
  font-size: 0.78em;
  font-weight: 800;
  letter-spacing: 0.04em;
}

.ops li.empty-ops {
  grid-template-columns: 1fr;
  color: var(--muted);
  font-weight: 700;
  padding: 1vh 0;
}

.bar {
  margin-top: auto;
  display: flex;
  align-items: center;
  gap: 10px;
  padding-top: 10px;
  flex-shrink: 0;
}

.bar i {
  flex: 1;
  height: 12px;
  background: #2a2e33;
  border-radius: 99px;
  overflow: hidden;
  display: block;
}

.bar i em {
  display: block;
  height: 100%;
  background: var(--green);
  border-radius: 99px;
}

.bar b {
  font-size: clamp(20px, 1.8vw, 28px);
  color: var(--green);
  min-width: 58px;
  text-align: right;
  font-weight: 900;
  font-variant-numeric: tabular-nums;
}

.bar.bad i em { background: var(--red); }
.bar.bad b { color: var(--red); }

.fleet-disp {
  display: grid;
  grid-template-columns: 0.92fr 1.45fr;
  gap: 12px;
  min-height: 0;
}

.cavalos-block,
.carretas-block {
  background: var(--card);
  border: 1px solid var(--line);
  border-radius: 14px;
  padding: 1vh 1vw 0.8vh;
  min-height: 0;
  display: flex;
  flex-direction: column;
  overflow: hidden;
}

.disp-head {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 12px;
  margin-bottom: 0.7vh;
}

.disp-head h2 {
  margin: 0;
  font-size: clamp(13px, 1.05vw, 17px);
  letter-spacing: 0.1em;
  text-transform: uppercase;
}

.disp-head-actions {
  display: flex;
  align-items: center;
  gap: 10px;
}

.tv-export {
  appearance: none;
  border: 1px solid var(--line);
  background: #101216;
  color: var(--text);
  border-radius: 8px;
  padding: 0.45vh 0.7vw;
  font: 700 clamp(11px, 0.9vw, 13px)/1 Inter, sans-serif;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  cursor: pointer;
}

.disp-head b {
  color: var(--green);
  font-size: clamp(26px, 2.3vw, 38px);
  font-weight: 900;
  font-variant-numeric: tabular-nums;
  line-height: 1;
}

.cm-cols {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 10px;
  min-height: 0;
  flex: 1;
}

.cr-cols {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 10px;
  min-height: 0;
  flex: 1;
  overflow: hidden;
}

.cm-cols article,
.cr-cols article {
  min-height: 0;
  display: flex;
  flex-direction: column;
  border: 1px solid var(--line);
  border-radius: 12px;
  padding: 0.7vh 0.7vw;
}

.cm-title {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  gap: 8px;
  color: var(--muted);
  font-size: clamp(11px, 0.92vw, 14px);
  font-weight: 800;
  letter-spacing: 0.04em;
  line-height: 1.2;
  margin-bottom: 0.55vh;
}

.cm-title strong {
  color: var(--green);
  font-size: clamp(20px, 1.7vw, 30px);
  font-variant-numeric: tabular-nums;
  flex-shrink: 0;
}

.cm-sub {
  color: var(--green);
  font-size: clamp(10px, 0.82vw, 13px);
  font-weight: 700;
  letter-spacing: 0.04em;
  margin: -0.2vh 0 0.5vh;
}

.cm-plates {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  align-content: flex-start;
  overflow: hidden;
}

.cr-list {
  flex: 1;
  min-height: 0;
  overflow: hidden;
  mask-image: linear-gradient(to bottom, #000 88%, transparent 100%);
}

.cr-track {
  display: flex;
  flex-direction: column;
  gap: 6px;
}

.cr-track.scrolling {
  animation: cr-marquee linear infinite;
}

@keyframes cr-marquee {
  from { transform: translateY(0); }
  to { transform: translateY(-50%); }
}

.cr-list .asset-chip {
  width: 100%;
  flex-direction: row;
  justify-content: space-between;
  align-items: center;
  min-width: 0;
  padding: 0.45vh 0.55vw;
}

.cm-plates span,
.asset-chip {
  background: #101216;
  border: 1px solid var(--line);
  border-radius: 8px;
  padding: 0.25vh 0.5vw;
  font-size: clamp(12px, 1vw, 15px);
  font-weight: 800;
  letter-spacing: 0.04em;
  font-variant-numeric: tabular-nums;
}

.asset-chip {
  display: flex;
  flex-direction: column;
  gap: 2px;
  min-width: 5.6em;
}

.asset-chip .placa {
  font-size: clamp(12px, 1.02vw, 15px);
  font-weight: 800;
}

.asset-chip.conjunto {
  min-width: 9em;
}

.asset-chip .grupo {
  color: var(--muted);
  font-size: clamp(9px, 0.78vw, 12px);
  font-weight: 700;
  letter-spacing: 0.04em;
  text-transform: uppercase;
}

.cm-plates .empty,
.cr-list .empty {
  color: var(--muted);
  border: 0;
  background: transparent;
  font-weight: 700;
  font-size: clamp(11px, 0.9vw, 13px);
}

footer {
  display: flex;
  justify-content: space-between;
  color: var(--muted);
  font-size: clamp(11px, 0.95vw, 14px);
  font-weight: 600;
  letter-spacing: 0.04em;
  text-transform: uppercase;
}

a.tab {
  text-decoration: none;
  display: inline-flex;
  align-items: center;
  cursor: pointer;
}

/* —— GridDash (Visão Gerencial TV) —— */
.tv-griddash {
  grid-template-rows: auto auto auto minmax(0, 1fr) auto;
}

.tv-griddash .gd-kpis {
  grid-template-columns: repeat(6, minmax(0, 1fr)) 1.45fr;
}

.gd-meta {
  display: flex;
  flex-wrap: wrap;
  gap: 18px;
  color: var(--muted);
  font-size: clamp(12px, 0.95vw, 15px);
  font-weight: 600;
}

.gd-meta b {
  color: var(--text);
  font-weight: 800;
}

.gd-grids {
  display: grid;
  grid-template-columns: 1.05fr 1.2fr;
  gap: 12px;
  min-height: 0;
}

.gd-panel {
  background: var(--card);
  border: 1px solid var(--line);
  border-radius: 14px;
  padding: 1vh 1vw 0.7vh;
  min-height: 0;
  display: flex;
  flex-direction: column;
  overflow: hidden;
}

.gd-panel-head {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 12px;
  margin-bottom: 0.6vh;
}

.gd-panel-head h2 {
  margin: 0;
  font-size: clamp(13px, 1.05vw, 17px);
  letter-spacing: 0.1em;
  text-transform: uppercase;
}

.gd-panel-head b {
  color: var(--green);
  font-size: clamp(24px, 2.1vw, 36px);
  font-weight: 900;
  font-variant-numeric: tabular-nums;
  line-height: 1;
}

.gd-scroll {
  min-height: 0;
  flex: 1;
  overflow: auto;
}

.gd-ops-head,
.gd-ops li,
.gd-ops-foot {
  display: grid;
  gap: 6px;
  align-items: center;
  font-variant-numeric: tabular-nums;
}

.gd-ops-flut {
  grid-template-columns: minmax(0, 1.5fr) repeat(5, minmax(0, 0.7fr));
}

.gd-ops-ded {
  grid-template-columns: minmax(0, 1.35fr) repeat(6, minmax(0, 0.62fr));
}

.gd-ops-head {
  color: var(--muted);
  font-size: clamp(10px, 0.82vw, 12px);
  font-weight: 800;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  padding: 0 4px 8px;
  border-bottom: 1px solid var(--line);
  position: sticky;
  top: 0;
  background: var(--card);
  z-index: 1;
}

.gd-ops-head span:not(:first-child),
.gd-ops li .num,
.gd-ops li .pct,
.gd-ops-foot .num,
.gd-ops-foot .pct {
  text-align: right;
}

.gd-ops {
  list-style: none;
  margin: 0;
  padding: 0;
}

.gd-ops li {
  padding: 0.55vh 4px;
  border-bottom: 1px solid rgba(42, 46, 51, 0.65);
  font-size: clamp(12px, 0.98vw, 15px);
  font-weight: 700;
}

.gd-ops li .lab {
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  font-weight: 800;
  letter-spacing: 0.02em;
}

.gd-ops li .num,
.gd-ops-foot .num {
  color: var(--text);
  font-weight: 800;
}

.gd-ops li .pct,
.gd-ops-foot .pct {
  color: var(--muted);
  font-weight: 900;
}

.gd-ops li .pct.ok,
.gd-ops li .num.ok,
.gd-ops-foot .pct.ok,
.gd-ops-foot .num.ok { color: var(--green); }

.gd-ops li .pct.bad,
.gd-ops li .num.bad,
.gd-ops-foot .pct.bad,
.gd-ops-foot .num.bad { color: var(--red); }

.gd-ops li.empty {
  color: var(--muted);
  grid-template-columns: 1fr;
  text-align: center;
  padding: 2vh;
}

.gd-ops-foot {
  margin-top: 0.5vh;
  padding: 0.7vh 4px 0.2vh;
  border-top: 1px solid var(--line);
  font-size: clamp(12px, 1vw, 15px);
  font-weight: 900;
}

.gd-ops-foot .lab {
  letter-spacing: 0.08em;
}

.gd-tag {
  display: inline-block;
  margin-left: 6px;
  color: var(--muted);
  font-size: 0.72em;
  font-weight: 700;
  letter-spacing: 0.06em;
  text-transform: uppercase;
}

@media (max-width: 1100px) {
  .gd-grids { grid-template-columns: 1fr; }
  .tv-griddash { overflow: auto; }
  html, body { overflow: auto; }
}

