:root{--bg: #f4f6f8;--surface: #fff;--surface-2: #eaeef2;--line: #d9dfe6;--ink: #12161c;--muted: #596574;--accent: #8f261e;--accent-ink: #8f261e;--accent-soft: #f8e9e7;--bad: #b23129;--paper: #fff;--ink-dim: #47505c;--ok: #0e7154;--danger: #b3261e;color-scheme:light dark;--ui-font: 14px;--head-h: 3.1rem;--bar-h: 2.85rem;--props-h: 2.5rem;--status-h: 1.95rem;--status-py: .35rem;--btn-py: .32rem;--icon-btn: 2rem;--icon-btn-py: .32rem;--icon-size: 17px;--tab-py: .3rem;--tabs-pad: 3px;--edge: .7rem}:root[data-density=small]{--ui-font: 13px;--head-h: 2.85rem;--bar-h: 2.3rem;--props-h: 2rem;--status-h: 1.6rem;--status-py: .25rem;--btn-py: .2rem;--icon-btn: 1.7rem;--icon-btn-py: .2rem;--icon-size: 16px;--tab-py: .24rem;--tabs-pad: 2px}@media(prefers-color-scheme:dark){:root:not([data-theme=light]):not([data-theme=grey]){--bg: #0e1116;--surface: #161a21;--surface-2: #1d222b;--line: #2a313b;--ink: #e7ebf0;--muted: #96a1b0;--accent: #8f261e;--accent-ink: #cf6159;--accent-soft: #301a17;--bad: #f0776d;--paper: #f2f2f2;--ink-dim: #b6c0cc;--ok: #57c39b;--danger: #f0776d}}:root[data-theme=dark]{--bg: #0e1116;--surface: #161a21;--surface-2: #1d222b;--line: #2a313b;--ink: #e7ebf0;--muted: #96a1b0;--accent: #8f261e;--accent-ink: #cf6159;--accent-soft: #301a17;--bad: #f0776d;--paper: #f2f2f2;--ink-dim: #b6c0cc;--ok: #57c39b;--danger: #f0776d;color-scheme:dark}:root[data-theme=grey]{--bg: #4e4e4e;--surface: #393939;--surface-2: #434343;--line: #5b5b5b;--ink: #eeeeee;--muted: #b0b0b0;--accent: #8f261e;--accent-ink: #e08b83;--accent-soft: #3a2320;--bad: #f68d84;--paper: #fff;--ink-dim: #c6c6c6;--ok: #63c9a2;--danger: #f68d84;color-scheme:dark}:root[data-theme=light]{color-scheme:light}*{box-sizing:border-box}html,body,#root{height:100%}body{margin:0;background:var(--bg);color:var(--ink);font:var(--ui-font)/1.55 ui-sans-serif,system-ui,-apple-system,"Segoe UI",sans-serif;overflow:hidden}.app{height:100%;display:flex;flex-direction:column;position:relative}.progress-veil{position:absolute;inset:0;z-index:50;display:flex;align-items:center;justify-content:center;background:#00000059;-webkit-backdrop-filter:blur(1px);backdrop-filter:blur(1px)}.progress-box{display:flex;align-items:center;gap:.9rem;padding:1rem 1.3rem;border-radius:10px;background:var(--surface);border:1px solid var(--line);box-shadow:0 18px 50px -18px #0009;max-width:26rem}.progress-text{display:flex;flex-direction:column;gap:.15rem}.progress-text span{color:var(--ink-dim);font-size:.85em}.progress-spinner{flex:none;width:20px;height:20px;border-radius:50%;border:2px solid var(--line);border-top-color:var(--accent-ink);animation:progress-spin .8s linear infinite}@keyframes progress-spin{to{transform:rotate(360deg)}}@media(prefers-reduced-motion:reduce){.progress-spinner{animation:none;border-top-color:var(--accent-ink)}}.tabs-shell{height:100%;display:flex;flex-direction:column}.tab-panel{flex:1;min-height:0}.tab-panel[hidden]{display:none}.tabs-bar{flex:none;display:flex;align-items:stretch;gap:2px;padding:var(--tabs-pad) var(--edge) 0;background:var(--bg);border-bottom:1px solid var(--line);overflow-x:auto;scrollbar-width:thin}.tab{display:flex;align-items:center;gap:.4rem;max-width:15rem;padding:var(--tab-py) .5rem var(--tab-py) .7rem;border:1px solid transparent;border-bottom:none;border-radius:6px 6px 0 0;background:transparent;color:var(--ink-dim);cursor:default;-webkit-user-select:none;user-select:none;white-space:nowrap}.tab:hover{background:var(--surface)}.tab.current{background:var(--surface);color:var(--ink);border-color:var(--line)}.tab-name{overflow:hidden;text-overflow:ellipsis}.tab-close,.tab-add{flex:none;border:none;background:transparent;color:inherit;cursor:pointer;line-height:1;border-radius:4px;padding:.15rem .35rem;font-size:1rem}.tab-close:hover,.tab-add:hover{background:var(--line)}.tab-add{align-self:center;margin-left:.25rem;color:var(--ink-dim)}.head{display:flex;align-items:center;gap:.6rem;flex:none;height:var(--head-h);box-sizing:border-box;padding:0 var(--edge);border-bottom:1px solid var(--line);background:var(--surface)}.head-actions{margin-left:auto}.head-portal{display:flex;align-items:center;gap:.3rem;margin-left:auto}.head-actions+.head-portal{margin-left:0}.head-portal .head-state{font-size:.8em;color:var(--muted);white-space:nowrap;margin-right:.2rem}.head-portal .head-state.warn{color:var(--warn, #c77700)}.head-portal .head-people{display:inline-flex;gap:3px;margin-right:.2rem}.head-portal .head-man{width:20px;height:20px;border-radius:50%;color:#fff;font-size:10px;font-weight:600;display:inline-flex;align-items:center;justify-content:center}.head button,.head .as-button{font-size:.88em;padding:.15rem .5rem;gap:.3rem;border-radius:6px}.head{--icon-size: 14px}.head button.icon{width:1.5rem;padding:.15rem}.head .sep{height:1.1rem}.head button,.head .as-button,.toolbar button,.toolbar .as-button,.settings-bar button{max-height:100%}.head>div:first-child{min-width:0}.brand{display:flex;align-items:baseline;gap:.45rem;min-width:0;flex:0 1 auto;overflow:hidden}h1{font-size:1.05rem;margin:0;letter-spacing:-.02em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.version{flex:none;color:var(--muted);font-size:.75rem;font-variant-numeric:tabular-nums;white-space:nowrap}.sub{color:var(--muted);margin:.15rem 0 0;font-size:.82rem}.toolbar{display:flex;gap:.35rem;align-items:center;flex:none;height:var(--bar-h);box-sizing:border-box;padding:0 var(--edge);border-bottom:1px solid var(--line);background:var(--surface);overflow-x:auto;overflow-y:hidden;scrollbar-width:thin}.toolbar .tools{display:flex;gap:.35rem;align-items:center;min-width:0;flex:1;overflow-x:auto;overflow-y:hidden;scrollbar-width:none}.toolbar .tools::-webkit-scrollbar{height:0}.tools-hint{margin-left:auto;padding-left:.8rem;font-size:.8rem;color:var(--muted);white-space:nowrap;flex:0 1 auto;min-width:0;overflow:hidden;text-overflow:ellipsis}.toolbar .palette{display:flex;gap:.25rem;align-items:center;margin:0 .2rem}.toolbar .swatch{width:1.35rem;height:1.35rem;padding:0;border-radius:50%;border:2px solid transparent;flex:none;background-clip:padding-box;box-shadow:inset 0 0 0 1px #808080d9}.toolbar .swatch.active{border-color:var(--accent-ink);box-shadow:inset 0 0 0 1px #808080d9,0 0 0 2px var(--surface)}.palette-sep{width:1px;height:1.1rem;background:var(--line);margin:0 .15rem;flex:none}.toolbar .swatch-custom{position:relative;flex:none;cursor:pointer;width:1.75rem;height:1.75rem;border-radius:7px;border:1px solid var(--line);background:var(--surface);color:var(--muted);display:grid;place-items:center}.toolbar .swatch-custom:hover,.toolbar .swatch-custom.on{border-color:var(--accent-ink);color:var(--ink)}.toolbar .swatch-custom input{position:absolute;inset:0;opacity:0;cursor:pointer}.swatch-custom-dot{position:absolute;right:1px;bottom:1px;width:.6rem;height:.6rem;border-radius:50%;box-shadow:inset 0 0 0 1px #808080d9,0 0 0 1.5px var(--surface)}.toolbar button,.as-button{background:var(--surface);color:var(--ink);border:1px solid var(--line);border-radius:7px;padding:var(--btn-py) .6rem;font:inherit;cursor:pointer;white-space:nowrap;display:inline-flex;align-items:center;gap:.35rem;flex:none}.toolbar button.icon{padding:var(--icon-btn-py);width:var(--icon-btn);justify-content:center}.icon-svg{flex:none;display:block;width:var(--icon-size);height:var(--icon-size)}.toolbar .badge{min-width:1.15rem;height:1.15rem;padding:0 .25rem;border-radius:.6rem;background:var(--surface-2);color:var(--muted);font-size:.72rem;line-height:1.15rem;text-align:center;font-variant-numeric:tabular-nums;flex:none}.toolbar button.active .badge{background:#ffffff47;color:#fff}.toolbar button:hover:not(:disabled),.as-button:hover{border-color:var(--accent-ink)}.toolbar button:disabled{opacity:.38;cursor:default}.toolbar button.primary{background:var(--accent);color:#fff;border-color:var(--accent);font-weight:600}.toolbar button.active{background:var(--accent);color:#fff;border-color:var(--accent)}.modes{display:flex;gap:0;border:1px solid var(--line);border-radius:8px;overflow:hidden;flex:none}.modes button{border:0;border-radius:0;background:var(--surface-2);color:inherit;font:inherit;font-size:.85rem;cursor:pointer;display:inline-flex;align-items:center;gap:.35rem;padding:var(--btn-py) .7rem;white-space:nowrap}.modes button+button{border-left:1px solid var(--line)}.modes button:hover:not(:disabled){border-color:var(--line)}.modes button:hover:not(:disabled):not(.active){background:var(--accent-soft)}.modes button.active{background:var(--accent);color:#fff}.toolbar .sep{width:1px;height:1.5rem;background:var(--line);margin:0 .3rem;flex:none}.toolbar .sep.tall{height:2rem;margin:0 .7rem;background:linear-gradient(var(--line),var(--line)) center / 1px 100% no-repeat}.toolbar .done{margin-left:auto}.head-actions .sep{width:1px;height:1.4rem;background:var(--line);margin:0 .3rem;flex:none}.as-button input{display:none}.drop{margin:auto;max-width:30rem;width:calc(100% - 2.5rem);border:2px dashed var(--line);border-radius:12px;background:var(--surface);padding:3rem 1.5rem;text-align:center}.drop.over{border-color:var(--accent-ink);background:var(--accent-soft)}.drop-hint{margin:0 0 1rem;color:var(--muted)}.drop input{display:none}.btn{display:inline-block;background:var(--accent);color:#fff;border:0;padding:.55rem 1.1rem;border-radius:7px;font:inherit;font-weight:600;cursor:pointer}.btn:disabled{opacity:.5;cursor:default}.grid-scroll{flex:1;overflow-y:auto;overflow-x:hidden;padding:1.25rem}.grid-canvas{position:relative}.cell{position:absolute;display:flex;flex-direction:column;align-items:center;gap:.4rem;padding:.4rem;border-radius:9px;border:2px solid transparent;cursor:grab;-webkit-user-select:none;user-select:none}.cell:hover{background:var(--surface-2)}.cell.selected{border-color:var(--accent);background:var(--accent-soft)}.cell:active{cursor:grabbing}.cell.drop-before:before,.cell.drop-after:after{content:"";position:absolute;top:.4rem;bottom:1.6rem;width:3px;background:var(--accent);border-radius:2px}.cell.drop-before:before{left:-.5rem}.cell.drop-after:after{right:-.5rem}.cell-paper-box{flex:1;min-height:0;width:100%;display:flex;align-items:center;justify-content:center}.cell-paper{position:relative;background:var(--paper);border:1px solid var(--line);border-radius:3px;box-shadow:0 2px 8px -4px #0006;overflow:hidden}.cell-paper canvas{object-fit:contain;display:block}.cell-pending{width:100%;height:100%;background:linear-gradient(100deg,var(--surface-2) 30%,var(--line) 50%,var(--surface-2) 70%);background-size:220% 100%;animation:shimmer 1.3s linear infinite}@keyframes shimmer{to{background-position:-220% 0}}@media(prefers-reduced-motion:reduce){.cell-pending{animation:none;background:var(--surface-2)}}.cell-label{display:flex;align-items:center;gap:.35rem;font-size:.74rem;color:var(--muted);max-width:100%}.cell-number{font-variant-numeric:tabular-nums}.cell-badge{background:var(--accent);color:#fff;border-radius:3px;padding:0 .25rem;font-size:.66rem;font-weight:600}.cell-source{max-width:6rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;opacity:.8}.statusbar{display:flex;justify-content:space-between;gap:1rem;padding:var(--status-py) var(--edge);border-top:1px solid var(--line);background:var(--surface);font-size:.8rem;color:var(--muted);min-height:var(--status-h);align-items:center;position:relative}.statusbar .err{color:var(--bad)}.statusbar .counts{font-variant-numeric:tabular-nums;white-space:nowrap}.status-note{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:calc(50% - 8rem)}.status-nav{display:flex;align-items:center;gap:.1rem;flex:none;position:absolute;left:50%;transform:translate(-50%)}.status-nav button{border:0;background:none;color:var(--muted);cursor:pointer;padding:.15rem .25rem;border-radius:5px;font:inherit;font-size:.78rem;display:grid;place-items:center}.status-nav button:hover:not(:disabled){color:var(--ink);background:var(--surface-2)}.status-nav button:disabled{opacity:.35;cursor:default}.status-counter{font-variant-numeric:tabular-nums;white-space:nowrap;padding:0 .2rem;min-width:3.6rem;text-align:center;display:inline-flex;align-items:center;gap:.25rem}.page-input{font:inherit;font-variant-numeric:tabular-nums;text-align:right;color:inherit;background:transparent;border:1px solid transparent;border-radius:4px;padding:0 .2rem;min-width:1.6rem}.page-input:hover{border-color:var(--line)}.page-input:focus{outline:none;border-color:var(--accent-ink);background:var(--surface-2)}.page-total{color:var(--muted)}.status-zoom{min-width:4.6rem}.status-sep{width:1px;height:1rem;background:var(--line);margin:0 .35rem}.stage{flex:1;min-height:0;display:flex}.sig-popover{position:absolute;top:.5rem;right:.75rem;z-index:5;width:16rem;max-height:calc(100% - 1.5rem);overflow-y:auto;border:1px solid var(--line);border-radius:12px;box-shadow:0 18px 50px -18px #000000a6;background:var(--surface)}.sig-panel{padding:1rem;display:flex;flex-direction:column;gap:.7rem}.sig-panel h2{font-size:.78rem;text-transform:uppercase;letter-spacing:.1em;color:var(--muted);margin:0}.as-button.block{display:block;text-align:center}.sig-hint{margin:0;font-size:.78rem;color:var(--muted);line-height:1.45}.sig-error{margin:0;font-size:.78rem;color:var(--bad);line-height:1.45}.sig-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.45rem}.sig-list li{position:relative}.sig-item{width:100%;border:1px solid var(--line);border-radius:8px;background:var(--paper);padding:.4rem;cursor:pointer;display:block;background-image:linear-gradient(45deg,#0000001a 25%,transparent 25%,transparent 75%,#0000001a 75%),linear-gradient(45deg,#0000001a 25%,transparent 25%,transparent 75%,#0000001a 75%);background-size:12px 12px;background-position:0 0,6px 6px}.sig-item.active{border-color:var(--accent-ink);box-shadow:0 0 0 2px var(--accent-soft)}.sig-thumb{width:100%;height:auto;display:block}.sig-remove{position:absolute;top:-.4rem;right:-.4rem;width:1.3rem;height:1.3rem;border-radius:50%;line-height:1;border:1px solid var(--line);background:var(--surface);color:var(--muted);cursor:pointer;font-size:.9rem;padding:0}.sig-remove:hover{color:var(--bad);border-color:var(--bad)}.cell.placing .cell-paper{cursor:crosshair}.stamp{position:absolute;cursor:move;touch-action:none;border:1px solid transparent;border-radius:2px}.stamp canvas{width:100%;height:100%;display:block}.stamp.selected{border-color:var(--accent)}.stamp-handle{position:absolute;right:-5px;bottom:-5px;width:10px;height:10px;border-radius:2px;background:var(--accent);cursor:nwse-resize;touch-action:none}.cut-handle{position:absolute;left:-.62rem;top:50%;transform:translateY(-50%);width:1.15rem;height:1.6rem;padding:0;z-index:2;border:1px solid var(--line);border-radius:5px;background:var(--surface);color:var(--muted);font-size:.72rem;line-height:1;cursor:pointer;opacity:0;transition:opacity .12s}.cell:hover .cut-handle,.cut-handle:focus-visible{opacity:1}.cut-handle.on{opacity:1;background:var(--accent);border-color:var(--accent-ink);color:#fff}.cell.cut:before{content:"";position:absolute;left:-.5rem;top:.2rem;bottom:.2rem;border-left:2px dashed var(--accent-ink)}.password{margin:auto;max-width:24rem;width:calc(100% - 2.5rem);background:var(--surface);border:1px solid var(--line);border-radius:12px;padding:1.4rem;display:flex;flex-direction:column;gap:.7rem}.password label{font-size:.9rem;color:var(--muted)}.password-row{display:flex;gap:.5rem}.password input{flex:1;min-width:0;font:inherit;padding:.45rem .6rem;border:1px solid var(--line);border-radius:7px;background:var(--bg);color:var(--ink)}.password input:focus-visible{outline:2px solid var(--accent-ink);outline-offset:1px}.password button[type=button]{background:var(--surface);color:var(--muted);border:1px solid var(--line);border-radius:7px;padding:.45rem .8rem;font:inherit;cursor:pointer}.grid-scroll:focus-visible{outline:2px solid var(--accent-ink);outline-offset:-2px}.link-button{background:none;border:0;color:var(--accent-ink);font:inherit;cursor:pointer;text-decoration:underline;padding:.4rem;display:block;margin:.8rem auto 0}.link-button:disabled{opacity:.5;cursor:default}.overlay{position:fixed;inset:0;z-index:10;background:color-mix(in srgb,var(--ink) 45%,transparent);display:flex;align-items:center;justify-content:center;padding:1.5rem}.closeguard{background:var(--surface);border:1px solid var(--line);border-radius:14px;padding:1.4rem;width:min(26rem,100%);display:flex;flex-direction:column;gap:.7rem;box-shadow:0 24px 60px -24px #0000008c}.closeguard h2{margin:0;font-size:1.05rem}.closeguard p{margin:0;color:var(--muted);line-height:1.45}.closeguard-actions{display:flex;flex-wrap:wrap;gap:.5rem;margin-top:.4rem}.closeguard-actions .btn{flex:1 1 auto}.closeguard-actions .btn:not(.primary){background:transparent;color:var(--ink);border:1px solid var(--line)}.batch{background:var(--surface);border:1px solid var(--line);border-radius:14px;padding:1.4rem;width:min(30rem,100%);max-height:100%;overflow-y:auto;display:flex;flex-direction:column;gap:.9rem;box-shadow:0 24px 60px -24px #0000008c}.batch-head{display:flex;align-items:center;justify-content:space-between}.batch-head h2{margin:0;font-size:1.05rem}.batch-head button{background:none;border:0;color:var(--muted);font-size:1.4rem;line-height:1;cursor:pointer;padding:0 .3rem}.batch-files{margin:0;padding:.6rem .8rem;list-style:none;font-size:.82rem;color:var(--muted);background:var(--bg);border-radius:8px;max-height:8rem;overflow-y:auto}.batch-files li{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.batch-files .more{opacity:.7;font-style:italic}.batch-actions{border:1px solid var(--line);border-radius:9px;padding:.7rem .9rem;display:flex;flex-direction:column;gap:.45rem;margin:0}.batch-actions legend{font-size:.78rem;color:var(--muted);padding:0 .3rem}.batch-actions label{display:flex;gap:.5rem;align-items:center;cursor:pointer}.batch-option{display:flex;gap:.6rem;align-items:center;font-size:.88rem}.batch-option select{flex:1;font:inherit;padding:.35rem .5rem;border:1px solid var(--line);border-radius:7px;background:var(--bg);color:var(--ink)}.batch .btn{width:100%}.batch .btn.primary{background:var(--accent)}.batch-progress{display:flex;flex-direction:column;gap:.4rem;font-size:.82rem;color:var(--muted)}.batch-progress .bar{height:5px;background:var(--surface-2);border-radius:3px;overflow:hidden}.batch-progress .bar div{height:100%;background:var(--accent);transition:width .2s}.batch-done{margin:0;font-size:.85rem;color:var(--ok)}.batch-error{margin:0;font-size:.85rem;color:var(--bad)}.viewer{position:fixed;inset:0;z-index:20;background:var(--bg);display:flex;flex-direction:column}.viewer-bar{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.6rem 1rem;border-bottom:1px solid var(--line);background:var(--surface);flex-wrap:wrap}.viewer-bar button{background:var(--surface);color:var(--ink);border:1px solid var(--line);border-radius:7px;padding:.35rem .7rem;font:inherit;cursor:pointer}.viewer-bar button:hover:not(:disabled){border-color:var(--accent-ink)}.viewer-bar button:disabled{opacity:.4;cursor:default}.viewer-nav,.viewer-zoom{display:flex;align-items:center;gap:.4rem}.viewer-nav span{font-size:.85rem;color:var(--muted);font-variant-numeric:tabular-nums;min-width:6rem;text-align:center}.viewer-zoom button:nth-child(2){min-width:7rem}.viewer-box{flex:1;overflow:auto;display:flex;align-items:center;justify-content:center;padding:1.5rem}.viewer-page{position:relative;background:var(--paper);flex:none;border:1px solid var(--line);border-radius:2px;box-shadow:0 12px 40px -18px #0009;transition:opacity .15s}.viewer-page.busy{opacity:.55}.viewer-page canvas{display:block}.viewer-stamp{position:absolute;pointer-events:none;transform-origin:top left}.viewer-error{color:var(--bad);max-width:40ch;text-align:center}.sample-button{display:block;margin:.9rem auto 0;background:none;border:1px dashed var(--line);border-radius:7px;color:var(--muted);font:inherit;font-size:.88rem;padding:.42rem 1rem;cursor:pointer}.sample-button:hover:not(:disabled){border-color:var(--accent-ink);color:var(--accent-ink)}.sample-button:disabled{opacity:.45;cursor:default}.stage.reader{flex:1;min-height:0;display:flex;align-items:stretch;position:relative}.sidebar-box{flex:none;display:flex;min-height:0}.sidebar{flex:1;min-width:0;overflow-y:auto;overflow-x:hidden;background:var(--surface);padding:.6rem 0}.sidebar-resizer{flex:none;width:5px;cursor:col-resize;background:var(--line)}.sidebar-resizer:hover{background:var(--accent-ink)}.sidebar-canvas{position:relative}.sidebar-item{position:absolute;left:0;right:0;display:flex;flex-direction:column;align-items:center;gap:.25rem;background:none;border:0;padding:0 .5rem;cursor:pointer;font:inherit;color:var(--muted)}.sidebar-paper{position:relative;display:block;overflow:hidden;background:var(--paper);border:1px solid var(--line);border-radius:2px;box-shadow:0 1px 4px -2px #0006}.sidebar-item.active .sidebar-paper{outline:2px solid var(--accent);outline-offset:1px;border-color:var(--accent)}.sidebar-item.active .sidebar-number{background:var(--accent);color:#fff;font-weight:600;padding:.05rem .32rem;border-radius:4px}.sidebar-paper canvas{display:block}.sidebar-pending{display:block;width:100%;height:100%;background:var(--surface-2)}.sidebar-number{font-size:.74rem;font-variant-numeric:tabular-nums}.sidebar-item:focus-visible{outline:2px solid var(--accent-ink);outline-offset:-2px}.page-scroll{flex:1;min-width:0;overflow:auto;background:var(--bg);touch-action:pan-x pan-y}.page-scroll-canvas{position:relative}.page-cell{position:absolute;left:0;right:0;display:flex;align-items:flex-start;justify-content:safe center}.page-paper{position:relative;flex:none;background:var(--paper);border:1px solid var(--line);box-shadow:0 14px 44px -20px #0000008c;transition:opacity .15s}.page-paper.busy{opacity:1}.page-paper.placing,.page-paper.drawing{cursor:crosshair}.page-paper.typing{cursor:text}.page-paper canvas{display:block}.text-layer{position:absolute;top:0;left:0;overflow:hidden;z-index:2;line-height:1;color:transparent;font-family:sans-serif;font-size:0;cursor:text}.text-layer span{position:absolute;white-space:pre;transform-origin:0 0}.text-layer ::selection{background:color-mix(in srgb,var(--accent) 40%,transparent)}.pdf-link{position:absolute;display:block;cursor:pointer;border-radius:2px}.pdf-link:hover,.pdf-link:focus-visible{background:color-mix(in srgb,var(--accent) 18%,transparent);outline:1px solid var(--accent-ink)}.pdf-link.dead{cursor:help}.pdf-link.dead:hover{background:color-mix(in srgb,var(--bad) 14%,transparent)}.page-view-error{color:var(--bad);max-width:40ch;text-align:center}.markupbar{display:flex;gap:.35rem;align-items:center;flex-wrap:wrap;padding:.45rem 1.1rem;border-bottom:1px solid var(--line);background:var(--surface)}.markupbar button{border:1px solid var(--line);background:var(--surface-2);color:inherit;font:inherit;font-size:.85rem;padding:.3rem .65rem;border-radius:6px;cursor:pointer}.markupbar button:hover:not(:disabled){border-color:var(--accent-ink)}.markupbar button:disabled{opacity:.38;cursor:default}.markupbar button.active{background:var(--accent);color:#fff;border-color:var(--accent-ink)}.markupbar .sep{width:1px;height:1.5rem;background:var(--line);margin:0 .3rem}.markupbar .swatch{width:1.35rem;height:1.35rem;padding:0;border-radius:50%;border:2px solid transparent}.markupbar .swatch.active{border-color:var(--accent-ink);box-shadow:0 0 0 2px var(--surface)}.markup-hint{margin-left:auto;font-size:.8rem;color:var(--muted)}.markup{position:absolute;cursor:grab;border:1px solid transparent}.page-paper.readonly .stamp,.page-paper.readonly .markup{pointer-events:none}.markup.selected{border-color:var(--accent-ink)}.markup-draft{position:absolute;pointer-events:none;outline:1px dashed var(--accent-ink)}.text-overlay{position:absolute;z-index:3;display:flex;flex-direction:column;gap:.4rem;background:var(--surface);border:1px solid var(--line);border-radius:8px;padding:.5rem;box-shadow:0 10px 30px -12px #00000080;min-width:220px}.text-overlay textarea{font:inherit;font-size:.95rem;resize:both;color-scheme:light;background:var(--paper);border:1px solid var(--line);border-radius:6px;padding:.35rem .5rem;min-width:200px}.text-overlay-row{display:flex;gap:.4rem;align-items:center}.text-overlay-row select{font:inherit;font-size:.85rem;background:var(--surface-2);color:inherit;border:1px solid var(--line);border-radius:6px;padding:.25rem}.text-overlay-row button{border:1px solid var(--line);background:var(--surface-2);color:inherit;font:inherit;font-size:.85rem;padding:.3rem .6rem;border-radius:6px;cursor:pointer}.text-overlay-row button.btn{background:var(--accent);color:#fff;border-color:var(--accent-ink)}.text-overlay-row button:disabled{opacity:.38;cursor:default}.stage.composer{flex:1;min-height:0;display:flex}.stage.composer .grid-scroll{flex:1}.object-box{position:absolute;cursor:move;border:1px solid color-mix(in srgb,var(--accent-ink) 35%,transparent);background:color-mix(in srgb,var(--accent-ink) 5%,transparent)}.object-box.hover{border-color:var(--accent-ink);background:color-mix(in srgb,var(--accent-ink) 12%,transparent)}.object-box.selected{border:2px solid var(--accent-ink);background:color-mix(in srgb,var(--accent-ink) 16%,transparent);box-shadow:0 0 0 1px #fff}.object-box.hidden{border-style:dashed;border-color:var(--bad);background:repeating-linear-gradient(45deg,transparent,transparent 5px,rgba(178,49,41,.12) 5px,rgba(178,49,41,.12) 10px);cursor:default}.object-panel-wrap{position:absolute;top:.5rem;right:.75rem;z-index:5;width:17rem;max-height:calc(100% - 1.5rem);overflow-y:auto;overflow-x:hidden;border:1px solid var(--line);border-radius:12px;box-shadow:0 18px 50px -18px #000000a6;background:var(--surface)}.object-panel{padding:1rem;display:flex;flex-direction:column;gap:.6rem}.object-panel-head{display:flex;align-items:center;justify-content:space-between}.object-panel-head h2{font-size:.78rem;text-transform:uppercase;letter-spacing:.1em;color:var(--muted);margin:0}.object-panel-head button{border:0;background:none;color:var(--muted);font-size:1.1rem;cursor:pointer;line-height:1;padding:0 .2rem}.object-panel button:not(.object-panel-head button){border:1px solid var(--line);background:var(--surface-2);color:inherit;font:inherit;font-size:.85rem;padding:.35rem .6rem;border-radius:6px;cursor:pointer}.cp-pop{position:fixed;z-index:70;max-height:calc(100vh - 16px);overflow-y:auto;background:var(--surface);border:1px solid var(--line);border-radius:12px;box-shadow:0 18px 48px #00000073;padding:10px;display:flex;flex-direction:column;gap:8px;color:var(--ink)}.cp-head{display:flex;align-items:center;gap:8px}.cp-headcol{flex:1 1 auto;min-width:0;display:flex;flex-direction:column;gap:1px}.cp-preview{width:34px;height:34px;flex:0 0 34px;border-radius:8px;border:1px solid var(--line)}.cp-hex{height:26px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:12.5px;text-transform:uppercase;color:var(--ink);background:var(--surface-2);border:1px solid var(--line);border-radius:6px;padding:0 6px}.cp-name{font-size:11px;color:var(--muted);min-height:13px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.cp-close{flex:none;width:22px;height:22px;padding:0;line-height:1;font-size:1.1rem;cursor:pointer;color:var(--muted);background:none;border:0;border-radius:5px}.cp-close:hover{color:var(--ink);background:var(--surface-2)}.cp-svwrap{position:relative;touch-action:none}.cp-sv{display:block;width:100%;height:130px;border-radius:8px;cursor:crosshair}.cp-huewrap{position:relative;touch-action:none}.cp-hue{display:block;width:100%;height:14px;border-radius:7px;cursor:crosshair}.cp-dot{position:absolute;width:12px;height:12px;margin:-6px 0 0 -6px;border:2px solid #fff;border-radius:50%;box-shadow:0 0 0 1px #0009;pointer-events:none}.cp-dot.hue{top:50%}.cp-rows{display:flex;flex-direction:column;gap:6px}.cp-row{display:flex;gap:6px}.cp-mini{flex:1 1 0;min-width:0;display:flex;align-items:center;gap:4px}.cp-mini span{color:var(--muted);font-size:11px;flex:0 0 auto}.cp-num{width:100%;min-width:0;height:24px;padding:0 4px;font-size:12px;font-variant-numeric:tabular-nums;color:var(--ink);background:var(--surface-2);border:1px solid var(--line);border-radius:5px}.cp-num:focus{border-color:var(--accent-ink);outline:none}.cp-chips{display:flex;flex-wrap:wrap;gap:5px}.cp-chip{width:22px;height:22px;padding:0;cursor:pointer;border:1px solid var(--line);border-radius:6px}.cp-chip:hover{border-color:var(--accent-ink)}.cp-tabs{display:flex;gap:5px;flex-wrap:wrap}.cp-tabs button{font:inherit;font-size:11.5px;cursor:pointer;color:var(--ink);background:var(--surface-2);border:1px solid var(--line);border-radius:6px;padding:.1rem .4rem}.cp-tabs button.active{background:var(--accent);color:#fff;border-color:var(--accent)}.cp-lib{display:flex;flex-direction:column;gap:6px}.cp-search{height:26px;font:inherit;font-size:12.5px;color:var(--ink);background:var(--surface-2);border:1px solid var(--line);border-radius:6px;padding:0 6px}.cp-libgrid{display:flex;flex-wrap:wrap;gap:4px;max-height:148px;overflow-y:auto;padding:2px}.cp-chip.lib{width:20px;height:20px;border-radius:5px}.cp-empty{color:var(--muted);font-size:12.5px;padding:6px 2px}.cp-note{color:var(--muted);font-size:11px;line-height:1.4}.object-colour-fan{font:inherit;font-size:.8rem;line-height:1;cursor:pointer;color:var(--muted);background:var(--surface-2);border:1px solid var(--line);border-radius:5px;padding:.1rem .35rem}.object-colour-fan:hover{color:var(--ink);border-color:var(--accent-ink)}.pen-width-input{width:2.6rem;font:inherit;font-size:.8rem;font-variant-numeric:tabular-nums;text-align:right;color:inherit;background:transparent;border:1px solid transparent;border-radius:4px;padding:0 .15rem}.pen-width-input:hover{border-color:var(--line)}.pen-width-input:focus{border-color:var(--accent-ink);background:var(--surface);outline:none}.object-colour-none{font:inherit;font-size:.78rem;color:var(--muted);background:var(--surface-2);border:1px dashed var(--line);border-radius:5px;padding:.1rem .5rem;cursor:pointer}.object-colour-none:hover{color:var(--ink);border-color:var(--accent-ink)}.object-panel button.btn{background:var(--accent-ink);color:#fff;border-color:var(--accent-ink)}.object-panel button:disabled{opacity:.38;cursor:default}.object-panel textarea{font:inherit;font-size:.9rem;resize:vertical;background:var(--surface-2);color:var(--ink);border:1px solid var(--line);border-radius:6px;padding:.4rem .5rem}.object-label{font-size:.78rem;color:var(--muted)}.object-hint{margin:0;font-size:.76rem;color:var(--muted);line-height:1.45}.object-props{margin:0;display:flex;flex-direction:column;gap:.2rem}.object-props>div{display:flex;justify-content:space-between;gap:.5rem}.object-props dt{font-size:.78rem;color:var(--muted);margin:0}.object-props dd{font-size:.8rem;margin:0;font-variant-numeric:tabular-nums}.search-wrap{position:absolute;top:.5rem;right:.75rem;z-index:6;width:19rem;max-height:calc(100% - 1.5rem);display:flex;border:1px solid var(--line);border-radius:12px;box-shadow:0 18px 50px -18px #000000a6;background:var(--surface);overflow:hidden}.search-panel{padding:.9rem;display:flex;flex-direction:column;gap:.55rem;min-width:0}.search-head{display:flex;align-items:center;justify-content:space-between}.search-head h2{font-size:.78rem;text-transform:uppercase;letter-spacing:.1em;color:var(--muted);margin:0}.search-head button{border:0;background:none;color:var(--muted);font-size:1.1rem;cursor:pointer;line-height:1;padding:0 .2rem}.search-panel input[type=search]{font:inherit;font-size:.9rem;background:var(--surface-2);color:var(--ink);border:1px solid var(--line);border-radius:7px;padding:.4rem .55rem}.search-options{display:flex;flex-direction:column;gap:.25rem}.search-options label{display:flex;align-items:center;gap:.4rem;font-size:.8rem;color:var(--muted);cursor:pointer}.search-count{margin:0;font-size:.8rem;color:var(--muted);display:flex;align-items:center;justify-content:space-between;gap:.5rem}.search-count p{margin:0}.search-steps{display:flex;gap:.2rem}.search-steps button{border:1px solid var(--line);background:var(--surface-2);color:inherit;border-radius:5px;width:1.5rem;height:1.5rem;cursor:pointer;font:inherit;line-height:1}.search-steps button:hover:not(:disabled){border-color:var(--accent-ink)}.search-steps button:disabled{opacity:.35;cursor:default}.search-hint{margin:0;font-size:.76rem;color:var(--muted);line-height:1.4}.search-list{list-style:none;margin:0;padding:0;overflow-y:auto;display:flex;flex-direction:column;gap:.2rem;min-height:0}.search-hit{width:100%;text-align:left;border:1px solid transparent;border-radius:7px;background:none;color:inherit;font:inherit;cursor:pointer;padding:.35rem .45rem;display:flex;gap:.45rem;align-items:baseline}.search-hit:hover{background:var(--surface-2)}.search-hit.active{border-color:var(--accent-ink);background:var(--accent-soft)}.search-page{font-size:.72rem;color:var(--muted);white-space:nowrap;font-variant-numeric:tabular-nums}.search-context{font-size:.8rem;line-height:1.35;overflow:hidden;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}.search-mark{position:absolute;pointer-events:none;border-radius:2px;background:#ffd60a61;outline:1px solid rgba(180,140,0,.5)}.search-mark.active{background:#ff95008c;outline:2px solid rgba(200,100,0,.8)}.object-warning{margin:0;font-size:.78rem;line-height:1.45;color:var(--ink);background:var(--accent-soft);border-left:3px solid var(--bad);border-radius:0 6px 6px 0;padding:.45rem .55rem}.object-warning b{font-size:1rem;letter-spacing:.08em}.annot{position:absolute;cursor:pointer;border-radius:2px;outline:1px solid transparent}.annot:hover{outline-color:#2e43c873}.annot,.annot-note{cursor:grab}.annot:active,.annot-note:active{cursor:grabbing}.page-paper.readonly .annot,.page-paper.readonly .annot-note{cursor:default}.annot.selected{outline:2px solid var(--accent-ink)}.annot-note{position:absolute;width:20px;height:20px;padding:0;border:1px solid rgba(0,0,0,.28);border-radius:3px 3px 3px 0;cursor:pointer;box-shadow:0 1px 3px -1px #00000080}.annot-note:after{content:"";position:absolute;inset:4px 3px auto;height:2px;background:#00000059;box-shadow:0 4px #00000059,0 8px #00000059}.annot-note.selected{outline:2px solid var(--accent-ink);outline-offset:1px}.notices{position:absolute;left:50%;transform:translate(-50%);bottom:2.2rem;z-index:30;display:flex;flex-direction:column;gap:.4rem;width:min(46rem,calc(100% - 3rem));pointer-events:none}.notice{display:flex;align-items:center;gap:1rem;padding:.6rem 1rem;font-size:.86rem;line-height:1.45;border:1px solid var(--line);border-radius:10px;box-shadow:0 6px 22px #00000029;pointer-events:auto}.notice.warn{background:var(--accent-soft);color:var(--ink)}.notice button{margin-left:auto;flex:none;border:1px solid var(--line);background:var(--surface);color:inherit;font:inherit;font-size:.82rem;padding:.3rem .7rem;border-radius:6px;cursor:pointer}.form-panel{padding:1rem;display:flex;flex-direction:column;gap:.7rem}.form-panel-head{display:flex;align-items:center;justify-content:space-between}.form-panel-head h2{font-size:.78rem;text-transform:uppercase;letter-spacing:.1em;color:var(--muted);margin:0}.form-panel-head button{border:0;background:none;color:var(--muted);font-size:1.1rem;cursor:pointer;line-height:1;padding:0 .2rem}.form-hint{margin:0;font-size:.84rem;color:var(--muted);line-height:1.5}.form-summary{display:flex;flex-direction:column;gap:.15rem;font-size:.82rem;color:var(--muted)}.form-required-left{color:var(--bad)}.form-filter{display:flex;gap:.3rem}.form-filter button{border:1px solid var(--line);background:var(--surface-2);color:inherit;font:inherit;font-size:.8rem;padding:.25rem .6rem;border-radius:6px;cursor:pointer}.form-filter button.active{background:var(--accent);border-color:var(--accent-ink);color:#fff}.form-fields{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.8rem;overflow-y:auto}.form-field{display:flex;flex-direction:column;gap:.25rem}.form-field-head{display:flex;align-items:baseline;gap:.5rem}.form-field-name{border:0;background:none;padding:0;cursor:pointer;font:inherit;font-size:.86rem;font-weight:500;color:inherit;text-align:left}.form-field-name:hover{color:var(--accent-ink)}.form-required{color:var(--bad);margin-left:.15rem}.form-field-page{margin-left:auto;font-size:.75rem;color:var(--muted);flex:none}.form-field input[type=text],.form-field textarea{font:inherit;font-size:.88rem;background:var(--surface-2);color:var(--ink);border:1px solid var(--line);border-radius:6px;padding:.35rem .5rem;width:100%;box-sizing:border-box}.form-field textarea{resize:vertical}.form-field input:disabled,.form-field textarea:disabled{opacity:.5}.form-check{display:flex;align-items:center;gap:.45rem;font-size:.86rem}.form-field-why{margin:0;font-size:.78rem;color:var(--muted);line-height:1.4}.form-field.readonly .form-field-name{color:var(--muted)}.head-actions{display:flex;align-items:center;gap:.4rem;flex:none}.head-actions button,.head-actions .as-button{display:inline-flex;align-items:center;gap:.35rem}.head-files{display:flex;align-items:center;gap:.4rem;flex:none}.head-files button,.head-files .as-button{display:inline-flex;align-items:center;gap:.35rem;padding:.35rem .6rem;white-space:nowrap;border:1px solid var(--line);border-radius:7px;background:var(--surface);color:var(--ink);font:inherit;cursor:pointer}.head-files button:hover:not(:disabled),.head-files .as-button:hover{border-color:var(--accent-ink)}.head-files button:disabled{opacity:.38;cursor:default}.head-files input{display:none}.head-actions button.icon{width:2.05rem;height:2.05rem;padding:0;display:grid;place-items:center}.head-actions button.primary{background:var(--accent);color:#fff;border:1px solid var(--accent-ink);border-radius:7px;padding:.4rem .8rem;font:inherit;font-weight:600;cursor:pointer;white-space:nowrap}.head-actions button.primary:disabled{opacity:.38;cursor:default}.object-overlay{position:absolute;inset:0;cursor:default;z-index:5}.object-overlay.over-object{cursor:move}.object-box{pointer-events:none;z-index:6}.page-paper.tool-active .markup,.page-paper.tool-active .stamp,.page-paper.tool-active .annot,.page-paper.tool-active .annot-note,.page-paper.tool-active .callout-body,.page-paper.tool-active .callout-arrow,.page-paper.tool-active .ink{pointer-events:none}.object-geometry{display:grid;grid-template-columns:1fr 1fr;gap:.4rem .6rem}.object-number{display:flex;align-items:center;gap:.4rem;font-size:.8rem}.object-number>span{color:var(--muted);flex:none;min-width:3.2rem}.object-number input{font:inherit;font-size:.84rem;width:100%;min-width:0;background:var(--surface-2);color:var(--ink);border:1px solid var(--line);border-radius:6px;padding:.25rem .4rem}.object-colour{display:flex;align-items:center;gap:.5rem;font-size:.8rem;flex-wrap:wrap}.object-colour>.object-label{flex:none;min-width:3.6rem;margin:0}.object-colour input[type=color]{width:1.8rem;height:1.6rem;padding:0;flex:none;border:1px solid var(--line);border-radius:5px;background:none;cursor:pointer}.object-colour input[type=range]{flex:1;min-width:2.5rem}.object-colour .object-number{flex:0 1 4.4rem;min-width:0}.object-colour .object-number>span{min-width:1.4rem}.object-actions{display:flex;gap:.4rem;flex-wrap:wrap}.snap-guide{position:absolute;background:var(--accent);pointer-events:none;z-index:5}.snap-guide.vertical{top:0;bottom:0;width:1px}.snap-guide.horizontal{left:0;right:0;height:1px}.placer{position:absolute;right:1rem;top:1rem;z-index:40;width:min(24rem,calc(100% - 2rem));display:flex;flex-direction:column;gap:.7rem;padding:1rem;border:1px solid var(--line);border-radius:12px;background:var(--surface);box-shadow:0 12px 40px #00000047}.placer-head{display:flex;align-items:center;justify-content:space-between}.placer-head h2{font-size:.78rem;text-transform:uppercase;letter-spacing:.1em;color:var(--muted);margin:0}.placer-head button{border:0;background:none;color:var(--muted);font-size:1.1rem;cursor:pointer;line-height:1;padding:0 .2rem}.placer-stage{background:var(--surface-2);border:1px solid var(--line);border-radius:8px;padding:.5rem;display:flex;justify-content:center}.placer-box{position:relative;max-width:100%;line-height:0}.placer-canvas{max-width:100%;max-height:14rem;height:auto;display:block}.placer-shade{position:absolute;inset:0;background:#0000008c;pointer-events:none}.placer-crop{position:absolute;border:1px solid #fff;cursor:move;box-shadow:0 0 0 1px #0006}.placer-handle{position:absolute;width:12px;height:12px;background:#fff;border:1px solid rgba(0,0,0,.4);border-radius:2px}.placer-handle.nw{left:-6px;top:-6px;cursor:nwse-resize}.placer-handle.ne{right:-6px;top:-6px;cursor:nesw-resize}.placer-handle.sw{left:-6px;bottom:-6px;cursor:nesw-resize}.placer-handle.se{right:-6px;bottom:-6px;cursor:nwse-resize}.placer-handle.n{left:50%;top:-6px;margin-left:-6px;cursor:ns-resize}.placer-handle.s{left:50%;bottom:-6px;margin-left:-6px;cursor:ns-resize}.placer-handle.w{left:-6px;top:50%;margin-top:-6px;cursor:ew-resize}.placer-handle.e{right:-6px;top:50%;margin-top:-6px;cursor:ew-resize}.placer-controls{display:flex;flex-direction:column;gap:.55rem}.placer-ratio,.placer-size{display:flex;align-items:center;gap:.45rem;font-size:.84rem}.placer-size input{font:inherit;font-size:.84rem;width:5rem;background:var(--surface-2);color:var(--ink);border:1px solid var(--line);border-radius:6px;padding:.25rem .4rem}.placer-unit{color:var(--muted)}.placer-facts{margin:0;font-size:.78rem;color:var(--muted)}.placer-actions{display:flex;gap:.4rem}.placer-actions button{border:1px solid var(--line);background:var(--surface-2);color:inherit;font:inherit;font-size:.85rem;padding:.35rem .7rem;border-radius:6px;cursor:pointer}.placer-actions button.btn{background:var(--accent-ink);color:#fff;border-color:var(--accent-ink)}.placer-actions button:disabled{opacity:.38;cursor:default}.placer-hint{margin:0;font-size:.78rem;color:var(--muted);line-height:1.45}.langs{display:flex;border:1px solid var(--line);border-radius:8px;overflow:hidden;flex:none}.langs button{border:0;border-radius:0;background:var(--surface-2);color:inherit;font:inherit;font-size:.78rem;padding:.3rem .55rem;cursor:pointer}.langs button+button{border-left:1px solid var(--line)}.langs button.active{background:var(--accent-ink);color:#fff}.object-panel select{font:inherit;font-size:.85rem;width:100%;background:var(--surface-2);color:var(--ink);border:1px solid var(--line);border-radius:6px;padding:.3rem .4rem}.text-row{display:flex;gap:.8rem;align-items:center}.text-row .object-number{flex:1}.text-row .object-colour{flex:none}.text-doc-fonts{font-size:.8rem;color:var(--muted)}.text-doc-fonts summary{cursor:pointer}.text-doc-fonts ul{margin:.4rem 0;padding-left:1.1rem}.ink-layer{position:absolute;left:0;top:0;pointer-events:none;z-index:4}.ink-layer path{pointer-events:stroke;cursor:grab}.page-paper.tool-active .ink-layer path{pointer-events:none;cursor:inherit}.ink-layer .ink.selected path{cursor:grabbing}.ink-layer .ink path{stroke-linecap:round}.ink-layer .ink.selected path{filter:drop-shadow(0 0 3px var(--accent-ink))}.page-paper.drawing{cursor:crosshair;-webkit-user-select:none;user-select:none}.head .modes{margin-right:auto;margin-left:.6rem;flex:none}.head-actions button.icon{border:1px solid var(--line);background:var(--surface-2);color:inherit;border-radius:7px;width:2rem;height:2rem;font-size:1rem;cursor:pointer;display:grid;place-items:center;padding:0}.head-actions button.icon.active{background:var(--accent-ink);color:#fff;border-color:var(--accent-ink)}.settings-overlay{position:fixed;inset:0;z-index:60;display:flex;align-items:center;justify-content:center;padding:2rem;background:#00000073;-webkit-backdrop-filter:blur(1px);backdrop-filter:blur(1px)}.head-hint{font-size:1rem;font-weight:600;line-height:1}.settings-overlay .settings.watermark{width:24rem}.watermark-text{font:inherit;padding:.35rem .5rem;border-radius:6px;border:1px solid var(--line);background:var(--surface-2);color:var(--ink)}.watermark-ready{display:flex;gap:.3rem;flex-wrap:wrap}.watermark-ready button{border:1px solid var(--line);background:var(--surface-2);color:inherit;font:inherit;font-size:.8rem;padding:.2rem .5rem;border-radius:6px;cursor:pointer}.watermark-ready button:hover{border-color:var(--accent-ink)}.page-number{position:absolute;z-index:2;pointer-events:none;color:#000;line-height:1;white-space:nowrap;font-family:Helvetica,Arial,sans-serif}.settings-overlay .settings.numbering{width:24rem}.numbering-formats,.numbering-places{display:flex;gap:.35rem;flex-wrap:wrap}.numbering-formats button{border:1px solid var(--line);background:var(--surface-2);color:inherit;font:inherit;font-size:.85rem;padding:.25rem .6rem;border-radius:6px;cursor:pointer}.numbering-places{display:grid;grid-template-columns:repeat(3,2.6rem);gap:.3rem}.numbering-places button{height:2.2rem;border:1px solid var(--line);background:var(--surface-2);border-radius:6px;cursor:pointer;display:grid;padding:.25rem}.numbering-places button span{width:.4rem;height:.4rem;border-radius:50%;background:var(--muted)}.numbering-places button:nth-child(-n+3) span{align-self:start}.numbering-places button:nth-child(n+4) span{align-self:end}.numbering-places button:nth-child(3n+1) span{justify-self:start}.numbering-places button:nth-child(3n+2) span{justify-self:center}.numbering-places button:nth-child(3n) span{justify-self:end}.numbering-formats button.active,.numbering-places button.active{border-color:var(--accent-ink);background:var(--accent-soft)}.numbering-places button.active span{background:var(--accent-ink)}.numbering-numbers{display:flex;gap:.6rem;flex-wrap:wrap}.numbering-numbers label{display:flex;flex-direction:column;gap:.2rem;font-size:.8rem;color:var(--muted)}.numbering-numbers input{font:inherit;width:4.5rem;padding:.25rem .4rem;border:1px solid var(--line);border-radius:6px;background:var(--surface-2);color:var(--ink)}.numbering-actions{display:flex;gap:.5rem;align-items:center}.numbering-actions button:not(.btn){border:1px solid var(--line);background:transparent;color:inherit;font:inherit;font-size:.85rem;padding:.3rem .6rem;border-radius:6px;cursor:pointer}.crop-preview{position:absolute;inset:0;z-index:2;pointer-events:none}.crop-preview>div{position:absolute;background:#1418216b}.crop-preview>.crop-frame{background:none;outline:1.5px dashed var(--accent-ink);outline-offset:-1px}.settings-overlay .settings.crop{width:24rem}.crop-fields{display:grid;grid-template-columns:1fr 1fr;gap:.5rem .6rem}.crop-fields label{display:grid;grid-template-columns:auto 4.5rem;align-items:center;gap:.35rem;font-size:.8rem;color:var(--muted)}.crop-fields input{font:inherit;padding:.25rem .4rem;border:1px solid var(--line);border-radius:6px;background:var(--surface-2);color:var(--ink)}.crop-fields .crop-mm{grid-column:1 / -1;font-size:.75rem;text-align:right}.crop-content{display:flex;align-items:center;gap:.4rem;margin-top:.7rem;font-size:.85rem}.settings-note.warn{color:var(--danger)}.context-menu{position:fixed;z-index:70;min-width:13rem;display:flex;flex-direction:column;padding:.25rem;border:1px solid var(--line);border-radius:10px;background:var(--surface);box-shadow:0 18px 50px -18px #000000b3}.context-menu button{display:flex;align-items:center;justify-content:space-between;gap:1.2rem;border:0;background:transparent;color:inherit;font:inherit;font-size:.88rem;text-align:left;padding:.35rem .55rem;border-radius:6px;cursor:pointer}.context-menu button:hover:not(:disabled),.context-menu button:focus-visible{background:var(--surface-2);outline:none}.context-menu button:disabled{opacity:.38;cursor:default}.context-menu kbd{font:inherit;font-size:.76rem;color:var(--muted);white-space:nowrap}.context-sep{height:1px;background:var(--line);margin:.25rem .3rem}.recent{margin-top:1.4rem;width:100%;max-width:26rem;text-align:left}.recent h3{margin:0 0 .4rem;font-size:.74rem;text-transform:uppercase;letter-spacing:.1em;color:var(--muted)}.recent ul{list-style:none;margin:0;padding:0;display:grid;gap:.15rem}.recent li{display:flex;align-items:center;gap:.2rem}.recent-open{flex:1;min-width:0;display:flex;align-items:baseline;justify-content:space-between;gap:.8rem;border:1px solid transparent;background:transparent;color:inherit;font:inherit;font-size:.88rem;text-align:left;cursor:pointer;padding:.3rem .5rem;border-radius:7px}.recent-open:hover:not(:disabled){background:var(--surface-2);border-color:var(--line)}.recent-open:disabled{opacity:.5;cursor:default}.recent-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.recent-size{color:var(--muted);font-size:.8rem;white-space:nowrap}.recent-forget{border:0;background:transparent;color:var(--muted);font:inherit;cursor:pointer;padding:.2rem .35rem;border-radius:6px}.recent-forget:hover{background:var(--surface-2);color:var(--ink)}.settings-overlay .settings.properties{width:26rem}.properties-list{margin:0;display:grid;gap:.25rem}.properties-list>div{display:grid;grid-template-columns:9rem 1fr;gap:.7rem;align-items:baseline}.properties-list dt{margin:0;color:var(--muted);font-size:.82rem}.properties-list dd{margin:0;font-size:.88rem;overflow-wrap:anywhere}.settings-overlay>div{display:flex;max-height:100%;min-height:0}.settings-overlay .settings.shortcuts{width:34rem}.shortcuts-group h3{margin:.2rem 0 .35rem;font-size:.78rem;text-transform:uppercase;letter-spacing:.1em;color:var(--muted)}.shortcuts-group dl{margin:0;display:grid;gap:.2rem}.shortcuts-group dl>div{display:grid;grid-template-columns:8.5rem 1fr;gap:.7rem;align-items:baseline}.shortcuts-group dt{margin:0}.shortcuts-group dd{margin:0;font-size:.86rem}.shortcuts kbd{font:inherit;font-size:.8rem;border:1px solid var(--line);border-bottom-width:2px;border-radius:5px;padding:.05rem .35rem;background:var(--surface-2);color:var(--ink);white-space:nowrap}.settings-overlay .settings{width:22rem;max-width:100%;max-height:100%;overflow-y:auto;padding:1.25rem;border-radius:14px;box-shadow:0 24px 70px -20px #000000b3}.settings{width:15rem;display:flex;flex-direction:column;gap:.8rem;padding:1rem;border:1px solid var(--line);border-radius:12px;background:var(--surface);box-shadow:0 12px 40px #00000047}.settings-head{display:flex;align-items:center;justify-content:space-between}.settings-head h2{font-size:.78rem;text-transform:uppercase;letter-spacing:.1em;color:var(--muted);margin:0}.settings-head button{border:0;background:none;color:var(--muted);font-size:1.1rem;cursor:pointer;line-height:1;padding:0 .2rem}.settings-group{border:0;padding:0;margin:0;display:flex;flex-direction:column;gap:.3rem}.settings-group legend{padding:0;font-size:.75rem;color:var(--muted);text-transform:uppercase;letter-spacing:.08em;margin-bottom:.2rem}.settings-choice{display:flex;align-items:center;gap:.45rem;font-size:.86rem;cursor:pointer}.tool-group{position:relative;display:flex;flex:none}.toolbar .tool-group button.tool-main{border-radius:7px 0 0 7px;padding:.35rem .4rem .35rem .5rem}.toolbar .tool-group button.tool-more{border-radius:0 7px 7px 0;border-left:0;padding:.4rem .35rem;font-size:.7rem;color:var(--muted)}.toolbar .tool-group button.tool-more.open{border-color:var(--accent-ink);color:var(--accent-ink)}.popover{position:fixed;z-index:60}.tool-menu{min-width:14rem;display:flex;flex-direction:column;border:1px solid var(--line);border-radius:10px;background:var(--surface);box-shadow:0 12px 34px #0000004d;overflow:hidden}.tool-menu button{display:grid;grid-template-columns:auto 1fr;gap:.05rem .55rem;align-items:center;border:0;border-radius:0;background:none;color:inherit;font:inherit;text-align:left;padding:.45rem .7rem;cursor:pointer}.tool-menu button>.icon-svg{grid-row:1 / 3;color:var(--muted)}.tool-menu button.active>.icon-svg{color:var(--accent-ink)}.tool-menu button:hover{background:var(--surface-2)}.tool-menu button.active{background:var(--accent-soft)}.tool-menu-label{font-size:.86rem}.tool-menu-hint{font-size:.76rem;color:var(--muted)}.head-actions button.done{border:1px solid var(--line);background:var(--surface-2);color:inherit;border-radius:7px;font:inherit;cursor:pointer}.toolbar .brush-group button.tool-main{padding:.25rem .35rem .25rem .4rem}.toolbar .brush-group button.tool-main.active{background:var(--accent-soft);border-color:var(--accent-ink);color:var(--ink);box-shadow:inset 0 0 0 1px var(--accent-ink)}.brush-stroke{display:block;flex:none}.brush-stroke-bed{fill:#e0e0e0;stroke:#0003;stroke-width:1}.brush-menu{min-width:17rem}.brush-menu button>.brush-stroke{grid-row:1 / 3}.pen-width{display:flex;align-items:center;gap:.5rem;padding:.5rem .7rem;border-top:1px solid var(--line)}.pen-width-name{font-size:.8rem;color:var(--muted);flex:none}.pen-width input[type=range]{flex:1;min-width:4rem;accent-color:var(--accent-ink)}.pen-width-value{font-size:.78rem;color:var(--muted);font-variant-numeric:tabular-nums;min-width:2.2rem;text-align:right}.callout-arrows{position:absolute;left:0;top:0;pointer-events:none;z-index:5}.callout-arrow line{stroke-width:1.6;stroke-linecap:round}.callout-arrow.active line{stroke-width:2.2}.callout{position:absolute;z-index:6;box-sizing:border-box;border-radius:4px;box-shadow:inset 0 0 0 1.5px var(--callout-line, currentColor);background:#ffffffe0;overflow:visible;cursor:grab;line-height:1.25}.callout:active{cursor:grabbing}.callout.selected{box-shadow:inset 0 0 0 1.5px var(--callout-line, currentColor),0 0 0 2px var(--accent-ink)}.callout-body{display:block;width:100%;height:100%;overflow:hidden;white-space:pre-wrap;word-break:break-word}.callout-text{width:100%;height:100%;resize:none;border:0;outline:none;background:transparent;color:inherit;font:inherit;padding:0}.page-paper.readonly .callout{cursor:default}.page-paper.readonly .callout *{pointer-events:none}.callout-size{position:absolute;right:-5px;bottom:-5px;width:10px;height:10px;border-radius:2px;background:var(--accent);cursor:nwse-resize}.callout-tip{position:absolute;width:11px;height:11px;margin:-5.5px 0 0 -5.5px;border-radius:50%;border:2px solid #fff;cursor:move;box-shadow:0 0 0 1px #00000059}.callout-remove{position:absolute;right:-9px;top:-9px;width:18px;height:18px;border-radius:50%;border:1px solid var(--line);background:var(--surface);color:var(--muted);font:inherit;font-size:.8rem;line-height:1;display:grid;place-items:center;cursor:pointer;padding:0}.callout-remove:hover{color:var(--bad);border-color:var(--bad)}.comments-wrap{position:absolute;top:.5rem;right:.75rem;z-index:7;width:20rem;max-height:calc(100% - 1.5rem);display:flex;border:1px solid var(--line);border-radius:12px;box-shadow:0 18px 50px -18px #000000a6;background:var(--surface);overflow:hidden}.comments-panel{padding:.9rem;display:flex;flex-direction:column;gap:.55rem;min-width:0;width:100%}.comments-head{display:flex;align-items:center;justify-content:space-between}.comments-head h2{margin:0;font-size:.78rem;text-transform:uppercase;letter-spacing:.1em;color:var(--muted)}.comments-head button{border:0;background:none;color:var(--muted);cursor:pointer;padding:.15rem;display:grid;place-items:center}.comments-head button:hover{color:var(--ink)}.comments-hint{margin:0;font-size:.8rem;color:var(--muted);line-height:1.5}.comments-count{margin:0;font-size:.78rem;color:var(--muted)}.comments-list{list-style:none;margin:0;padding:0;overflow-y:auto;display:flex;flex-direction:column;gap:.4rem}.comment{border:1px solid var(--line);border-left:3px solid var(--line);border-radius:8px;padding:.4rem .5rem;display:flex;flex-direction:column;gap:.25rem}.comment.active{border-color:var(--accent-ink);background:var(--accent-soft)}.comment-head{display:flex;align-items:center;gap:.4rem}.comment-go{display:inline-flex;align-items:center;gap:.3rem;border:0;background:none;color:var(--muted);font:inherit;font-size:.74rem;padding:0;cursor:pointer;font-variant-numeric:tabular-nums}.comment-go:hover{color:var(--accent-ink)}.comment-actions{margin-left:auto;display:flex;gap:.15rem}.comment-actions button{border:0;background:none;color:var(--muted);cursor:pointer;padding:.15rem;display:grid;place-items:center;border-radius:4px}.comment-actions button:hover{color:var(--ink);background:var(--surface-2)}.comment-actions .comment-remove:hover{color:var(--bad)}.comment-text{margin:0;font-size:.84rem;line-height:1.4;cursor:pointer;white-space:pre-wrap;word-break:break-word}.comment-editor{display:flex;flex-direction:column;gap:.35rem}.comment-editor textarea{width:100%;resize:vertical;font:inherit;font-size:.84rem;border:1px solid var(--line);border-radius:6px;padding:.35rem .45rem;background:var(--surface);color:var(--ink)}.comment-editor-row{display:flex;gap:.35rem}.comment-editor-row button{border:1px solid var(--line);border-radius:6px;background:var(--surface);color:var(--ink);font:inherit;font-size:.8rem;padding:.25rem .6rem;cursor:pointer}.comment-editor-row button.btn{background:var(--accent);color:#fff;border-color:var(--accent-ink)}.desktop-shell{height:100%;display:flex;flex-direction:column;position:relative}.desktop-shell-main{flex:1;min-height:0}.drop-choice-overlay{position:fixed;inset:0;z-index:70;display:flex;align-items:center;justify-content:center;padding:2rem;background:#00000073;-webkit-backdrop-filter:blur(1px);backdrop-filter:blur(1px)}.drop-choice{width:24rem;max-width:100%;max-height:100%;overflow-y:auto;display:flex;flex-direction:column;gap:.9rem;padding:1.25rem;border:1px solid var(--line);border-radius:14px;background:var(--surface);box-shadow:0 24px 70px -20px #000000b3}.drop-choice h2{margin:0;font-size:.95rem;font-weight:600}.drop-choice-list{margin:0;padding:0;list-style:none;display:flex;flex-direction:column;gap:.15rem;font-size:.82rem;color:var(--muted);overflow-wrap:anywhere}.drop-choice-more{font-style:italic}.drop-choice-buttons{display:flex;gap:.5rem}.drop-choice-buttons button{flex:1;padding:.5rem .7rem;border-radius:8px;cursor:pointer;border:1px solid var(--line);background:var(--surface-2);color:inherit;font:inherit;font-size:.85rem}.drop-choice-buttons button:hover{border-color:var(--accent-ink)}.drop-choice-buttons button.primary{background:var(--accent);color:#fff;border-color:var(--accent);font-weight:600}.drop-choice-remember{display:flex;align-items:center;gap:.4rem;font-size:.8rem;color:var(--muted);cursor:pointer}.drop-failed{position:absolute;right:1rem;bottom:1rem;z-index:60;display:flex;align-items:flex-start;gap:.6rem;max-width:min(30rem,calc(100% - 2rem));padding:.6rem .8rem;border-radius:10px;border:1px solid var(--bad);background:var(--surface);box-shadow:0 12px 40px -12px #0009;font-size:.82rem;overflow-wrap:anywhere}.drop-failed button{border:0;background:none;color:var(--muted);font-size:1.1rem;line-height:1;cursor:pointer;padding:0 .1rem}.update-bar{position:absolute;right:1rem;bottom:1rem;z-index:45;max-width:min(30rem,calc(100% - 2rem));display:flex;align-items:flex-start;gap:.7rem;padding:.7rem .8rem;font-size:.88rem;line-height:1.4;background:var(--surface);color:var(--ink);border:1px solid var(--line);border-radius:12px;box-shadow:0 12px 40px #00000052}.update-bar~.update-bar{bottom:5.2rem}.update-bar.bad{border-color:var(--bad);background:color-mix(in srgb,var(--bad) 10%,var(--surface))}.update-bar>span{flex:1;min-width:0}.update-bar button{flex:none}.update-bar a{color:inherit}.update-bar-go{flex:none;background:var(--accent);color:#fff;border:0;padding:.3rem .8rem;border-radius:6px;font:inherit;font-weight:600;cursor:pointer}.update-bar-later,.update-bar-close{flex:none;background:none;border:0;color:var(--muted);font:inherit;cursor:pointer;padding:.3rem .5rem}.update-bar-close{font-size:1.2rem;line-height:1}.update-bar-meter{flex:none;width:8rem;height:4px;border-radius:2px;background:var(--line);overflow:hidden}.update-bar-meter i{display:block;height:100%;background:var(--accent);transition:width .2s}.update-bar-meter.idle i{width:40%;animation:update-bar-slide 1.1s ease-in-out infinite}@keyframes update-bar-slide{0%{margin-left:-40%}to{margin-left:100%}}@media(prefers-reduced-motion:reduce){.update-bar-meter.idle i{animation:none;width:100%;opacity:.5}}.settings-note{margin:.35rem 0 0;color:var(--muted);font-size:.82rem;line-height:1.4}.settings-about{border-top:1px solid var(--line);padding-top:.8rem}.settings-about-name{font-weight:600;font-size:.9rem}.settings-about a{font-size:.82rem}.settings-check{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap}.settings-check-status{font-size:.76rem;color:var(--muted);flex:1 1 100%}.drop-note{margin:.2rem auto .8rem;max-width:42ch;color:var(--muted);font-size:.76rem;line-height:1.5;text-wrap:balance}.settings-bar{display:flex;gap:.4rem;align-items:center;flex:none;height:var(--props-h);box-sizing:border-box;padding:0 var(--edge);border-bottom:1px solid var(--line);background:var(--surface-2);overflow-x:auto;overflow-y:hidden;scrollbar-width:none}.settings-bar::-webkit-scrollbar{height:0}.settings-name{font-weight:600;font-size:.86rem;flex:none;padding-right:.5rem;margin-right:.1rem;border-right:1px solid var(--line)}.settings-label{font-size:.8rem;color:var(--muted);flex:none}.settings-empty{font-size:.82rem;color:var(--muted);flex:none}.settings-hint{margin-left:auto;padding-left:.8rem;font-size:.8rem;color:var(--muted);white-space:nowrap;flex:0 1 auto;min-width:0;overflow:hidden;text-overflow:ellipsis}.settings-bar .sep{width:1px;height:1.4rem;background:var(--line);margin:0 .35rem;flex:none}.settings-bar .brushes{display:flex;gap:.25rem;align-items:center;flex:none}.settings-bar .brush{display:inline-flex;align-items:center;gap:.35rem;padding:.2rem .45rem .2rem .3rem;flex:none;border:1px solid var(--line);border-radius:7px;background:var(--surface);color:var(--ink);font:inherit;cursor:pointer}.settings-bar .brush:hover{border-color:var(--accent-ink)}.settings-bar .brush.active{border-color:var(--accent-ink);background:var(--accent-soft);box-shadow:inset 0 0 0 1px var(--accent-ink)}.brush-name{font-size:.8rem}.settings-bar .palette{display:flex;gap:.25rem;align-items:center;flex:none}.settings-bar .swatch{width:1.35rem;height:1.35rem;padding:0;border-radius:50%;border:2px solid transparent;flex:none;cursor:pointer;background-clip:padding-box;box-shadow:inset 0 0 0 1px #808080d9}.settings-bar .swatch.active{border-color:var(--accent-ink);box-shadow:inset 0 0 0 1px #808080d9,0 0 0 2px var(--surface-2)}.settings-bar .swatch-custom{position:relative;flex:none;cursor:pointer;width:1.75rem;height:1.75rem;border-radius:7px;border:1px solid var(--line);background:var(--surface);color:var(--muted);display:grid;place-items:center}.settings-bar .swatch-custom:hover,.settings-bar .swatch-custom.on{border-color:var(--accent-ink);color:var(--ink)}.settings-bar .swatch-custom input{position:absolute;inset:0;opacity:0;cursor:pointer}.settings-bar .pen-width{display:flex;align-items:center;gap:.45rem;flex:none;padding:0;border:0}.settings-bar .pen-width input[type=range]{width:5.5rem;accent-color:var(--accent-ink)}.grid-canvas.dragging{cursor:grabbing}.grid-canvas.dragging,.grid-canvas.dragging *{-webkit-user-select:none;user-select:none}.cell.dragged{opacity:.45}.object-frame{position:absolute;pointer-events:none;z-index:6;outline:1px solid var(--accent-ink)}.object-handle{position:absolute;pointer-events:auto;width:9px;height:9px;margin:-5px 0 0 -5px;background:var(--surface);border:1.5px solid var(--accent-ink);border-radius:2px;box-shadow:0 0 0 1px #00000040}.object-handle:hover{background:var(--accent-ink)}.settings-placed{margin-left:.4rem;padding:.1rem .35rem;border-radius:4px;background:var(--accent);color:#fff;font-size:.68rem;font-weight:600;text-transform:lowercase;letter-spacing:.02em;vertical-align:middle}.sidebar-box-inner{display:flex;flex-direction:column;width:100%;min-height:0}.sidebar-head{position:relative;flex:none;padding:.35rem .4rem;border-bottom:1px solid var(--line)}.sidebar-menu-button{display:flex;align-items:center;gap:.35rem;width:100%;padding:.3rem .4rem;border:1px solid transparent;border-radius:7px;background:none;color:var(--ink);font:inherit;font-size:.8rem;cursor:pointer;text-align:left}.sidebar-menu-button:hover,.sidebar-menu-button.open{border-color:var(--line);background:var(--surface-2)}.sidebar-mode-name{flex:1 1 auto;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sidebar-caret{flex:none;color:var(--muted);font-size:.7rem}.sidebar-menu{position:absolute;left:.4rem;top:calc(100% + .2rem);z-index:40;min-width:15rem;display:flex;flex-direction:column;padding:.25rem 0;border:1px solid var(--line);border-radius:10px;background:var(--surface);box-shadow:0 14px 38px #00000057}.sidebar-menu button{display:flex;align-items:center;gap:.1rem;border:0;background:none;color:inherit;font:inherit;font-size:.85rem;padding:.35rem .7rem;cursor:pointer;text-align:left;white-space:nowrap}.sidebar-menu button:hover{background:var(--accent-ink);color:#fff}.sidebar-check{flex:none;width:1.1rem}.sidebar-menu-sep{height:1px;background:var(--line);margin:.25rem 0}.sidebar-menu-empty{margin-left:auto;padding-left:.8rem;color:var(--muted);font-size:.76rem}.sidebar-menu button:hover .sidebar-menu-empty{color:#ffffffbf}.sidebar-body{flex:1;min-height:0;display:flex}.sidebar-empty{margin:0;padding:.8rem .7rem;font-size:.78rem;color:var(--muted);line-height:1.5}.sidebar-show{position:absolute;left:.4rem;top:.4rem;z-index:8;width:1.9rem;height:1.9rem;display:grid;place-items:center;border:1px solid var(--line);border-radius:7px;background:var(--surface);color:var(--muted);cursor:pointer}.sidebar-show:hover{color:var(--ink);border-color:var(--accent-ink)}.outline-list{list-style:none;margin:0;padding:.3rem 0;width:100%;overflow-y:auto;overflow-x:hidden}.outline-item{display:flex;align-items:baseline;gap:.4rem;width:100%;padding:.3rem .5rem .3rem .6rem;border:0;border-radius:0;background:none;color:inherit;font:inherit;font-size:.8rem;cursor:pointer;text-align:left}.outline-item:hover:not(:disabled){background:var(--surface-2)}.outline-item.active{background:var(--accent-soft);color:var(--ink);font-weight:600}.outline-item:disabled{cursor:default;color:var(--muted)}.outline-title{flex:1 1 auto;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.outline-page{flex:none;color:var(--muted);font-size:.74rem;font-variant-numeric:tabular-nums}.marks-list{list-style:none;margin:0;padding:.3rem .4rem;width:100%;overflow-y:auto;overflow-x:hidden;display:flex;flex-direction:column;gap:.3rem}.mark-item{display:flex;flex-direction:column;gap:.15rem;width:100%;padding:.35rem .45rem;cursor:pointer;text-align:left;border:1px solid var(--line);border-left:3px solid var(--line);border-radius:7px;background:var(--surface);color:inherit;font:inherit}.mark-item:hover{border-color:var(--accent-ink)}.mark-item.active{background:var(--accent-soft);border-color:var(--accent-ink)}.mark-head{display:flex;align-items:center;gap:.3rem;color:var(--muted)}.mark-kind{font-size:.74rem}.mark-page{margin-left:auto;font-size:.72rem;font-variant-numeric:tabular-nums}.mark-text{font-size:.78rem;line-height:1.35;color:var(--ink);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.contact-sheet{flex:1;overflow-y:auto;overflow-x:hidden;padding:.4rem}.contact-canvas{position:relative}.contact-cell{position:absolute;padding:0;border:0;background:none;cursor:pointer;display:flex;flex-direction:column;align-items:center;gap:.1rem}.contact-paper{width:100%;background:var(--paper);border:1px solid var(--line);border-radius:2px;overflow:hidden;display:block}.contact-cell.active .contact-paper{border-color:var(--accent-ink);box-shadow:0 0 0 1px var(--accent-ink)}.contact-paper canvas{width:100%;height:100%;display:block;object-fit:contain}.contact-pending{display:block;width:100%;height:100%;background:var(--surface-2)}.contact-number{font-size:.64rem;color:var(--muted);font-variant-numeric:tabular-nums}.contact-cell.active .contact-number{color:var(--accent-ink);font-weight:600}.cursor-layer{position:absolute;inset:0;pointer-events:none;z-index:30;overflow:hidden}.cursor-layer__one{position:absolute;left:0;top:0;display:flex;align-items:flex-start;gap:2px;will-change:transform;transition:transform .08s linear}.cursor-layer__one span{color:#fff;font:600 11px/1.4 system-ui,sans-serif;padding:1px 6px;border-radius:8px;white-space:nowrap;margin-top:12px}
