.int-palco { position: relative; }
.int-fig svg { cursor: crosshair; outline: none; }
.int-fig svg:focus-visible { outline: 2px solid var(--primary-color); outline-offset: 2px; border-radius: 4px; }
.int-camada { opacity: 0; transition: opacity .15s ease; pointer-events: none; }
.int-fig.is-ativo .int-camada { opacity: 1; }
.int-guia { stroke: var(--text-color); stroke-width: 1.2; stroke-dasharray: 4 3; }
.int-corte { fill: var(--surface-color); stroke: var(--text-color); stroke-width: 1.6; }
.int-voce { pointer-events: none; }
.int-voce-ponto { fill: var(--primary-color); stroke: var(--surface-color); stroke-width: 2; }
.int-voce-halo { fill: var(--primary-color); opacity: .25; transform-box: fill-box; transform-origin: center; animation: int-pulso 1.8s ease-out infinite; }
.int-voce.is-fora .int-voce-ponto { fill: var(--surface-color); stroke: var(--primary-color); }
@keyframes int-pulso { 0% { transform: scale(.6); opacity: .45; } 100% { transform: scale(2.2); opacity: 0; } }
.int-caixa { position: absolute; z-index: 3; max-width: min(17rem, calc(100% - 8px)); padding: .55rem .7rem; background: var(--surface-color); color: var(--text-color); border: 1px solid var(--border-color); border-radius: 8px; box-shadow: var(--box-shadow); font-size: var(--fs-tabela, .875rem); line-height: 1.35; pointer-events: none; }
.int-caixa-tit { margin: 0 0 .35rem; font-weight: 700; font-variant-numeric: tabular-nums; }
.int-caixa ul { list-style: none; margin: 0; padding: 0; display: grid; gap: .2rem; }
.int-caixa li { display: grid; grid-template-columns: .8rem 1fr auto; align-items: center; gap: .4rem; }
.int-caixa b { font-weight: 600; font-variant-numeric: tabular-nums; white-space: nowrap; text-align: right; }
.int-nome { min-width: 0; overflow-wrap: anywhere; }
.int-chip { width: .8rem; height: .8rem; border-radius: 3px; background: var(--faixa-cheia, var(--faixa-leve)); border: 1px solid var(--border-color); }
.int-chip-voce { background: var(--primary-color); border-radius: 50%; }
.int-caixa-voce { padding-bottom: .25rem; margin-bottom: .1rem; border-bottom: 1px solid var(--border-color); }
.int-controle { display: flex; align-items: center; gap: .6rem; max-width: 40rem; margin: .5rem 0 0; font-size: var(--fs-tabela, .875rem); }
.int-controle input { flex: 1 1 auto; min-width: 0; accent-color: var(--primary-color); }
.int-controle output { min-width: 5.5rem; font-variant-numeric: tabular-nums; font-weight: 600; }
.int-espera .gpa-corte, .int-espera .gsvg-linha { stroke-dasharray: 1; stroke-dashoffset: 1; }
.int-espera .gpa-faixa, .int-espera .gsvg-faixa { opacity: 0; }
.int-entra .gpa-corte, .int-entra .gsvg-linha { stroke-dasharray: 1; animation: int-traco 1.1s cubic-bezier(.22,1,.36,1) both; }
.int-entra .gpa-faixa, .int-entra .gsvg-faixa { animation: int-surge .7s ease both; }
@keyframes int-traco { from { stroke-dashoffset: 1; } to { stroke-dashoffset: 0; } }
@keyframes int-surge { from { opacity: 0; } to { opacity: 1; } }
.int-tab td, .int-tab th { transition: background-color .12s ease, box-shadow .12s ease; }
.int-tab tbody tr.int-lin > *, .int-tab .int-col { box-shadow: inset 0 0 0 999px rgba(127, 127, 127, .12); }
.int-tab tbody tr.int-lin > .int-col { box-shadow: inset 0 0 0 999px rgba(127, 127, 127, .24); }
.int-tab tr.int-sua > * { font-weight: 700; box-shadow: inset 0 2px 0 var(--primary-color), inset 0 -2px 0 var(--primary-color); }
.int-tab td.int-sua-cel { outline: 2px solid var(--primary-color); outline-offset: -2px; }
tr.int-sua { scroll-margin-top: 6rem; }
.int-fig { scroll-margin-top: 5rem; }
.int-ir { display: flex; flex-wrap: wrap; gap: .5rem 1.25rem; margin: .75rem 0 0; font-weight: 600; }
.cdi-barra__preenchimento { transform-origin: left center; }
.cdi-barra { transition: background-color .12s ease; border-radius: 4px; }
.cdi-barra:hover { background: rgba(127, 127, 127, .1); }
@media (prefers-reduced-motion: reduce) {
    .int-voce-halo, .int-entra .gpa-corte, .int-entra .gsvg-linha, .int-entra .gpa-faixa, .int-entra .gsvg-faixa { animation: none; }
    .int-camada, .int-tab td, .int-tab th { transition: none; }
}
@media (max-width: 600px) {
    .int-caixa { position: static; max-width: none; margin-top: .4rem; box-shadow: none; }
    .int-caixa ul { grid-template-columns: 1fr 1fr; column-gap: .8rem; }
    .int-caixa li { grid-template-columns: .8rem 1fr; }
    .int-caixa b { grid-column: 2; text-align: left; }
    .int-caixa-voce { grid-column: 1 / -1; }
}
.int-aviso-linha { margin: .5rem 0; font-size: .9rem; font-weight: 600; }
