/* v3.66.0: layout do Estúdio para TODAS as ferramentas (pedido do Leandro, 07/11/2026): o mesmo do Divisor e da Placa.
   Copiado do Divisor (ferramentas/divisor-pecas.src.html). Usado por kit/estudio.js, servido em /menu/estudio.css. */
/* v3.59.3: tela cheia (sem o menu lateral) e, em tela larga, as opções em duas colunas */
@media(min-width:1024px){html body.pe-full:not(#z1):not(#z2):not(#z3):not(#z4):not(#z5),html body.pe-full.c3m-mini:not(#z1):not(#z2):not(#z3):not(#z4):not(#z5){padding-left:0!important}html body.pe-full:not(#z1) .c3m{display:none!important}}
body.pe-full main.wrap{max-width:none;padding-left:20px;padding-right:20px}
/* v3.73.2 (Leandro, 07/11/2026): TODA ferramenta abre sempre em tela cheia, focada no projeto; só o topo do Estúdio fica.
   Sem botão "Mostrar o menu" (antes uma ferramenta podia ficar com o menu lateral porque ele tinha clicado nele uma vez). */
@media(min-width:1024px){html body.ps:not(#z1):not(#z2):not(#z3):not(#z4):not(#z5),html body.ps.c3m-mini:not(#z1):not(#z2):not(#z3):not(#z4):not(#z5){padding-left:0!important}html body.ps:not(#z1) .c3m{display:none!important}}
body.ps main.wrap{max-width:none;padding-left:20px;padding-right:20px}
body.ps #full,body.ps .ps-lnk.ps-full{display:none!important}
/* ===== v3.59.8: Estúdio de placas (layout do Leandro: 3 colunas, etapas 01–10 recolhíveis, tema claro) ===== */
body.ps{--bg:#eef0fa;--text:#1d1b3a;--soft:#4a4868;--dim:#77759a;--line:#e4e2f3;--line2:#d9d5ef;--cyan:#0e7490;--pink:#a21caf;--mint:#047857;--amber:#b45309;--red:#be123c;--pur:#5b46d6;--pur2:#6d5cff;
  background:#eef0fa linear-gradient(180deg,#f4f4fc,#eceefa);color:var(--text);font-size:14px;overflow:hidden;height:100vh}
body.ps>.top,body.ps .backlink{display:none!important}
.ps-top{position:sticky;top:0;z-index:25;display:flex;align-items:center;gap:14px;height:60px;padding:0 22px;background:rgba(250,250,255,.94);border-bottom:1px solid var(--line);backdrop-filter:blur(8px)}
.ps-brand{display:flex;align-items:center;gap:10px;font-size:19px;font-weight:800;color:#1d1b3a}
.ps-brand img{width:38px;height:38px;object-fit:contain}
.ps-sep{width:1px;height:24px;background:var(--line2)}
.ps-name{font-size:15px;font-weight:500;color:var(--soft)}
.ps-grow{flex:1}
.ps-lnk{border:0;background:none;padding:6px 8px;font-size:13px;font-weight:600;color:var(--dim)}
.ps-lnk:hover{color:var(--pur)}
.ps-pill{display:inline-flex;align-items:center;gap:7px;padding:6px 14px;border-radius:999px;background:#e6f7fb;border:1px solid #a5e3ef;color:#0e6378;font-size:13px;font-weight:700;white-space:nowrap}
.ps-pill i{width:7px;height:7px;border-radius:50%;background:#0ea5b7}
.ps-pill.ok{background:#e7f8ef;border-color:#a7e3c3;color:#05603f}.ps-pill.ok i{background:#10b981}
.ps-pill.warn{background:#fff6e5;border-color:#f6d38d;color:#8a4b06;cursor:pointer}.ps-pill.warn i{background:#f59e0b}
.ps-pill.bad{background:#fdecef;border-color:#f5b5c2;color:#9f1239}.ps-pill.bad i{background:#e11d48}
/* área: 3 colunas que cabem na tela; cada lateral rola sozinha */
.ps-app{display:grid;grid-template-columns:minmax(330px,430px) minmax(0,1fr) minmax(330px,430px);gap:18px;padding:14px 18px;height:calc(100vh - 60px - 62px)}
.ps-col{min-height:0;overflow-y:auto;overflow-x:hidden;display:flex;flex-direction:column;gap:8px;padding:2px 4px 14px 2px;scrollbar-width:thin;scrollbar-color:#cfc9ef transparent}
.ps-grp{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:12px 14px;border-radius:12px;border:1px solid #cdbff5;background:linear-gradient(90deg,#e6ddfc,#efe9fd);flex:0 0 auto}
.ps-grp b{font-size:15px;font-weight:700;color:#2b2364}
.ps-grp span{font-size:11px;font-weight:800;letter-spacing:.5px;padding:3px 10px;border-radius:999px;background:#fff;color:#2b2364}
.ps-grp.g2{border-color:#c9d6f5;background:linear-gradient(90deg,#e4ebfd,#eef3fe)}
.ps-grp.g3{border-color:#e9c4f0;background:linear-gradient(90deg,#f3defa,#f8ecfc);margin-top:8px}
.et{flex:0 0 auto;padding:0;background:#fff;border:1px solid var(--line2);border-radius:12px;box-shadow:0 1px 2px rgba(40,30,110,.04);transition:border-color .15s,box-shadow .15s}
.et.open{border-color:#c4b5fd;box-shadow:0 0 0 1px #e9d5ff inset,0 4px 14px rgba(91,70,214,.07)}
.et-h{display:grid;grid-template-columns:36px minmax(0,1fr) 20px;align-items:center;gap:12px;width:100%;padding:11px 14px;border:0;background:none;text-align:left;color:inherit;border-radius:12px}
.et.open .et-h{border-bottom:1px solid var(--line);border-radius:12px 12px 0 0;background:linear-gradient(#fbfaff,#fff)}
.et-i{width:36px;height:36px;display:grid;place-items:center;border-radius:10px;background:#f4f2fe;color:var(--pur)}
.et[data-et="6"] .et-i,.et[data-et="7"] .et-i,.et[data-et="8"] .et-i{color:#4f46e5;background:#eef1fe}
.et[data-et="9"] .et-i,.et[data-et="10"] .et-i{color:#a21caf;background:#fbf0fd}
.et-i svg{width:19px;height:19px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
.et-t{display:grid;min-width:0}
.et-t small{font-size:10px;font-weight:800;letter-spacing:1.3px;text-transform:uppercase;color:var(--pur)}
.et[data-et="9"] .et-t small,.et[data-et="10"] .et-t small{color:#a21caf}
.et-t b{font-size:14.5px;font-weight:700;color:#1d1b3a;line-height:1.25}
.et-t em{font-style:normal;font-size:12px;color:var(--dim);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.et-pm{position:relative;width:14px;height:14px;justify-self:end}
.et-pm:before,.et-pm:after{content:"";position:absolute;left:1px;right:1px;top:6px;height:2px;border-radius:2px;background:var(--pur)}
.et-pm:after{transform:rotate(90deg);transition:transform .2s}
.et.open .et-pm:after{transform:rotate(0)}
.et[data-et="9"] .et-pm:before,.et[data-et="9"] .et-pm:after,.et[data-et="10"] .et-pm:before,.et[data-et="10"] .et-pm:after{background:#c026d3}
.et-b{padding:12px 16px 16px}
.et:not(.open) .et-b{display:none}
.ps-sub{margin:16px 0 0;padding-top:12px;border-top:1px solid var(--line);font-size:10.5px;font-weight:800;letter-spacing:1.2px;text-transform:uppercase;color:var(--pur)}
.ps-tag{font-size:11px;font-weight:700;color:var(--pur);background:#f1edfe;border-radius:999px;padding:1px 8px}
/* controles no tema claro, compactos */
body.ps .ctl{margin-top:10px;gap:5px}
body.ps .ctl>label,body.ps .ctl>.lab{font-size:12.5px;font-weight:700;color:#2a2850}
body.ps .ctl>label small,body.ps .ctl>.lab small{font-weight:500;color:var(--dim)}
body.ps .ctl output{color:#2a2850}
body.ps .ctl input[type=text],body.ps .ctl select,body.ps .ctl textarea{min-height:36px;padding:6px 11px;border-radius:9px;border:1px solid var(--line2);background:#fafaff;font-size:14px;color:#1d1b3a}
body.ps .ctl input:focus,body.ps .ctl select:focus,body.ps .ctl textarea:focus{outline:none;border-color:#a78bfa;box-shadow:0 0 0 3px rgba(139,92,246,.14);background:#fff}
body.ps .ctl input[type=range]{accent-color:var(--pur);height:24px}
body.ps .duo{gap:10px}
body.ps .note{font-size:12px;color:var(--dim)}
body.ps .note b{color:#3b3864}
body.ps .pills{gap:6px}
body.ps .pills button{background:#fafaff;border:1px solid var(--line2);color:#4a4868;font-size:13px;padding:7px 8px;border-radius:9px}
body.ps .pills button:hover{border-color:#c4b5fd}
body.ps .pills button.on{background:#f1edfe;border-color:#8b5cf6;color:#3b2a9e}
body.ps .check{margin-top:10px;font-size:13.5px;color:#2a2850}
body.ps .check input{accent-color:var(--pur)}
body.ps .check small{font-size:12px;color:var(--dim)}
body.ps .btn{min-height:38px;border-radius:10px;font-size:14px}
body.ps .btn.s{min-height:34px;padding:5px 12px;font-size:13px}
body.ps .btn.p{background:linear-gradient(90deg,#5b46e6,#6d5cff);color:#fff;box-shadow:0 4px 12px rgba(91,70,230,.25)}
body.ps .btn.c{background:linear-gradient(90deg,#3fd2ff,#6d5cff 55%,#e33cf0);color:#fff}
body.ps .btn.oc,body.ps .btn.o{background:#fff;border-color:var(--line2);color:#2a2850;font-weight:600}
body.ps .btn.oc:hover,body.ps .btn.o:hover{border-color:#8b5cf6;color:#3b2a9e;filter:none}
body.ps .kv{gap:6px;margin-top:12px}
body.ps .kv div{background:#fafaff;border-color:var(--line);padding:8px 10px;border-radius:10px}
body.ps .kv b{font-size:14px;color:#1d1b3a}
body.ps .kv span{font-size:11.5px}
body.ps .fils{font-size:12.5px;color:#4a4868}
body.ps .fils i{border-color:rgba(0,0,0,.2)}
body.ps .warns div{background:#fff7e6;border-color:#f6d38d;color:#7c4a03;font-size:12.5px;padding:8px 10px;border-radius:10px}
body.ps .tips{font-size:12.5px;color:#4a4868;margin-top:6px}
body.ps .err{background:#fdecef;border-color:#f5b5c2;color:#9f1239;font-size:13px}
/* ícones do NFC */
/* meio: prévia */
.ps-mid{min-height:0;display:flex}
.ps-stagebox{flex:1;min-width:0;display:grid;grid-template-rows:auto minmax(0,1fr) auto;background:#fff;border:1px solid var(--line2);border-radius:14px;overflow:hidden;box-shadow:0 1px 3px rgba(40,30,110,.05)}
.ps-sh{display:flex;align-items:center;gap:12px;padding:12px 16px;border-bottom:1px solid var(--line)}
.ps-sh>div:first-child{flex:1;display:grid}
.ps-sh small{font-size:10px;font-weight:800;letter-spacing:1.6px;text-transform:uppercase;color:var(--pur)}
.ps-sh b{font-size:17px;font-weight:700;color:#1d1b3a}
body.ps .ps-sh .seg{background:#f3f2fa;border:1px solid var(--line);border-radius:999px;padding:3px;backdrop-filter:none}
body.ps .ps-sh .seg button{border-radius:999px;font-size:13px;padding:6px 12px;color:#4a4868}
body.ps .ps-sh .seg button.on{background:#fff;color:#3b2a9e;box-shadow:0 0 0 1px #c4b5fd,0 1px 3px rgba(91,70,214,.15)}
body.ps .ps-sh .ico{margin-left:0;width:34px;height:34px;border-radius:999px;background:#fff;border-color:var(--line2);color:#4a4868;font-size:16px}
body.ps .ps-sh .ico:hover{color:var(--pur);border-color:#8b5cf6}
body.ps .stage{order:0;height:auto;min-height:0;border-radius:0;background:#f3f3fb radial-gradient(#cfcde4 1px,transparent 1.2px) 0 0/18px 18px}
body.ps .stage .bar{top:auto;bottom:12px;left:12px;right:12px;justify-content:center}
body.ps .legend2{background:rgba(255,255,255,.9);border-color:var(--line2);color:#4a4868;font-size:12px}
body.ps .legend2 i{border-color:rgba(0,0,0,.2)}
body.ps .busy{background:rgba(243,243,251,.86)}
body.ps .busy strong{color:#2a2850}
body.ps .track{background:#e3e0f5}
body.ps .stage .msg p{color:var(--dim)}
.ps-cap{padding:9px 14px;border-top:1px solid var(--line);text-align:center;font-size:12.5px;color:#4a4868;background:#fcfcff}
/* rodapé fixo */
.ps-foot{position:fixed;left:0;right:0;bottom:0;z-index:24;height:62px;display:flex;align-items:center;gap:16px;padding:0 18px;background:rgba(250,250,255,.96);border-top:1px solid var(--line);backdrop-filter:blur(8px)}
.ps-all{border:1px solid #c4b5fd;background:#fff;color:#3b2a9e;font-weight:600;font-size:13px;padding:8px 14px;border-radius:999px}
.ps-all:hover{background:#f6f3ff}
.ps-fmid{flex:1;min-width:0;display:flex;justify-content:center;align-items:center;gap:6px 14px;flex-wrap:wrap;font-size:12.5px;color:#4a4868}
.ps-fmid span{display:inline-flex;align-items:center;gap:5px;white-space:nowrap}
.ps-fmid i{width:11px;height:11px;border-radius:50%;border:1px solid rgba(0,0,0,.2)}
.ps-fmid button{border:0;background:#fff6e5;color:#8a4b06;font-weight:700;font-size:12px;padding:3px 10px;border-radius:999px}
body.ps .ps-go{min-height:42px;padding:8px 18px}
.ps-tail{display:none}
@media(max-width:1100px){
  body.ps{overflow:auto;height:auto}
  .ps-app{grid-template-columns:minmax(0,1fr);height:auto;padding:12px 12px 80px}
  .ps-mid{order:-1;height:62vh;min-height:360px}
  .ps-col{overflow:visible;padding:0}
  .ps-tail{display:block;padding:0 12px 90px}
  .ps-name{display:none}
  .ps-lnk{display:none}
  .ps-sh{padding:10px 12px;gap:8px}
  .ps-sh>div:first-child small{display:none}
}
@media(max-width:560px){
  .ps-top{padding:0 12px;gap:10px}
  .ps-foot{gap:8px;padding:0 10px}
  .ps-fmid{display:none}
  .ps-brand b,.ps-sep{display:none}
  body.ps .ps-sh .seg button{padding:6px 9px;font-size:12px}
  body.ps .ps-go{padding:6px 12px;font-size:13px;margin-left:auto}
  .ps-all{font-size:12px;padding:7px 10px}
}
/* holograma: o palco escurece com grade e brilho enquanto a máquina trabalha */
/* (classes com "preview" ficam fora da troca automática de cores do tema claro: o holograma é escuro de propósito) */
.preview-holo{position:absolute;inset:0;pointer-events:none;opacity:0;transition:opacity .6s ease;background:radial-gradient(70% 60% at 50% 45%,rgba(56,189,248,.16),transparent 70%),linear-gradient(rgba(103,232,249,.07) 1px,transparent 1px) 0 0/28px 28px,linear-gradient(90deg,rgba(103,232,249,.07) 1px,transparent 1px) 0 0/28px 28px,radial-gradient(120% 100% at 50% 40%,#141038,#05040f 75%)}
.preview-holo i{position:absolute;inset:0;background:linear-gradient(transparent 0 46%,rgba(103,232,249,.10) 50%,transparent 54%) 0 0/100% 200%}
.stage.holo .preview-holo{opacity:1}
.stage.holo .preview-holo i{animation:holoscan 2.6s linear infinite}
@keyframes holoscan{from{background-position:0 100%}to{background-position:0 -100%}}
body.ps .stage.holo .legend,body.ps .stage.holo .tools,body.ps .stage.holo .explode{opacity:0;pointer-events:none}
.preview-hud{position:absolute;left:50%;top:16px;z-index:3;transform:translateX(-50%) translateY(-8px);width:min(340px,calc(100% - 32px));padding:10px 14px 11px;border-radius:12px;background:rgba(8,10,30,.62);border:1px solid rgba(103,232,249,.35);box-shadow:0 0 24px rgba(34,211,238,.18),inset 0 0 18px rgba(34,211,238,.08);color:#cffafe;font-size:11px;font-weight:700;letter-spacing:1.6px;text-transform:uppercase;opacity:0;transition:opacity .4s,transform .4s;pointer-events:none;backdrop-filter:blur(4px)}
.preview-hud.on{opacity:1;transform:translateX(-50%)}
.preview-hud div{display:flex;justify-content:space-between;gap:10px}
.preview-hud em{font-style:normal;color:#67e8f9;font-variant-numeric:tabular-nums}
.preview-hud .tr{margin-top:7px;height:4px;border-radius:9px;background:rgba(103,232,249,.15);overflow:hidden}
.preview-hud .tr span{display:block;height:100%;transform-origin:left;transform:scaleX(.02);background:linear-gradient(90deg,#3fd2ff,#6d5cff,#e33cf0);box-shadow:0 0 10px #3fd2ff;transition:transform .3s}
.preview-hud small{display:block;margin-top:6px;font-size:10px;letter-spacing:1.2px;color:#7dd3fc;opacity:.85}
@media(prefers-reduced-motion:reduce){.stage.holo .preview-holo i{animation:none}}
/* ===== v3.66.0: adaptações das ferramentas antigas dentro do Estúdio ===== */
body.ps main.wrap{display:none!important}
.pills.g2,.pills.g3,.pills.g4{display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}
.et{scroll-margin-top:72px}
.et[hidden]{display:none!important}
.et.off .et-h{opacity:.55}
html body.ps .ps-col .et-b>.box:not(#z1):not(#z2):not(#z3){padding:0!important;margin:0!important;background:none!important;border:0!important;box-shadow:none!important;border-radius:0!important;backdrop-filter:none!important}
.et-b>.box>h3:first-child{display:none}
.et-b>.box.off{opacity:.55}
body.ps .ps-stagebox .stage{height:auto!important;min-height:0!important;border-radius:0;box-shadow:none;border:0}
.et-n{width:36px;height:36px;display:grid;place-items:center;border-radius:10px;background:#f4f2fe;color:var(--pur);font-weight:800;font-size:15px}
.ps-col .ps-grp.g2+.et .et-n,.ps-col#col-r .et-n{background:#eef1fe;color:#4f46e5}
.et.res .et-n{background:#e6f7fb;color:#0e7490}.et.res .et-t small{color:#0e7490}.et.res .et-pm:before,.et.res .et-pm:after{background:#0e7490}
.ps-modo{display:inline-flex;gap:3px;padding:3px;border-radius:999px;background:#f3f2fa;border:1px solid var(--line)}
.ps-modo a{padding:6px 12px;border-radius:999px;font-size:13px;font-weight:600;color:#4a4868;text-decoration:none;white-space:nowrap}
.ps-modo a.on{background:#fff;color:#3b2a9e;box-shadow:0 0 0 1px #c4b5fd,0 1px 3px rgba(91,70,214,.15)}
.ps-modo a:hover{color:#3b2a9e}
.stage.holo .busy{opacity:0!important;pointer-events:none}
/* matéria aparecendo depois do holograma (de baixo para cima, com a borda acesa) */
.stage.materia canvas{animation:materia 1s cubic-bezier(.2,.7,.2,1) both}
@keyframes materia{from{clip-path:inset(100% 0 0 0);filter:drop-shadow(0 -2px 8px #3fd2ff) brightness(1.6)}70%{filter:drop-shadow(0 -2px 8px #6d5cff) brightness(1.15)}to{clip-path:inset(0 0 0 0);filter:none}}
@media(prefers-reduced-motion:reduce){.stage.materia canvas{animation:none}}
@media(max-width:1100px){.ps-modo a{padding:5px 9px;font-size:12px}}
@media(max-width:560px){.ps-top .ps-modo{order:9;flex:1;justify-content:center}.ps-top{flex-wrap:wrap;height:auto;padding:8px 12px}}
/* holograma das ferramentas antigas: véu escuro transparente por cima da prévia, a peça brilha em ciano por baixo */
html body.ps .stage>.preview-holo{z-index:3;background:linear-gradient(rgba(103,232,249,.09) 1px,transparent 1px) 0 0/28px 28px,linear-gradient(90deg,rgba(103,232,249,.09) 1px,transparent 1px) 0 0/28px 28px,radial-gradient(120% 100% at 50% 40%,rgba(20,16,56,.72),rgba(5,4,15,.9) 75%)}
html body.ps .stage>.preview-hud{z-index:5}
.stage.holo canvas{filter:sepia(1) hue-rotate(150deg) saturate(3) brightness(1.15) drop-shadow(0 0 6px rgba(34,211,238,.8))}
.stage.holo .drop{opacity:0;transition:opacity .3s}
.ps-sh>.bar{position:static!important;display:flex;align-items:center;gap:8px;inset:auto;pointer-events:auto}
.ps-sh>.bar[hidden]{display:none}
.ps-sh>.bar .hint{display:none}
body.ps .ps-sh .seg{display:inline-flex}
body.ps .ps-sh .seg button{white-space:nowrap}
@media(max-width:560px){.ps-sh{flex-wrap:wrap}}
/* v3.76.0: caixa "Cliente e projeto" (projetos salvos) em todas as ferramentas */
.c3p .ctl{margin-top:10px}
.c3p .ctl:first-child{margin-top:0}
.c3p-acts{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-top:10px}
.c3p-acts .btn{width:100%;justify-content:center;padding-left:6px;padding-right:6px}
.c3p .note{margin:8px 0 0;font-size:12px;line-height:1.4}

/* v3.91.0: botão "Sair" no topo de todas as ferramentas (e na Árvore). Sempre à vista, inclusive no celular. */
.ps-sair{display:inline-flex;align-items:center;gap:7px;flex:none;height:36px;padding:0 14px 0 12px;border-radius:10px;border:1px solid #d9d4f5;background:#fff;color:#3b2f8f;font-size:13.5px;font-weight:800;text-decoration:none;white-space:nowrap;cursor:pointer;transition:background .15s,border-color .15s,color .15s}
.ps-sair:hover{background:#f3f0ff;border-color:#b9aef0;color:#5b3fd6}
.ps-sair:focus-visible{outline:2px solid #6d5cff;outline-offset:2px}
.ps-sair svg{flex:none}
@media(max-width:560px){.ps-top .ps-sair{height:34px;padding:0 11px 0 10px;margin-left:auto}}
