/* Labs dos posts de PyTorch: em cima do .lab (lab.css). Painel escuro, destaque #A4B1E4, números em mono. */
.plab{--plab-ac:#A4B1E4;--plab-mut:rgba(250,249,245,.6);--plab-fio:rgba(250,249,245,.12);gap:16px;min-width:0}
.plab *{box-sizing:border-box}
.plab__ctrl{display:flex;flex-wrap:wrap;gap:12px 22px;align-items:flex-end}
.plab__campo{display:flex;flex-direction:column;gap:7px;min-width:0}
.plab__rot{font:500 11px/1 var(--font-mono);letter-spacing:.08em;text-transform:uppercase;color:var(--plab-mut)}
.plab__campo--range{display:grid;grid-template-columns:auto 1fr;grid-template-rows:auto auto;column-gap:10px;row-gap:7px;flex:1 1 180px;max-width:300px}
.plab__campo--range .plab__rot{grid-column:1/-1}
.plab__campo--range input{width:100%;min-width:0;margin:0;accent-color:var(--plab-ac);grid-column:2;grid-row:2;cursor:pointer}
.plab__val{grid-column:1;grid-row:2;min-width:3.4em;font:500 13px/1 var(--font-mono);color:#FAF9F5}
.plab .lab__seg{flex-wrap:wrap;border-radius:18px}
.plab button:focus-visible,.plab input:focus-visible{outline:2px solid var(--plab-ac);outline-offset:2px}
.plab__res{display:flex;flex-wrap:wrap;gap:10px}
.plab__num{display:flex;flex-direction:column;gap:6px;padding:12px 14px;background:rgba(250,249,245,.05);flex:1 1 130px;min-width:0}
.plab__num--larga{flex:2 1 260px}
.plab__num span{font:500 11px/1 var(--font-mono);letter-spacing:.08em;text-transform:uppercase;color:var(--plab-mut)}
.plab__num b{font:500 19px/1.2 var(--font-mono);color:#FAF9F5;overflow-wrap:anywhere}
.plab__num--larga b{color:var(--plab-ac)}
.plab__num i{font:400 12px/1.4 var(--font-sans);font-style:normal;color:rgba(250,249,245,.55)}
/* o tensor como linhas empilhadas */
.plab__tensor{padding:12px 0 0;border-top:1px solid var(--plab-fio)}
.plab__linhas{display:flex;flex-direction:column;gap:3px;min-height:10px}
.plab__linha{min-width:2px;background-color:rgba(164,177,228,.18);background-image:linear-gradient(90deg,var(--plab-ac) 0 1px,transparent 1px);background-repeat:repeat-x;transition:width .15s,height .15s}
.plab__linha--bfloat16{background-image:linear-gradient(90deg,rgba(164,177,228,.7) 0 1px,transparent 1px)}
.plab__linha--int16{background-color:rgba(250,249,245,.1);background-image:linear-gradient(90deg,rgba(250,249,245,.7) 0 1px,transparent 1px)}
.plab__eixo{display:flex;justify-content:space-between;margin-top:6px;font:400 11px/1 var(--font-mono);color:rgba(250,249,245,.45)}
/* atenção */
.plab--atencao{grid-template-columns:repeat(auto-fit,minmax(min(100%,300px),1fr));gap:22px}
.plab__parte{display:flex;flex-direction:column;gap:12px;min-width:0}
.plab__h{margin:0;font:500 11px/1 var(--font-mono);letter-spacing:.12em;text-transform:uppercase;color:var(--plab-ac)}
.plab__grade{display:grid;grid-template-columns:minmax(64px,auto) repeat(var(--n),minmax(0,1fr));gap:3px;align-items:stretch}
.plab__canto{font:400 10px/1.2 var(--font-mono);color:rgba(250,249,245,.4);align-self:end;padding-bottom:4px}
.plab__col{font:400 10.5px/1.1 var(--font-mono);color:var(--plab-mut);writing-mode:vertical-rl;transform:rotate(180deg);justify-self:center;padding:2px 0 4px;max-height:84px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.plab__lin{border:0;background:none;padding:0 8px 0 0;text-align:right;font:400 12px/1 var(--font-mono);color:var(--plab-mut);cursor:pointer;white-space:nowrap;min-height:28px}
.plab__lin.is-on{color:#FAF9F5}
.plab__cel{aspect-ratio:1;min-height:20px;background:rgba(250,249,245,.04);position:relative}
.plab__cel:not(.plab__cel--ok)::after{content:"";position:absolute;inset:30%;background:linear-gradient(45deg,transparent 45%,rgba(250,249,245,.18) 45% 55%,transparent 55%),linear-gradient(-45deg,transparent 45%,rgba(250,249,245,.18) 45% 55%,transparent 55%)}
.plab__cel--ok{background:rgba(164,177,228,.16)}
.plab__cel.is-lin{background:rgba(250,249,245,.08)}
.plab__cel.is-vis{background:var(--plab-ac)}
.plab__msg{margin:0;min-height:1.5em;font:400 13px/1.5 var(--font-mono);color:#FAF9F5}
.plab__prefixo{margin:0;font:400 15px/1.4 var(--font-sans);color:#FAF9F5}
.plab__prefixo span:first-child{font:500 11px/1 var(--font-mono);letter-spacing:.08em;text-transform:uppercase;color:var(--plab-mut);margin-right:6px}
.plab__cursor{color:var(--plab-ac);font-weight:500}
.plab__barras{display:flex;flex-direction:column;gap:5px}
.plab__barra,.plab__comp{display:grid;grid-template-columns:minmax(70px,92px) 1fr 58px;gap:10px;align-items:center}
.plab__tok,.plab__comp-n{font:400 12.5px/1 var(--font-mono);color:#FAF9F5;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.plab__trilho{display:block;height:12px;background:rgba(250,249,245,.06);overflow:hidden}
.plab__enche{display:block;height:100%;width:0;background:var(--plab-ac);transition:width .2s}
.plab__pct{font:400 12px/1 var(--font-mono);color:var(--plab-mut);text-align:right}
.plab__barra.is-fora .plab__tok{color:rgba(250,249,245,.35);text-decoration:line-through}
.plab__barra.is-ult .plab__tok{color:var(--plab-ac)}
.plab__barra.is-ult .plab__trilho{outline:1px solid #FAF9F5;outline-offset:1px}
.plab__hist{margin:0;font:400 12.5px/1.5 var(--font-mono);color:#FAF9F5;overflow-wrap:anywhere}
.plab__hist span:first-child{color:var(--plab-mut)}
/* baixo rank */
.plab__fig{width:100%;max-width:560px}
.plab__svg{display:block;width:100%;height:auto}
.plab__w{fill:rgba(250,249,245,.08);stroke:rgba(250,249,245,.35);stroke-width:1}
.plab__ab{fill:var(--plab-ac)}
.plab__st{font:400 11px var(--font-mono);fill:rgba(250,249,245,.8)}
.plab__st--mut{fill:rgba(250,249,245,.45)}
.plab__st--ac{fill:var(--plab-ac)}
.plab__sl{font:500 26px var(--font-mono);text-anchor:middle;fill:rgba(250,249,245,.55)}
.plab__op{font:400 22px var(--font-mono);fill:#FAF9F5}
.plab__formula{margin:0;font:400 13px/1.5 var(--font-sans);color:rgba(250,249,245,.7)}
.plab__formula b{display:block;margin-bottom:4px;font:500 16px/1.3 var(--font-mono);color:#FAF9F5}
.plab__res--lr{flex-direction:column;gap:7px}
.plab__comp{grid-template-columns:minmax(96px,150px) 1fr minmax(76px,auto)}
.plab__comp b{font:500 12.5px/1 var(--font-mono);color:#FAF9F5;text-align:right}
.plab__enche--full{background:rgba(250,249,245,.35)}
.plab__pctl{margin:4px 0 0;font:400 13px/1.5 var(--font-sans);color:var(--plab-mut)}
.plab__pctl b{font:500 15px var(--font-mono);color:var(--plab-ac)}
.plab__pctl i{display:block;font:400 12px var(--font-mono);font-style:normal;color:rgba(250,249,245,.45)}
@media (max-width:480px){
  .plab{padding:16px 14px 14px}
  .plab__ctrl{gap:12px}
  .plab__campo--range{max-width:none;flex-basis:100%}
  .plab__num b{font-size:17px}
  .plab__barra{grid-template-columns:76px 1fr 50px;gap:8px}
  .plab__comp{grid-template-columns:88px 1fr auto;gap:8px}
  .plab__grade{grid-template-columns:minmax(54px,auto) repeat(var(--n),minmax(0,1fr))}
}
@media (prefers-reduced-motion:reduce){.plab__linha,.plab__enche{transition:none}}
