/* Visor 3D: camadas, vistas, circulação vertical, palco e rótulos */
.viewer{background:var(--sheet);border:1px solid var(--rule);display:grid;grid-template-columns:240px 1fr}
@media (max-width:860px){.viewer{grid-template-columns:1fr}}
.layers{grid-column:1/-1;display:grid;grid-template-columns:repeat(3,1fr);border-bottom:1px solid var(--rule)}
@media (max-width:640px){.layers{grid-template-columns:1fr}}
.layers button{all:unset;cursor:pointer;display:grid;grid-template-columns:auto 1fr;gap:10px;align-items:start;padding:12px 16px;border-right:1px solid var(--rule);border-top:3px solid transparent;font-size:15px;font-weight:600;line-height:1.25}
.layers button:last-child{border-right:0}
.layers button b{font-family:var(--mono);font-weight:500;font-size:13px;width:22px;height:22px;display:grid;place-items:center;border:1px solid var(--ink2);border-radius:50%}
.layers button small{display:block;font-weight:400;font-size:12.5px;color:var(--ink2);margin-top:2px}
.layers button[aria-pressed="true"]{background:var(--btn);border-top-color:var(--steel)}
.layers button[aria-pressed="true"] b{background:var(--steel);border-color:var(--steel);color:#fff}
.layers button:focus-visible{outline:2px solid var(--steel);outline-offset:-2px}
.variant{display:grid;gap:6px}
.variant .vlab{font-size:12px;letter-spacing:.1em;text-transform:uppercase;color:var(--ink2);font-weight:600}
.variant button{all:unset;cursor:pointer;padding:7px 10px;font-size:14px;border:1px solid var(--rule);background:var(--sheet)}
.variant button[aria-pressed="true"]{border-color:var(--steel);box-shadow:inset 3px 0 0 var(--steel);font-weight:600}
.variant button:focus-visible{outline:2px solid var(--steel);outline-offset:2px}
.panel{padding:16px;display:grid;gap:16px;align-content:start;border-right:1px solid var(--rule);min-width:0}
@media (max-width:860px){.panel{border-right:0;border-bottom:1px solid var(--rule)}}
.views{display:grid;gap:6px}
@media (max-width:860px){.views{grid-template-columns:repeat(auto-fill,minmax(150px,1fr))}}
.views button{all:unset;cursor:pointer;padding:7px 10px;background:var(--btn);font-size:14px;line-height:1.25;border-left:3px solid transparent}
.views button[aria-pressed="true"]{background:var(--btn-on);color:var(--btn-on-fg);border-left-color:var(--steel)}
.views button:focus-visible,.toggles input:focus-visible{outline:2px solid var(--steel);outline-offset:2px}
.toggles{display:grid;gap:8px;font-size:14px}
.toggles label{display:flex;gap:8px;align-items:center;cursor:pointer}
.toggles input{accent-color:var(--steel);width:16px;height:16px}
.hint{font-family:var(--mono);font-size:11.5px;color:var(--ink2);line-height:1.5}
.stage{position:relative;overflow:hidden;min-width:0;aspect-ratio:16/10;max-width:100%}
.stage canvas{width:100%;height:100%;display:block;touch-action:none;cursor:grab}
#labels{position:absolute;inset:0;pointer-events:none;font:600 12px var(--display)}
.lbl{position:absolute;transform:translate(-50%,-50%);color:#1d1d1b;background:rgba(255,255,255,.85);padding:1px 6px;white-space:nowrap}
.caption{position:absolute;left:12px;bottom:10px;font-family:var(--mono);font-size:12px;color:#1d1d1b;background:rgba(251,250,246,.88);padding:3px 8px}
