/* cockgit — observa-visor.css
   O VISOR de log e de rastro DENTRO do painel (07/10/2026) — app-observa-visor.js.

   Regras do dono que moram aqui:
     · tema de TERMINAL nos dois temas do painel: fundo escuro, monoespaçada, hora
       apagada, erro em vermelho, aviso em âmbar, ok em verde;
     · a barra de rolagem é permitida SÓ dentro do bloco do log, de altura fixa
       ("com barra de rolagem, pois é acessível"): a página continua sem rolagem — o
       visor é uma folha FIXA por cima, que nunca empurra nada;
     · nada pisca; alvo de toque de 44 px; cor só por token. */

  :root{--vz-bg:#121821;--vz-sf:#18202b;--vz-ink:#dce6f0;--vz-mut:#8fa0b3;--vz-bd:#5e6d82;
    --vz-red:#ef6a5a;--vz-amber:#cfa63c;--vz-green:#4bbf6b;--vz-blue:#63acee}

  .vz{position:fixed;z-index:60;left:50%;bottom:var(--pc-modal-baixo,16px);transform:translateX(-50%);
    width:min(52rem,calc(100vw - 32px));box-sizing:border-box;display:flex;flex-direction:column;gap:6px;
    max-height:var(--pc-modal-max,calc(100vh - 32px));overflow:hidden;
    padding:10px 12px;background:var(--vz-sf);color:var(--vz-ink);border:1px solid var(--vz-blue);
    font:var(--t-dat,13px)/1.45 var(--mono,ui-monospace,monospace);
    box-shadow:0 10px 32px color-mix(in oklab,var(--ink) 30%,transparent)}
  .vz.cheia{top:var(--pc-modal-cima,16px);bottom:var(--pc-modal-baixo,16px);width:calc(100vw - 32px)}
  /* o cabeçalho e o rodapé ficam; o bloco do log encolhe para caber (e rola por dentro) */
  .vz>*{flex:none}
  .vz>[class~="vz-bloco"]{flex:0 1 auto;min-height:0}
  .vz-cab{display:flex;justify-content:space-between;align-items:center;gap:8px;flex-wrap:wrap;min-width:0}
  .vz-cab>b{overflow-wrap:anywhere;min-width:0}
  .vz-abas{display:flex;gap:6px}
  .vz-bt{min-height:44px;padding:6px 12px;font:inherit;background:var(--vz-bg);color:var(--vz-ink);
    border:1px solid var(--vz-bd);border-radius:0;cursor:pointer}
  #vz .vz-bt::before,#vz .vz-bt::after{content:none}   /* o colchete do base.css não entra no visor */
  .vz-bt[aria-pressed="true"]{border-color:var(--vz-blue);color:var(--vz-blue)}
  .vz-bt:hover{border-color:var(--vz-blue)}
  .vz-bt:focus-visible,.vz-bloco:focus-visible{outline:2px solid var(--vz-blue);outline-offset:2px}
  /* o BLOCO: altura fixa, a única barra de rolagem do painel (decisão do dono) */
  .vz-bloco{display:block;height:min(46vh,24rem);overflow-y:auto;overflow-x:hidden;margin:0;padding:6px 8px;
    background:var(--vz-bg);border:1px solid var(--vz-bd);scrollbar-color:var(--vz-mut) var(--vz-bg)}
  .vz.cheia .vz-bloco{height:auto;flex:1 1 auto;min-height:0}
  .vz-l{display:block;white-space:pre-wrap;overflow-wrap:anywhere}
  .vz-h{color:var(--vz-mut);margin-right:8px}
  .vz-p{color:var(--vz-blue);margin-right:6px}
  .vz-l[data-n="erro"] .vz-t{color:var(--vz-red)}
  .vz-l[data-n="aviso"] .vz-t{color:var(--vz-amber)}
  .vz-l[data-n="ok"] .vz-t{color:var(--vz-green)}
  .vz-aviso{margin:0;color:var(--vz-mut)}
  .vz-aviso[data-n="erro"]{color:var(--vz-red)}
  .vz-tot{margin:0;color:var(--vz-ink)}
  .vz-rod{display:flex;justify-content:flex-end;gap:6px;flex-wrap:wrap}
  @media (max-width:599.98px){ .vz{bottom:var(--pc-modal-baixo,72px)} .vz-bloco{height:min(40vh,20rem)} }

  /* os PASSOS do deploy no item da Planta: chip ✓/✗/● + nome + % + tempo */
  .pv-ps{display:flex;flex-wrap:wrap;gap:2px 10px;flex-basis:100%;margin:2px 0 0;padding:0;list-style:none}
  .pv-ps>li{display:inline-flex;gap:4px;align-items:baseline;white-space:nowrap}
  .pv-ps>li[data-t="ok"]{color:var(--green)} .pv-ps>li[data-t="bad"]{color:var(--red)}
  .pv-ps>li[data-t="run"]{color:var(--blue)} .pv-ps>li[data-t="idle"]{color:var(--idle)}
  .pv-ps small{color:var(--mut)}
  #nv .pv-it-l .pv-vz{min-height:44px;padding:0 4px;background:none;border:0;color:var(--blue);
    font:inherit;text-decoration:underline;cursor:pointer;text-align:right}
  #nv .pv-it-l .pv-vz::before,#nv .pv-it-l .pv-vz::after{content:none}
  #nv .pv-it-l .pv-vz:focus-visible{outline:2px solid var(--blue);outline-offset:2px}
  @media (prefers-reduced-motion:reduce){ .vz *{transition:none !important} }
