:root{
  --bg:#f8f8fa;--dot:#d5d6dc;--panel:#fff;--text:#202124;--muted:#76777f;
  --accent:#8b3dff;--accent-soft:#efe6ff;--danger:#d94a55;--dark:#202124;--dark-hover:#34363a;
  --shadow:0 10px 30px rgba(34,31,45,.14);--toolbar-bottom:max(16px,env(safe-area-inset-bottom));--toolbar-h:56px;
}
*{box-sizing:border-box}
html,body,#app{margin:0;width:100%;height:100%;overflow:hidden;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:var(--text)}
body{background:var(--bg)}button,input,select{font:inherit}button{cursor:pointer}.hidden{display:none!important}

/* Topo mínimo: a versão fica sempre visível, mas quase transparente. */
.topbar{position:fixed;top:12px;left:12px;right:12px;height:44px;display:flex;align-items:center;justify-content:space-between;z-index:1000;pointer-events:none}
.version-badge{pointer-events:none;font-size:11px;font-weight:700;letter-spacing:.04em;opacity:.18;padding:5px 7px;border-radius:7px;background:#fff;border:1px solid rgba(40,40,50,.12)}
.top-actions{pointer-events:auto;display:flex;gap:5px;align-items:center;padding:5px;background:rgba(255,255,255,.95);backdrop-filter:blur(12px);box-shadow:var(--shadow);border:1px solid #e7e7ec;border-radius:12px}
.icon-btn,.action-btn,.secondary-btn{border:0;border-radius:8px;background:white;padding:8px 10px;color:var(--text)}
.icon-btn:hover,.secondary-btn:hover{background:#f1f1f5}.action-btn{background:var(--accent);color:#fff;font-weight:700}.secondary-btn{border:1px solid #dddde5}

#viewport{position:absolute;inset:0;overflow:hidden;touch-action:none;background:var(--bg);cursor:default}
#viewport.tool-hand{cursor:grab}#viewport.tool-hand.is-panning{cursor:grabbing}#viewport.tool-draw{cursor:crosshair}#viewport.tool-rotateBoard{cursor:ew-resize}#viewport.tool-rotateBoard.is-rotating{cursor:grabbing}
#world{position:absolute;left:0;top:0;width:1px;height:1px;transform-origin:0 0;will-change:transform}
#drawingLayer,#objectLayer{position:absolute;left:0;top:0;width:1px;height:1px;overflow:visible}
#gridCanvas{position:absolute;inset:0;width:100%;height:100%;pointer-events:none}
/* drawingLayer é só para o traço que ainda está sendo desenhado. Elementos finalizados ficam todos no objectLayer. */
#drawingLayer{pointer-events:none;z-index:999999}#objectLayer{pointer-events:none;z-index:2}

.board-object{position:absolute;pointer-events:auto;user-select:none;touch-action:none;transform-origin:center center;min-width:20px;min-height:20px;-webkit-user-drag:none}
.board-object.selected{outline:2px solid var(--accent);outline-offset:2px}.board-object .content{width:100%;height:100%;overflow:hidden;word-break:break-word}
.board-object.text .content{background:transparent;padding:4px;white-space:pre-wrap}.board-object.sticky{box-shadow:0 5px 14px rgba(30,30,40,.12)}.board-object.sticky .content{padding:16px;white-space:pre-wrap}
.board-object .content:empty::before{content:attr(data-placeholder);color:rgba(63,64,70,.42);pointer-events:none}.board-object.editing .content:empty::before{opacity:.62}
.board-object.image,.board-object.video{background:#111;overflow:hidden}.board-object.image img{width:100%;height:100%;display:block;object-fit:contain;pointer-events:none;-webkit-user-drag:none;user-select:none}
.board-object.video iframe,.board-object.video video{width:100%;height:100%;display:block;border:0;background:#111}.board-object.video iframe{pointer-events:none}.board-object.video.video-active iframe{pointer-events:auto}
.drawing-svg{width:100%;height:100%;display:block;overflow:visible;pointer-events:none}
.board-object.editing,.board-object.editing .content{cursor:text;user-select:text}.board-object.sticky,.board-object.text,.board-object.image,.board-object.video,.board-object.drawing,.board-object.flipbook{cursor:grab}.board-object:active{cursor:grabbing}.board-object.locked{cursor:default}

.link-badge,.lock-badge,.video-interact-btn,.video-move-btn{position:absolute;z-index:10;border:0;display:grid;place-items:center;box-shadow:0 1px 5px rgba(0,0,0,.16)}
.link-badge{right:6px;bottom:6px;width:25px;height:25px;border-radius:7px;background:rgba(255,255,255,.94);color:#303038;font-size:14px;cursor:pointer}
.link-badge:hover{background:#fff;transform:translateY(-1px)}
.lock-badge{right:6px;top:6px;width:24px;height:24px;border-radius:7px;background:rgba(255,255,255,.64);font-size:12px;opacity:.38;pointer-events:none;filter:grayscale(1)}
.video-interact-btn{left:50%;top:50%;transform:translate(-50%,-50%);width:46px;height:46px;border-radius:50%;background:rgba(255,255,255,.92);font-size:18px;cursor:pointer}
.video-move-btn{right:7px;top:7px;height:26px;padding:0 8px;border-radius:7px;background:rgba(32,33,36,.92);color:#fff;font-size:10px;cursor:pointer}

/* Caderno animado / flipbook */
.board-object.flipbook{background:#ececf1;border-radius:10px;box-shadow:0 8px 22px rgba(34,31,45,.16);overflow:visible}
.flipbook-stack{position:absolute;inset:0;border-radius:10px;background:#fff;box-shadow:5px 5px 0 #e3e3e8,10px 10px 0 #f0f0f3;overflow:hidden}
.flipbook-binding{height:26px;display:flex;align-items:center;gap:5px;padding:0 10px;background:#f6f6f8;border-bottom:1px solid #e4e4e8;cursor:grab;user-select:none}
.flipbook-binding::before{content:"";width:52px;height:6px;border-radius:6px;background:repeating-linear-gradient(90deg,#a9abb3 0 4px,transparent 4px 9px);opacity:.75}.flipbook-binding span{margin-left:auto;font-size:10px;color:#8b8c94}
.flipbook-paper{position:absolute;left:0;right:0;top:26px;bottom:0;background-color:#fff;background-image:repeating-linear-gradient(to bottom,transparent 0 26px,rgba(92,132,202,.14) 26px 27px);touch-action:none;cursor:crosshair;overflow:hidden}
.flipbook-paper::before{content:"";position:absolute;left:28px;top:0;bottom:0;width:1px;background:rgba(232,91,91,.2)}
.flipbook-page-svg{position:absolute;inset:0;width:100%;height:100%;display:block;pointer-events:none}
.flipbook-page-hint{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);font-size:12px;color:#b1b2b8;pointer-events:none;white-space:nowrap}
.flipbook-controls{position:absolute;left:50%;bottom:8px;transform:translateX(-50%);z-index:14;display:none;align-items:center;gap:4px;padding:4px;background:rgba(32,33,36,.92);border-radius:9px;box-shadow:0 5px 14px rgba(0,0,0,.22)}
.board-object.flipbook.selected .flipbook-controls{display:flex}.flipbook-controls button{height:27px;min-width:28px;border:0;border-radius:6px;background:transparent;color:#fff;padding:0 8px;font-size:12px}.flipbook-controls button:hover{background:#3b3c40}.flipbook-page-count{min-width:46px;color:#e7e7ea;font-size:10px;text-align:center}.flipbook-add{font-weight:800;font-size:16px!important}
.flipbook-live-badge{position:absolute;left:8px;bottom:8px;z-index:8;padding:4px 7px;border-radius:7px;background:rgba(32,33,36,.72);color:#fff;font-size:9px;opacity:.72;pointer-events:none}.board-object.flipbook.selected .flipbook-live-badge{display:none}


.selection-box{position:fixed;pointer-events:none;border:2px solid var(--accent);z-index:910;transform-origin:center center;will-change:left,top,width,height,transform}
.resize-handle{position:absolute;width:14px;height:14px;border:2px solid var(--accent);background:white;border-radius:4px;pointer-events:auto;touch-action:none;z-index:3}
.resize-handle.nw{left:-8px;top:-8px;cursor:nwse-resize}.resize-handle.ne{right:-8px;top:-8px;cursor:nesw-resize}.resize-handle.sw{left:-8px;bottom:-8px;cursor:nesw-resize}.resize-handle.se{right:-8px;bottom:-8px;cursor:nwse-resize}
.resize-handle.n,.resize-handle.s{width:20px;height:8px;left:50%;transform:translateX(-50%);border-radius:4px;cursor:ns-resize}.resize-handle.n{top:-5px}.resize-handle.s{bottom:-5px}
.resize-handle.e,.resize-handle.w{width:8px;height:20px;top:50%;transform:translateY(-50%);border-radius:4px;cursor:ew-resize}.resize-handle.e{right:-5px}.resize-handle.w{left:-5px}

.marquee-box{position:fixed;z-index:905;border:1.5px solid var(--accent);background:rgba(139,61,255,.10);pointer-events:none;border-radius:2px}
.color-custom-panel{position:fixed;z-index:1170;width:236px;padding:0 0 10px;background:#fff;color:#15161a;border:1px solid #c9cad0;border-radius:10px;box-shadow:0 14px 36px rgba(0,0,0,.24);overflow:hidden}
.color-field{position:relative;width:100%;height:138px;touch-action:none;cursor:crosshair;background-color:hsl(var(--picker-hue,240) 100% 50%);background-image:linear-gradient(to bottom,transparent,#000),linear-gradient(to right,#fff,transparent)}
.color-field-knob{position:absolute;width:14px;height:14px;border:2px solid #fff;border-radius:50%;box-shadow:0 0 0 1px #17181b,0 1px 3px rgba(0,0,0,.4);transform:translate(-50%,-50%);pointer-events:none}
.color-picker-row{display:flex;align-items:center;gap:8px;padding:8px 12px 0}.color-picker-preview{width:32px;height:32px;border-radius:50%;border:1px solid #d2d3d8;flex:0 0 auto}.color-hue{appearance:none;flex:1;height:12px;border-radius:2px;background:linear-gradient(90deg,#f00,#ff0,#0f0,#0ff,#00f,#f0f,#f00);outline:none}.color-hue::-webkit-slider-thumb{appearance:none;width:14px;height:14px;border-radius:50%;background:#fff;border:2px solid #5a5b62;box-shadow:0 1px 3px rgba(0,0,0,.25)}
.rgb-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:7px;padding:8px 12px 0}.rgb-field{display:grid;gap:3px;text-align:center;font-size:10px;color:#55575f}.rgb-field input{width:100%;height:31px;border:1px solid #d2d3d8;border-radius:4px;background:#fff;color:#17181b;text-align:center;outline:none}.rgb-field input:focus{border-color:#7f54c7;box-shadow:0 0 0 2px rgba(139,61,255,.12)}
.inline-color-palette{display:flex;align-items:center;gap:7px;padding:0 3px;white-space:nowrap}.inline-color-palette .color-swatch{width:24px;height:24px}
.summary-master{display:inline-flex;align-items:center;gap:7px;cursor:pointer}.summary-master input{margin:0}.settings-modal summary:has(.summary-master){display:flex;align-items:center}

.rotation-handle{position:absolute;width:25px;height:25px;display:grid;place-items:center;border-radius:50%;pointer-events:auto;touch-action:none;color:var(--accent);font-size:16px;font-weight:700;opacity:0;transition:opacity .1s;background:rgba(255,255,255,.85);cursor:crosshair;z-index:2}.selection-box:hover .rotation-handle,.rotation-handle:hover{opacity:.78}.rotation-handle.nw{left:-31px;top:-31px}.rotation-handle.ne{right:-31px;top:-31px}.rotation-handle.sw{left:-31px;bottom:-31px}.rotation-handle.se{right:-31px;bottom:-31px}

/* Barra principal inspirada no FigJam: compacta, clara, centrada e focada em ícones. */
.toolbar{position:fixed;z-index:1000;left:50%;bottom:var(--toolbar-bottom);transform:translateX(-50%);display:flex;align-items:center;gap:2px;padding:5px;background:rgba(255,255,255,.98);backdrop-filter:blur(14px);border:1px solid #e3e3e8;border-radius:13px;box-shadow:0 8px 24px rgba(25,25,35,.16);transition:opacity .12s,transform .12s}
.toolbar.toolbar-replaced{opacity:0;pointer-events:none;transform:translateX(-50%) translateY(5px)}
.tool{width:46px;height:44px;border:0;border-radius:9px;background:transparent;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:0;color:#34343b;padding:0}
.tool span,.tool-svg{font-size:20px;line-height:1;display:grid;place-items:center}.tool svg{width:21px;height:21px}.tool small{display:none}.tool:hover{background:#f1f1f5}.tool.active{background:var(--accent-soft);color:#7428dc}
.nav-tool-cluster{position:relative;display:flex;align-items:stretch;border-right:1px solid #e8e8ed;padding-right:4px;margin-right:2px}.nav-main{width:46px}
.tool-submenu{position:absolute;left:0;bottom:55px;width:264px;padding:6px;background:#fff;border:1px solid #e1e1e7;border-radius:12px;box-shadow:0 14px 34px rgba(25,25,35,.19)}
.tool-submenu button{width:100%;border:0;background:transparent;border-radius:8px;padding:9px;display:flex;gap:10px;align-items:center;text-align:left;color:#292930}.tool-submenu button:hover,.tool-submenu button.active{background:#f1ebff}.tool-submenu button>span{width:28px;text-align:center;font-size:20px;display:grid;place-items:center}.tool-submenu button svg{width:21px;height:21px}.tool-submenu button div{display:flex;flex-direction:column;gap:2px}.tool-submenu strong{font-size:12px}.tool-submenu small{font-size:10px;color:#777783}

/* Propriedades de ferramenta e de elemento compartilham a mesma linguagem escura do Figma. */
.inspector,.tool-properties{position:fixed;z-index:1030;left:50%;transform:translateX(-50%);background:var(--dark);color:#fff;border:0;border-radius:12px;padding:5px;box-shadow:0 8px 24px rgba(0,0,0,.28);max-width:calc(100vw - 24px);overflow-x:auto}
.inspector{bottom:var(--toolbar-bottom)}
.tool-properties{bottom:calc(var(--toolbar-bottom) + var(--toolbar-h) + 6px)}
.figma-props,.tool-props-row{display:flex;align-items:center;gap:3px;min-height:38px;white-space:nowrap}
.prop-btn,.prop-select,.prop-number,.tool-prop-btn,.tool-prop-select,.tool-prop-number{height:32px;border:0;border-radius:7px;background:transparent;color:#fff;display:inline-flex;align-items:center;justify-content:center;font-size:12px}
.prop-btn,.tool-prop-btn{min-width:32px;padding:0 8px}.prop-btn:hover,.prop-btn.active,.prop-select:hover,.prop-number:hover,.tool-prop-btn:hover,.tool-prop-btn.active,.tool-prop-select:hover,.tool-prop-number:hover{background:var(--dark-hover)}
.prop-btn:disabled,.tool-prop-btn:disabled{opacity:.35;cursor:default}.prop-btn.danger:hover{background:#54252a;color:#ff9ba5}.prop-btn svg,.tool-prop-btn svg{width:18px;height:18px;display:block}
.prop-select,.tool-prop-select{appearance:none;padding:0 23px 0 9px;background-image:linear-gradient(45deg,transparent 50%,#aaa 50%),linear-gradient(135deg,#aaa 50%,transparent 50%);background-position:calc(100% - 11px) 13px,calc(100% - 7px) 13px;background-size:4px 4px,4px 4px;background-repeat:no-repeat;max-width:105px}.prop-select option,.tool-prop-select option{color:#111;background:#fff}.size-preset{max-width:90px}
.prop-number,.tool-prop-number{width:57px;padding:0 7px;text-align:center;outline:none}.prop-number:focus,.tool-prop-number:focus{background:var(--dark-hover);box-shadow:inset 0 0 0 1px #7f54c7}
.color-prop,.tool-color-prop{gap:6px;padding:0 7px}#propColorDot,.tool-color-dot{width:18px;height:18px;border-radius:50%;display:inline-block;border:1px solid rgba(255,255,255,.35);box-shadow:inset 0 0 0 1px rgba(0,0,0,.1)}.chevron{font-size:10px;color:#b8b8bd}.prop-divider{width:1px;height:23px;background:#3b3c40;margin:0 2px}.strike-icon{text-decoration:line-through;text-decoration-thickness:2px}

.color-popover{position:fixed;z-index:1160;padding:9px;background:#202124;border-radius:12px;box-shadow:0 14px 35px rgba(0,0,0,.32);max-width:320px;display:flex;align-items:center;gap:7px;flex-wrap:wrap}
.color-swatch{--swatch:#fff;width:25px;height:25px;border-radius:50%;border:1px solid #5b5d62;background:var(--swatch);padding:0;flex:0 0 auto;box-shadow:inset 0 0 0 1px rgba(255,255,255,.25)}.color-swatch:hover{transform:scale(1.08)}.color-swatch.active{outline:2px solid #9c69ff;outline-offset:2px}.color-swatch.rainbow{background:conic-gradient(#f33,#fb0,#4c6,#29f,#84f,#f4c,#f33)}
.context-menu{position:fixed;z-index:1180;width:285px;padding:7px;background:#202124;color:#fff;border-radius:10px;box-shadow:0 16px 38px rgba(0,0,0,.34);font-size:13px}.context-menu button{width:100%;height:34px;border:0;border-radius:6px;background:transparent;color:#f3f3f4;display:flex;align-items:center;justify-content:space-between;padding:0 10px;text-align:left}.context-menu button:hover{background:#34363a}.context-menu button.danger-menu:hover{background:#55262a}.context-menu kbd{font:inherit;color:#aaaeb5;background:none}.menu-separator{height:1px;background:#3a3b3f;margin:6px 2px}

.zoom-controls{position:fixed;z-index:1000;right:14px;bottom:18px;display:flex;align-items:center;gap:2px;padding:4px;background:rgba(255,255,255,.97);border:1px solid #e6e6ec;border-radius:11px;box-shadow:var(--shadow)}.zoom-controls button{border:0;background:transparent;width:31px;height:31px;border-radius:7px}.zoom-controls button:hover{background:#f0f0f5}.zoom-input-wrap{height:30px;display:flex;align-items:center;padding:0 4px;border-radius:7px}.zoom-input-wrap:focus-within{background:#f0f0f5}.zoom-input-wrap input{width:42px;border:0;background:transparent;text-align:right;outline:none;font-size:11px;color:#555;padding:0}.zoom-input-wrap span{font-size:11px;color:#777}

.modal{border:0;border-radius:18px;padding:0;box-shadow:0 30px 80px rgba(0,0,0,.25);max-width:min(94vw,460px);width:440px}.modal::backdrop{background:rgba(20,18,30,.35);backdrop-filter:blur(3px)}.modal form{padding:22px}.modal h2{margin:0 0 8px;font-size:20px}.modal p{color:var(--muted);font-size:13px}.modal input[type="password"],.modal input[type="url"]{width:100%;padding:12px;border:1px solid #d9d9e2;border-radius:10px;outline:none}.modal input:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}.dialog-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:16px}.error{color:#b3261e!important}
.settings-modal{width:min(94vw,760px);max-width:760px}.settings-modal form{max-height:min(86vh,820px);overflow:auto}.settings-modal details{border-top:1px solid #ececf1;padding:10px 0}.settings-modal summary{cursor:pointer;font-weight:700;font-size:13px}.setting-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px 18px;margin-top:11px}.setting-grid label{font-size:12px;display:flex;gap:7px;align-items:flex-start}.defaults-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-top:11px}.defaults-grid fieldset{border:1px solid #e5e5eb;border-radius:10px;padding:10px}.defaults-grid legend{font-size:12px;font-weight:700}.defaults-grid label{display:flex;align-items:center;justify-content:space-between;gap:8px;font-size:11px;margin:7px 0}.defaults-grid input[type="number"],.defaults-grid select{width:92px;height:30px;border:1px solid #dcdce4;border-radius:7px;padding:0 6px}.defaults-grid input[type="color"]{width:36px;height:28px;padding:1px;border:1px solid #dcdce4;border-radius:7px;background:#fff}
.toast{position:fixed;z-index:1200;left:50%;top:68px;transform:translateX(-50%);background:#23232a;color:#fff;padding:10px 14px;border-radius:10px;box-shadow:var(--shadow);font-size:13px}.pdf-stage{position:fixed;left:-100000px;top:0;width:1400px;background:white;padding:40px;color:#111}.pdf-board{position:relative;background:#fafafa;border:1px solid #ddd;overflow:hidden}

@media (max-width:760px){
  :root{--toolbar-bottom:max(8px,env(safe-area-inset-bottom));--toolbar-h:54px}.topbar{top:8px;left:8px;right:8px}.top-actions{padding:4px}.icon-btn{padding:8px}.action-btn{padding:8px 9px;font-size:12px}.toolbar{max-width:calc(100vw - 16px)}.tool{width:43px;height:42px}.nav-main{width:43px}.tool-submenu{bottom:51px;width:238px}.zoom-controls{right:8px;bottom:66px}.inspector{left:8px;right:8px;bottom:var(--toolbar-bottom);transform:none;max-width:none}.tool-properties{left:8px;right:8px;bottom:calc(var(--toolbar-bottom) + var(--toolbar-h) + 5px);transform:none;max-width:none}.context-menu{width:min(285px,calc(100vw - 16px))}.prop-select{max-width:82px}.figma-props,.tool-props-row{overflow-x:auto}.rotation-handle{opacity:.55}.setting-grid,.defaults-grid{grid-template-columns:1fr}.settings-modal{width:94vw}
}

/* V1.6 — editor de páginas do Caderno Animado */
.board-object.flipbook.flipbook-editing{outline:2px solid #8b3dff;outline-offset:4px}
.board-object.flipbook.flipbook-transparent{background:transparent;box-shadow:none}
.board-object.flipbook.flipbook-transparent .flipbook-stack{background:transparent;box-shadow:5px 5px 0 rgba(227,227,232,.45),10px 10px 0 rgba(240,240,243,.35)}
.board-object.flipbook.flipbook-transparent .flipbook-paper{background-color:transparent;background-image:none}
.board-object.flipbook.flipbook-transparent .flipbook-paper::before{display:none}
.board-object.flipbook.flipbook-editing .flipbook-controls{display:flex}
.board-object.flipbook.flipbook-editing .flipbook-live-badge{display:none}
.flipbook-enter-edit{font-weight:700}
.flipbook-page-objects{position:absolute;inset:0;overflow:hidden;z-index:3;pointer-events:none}
.flipbook-page-object{position:absolute;transform-origin:center center;pointer-events:auto;touch-action:none;user-select:none;overflow:visible}
.flipbook-page-object.selected{outline:2px solid #8b3dff;outline-offset:2px}
.flipbook-page-object .page-content{width:100%;height:100%;white-space:pre-wrap;word-break:break-word;overflow:hidden}
.flipbook-page-object.text .page-content{padding:4px;background:transparent}
.flipbook-page-object.sticky .page-content{padding:12px}
.flipbook-page-object.image img,.flipbook-page-object.video video,.flipbook-page-object.video iframe{width:100%;height:100%;display:block;border:0}
.flipbook-page-object.image img{object-fit:contain;pointer-events:none}
.flipbook-page-object.video{background:#111}
.flipbook-page-object.video iframe{pointer-events:none}
.flipbook-page-object.drawing svg{width:100%;height:100%;display:block;pointer-events:none;overflow:visible}
.flipbook-page-object .nested-link-badge{position:absolute;right:4px;top:4px;z-index:12;width:22px;height:22px;border:0;border-radius:6px;background:rgba(255,255,255,.9);box-shadow:0 2px 8px rgba(0,0,0,.14);cursor:pointer}
.flipbook-page-object .nested-resize{position:absolute;width:10px;height:10px;border:1.5px solid #8b3dff;background:#fff;border-radius:3px;z-index:14;display:none}
.flipbook-page-object.selected .nested-resize{display:block}
.flipbook-page-object .nested-resize.nw{left:-6px;top:-6px;cursor:nwse-resize}.flipbook-page-object .nested-resize.ne{right:-6px;top:-6px;cursor:nesw-resize}.flipbook-page-object .nested-resize.sw{left:-6px;bottom:-6px;cursor:nesw-resize}.flipbook-page-object .nested-resize.se{right:-6px;bottom:-6px;cursor:nwse-resize}
.flipbook-page-object .nested-resize.n,.flipbook-page-object .nested-resize.s{width:16px;height:7px;left:50%;transform:translateX(-50%);cursor:ns-resize}.flipbook-page-object .nested-resize.n{top:-4px}.flipbook-page-object .nested-resize.s{bottom:-4px}
.flipbook-page-object .nested-resize.e,.flipbook-page-object .nested-resize.w{width:7px;height:16px;top:50%;transform:translateY(-50%);cursor:ew-resize}.flipbook-page-object .nested-resize.e{right:-4px}.flipbook-page-object .nested-resize.w{left:-4px}
.flipbook-page-object .nested-rotate{position:absolute;right:-8px;top:-28px;width:20px;height:20px;border:0;border-radius:50%;background:#fff;color:#8b3dff;box-shadow:0 1px 5px rgba(0,0,0,.18);display:none;z-index:14;cursor:crosshair}
.flipbook-page-object.selected .nested-rotate{display:grid;place-items:center}
.flipbook-editing-hint{position:absolute;right:8px;top:34px;z-index:15;padding:4px 7px;border-radius:7px;background:rgba(139,61,255,.9);color:#fff;font-size:9px;pointer-events:none}
.flipbook-paper.tool-select{cursor:default}.flipbook-paper.tool-draw{cursor:crosshair}.flipbook-paper.tool-sticky,.flipbook-paper.tool-text{cursor:crosshair}

/* V1.6 — seletor de cor RGB/HEX */
.color-mode-row{display:flex;align-items:center;justify-content:flex-end;padding:7px 12px 0}
.color-mode-toggle{height:24px;border:0;border-radius:6px;background:#f1f1f4;color:#44464d;font-size:10px;font-weight:700;padding:0 8px;cursor:pointer}
.color-mode-toggle:hover{background:#e8e8ed}
.hex-grid{padding:8px 12px 0}.hex-grid input{width:100%;height:31px;border:1px solid #d2d3d8;border-radius:4px;background:#fff;color:#17181b;text-align:center;outline:none;text-transform:uppercase}.hex-grid input:focus{border-color:#7f54c7;box-shadow:0 0 0 2px rgba(139,61,255,.12)}
.underline-icon{text-decoration:underline;text-decoration-thickness:2px;text-underline-offset:2px}

/* V1.6 — pequenas melhorias de cursor/teclado */
.board-object.keyboard-nudge,.flipbook-page-object.keyboard-nudge{transition:transform .04s linear}


/* V1.7 — manual, onion skin e controles do mini quadro */
.help-button{
  position:fixed;left:14px;bottom:max(16px,env(safe-area-inset-bottom));z-index:1002;
  width:34px;height:34px;border:1px solid #dedee6;border-radius:50%;
  background:rgba(255,255,255,.94);color:#4a4a54;font-weight:800;font-size:16px;
  box-shadow:0 6px 18px rgba(25,25,35,.12);backdrop-filter:blur(12px)
}
.help-button:hover{background:#f3f3f7}
.help-modal{width:min(760px,94vw);max-width:760px;max-height:min(82vh,760px)}
.help-shell{padding:0}
.help-header{display:flex;align-items:flex-start;justify-content:space-between;gap:20px;padding:22px 22px 14px;border-bottom:1px solid #ececf1}
.help-header h2{margin:0 0 5px}.help-header p{margin:0;color:#73737d;font-size:13px}
.help-close{border:0;background:#f1f1f5;border-radius:9px;width:34px;height:34px;font-size:22px;line-height:1;color:#4b4b55}
.help-content{padding:12px 18px 20px;overflow:auto;max-height:calc(82vh - 92px)}
.help-content details{border-bottom:1px solid #ededf2;padding:3px 0}
.help-content summary{cursor:pointer;font-weight:750;padding:13px 4px;list-style:none}
.help-content summary::-webkit-details-marker{display:none}
.help-content summary::after{content:"＋";float:right;color:#8b8b96;font-weight:500}
.help-content details[open] summary::after{content:"−"}
.help-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px 12px;padding:0 4px 14px}
.help-grid>div{display:flex;gap:10px;align-items:flex-start;min-height:36px}
.help-grid kbd{white-space:nowrap;border:1px solid #d9d9e1;border-bottom-width:2px;background:#f8f8fa;border-radius:6px;padding:3px 6px;font-size:11px}
.help-grid span,.help-copy{font-size:12px;color:#5f5f69;line-height:1.45}.help-copy{padding:0 4px 14px}.help-copy p{margin:0 0 9px}

.flipbook-onion-layer{position:absolute;inset:0;overflow:hidden;z-index:2;pointer-events:none;opacity:.18;filter:saturate(.75)}
.flipbook-onion-layer .flipbook-page-object{pointer-events:none!important;opacity:.88}
.flipbook-onion-layer .nested-link-badge,.flipbook-onion-layer .nested-resize,.flipbook-onion-layer .nested-rotate{display:none!important}
.flipbook-onion-layer .flipbook-page-object.drawing{filter:none}
.flipbook-page-objects{z-index:3}
.flipbook-controls .flipbook-remove{font-size:16px;font-weight:800}
.flipbook-controls .flipbook-onion{font-size:15px}
.flipbook-controls .flipbook-onion.active{background:#5b36c9;color:#fff}
.flipbook-controls button:disabled{opacity:.32;cursor:not-allowed}
.flipbook-editing-hint{max-width:150px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}

@media (max-width:760px){
  .help-button{left:8px;bottom:66px}
  .help-grid{grid-template-columns:1fr}
}

/* V1.8 — caderno integrado ao quadro, controles no cabeçalho e onion skin */
.flipbook-binding{
  height:34px;padding:0 7px;gap:6px;cursor:grab;background:rgba(247,247,249,.98)
}
.flipbook-binding:active{cursor:grabbing}
.flipbook-binding::before{width:42px;flex:0 0 42px}
.flipbook-binding .flipbook-title{margin-left:auto;font-size:9px;color:#8b8c94;white-space:nowrap}
.flipbook-paper{top:34px}
.flipbook-header-controls{display:none;align-items:center;gap:2px;margin-left:auto;min-width:0;pointer-events:auto}
.board-object.flipbook.selected .flipbook-header-controls{display:flex}
.board-object.flipbook.selected .flipbook-title{display:none}
.flipbook-header-controls button,.flipbook-header-controls select{
  height:25px;border:0;border-radius:6px;background:transparent;color:#3f4047;font-size:10px;padding:0 6px;outline:none
}
.flipbook-header-controls button:hover,.flipbook-header-controls select:hover{background:#e9e9ee}
.flipbook-header-controls button:disabled,.flipbook-header-controls select:disabled{opacity:.32;cursor:not-allowed}
.flipbook-header-controls .flipbook-page-count{min-width:36px;color:#6d6e76;font-size:9px;text-align:center;margin:0}
.flipbook-header-controls .flipbook-add,.flipbook-header-controls .flipbook-remove{font-size:15px;font-weight:800;min-width:23px;padding:0 4px}
.flipbook-header-controls .flipbook-onion{font-size:14px;line-height:1;min-width:28px;padding:0 4px;filter:saturate(.8)}
.flipbook-header-controls .flipbook-onion.active{background:#efe5ff;color:#6e31d9;box-shadow:inset 0 0 0 1px rgba(139,61,255,.20)}
.flipbook-bg-select{max-width:78px}
.flipbook-gif{font-weight:800;letter-spacing:.02em}
.flipbook-onion-layer{opacity:.29;filter:sepia(.36) saturate(1.45) hue-rotate(322deg);mix-blend-mode:multiply}
.flipbook-onion-layer .flipbook-page-object{opacity:.92}
.board-object.flipbook.flipbook-editing{outline:none}
.flipbook-editing-hint,.flipbook-controls,.flipbook-enter-edit{display:none!important}
.inspector.inspector-with-toolbar{bottom:calc(var(--toolbar-bottom) + var(--toolbar-h) + 6px)}

@media (max-width:760px){
  .flipbook-binding{height:36px;padding:0 5px}.flipbook-paper{top:36px}.flipbook-binding::before{width:28px;flex-basis:28px}
  .flipbook-header-controls{gap:1px}.flipbook-header-controls button,.flipbook-header-controls select{height:26px;padding:0 4px;font-size:9px}.flipbook-bg-select{max-width:66px}
  .inspector.inspector-with-toolbar{bottom:calc(var(--toolbar-bottom) + var(--toolbar-h) + 5px)}
}


/* V1.10 — identificação dos alunos */
.student-name-btn{
  height:36px;max-width:220px;border:0;border-radius:9px;background:#f4f4f7;color:#2e2e34;
  display:flex;align-items:center;gap:7px;padding:0 10px;font-weight:700;font-size:12px;white-space:nowrap;
}
.student-name-btn:hover{background:#ececf2}
.student-name-btn #studentNameText{max-width:165px;overflow:hidden;text-overflow:ellipsis}
.student-name-edit{font-size:11px;opacity:.55}
.student-name-dialog input[type="text"]{width:100%;padding:12px;border:1px solid #d9d9e2;border-radius:10px;outline:none}
.student-name-dialog input[type="text"]:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}
.object-author-label{
  position:absolute;left:0;top:0;pointer-events:none;user-select:none;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;
  color:rgba(52,52,60,.62);font:600 11px/1.2 Arial,sans-serif;letter-spacing:.01em;transform-origin:0 0;
  text-shadow:0 1px 2px rgba(255,255,255,.92);padding:1px 2px;
}
.flipbook-author-label{
  position:absolute;pointer-events:none;user-select:none;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;
  color:rgba(52,52,60,.65);font:600 9px/1.2 Arial,sans-serif;text-shadow:0 1px 2px rgba(255,255,255,.95);
  padding:1px 2px;box-sizing:border-box;
}
@media (max-width:760px){
  .student-name-btn{max-width:125px;padding:0 8px}.student-name-btn #studentNameText{max-width:86px}
}

/* V1.11 — camadas, navegação por toque prolongado e propriedades adicionais */
.nav-main{position:relative}
.tool-more-indicator{position:absolute;right:5px;bottom:5px;width:0;height:0;border-left:3px solid transparent;border-right:3px solid transparent;border-top:4px solid currentColor;opacity:.32;pointer-events:none}
.nav-main.nav-hold-armed .tool-more-indicator{opacity:.75}

.opacity-control{height:34px;display:flex;align-items:center;gap:3px;padding:0 6px;border-radius:7px;color:#e8e8ec;background:transparent;font-size:11px;white-space:nowrap}
.opacity-control:hover,.opacity-control:focus-within{background:#34353a}
.opacity-control input{width:42px;border:0;outline:none;background:transparent;color:#fff;text-align:right;font-size:11px;padding:0}
.opacity-control .opacity-icon{font-size:14px;opacity:.8}
.opacity-control:has(input:disabled){opacity:.35;pointer-events:none}

.draw-instruments{display:flex;align-items:center;gap:2px}
.draw-instrument-btn{width:34px;height:34px;border:0;border-radius:8px;background:transparent;color:#f1f1f3;display:grid;place-items:center;padding:0}
.draw-instrument-btn:hover{background:#38393e}.draw-instrument-btn.active{background:#6f3bd8;color:#fff}
.draw-instrument-btn svg{width:20px;height:20px;display:block}
.draw-instrument-btn[data-instrument="highlighter"]{color:#ffe13a}.draw-instrument-btn[data-instrument="eraser"]{color:#ff7f8f}

.layers-button{position:fixed;z-index:1005;width:46px;height:46px;border:1px solid #e3e3e8;border-radius:13px;background:rgba(255,255,255,.98);box-shadow:0 8px 24px rgba(25,25,35,.16);display:grid;place-items:center;color:#34343b;transition:background .12s,box-shadow .12s,transform .12s}
.layers-button:hover,.layers-button.active{background:#f1e9ff;color:#6c2dd0}
.layers-icon{position:relative;width:23px;height:20px;display:block}.layers-icon i{position:absolute;left:2px;width:18px;height:11px;border:1.7px solid currentColor;border-radius:3px;background:#fff}.layers-icon i:nth-child(1){top:0}.layers-icon i:nth-child(2){top:4px;left:4px}.layers-icon i:nth-child(3){top:8px;left:6px}
.layers-button.active .layers-icon i{background:#f1e9ff}
.layers-panel{position:fixed;z-index:1135;width:min(330px,calc(100vw - 20px));max-height:min(520px,65vh);background:#202124;color:#fff;border-radius:14px;box-shadow:0 18px 45px rgba(0,0,0,.34);overflow:hidden;border:1px solid rgba(255,255,255,.07)}
.layers-header{height:52px;display:flex;align-items:center;justify-content:space-between;padding:0 12px;border-bottom:1px solid rgba(255,255,255,.08)}
.layers-header strong{display:block;font-size:13px}.layers-header small{display:block;font-size:9px;color:#aeb0b7;margin-top:2px}.layers-header button{width:30px;height:30px;border:0;border-radius:7px;background:transparent;color:#d7d8dc;font-size:20px}.layers-header button:hover{background:#33343a}
.layers-list{overflow:auto;max-height:calc(min(520px,65vh) - 52px);padding:6px}
.layer-row{display:grid;grid-template-columns:24px 30px minmax(0,1fr) auto;align-items:center;gap:5px;min-height:42px;padding:4px 5px;border-radius:9px;color:#ececf0;user-select:none}
.layer-row:hover{background:#2d2e33}.layer-row.selected{background:#51308b}.layer-row.dragging{opacity:.45}.layer-row.drop-before{box-shadow:inset 0 2px #a976ff}.layer-row.drop-after{box-shadow:inset 0 -2px #a976ff}
.layer-grip{cursor:grab;opacity:.38;font-size:15px;text-align:center;touch-action:none}.layer-grip:active{cursor:grabbing}.layer-type-icon{width:28px;height:28px;border-radius:7px;background:#35363b;display:grid;place-items:center;font-size:13px}.layer-copy{min-width:0}.layer-title{display:block;font-size:11px;font-weight:650;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.layer-author{display:block;font-size:9px;color:#aeb0b7;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-top:1px}
.layer-actions{display:flex;align-items:center;gap:1px}.layer-actions button{width:25px;height:25px;border:0;border-radius:6px;background:transparent;color:#cfd0d5;font-size:13px;padding:0}.layer-actions button:hover{background:#424349;color:#fff}.layer-actions button:disabled{opacity:.24;cursor:default}
.layer-lock-mark{font-size:10px;opacity:.45;margin-left:2px}
.layers-empty{padding:28px 16px;text-align:center;color:#9fa1a8;font-size:11px}

/* A opacidade pertence ao elemento inteiro; desenhos usam inkOpacity apenas para o tipo de caneta. */
.board-object{opacity:var(--element-opacity,1)}
.flipbook-page-object{opacity:var(--element-opacity,1)}

@media (max-width:760px){
  .layers-button{width:42px;height:42px;border-radius:12px}.layers-panel{max-height:55vh}.layer-row{min-height:45px}
}

/* Roleta interativa: título livre para movimentar, controles independentes. */
.board-object.roulette{background:#fff;border:1px solid #d8d8de;border-radius:16px;box-shadow:0 8px 28px #0002;overflow:hidden;min-width:280px;min-height:220px}
.roulette-title{height:36px;padding:8px 14px;font-weight:700;cursor:move;background:#f3f4f8;font-size:14px}.roulette-title small{font-weight:400;color:#667085;margin-left:12px}
.roulette-layout{display:grid;grid-template-columns:1.35fr 1fr;height:calc(100% - 36px);gap:16px;padding:16px;box-sizing:border-box}.roulette-stage{position:relative;display:flex;align-items:center;justify-content:center;min-width:0;min-height:0}.roulette-spin{position:relative;width:100%;height:100%;border:0;background:transparent;padding:0;cursor:pointer}.roulette-spin svg{width:100%;height:100%;filter:drop-shadow(0 3px 4px #0002)}.roulette-hub{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);border-radius:50%;background:white;box-shadow:0 2px 8px #0003;padding:16px;font-size:14px;font-weight:700}.roulette-pointer{position:absolute;right:-8px;top:50%;transform:translateY(-50%);font-size:32px;color:#292345;pointer-events:none}.roulette-editor{display:flex;flex-direction:column;gap:8px;min-width:0;min-height:0;font-size:14px}.roulette-editor label{display:flex;flex-direction:column;gap:6px;flex:1;min-height:50px}.roulette-editor textarea{width:100%;flex:1;min-height:40px;resize:none;border:1px solid #b9bdc8;border-radius:8px;padding:10px;box-sizing:border-box;font:16px/1.5 Arial;touch-action:auto}.roulette-count{color:#667085;font-size:11px}.roulette-result{font-size:24px;font-weight:700;color:#44318b;overflow-wrap:anywhere;max-height:90px;overflow:auto}.roulette-actions{display:flex;gap:6px;flex-wrap:wrap}.roulette-actions[hidden]{display:none}.roulette-actions button{border:1px solid #c6c1d9;border-radius:8px;background:#f3efff;color:#30204c;padding:8px;cursor:pointer;font-size:12px}.roulette-spin:disabled{cursor:default}.roulette-editor button:focus-visible,.roulette-spin:focus-visible{outline:3px solid #6955d3;outline-offset:2px}
.settings-section{border-bottom:1px solid #e0e1e6;padding:16px 0}.settings-section h3{margin:0 0 14px;font-size:16px}.settings-note{font-size:12px;color:#626675}.shape-svg{width:100%;height:100%;display:block;overflow:visible;pointer-events:none}.shape-tools{flex-wrap:wrap;max-width:min(94vw,880px)}.shape-tools label,.shape-inspector label{display:flex;gap:5px;align-items:center;font-size:12px;white-space:nowrap}.shape-tools input[type=color],.shape-inspector input[type=color]{width:30px;height:30px;border:0;padding:0;background:transparent}.shape-inspector{display:flex;align-items:center;gap:8px}.tool-shape .board-object,.tool-draw .board-object{pointer-events:none}.tool-shape #viewport{cursor:crosshair}.layer-type-icon svg{width:23px;height:23px}.layer-copy{min-width:0;flex:1}.layer-menu{position:relative;margin-left:auto;border:0!important;padding:0!important}.layer-menu summary{list-style:none;cursor:pointer;border-radius:6px;padding:8px}.layer-menu summary::-webkit-details-marker{display:none}.layer-menu .layer-actions{position:absolute;right:0;top:100%;z-index:10;background:white;box-shadow:0 4px 18px #0003;border-radius:8px;padding:7px;display:flex;gap:4px}.layer-menu:not([open]) .layer-actions{display:none}.layer-row{overflow:visible}.layer-title{font-weight:650}.layer-author{font-size:10px}.board-object.shape{background:transparent}.tool-props-row{max-width:94vw}.draw-instruments{flex-shrink:0}
.layer-menu .layer-actions{background:#303137;border:1px solid #585963;top:auto;bottom:100%}.layer-menu summary{color:#dedee4}.layer-row{grid-template-columns:18px 28px minmax(0,1fr) 38px}.object-author-label.editable-name{pointer-events:auto;cursor:pointer}.tool-shape,.tool-draw{cursor:crosshair}.tool-props-row{overflow-x:auto}.tool-props-row.shape-tools{overflow-x:visible}
.board-object.shape{pointer-events:none;min-width:0;min-height:0}.board-object.shape .shape-svg path{pointer-events:visiblePainted}.tool-shape .board-object.shape .shape-svg path,.tool-draw .board-object.shape .shape-svg path{pointer-events:none}.object-author-label.editable-name:focus-visible{outline:2px solid var(--accent)}
/* V1.14 — painel de formas */
.tool-properties.shape-panel-open{padding:0;border:1px solid #414149;border-radius:18px;overflow:hidden;max-height:calc(100vh - 160px);overflow-y:auto}.shape-panel{width:480px;max-width:calc(100vw - 28px);padding:18px;box-sizing:border-box;white-space:normal;background:#202124;color:#f7f7fa}.shape-panel-header{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:14px}.shape-panel-header strong{display:block;font-size:15px;letter-spacing:.1px}.shape-panel-header small{display:block;color:#a9abb7;font-size:11px;margin-top:4px}.vector-badge{border:1px solid #64517f;background:#352944;color:#d8bdff;border-radius:6px;font-size:10px;padding:4px 7px}.shape-picks{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:6px;margin-bottom:16px}.shape-pick{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:7px;border:1px solid #41424a;border-radius:9px;padding:10px 2px;min-height:65px;background:#2b2c32;color:#b8bac6;cursor:pointer;transition:background .15s,border-color .15s,transform .15s}.shape-pick:hover{background:#37353f;transform:translateY(-1px)}.shape-pick.active{background:#42305d;border-color:#b982ff;color:#f1e5ff}.shape-pick svg{width:23px;height:23px}.shape-pick span{font-size:10px}.shape-style-controls{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-bottom:12px}.shape-paint{background:#2b2c32;border:1px solid #41424a;border-radius:10px;padding:10px}.shape-paint>label:first-child{display:flex;align-items:center;justify-content:space-between;font-size:12px}.shape-paint input[type=color]{width:35px;height:28px;padding:0;border:1px solid #555563;border-radius:5px;background:transparent;cursor:pointer}.shape-paint-off{display:flex;gap:6px;align-items:center;margin-top:9px;font-size:10px;color:#b4b5bf}.shape-paint-off input{margin:0;accent-color:#ac76ef}.shape-extra-controls{display:flex;gap:10px;margin-bottom:14px}.shape-extra-controls label{display:flex;flex:1;align-items:center;justify-content:space-between;gap:8px;font-size:11px;color:#b4b5bf}.shape-extra-controls input{width:58px;box-sizing:border-box;background:#303138;border:1px solid #4b4c57;border-radius:7px;color:white;padding:6px}.shape-mode-controls{border-top:1px solid #3c3d45;padding-top:12px}.shape-mode-controls>span{display:block;font-size:11px;color:#b4b5bf;margin-bottom:8px}.shape-mode-tabs{display:grid;grid-template-columns:1fr 1fr;gap:8px}.shape-mode-tab{border:1px solid #464752;border-radius:9px;background:#2b2c32;padding:10px;text-align:left;color:#b4b5bf;cursor:pointer}.shape-mode-tab strong{font-size:12px;display:block}.shape-mode-tab small{display:block;font-size:10px;margin-top:4px;line-height:1.3}.shape-mode-tab.active{border-color:#b982ff;background:#42305d;color:#efe2ff}.shape-panel-hint{font-size:10px;color:#9698a5;text-align:center;margin:13px 0 0}.shape-pick:focus-visible,.shape-mode-tab:focus-visible{outline:2px solid #d2adff;outline-offset:2px}.shape-break-button{width:auto!important;padding:0 10px;font-size:11px}.shape-selected-hint{font-size:10px;color:#bdbdc8}
@media(max-width:600px){.shape-panel{width:100%;max-width:none;padding:13px}.shape-picks{gap:4px}.shape-pick{padding:8px 1px;min-height:60px}.shape-pick span{font-size:9px}.shape-extra-controls{flex-wrap:wrap}.tool-properties.shape-panel-open{max-height:calc(100dvh - 150px)}}
/* v1.15: seletor compacto e edição direta dos cantos. */
.tool-properties.shape-panel-open{width:auto;max-width:calc(100vw - 24px);padding:5px;border-radius:12px;background:var(--toolbar-bg,#202124)}
.shape-panel-open .shape-picks{display:flex;gap:3px;grid-template-columns:none;margin:0}
.shape-panel-open .shape-pick{width:42px;height:42px;min-height:0;padding:9px;border:0;border-radius:8px;background:transparent;color:#ddd}
.shape-panel-open .shape-pick.active{background:#57505f;color:#fff}
.shape-panel-open .shape-pick:hover{background:#444}
.shape-pick svg{width:24px;height:24px}
.selection-box.move-through-center{pointer-events:auto;cursor:move;background:transparent}
.selection-box.area-selected .resize-handle,.selection-box.area-selected .rotation-handle{display:none}
.corner-round-handle{position:absolute;pointer-events:auto;cursor:nwse-resize;width:13px;height:13px;padding:0;border:2px solid #8b3dff;border-radius:50%;background:white;transform:translate(-50%,-50%);z-index:4}
.shape-corner-properties{position:relative;font-size:12px;color:inherit}
.shape-corner-properties summary{cursor:pointer;padding:8px;list-style:none}
.corner-fields{position:absolute;bottom:42px;left:0;width:230px;display:grid;grid-template-columns:1fr 1fr;gap:10px;padding:14px;border-radius:12px;background:#252329;color:#fff;box-shadow:0 6px 24px #0005}
.corner-fields label{display:flex;flex-direction:column;gap:5px;font-size:11px}
.corner-fields input{width:88px;border:1px solid #666;border-radius:5px;padding:6px;background:#333;color:#fff}
/* v1.16 — pintura, texto e conexões das formas. */
.shape-svg{overflow:visible!important;width:100%;height:100%;display:block}
.shape-text{position:absolute;inset:0;display:flex;flex-direction:column;justify-content:center;white-space:pre-wrap;overflow-wrap:anywhere;padding:12px;box-sizing:border-box;pointer-events:none;line-height:1.25;background:transparent!important;min-height:0!important;overflow:hidden}
.shape-text[contenteditable=true]{pointer-events:auto;user-select:text;cursor:text;outline:0;background:#ffffffd9!important;z-index:20}
.shape-text[contenteditable=true]:empty:before{content:attr(data-placeholder);color:#999}
.shape-paint-button svg{width:23px;height:23px}
.shape-corner-properties summary{display:flex;align-items:center;gap:5px}
.shape-corner-properties summary svg{width:19px;height:19px}
.shape-fields{grid-template-columns:1fr;width:276px;max-height:calc(100vh - 110px);overflow-y:auto}
.shape-fields label{font-size:12px}
.shape-numeric-pair{display:flex;align-items:center;gap:10px}
.shape-numeric-pair input[type=number]{width:68px}
.shape-numeric-pair input[type=range]{width:150px;padding:0;border:0;accent-color:#a773ef;cursor:pointer}
.shape-floating-properties{position:fixed;bottom:auto;box-sizing:border-box;z-index:2000;padding:16px;max-width:calc(100vw - 16px)}
.shape-paint-popover{display:flex;align-items:center;gap:12px;width:auto!important;padding:14px;color:#fff;background:#26232d}
.shape-paint-popover input[type=color]{width:46px;height:34px;cursor:pointer}
.shape-paint-popover button{background:#39353f;border:1px solid #706878;border-radius:6px;color:#fff;padding:8px;cursor:pointer}
.inspector-number-range{width:58px!important;min-width:58px;padding:0!important;accent-color:#a773ef;height:25px}
.flow-handle{position:absolute;pointer-events:auto;z-index:18;width:18px;height:18px;padding:0;border:2px solid #fff;border-radius:50%;background:#8b3dff;color:#fff;font-size:14px;line-height:12px;box-shadow:0 0 0 1px #8b3dff;cursor:crosshair}
.flow-handle:hover{width:24px;height:24px;line-height:18px}
.flow-handle.right{right:-17px;top:50%;transform:translate(50%,-50%)}
.flow-handle.left{left:-17px;top:50%;transform:translate(-50%,-50%)}
.flow-handle.top{top:-17px;left:50%;transform:translate(-50%,-50%)}
.flow-handle.bottom{bottom:-17px;left:50%;transform:translate(-50%,50%)}
.flow-target{outline:3px solid #8b3dff!important;outline-offset:3px}
.flipbook-shape-preview,.flow-page-preview{position:absolute;inset:0;width:100%;height:100%;z-index:25;pointer-events:none}
.page-marquee{position:absolute;border:1.5px solid #8b3dff;background:#8b3dff20;z-index:30;pointer-events:none}
.flipbook-page-object.shape{pointer-events:none}
.flipbook-page-object.shape .shape-svg path{pointer-events:visiblePainted}
.flipbook-page-object.shape.selected{pointer-events:auto}
.flipbook-paper.tool-shape .flipbook-page-object.shape .shape-svg path,.flipbook-paper.tool-draw .flipbook-page-object.shape .shape-svg path{pointer-events:none}
.flipbook-paper.tool-shape .flipbook-page-object,.flipbook-paper.tool-draw .flipbook-page-object{pointer-events:none}
@media(max-width:600px){.shape-numeric-pair input[type=range]{width:130px}.shape-fields{width:260px}.shape-paint-popover{max-width:calc(100vw - 20px)}}
.tool-shape .board-object.flipbook,.tool-draw .board-object.flipbook{pointer-events:auto}
.flipbook-page-object:not(.selected)>.flow-handle{display:none}
/* v1.17 — categorias compactas e edição de conexões. */
.shape-inspector-compact .figma-props>.text-prop,.shape-inspector-compact .figma-props>.draw-prop,.shape-inspector-compact .figma-props>.media-prop,.shape-inspector-compact .figma-props>.single-prop,.shape-inspector-compact .figma-props>.inspector-number-range{display:none!important}
.category-button{width:auto!important;padding:0 10px!important;font-size:12px}
.text-category-panel{width:340px;max-width:calc(100vw - 16px);padding:14px;color:white;background:#202124;display:flex;flex-direction:column;gap:12px}
.text-category-panel textarea{width:100%;resize:vertical;min-height:72px;background:#333;color:#fff;border:1px solid #5e5965;border-radius:7px;padding:9px}
.text-category-controls{display:flex;flex-wrap:wrap;align-items:center;gap:5px}
.text-category-controls .prop-select{background:#333;color:white}
.shape-paint-popover{display:flex;flex-direction:column;align-items:stretch;width:350px!important;max-width:calc(100vw - 16px);gap:12px}
.paint-modes{display:flex;gap:4px;border-bottom:1px solid #555;padding-bottom:10px}
.paint-modes button{font-size:11px;padding:7px}.paint-modes button.active{background:#8b3dff;border-color:#8b3dff}
.paint-palette{display:grid;grid-template-columns:repeat(10,minmax(0,1fr));gap:6px}
.paint-color{width:25px;height:25px;padding:0!important;border:1px solid #999!important;border-radius:50%!important;cursor:pointer}
.paint-color.active{outline:2px solid #b67bff;outline-offset:2px}
.paint-width-control{display:flex;flex-direction:column;gap:8px;font-size:12px}
.corner-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.corner-grid label{display:flex;flex-direction:row;align-items:center;gap:8px;background:#333;border-radius:8px;padding:8px}
.corner-grid svg{width:25px;height:25px;flex-shrink:0}.corner-grid input{width:64px!important}
.connector-properties{width:320px;max-width:calc(100vw - 16px);display:flex;flex-direction:column;gap:12px;padding:15px;background:#202124;color:white}
.connector-properties label{display:flex;align-items:center;justify-content:space-between;gap:8px;font-size:12px}
.connector-properties select,.connector-properties button{background:#333;color:white;border:1px solid #5e5965;padding:7px;border-radius:6px}
.connector-properties .paint-width-control{align-items:stretch;flex-direction:column}
.connector-selected .resize-handle,.connector-selected .rotation-handle{display:none!important}
.connector-handle{position:absolute;width:12px;height:12px;padding:0;background:white;border:2px solid #8b3dff;border-radius:50%;transform:translate(-50%,-50%);pointer-events:auto;z-index:25;cursor:move}
.connector-handle.bend{background:#8b3dff;width:10px;height:10px}
.connector-selected{border-color:transparent!important}.editing-connector{pointer-events:none!important}
.tool-select .board-object.shape .shape-interior-hit,.flipbook-paper.tool-select .shape-interior-hit{pointer-events:all!important}
.tool-shape .shape-interior-hit,.tool-draw .shape-interior-hit{pointer-events:none!important}
@media(max-width:600px){.paint-color{width:23px;height:23px}.shape-paint-popover{width:330px!important}.corner-grid input{width:52px!important}}
.connector-label{inset:auto;display:block;width:max-content;max-width:240px;height:auto;min-height:0;padding:3px 7px;transform:translate(-50%,-50%);background:var(--bg,#f8f8fa)!important;border-radius:4px;white-space:pre-wrap;overflow:hidden;pointer-events:none}
.shape-inspector-compact #duplicateBtn,.shape-inspector-compact #groupBtn{display:none!important}
.connector-object.selected{outline:none!important;box-shadow:none!important}

/* V1.19 */
.sticky-placement-preview{position:fixed;z-index:100;pointer-events:none;opacity:.5;transform:translate(-50%,-50%);box-shadow:0 4px 16px #0002;border:1px dashed #777;border-radius:2px}
.move-blocked,.move-blocked .content,.move-blocked .shape-svg path{cursor:not-allowed!important}.move-blocked.editing .content{cursor:text!important}
.layer-section-title{font-size:12px;margin:14px 8px 6px;color:#6b6376;border-bottom:1px solid #ddd;padding-bottom:6px}

.copy-blocked-text{position:absolute;right:4px;top:4px;z-index:20;display:none;pointer-events:auto;cursor:pointer!important;background:#fff;color:#26212c;border:1px solid #b8b3c0;border-radius:6px;padding:6px 9px;font:12px Arial;box-shadow:0 2px 8px #0002}.board-object:hover>.copy-blocked-text,.flipbook-page-object:hover>.copy-blocked-text,.board-object:focus-within>.copy-blocked-text,.flipbook-page-object:focus-within>.copy-blocked-text{display:block}

/* V1.22 controls */
.shape-mode-buttons{display:flex;gap:8px;flex-wrap:wrap}.shape-mode-button{position:relative;display:flex!important;gap:7px;padding:9px 12px!important;border:1px solid #777;border-radius:8px;cursor:pointer;background:#303036;color:#eee}.shape-mode-button:has(input:checked){background:#7043ad;border-color:#be9bf2}.shape-mode-button input{accent-color:#bf9af5;width:15px!important}
.corner-grid{position:relative;gap:20px}.corner-link{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);border:1px solid #aaa;border-radius:50%;width:30px;height:30px;background:#333;z-index:2;cursor:pointer}.corner-link.active{background:#7043ad}.alpha-control{display:flex!important;align-items:center;gap:8px;padding:8px 10px;font-size:12px;grid-column:1/-1}.alpha-control input[type=range]{min-width:70px;flex:1}.alpha-control input[type=number]{width:55px;min-width:45px}.settings-alpha{width:58px!important}

#gelGlitter{position:fixed;inset:0;width:100%;height:100%;pointer-events:none;z-index:900}.ui-icon,button>svg,.tool-svg svg,.submenu-icon svg{width:22px;height:22px;display:inline-block;vertical-align:middle;flex-shrink:0}.draw-instrument-btn svg{width:27px;height:27px}.prop-btn svg{width:18px;height:18px}.category-button{display:inline-flex;align-items:center;gap:6px}.layer-type-icon svg{width:21px;height:21px}

.draw-instruments{gap:5px;padding:4px;border-radius:12px;background:#24242a}.draw-instrument-btn{display:grid;place-items:center;width:42px;height:42px;border-radius:9px;border:1px solid transparent!important;transition:background .15s,border-color .15s}.draw-instrument-btn.active{background:#6d43aa!important;border-color:#c3a4ed!important}.draw-instrument-btn:hover{background:#42424c}.action-btn{display:inline-flex;align-items:center;justify-content:center;gap:7px}.lock-badge svg,.link-badge svg,.flipbook-header-controls svg,.corner-link svg,.nested-rotate svg{width:16px;height:16px}.flow-handle svg{width:14px;height:14px}.rotation-handle svg{width:17px;height:17px}.layer-grip svg{width:16px;height:16px}.layer-actions button svg{width:16px;height:16px}

.corner-link{color:#fff}.icon-btn svg{width:20px;height:20px}.action-btn>svg{width:18px;height:18px}.layers-icon{display:inline-flex;align-items:center;justify-content:center}.layer-menu summary svg{width:18px;height:18px}

/* Bitmap fragments keep their exact pixel bounds, including thin remnants. */
.board-object.drawing,.flipbook-page-object.drawing{min-width:0;min-height:0}
.bitmap-live-stroke{display:block;pointer-events:none!important}
.brush-cursor{position:fixed;z-index:1000000;pointer-events:none;border:1px solid #fff;border-radius:50%;box-shadow:0 0 0 1px #25252a;transform:translate(-50%,-50%);contain:layout style}
#viewport.brush-cursor-active,#viewport.brush-cursor-active .flipbook-paper.tool-draw{cursor:none!important}

.save-status{pointer-events:none;align-self:center;font-size:11px;color:#66716d;padding:5px 9px;border-radius:8px;background:rgba(255,255,255,.9)}
.save-status[data-state="pending"]{color:#7252a3}.save-status[data-state="retry"]{color:#986324}

.save-status[data-state="error"]{color:#a1262d}
