/* Pixambas v57 — mirror pointer isolation */
/* Pixambas — Calm Studio UI
   Visual-only system: preserves existing DOM, tools and editor geometry. */
:root{
  --ui-bg:#f3f1ed;
  --ui-surface:#ffffff;
  --ui-surface-2:#f8f7f4;
  --ui-surface-3:#efeee9;
  --ui-border:#dedbd4;
  --ui-border-strong:#cbc6bc;
  --ui-text:#25262a;
  --ui-muted:#77746d;
  --ui-accent:#7b6fe8;
  --ui-accent-strong:#675bd6;
  --ui-accent-soft:rgba(123,111,232,.12);
  --ui-sage:#7eaa93;
  --ui-warm:#d99a7d;
  --ui-danger:#d97d7d;
  --ui-shadow:0 18px 50px rgba(48,49,55,.08),0 3px 12px rgba(48,49,55,.05);
  --ui-shadow-sm:0 8px 24px rgba(48,49,55,.06);
  --ui-radius:18px;
  --ui-radius-sm:12px;
  --ui-font:ui-sans-serif,system-ui,-apple-system,"Segoe UI",sans-serif;
  --ui-display:ui-sans-serif,system-ui,-apple-system,"Segoe UI",sans-serif;
  --ui-mono:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;
  --ui-safe-top:env(safe-area-inset-top,0px);
  --ui-safe-bottom:env(safe-area-inset-bottom,0px);
  --tools-w:280px;
  --side-w:300px;
  --bg:var(--ui-bg);
  --panel:var(--ui-surface);
  --ink:var(--ui-text);
  --mute:var(--ui-muted);
  --line:var(--ui-border);
  --acc:var(--ui-accent);
  --accink:#fff;
  --gold:#b28a37;
  --mint:#4e9b79;
  --cell:#e6e4df;
  --cell2:#f8f7f4;
  --px:var(--ui-display);
  color-scheme:light;
}

:root[data-theme="dark"]{
  --ui-bg:#15171b;
  --ui-surface:#1b1e23;
  --ui-surface-2:#20242a;
  --ui-surface-3:#272b32;
  --ui-border:#30353d;
  --ui-border-strong:#414750;
  --ui-text:#f2f0eb;
  --ui-muted:#9b9a95;
  --ui-accent:#9688f0;
  --ui-accent-strong:#8577e1;
  --ui-accent-soft:rgba(150,136,240,.16);
  --ui-sage:#8ab39b;
  --ui-warm:#e0a487;
  --ui-danger:#e28e8e;
  --ui-shadow:0 20px 60px rgba(0,0,0,.26),0 4px 16px rgba(0,0,0,.18);
  --ui-shadow-sm:0 10px 28px rgba(0,0,0,.20);
  --bg:var(--ui-bg);
  --panel:var(--ui-surface);
  --ink:var(--ui-text);
  --mute:var(--ui-muted);
  --line:var(--ui-border);
  --acc:var(--ui-accent);
  --gold:#d1ae64;
  --mint:#77bd9f;
  --cell:#30343a;
  --cell2:#24282d;
  color-scheme:dark;
}

*,*::before,*::after{box-sizing:border-box}
html{min-height:100%;scroll-behavior:smooth;scroll-padding-top:var(--ui-safe-top)}
body{margin:0;min-height:100%;font-family:var(--ui-font);background:
  radial-gradient(circle at 12% 0%,rgba(123,111,232,.10),transparent 28%),
  radial-gradient(circle at 100% 100%,rgba(126,170,147,.08),transparent 26%),
  var(--ui-bg);color:var(--ui-text);-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}

::selection{background:var(--ui-accent);color:#fff}
::-webkit-scrollbar{width:10px;height:10px}
::-webkit-scrollbar-thumb{background:color-mix(in srgb,var(--ui-muted) 28%,transparent);border:2px solid transparent;background-clip:padding-box;border-radius:999px}
::-webkit-scrollbar-track{background:transparent}

button,input,select,textarea{font:inherit;color:inherit}
button,.btn{appearance:none;border:1px solid var(--ui-border);background:var(--ui-surface);color:var(--ui-text);border-radius:var(--ui-radius-sm);padding:8px 12px;cursor:pointer;text-decoration:none;display:inline-flex;align-items:center;justify-content:center;gap:7px;line-height:1.1;box-shadow:0 1px 0 rgba(255,255,255,.45) inset,0 1px 2px rgba(0,0,0,.03);transition:background .16s ease,border-color .16s ease,box-shadow .16s ease,transform .12s ease,color .16s ease}
button:hover,.btn:hover{background:var(--ui-surface-2);border-color:var(--ui-border-strong);box-shadow:var(--ui-shadow-sm);transform:translateY(-1px)}
button:active,.btn:active{transform:translateY(0);box-shadow:none}
button.on{background:var(--ui-accent);border-color:var(--ui-accent);color:#fff;box-shadow:0 8px 20px rgba(123,111,232,.22)}
button:disabled{opacity:.45;cursor:not-allowed;transform:none;box-shadow:none}
button:focus-visible,.btn:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,summary:focus-visible{outline:2px solid color-mix(in srgb,var(--ui-accent) 72%,white);outline-offset:2px}
input[type=text],input[type=search],input[type=number],select,textarea{background:var(--ui-surface-2);border:1px solid var(--ui-border);border-radius:var(--ui-radius-sm);padding:8px 10px;min-height:36px}
input::placeholder,textarea::placeholder{color:var(--ui-muted)}
input[type=range]{accent-color:var(--ui-accent)}
input[type=checkbox]{accent-color:var(--ui-accent)}

/* ===== Pixambas Studio — editor shell ===== */
#app{height:100dvh;min-height:100%;display:grid;grid-template-rows:auto auto auto minmax(0,1fr);gap:10px;padding:12px}
body.dibujo-page #app{grid-template-rows:auto auto minmax(0,1fr)}
header{display:flex;align-items:center;gap:8px;min-height:58px;padding:9px 12px;background:color-mix(in srgb,var(--ui-surface) 92%,transparent);border:1px solid var(--ui-border);border-radius:16px;box-shadow:var(--ui-shadow-sm);backdrop-filter:blur(18px);position:relative;z-index:600;flex-wrap:nowrap;overflow:auto;scrollbar-width:none}
header::-webkit-scrollbar{display:none}
header>*{flex:none}.sp{flex:1;min-width:12px}.row{display:flex;align-items:center;gap:7px;flex-wrap:wrap}
.logo{display:inline-flex;align-items:center;gap:8px;font-family:var(--ui-display);font-weight:900;letter-spacing:.08em;color:var(--ui-text);white-space:nowrap}.home{color:var(--ui-muted)}
#ver{color:var(--ui-muted);border:1px solid var(--ui-border);border-radius:999px;padding:4px 7px;background:var(--ui-surface-2)}
#opts{display:flex;align-items:center;gap:8px;padding:8px 12px;background:var(--ui-surface);border:1px solid var(--ui-border);border-radius:14px;box-shadow:var(--ui-shadow-sm);flex-wrap:nowrap;overflow-x:auto;font-size:12px;scrollbar-width:thin;white-space:nowrap}
#opts>*{flex:none}.tn{font-weight:900;color:var(--ui-accent);min-width:92px}
main{display:grid;grid-template-columns:minmax(220px,var(--tools-w,252px)) minmax(0,1fr) minmax(240px,var(--side-w,290px));gap:10px;min-height:0;position:relative;isolation:isolate}
#tools,#side,#tl,#stage{min-width:0}
#tools{width:auto;scrollbar-gutter:stable;background:linear-gradient(180deg,color-mix(in srgb,var(--ui-surface) 98%,transparent),color-mix(in srgb,var(--ui-surface-2) 96%,transparent));border:1px solid var(--ui-border);border-radius:18px;box-shadow:var(--ui-shadow);padding:12px 10px 14px;display:flex;flex-direction:column;gap:8px;overflow:auto;position:relative;align-self:stretch;min-width:0;scrollbar-width:thin}
#tools button{width:100%;min-height:40px;padding:7px 8px;font-size:15px;border-radius:11px}
#tools button:hover{transform:translateY(-1px)}
#tools button.on,#tools button.sel{background:var(--ui-accent-soft);border-color:color-mix(in srgb,var(--ui-accent) 34%,var(--ui-border));color:var(--ui-accent-strong);box-shadow:0 0 0 2px color-mix(in srgb,var(--ui-accent) 18%,transparent)}
.tool-brand{position:sticky;top:0;z-index:4;display:flex;align-items:center;gap:6px;padding:6px 7px 10px;margin:0 0 1px;background:color-mix(in srgb,var(--ui-surface) 96%,transparent);border-bottom:1px solid var(--ui-border);color:var(--ui-text);font-weight:900;font-size:11px;letter-spacing:.12em}
.tool-brand b{font-size:12px;background:linear-gradient(100deg,var(--ui-accent-strong),var(--ui-sage),var(--ui-accent-strong));background-size:220% auto;-webkit-background-clip:text;background-clip:text;color:transparent;animation:pxBrand 6s ease-in-out infinite}.tool-brand i{font-style:normal;color:var(--ui-muted);font-size:9px;letter-spacing:.06em;animation:pxBreath 3.8s ease-in-out infinite}
.tool-active{padding:9px 11px;min-height:36px;display:flex;align-items:center;border:1px solid color-mix(in srgb,var(--ui-accent) 24%,var(--ui-border));background:var(--ui-accent-soft);border-radius:11px;color:var(--ui-accent-strong);font-size:10px;font-weight:850;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;order:-4}
.tgrp{margin:0;min-width:0;border-radius:13px}.tgrp-h{width:100%;display:grid;grid-template-columns:28px minmax(0,1fr) 18px;align-items:center;gap:7px;padding:8px 10px;min-height:42px;border:1px solid transparent;background:transparent;border-radius:11px;color:var(--ui-muted);box-shadow:none;text-align:left}
.tgrp-h:hover{background:var(--ui-surface-2);border-color:var(--ui-border)}.tgrp.open>.tgrp-h{background:var(--ui-surface-2);border-color:var(--ui-border);color:var(--ui-text)}
.tgrp-h .tg-ic{font-size:17px;line-height:1;text-align:center}.tgrp-h .tg-nm{font-size:10px;letter-spacing:.08em;font-weight:850;color:inherit;line-height:1.2;text-align:left}.tgrp-h .tg-ch{font-size:11px;color:var(--ui-muted);font-style:normal;text-align:center}
.tgrp-b{display:none;grid-template-columns:repeat(3,minmax(0,1fr));gap:7px;padding:8px;margin-top:5px;background:var(--ui-surface-2);border:1px solid var(--ui-border);border-radius:12px}.tgrp.open .tgrp-b{display:grid}
.tgrp-b button{min-height:58px;height:auto;aspect-ratio:1;font-size:19px;background:var(--ui-surface);border-color:var(--ui-border);box-shadow:none;position:relative;flex-direction:column;padding:6px 4px 15px;gap:2px}.tgrp-b button::after{content:attr(aria-label);position:absolute;left:4px;right:4px;bottom:5px;font-size:7.5px;line-height:1;color:var(--ui-muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;pointer-events:none}.tgrp-b button.on::after{color:var(--ui-accent-strong);font-weight:800}.tgrp-b button.on{background:linear-gradient(180deg,var(--ui-accent-soft),color-mix(in srgb,var(--ui-surface) 94%,transparent));border-color:color-mix(in srgb,var(--ui-accent) 42%,var(--ui-border));box-shadow:0 4px 12px rgba(123,111,232,.12)}
#stage{position:relative;overflow:hidden;touch-action:none;cursor:crosshair;background:radial-gradient(circle at 50% 45%,rgba(255,255,255,.86),transparent 58%),var(--ui-surface-3);border:1px solid var(--ui-border);border-radius:18px;box-shadow:inset 0 1px 0 rgba(255,255,255,.68),var(--ui-shadow);display:flex;align-items:center;justify-content:center}
:root[data-theme="dark"] #stage{background:radial-gradient(circle at 50% 45%,rgba(255,255,255,.035),transparent 58%),#22262c;box-shadow:inset 0 1px 0 rgba(255,255,255,.03),var(--ui-shadow)}
#wrap{position:absolute;left:0;top:0;transform-origin:0 0;box-shadow:0 0 0 1px rgba(0,0,0,.07),0 14px 36px rgba(32,35,40,.10)}#wrap canvas{position:absolute;left:0;top:0;display:block;pointer-events:none}#wrap canvas,#cv{image-rendering:auto}.dibujo-page #v,.dibujo-page #o{image-rendering:auto}
.pixel-page #wrap{background:repeating-conic-gradient(var(--cell) 0 25%,var(--cell2) 0 50%) 0/16px 16px;box-shadow:0 0 0 1px rgba(0,0,0,.09),0 16px 40px rgba(36,38,43,.14)}.pixel-page #wrap canvas,.pixel-page #cv,.pixel-page #on{image-rendering:pixelated}.dibujo-page #wrap canvas{image-rendering:auto}
.pixel-page #on{position:absolute;inset:0;pointer-events:none;display:block}#grid{position:absolute;inset:0;pointer-events:none}#sbox{position:absolute;display:block;border:1.5px dashed var(--ui-accent);background:color-mix(in srgb,var(--ui-accent) 8%,transparent);box-shadow:0 0 0 1px rgba(255,255,255,.75) inset;pointer-events:none}#sbox[hidden]{display:none}
.pixel-page #tgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(84px,1fr));gap:8px;padding:4px;align-content:start}.pixel-page #tgrid .tp{display:flex;flex-direction:column;align-items:center;justify-content:flex-start;gap:5px;min-width:0;padding:8px;background:var(--ui-surface-2);border:1px solid var(--ui-border);border-radius:12px;color:var(--ui-text);font-size:10px;line-height:1.2;cursor:pointer;transition:transform .14s ease,border-color .14s ease,box-shadow .14s ease}.pixel-page #tgrid .tp:hover{transform:translateY(-1px);border-color:color-mix(in srgb,var(--ui-accent) 42%,var(--ui-border));box-shadow:var(--ui-shadow-sm)}.pixel-page #tgrid .tp canvas{width:62px;height:62px;background:var(--ui-surface);border:1px solid var(--ui-border);border-radius:8px;image-rendering:pixelated;object-fit:contain}
#side{position:relative;background:color-mix(in srgb,var(--ui-surface) 97%,transparent);border:1px solid var(--ui-border);border-radius:18px;box-shadow:var(--ui-shadow);padding:10px;overflow:auto;display:flex;flex-direction:column;gap:9px;min-width:0;scrollbar-width:thin}
#side>div,#side details{background:var(--ui-surface-2);border:1px solid var(--ui-border);border-radius:13px;padding:11px;margin:0}#side h3,#side summary,#side .grp>h4{margin:0 0 9px;color:var(--ui-text);border:0;padding:0;font-size:10px;font-weight:850;letter-spacing:.11em;text-transform:uppercase}#side summary{display:flex;align-items:center;justify-content:space-between;cursor:pointer;list-style:none}#side details[open] summary{margin-bottom:10px}#side summary::-webkit-details-marker{display:none}#side summary::after{content:'⌄';font-size:12px;color:var(--ui-muted);transition:transform .16s ease}#side details[open] summary::after{transform:rotate(180deg)}#side label{display:block;color:var(--ui-muted);font-size:11px;line-height:1.5}#side input[type=range]{width:100%;margin:6px 0}
#side .layer{display:flex;align-items:center;gap:6px;padding:6px;border:1px solid transparent;border-radius:10px;background:transparent;margin:2px 0;cursor:pointer;color:var(--ui-text)}#side .layer:hover{background:var(--ui-surface-3);border-color:var(--ui-border)}#side .layer.sel{background:var(--ui-accent-soft);border-color:color-mix(in srgb,var(--ui-accent) 34%,var(--ui-border))}#side .layer span{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;cursor:pointer}#side .layer button{padding:5px 7px;min-height:30px;background:transparent;border-color:transparent;box-shadow:none}
/* Docked settings and color controls */
.tool-props{margin-top:2px;order:-3;position:relative;z-index:5;display:grid;gap:8px;padding:9px;background:color-mix(in srgb,var(--ui-surface-2) 96%,transparent);border:1px solid var(--ui-border);border-radius:14px;box-shadow:inset 0 1px 0 rgba(255,255,255,.45);backdrop-filter:blur(14px);max-height:min(42dvh,360px);overflow:auto;scrollbar-width:thin}.tool-props-title{font-size:9px;font-weight:900;letter-spacing:.12em;text-transform:uppercase;color:var(--ui-muted)}.tool-props label{display:grid;gap:4px;font-size:10px;color:var(--ui-muted)}.tool-props input[type=range]{width:100%;margin:0}.tool-props input[type=number],.tool-props select{width:100%;min-width:0;min-height:32px;padding:6px 8px;font-size:10px}.tool-props details{background:transparent;border:0;padding:0;margin:0}.tool-native-settings h3{font-size:9px;margin-bottom:6px}.dock-size{background:var(--ui-surface);padding:8px;border:1px solid var(--ui-border);border-radius:11px}.tool-value{font:800 9px var(--ui-mono);color:var(--ui-accent);float:right}
.shape-picker{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:5px}.shape-picker button{min-height:34px;padding:4px;font-size:15px;border-radius:9px;background:var(--ui-surface)}.shape-picker button.on{background:var(--ui-accent-soft);color:var(--ui-accent-strong);border-color:color-mix(in srgb,var(--ui-accent) 42%,var(--ui-border));box-shadow:none}.shape-picker span{font-size:8px;color:var(--ui-muted);text-align:center;line-height:1.1}.dock-size,.dock-effect{background:var(--ui-surface);padding:8px;border:1px solid var(--ui-border);border-radius:11px}.dock-size input[type=range],.dock-effect input[type=range]{margin-top:5px}
@keyframes pxBrand{0%,100%{background-position:0% 50%;filter:saturate(.95)}50%{background-position:100% 50%;filter:saturate(1.15)}}

.color-editor{display:grid;grid-template-columns:54px 1fr;align-items:center;gap:10px;margin:3px 0 9px}.color-swatch{position:relative;width:54px;height:54px;border-radius:14px;overflow:hidden;border:1px solid var(--ui-border);background:var(--ui-surface-3);box-shadow:inset 0 0 0 1px rgba(255,255,255,.28),0 5px 14px rgba(0,0,0,.06);display:block;cursor:pointer}.color-swatch span{position:absolute;inset:0;background:var(--active-color,#14102a)}.color-swatch input{position:absolute;inset:0;width:100%;height:100%;opacity:0;cursor:pointer}.color-meta{display:flex;flex-direction:column;gap:3px}.color-meta strong{font-size:12px}.color-meta small{font-size:10px;color:var(--ui-muted)}
.pal{display:grid;grid-template-columns:repeat(8,minmax(0,1fr));gap:6px;align-items:center;width:100%}.sw{appearance:none;-webkit-appearance:none;width:100%;aspect-ratio:1;height:auto;min-width:0;min-height:0;padding:0;margin:0;border:1px solid rgba(20,25,38,.14);border-radius:8px;box-shadow:0 1px 2px rgba(20,25,38,.10),inset 0 0 0 1px rgba(255,255,255,.22);background:var(--swatch-color,#fff);background-image:none;display:block;cursor:pointer;position:relative;overflow:hidden}.sw:hover{transform:translateY(-1px)}.sw.sel{outline:2px solid var(--ui-accent);outline-offset:2px}
/* Timeline */
#tl{background:linear-gradient(180deg,color-mix(in srgb,var(--ui-surface) 99%,transparent),color-mix(in srgb,var(--ui-surface-2) 96%,transparent));border:1px solid var(--ui-border);border-radius:16px;box-shadow:var(--ui-shadow-sm);padding:8px 12px;display:flex;align-items:center;gap:10px;overflow-x:auto;min-height:82px;max-height:94px;position:relative;z-index:30;scrollbar-width:thin;scrollbar-gutter:stable}#tl strong,#tl .tn{font-size:9px;font-weight:850;letter-spacing:.11em;color:var(--ui-muted);flex:none;white-space:nowrap}#frames{display:flex;gap:6px;align-items:center} .fr{border:1px solid var(--ui-border);border-radius:10px;padding:3px;text-align:center;font-size:9px;cursor:pointer;flex:none;background:var(--ui-surface-2);color:var(--ui-muted)}.fr:hover{border-color:var(--ui-border-strong)}.fr.sel{border-color:var(--ui-accent);box-shadow:0 0 0 2px var(--ui-accent-soft);background:var(--ui-surface)}.fr canvas{display:block;width:54px;height:54px;object-fit:contain;background:var(--cell2);image-rendering:pixelated;border-radius:7px}#tl .row{flex:none}
/* Resizers: one visible grip per panel */
.hide-tools #tools{display:none}.hide-side #side{display:none}.hide-tl #tl{display:none}.hide-tools main{grid-template-columns:minmax(0,1fr) var(--side-w)}.hide-side main{grid-template-columns:var(--tools-w) minmax(0,1fr)}.hide-tools.hide-side main{grid-template-columns:minmax(0,1fr)}
.panel-resizer{position:absolute;top:8px;bottom:8px;width:18px;margin:0;z-index:55;cursor:col-resize;touch-action:none;border-radius:999px;display:flex;align-items:center;justify-content:center;background:transparent}.tools-resizer{left:calc(var(--tools-w) - 8px)}.side-resizer{right:calc(var(--side-w) - 8px)}.hide-tools .tools-resizer,.hide-side .side-resizer{display:none}.panel-resizer::before{content:"";width:3px;height:64px;border-radius:999px;background:var(--ui-border);transition:all .16s ease}.panel-resizer:hover::before,.panel-resizer.dragging::before{background:var(--ui-accent);height:92px;box-shadow:0 0 0 3px var(--ui-accent-soft)}
/* Floating tools on touch devices */
#toolsfab,#sidefab{position:fixed;z-index:850;width:50px;height:50px;border-radius:50%;background:var(--ui-surface);color:var(--ui-accent-strong);border:1px solid var(--ui-border);box-shadow:0 14px 30px rgba(72,65,145,.18);display:none;font-weight:900}#toolsfab{left:14px;bottom:calc(76px + var(--ui-safe-bottom))}#sidefab{right:14px;bottom:calc(76px + var(--ui-safe-bottom))}
#fly,#mp{position:fixed;z-index:800;background:var(--ui-surface);border:1px solid var(--ui-border);border-radius:14px;padding:7px;display:flex;flex-direction:column;gap:5px;box-shadow:var(--ui-shadow)}#fly[hidden],#mp[hidden]{display:none}#fly button{text-align:left;justify-content:flex-start}#mp{position:absolute;right:0;top:calc(100% + 8px);min-width:230px;max-width:min(340px,90vw);padding:12px}.mp label{font-size:11px;color:var(--ui-muted)}
#txbar,#selbar{position:fixed;left:50%;transform:translateX(-50%);z-index:700;display:flex;flex-wrap:wrap;gap:8px 12px;align-items:center;max-width:96vw;padding:9px 12px;background:var(--ui-surface);border:1px solid var(--ui-border);border-radius:13px;box-shadow:var(--ui-shadow-sm);font-size:12px}#txbar[hidden],#selbar[hidden]{display:none}
#gd{position:absolute;inset:0;pointer-events:none;display:none;border-radius:14px;background:linear-gradient(90deg,transparent 33.2%,rgba(123,111,232,.35) 33.3%,transparent 33.5%,transparent 66.5%,rgba(123,111,232,.35) 66.6%,transparent 66.8%),linear-gradient(0deg,transparent 33.2%,rgba(123,111,232,.35) 33.3%,transparent 33.5%,transparent 66.5%,rgba(123,111,232,.35) 66.6%,transparent 66.8%),linear-gradient(90deg,transparent 49.9%,rgba(217,154,125,.35) 50%,transparent 50.1%)}
#refp{background:var(--ui-surface);border:1px solid var(--ui-border);border-radius:15px;box-shadow:var(--ui-shadow)}.ad{border:1px dashed var(--ui-border);border-radius:11px;padding:10px;text-align:center;color:var(--ui-muted);font-size:11px;margin:8px 0;min-height:54px;background:transparent}.ad small{opacity:.75}
/* Helpers, popovers and dialogs */
.tpd{width:min(920px,94vw);max-width:none;padding:0;background:var(--ui-surface);color:var(--ui-text);border:1px solid var(--ui-border);border-radius:18px;overflow:hidden;box-shadow:0 24px 70px rgba(0,0,0,.20)}.tpd::backdrop,dialog::backdrop{background:rgba(20,22,26,.42);backdrop-filter:blur(4px)}dialog{border:1px solid var(--ui-border);border-radius:16px;background:var(--ui-surface);color:var(--ui-text);box-shadow:0 24px 70px rgba(0,0,0,.20);padding:22px;max-width:620px}.tph{display:flex;align-items:center;gap:10px;padding:14px 16px;border-bottom:1px solid var(--ui-border);background:var(--ui-surface-2)}.chips{display:flex;gap:6px;flex-wrap:wrap;padding:10px 16px 0}.tpn{margin:8px 16px;color:var(--ui-muted);font-size:12px;line-height:1.5}.tgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(142px,1fr));gap:10px;padding:4px 16px 16px;max-height:62dvh;overflow:auto}
/* Studio v87: shared layout; native canvas coordinates and control IDs are preserved. */
:root{
 --tools-w:232px;--side-w:256px;--ui-bg:#eeedf1;--ui-surface:#fff;--ui-surface-2:#f7f6f9;--ui-surface-3:#e5e4e9;
 --ui-text:#25232c;--ui-muted:#625e6d;--ui-border:#dedbe5;--ui-accent:#6b4ed1;--ui-accent-strong:#5739b6;--ui-accent-soft:#eee8ff;
 --ui-shadow:none;--ui-shadow-sm:none;--ui-radius:8px;--ui-radius-sm:6px;
 --text:var(--ui-text);--accent-soft:var(--ui-accent-soft);
}
:root[data-theme="dark"]{
 --ui-bg:#18191e;--ui-surface:#22232a;--ui-surface-2:#292a33;--ui-surface-3:#15161b;--ui-text:#f0eef5;
 --ui-muted:#b3afbf;--ui-border:#3c3c49;--ui-accent:#b49bff;--ui-accent-strong:#c8b7ff;--ui-accent-soft:#393047;
 --cell:#31323b;--cell2:#272830;
}
body.editor-page{background:var(--ui-bg);font:14px/1.45 var(--ui-font);overflow-x:hidden}
body.editor-page::before,body.editor-page::after{content:none}
button,.btn,input,select,textarea{font-family:var(--ui-font);font-size:13px}
button,.btn{min-height:38px;box-shadow:none;transition:background .12s ease,border-color .12s ease;transform:none}
button:hover,.btn:hover{transform:none;box-shadow:none}
button.on{color:var(--ui-accent-strong);background:var(--ui-accent-soft);box-shadow:none}
button:focus-visible,input:focus-visible,select:focus-visible,summary:focus-visible,a:focus-visible{outline:3px solid var(--ui-accent);outline-offset:2px}
button svg{width:20px;height:20px;flex-shrink:0;pointer-events:none}
input[type=number]{width:76px}input[type=range]{min-width:0;width:100%;height:28px;margin:0;accent-color:var(--ui-accent)}
input[type=checkbox]{width:18px;height:18px;flex:none}
[hidden]{display:none!important}
#app,body.dibujo-page #app{height:100dvh;min-height:420px;display:flex;flex-direction:column;padding:8px;gap:6px;overflow:hidden}
.app-header{flex:none;min-height:48px;padding:6px 8px;border:0;border-bottom:1px solid var(--ui-border);border-radius:0;background:var(--ui-surface);overflow:visible;flex-wrap:wrap;gap:6px;z-index:60;backdrop-filter:none}
.header-cluster,.toolbar-subgroup{display:flex;align-items:center;gap:4px;min-width:0;flex:none}
.header-view{gap:8px}.header-main{gap:8px}.header-main .logo{font-size:13px;letter-spacing:.05em;color:var(--ui-text)}
.mascot{width:24px;height:24px}.seo-compact-h1{font-size:12px;margin:0;color:var(--ui-muted);font-weight:600}
#pname{width:128px;min-width:70px;font-size:13px;padding:6px}#save,#drawing-save-status{font-size:12px;color:var(--ui-muted)}
.app-header .sp{min-width:0}.app-header button,.app-header .btn,.app-header select{font-size:12px;min-height:36px;padding:6px 9px;border-radius:6px}
#thm,#dlangsel{position:static;width:auto;height:auto;inset:auto}.app-header #ver{display:none}
#app>main{order:3;flex:1;min-height:0;display:grid;grid-template-columns:var(--tools-w) minmax(0,1fr) var(--side-w);gap:8px}
#app.hide-tools>main{grid-template-columns:minmax(0,1fr) var(--side-w)}
#app.hide-side>main{grid-template-columns:var(--tools-w) minmax(0,1fr)}
#app.hide-tools.hide-side>main{grid-template-columns:minmax(0,1fr)}
#app.hide-tools #tools,#app.hide-side #side,#app.hide-tl #tl{display:none}
#opts{order:2;flex:none;min-height:44px;padding:4px 8px;border:0;border-radius:0;gap:8px;justify-content:space-between}
.opts-group{display:flex;align-items:center;gap:8px}.opts-group label{display:flex;align-items:center;gap:6px}
.opts-tool>label:has(#bsz){display:none}.opts-selection:empty{display:none}.tn{min-width:0;font-size:13px}
.tile-preview{position:fixed;right:280px;top:120px;z-index:90;display:none}
#tl{order:4;flex:none;max-height:100px;min-height:76px;display:flex;padding:6px 8px;border:0;border-top:1px solid var(--ui-border);border-radius:0;gap:12px;background:var(--ui-surface);overflow-x:auto;z-index:auto}
.tl-brand{min-width:90px}.tl-caption{display:block;font-size:12px}.tl-brand strong{font-size:10px}
.tl-controls,.tl-actions,.tl-transport,.tl-settings{display:flex;gap:4px;align-items:center;flex:none;flex-wrap:nowrap}
.tl-settings label{display:flex;align-items:center;gap:4px;white-space:nowrap;font-size:12px}
.tl-settings input[type=range]{width:80px}.tl-settings select{width:auto}
#frames{display:flex;min-width:68px;flex:1;overflow:auto;max-height:80px;gap:6px}
#frames .fr{font-size:11px;padding:3px;border-radius:5px;min-width:52px;max-width:100px}
#frames .fr canvas{height:40px;width:48px;object-fit:contain;border-radius:2px}
#tools,#side{border:0;border-radius:6px;padding:8px;background:var(--ui-surface);box-shadow:none;scrollbar-gutter:auto;gap:8px}
#tools{display:flex;flex-direction:column}#tools>*{flex-shrink:0}
#tools .tool-brand{position:static;order:-5;background:none;padding:4px 0 8px;font-size:12px;display:block;letter-spacing:0}
.tool-brand b,.tool-brand i{display:none}.tool-brand-current{display:block;font-size:13px;font-weight:600;color:var(--ui-text)}
#tools .tgrp{border:0;margin:0;border-radius:0;position:static;order:0}
#tools .tgrp-h{display:flex;gap:8px;min-height:40px;height:auto;border:0;border-bottom:1px solid var(--ui-border);border-radius:0;padding:8px;background:none;box-shadow:none;font-size:13px}
#tools .tg-nm{font-size:11px;letter-spacing:.035em;font-weight:700;flex:1}
#tools .tg-ic{font-size:16px;display:grid;place-items:center}#tools .tg-ic svg{width:18px;height:18px}
#tools .tg-ch{font-size:12px}.color-head-meta,.size-head-meta{font-size:11px;white-space:nowrap;display:flex;align-items:center;gap:5px}
#tool-color-dot{width:16px;height:16px;background:var(--active-color);border-radius:4px;border:1px solid var(--ui-border)}
#tools .tgrp-b{display:none;margin:0;padding:8px 0;border:0;border-radius:0;background:none;gap:5px;grid-template-columns:repeat(2,minmax(0,1fr));max-height:none;overflow:visible}
#tools .tgrp.open>.tgrp-b{display:grid}
#tools .tgrp-b>button[data-k],#tools .tgrp-b>button[data-t]{min-height:58px;aspect-ratio:auto;height:auto;display:flex;flex-direction:column;padding:6px 4px;font-size:18px;gap:4px;border-radius:6px;border:1px solid transparent;background:none;position:relative}
#tools .tgrp-b>button[data-k]::after,#tools .tgrp-b>button[data-t]::after{position:static;content:attr(aria-label);white-space:normal;overflow:visible;font-size:11px;line-height:1.25;max-width:100%;color:var(--ui-text)}
#tools .tgrp-b>button.on{background:var(--ui-accent-soft);color:var(--ui-accent-strong);border-color:var(--ui-accent)}
#tools .tool-size-dock,#tools .tool-color-dock{order:-4}
#tools .tool-size-dock.open>.tgrp-b,#tools .tool-color-dock.open>.tgrp-b,#tools .mirror-tool-group.open>.tgrp-b{display:flex;flex-direction:column}
#tools .tool-size-body,#tools .tool-color-body{font-size:13px;width:100%;min-width:0}
#tools .tgrp-b button:not([data-k]):not([data-t]){height:auto;min-height:36px;aspect-ratio:auto;padding:6px;font-size:12px;border-radius:5px}
#tools .tgrp-b button:not([data-k]):not([data-t])::after{content:none}
.size-main{display:grid;grid-template-columns:1fr 64px;gap:8px;align-items:center}.size-readout,.size-presets{grid-column:1/-1}
.size-readout{display:flex;justify-content:space-between;gap:5px;font-size:12px}.size-presets{display:grid;grid-template-columns:repeat(6,1fr);gap:4px}
.size-control{display:grid;grid-template-columns:1fr auto;gap:4px;font-size:13px}.size-control input{grid-column:1/-1}
.size-check{display:flex;align-items:center;gap:7px;font-size:13px}.shape-picker{grid-template-columns:repeat(5,1fr);gap:4px}
#tools .shape-picker button{padding:4px;min-height:36px}.tool-value{font-size:12px}
.size-section-title,.tool-props-title{font-size:11px;margin:8px 0 2px;font-weight:700}
#tools .mirror-grid{width:100%;display:grid;grid-template-columns:1fr 1fr;gap:6px}
#tools .mirror-grid button{min-width:0;font-size:12px;min-height:40px;line-height:1.3;white-space:normal}
#tools .mirror-caption{display:none}#tools .mirror-status{font-size:13px;background:var(--ui-accent-soft);padding:7px;border-radius:5px}
#tools .mirror-check{display:flex;align-items:center;gap:8px;font-size:13px}
#tools .mirror-hint{font-size:12px;color:var(--ui-muted);line-height:1.5}
.canvas-workspace{min-width:0;min-height:0;display:flex;position:relative;flex-direction:column}
#stage{flex:1;width:100%;min-height:0;border:0;border-radius:6px;background:var(--ui-surface-3);box-shadow:none;overflow:hidden;isolation:isolate}
:root[data-theme="dark"] #stage{background:var(--ui-surface-3);box-shadow:none}
.pixel-page #stage{overflow:auto;display:block}
.pixel-page #wrap{position:relative;flex:none;left:auto;top:auto;transform-origin:0 0}
.dibujo-page #wrap{position:absolute;left:0;top:0;transform-origin:0 0}
#wrap canvas,#smask{pointer-events:none}
.canvas-action-strip{display:none}
#side>div,#side details{border:0;border-bottom:1px solid var(--ui-border);border-radius:0;background:none;padding:8px 2px}
#side h3,#side summary{font-size:12px;letter-spacing:.03em}#side label{font-size:13px;color:var(--ui-text)}
#side .layer{min-height:44px;padding:4px;border-radius:5px}#side .layer button{min-width:34px;min-height:34px}
#side .row{gap:5px}#side .hint,.hint{font-size:12px;line-height:1.5;color:var(--ui-muted)}
#side .ad-auto-note,#side>div:empty{display:none}
#tools .tool-color-body details,#tools .dock-color-panel{display:block;border:0;margin:0;padding:0;background:none}
#tools .tool-color-body summary{font-size:12px;margin:6px 0}
#sv{width:100%;height:auto;touch-action:none;display:block;max-width:100%}
.pal{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:5px}
#tools .pal .sw{height:30px;min-height:30px;width:100%;padding:0;position:relative;border-radius:5px;background:var(--swatch-color);border:1px solid var(--ui-border)}
.sw-fill{position:absolute;inset:0;border-radius:inherit;background:var(--swatch-color)}
.swp{position:relative;width:44px;height:40px;flex:none}.swp span{position:absolute;width:26px;height:26px;border:1px solid var(--ui-border);border-radius:4px}
#p1{left:0;top:0}#p2{right:0;bottom:0}#hex,#colhexInput{min-width:0;max-width:120px;font:13px var(--ui-mono)}
.rgbr{display:flex;align-items:center;gap:3px}.rgbr input{min-width:0;width:48px;padding:4px}
.dual-colors{display:flex;gap:4px}.mini-color{flex:1;min-width:0}.mini-color span{width:15px;height:15px;flex:none}.mini-color b{font-size:11px}
.color-meta{min-width:0}.color-meta small{display:none}.color-meta strong{font-size:12px}.color-editor{grid-template-columns:44px 1fr}
.color-swatch{width:44px;height:44px;border-radius:6px}.color-swatch span{pointer-events:none}
.pixel-color-role b,.pixel-color-role small,.pixel-color-active{font-size:11px}
.pixel-color-roles{width:100%}.draw-color-active,.suggested-head{display:flex;flex-wrap:wrap;justify-content:space-between;gap:6px;font-size:12px;margin:8px 0}
.studio-project-actions{display:grid;gap:6px}.studio-project-actions button{width:100%}
.studio-color-values{display:grid;grid-template-columns:repeat(3,1fr);gap:6px}.studio-color-values label{font-size:11px;min-width:0}
.studio-color-values input{width:100%;padding:5px}.studio-color-tools{display:flex;gap:6px;flex-wrap:wrap;font-size:12px}
.studio-palette-list{display:grid;grid-template-columns:1fr auto;gap:5px;align-items:center}.studio-palette-list select{min-width:0;width:100%}
.studio-view-tools{display:flex;gap:4px;align-items:center}
.panel-resizer{width:12px;z-index:10}.tools-resizer{left:calc(var(--tools-w) - 2px)}.side-resizer{right:calc(var(--side-w) - 2px)}
#toolsfab,#sidefab{display:none}
#mp.px-file-menu-portal{position:fixed;max-height:calc(100dvh - 90px);overflow:auto;width:min(320px,calc(100vw - 20px));z-index:100;background:var(--ui-surface)}
.mp-header{display:flex;align-items:center;justify-content:space-between;gap:12px}.mp-actions,.mp-grid{display:grid;gap:6px}
#txbar,#selbar{font-size:13px;max-height:40dvh;overflow:auto}
dialog{max-width:min(620px,94vw);max-height:90dvh;overflow:auto;line-height:1.5}
.tpd{max-width:94vw}.tgrid{grid-template-columns:repeat(auto-fill,minmax(120px,1fr))}
.canvas-ad-slot{margin:20px auto;padding:20px;border:1px dashed var(--ui-border);max-width:900px;text-align:center;color:var(--ui-muted)}
.canvas-ad-slot small{display:block}.studio-guide{max-width:920px;margin:40px auto;padding:24px;line-height:1.7}
.studio-guide h2{font-size:25px}.studio-guide h3{font-size:18px}.studio-guide a{color:var(--ui-accent-strong)}
.skip-link{position:fixed;top:-80px;left:12px;z-index:200;background:var(--ui-surface);padding:12px}
.skip-link:focus{top:12px}.studio-tooltip{position:fixed;inset:auto;margin:0;max-width:min(280px,90vw);padding:10px 12px;background:var(--ui-text);color:var(--ui-surface);border:0;border-radius:7px;font-size:13px;line-height:1.5;pointer-events:none}
body.studio-focus #app>main{grid-template-columns:1fr}
body.studio-focus #tools,body.studio-focus #side,body.studio-focus #tl,body.studio-focus #opts,body.studio-focus .panel-resizer{display:none}
body.studio-focus .header-project,body.studio-focus .header-history,body.studio-focus .header-canvas-actions{display:none}
.editor-app-offscreen #toolsfab,.editor-app-offscreen #sidefab{display:none}
@media(max-width:1180px){
 .app-header{gap:4px}.header-main .logo{font-size:12px}.seo-compact-h1{display:none}.header-cluster{gap:3px}
 .app-header #pname{width:100px}.app-header #don{font-size:0}.app-header #don::after{content:'♥';font-size:15px}
 .tl-brand{display:none}
}
@media(max-width:900px),(pointer:coarse) and (max-width:1180px){
 #app,body.dibujo-page #app{padding:5px;gap:4px}
 #app>main,#app.hide-side>main,#app.hide-tools>main{grid-template-columns:minmax(0,1fr)}
 #tools,#side{display:none;position:fixed;top:var(--studio-panel-top,110px);bottom:64px;width:min(320px,calc(100vw - 20px));max-width:calc(100vw - 20px);border:1px solid var(--ui-border);border-radius:8px;z-index:80;box-shadow:0 10px 30px #0003;padding:12px}
 #tools{left:8px}#side{right:8px}
 body.tools-open #app #tools,body.side-open #app #side{display:flex}
 #toolsfab,#sidefab{display:flex;position:fixed;bottom:10px;width:auto;height:44px;min-height:44px;padding:8px 16px;border-radius:8px;font-size:13px;z-index:90;box-shadow:0 3px 12px #0002}
 #toolsfab{left:12px}#sidefab{right:12px}
 #tl{margin-bottom:54px;max-height:84px;min-height:74px;gap:8px}
 #app.hide-tl>main{margin-bottom:54px}.panel-resizer{display:none}
 .app-header .sp{display:none}.header-view{margin-left:auto}
 .app-header button,.app-header .btn,.app-header select,#tools button,#side button{min-height:44px}
 input[type=range]{height:36px}
 #tools .mirror-grid button{min-height:44px}
 body.studio-focus #app>main{margin-bottom:54px}
 .studio-guide{margin:20px auto;padding:18px}
}
@media(max-width:600px){
 .app-header{flex-wrap:nowrap;overflow-x:auto;scrollbar-width:thin;min-height:58px}
 .app-header .header-main .logo,.app-header #pname{display:none}
 #opts{font-size:12px;min-height:48px}.opts-group{gap:4px}
 #tl .tl-settings{margin-left:0}.tl-settings input[type=range]{width:60px}
 #frames{flex:none;max-width:40vw}
 #txbar,#selbar{left:8px;transform:none;max-width:calc(100vw - 16px)}
}
@media(prefers-reduced-motion:reduce){
 *,*::before,*::after{animation:none;transition:none;scroll-behavior:auto}
}

#tools .tool-color-body:popover-open{position:fixed;inset:auto;margin:0;width:300px;max-width:calc(100vw - 16px);max-height:min(700px,calc(100dvh - 32px));overflow:auto;padding:16px;background:var(--ui-surface);border:1px solid var(--ui-border);border-radius:10px;box-shadow:0 12px 40px #0004;display:flex;flex-direction:column;gap:10px}
#tools .tool-color-body[popover]:not(:popover-open){display:none}
#tools .tool-color-body:popover-open .pal{width:100%}

/* v88: contenido semántico debajo de los editores, sin reducir el lienzo. */
.studio-seo-guide{max-width:1020px;margin:36px auto 42px;padding:clamp(20px,4vw,36px);color:var(--ui-text);background:var(--ui-surface);border:1px solid var(--ui-border);border-radius:18px;line-height:1.7}
.studio-seo-guide h1{font-size:clamp(22px,3.5vw,32px);line-height:1.2;margin:0 0 12px;color:var(--ui-text)}
.studio-seo-guide .studio-guide-lead{font-size:15px;max-width:74ch;margin:0 0 24px}
.studio-guide-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}
.studio-guide-grid section{border:1px solid var(--ui-border);border-radius:12px;padding:16px;min-width:0;background:var(--ui-surface-alt,var(--ui-surface))}
.studio-guide-grid h2{font-size:17px;line-height:1.35;margin:0 0 10px;color:var(--ui-text)}
.studio-guide-grid p{font-size:13px;margin:9px 0}
.studio-guide-grid a{color:var(--ui-accent-strong);font-weight:700;text-decoration:underline;text-underline-offset:3px}
.studio-guide-backup{font-size:13px;padding:13px 15px;margin-top:18px;border-radius:10px;border:1px solid var(--ui-border)}
.studio-recovery-alert{max-width:960px;margin:18px auto;padding:18px 20px;background:#fff6e5;color:#382300;border:2px solid #ad6100;border-radius:12px;line-height:1.5}
.studio-recovery-alert p{font-size:15px;margin:0 0 12px}
.studio-recovery-alert button{cursor:pointer;padding:9px 12px;border:1px solid #946000;background:#fff;border-radius:8px;color:#382300;margin:4px 8px 4px 0;font-weight:700}
@media(max-width:760px){.studio-seo-guide{margin:24px 12px;padding:18px}.studio-guide-grid{grid-template-columns:1fr}}

/* v89: accessible tool guide. Always available on touch screens, not hover-only. */
.studio-tooltip{z-index:1250;white-space:normal;overflow-wrap:anywhere;box-shadow:0 8px 24px #0003}
.studio-tooltip[hidden]{display:none!important}
#studio-explain[aria-pressed="true"],#studio-help-quick[aria-pressed="true"]{background:var(--ui-accent-soft);border-color:var(--ui-accent);color:var(--ui-accent-strong)}
#tools .studio-help-panel{flex:none;display:block;order:-3;padding:12px 11px;margin:2px 0 10px;border:1px solid var(--ui-accent);border-radius:8px;background:var(--ui-surface-2);color:var(--ui-text);box-shadow:0 4px 14px #0001;overflow-wrap:anywhere;font-size:12px;line-height:1.45}
#tools .studio-help-panel[hidden]{display:none!important}
#tools .studio-help-heading{display:flex;align-items:center;justify-content:space-between;gap:8px;margin:0 0 8px;font-size:13px}
#tools .studio-help-heading strong{color:var(--ui-accent-strong)}
#tools #studio-help-close{width:34px;min-width:34px;min-height:34px;height:34px;padding:0;font-size:23px;line-height:1}
#tools .studio-help-panel h3{margin:10px 0 6px;font-size:15px;line-height:1.25}
#tools .studio-help-panel p{margin:6px 0;color:var(--ui-text);font-size:12px}
#tools #studio-help-intro{color:var(--ui-muted)}
#tools .studio-help-steps{padding:8px 9px;margin:9px 0;border-left:3px solid var(--ui-accent);background:var(--ui-surface);border-radius:4px}
#tools .studio-help-steps p{margin:4px 0 0}
#tools .studio-help-tip{padding:8px;background:var(--ui-accent-soft);border-radius:5px}
#tools #studio-help-exit{font-size:11px;color:var(--ui-muted);margin-top:8px}
#studio-help-quick{display:none}
@media(max-width:900px),(pointer:coarse) and (max-width:1180px){
 #tools .studio-help-panel{position:sticky;top:0;z-index:2;max-height:53dvh;overflow-y:auto;box-shadow:0 6px 20px #0002}
 #studio-help-quick{position:fixed;display:flex;left:50%;bottom:calc(10px + var(--ui-safe-bottom));transform:translateX(-50%);z-index:92;width:44px;height:44px;min-width:44px;min-height:44px;border-radius:9px;font-size:20px;font-weight:700}
 #studio-help-quick:hover{transform:translateX(-50%)}
}
