@font-face{font-family:JetBrains Mono;font-style:normal;font-display:swap;font-weight:400;src:url(./jetbrains-mono-latin-400-normal-V6pRDFza.woff2) format("woff2"),url(./jetbrains-mono-latin-400-normal-6-qcROiO.woff) format("woff")}@font-face{font-family:JetBrains Mono;font-style:normal;font-display:swap;font-weight:400;src:url(./jetbrains-mono-latin-ext-400-normal-Bc8Ftmh3.woff2) format("woff2"),url(./jetbrains-mono-latin-ext-400-normal-fXTG6kC5.woff) format("woff")}@font-face{font-family:JetBrains Mono;font-style:normal;font-display:swap;font-weight:700;src:url(./jetbrains-mono-latin-700-normal-BYuf6tUa.woff2) format("woff2"),url(./jetbrains-mono-latin-700-normal-D3wTyLJW.woff) format("woff")}@font-face{font-family:JetBrains Mono;font-style:normal;font-display:swap;font-weight:700;src:url(./jetbrains-mono-latin-ext-700-normal-CZipNAKV.woff2) format("woff2"),url(./jetbrains-mono-latin-ext-700-normal-CxPITLHs.woff) format("woff")}:root{color-scheme:dark;--bg: #1b1f27;--surface: #262b36;--surface-2: #2e3441;--accent: #9cae79;--accent-strong: #b3c48f;--text: #eef1f6;--text-muted: #9aa4b5;--border: #3a4150;--success: #8fd19e;--warning: #e0b955;--danger: #e08585;--mono: "JetBrains Mono", ui-monospace, "SF Mono", Menlo, Consolas, "Liberation Mono", "Courier New", monospace;--radius: 6px;--radius-lg: 10px;--safe-top: env(safe-area-inset-top, 0px);--safe-bottom: env(safe-area-inset-bottom, 0px);--safe-left: env(safe-area-inset-left, 0px);--safe-right: env(safe-area-inset-right, 0px);font-family:system-ui,sans-serif}*{box-sizing:border-box}html,body,#root{height:100%}body{margin:0;background:var(--bg);color:var(--text);overscroll-behavior:none;-webkit-tap-highlight-color:transparent}button,select,input,textarea{font:inherit;color:inherit}button{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);min-width:44px;min-height:44px;padding:.4rem .7rem;cursor:pointer;touch-action:manipulation;-webkit-user-select:none;user-select:none}button:disabled{opacity:.35;cursor:default}button.active,button.primary{border-color:var(--accent);color:var(--accent)}button.danger{border-color:var(--danger);color:var(--danger)}button.filled{background:var(--accent);color:var(--bg);border-color:var(--accent)}button.small{min-width:36px;min-height:36px;padding:.2rem .5rem;font-size:.9rem}button.ghost{background:transparent}a{color:var(--accent)}textarea,input[type=text],input[type=number],input[type=search]{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:.5rem;width:100%}textarea{font-family:var(--mono)}input:focus,textarea:focus,select:focus{border-color:var(--accent);outline:none}select{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:.5rem;min-height:44px}input[type=range]{accent-color:var(--accent);min-height:36px}input[type=checkbox]{accent-color:var(--accent);width:1.2rem;height:1.2rem}kbd{border:1px solid var(--text-muted);color:var(--text-muted);border-radius:4px;padding:.05rem .4rem;font-size:.8rem}.mono{font-family:var(--mono)}.muted{color:var(--text-muted)}.accent{color:var(--accent)}.row{display:flex;gap:.5rem;align-items:center;flex-wrap:wrap}.col{display:flex;flex-direction:column;gap:.5rem}.grow{flex:1;min-width:0}.button-row{display:flex;flex-wrap:wrap;gap:.5rem}.section-title{color:var(--accent);font-size:.95rem;margin:.75rem 0 .35rem;font-weight:600}.chip{display:inline-flex;align-items:center;gap:.3rem;border:1px solid var(--border);background:var(--surface);border-radius:4px;padding:.1rem .45rem;font-family:var(--mono);font-size:.8rem;color:var(--text-muted)}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg)}.label{font-size:.85rem;color:var(--text-muted)}.hr{border-top:1px solid var(--border);margin:.6rem 0}.app-name-accent{color:var(--accent)}.app-name{letter-spacing:.01em}.app-name-zl{color:var(--accent);font-weight:800;font-size:1.18em;letter-spacing:-.02em}.app-shell{display:flex;flex-direction:column;height:100%;overflow:hidden}.app-bar{background:var(--surface);border-bottom:1px solid var(--border);display:flex;align-items:center;gap:.6rem;padding:calc(.6rem + var(--safe-top)) calc(1rem + var(--safe-right)) .6rem calc(1rem + var(--safe-left));flex-shrink:0}.app-bar h1{flex:1;display:flex;align-items:center;gap:.6rem;margin:0;font-size:1.15rem}.app-logo{flex-shrink:0}.app-bar-actions{display:flex;align-items:center;gap:.5rem}.app-bar-actions button,.icon-button{background:transparent}.link-btn{display:inline-flex;align-items:center;gap:.35rem;min-height:44px;padding:.3rem .7rem;border:1px solid var(--border);border-radius:var(--radius);color:var(--accent);text-decoration:none}.small-text{font-size:.85rem}.home{flex:1;overflow-y:auto;width:100%;--home-side: max(0px, (100% - 1100px) / 2);padding:1rem calc(1rem + var(--safe-right) + var(--home-side)) calc(2rem + var(--safe-bottom)) calc(1rem + var(--safe-left) + var(--home-side))}.home-actions{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:.5rem;max-width:640px}.big-action{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.25rem;min-height:64px;padding:.45rem .2rem;border-radius:var(--radius-lg);font-size:.8rem;line-height:1.15;min-width:0}.big-action>span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:100%}.big-action.primary{border-color:var(--accent);color:var(--accent)}.notice{margin-top:1rem;padding:.6rem .8rem;border-radius:var(--radius);border:1px solid var(--border);background:var(--surface);display:flex;gap:.6rem;align-items:center;flex-wrap:wrap}.notice.install{border-color:var(--accent)}.notice.install>span{flex:1 1 16rem}.notice.install>.install-actions{flex:0 0 auto;display:flex;gap:.4rem;flex-wrap:wrap;align-items:center}.notice.warning{border-color:var(--warning);color:var(--warning)}.proj-head{display:flex;align-items:center;gap:.3rem;margin-top:1.1rem}.proj-head .section-title{margin:0}.proj-head button span{font-size:.85rem}.proj-head .folder-count{margin-left:.35rem}.hide-solved-btn.on{opacity:1;color:var(--accent);border-color:var(--accent);background:#9cae7926}.folder-nosync{display:inline-flex;align-items:center;margin-left:.15rem}.icon-only{padding:.3rem;min-width:36px;display:inline-flex;align-items:center;justify-content:center}.proj-group,.folder{margin-top:.6rem;border-radius:var(--radius-lg);border:1px solid transparent;transition:border-color .12s,background .12s}.proj-group.drop-into,.folder.drop-into{border-color:var(--accent);background:#9cae7914}.group-title{margin:.2rem 0 .4rem}.folder{background:var(--surface);border-color:var(--border);padding:.25rem .5rem .5rem}.folder.collapsed{padding-bottom:.25rem}.folder-head{display:flex;align-items:center;gap:.25rem}.folder-toggle{flex:1;min-width:0;display:flex;align-items:center;gap:.45rem;background:transparent;border:none;text-align:left;padding:.35rem .2rem;min-height:40px}.folder-toggle .chev{width:1rem;color:var(--text-muted)}.folder-name{font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.folder-count{font-size:.8rem;white-space:nowrap}.drop-hint{border:1px dashed var(--border);border-radius:var(--radius);padding:.8rem;text-align:center;color:var(--text-muted);font-size:.85rem;margin-top:.3rem}.proj-grid{list-style:none;padding:0;margin:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(100px,1fr));gap:.5rem}@media (min-width: 700px){.proj-grid{grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:.65rem}}.proj-card{position:relative;-webkit-touch-callout:none;user-select:none;-webkit-user-select:none;transition:transform .12s,opacity .12s}.proj-card.lifted{transform:scale(1.04)}.proj-card.dragging{opacity:.35}.proj-card.drop-before:before{content:"";position:absolute;left:-.32rem;top:4%;bottom:4%;width:3px;border-radius:2px;background:var(--accent)}.proj-card.selected .proj-open{border-color:var(--accent);background:#9cae7924}.proj-open{width:100%;display:flex;flex-direction:column;align-items:stretch;gap:.2rem;text-align:left;border-radius:var(--radius-lg);padding:.35rem;min-height:0}.proj-thumb{aspect-ratio:3 / 4;background:var(--bg);border-radius:5px;display:flex;align-items:center;justify-content:center;overflow:hidden;color:var(--text-muted)}.proj-thumb img{width:100%;height:100%;object-fit:contain;background:#fff;pointer-events:none}.proj-card.solved .proj-thumb img{opacity:.75}.proj-name{font-weight:600;font-size:.85rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.proj-meta{font-size:.7rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.proj-menu-btn{position:absolute;top:.45rem;right:.45rem;background:#262b36d9;min-height:30px;min-width:30px;padding:.15rem}.solved-badge{position:absolute;left:.5rem;bottom:2.6rem;width:22px;height:22px;border-radius:50%;background:var(--success);color:#111;display:flex;align-items:center;justify-content:center;pointer-events:none}.sel-box{position:absolute;top:.5rem;left:.5rem;width:22px;height:22px;border-radius:50%;border:2px solid #fff;background:#00000059;color:#111;display:flex;align-items:center;justify-content:center;pointer-events:none}.sel-box.on{background:var(--accent);border-color:var(--accent)}.sel-bar{position:sticky;bottom:calc(.5rem + var(--safe-bottom));z-index:30;margin-top:.8rem;display:flex;flex-wrap:wrap;align-items:center;gap:.35rem;padding:.45rem .6rem;background:var(--surface);border:1px solid var(--accent);border-radius:var(--radius-lg);box-shadow:0 8px 24px #0006}.sel-bar .sel-count{font-weight:600;margin-right:auto}.sel-bar button{display:inline-flex;align-items:center;gap:.25rem}.drag-ghost{position:fixed;z-index:200;pointer-events:none;transform:translate(-50%,-130%);background:var(--surface);border:1px solid var(--accent);border-radius:var(--radius);padding:.3rem .6rem;font-size:.85rem;display:flex;align-items:center;gap:.3rem;box-shadow:0 8px 24px #00000073;max-width:60vw;white-space:nowrap;overflow:hidden}.menu.pop{position:fixed;min-width:200px}.menu-note{padding:.4rem .7rem .3rem;border-top:1px solid var(--border);margin-top:.2rem}.home-footer{margin-top:2rem;display:flex;flex-direction:column;gap:.6rem}.chip.ok{color:var(--success);border-color:var(--success)}.chip.warn{color:var(--warning);border-color:var(--warning)}.chip.live{color:var(--accent);border-color:var(--accent);font-size:.85rem}.menu{position:absolute;z-index:60;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:0 10px 30px #00000073;padding:.35rem;display:flex;flex-direction:column;gap:.15rem;min-width:220px;max-height:75vh;overflow-y:auto}.menu>button,.menu-link{text-align:left;border:none;background:transparent;border-radius:6px;min-height:42px;padding:.4rem .7rem;display:flex;align-items:center;gap:.5rem;color:var(--text);text-decoration:none}.menu>button:hover,.menu-link:hover{background:var(--border)}.menu>button>svg,.menu-link>svg,.menu>button>.check-box{flex:none;width:18px;height:18px}.menu>button.cloud-doc{border-bottom:1px solid var(--border);border-radius:6px 6px 0 0;margin-bottom:.15rem;font-size:.9rem}.cloud-doc.cd-ok svg{color:#b9d48c}.cloud-doc.cd-none svg{color:#ff6b5e}.cloud-doc.cd-up svg,.cloud-doc.cd-down svg{color:#9cc7ff;animation:cloud-pulse .8s ease-in-out infinite alternate}.cloud-doc.cd-auth svg{color:var(--warning)}.cloud-doc.cd-off svg{color:var(--muted, #8a93a3)}.menu>button.active{color:var(--accent)}.menu>button.danger{color:var(--danger)}.menu.right{right:0;top:100%;margin-top:4px}.menu.up{bottom:100%;right:0;margin-bottom:6px}.menu-section{font-size:.75rem;text-transform:uppercase;letter-spacing:.05em;color:var(--accent);padding:.5rem .6rem .15rem}.menu-row{display:flex;flex-wrap:wrap;gap:.3rem;padding:.15rem .3rem}.menu-row button{min-height:40px;padding:.3rem .55rem;font-size:.9rem;display:inline-flex;align-items:center;gap:.3rem}.editor{display:flex;flex-direction:column;height:100%;overflow:hidden}.editor-bar{gap:.4rem;padding-top:calc(.35rem + var(--safe-top));padding-bottom:.35rem}.editor-bar>button{background:transparent}.back-btn{display:inline-flex;align-items:center;gap:.2rem;padding-left:.3rem}.title-btn{flex:0 1 auto;max-width:50vw;min-width:0}.proj-title{font-weight:700;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;display:block}.page-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.layers-top{display:flex;align-items:center;gap:.4rem}.pages-btn{display:inline-flex;align-items:center;gap:.35rem;max-width:60%;min-width:0}.pages-btn .page-name{color:var(--muted)}.page-menu{min-width:280px;max-width:min(92vw,380px);max-height:70vh;overflow-y:auto}.page-head{display:flex;align-items:center;justify-content:space-between;gap:.4rem}.page-list{list-style:none;margin:0;padding:0}.page-list li{display:flex;align-items:center;gap:.2rem;border-radius:var(--radius)}.page-list li.active{background:var(--surface-2);outline:1px solid var(--accent)}.page-list li.dragging{opacity:.5}.page-list li.drop-before{box-shadow:inset 0 2px 0 var(--accent)}.page-list li.drop-after{box-shadow:inset 0 -2px 0 var(--accent)}.page-list .grip{cursor:grab;touch-action:none;padding:0 .35rem;color:var(--muted);user-select:none}.page-list .page-pick{flex:1;min-width:0;display:flex;align-items:center;gap:.25rem;text-align:left;background:transparent;border:none}.page-list .page-no{color:var(--muted)}.page-acts{display:inline-flex;gap:.1rem}.more-wrap{position:relative}.tab-btn{display:inline-flex;align-items:center;gap:.3rem}@media (max-width: 1180px){.tab-label{display:none}}.editor-body{flex:1;display:flex;min-height:0;position:relative}.editor.left-handed .editor-body{flex-direction:row-reverse}.canvas-area{flex:1;position:relative;min-width:0;background:#12151b}.viewport{position:absolute;inset:0;overflow:hidden}.engine-canvas{position:absolute;left:0;top:0;touch-action:none;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none}.engine-canvas.main,.engine-canvas.live{pointer-events:none}.toolbar{width:74px;flex-shrink:0;background:var(--surface);border-right:1px solid var(--border);display:flex;flex-direction:column;gap:.25rem;padding:.35rem .3rem calc(.35rem + var(--safe-bottom)) calc(.3rem + var(--safe-left));z-index:20;min-height:0}.editor.left-handed .toolbar{border-right:none;border-left:1px solid var(--border);padding-left:.3rem;padding-right:calc(.3rem + var(--safe-right))}.tool-scroll{display:flex;flex-direction:column;gap:.2rem;overflow-y:auto;overflow-x:hidden;min-height:0;flex:1;scrollbar-width:none}.tool-scroll::-webkit-scrollbar{display:none}.tool-scroll.fade-end{-webkit-mask-image:linear-gradient(to bottom,#000 calc(100% - 28px),transparent);mask-image:linear-gradient(to bottom,#000 calc(100% - 28px),transparent)}.tool-scroll.fade-start{-webkit-mask-image:linear-gradient(to top,#000 calc(100% - 28px),transparent);mask-image:linear-gradient(to top,#000 calc(100% - 28px),transparent)}.tool-scroll.fade-start.fade-end{-webkit-mask-image:linear-gradient(to bottom,transparent,#000 28px,#000 calc(100% - 28px),transparent);mask-image:linear-gradient(to bottom,transparent,#000 28px,#000 calc(100% - 28px),transparent)}.toolbar.bottom .tool-scroll.fade-end{-webkit-mask-image:linear-gradient(to right,#000 calc(100% - 28px),transparent);mask-image:linear-gradient(to right,#000 calc(100% - 28px),transparent)}.toolbar.bottom .tool-scroll.fade-start{-webkit-mask-image:linear-gradient(to left,#000 calc(100% - 28px),transparent);mask-image:linear-gradient(to left,#000 calc(100% - 28px),transparent)}.toolbar.bottom .tool-scroll.fade-start.fade-end{-webkit-mask-image:linear-gradient(to right,transparent,#000 28px,#000 calc(100% - 28px),transparent);mask-image:linear-gradient(to right,transparent,#000 28px,#000 calc(100% - 28px),transparent)}.tool-btn{width:100%;display:flex;flex-direction:column;align-items:center;gap:.1rem;padding:.3rem .1rem;background:transparent;border-color:transparent;min-height:50px;position:relative;color:var(--text);flex-shrink:0}.tool-btn.active{border-color:var(--accent);color:var(--accent);background:#9cae791f}.tool-btn.active.collapsed{border-style:dashed;background:transparent}.tool-btn.pinned{border-bottom:1px solid var(--border);border-radius:var(--radius) var(--radius) 0 0;padding-bottom:.4rem;margin-bottom:.15rem}.tool-btn.pinned.active{border-color:var(--accent);border-radius:var(--radius)}.tool-label{font-size:.64rem;line-height:1.3;color:inherit;opacity:.9;white-space:nowrap;max-width:66px;overflow:hidden;text-overflow:ellipsis}.no-labels .tool-label{display:none}.no-labels .toolbar{width:56px;padding-left:calc(.25rem + var(--safe-left));padding-right:.25rem}.editor.left-handed.no-labels .toolbar{padding-left:.25rem;padding-right:calc(.25rem + var(--safe-right))}.no-labels .tool-btn{justify-content:center;min-height:46px;padding:.2rem 0;gap:0}.no-labels .toolbar.bottom{width:auto}.no-labels .toolbar.bottom .tool-btn{width:46px;min-width:46px;min-height:46px;padding:.2rem 0}.group-mark{position:absolute;right:5px;bottom:5px;width:0;height:0;border-left:5px solid transparent;border-bottom:5px solid var(--text-muted)}.zlev-logo{display:block;object-fit:contain}.toolbar.bottom{position:absolute;left:0;right:0;bottom:0;width:auto;flex-direction:row;border-right:none;border-left:none;border-top:1px solid var(--border);padding:.25rem calc(.3rem + var(--safe-right)) calc(.25rem + var(--safe-bottom)) calc(.3rem + var(--safe-left));gap:.2rem}.toolbar.bottom .tool-scroll{flex-direction:row;overflow-x:auto;overflow-y:hidden;overscroll-behavior-x:contain}.toolbar.bottom .tool-btn{width:58px;min-width:58px;min-height:52px;padding:.25rem .05rem}.toolbar.bottom .tool-btn.pinned{border-bottom:none;border-right:1px solid var(--border);border-radius:var(--radius) 0 0 var(--radius);margin:0 .15rem 0 0;padding-bottom:.25rem}.toolbar.bottom .tool-label{font-size:.6rem;max-width:56px}.editor.narrow .toolbar.bottom,.editor.narrow .options-bar{background:#262b36d1;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.immersive-exit{position:absolute;right:calc(.5rem + var(--safe-right));top:calc(.5rem + var(--safe-top));z-index:40;background:#262b368c;border-color:transparent;color:var(--text);opacity:.75;border-radius:50%}.immersive-exit:hover,.immersive-exit:focus-visible{opacity:1}.options-bar{position:absolute;left:.5rem;top:.5rem;z-index:15;max-width:calc(100% - 1rem);display:flex;flex-wrap:nowrap;gap:.4rem;align-items:center;overflow-x:auto;overflow-y:hidden;scrollbar-width:thin;background:#262b36f0;border:1px solid var(--border);border-radius:var(--radius-lg);padding:.35rem .5rem;box-shadow:0 6px 20px #00000059}.bottom-stack{position:absolute;left:0;right:0;bottom:calc(62px + var(--safe-bottom));z-index:19;display:flex;flex-direction:column;pointer-events:none;max-height:calc(100% - 62px - var(--safe-bottom))}.bottom-stack>*{pointer-events:auto}.options-bar:not(.bottom){flex-wrap:wrap;row-gap:.3rem;max-height:40%}.options-bar.bottom{position:relative;inset:auto;max-width:none;width:100%;border-radius:var(--radius-lg) var(--radius-lg) 0 0;border-bottom:none;padding:.3rem .4rem;box-shadow:0 -6px 20px #00000059}.options-bar>*,.piece-tools>*{flex-shrink:0}.subtools{padding-right:.4rem;margin-right:.1rem;border-right:1px solid var(--border)}.subtools button.small{display:inline-flex;align-items:center;gap:.25rem}.sub-label{font-size:.8rem}.options-bar.bottom .sub-label,.options-bar.bottom .hint{display:none}.labeled{display:inline-flex;align-items:center;gap:.3rem}.opt-label{font-size:.75rem;color:var(--text-muted)}.auto-swatch.small{min-width:40px;font-size:.75rem;padding:.1rem .3rem}.opacity input[type=range]{width:90px;min-height:30px}.pct{font-size:.75rem;min-width:3.2em;text-align:right;color:var(--text-muted)}.outline-sample{font-weight:700;font-size:1.05rem;margin-left:.15rem}.options-bar .seg,.options-bar .swatches{flex-wrap:nowrap}.options-bar .hint{white-space:nowrap}.options-bar select,.options-bar input[type=text]{min-height:36px;padding:.2rem .4rem}.seg{display:inline-flex;flex-wrap:wrap;gap:.2rem}.seg button.small{min-width:36px}.seg button.small.with-icon{display:inline-flex;align-items:center;gap:.25rem}.swatches{display:inline-flex;gap:.25rem;align-items:center;flex-wrap:wrap}.swatch{width:30px;height:30px;min-width:30px;min-height:30px;border-radius:50%;padding:0;border:2px solid var(--border);display:inline-block}.swatch.active{border-color:var(--text);box-shadow:0 0 0 2px var(--accent)}.swatch.custom{position:relative;overflow:hidden;background:conic-gradient(red,#ff0,#0f0,#0ff,#00f,#f0f,red)}.swatch.custom input{opacity:0;position:absolute;inset:0;width:100%;height:100%;cursor:pointer}.swatch.big{width:34px;height:34px;border-radius:8px}.dotw{display:inline-block;background:var(--text);border-radius:50%}.check{display:inline-flex;align-items:center;gap:.35rem;font-size:.85rem;color:var(--text-muted)}.hint{color:var(--text-muted);font-size:.8rem}.big-letter{font-family:var(--mono);font-size:1.6rem;color:var(--accent);min-width:2ch;text-align:center}.counter-chip{display:inline-flex;align-items:center;gap:.35rem}.cdot{width:12px;height:12px;border-radius:50%;display:inline-block;flex-shrink:0}.piece-tools{display:flex;flex-wrap:nowrap;gap:.3rem;align-items:center;padding-left:.4rem;border-left:1px solid var(--border)}.view-status{position:absolute;right:.6rem;bottom:.6rem;z-index:14;display:flex;flex-direction:column;align-items:flex-end;gap:.4rem}.status-btn{background:#262b36e6;font-variant-numeric:tabular-nums;font-size:.8rem}.minimap{border:1px solid var(--border);border-radius:6px;box-shadow:0 4px 14px #00000080;touch-action:none}.mirror-badge{position:absolute;left:50%;bottom:.7rem;transform:translate(-50%);z-index:14;background:var(--warning);color:var(--bg);font-weight:700;padding:.15rem .6rem;border-radius:4px;font-size:.8rem;letter-spacing:.08em;pointer-events:none}.right-panel{width:340px;flex-shrink:0;background:var(--surface);border-left:1px solid var(--border);display:flex;flex-direction:column;min-height:0;z-index:18;padding-right:var(--safe-right)}.editor.left-handed .right-panel{border-left:none;border-right:1px solid var(--border)}.right-panel.sheet{position:relative;width:auto;height:auto;max-height:46vh;flex-shrink:1;pointer-events:auto;border-left:none;border-top:1px solid var(--border);border-radius:14px 14px 0 0;box-shadow:0 -10px 30px #00000080}.panel-head{display:flex;align-items:center;gap:.4rem;padding:.4rem .5rem .4rem .9rem;border-bottom:1px solid var(--border)}.panel-head h2{flex:1;margin:0;font-size:1rem;color:var(--accent)}.panel-tabs{flex:1}.panel-scroll{flex:1;overflow-y:auto;-webkit-overflow-scrolling:touch}.panel-body{padding:.7rem .8rem 2rem;display:flex;flex-direction:column;gap:.5rem}.panel-body details>summary{cursor:pointer;color:var(--accent);padding:.4rem 0}.panel-body details[open]{display:flex;flex-direction:column;gap:.4rem}.out-box{position:relative;display:flex;align-items:flex-start;background:var(--bg);border:1px solid var(--border);border-radius:var(--radius);padding:.4rem 5.4rem .4rem .4rem;min-height:2.6rem}.out-box code{flex:1;word-break:break-all;white-space:pre-wrap;font-size:.95rem;color:var(--text);min-height:1.5em}.out-btns{position:absolute;top:.25rem;right:.25rem;display:flex;gap:.25rem;z-index:2}.out-btns button.small{min-width:34px;min-height:32px;padding:0 .3rem}.sub-card{background:var(--surface-2);border:1px solid var(--border);border-radius:var(--radius);padding:.5rem;display:flex;flex-direction:column;gap:.35rem}.num{display:flex;align-items:center;gap:.3rem}.num .label{flex:1}.num input,.num input[type=text]{width:64px;text-align:center;padding:.3rem}.grid2{display:grid;grid-template-columns:1fr;gap:.25rem}.list-btn{text-align:left;background:var(--surface-2)}.plain-list{margin:0;padding-left:1.2rem}.slider{display:flex;flex-direction:column;gap:.1rem}.slider .label b{color:var(--accent);font-weight:600}.slider .label.resettable{cursor:pointer;text-decoration:underline dotted;text-underline-offset:3px}input[type=range]{touch-action:pan-y}.img-side{border:1px solid var(--border);border-radius:10px;padding:.45rem .6rem .6rem;margin:.5rem 0;display:flex;flex-direction:column;gap:.35rem}.img-side .side-title{font-weight:700;font-size:1rem;display:flex;align-items:baseline;gap:.5rem}.layer-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.3rem}.layer-list li{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface-2)}.layer-list li.active{border-color:var(--accent)}.layer-row{display:flex;align-items:center;gap:.2rem;padding:.15rem}.layer-name{flex:1;text-align:left;display:flex;flex-direction:column;align-items:flex-start;background:transparent;border:none;min-width:0}.layer-name span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:100%}.layer-tools{display:flex;flex-wrap:wrap;gap:.3rem;padding:.3rem .4rem .45rem;border-top:1px solid var(--border);align-items:center}.tajenka-panel section{margin-bottom:1rem}.tj-result{background:var(--surface-2);border:1px solid var(--accent);border-radius:var(--radius-lg);padding:.6rem}.tj-result-row{display:flex;gap:.4rem;align-items:center}.tj-result-row input{flex:1;min-width:0;font-size:1.1rem;color:#e53935;font-weight:600}.tj-slots-text{flex:1;word-break:break-all}.tj-params{margin-top:.4rem;flex-wrap:wrap}.celebrate-tajenka{display:flex;flex-direction:column;gap:.25rem;margin:.4rem 0;text-align:left}.celebrate-tajenka input{font-size:1.1rem;font-weight:600;color:#e53935}.tajenka-list{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:.4rem}.tajenka-text{margin:0;white-space:pre-wrap;word-break:break-word;font-size:1rem}.slots{display:flex;flex-wrap:wrap;gap:.25rem}.slot{display:flex;flex-direction:column;align-items:center}.slot small{font-size:.65rem;color:var(--text-muted)}.slot input{width:34px;text-align:center;padding:.3rem 0;font-family:var(--mono);font-size:1.1rem}.zlev-main{display:flex;align-items:center;gap:.5rem;padding:.7rem;border:1px solid var(--accent);border-radius:var(--radius-lg);color:var(--text);text-decoration:none;font-weight:600}.zlev-main span{flex:1}.zlev-grid{display:grid;grid-template-columns:1fr 1fr;gap:.4rem}.zlev-sub{margin:1rem 0 .4rem;font-size:.9rem}.zlev-links{display:flex;flex-direction:column;gap:.4rem}.zlev-link{gap:.6rem}.zlev-link>span{flex:1;display:flex;flex-direction:column}.zlev-tile{background:var(--surface-2);border:1px solid var(--border);border-radius:var(--radius);padding:.6rem .5rem;min-height:44px;color:var(--text);text-decoration:none;font-size:.85rem;display:flex;align-items:center}.palette{--kw: min(36px, calc((100vw - 2.2rem) / var(--cols, 10) / var(--kz, 1) - 3px));position:absolute;left:50%;bottom:.6rem;transform:translate(-50%);z-index:45;width:max-content;max-width:calc(100% - .5rem);background:#262b36f7;border:1px solid var(--border);border-radius:var(--radius);padding:3px;box-shadow:0 10px 30px #00000073;display:flex;flex-direction:column;gap:3px;touch-action:none}.palette.placed{transform:none;bottom:auto}.palette.quick{border-color:var(--accent)}.kb-head{display:flex;align-items:center;gap:.3rem;cursor:grab;font-size:.78rem;padding:0 0 0 2px;min-height:30px;user-select:none;-webkit-user-select:none}.kb-head:active{cursor:grabbing}.kb-grip{color:var(--text-muted);font-size:.9rem;padding:4px 3px}.kb-title{font-weight:600;margin-right:auto;white-space:nowrap}.kb-head select{font-size:.78rem;padding:.1rem .25rem;min-height:26px}.kb-opt{font-size:.75rem;gap:.2rem;white-space:nowrap}.kb-x{min-height:28px;min-width:28px;padding:0}.kb-quick{display:flex;align-items:center;gap:3px;flex-wrap:wrap;justify-content:center}.kb-sep{width:6px}.kb-color{flex:0 0 26px;width:26px;min-width:0;height:26px;min-height:0;padding:0;border-radius:50%;border:2px solid transparent}.kb-color.active{border-color:#fff;box-shadow:0 0 0 2px var(--accent)}.kb-marker{position:absolute;z-index:15;width:26px;height:26px;margin:-13px 0 0 -13px;border:2px solid var(--accent);border-radius:50%;pointer-events:none;box-shadow:0 0 0 2px #00000059}.kb-marker:after{content:"";position:absolute;left:50%;top:50%;width:4px;height:4px;margin:-2px;border-radius:50%;background:var(--accent)}.prow{display:flex;gap:3px;justify-content:center}.pkey{flex:0 0 auto;width:var(--kw);min-width:0;min-height:0;height:38px;padding:0;font-family:var(--mono);font-size:1.05rem;position:relative}.pkey.multi{font-size:.85rem}.pkey-gap{flex:0 0 auto;width:var(--kw);height:38px}.kb-custom-ed{display:flex;flex-direction:column;gap:.35rem}.kb-custom-grid{display:grid;gap:3px;max-width:100%;overflow-x:auto}.kb-custom-grid input{width:2.1rem;height:2.1rem;padding:0;text-align:center;font-family:var(--mono);font-size:.95rem}.kb-custom-empty{padding:.4rem .6rem;margin:0}.kb-t-keyboard.kb-l-chess .prow .pkey{font-size:1.6rem;height:44px;font-family:Segoe UI Symbol,DejaVu Sans,"Noto Sans Symbols 2",system-ui,sans-serif}.pkey.active{background:var(--accent);color:var(--bg)}.pkey.wide{width:calc(var(--kw) * 2)}.pkey.size{width:34px}.dia-mark{position:absolute;top:3px;right:3px;width:4px;height:4px;border-radius:50%;background:var(--accent)}.key-no{position:absolute;right:2px;bottom:1px;font-size:.5rem;line-height:1;color:var(--text-muted);font-family:var(--mono);pointer-events:none}.pkey.active .key-no{color:var(--bg)}.kb-set{position:absolute;z-index:46;background:#262b36fa;border:1px solid var(--border);border-radius:var(--radius);padding:2px 8px 6px;box-shadow:0 10px 30px #00000073;display:flex;flex-direction:column;gap:2px;font-size:.8rem;min-width:140px;touch-action:none}.kb-set-head{display:flex;align-items:center;gap:.3rem;cursor:grab;min-height:26px;user-select:none;-webkit-user-select:none}.kb-set .check{min-height:26px;gap:.3rem}.kb-set-abc{display:grid;grid-template-columns:repeat(4,auto);column-gap:.6rem;justify-content:start}.kb-set-abc>:last-child{grid-column:1 / -1}.dia-pop{padding-bottom:3px;border-bottom:1px solid var(--border);contain:inline-size;flex-wrap:wrap;row-gap:3px}.prow .pkey{flex:0 1 auto}.kb-editrow{border-top:1px solid var(--border);padding-top:3px}.kb-editrow .pkey{height:34px}.kb-head>*{min-width:0}.kb-head select{max-width:8.5rem;text-overflow:ellipsis}.kb-head-fill{flex:1 1 0}.kb-title-opt{margin-right:0}.kb-type{position:relative;flex:0 1 auto}.kb-type-btn{display:inline-flex;align-items:center;gap:.3rem;min-width:0;max-width:100%;min-height:26px;padding:.1rem .35rem;font-size:.78rem}.kb-type-btn>svg{flex:0 0 auto;color:var(--accent)}.kb-type-label{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:8.5rem}.kb-caret{color:var(--text-muted);font-size:.7rem}.kb-type-menu{position:absolute;left:0;top:calc(100% + 3px);z-index:20;display:flex;flex-direction:column;gap:1px;min-width:13.5rem;max-height:70vh;overflow-y:auto;background:#262b36fc;border:1px solid var(--border);border-radius:var(--radius);padding:3px;box-shadow:0 10px 30px #00000080;cursor:default}.kb-type-menu.up{top:auto;bottom:calc(100% + 3px)}.kb-type-menu button{display:flex;align-items:center;gap:.55rem;min-height:36px;padding:.3rem .6rem;background:transparent;border-color:transparent;text-align:left;font-size:.85rem;white-space:nowrap}.kb-type-menu button>svg{flex:0 0 auto;color:var(--accent)}.kb-type-menu button.active{border-color:var(--accent);color:var(--accent)}.kb-set-sep{border-top:1px solid var(--border);margin:3px 0 1px}.kb-set-head2{margin-top:3px;padding-top:3px;border-top:1px solid var(--border);color:var(--text-muted);font-size:.72rem}.kb-set-num{width:4rem;padding:.15rem .3rem}.kb-set select{font-size:.78rem;padding:.1rem .25rem;min-height:26px}.kb-repeat{contain:inline-size;display:flex;align-items:center;gap:3px;padding-bottom:3px;border-bottom:1px solid var(--border)}.kb-repeat-seq{flex:1 1 auto;min-width:0;min-height:26px;display:flex;align-items:center;gap:5px;overflow-x:auto;white-space:nowrap;font-family:var(--mono);font-size:.95rem;padding:0 3px;scrollbar-width:none}.kb-repeat-seq::-webkit-scrollbar{display:none}.kb-repeat-seq .muted{font-family:inherit;font-size:.75rem}.tok{flex:0 0 auto}.tok.bad{color:var(--danger)}.tok.gap{width:10px}.tok.sep{color:var(--accent);font-weight:700}.tok-poly{flex:0 0 auto;display:inline-flex;flex-direction:column;align-items:center;line-height:1;gap:1px}.tok-poly small{font-size:.55rem;color:var(--text-muted)}.kb-repeat:has(.tok-poly) .kb-repeat-seq{min-height:32px}.kb-mini{flex:0 0 auto;min-width:28px;min-height:26px;padding:0;display:inline-flex;align-items:center;justify-content:center}.glyph{display:inline-block;flex:0 0 auto;vertical-align:middle;overflow:visible}.glyph.flag{overflow:hidden}.glyph .on{fill:var(--accent)}.glyph .off{fill:#ffffff12}.glyph .ring{fill:none;stroke:var(--border);stroke-width:3}.glyph .arm{fill:none;stroke:var(--text);stroke-width:8;stroke-linecap:round;stroke-linejoin:round}.glyph .flagdot{fill:var(--accent)}.glyph .wall{fill:none;stroke:var(--text);stroke-width:7;stroke-linecap:square;stroke-linejoin:miter}.glyph .dot{fill:var(--accent)}.glyph.br .cell{fill:none;stroke:#6b7385;stroke-width:2.5}.glyph.br .on{fill:var(--accent)}.glyph.br .empty{fill:#454c5b}.glyph.poly .on{fill:var(--accent)}.glyph.poly .frame{fill:none;stroke:#8a93a5;stroke-width:2}.glyph.poly .grid{fill:none;stroke:#5d6576;stroke-width:1.2}.kb-pad{width:min(300px,calc((100vw - 24px) / var(--kz, 1)));max-width:100%;align-self:center;display:flex;flex-direction:column;gap:4px}.kb-pad .pkey{width:auto;height:40px;min-width:0;display:inline-flex;align-items:center;justify-content:center}.kb-pending{display:flex;align-items:center;gap:.5rem;width:100%;min-width:0;min-height:40px;padding:.15rem .6rem;font-family:var(--mono);background:var(--bg)}.kb-pending-raw{flex:1 1 auto;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;text-align:left;font-size:1.15rem;letter-spacing:.08em}.braille-raw{font-size:1.6rem;line-height:1}.kb-pending-arrow{color:var(--text-muted)}.kb-pending-out{min-width:1.6em;text-align:center;font-size:1.4rem;color:var(--accent)}.kb-pending small{font-size:.7rem;white-space:nowrap}.kb-pending.multi{flex-direction:column;align-items:stretch;gap:3px;padding:3px;border:1px solid var(--border);border-radius:var(--radius)}.kb-pending-rawrow{display:flex;align-items:center;gap:.5rem;min-height:30px;padding:0 .3rem}.kb-variants{display:grid;grid-template-columns:repeat(auto-fit,minmax(76px,1fr));gap:3px}.kb-variant{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1px;min-width:0;min-height:46px;padding:2px 3px;line-height:1.1}.kb-variant small{font-size:.6rem;color:var(--text-muted);text-align:center;white-space:normal}.kb-variant b{font-family:var(--mono);font-size:1.3rem}.kb-variant.direct{border-color:var(--accent)}.kb-variant.direct b{color:var(--accent)}.kb-numpad .pkey{height:44px}.kb-grid{display:grid;grid-template-columns:repeat(var(--gc, 5),minmax(0,1fr));gap:3px}.kb-grid.wide .pkey{height:52px;font-size:1.4rem}.kb-actions{display:flex;align-items:center;justify-content:center;gap:3px;min-height:40px}.kb-actions .pkey{flex:1 1 0}.kb-actions.big .pkey{height:56px;font-size:1.7rem;font-weight:700}.kb-actions .muted{font-size:.75rem;text-align:center}.kb-row-pad{flex-direction:row;align-items:center;gap:10px}.kb-side{flex:1 1 auto;min-width:0;display:flex;flex-direction:column;gap:4px;align-items:stretch}.kb-side>small{text-align:center}.kb-side>.chip{align-self:center}.kb-cell6{flex:0 0 auto;display:grid;grid-template-columns:repeat(2,46px);gap:4px;padding:4px;border:1px solid var(--border);border-radius:var(--radius-lg)}.kb-pad .kb-dot{width:46px;height:46px;border-radius:50%}.kb-dot span{width:20px;height:20px;border-radius:50%;border:2px solid var(--text-muted)}.kb-dot.on span{background:var(--accent);border-color:var(--accent)}.kb-seg{flex:0 0 auto;width:92px;height:153px;touch-action:manipulation}.kb-seg polygon{cursor:pointer;stroke:transparent;stroke-width:7;stroke-linejoin:round;paint-order:stroke;pointer-events:all}.kb-seg polygon.off{fill:#3c4352}.kb-seg polygon.on{fill:var(--accent)}.kb-sem{flex:0 0 auto;width:156px;height:156px;touch-action:manipulation}.kb-sem .ring{fill:none;stroke:var(--border);stroke-width:2;stroke-dasharray:3 4}.kb-sem .arm{stroke:var(--accent);stroke-width:5;stroke-linecap:round}.kb-sem .hub{fill:var(--text-muted)}.kb-sem .pos{cursor:pointer}.kb-sem .pos circle{fill:var(--surface-2);stroke:var(--border);stroke-width:1.5}.kb-sem .pos.on circle{fill:var(--accent);stroke:var(--accent)}.kb-cross3{display:grid;grid-template-columns:repeat(3,minmax(0,1fr))}.kb-ccell{display:flex;gap:2px;padding:4px 3px;min-width:0;border:0 solid var(--text-muted)}.kb-ccell.wl{border-left-width:1px}.kb-ccell.wr{border-right-width:1px}.kb-ccell.wt{border-top-width:1px}.kb-ccell.wb{border-bottom-width:1px}.kb-pad .kb-gkey{flex:1 1 0;height:34px;font-size:.95rem}.kb-gkey.dotted:after{content:"";position:absolute;right:3px;top:3px;width:5px;height:5px;border-radius:50%;background:var(--accent)}.kb-alt3{flex-direction:row;gap:8px}.kb-altgroup{flex:1 1 0;min-width:0;display:flex;flex-direction:column;gap:2px}.kb-cross3.small .kb-ccell{padding:3px}.kb-dots{min-height:1.1em;line-height:1;text-align:center;color:var(--accent);letter-spacing:.3em}.kb-pad.kb-small{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px 10px;align-items:center}.kb-xcross{display:grid;grid-template-columns:1fr 1fr;grid-template-rows:1fr 1fr;width:88px;height:88px;margin:20px auto;transform:rotate(45deg)}.kb-xcell{display:flex;padding:3px;border:0 solid var(--text-muted);min-width:0}.kb-xcell.x0{grid-area:1 / 1;border-right-width:1px;border-bottom-width:1px}.kb-xcell.x1{grid-area:2 / 1}.kb-xcell.x2{grid-area:1 / 2}.kb-xcell.x3{grid-area:2 / 2;border-left-width:1px;border-top-width:1px}.kb-xcell .kb-gkey{height:auto}.kb-xcell .kb-gkey>span{display:inline-block;transform:rotate(-45deg)}.kb-poly{display:grid;grid-template-columns:30px repeat(5,minmax(0,1fr));gap:3px}.kb-pad .kb-phead{height:30px;font-size:.85rem;color:var(--text-muted);background:transparent}.kb-pad .kb-phead.on{background:var(--accent);color:var(--bg);border-color:var(--accent)}.kb-pad>small.muted{text-align:center;font-size:.75rem}.kb-t9{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:3px}.kb-pad .kb-t9key{height:44px;flex-direction:column;gap:0;line-height:1.1}.kb-t9key small{font-size:.65rem;color:var(--text-muted);letter-spacing:.05em}.kb-t9key.on{border-color:var(--accent);color:var(--accent)}.kb-pad.kb-flags,.kb-pad.kb-primes{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:3px}.kb-pad .kb-flagkey{height:46px;flex-direction:column;gap:2px;padding:2px 0}.kb-flagkey small,.kb-numkey small{font-size:.6rem;line-height:1;color:var(--text-muted);font-family:system-ui,sans-serif}.kb-pad .kb-numkey{height:40px;flex-direction:column;gap:1px;font-size:.85rem;line-height:1}.text-editor{position:absolute;z-index:30;background:var(--surface);border:1px solid var(--accent);border-radius:var(--radius);padding:.35rem;display:flex;flex-direction:column;gap:.3rem;min-width:220px;box-shadow:0 8px 24px #00000073}.text-editor textarea{font-family:var(--mono);font-size:1rem;min-height:44px}.toasts{position:fixed;left:50%;transform:translate(-50%);bottom:calc(1rem + var(--safe-bottom) + 70px);z-index:200;display:flex;flex-direction:column;gap:.4rem;align-items:center;pointer-events:none;width:min(92vw,520px)}.toast{pointer-events:auto;background:var(--surface);border:1px solid var(--border);border-left:4px solid var(--accent);border-radius:var(--radius);padding:.5rem .7rem;display:flex;gap:.6rem;align-items:center;box-shadow:0 8px 24px #00000073;font-size:.92rem}.toast.error{border-left-color:var(--danger)}.toast.ok{border-left-color:var(--success)}.modal-back{position:fixed;inset:0;z-index:150;background:#0a0c1099;display:flex;align-items:center;justify-content:center;padding:1rem}.modal{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);width:min(520px,100%);max-height:90vh;display:flex;flex-direction:column;box-shadow:0 20px 50px #00000080}.modal.wide{width:min(900px,100%)}.modal-head{display:flex;align-items:center;padding:.6rem .6rem .6rem 1rem;border-bottom:1px solid var(--border)}.modal-head h2{flex:1;margin:0;font-size:1.05rem;color:var(--accent)}.modal-body{padding:1rem;overflow-y:auto}.row.end{justify-content:flex-end}.settings{display:flex;flex-direction:column;gap:.7rem}.settings>label:not(.check){display:flex;flex-direction:column;gap:.25rem}.settings hr,.help hr{border:none;border-top:1px solid var(--border);width:100%}.help table{border-collapse:collapse;width:100%;font-size:.9rem}.help td{border-bottom:1px solid var(--border);padding:.35rem .4rem;vertical-align:top}.help td:first-child{color:var(--accent);width:34%;min-width:7.5rem}.help{display:flex;flex-direction:column;gap:.5rem;line-height:1.45}.help p{margin:.3rem 0}.help ul{margin:.3rem 0;padding-left:1.2rem}.help h4{margin:.6rem 0 .2rem;font-size:.95rem;color:var(--text)}.help-intro{color:var(--text-muted)}.help-sec{border:1px solid var(--border);border-radius:var(--radius, 8px);background:var(--surface-2, transparent)}.help-sec>summary{cursor:pointer;padding:.55rem .75rem;font-weight:600;color:var(--accent);list-style-position:inside}.help-sec[open]>summary{border-bottom:1px solid var(--border)}.help-body{padding:.3rem .75rem .6rem;font-size:.92rem}.help-tool+.help-tool{border-top:1px dashed var(--border);margin-top:.4rem}.help-footer{margin-top:.6rem;padding-top:.6rem;border-top:1px solid var(--border);font-size:.85rem;color:var(--text-muted);text-align:center}.license-box{text-align:left;margin:.4rem 0}.license-box pre,pre.license-box{white-space:pre-wrap;font-size:.72rem;line-height:1.35;background:var(--bg, transparent);border:1px solid var(--border);border-radius:6px;padding:.5rem .6rem;max-height:40vh;overflow:auto}button.linklike{background:none;border:none;padding:0;min-height:0;color:var(--accent);text-decoration:underline;font:inherit;cursor:pointer}.backup-hint{margin:1.2rem 0 0;opacity:.85}.faint{opacity:.45;font-size:.75rem}.help h3{color:var(--accent);font-size:1rem}.help li{margin-bottom:.4rem}.busy{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);padding:1.2rem 1.6rem;display:flex;align-items:center;gap:.8rem}.busy.inline{border:none;padding:1rem 0}.spinner{width:26px;height:26px;border:3px solid var(--border);border-top-color:var(--accent);border-radius:50%;animation:spin .9s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.work-indicator{position:absolute;top:42%;left:50%;transform:translate(-50%);z-index:40;display:flex;align-items:center;gap:.6rem;padding:.45rem .9rem;background:var(--surface);border:1px solid var(--border);border-radius:999px;box-shadow:var(--shadow, 0 2px 10px rgba(0,0,0,.18));pointer-events:none;animation:work-in .15s ease-out .15s both}.work-indicator .spinner{width:20px;height:20px;border-width:3px}@keyframes work-in{0%{opacity:0}to{opacity:1}}.pdf-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(110px,1fr));gap:.5rem;margin:.8rem 0;max-height:55vh;overflow-y:auto}.pdf-thumb{display:flex;flex-direction:column;align-items:center;gap:.25rem;padding:.3rem;opacity:.55}.pdf-thumb.active{opacity:1;border-color:var(--accent)}.pdf-thumb-wrap{position:relative;display:flex}.pdf-thumb-wrap .pdf-thumb{flex:1}.pdf-thumb-wrap.is-back .pdf-thumb{border-style:dashed}.side-chip{position:absolute;top:6px;right:6px;min-height:26px;padding:0 .5rem;font-size:.75rem;border-radius:999px;background:#262b36e6}.side-chip.back{background:var(--accent);color:#1b1f27;border-color:var(--accent);font-weight:600}.pdf-thumb img,.pdf-thumb .ph{width:100%;aspect-ratio:3 / 4;object-fit:contain;background:#fff;border-radius:4px}.prep{position:fixed;inset:0;z-index:140;background:var(--bg);display:flex;flex-direction:column;padding:var(--safe-top) var(--safe-right) var(--safe-bottom) var(--safe-left)}.prep-bar{display:flex;flex-wrap:wrap;gap:.5rem;align-items:center;padding:.5rem .8rem;background:var(--surface);border-bottom:1px solid var(--border)}.prep-bar:last-child{border-bottom:none;border-top:1px solid var(--border)}.choice-list{display:flex;flex-direction:column;gap:.5rem;margin-top:.8rem}.choice-list button{justify-content:flex-start;text-align:left}.prep-tone{border-top:1px solid var(--border)}.prep-tone .slider{flex:1 1 9rem;min-width:8rem}.prep-canvas{flex:1;position:relative;touch-action:none;overflow:hidden}.prep-canvas canvas{position:absolute;left:0;top:0}@media (max-width: 699px){.hide-narrow{display:none}.title-btn{flex:1 1 auto;max-width:none;text-align:left}.options-bar{left:.3rem;top:.3rem;max-width:calc(100% - .6rem);padding:.3rem;gap:.3rem}.palette{bottom:.3rem}}.layer-tools .check.grow{flex:1 1 100%}.layer-tools .check.grow input{flex:1}.chip.ok,.chip.warn,.chip.live{font-family:inherit}.fmt-list{display:flex;flex-direction:column;gap:.3rem}.fmt{display:flex;gap:.6rem;align-items:center;padding:.45rem .6rem;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface-2);cursor:pointer}.fmt.active{border-color:var(--accent)}.fmt.disabled{opacity:.5;cursor:default}.fmt span{display:flex;flex-direction:column}.fmt input{accent-color:var(--accent);width:1.1rem;height:1.1rem}.modal-back.ask{z-index:300}.panel-body details.ocr-card{border:1px solid var(--accent);border-radius:var(--radius);padding:.2rem .6rem .6rem;background:#9cae790f}.panel-body details.ocr-card>summary{display:flex;align-items:center;gap:.4rem;font-weight:600}.ocr-progress{display:flex;flex-direction:column;gap:.25rem}.ocr-progress progress{width:100%;accent-color:var(--accent)}.editor.narrow .view-status{top:.4rem;bottom:auto;right:.4rem;flex-direction:column-reverse}.editor.narrow .view-status .menu.up{bottom:auto;top:100%;margin-top:6px;margin-bottom:0}.editor.narrow .palette{bottom:calc(62px + var(--safe-bottom) + 3.4rem)}.editor.narrow .palette.placed{bottom:auto}.editor.narrow .mirror-badge{bottom:auto;top:.5rem}.obj-list{list-style:none;margin:0;padding:.15rem .3rem .35rem;border-top:1px solid var(--border);display:flex;flex-direction:column;gap:.1rem;max-height:300px;overflow-y:auto}.layer-list .obj-list li{border:none;background:transparent;display:flex;align-items:center;gap:.1rem}.obj-list li.locked .obj-name{color:var(--warning)}.obj-list li.hidden-obj .obj-name{opacity:.5}.obj-name{flex:1;min-width:0;display:inline-flex;align-items:center;gap:.35rem;text-align:left;min-height:34px;padding:.1rem .3rem;font-size:.85rem;border:none}.obj-name span:last-child{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.obj-list button.small{min-width:32px;min-height:32px}button.warn{color:var(--warning)}.obj-empty{padding:.3rem .6rem;margin:0}.layer-bg{padding:0}@media (max-width: 699px){.toasts{top:calc(6.4rem + var(--safe-top));bottom:auto}}.draft-actions{position:absolute;left:50%;transform:translate(-50%);bottom:calc(1rem + var(--safe-bottom));z-index:22;display:flex;align-items:center;gap:.35rem;padding:.3rem .4rem;background:#262b36eb;border:1px solid var(--accent);border-radius:999px;box-shadow:0 6px 20px #0006}.draft-actions button.small{border-radius:999px;display:inline-flex;align-items:center;gap:.3rem}.draft-count{white-space:nowrap;font-size:.8rem;color:var(--text-muted);padding:0 .2rem}.editor.narrow .draft-actions{bottom:calc(62px + var(--safe-bottom) + 3.6rem)}.editor.immersive .draft-actions{bottom:calc(1rem + var(--safe-bottom))}.sel-bar{position:absolute;left:50%;transform:translate(-50%);bottom:calc(1rem + var(--safe-bottom));z-index:22;display:flex;align-items:center;gap:.3rem;padding:.3rem .45rem;max-width:calc(100% - 1rem);background:#262b36f0;border:1px solid var(--border);border-radius:14px;box-shadow:0 6px 20px #00000073}.sel-bar button.small{display:inline-flex;align-items:center;gap:.3rem;min-height:38px}.sel-count{white-space:nowrap;font-size:.8rem;color:var(--text-muted);padding-left:.3rem}.sel-sep{width:1px;align-self:stretch;background:var(--border);margin:.2rem .1rem}.sel-menu-wrap{position:relative}.sel-menu{position:absolute;bottom:calc(100% + 8px);left:50%;transform:translate(-50%);min-width:13rem;max-height:60vh;overflow-y:auto}.editor.narrow .sel-bar{bottom:calc(62px + var(--safe-bottom) + 3.6rem);gap:.15rem;padding:.25rem .3rem}.editor.narrow .sel-label,.editor.narrow .sel-count{display:none}.editor.immersive .sel-bar{bottom:calc(1rem + var(--safe-bottom))}.snap-btn{display:inline-flex;align-items:center;gap:.3rem}.snap-btn .snap-label{font-size:.8rem}.snap-btn .snap-icon{position:relative;display:inline-flex}.snap-btn .snap-badge{position:absolute;right:-6px;bottom:-5px;background:var(--surface);border-radius:3px;line-height:0;padding:1px;color:#00b8d4}.options-bar.bottom .snap-btn .snap-label{display:none}.loupe-preview{display:flex;gap:.8rem;align-items:center}.loupe-demo{flex-shrink:0;border-radius:50%;border:2px solid var(--accent);background:#fff;color:#111;display:flex;align-items:center;justify-content:center;overflow:hidden;font-family:var(--mono);position:relative}.loupe-demo:before,.loupe-demo:after{content:"";position:absolute;background:#e53935}.loupe-demo:before{left:0;right:0;top:50%;height:1px}.loupe-demo:after{top:0;bottom:0;left:50%;width:1px}.grip{display:inline-flex;align-items:center;justify-content:center;width:28px;min-height:40px;color:var(--text-muted);cursor:grab;touch-action:none;user-select:none;font-size:1.1rem;flex-shrink:0}.grip:active{cursor:grabbing;color:var(--accent)}.layer-list li.dragging{opacity:.55;border-style:dashed}.layer-list li.drop-before{box-shadow:0 -3px 0 var(--accent)}.layer-list li.drop-after{box-shadow:0 3px 0 var(--accent)}.app-version{white-space:nowrap}.layers-body{padding-bottom:.6rem}.layer-card{display:flex;gap:.45rem;padding:.25rem .35rem .35rem .2rem;align-items:flex-start}.layer-card.layer-sub{border-top:1px dashed var(--line, rgba(127,127,127,.3));margin-left:.9rem}.layer-card.layer-sub .layer-title,.layer-bg .layer-title{justify-content:space-between;gap:.3rem}li.layer-under .layer-card{opacity:.75}li.layer-under .layer-name span{font-style:italic}.layer-side{display:flex;flex-direction:column;align-items:center;gap:.15rem;flex-shrink:0;width:64px}.layer-side-top{display:flex;align-items:center;justify-content:center;width:100%}.layer-side-top .grip{min-height:32px;width:26px}.layer-side-top button.small{min-width:34px;min-height:32px;padding:0 .2rem}.layer-thumb{display:block;border-radius:4px;border:1px solid var(--border);background:repeating-conic-gradient(#3a4150 0% 25%,#2e3441 0% 50%) 50% / 10px 10px;cursor:pointer}.layer-list li.active .layer-thumb{border-color:var(--accent)}.layer-thumb.off,.layer-list li.layer-off .layer-thumb{opacity:.35}.layer-main{flex:1;min-width:0;display:flex;flex-direction:column;gap:.15rem;padding-top:.15rem}.layer-title{display:flex;align-items:center;gap:.1rem;min-width:0}.layer-title .layer-name{flex:1 1 auto;min-width:0;padding:.2rem .1rem;font-weight:600}.layer-title .icon-sm{min-width:30px;min-height:30px;padding:0 .15rem;flex-shrink:0}.layer-title .icon-sm.warn{color:var(--warning)}.layer-rename{flex:1;min-width:0;padding:.25rem .4rem;font:inherit}.layer-meta{cursor:pointer;padding-left:.1rem}.layer-list li.layer-off .layer-name span{color:var(--text-muted)}.layer-opacity{display:flex;align-items:center;gap:.35rem;color:var(--text-muted);font-size:.8rem}.layer-opacity input{flex:1;min-width:0}.layer-opacity .pct{width:2.8rem;text-align:right;font-variant-numeric:tabular-nums}.layer-list li .layer-tools .grow{flex:1}.layers-footer{border-top:1px solid var(--border);margin-top:.4rem;padding:.5rem .8rem calc(.5rem + var(--safe-bottom));display:flex;flex-direction:column;gap:.3rem;z-index:1}.layers-footer .row{flex-wrap:wrap;gap:.35rem}.layers-footer button.small{padding-left:.55rem;padding-right:.6rem;gap:.3rem}.layers-footer p{margin:0}@media (max-width: 699px){.layers-footer p{display:none}}.hover-tip{position:fixed;z-index:200;pointer-events:none;background:#1b1f27;color:#f1f1ec;border:1px solid var(--border);border-radius:6px;padding:.3rem .55rem;font-size:.82rem;white-space:nowrap;box-shadow:0 4px 14px #00000059}.hover-tip.right{transform:translateY(-50%)}.hover-tip.left{transform:translate(-100%,-50%)}.hover-tip.top{transform:translate(-50%,-100%)}.hover-tip.bottom{transform:translate(-50%)}.lp-pop{position:absolute;z-index:17;background:#262b36f7;border:1px solid var(--accent);border-radius:var(--radius);padding:3px;box-shadow:0 10px 30px #00000073;display:flex;flex-direction:column;gap:3px;max-width:calc(100% - 8px)}.lp-head{display:flex;align-items:center;justify-content:space-between;gap:.4rem;font-size:.78rem;font-weight:600;padding-left:4px}.lp-list{display:flex;flex-direction:column;gap:2px;max-height:60vh;overflow-y:auto}.lp-list button{justify-content:flex-start;text-align:left;min-height:36px;padding:.3rem .6rem;font-size:.9rem;display:flex;align-items:center;gap:.35rem;background:transparent;border-color:transparent}.lp-list button:hover{background:var(--border)}.lp-grid{display:grid;grid-template-columns:repeat(3,40px);gap:3px}.lp-grid .pkey{width:40px;height:40px}.toggle-row{display:flex;align-items:center;justify-content:space-between;gap:.8rem;cursor:pointer}.toggle-text{display:flex;flex-direction:column;gap:.15rem;min-width:0}input.toggle{appearance:none;-webkit-appearance:none;flex:0 0 auto;width:44px;height:26px;margin:0;border-radius:13px;position:relative;cursor:pointer;background:var(--border);border:1px solid var(--border);transition:background .15s}input.toggle:before{content:"";position:absolute;top:2px;left:2px;width:20px;height:20px;border-radius:50%;background:#eef1f6;box-shadow:0 1px 3px #0006;transition:transform .15s}input.toggle:checked{background:var(--accent);border-color:var(--accent)}input.toggle:checked:before{transform:translate(18px)}input.toggle:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.set-sec-body{display:flex;flex-direction:column;gap:.75rem;padding-top:.4rem}.set-sec-body>label:not(.toggle-row),.set-sub>label:not(.toggle-row){display:flex;flex-direction:column;gap:.25rem}.set-sub{display:flex;flex-direction:column;gap:.6rem;padding-left:.8rem;border-left:2px solid var(--border)}.set-demo{display:flex;gap:.8rem;align-items:center}.minimap-demo{flex-shrink:0;background:#12151b;border-radius:6px;padding:4px}.set-row{display:flex;gap:.5rem;flex-wrap:wrap;align-items:center}.set-about{font-size:.8rem}.set-sub-flat{display:flex;flex-direction:column;gap:.45rem}.levels-track{position:relative;display:block;height:28px}.levels-track:before{content:"";position:absolute;left:0;right:0;top:50%;height:8px;margin-top:-4px;border-radius:4px;background:linear-gradient(to right,#000 0,#000 var(--lo),#fff var(--hi),#fff 100%);border:1px solid var(--border)}.levels-track input[type=range]{position:absolute;left:0;right:0;top:0;width:100%;height:28px;margin:0;background:transparent;pointer-events:none;-webkit-appearance:none;appearance:none}.levels-track input[type=range]::-webkit-slider-runnable-track{background:transparent}.levels-track input[type=range]::-moz-range-track{background:transparent}.levels-track input[type=range]::-webkit-slider-thumb{pointer-events:auto;-webkit-appearance:none;width:18px;height:22px;border-radius:4px;background:var(--accent);border:2px solid #1b1f27;cursor:ew-resize}.levels-track input[type=range]::-moz-range-thumb{pointer-events:auto;width:16px;height:20px;border-radius:4px;background:var(--accent);border:2px solid #1b1f27;cursor:ew-resize}.prep-bar .prep-fine{flex:2 1 12rem;min-width:10rem}.prep-bar .prep-fine input{width:100%}.prep-bar .prep-hint{flex:1 1 10rem;font-size:.75rem;line-height:1.2}@media (max-width: 700px){.prep-bar .prep-hint{display:none}}.tool-flyout{position:fixed;z-index:90;display:flex;flex-direction:column;gap:.15rem;padding:.3rem;min-width:170px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:0 10px 30px #00000073}.tool-flyout button{display:flex;align-items:center;gap:.6rem;border:1px solid transparent;background:transparent;min-height:42px;padding:.35rem .7rem;text-align:left;color:var(--text)}.tool-flyout button:hover{background:var(--border)}.tool-flyout button.active{color:var(--accent);border-color:var(--accent);background:#9cae791f}.tool-flyout.row{flex-direction:row;flex-wrap:wrap;min-width:0;max-width:calc(100vw - 16px)}.tool-flyout.row button{flex-direction:column;gap:.15rem;min-width:64px;padding:.35rem .4rem;font-size:.72rem;text-align:center}.toolbar.mode-all .tool-btn.group-start:not(:first-child){margin-top:.35rem}.toolbar.mode-all .tool-btn.group-start:not(:first-child):before{content:"";position:absolute;left:20%;right:20%;top:-.25rem;border-top:1px solid var(--border)}.toolbar.bottom.mode-all .tool-btn.group-start:not(:first-child){margin-top:0;margin-left:.35rem}.toolbar.bottom.mode-all .tool-btn.group-start:not(:first-child):before{left:-.25rem;right:auto;top:20%;bottom:20%;border-top:none;border-left:1px solid var(--border)}.zoom-slider input[type=range]{width:160px}@media (max-width: 700px){.zoom-slider input[type=range]{width:110px}}.right-panel.sheet .panel-head{position:relative;touch-action:none;cursor:ns-resize;padding-top:.75rem;user-select:none;-webkit-user-select:none}.sheet-grip{position:absolute;top:5px;left:50%;width:40px;height:4px;margin-left:-20px;border-radius:2px;background:var(--text-muted);opacity:.6}.right-panel.sheet.resizing{transition:none}.right-panel.sheet.resizing .sheet-grip{background:var(--accent);opacity:1}.status-btn.flip-btn{display:inline-flex;align-items:center;gap:.3rem}.rulers{position:absolute;inset:0;pointer-events:none;z-index:12}.ruler{position:absolute;pointer-events:auto;background:#262b36e0;touch-action:none;cursor:crosshair}.ruler-x{left:22px;bottom:0;width:calc(100% - 22px);height:22px;border-top:1px solid var(--border)}.ruler-y{left:0;top:0;height:calc(100% - 22px);width:22px;border-right:1px solid var(--border)}.rulers.narrow .ruler-x{top:0;bottom:auto;border-top:none;border-bottom:1px solid var(--border)}.rulers.narrow .ruler-y{top:22px}.ruler-corner{position:absolute;left:0;bottom:0;width:22px;height:22px;font-size:9px;display:flex;align-items:center;justify-content:center;color:var(--text-muted);background:#262b36e0}.rulers.narrow .ruler-corner{top:0;bottom:auto}.guide{position:absolute;pointer-events:auto;touch-action:none}.guide:after{content:"";position:absolute;background:#00b8d9}.guide-v{top:0;bottom:0;width:12px;margin-left:-6px;cursor:ew-resize}.guide-v:after{left:5px;top:0;bottom:0;width:1.5px}.guide-h{left:0;right:0;height:12px;margin-top:-6px;cursor:ns-resize}.guide-h:after{top:5px;left:0;right:0;height:1.5px}.guide-label{position:absolute;font-size:10px;background:#00b8d9;color:#06222a;padding:0 4px;border-radius:3px;white-space:nowrap}.guide-v .guide-label{bottom:28px;left:8px}.rulers.narrow .guide-v .guide-label{bottom:auto;top:28px}.guide-h .guide-label{left:26px;top:-14px}.dir-colors{background:linear-gradient(90deg,#e53935,#f0a400,#4caf50,#00acc1,#3f51b5,#c2185b) border-box;color:#fff;border:1px solid var(--border);text-shadow:0 1px 2px rgba(0,0,0,.6)}.dir-colors.active{outline:2px solid var(--accent);outline-offset:1px}.color-dialog{position:fixed;z-index:160;width:min(272px,calc(100vw - 8px));background:var(--surface);border:1px solid var(--border);border-radius:10px;box-shadow:0 10px 30px #00000080;padding:0 6px 6px;display:flex;flex-direction:column;gap:5px;font-size:.85rem}.cd-head{display:flex;align-items:center;gap:4px;height:26px;cursor:move;touch-action:none;user-select:none}.cd-grip{color:var(--text-muted);font-size:.8rem}.cd-title{flex:1;font-weight:600;color:var(--accent);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:.82rem}.color-dialog button.cd-x{min-width:0;min-height:0;width:24px;height:22px;padding:0;border:none;background:none;font-size:.85rem}.cd-top{display:flex;gap:5px;height:104px}.cd-area{position:relative;flex:1;border-radius:5px;touch-action:none;cursor:crosshair;overflow:hidden}.cd-area-white,.cd-area-black{position:absolute;inset:0;pointer-events:none}.cd-area-white{background:linear-gradient(to right,#fff,#fff0)}.cd-area-black{background:linear-gradient(to top,#000,#0000)}.cd-knob{position:absolute;width:14px;height:14px;margin:-7px 0 0 -7px;border-radius:50%;border:2px solid #fff;box-shadow:0 0 0 1px #0009;pointer-events:none}.cd-huebar{position:relative;width:16px;border-radius:5px;touch-action:none;cursor:ns-resize;background:linear-gradient(to bottom,red,#ff0 16.7%,#0f0 33.3%,#0ff,#00f 66.7%,#f0f 83.3%,red)}.cd-hueknob{position:absolute;left:-2px;right:-2px;height:6px;margin-top:-3px;border-radius:3px;border:2px solid #fff;box-shadow:0 0 0 1px #0009;pointer-events:none}.cd-channels{display:flex;flex-direction:column;gap:3px}.cd-ch{display:flex;align-items:center;gap:4px;height:22px}.color-dialog button.cd-lbl{min-width:0;min-height:0;width:24px;height:22px;padding:0;border:none;background:none;font-weight:700;color:var(--accent);font-size:.8rem;cursor:pointer}input[type=range].cd-slider{-webkit-appearance:none;appearance:none;flex:1;min-width:0;min-height:0;height:22px;padding:5px 0;margin:0;border-radius:8px;border:none;background-clip:content-box!important}input[type=range].cd-slider::-webkit-slider-runnable-track{background:transparent}input[type=range].cd-slider::-moz-range-track{background:transparent}input[type=range].cd-slider::-webkit-slider-thumb{-webkit-appearance:none;width:8px;height:18px;border-radius:3px;background:#fff;border:1px solid #1b1f27;box-shadow:0 0 2px #0009}input[type=range].cd-slider::-moz-range-thumb{width:6px;height:16px;border-radius:3px;background:#fff;border:1px solid #1b1f27}.color-dialog input.cd-num{width:40px;min-width:0;height:22px;padding:0 2px;text-align:right;font-family:JetBrains Mono,ui-monospace,monospace;font-size:.78rem;-moz-appearance:textfield}.color-dialog input.cd-num::-webkit-inner-spin-button,.color-dialog input.cd-num::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.cd-bottom{display:flex;align-items:center;gap:4px}.color-dialog input{border-radius:4px}.cd-preview{display:inline-flex;width:34px;height:24px;border-radius:4px;overflow:hidden;border:1px solid var(--border);flex:none}.cd-preview span{flex:1;cursor:pointer}.cd-hex{display:inline-flex;align-items:center;gap:1px;color:var(--text-muted);font-family:JetBrains Mono,ui-monospace,monospace;font-size:.8rem}.color-dialog .cd-hex input{width:58px;height:24px;padding:0 3px;font-family:inherit;font-size:.8rem}.color-dialog button.cd-ico{min-width:0;min-height:0;width:26px;height:24px;padding:0;display:inline-flex;align-items:center;justify-content:center}.color-dialog button.cd-btn{min-width:0;min-height:0;height:24px;padding:0 7px;font-size:.8rem}.swatch.color-btn{vertical-align:middle;cursor:pointer}.fold-choice{position:absolute;z-index:18;left:50%;top:4.2rem;transform:translate(-50%);background:#262b36fa;border:1px solid var(--accent);border-radius:var(--radius);padding:6px 8px;box-shadow:0 10px 30px #00000073;display:flex;flex-direction:column;gap:4px;font-size:.85rem;min-width:200px;max-width:calc(100% - 16px)}.fold-choice-head{font-weight:600}.fold-choice-opts{display:flex;flex-direction:column}.fold-choice-opts .check{min-height:32px;gap:.4rem}.fold-choice-opts .check.active{color:var(--accent)}.fold-choice-actions{display:flex;gap:6px;justify-content:flex-end}.text-input-proxy{position:absolute;left:0;top:0;z-index:1;width:2px;height:20px;padding:0;border:0;margin:0;opacity:0;resize:none;overflow:hidden;font-size:16px;color:transparent;background:transparent;caret-color:transparent;pointer-events:none}.menu-info{border-top:1px solid var(--border);margin-top:.2rem;padding:.35rem .7rem .2rem;display:flex;flex-direction:column;gap:.25rem;font-size:.85rem}.menu-info .info-spent{display:flex;align-items:center;gap:.35rem;margin-top:.1rem}.menu-info .info-spent b{font-variant-numeric:tabular-nums;font-weight:600}.menu-info .info-spent.running svg{color:var(--accent)}.menu-info .info-spent.done svg{color:var(--ok, #43a047)}.menu-info .geo-link{padding:.2rem 0;min-height:32px;font-size:.85rem;color:var(--accent)}.menu-check .check-box{width:18px;height:18px;border:2px solid var(--muted, #8a93a3);border-radius:4px;display:inline-flex;align-items:center;justify-content:center;flex:0 0 auto}.menu-check.check-right .check-box{margin-left:auto}.menu-check .check-box.on{background:var(--accent);border-color:var(--accent);color:var(--bg, #111)}.thumb-badges{position:absolute;right:6px;bottom:6px;display:flex;gap:4px;pointer-events:none}.thumb-badges .cloud-badge{pointer-events:auto;cursor:pointer}.geo-badge,.cloud-badge{background:#1b1f27cc;color:#fff;border-radius:50%;width:22px;height:22px;display:inline-flex;align-items:center;justify-content:center}.cloud-badge.cb-ok{color:#b9d48c}.cloud-badge.cb-up,.cloud-badge.cb-down{color:#9cc7ff;animation:cloud-pulse .8s ease-in-out infinite alternate}.cloud-badge.cb-none{color:#ff6b5e}.fireworks{position:fixed;inset:0;width:100vw;height:100vh;pointer-events:none;z-index:190}.celebrate{position:fixed;left:50%;top:50%;transform:translate(-50%,-50%);z-index:191;background:var(--surface);color:var(--text);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:0 16px 48px #0000008c;padding:.6rem 1rem 1rem;width:min(360px,calc(100vw - 24px));text-align:center}.celebrate-head{display:flex;align-items:center;justify-content:center;position:relative;cursor:move;touch-action:none;user-select:none;padding:.2rem 2rem}.celebrate-head h2{margin:.2rem 0;font-size:1.9rem;color:var(--accent)}.celebrate-head button{position:absolute;right:-.4rem;top:0}.celebrate img{width:70%;height:auto;margin:.3rem auto;display:block}.celebrate p{margin:.3rem 0 .8rem;font-size:.95rem}.celebrate .row{gap:.5rem;justify-content:center}.thumb-wrap{position:relative;display:block}.out-box .out-line{display:block}.grid-panel{gap:.45rem}.grid-list li.grid-tile{display:flex;align-items:center;gap:.1rem;padding:.1rem .2rem .1rem 0;cursor:pointer}.grid-list .grip{min-height:34px;width:24px}.grid-tile-main{flex:1;min-width:0;display:flex;flex-direction:column;padding:.15rem .2rem}.grid-tile-name{font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.grid-tile-meta{font-size:.8rem}.grid-list li.layer-off .grid-tile-name{color:var(--text-muted)}.grid-list .icon-sm{min-width:30px;min-height:30px;padding:0 .15rem;flex-shrink:0}.grid-sec{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface-2)}.grid-sec-head{display:flex;align-items:center;gap:.4rem;width:100%;background:transparent;border:none;padding:.5rem .55rem;font-weight:600;color:var(--accent);text-align:left;min-height:40px}.grid-sec-arrow{display:inline-block;transition:transform .15s;width:.9rem}.grid-sec.open .grid-sec-arrow{transform:rotate(90deg)}.grid-sec-title{flex:1;min-width:0}.grid-sec-body{display:flex;flex-direction:column;gap:.4rem;padding:.2rem .55rem .6rem;border-top:1px solid var(--border)}.grid-sec-body .row{flex-wrap:wrap}.grid-sec-body .pct{width:2.8rem;text-align:right}.clear-row button.small{gap:.3rem}.content-edit{position:relative}.content-edit textarea,.content-backdrop{font-family:var(--mono, ui-monospace, monospace);font-size:1rem;line-height:1.45;letter-spacing:.08em;padding:.45rem .55rem;border:1px solid var(--border);border-radius:var(--radius);white-space:pre-wrap;word-break:break-all;overflow-wrap:anywhere;margin:0;box-sizing:border-box;width:100%}.content-edit textarea,.content-edit .content-backdrop{padding-right:5.6rem}.content-edit textarea{position:relative;background:transparent;resize:vertical;display:block}.content-backdrop{position:absolute;inset:0;color:transparent;overflow:hidden;pointer-events:none;background:var(--surface)}.content-backdrop mark{color:transparent;background:#e0b95580;border-radius:2px}.panel-body details.ocr-card>summary{list-style:none}.panel-body details.ocr-card>summary::-webkit-details-marker{display:none}details.ocr-card[open]>summary .grid-sec-arrow{transform:rotate(90deg)}.import-menu>button.primary{background:var(--accent);color:#1b1f27;font-weight:600}.import-menu>button.primary:hover{background:var(--accent);filter:brightness(1.08)}.import-menu>button:disabled{opacity:.45}.import-menu .menu-note{max-width:260px}.proj-card.new-card .proj-thumb.new-thumb{border:2px dashed var(--border);color:var(--accent);background:transparent}.proj-card.new-card:hover .new-thumb{border-color:var(--accent)}.proj-card.new-card .proj-name{color:var(--accent);font-weight:600}.folder-toggle.static{cursor:default;padding-left:.4rem}.folder-head .grip{min-height:36px;width:24px}section.folder.folder-dragging{opacity:.55}section.folder.folder-drop-before{box-shadow:0 -3px 0 var(--accent)}section.folder.folder-drop-after{box-shadow:0 3px 0 var(--accent)}.game-clock{display:inline-flex;align-items:center;gap:.25rem;font-size:.82rem;white-space:nowrap;font-variant-numeric:tabular-nums;padding:0 .3rem}.game-clock.start{color:#43a047}.game-clock.end{color:#e53935}.game-clock.over{color:#6b7280}.menu-info .info-spent.game.left svg,.menu-info .info-spent.game.left b{color:#e53935}.menu-info .info-spent.game.over svg{color:#6b7280}.layers-top{display:flex;align-items:center;gap:.4rem;padding:0 0 .45rem}.layers-top button.small{gap:.3rem}.img-panel{gap:.45rem}.sec-note{font-weight:400;font-size:.78rem;color:var(--text-muted);margin-left:.3rem}.grid-sec.sub-sec{background:var(--surface)}.grid-sec.sub-sec>.grid-sec-head{min-height:34px;padding:.35rem .5rem;font-size:.9rem}.ch-list{gap:.25rem}.ch-list li.ch-row{display:flex;align-items:center;gap:.35rem;padding:.2rem .35rem .2rem .15rem}.ch-thumb{width:44px;height:44px;object-fit:contain;flex:none;cursor:default}.ch-list li.layer-off .ch-thumb{opacity:.35}.ch-main{flex:1;min-width:0;display:flex;flex-direction:column;gap:.05rem}.ch-main small,.ch-title{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ch-eye{position:relative;min-width:34px}.ch-eye.inv{color:var(--accent)}.ch-eye-space{width:34px;flex:none}.ch-inv-mark{position:absolute;right:1px;bottom:0;font-size:.7rem;font-weight:700;line-height:1}.ch-list li.ch-all{background:transparent;border-style:dashed}.wheel-btn{position:relative;width:40px;height:40px;min-height:40px;border-radius:50%;padding:0;border:1px solid var(--border);background:transparent;flex:none}.wheel-ring{position:absolute;inset:2px;border-radius:50%;background:conic-gradient(red,#ff0,#0f0,#0ff,#00f,#f0f,red)}.wheel-dot{position:absolute;inset:10px;border-radius:50%;border:2px solid #fff;box-shadow:0 0 0 1px #00000059}.menu .menu-sep{height:1px;background:var(--border);margin:.25rem 0}.folder-head .folder-toggle{flex:0 1 auto}.folder-head .folder-head-fill{align-self:stretch;cursor:pointer;min-width:.5rem}.folder-rename{opacity:.7}.folder-rename:hover{opacity:1}.folder-foot{display:flex;flex-wrap:wrap;align-items:flex-end;gap:.3rem .6rem;padding:.35rem .1rem 0}.folder-foot .game-clock{margin-left:auto;flex:none}.folder-desc-text{flex:1 1 16rem;min-width:0;text-align:left;font-size:.85rem;white-space:pre-wrap;overflow-wrap:anywhere;line-height:1.35}.folder-desc-text a{color:var(--accent);text-decoration:underline}.modal.folder-desc textarea{width:100%;box-sizing:border-box;font-size:1rem;min-height:9rem;resize:vertical}.modal.game-time .game-field{display:flex;flex-direction:column;gap:.25rem;margin:.4rem 0}.modal.game-time .game-field span{font-weight:600;font-size:.9rem}.modal.game-time .game-field input{width:100%;font-size:1rem;min-height:42px;padding:.35rem .5rem;box-sizing:border-box}.thumb-wrap{container-type:inline-size}.tajenka-over{position:absolute;inset:32px 4px 26px;display:flex;align-items:center;justify-content:center;text-align:center;pointer-events:none}.tajenka-over>span{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:5;line-clamp:5;overflow:hidden;max-height:100%;color:#e53935;font-weight:700;font-size:clamp(10px,10cqw,18px);line-height:1.2;overflow-wrap:anywhere;white-space:pre-line;text-shadow:0 0 2px #fff,0 0 3px #fff,0 0 5px #fff}.ask-select{display:flex;flex-direction:column;gap:.25rem;margin:0 0 .6rem}.ask-select span{font-size:.85rem;color:var(--text-muted)}.ask-select select{width:100%;min-height:40px;font-size:1rem}.modal.insert-dialog{width:min(440px,calc(100vw - 24px))}.insert-title{margin:0 0 .7rem;font-size:1.05rem}.insert-tabs{display:grid;grid-template-columns:1fr 1fr;gap:.4rem;margin-bottom:.7rem}.insert-tabs button{min-height:42px;font-weight:600}.insert-tabs button.active{background:var(--accent);border-color:var(--accent);color:#111}.insert-tabs button:disabled{opacity:.4}.insert-sec{display:flex;flex-direction:column;gap:.5rem;min-height:6.5rem}.insert-sec p{margin:0}.insert-into{font-weight:600;overflow-wrap:anywhere}.insert-modes{display:flex;flex-direction:column;gap:.35rem}.insert-modes button{justify-content:flex-start;text-align:left;min-height:40px}.insert-modes button.active{border-color:var(--accent);background:#9cae792e;box-shadow:inset 3px 0 0 var(--accent)}.insert-modes button:disabled{opacity:.4}.help-q{min-width:30px;min-height:30px;padding:0 .4rem;font-weight:700;color:var(--text-muted);border-radius:999px;flex:0 0 auto}.options-bar .help-q,.panel-head .help-q{margin-left:auto}.help-sec.flash>summary{background:color-mix(in srgb,var(--accent) 25%,transparent)}.help-anchor{scroll-margin-top:.5rem}.help-reminder{margin-top:.6rem!important;padding:.45rem .6rem;border-left:3px solid #e53935;background:color-mix(in srgb,#e53935 10%,transparent);border-radius:4px}.help-issue{margin-top:.6rem}.help ol{margin:.3rem 0;padding-left:1.3rem}.out-box .out-line.tinted{padding:0 .3rem;border-radius:3px;margin:1px 0}.view-pen{display:flex;flex-direction:column;gap:.2rem;padding:.2rem .5rem;font-size:.85rem}.view-pen select{width:100%}.palette .pkey.kb-shift{width:calc(var(--kw) * .6);min-width:22px;font-size:.8rem;color:var(--text-muted);font-family:inherit;flex:0 0 auto}.palette .kb-editrow .pkey.kb-shift{width:calc(var(--kw) * .6)}.kb-shift-dot{position:absolute;left:50%;bottom:4px;width:5px;height:5px;margin-left:-2.5px;border-radius:50%;background:var(--border)}.kb-shift.on .kb-shift-dot{background:var(--accent);box-shadow:0 0 4px var(--accent)}.kb-shift.on{color:var(--text)}.kb-shift-float{position:absolute;left:3px;bottom:3px;display:flex}.kb-lc .kb-pending-out,.kb-lc .kb-variant b,.kb-lc .kb-numkey small,.kb-lc .kb-pad:not([data-testid=pad-numbers]) .pkey{text-transform:lowercase}.shift-float{--shiftw: max(25px, calc(var(--kw) * .6 + 3px))}.shift-float .kb-pad[data-testid=pad-morse] .kb-actions{padding-left:var(--shiftw)}.shift-float .kb-pad[data-testid=pad-braille] .kb-cell6{margin-left:var(--shiftw)}.shift-float:has(.kb-flags) .kb-shift-float,.shift-float:has(.kb-primes) .kb-shift-float{left:auto;right:3px}.prow.shift-abs{position:relative}.palette .prow.shift-abs>.pkey.kb-shift{position:absolute;top:0;left:calc(50% - (var(--rmax) * (var(--kw) + 3px) - 3px) / 2);width:calc(var(--kw) * .6)}.kb-body{display:flex;flex-direction:column;gap:3px}.dia-pop.below{padding:3px 0 0;border-bottom:none;border-top:1px solid var(--border)}.kb-recent{padding-bottom:3px;border-bottom:1px dashed var(--border)}.kb-recent .pkey{border-color:var(--accent)}.kb-recent-empty{border:1px dashed #3a414f;border-radius:var(--radius);opacity:.6}.kb-mini-title{display:inline-flex;align-items:center;gap:.35rem;font-weight:600;white-space:nowrap}.cloud-sec{display:flex;flex-direction:column;gap:.4rem;padding:.5rem .6rem;border:1px solid var(--border);border-radius:var(--radius);background:#9cae790d}.cloud-head{display:flex;align-items:center;gap:.45rem}.cloud-head .muted{margin-left:auto;text-align:right}.cloud-sec .row{display:flex;flex-wrap:wrap;gap:.4rem}.cloud-btn{opacity:.55}.cloud-btn.st-idle,.cloud-btn.st-syncing{opacity:.85}.cloud-btn.st-syncing svg{animation:cloud-pulse 1s ease-in-out infinite alternate}.cloud-btn.st-auth,.cloud-btn.st-error,.cloud-btn.st-conflict{opacity:1;color:var(--warning)}@keyframes cloud-pulse{0%{opacity:.4}to{opacity:1}}.cloud-sec .error-text{color:#ef7b6f}.cloud-overview{display:flex;flex-direction:column;gap:.3rem}.cloud-ov-row{display:flex;align-items:center;gap:.4rem;font-size:.85rem}.cloud-ov-row>span{flex:1;min-width:0}.cloud-ov-row.warn{color:#ff8a7a}.cloud-devices{display:flex;flex-direction:column;gap:.1rem}.modal-back.ask .toggle-row{margin-top:.7rem}.editor-bar .more-wrap .menu.right{min-width:270px}.share-check{display:flex;flex-direction:column;gap:.4rem;align-items:flex-start}.share-check-out{font-size:.82rem;background:var(--bg);border:1px solid var(--border);border-radius:6px;padding:.45rem .6rem;display:flex;flex-direction:column;gap:.2rem;overflow-wrap:anywhere;width:100%}.share-check-out button{align-self:flex-end}
