/* Arrastre · el color lo pone la imagen. Panel sobrio a la izquierda, lienzo a sangre. */
:root{
  --bg:var(--mx-fondo); --panel:var(--mx-fondo); --campo:var(--mx-sup); --campo2:var(--mx-sup-2); --linea:var(--mx-linea); --borde:var(--mx-linea-2);
  --tx:var(--mx-texto); --tx2:var(--mx-sec); --tx3:var(--mx-apagado); --acento:var(--mx-texto);
  --sans:var(--mx-sans);
  --mono:var(--mx-sans);
}
*{box-sizing:border-box}
html, body{margin:0;height:100%;background:var(--bg);color:var(--tx);font:13px/1.35 var(--sans);-webkit-font-smoothing:antialiased;overscroll-behavior:none}
body{display:flex;flex-direction:column;height:100dvh;overflow:hidden;-webkit-user-select:none;user-select:none}
button, input, select, label{font:inherit;color:inherit}
h1, h2, p{margin:0;padding:0}
:focus{outline:none}
:focus-visible{outline:2px solid var(--acento);outline-offset:1px}
[hidden]{display:none!important}
kbd{font:12px/1 var(--mono);opacity:.55;margin-left:6px}

#barra{flex:none;height:48px;display:flex;align-items:center;gap:16px;padding:0 12px 0 16px;border-bottom:1px solid var(--linea);background:var(--panel)}
#barra h1{;}
#ajustes{display:flex;gap:2px;flex:1;min-width:0;overflow-x:auto;scrollbar-width:none}
#ajustes::-webkit-scrollbar{display:none}
#ajustes button{background:none;border:0;padding:6px 10px;border-radius:var(--mx-r);color:var(--tx2);cursor:pointer;white-space:nowrap;transition:background .15s,color .15s}
#ajustes button:hover{color:var(--tx);background:var(--campo)}
#ajustes button[aria-pressed=true]{color:var(--tx);background:var(--campo2);font-weight:500}
.barra-der{display:flex;gap:6px;flex:none}
.barra-der button, .sal{height:32px;border:1px solid var(--borde);border-radius:var(--mx-r);background:none;padding:0 12px;cursor:pointer;font-weight:500;white-space:nowrap;transition:background .15s,color .15s}
.barra-der button:hover, .sal:hover{background:var(--campo2)}
.barra-der button:active, .sal:active{background:var(--borde)}
#comparar[aria-pressed=true]{background:var(--tx);color:var(--mx-fondo);border-color:var(--tx)}
#azar{background:var(--tx);color:var(--mx-fondo);border-color:var(--tx)}
#azar:hover{background:#fff}
.sal:disabled{opacity:.4;cursor:default}

#mesa{flex:1;min-height:0;display:grid;grid-template-columns:292px minmax(0,1fr)}
#sec-salida{position:sticky;bottom:0;background:var(--panel);border-top:1px solid var(--linea);border-bottom:0;z-index:2;padding-bottom:10px}
#panel{background:var(--panel);border-right:1px solid var(--linea);min-height:0;overflow-y:auto;scrollbar-width:thin;scrollbar-color:var(--borde) transparent}
.grupo{padding:12px 14px;border-bottom:1px solid var(--linea)}
.grupo h2{;;margin-bottom:8px}
.h2b{margin-top:12px}
.nota{color:var(--tx3);font-size:12px;margin-top:6px;line-height:1.35}

#cuadros{display:grid;grid-template-columns:repeat(4,1fr);gap:6px}
.cuadro{position:relative;aspect-ratio:1;border:0;border-radius:var(--mx-r);padding:0;background:#222 center/cover;cursor:pointer}
.cuadro[aria-pressed=true]{outline:2px solid var(--acento);outline-offset:1px}
.cuadro i{position:absolute;right:3px;top:3px;width:16px;height:16px;border-radius:var(--mx-r);background:rgba(13,14,16,.8);color:#fff;font:12px/16px var(--sans);text-align:center;opacity:0;transition:opacity .15s;font-style:normal}
.cuadro:hover i, .cuadro:focus-visible i{opacity:1}
.mas{aspect-ratio:1;border:1px dashed var(--borde);border-radius:var(--mx-r);background:none;cursor:pointer;color:var(--tx2);font-size:18px;display:flex;align-items:center;justify-content:center;transition:background .15s,color .15s}
.mas:hover{background:var(--campo);color:var(--tx)}
#muestras{display:grid;grid-template-columns:repeat(6,1fr);gap:4px}
#muestras button{aspect-ratio:1;padding:0;border:0;border-radius:var(--mx-r);background:#000 center/cover;cursor:pointer;opacity:.62;transition:opacity .15s}
#muestras button:hover{opacity:1}
#muestras button[aria-pressed=true]{opacity:1;outline:1.5px solid var(--tx);outline-offset:1px}

.mod{border-bottom:1px solid var(--linea)}
.mod>header{display:flex;align-items:center;gap:10px;padding:0 14px;height:38px;cursor:pointer}
.mod>header:hover{background:var(--campo)}
.mod>header b{flex:1;font-weight:500;font-size:13px}
.mod.apagado>header b{color:var(--tx2)}
.mod>header em{font:normal 12px var(--mono);color:var(--tx3)}
.chev{width:10px;height:10px;flex:none;fill:none;stroke:var(--tx3);stroke-width:1.4;transition:transform .2s}
.mod.abierto .chev{transform:rotate(90deg)}
.cuerpo{padding:2px 14px 12px}
.mod.apagado .cuerpo{opacity:.45}
.interr{flex:none;width:26px;height:16px;padding:0;border:0;border-radius:var(--mx-r);background:var(--borde);position:relative;cursor:pointer;transition:background .15s}
.interr::after{content:"";position:absolute;left:2px;top:2px;width:12px;height:12px;border-radius:50%;background:var(--tx);transition:transform .15s}
.interr[aria-checked=true]{background:var(--acento)}
.interr[aria-checked=true]::after{transform:translateX(10px);background:#0d0e10}
.sinint{width:26px;flex:none}

.ctl{display:grid;grid-template-columns:1fr auto;gap:1px 8px;margin-bottom:6px}
.ctl label{font-size:12.5px;color:var(--tx)}
.ctl output{font:12px/1.4 var(--mono);color:var(--tx2);text-align:right}
.ctl input[type=range]{grid-column:1/3}
.ctl.inactivo{opacity:.35}
.ctl.inactivo input{cursor:default}
.sel{display:grid;grid-template-columns:82px minmax(0,1fr);align-items:center;gap:8px;margin-bottom:8px}
.sel label{font-size:12.5px}
.chk{display:flex;gap:8px;align-items:center;font-size:12.5px;margin:2px 0 6px;cursor:pointer}
.chk input{accent-color:var(--acento);width:14px;height:14px;margin:0}

.seg{display:flex;gap:2px;padding:2px;border-radius:var(--mx-r);background:var(--campo)}
.seg button{flex:1;background:none;border:0;border-radius:var(--mx-r);height:24px;padding:0 6px;cursor:pointer;color:var(--tx2);font-size:12px;white-space:nowrap;transition:background .15s,color .15s}
.seg button:hover{color:var(--tx)}
.seg button[aria-pressed=true]{background:var(--campo2);color:var(--tx);font-weight:500}
select, input[type=number]{background:var(--campo);border:1px solid var(--borde);border-radius:var(--mx-r);height:28px;padding:0 8px;font-size:12.5px;min-width:0}
select{width:100%}
input[type=number]{font-family:var(--mono);-webkit-user-select:text;user-select:text}

.fila-sal{display:grid;grid-template-columns:1fr 84px;gap:6px;margin-bottom:6px}
.firma{display:block;margin-top:2px;font-size:12px;color:var(--tx3);text-decoration:none}
.firma:hover{color:var(--tx)}
#archivo{position:fixed;left:-9999px;width:1px;height:1px;opacity:0}

#escena{position:relative;min-width:0;min-height:0;display:flex;flex-direction:column;background:var(--bg)}
#area{flex:1;min-height:0;display:flex;align-items:center;justify-content:center;padding:12px}
#marco{position:relative;flex:none}
#lienzo{display:block;width:100%;height:100%;background:#000;touch-action:none;cursor:none}
#pincel{position:absolute;left:0;top:0;border:1px solid #fff;mix-blend-mode:difference;pointer-events:none;border-radius:50%;opacity:0;transition:opacity .12s}
#pincel.vivo{opacity:.9}
#pincel.baja{border-width:2px}
#transporte{flex:none;height:44px;display:flex;align-items:center;gap:12px;padding:0 12px;border-top:1px solid var(--linea);background:var(--panel)}
#play{flex:none;width:30px;height:30px;border:0;border-radius:var(--mx-r);background:var(--campo2);cursor:pointer;display:flex;align-items:center;justify-content:center}
#play:hover{background:var(--borde)}
#play svg{width:12px;height:12px;fill:var(--tx)}
#hud{flex:1;min-width:0;font:12px/1 var(--mono);color:var(--tx3);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.semilla{display:flex;align-items:center;gap:6px;color:var(--tx2);font-size:12px;flex:none}
.semilla input{width:74px;height:28px}
#aviso{position:absolute;left:50%;bottom:56px;transform:translateX(-50%);font-size:12.5px;color:var(--mx-fondo);background:var(--tx);padding:6px 10px;border-radius:var(--mx-r);opacity:0;transition:opacity .2s;pointer-events:none;z-index:6;white-space:nowrap}
#aviso.v{opacity:1}
#suelta{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;z-index:5;background:rgba(13,14,16,.84);font-size:14px}

#sin-webgl{position:fixed;inset:0;background:var(--bg);z-index:20;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:16px;padding:24px;text-align:center}
#sin-webgl p{max-width:420px;line-height:1.5}
#sin-webgl img{max-width:min(420px,90vw);max-height:50vh;border-radius:var(--mx-r)}

@media (max-width:820px){
  html, body{height:auto}
  body{overflow:auto;height:auto;min-height:100dvh}
  #barra{flex-wrap:wrap;height:auto;padding:8px 16px;gap:8px 12px}
  #ajustes{order:3;flex-basis:100%}
  .barra-der{margin-left:auto}
  #barra h1{}
  .barra-der button{padding:0 9px;font-size:12px}
  kbd{display:none}
  #mesa{display:flex;flex-direction:column;flex:none}
  #escena{order:1;flex:none}
  #area{height:min(58vh,calc(100vw + 40px));min-height:280px;padding:8px 16px}
  #panel{order:2;border-right:0;overflow:visible}
  #sec-salida{position:static}
  #transporte{flex-wrap:wrap;height:auto;padding:8px 16px;gap:8px}
  #hud{display:none}
  #formato{flex:1}
}
@media (prefers-reduced-motion:reduce){*{transition:none!important}}
