:root{--bg: #000000;--panel: #0a0a0d;--panel-2: #16131d;--border: #2a2533;--text: #ededf2;--muted: #8a8597;--accent: #a855f7;--accent-2: #7c3aed;--highlight: #ffd54a;color-scheme:dark;font-family:ui-sans-serif,system-ui,-apple-system,Segoe UI,Roboto,sans-serif}*{box-sizing:border-box}html,body,#root{height:100%;margin:0;overflow:hidden;overscroll-behavior:none}body{background:var(--bg);color:var(--text)}.app{display:flex;flex-direction:column;position:fixed;top:0;right:0;bottom:0;left:0}.appbar{display:flex;align-items:flex-end;gap:12px;padding:6px 12px 0;background:var(--panel);border-bottom:1px solid var(--border)}.appbar .brand{padding-bottom:7px}.tabbar{display:flex;align-items:flex-end;gap:4px;overflow-x:auto;flex:1;scrollbar-width:none;padding-bottom:1px}.tabbar::-webkit-scrollbar{display:none}.appbar-action{align-self:center;margin-bottom:4px;padding:5px 10px;font-size:12px;white-space:nowrap}.tab{display:flex;align-items:center;gap:6px;padding:6px 6px 6px 10px;border:1px solid var(--border);border-bottom:none;border-left:3px solid transparent;border-radius:8px 8px 0 0;background:var(--panel-2);color:var(--muted);cursor:grab;flex:0 0 auto}.tab:active{cursor:grabbing}.tab.active{background:var(--bg);color:var(--text);border-color:var(--accent)}.tab.dragging-self{opacity:.4}.tab.drop-target{box-shadow:inset 3px 0 0 var(--accent)}.tab-title{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:13px;max-width:160px}.tab-close{background:none;border:none;color:var(--muted);padding:0 3px;font-size:15px;line-height:1;border-radius:4px}.tab-close:hover{background:var(--border);color:var(--text);border:none}.tab-new{padding:4px 10px;font-size:16px;line-height:1;align-self:center}.tab-endzone{align-self:center;margin-bottom:3px;padding:6px 12px;flex:0 0 auto;border:1px dashed var(--border);border-radius:6px;color:var(--muted);font-size:12px;white-space:nowrap}.tab-endzone.over{border-color:var(--accent);color:var(--text);background:color-mix(in srgb,var(--accent) 16%,transparent)}.tab-group{display:flex;align-items:flex-end;gap:2px;flex:0 0 auto;padding:0 4px 0 0;margin-right:2px;border-bottom:2px solid var(--group-color)}.group-chip{display:flex;align-items:center;gap:6px;align-self:center;padding:4px 8px;margin-bottom:3px;border-radius:6px;background:color-mix(in srgb,var(--group-color) 18%,var(--panel-2));border:1px solid color-mix(in srgb,var(--group-color) 45%,var(--border));color:var(--text);font-size:12px;white-space:nowrap;cursor:pointer}.group-chip:hover{background:color-mix(in srgb,var(--group-color) 28%,var(--panel-2))}.group-chip.active{box-shadow:0 0 0 1px var(--group-color)}.tab-group.drop-into{background:color-mix(in srgb,var(--group-color) 16%,transparent);border-radius:8px 8px 0 0}.tab-group.drop-into .group-chip{box-shadow:0 0 0 2px var(--group-color)}.group-dot{width:8px;height:8px;border-radius:50%;background:var(--group-color);flex:0 0 auto}.group-name{max-width:140px;overflow:hidden;text-overflow:ellipsis}.group-count{font-size:11px;color:var(--muted);background:var(--bg);padding:0 5px;border-radius:8px;min-width:16px;text-align:center}.group-caret{color:var(--muted);font-size:10px}.group-tabs{display:flex;align-items:flex-end;gap:4px}.tab.in-group{border-radius:6px 6px 0 0}.ctxmenu{position:fixed;z-index:1000;min-width:180px;padding:4px;background:var(--panel-2);border:1px solid var(--border);border-radius:8px;box-shadow:0 8px 28px #0009;display:flex;flex-direction:column}.ctxmenu-item{display:flex;align-items:center;justify-content:space-between;gap:12px;width:100%;text-align:left;padding:7px 10px;border:none;background:none;color:var(--text);font-size:13px;border-radius:5px;cursor:pointer}.ctxmenu-item:hover{background:var(--accent);color:#fff}.ctxmenu-item.danger{color:#ff6b6b}.ctxmenu-item.danger:hover{background:#ff6b6b;color:#fff}.ctxmenu-sep{height:1px;margin:4px 6px;background:var(--border)}.ctxmenu-subwrap{position:relative}.ctxmenu-arrow{color:var(--muted);font-size:14px}.ctxmenu-sub{position:absolute;left:100%;top:-4px;margin-left:2px}.depth-picker{display:flex;align-items:center;gap:6px;margin-bottom:10px;flex-wrap:wrap}.depth-label{color:var(--muted);font-size:12px}.depth-btn{padding:4px 9px;font-size:12px;border-radius:6px;background:var(--panel-2);border:1px solid var(--border);color:var(--muted);cursor:pointer}.depth-btn.active{background:var(--accent);border-color:var(--accent);color:#fff}.docviews{flex:1;min-height:0;min-width:0;display:flex}.docview{flex:1;min-height:0;min-width:0;display:flex;flex-direction:column}.docview.hidden{display:none}.topbar{display:flex;align-items:center;gap:12px;flex-wrap:nowrap;padding:8px 14px;background:var(--panel);border-bottom:1px solid var(--border);min-height:46px}.topbar button,.topbar label,.topbar .pageinfo,.topbar .render-chip,.topbar .local-badge{white-space:nowrap;flex-shrink:0}.topbar .search-input{flex-shrink:1;min-width:6rem}.status{min-width:0;overflow:hidden}.topbar .icon-only,.doctools .icon-only{padding:5px;border:0;background:transparent;border-radius:8px;display:inline-flex;align-items:center;justify-content:center;line-height:0}.topbar .icon-only .btn-ico,.doctools .icon-only .btn-ico{width:26px;height:26px;margin:0;opacity:.82;transition:opacity .12s,transform .12s}.topbar .icon-only:hover:not(:disabled),.doctools .icon-only:hover:not(:disabled){background:color-mix(in srgb,var(--text) 10%,transparent)}.topbar .icon-only:hover:not(:disabled) .btn-ico,.doctools .icon-only:hover:not(:disabled) .btn-ico{opacity:1;transform:scale(1.06)}.topbar .icon-only:disabled,.doctools .icon-only:disabled{opacity:.3;cursor:not-allowed}.doctools .icon-only.danger:hover:not(:disabled){background:color-mix(in srgb,#ff6b6b 22%,transparent)}.doctools .icon-only.danger:active:not(:disabled){transform:translateY(1px)}.icon-btn{width:26px;padding:0!important}.brand{font-weight:700;letter-spacing:.3px;display:inline-flex;align-items:center;gap:7px}.brand-word{display:inline-flex}.brand-word span{color:var(--accent)}.brand-mark{display:block;border-radius:5px}.topbar .spacer{flex:1}.status{font-size:12px;color:var(--muted);display:flex;align-items:center;gap:8px}.local-badge{font-size:11px;color:var(--text);white-space:nowrap;background:color-mix(in srgb,var(--accent) 18%,var(--panel-2));border:1px solid color-mix(in srgb,var(--accent) 45%,var(--border));padding:2px 8px;border-radius:10px}.status .dot{display:inline-block;width:8px;height:8px;border-radius:50%;margin-right:6px;background:var(--muted)}.status .dot.ok{background:#45c47a}.status .dot.busy{background:var(--highlight)}button,.btn{background:var(--panel-2);color:var(--text);border:1px solid var(--border);border-radius:8px;padding:7px 11px;font-size:13px;cursor:pointer}button:hover{border-color:var(--accent)}button.active{background:var(--accent-2);border-color:var(--accent)}button:disabled{opacity:.5;cursor:not-allowed}.btn-ico{display:inline-block;vertical-align:-3px;margin-right:5px;opacity:.9}.toolgroup{display:flex;gap:6px;align-items:center}.sep{width:1px;height:22px;background:var(--border);margin:0 4px}.colors{gap:4px}.swatch{width:18px;height:18px;padding:0;border-radius:50%;border:2px solid transparent;cursor:pointer;box-shadow:inset 0 0 0 1px #00000040}.swatch:hover{border-color:var(--muted)}.swatch.active{border-color:var(--text)}.swatch.custom{position:relative;overflow:hidden;display:inline-flex;background:none}.swatch.custom span{width:100%;height:100%;border-radius:50%;display:block}.swatch.custom input[type=color]{position:absolute;top:0;right:0;bottom:0;left:0;opacity:0;cursor:pointer;border:none;padding:0}.doctools{position:relative;display:flex;align-items:center;justify-content:center;gap:10px;padding:6px 14px;background:var(--panel-2);border-bottom:1px solid var(--border);flex-wrap:nowrap;overflow-x:auto;scrollbar-width:thin}.doctools>*{flex-shrink:0}.doctools button{white-space:nowrap}.doctools-label{font-size:12px;color:var(--muted);font-weight:600}.doctools .rot{font-size:19px;line-height:1;width:38px;height:30px;padding:0;display:flex;align-items:center;justify-content:center}.doctools button.danger:hover{background:#e0564f;border-color:#e0564f}.doctools-sync{position:absolute;right:14px;font-size:12px;color:var(--muted)}.doctools .form-toggle.active,.doctools button.active{background:var(--accent);border-color:var(--accent);color:#fff}.design-hint{font-size:12px;color:var(--muted)}.form-design-layer{position:absolute;top:0;right:0;bottom:0;left:0;z-index:5;cursor:crosshair}.design-field{position:absolute;box-sizing:border-box;cursor:move;border:1.5px solid var(--accent);border-radius:3px;background:color-mix(in srgb,var(--accent) 14%,rgba(255,255,255,.55))}.design-field.type-checkbox{border-radius:3px}.design-field.type-radio{border-radius:50%}.design-field.selected{box-shadow:0 0 0 2px var(--accent),0 0 0 4px color-mix(in srgb,var(--accent) 40%,transparent)}.fields-pane{padding:8px 6px}.fields-empty{padding:24px 14px;color:var(--muted);font-size:13px;text-align:center;line-height:1.5}.fields-group{margin-bottom:12px}.fields-group-head{font-size:11px;text-transform:uppercase;letter-spacing:.04em;color:var(--muted);padding:4px 8px;display:flex;align-items:center;gap:6px}.fields-group-head span{background:var(--panel-2);border-radius:8px;padding:0 6px;font-size:10px}.field-row{display:flex;align-items:center;gap:6px;padding:5px 8px;border-radius:6px;cursor:pointer;font-size:13px}.field-row:hover{background:var(--panel-2)}.field-row.selected{background:color-mix(in srgb,var(--accent) 22%,var(--panel-2))}.field-row.indent{margin-left:12px}.field-row-name{flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.field-row-page{font-size:10px;color:var(--muted)}.field-row-calc{font-size:12px;color:var(--accent);font-style:italic}.field-row-btn{background:none;border:none;color:var(--muted);padding:0 4px;font-size:13px;line-height:1;border-radius:4px;opacity:0;cursor:pointer}.field-row:hover .field-row-btn{opacity:1}.field-row-btn:hover{background:var(--border);color:var(--text)}.field-row-btn.del:hover{background:#ff6b6b;color:#fff}.radio-group{margin-bottom:6px}.radio-group-name{font-size:11px;color:var(--text);padding:3px 8px;font-weight:600}.design-handle{position:absolute;width:9px;height:9px;background:var(--accent);border:1px solid #fff;border-radius:2px;z-index:2}.design-handle.h-nw{left:-5px;top:-5px;cursor:nwse-resize}.design-handle.h-ne{right:-5px;top:-5px;cursor:nesw-resize}.design-handle.h-sw{left:-5px;bottom:-5px;cursor:nesw-resize}.design-handle.h-se{right:-5px;bottom:-5px;cursor:nwse-resize}.design-field-label{position:absolute;left:0;top:-16px;font-size:10px;line-height:14px;white-space:nowrap;background:var(--accent);color:#fff;padding:0 5px;border-radius:3px;max-width:160px;overflow:hidden;text-overflow:ellipsis}.design-field-del{position:absolute;right:-9px;top:-9px;width:16px;height:16px;padding:0;line-height:1;border-radius:50%;border:none;background:#e0564f;color:#fff;font-size:12px;cursor:pointer;display:flex;align-items:center;justify-content:center}.design-field-del:hover{background:#ff6b6b}.design-preview{position:absolute;box-sizing:border-box;border:1.5px dashed var(--accent);background:color-mix(in srgb,var(--accent) 12%,transparent);border-radius:3px}.formLayer{position:absolute;top:0;left:0;pointer-events:none;z-index:4}.formLayer .form-field,.formLayer .form-check{position:absolute;pointer-events:auto;box-sizing:border-box;margin:0}.formLayer .form-field{border:1px solid var(--accent);border-radius:3px;padding:0 3px;background:color-mix(in srgb,var(--accent) 12%,rgba(255,255,255,.92));color:#111;font-family:inherit;line-height:1.05}.formLayer select.form-field{padding:0 2px}.formLayer .form-field:focus{outline:2px solid var(--accent);background:#fff}.formLayer .form-field:disabled{opacity:.55;cursor:not-allowed}.formLayer .form-multiline{resize:none;padding:2px 3px;line-height:1.15}.formLayer .form-check{accent-color:var(--accent);cursor:pointer}.formLayer .form-calc{background:color-mix(in srgb,var(--accent) 20%,rgba(255,255,255,.9));cursor:default}.formLayer .form-action{position:absolute;pointer-events:auto;margin:0;padding:0;cursor:pointer;background:transparent;border:none;border-radius:3px}.formLayer .form-action:hover{background:#a855f72e;outline:1px solid var(--accent)}.body{display:flex;flex:1;min-height:0;min-width:0}.thumb.draggable{cursor:grab}.thumb.draggable:active{cursor:grabbing}.thumb.dragover{box-shadow:0 0 0 2px var(--accent)}.sidebar{width:236px;background:var(--panel);border-right:1px solid var(--border);flex:none;display:flex;flex-direction:column;min-height:0}.sidebar-tabs{display:flex;gap:4px;padding:8px;border-bottom:1px solid var(--border)}.sidebar-tabs button{flex:1 1 0;min-width:0;padding:5px 6px;font-size:11.5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.sidebar-tabs button .tab-count{margin-left:4px;padding:0 4px;border-radius:999px;font-size:9.5px;background:var(--border);color:var(--text)}.sidebar-tabs button.active .tab-count{background:#ffffff40}.sidebar-body{flex:1;min-height:0;overflow-y:auto}.outline{padding:8px}.outline-empty{color:var(--muted);font-size:13px;padding:12px;text-align:center}.outline-list{list-style:none;margin:0;padding:0}.outline-item{display:block;width:100%;text-align:left;background:none;border:none;color:var(--text);padding:5px 8px;font-size:13px;border-radius:6px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.outline-item:hover{background:var(--panel-2);border:none}.pagelist{display:flex;flex-direction:column;padding:8px;gap:2px}.pagelist-item{text-align:left;background:none;border:none;color:var(--text);padding:6px 10px;border-radius:6px;font-size:13px}.pagelist-item:hover{background:var(--panel-2);border:none}.pagelist-item.active{background:var(--accent-2);border:none}.thumbs{overflow-y:auto;padding:10px;display:flex;flex-direction:column;gap:10px}.thumb{cursor:pointer;border:2px solid transparent;border-radius:6px;overflow:hidden;background:#fff}.thumb.active{border-color:var(--accent)}.thumb canvas{display:block;width:100%;height:auto}.thumb .label{font-size:11px;color:var(--muted);text-align:center;padding:2px;background:var(--panel)}.thumb{position:relative}.thumb-ops{position:absolute;top:4px;right:4px;display:none;gap:3px}.thumb:hover .thumb-ops{display:flex}.thumb-op{width:22px;height:22px;padding:0;border-radius:5px;font-size:13px;line-height:1;background:#14161ce6;color:var(--text);border:1px solid var(--border);display:flex;align-items:center;justify-content:center;cursor:pointer}.thumb-op:hover{border-color:var(--accent)}.thumb-op.del:hover{background:#e0564f;border-color:#e0564f}.viewer{flex:1;min-width:0;overflow:auto;padding:24px;display:flex;flex-direction:column;align-items:safe center;gap:20px}.page{position:relative;flex:0 0 auto;box-shadow:0 4px 24px #00000080;background:#fff}.page-loading-slot{background:var(--panel-2);overflow:hidden}.page-loading-slot:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(100deg,transparent 35%,rgba(168,85,247,.1) 50%,transparent 65%);animation:shimmer 1.3s ease-in-out infinite}@keyframes shimmer{0%{transform:translate(-100%)}to{transform:translate(100%)}}.page-canvas{position:absolute;top:0;left:0;display:block;-webkit-user-select:none;user-select:none}.textLayer{position:absolute;top:0;right:0;bottom:0;left:0;overflow:clip;opacity:1;line-height:1;text-align:initial;text-size-adjust:none;forced-color-adjust:none;transform-origin:0 0;caret-color:CanvasText;z-index:1}.textLayer span,.textLayer br{color:transparent;position:absolute;white-space:pre;cursor:text;transform-origin:0% 0%}.textLayer ::selection{background:#a855f766}.textLayer mark.search-hit{background:#ffd54a80;color:transparent;border-radius:2px}.textLayer mark.search-hit.active{background:#a855f7b3}.anno-layer{position:absolute;top:0;right:0;bottom:0;left:0;z-index:2;pointer-events:none}.anno-layer.drawing,.anno-highlight,.anno-note-wrap{pointer-events:auto}.anno-highlight{position:absolute;background:var(--highlight);opacity:.38;mix-blend-mode:multiply;border-radius:2px}.anno-note-wrap{position:absolute;transform:translate(-50%,-50%);z-index:3}.anno-note{position:relative;width:22px;height:22px;background:var(--highlight);color:#222;border-radius:50% 50% 50% 2px;display:flex;align-items:center;justify-content:center;font-size:12px;box-shadow:0 2px 6px #0006;cursor:pointer}.anno-layer.drawing{cursor:crosshair}.anno-note.movable{cursor:move}.anno-note-card{position:absolute;top:26px;left:50%;transform:translate(-50%);width:224px;background:var(--panel-2);border:1px solid var(--border);border-radius:8px;padding:10px;box-shadow:0 8px 28px #0000008c;text-align:left;display:none}.anno-note-card:before{content:"";position:absolute;left:-8px;right:-8px;top:-14px;height:14px}body.ctx-open .anno-note-card{display:none!important}.anno-note-wrap:hover .anno-note-card,.anno-note-card:hover{display:block}.anno-note-body{font-size:13px;color:var(--text);white-space:pre-wrap;word-break:break-word;max-height:160px;overflow-y:auto}.anno-note-body .muted{color:var(--muted);font-style:italic}.anno-note-meta{font-size:11px;color:var(--muted);margin-top:8px;white-space:nowrap}.anno-note-meta+.anno-note-meta{margin-top:2px}.anno-note-actions{display:flex;gap:6px;margin-top:10px}.anno-note-actions button{font-size:12px;padding:4px 10px}.anno-note-actions .danger{color:#ff6b6b}.anno-note-actions .danger:hover{background:#ff6b6b;color:#fff;border-color:#ff6b6b}.anno-del{position:absolute;width:16px;height:16px;padding:0;line-height:1;transform:translate(-50%,-50%);border-radius:50%;border:none;background:#e0564f;color:#fff;font-size:12px;cursor:pointer;display:flex;align-items:center;justify-content:center;box-shadow:0 1px 3px #00000073;pointer-events:auto;opacity:.55;z-index:3}.anno-del:hover{opacity:1;background:#ff6b6b;border:none}.draw-preview{position:absolute;background:var(--highlight);opacity:.3;border:1px dashed #b58900}.dropzone{margin:auto;width:min(560px,80%);padding:56px 28px;text-align:center;border:2px dashed var(--border);border-radius:16px;background:var(--panel);color:var(--muted);transition:border-color .15s,background .15s}.dropzone.over{border-color:var(--accent);background:var(--panel-2);color:var(--text)}.dropzone h2{color:var(--text);margin:0 0 8px}.dropzone .hint{font-size:13px;margin-top:10px}.dropzone .pick{margin-top:18px;display:inline-block}.doc-loading{margin:auto;display:flex;flex-direction:column;align-items:center;gap:14px;color:var(--muted);font-size:14px}.doc-loading .spinner{width:34px;height:34px;border-radius:50%;border:3px solid var(--border);border-top-color:var(--accent);animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.search-input{background:var(--panel-2);color:var(--text);border:1px solid var(--border);border-radius:8px;padding:7px 10px;font-size:13px;width:190px}.search-input:focus{outline:none;border-color:var(--accent)}.search-input::placeholder{color:var(--muted)}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#0000008c;z-index:1000;display:flex;align-items:center;justify-content:center}.modal{width:min(420px,92vw);background:var(--panel);border:1px solid var(--border);border-radius:12px;padding:18px;box-shadow:0 12px 48px #0009}.modal-title{font-size:15px;font-weight:600;margin-bottom:4px}.organize{width:min(1100px,94vw);height:min(88vh,900px);display:flex;flex-direction:column;background:var(--panel);border:1px solid var(--border);border-radius:12px;box-shadow:0 12px 48px #0009;overflow:hidden}.organize-head{display:flex;align-items:center;gap:14px;padding:12px 16px;border-bottom:1px solid var(--border);flex:0 0 auto}.organize-head .modal-title{margin:0}.organize-hint{font-size:12px;color:var(--muted);margin-right:auto}.organize-grid{flex:1;min-height:0;overflow-y:auto;padding:18px;display:grid;grid-template-columns:repeat(auto-fill,minmax(120px,1fr));gap:16px;align-content:start}.org-thumb{position:relative;cursor:grab;border:2px solid transparent;border-radius:8px;background:#fff;overflow:hidden;box-shadow:0 2px 10px #0006;display:flex;flex-direction:column;align-items:center}.org-thumb:active{cursor:grabbing}.org-thumb canvas{display:block;width:100%;height:auto}.org-thumb.dragover{border-color:var(--accent);box-shadow:0 0 0 3px color-mix(in srgb,var(--accent) 45%,transparent)}.org-thumb.dragging{opacity:.4}.org-label{width:100%;text-align:center;font-size:11px;color:var(--muted);background:var(--panel);padding:3px}.modal-label{font-size:13px;color:var(--muted);margin-bottom:12px}.modal-input{width:100%;background:var(--panel-2);color:var(--text);border:1px solid var(--border);border-radius:8px;padding:9px 11px;font-size:14px;margin-top:8px}.modal-input:focus{outline:none;border-color:var(--accent)}.merge-list{display:flex;flex-direction:column;gap:4px;margin-top:10px;max-height:220px;overflow-y:auto}.merge-item{display:flex;align-items:center;gap:8px;padding:7px 9px;border-radius:8px;cursor:pointer;font-size:13px}.merge-item:hover{background:var(--panel-2)}.merge-item span{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.modal-actions{display:flex;align-items:center;justify-content:flex-end;gap:8px;margin-top:16px}.modal-actions .primary{background:var(--accent-2);border-color:var(--accent)}.split-outline{border-bottom:1px dashed var(--border);padding-bottom:12px;margin-bottom:12px}.split-divider{text-align:center;color:var(--muted);font-size:12px;margin-top:12px}.warn{color:#ffb454}.error{color:#ff6b6b;font-size:13px}.pageinfo{font-size:13px;color:var(--muted);min-width:92px;text-align:center}.pageinfo.nav{display:inline-flex;align-items:center;gap:5px;min-width:auto}.page-input,.zoom-input{width:42px;text-align:center;background:var(--panel-2);color:var(--text);border:1px solid var(--border);border-radius:6px;padding:4px;font-size:13px}.zoom-input{width:46px}.page-input:focus,.zoom-input:focus{outline:none;border-color:var(--accent)}.calc-modal{width:min(560px,94vw)}.calc-expr{display:flex;flex-wrap:wrap;gap:6px;align-items:center;min-height:44px;padding:8px 10px;border:1px solid var(--border);border-radius:8px;background:var(--panel-2);margin-bottom:8px}.calc-placeholder{color:var(--muted);font-size:13px}.calc-chip{border:1px solid var(--border);border-radius:6px;padding:4px 8px;font-size:13px;cursor:pointer;background:var(--panel);color:var(--text);line-height:1.1}.calc-chip:hover{border-color:#ff6b6b;color:#ff8f8f}.calc-chip.field{background:color-mix(in srgb,var(--accent) 22%,var(--panel));border-color:var(--accent)}.calc-chip.fn{background:color-mix(in srgb,#7c5cff 26%,var(--panel));border-color:#7c5cff}.calc-chip.op,.calc-chip.lp,.calc-chip.rp{font-weight:700}.calc-preview{display:flex;align-items:center;gap:10px;font-size:14px;margin-bottom:14px;color:var(--text)}.calc-preview strong{font-size:16px}.calc-preview .calc-text{color:var(--muted);font-size:12px;margin-left:2px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.calc-preview .calc-clear{margin-left:auto;font-size:12px;padding:3px 8px}.calc-preview .calc-clear+.calc-clear{margin-left:0}.calc-section-label{font-size:11px;text-transform:uppercase;letter-spacing:.04em;color:var(--muted);margin:6px 0 5px}.calc-fields,.calc-fn-fields{display:flex;flex-wrap:wrap;gap:6px}.calc-field-btn{border:1px solid var(--accent);border-radius:6px;padding:4px 9px;font-size:13px;cursor:pointer;background:color-mix(in srgb,var(--accent) 16%,var(--panel));color:var(--text)}.calc-field-btn:hover:not(:disabled){background:color-mix(in srgb,var(--accent) 32%,var(--panel))}.calc-field-btn:disabled{opacity:.4;cursor:not-allowed}.calc-ops{display:flex;align-items:center;gap:6px;flex-wrap:wrap;margin-bottom:4px}.calc-op-btn{min-width:34px;border:1px solid var(--border);border-radius:6px;padding:5px 10px;font-size:14px;cursor:pointer;background:var(--panel-2);color:var(--text)}.calc-op-btn:hover:not(:disabled){border-color:var(--accent)}.calc-op-btn:disabled{opacity:.35;cursor:not-allowed}.calc-num{width:80px;background:var(--panel-2);color:var(--text);border:1px solid var(--border);border-radius:6px;padding:5px 8px;font-size:13px;margin-left:4px}.calc-num:focus{outline:none;border-color:var(--accent)}.calc-fn{display:flex;align-items:flex-start;gap:8px;flex-wrap:wrap}.calc-fn-fields{max-width:340px}.calc-fn-chip{display:inline-flex;align-items:center;gap:4px;border:1px solid var(--border);border-radius:6px;padding:3px 7px;font-size:12px;cursor:pointer;-webkit-user-select:none;user-select:none}.calc-fn-chip.on{background:color-mix(in srgb,#7c5cff 26%,var(--panel));border-color:#7c5cff}.calc-fn-chip input{margin:0}.wm-modal{width:min(520px,94vw)}.wm-row{display:flex;align-items:flex-end;gap:12px;flex-wrap:wrap;margin-top:12px}.wm-row label{display:flex;flex-direction:column;gap:4px;font-size:12px;color:var(--muted)}.wm-row label select,.wm-row label input{margin-top:0}.wm-grow{flex:1;min-width:150px}.wm-val{color:var(--text);font-weight:600}.wm-toggle{display:inline-flex;border:1px solid var(--border);border-radius:8px;overflow:hidden}.wm-toggle button{border:none;border-radius:0;padding:7px 16px;background:var(--panel-2);color:var(--text);cursor:pointer;font-size:13px}.wm-toggle button.on{background:var(--accent-2)}.wm-color{width:42px;height:32px;padding:0;border:1px solid var(--border);border-radius:6px;background:none;cursor:pointer}.wm-file{display:inline-flex;align-items:center;gap:8px;cursor:pointer;font-size:13px;color:var(--text);border:1px dashed var(--border);border-radius:8px;padding:9px 12px;flex-direction:row!important}.wm-file input[type=file]{display:none}.wm-unit{font-size:11px;color:var(--muted)}.wm-pages{flex-direction:row!important;align-items:center;gap:6px;color:var(--text)}.wm-range{width:90px}.wm-err{color:#ff8f8f;font-size:12px;margin-top:10px}.wm-row input[type=range]{accent-color:var(--accent)}.hf-modal{width:min(560px,94vw)}.hf-grid-label{font-size:11px;text-transform:uppercase;letter-spacing:.04em;color:var(--muted);margin:12px 0 5px}.hf-grid{display:grid;grid-template-columns:1fr 1fr 1fr;gap:8px}.hf-field{background:var(--panel-2);color:var(--text);border:1px solid var(--border);border-radius:8px;padding:8px 10px;font-size:13px;width:100%}.hf-field:focus{outline:none;border-color:var(--accent)}.hf-tokens{display:flex;align-items:center;gap:6px;margin-top:10px;flex-wrap:wrap}.hf-tokens-label{font-size:12px;color:var(--muted)}.hf-token{border:1px solid var(--accent);border-radius:6px;padding:3px 9px;font-size:12px;cursor:pointer;background:color-mix(in srgb,var(--accent) 16%,var(--panel));color:var(--text)}.hf-token:hover{background:color-mix(in srgb,var(--accent) 32%,var(--panel))}.hf-row{display:flex;align-items:flex-end;gap:12px;flex-wrap:wrap;margin-top:12px}.hf-row label{display:flex;flex-direction:column;gap:4px;font-size:12px;color:var(--muted)}.hf-bates{align-items:center;padding:8px 10px;background:var(--panel-2);border-radius:8px}.hf-bates-label{font-size:11px;text-transform:uppercase;letter-spacing:.04em;color:var(--muted)}.hf-bates .page-input{width:70px}.stamp-list{display:flex;flex-direction:column;gap:5px;margin:4px 0 12px;padding:8px;background:var(--panel-2);border:1px solid var(--border);border-radius:8px}.stamp-row{display:flex;align-items:center;gap:8px}.stamp-row.editing{outline:2px solid var(--accent);outline-offset:2px;border-radius:4px}.stamp-row-label{flex:1;font-size:12px;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.stamp-row-btn{border:1px solid var(--border);border-radius:6px;padding:3px 9px;font-size:12px;cursor:pointer;background:var(--panel);color:var(--text)}.stamp-row-btn:hover{border-color:var(--accent)}.stamp-row-btn.del:hover{border-color:#ff6b6b;color:#ff8f8f}.meta-modal{width:min(500px,94vw)}.meta-fields{display:flex;flex-direction:column;gap:10px;margin-top:6px}.meta-field{display:flex;flex-direction:column;gap:4px}.meta-field span{font-size:11px;text-transform:uppercase;letter-spacing:.04em;color:var(--muted)}.meta-dates{display:flex;gap:20px;margin-top:14px;font-size:12px;color:var(--muted);flex-wrap:wrap}.meta-dates strong{color:var(--text);font-weight:600}.meta-note{font-size:11px;color:var(--muted);margin-top:6px}.meta-strip-warn{font-size:12px;color:#ffb454;margin-right:auto}.modal-actions .danger{border-color:#a33;color:#ff8f8f}.redact-layer{position:absolute;top:0;right:0;bottom:0;left:0;z-index:6;cursor:crosshair}.redact-box{position:absolute;background:#000;border:1px solid #ff3b3b;box-shadow:0 0 0 1px #ff3b3b80}.redact-box:hover{outline:1px dashed #ff8f8f}.redact-del{position:absolute;top:-10px;right:-10px;width:20px;height:20px;border-radius:50%;background:#ff3b3b;color:#fff;border:none;cursor:pointer;font-size:13px;line-height:1;display:flex;align-items:center;justify-content:center}.redact-preview{position:absolute;background:#000000bf;border:1px dashed #ff3b3b}.redact-layer.mode-text{cursor:text}.anno-layer.content-draw{cursor:crosshair}.content-wrap{display:contents}.content-item{position:absolute;pointer-events:auto;box-sizing:border-box}.content-item.movable{cursor:move}.content-item.sel{outline:1px solid var(--accent);outline-offset:1px}.content-text{line-height:1.18;white-space:pre;-webkit-user-select:none;user-select:none;padding:0}.content-shape{pointer-events:auto}.content-svg{position:absolute;top:0;right:0;bottom:0;left:0;overflow:visible}.content-svg .ep{fill:#fff;stroke:var(--accent);stroke-width:2;pointer-events:all;cursor:move}.content-handle{position:absolute;width:10px;height:10px;margin:-5px 0 0 -5px;background:#fff;border:1px solid var(--accent);border-radius:2px;pointer-events:auto;z-index:4}.content-handle.h-nw{cursor:nwse-resize}.content-handle.h-ne,.content-handle.h-sw{cursor:nesw-resize}.content-handle.h-se{cursor:nwse-resize}.draw-preview.shape{background:transparent;border:1px dashed var(--accent);opacity:.9}.content-style{display:flex;align-items:center;gap:8px}.cs-color{position:relative;width:22px;height:22px;border-radius:5px;overflow:hidden;border:1px solid var(--border);cursor:pointer}.cs-color span{display:block;width:100%;height:100%}.cs-color input{position:absolute;top:0;right:0;bottom:0;left:0;opacity:0;cursor:pointer}.cs-w{background:var(--panel-2);color:var(--text);border:1px solid var(--border);border-radius:6px;padding:3px 5px;font-size:12px}.cs-fill{display:inline-flex;align-items:center;gap:4px;font-size:12px;color:var(--muted);cursor:pointer}.cs-fill.on{color:var(--text)}.cs-fill input[type=color]{width:22px;height:20px;padding:0;border:1px solid var(--border);border-radius:4px;background:none}.crop-layer{position:absolute;top:0;right:0;bottom:0;left:0;z-index:6;cursor:crosshair}.crop-rect{position:absolute;border:1px solid var(--accent);box-shadow:0 0 0 9999px #00000073}.content-link{border:1px dashed #4a9eff;background:#4a9eff1a;border-radius:3px;display:flex;align-items:flex-start;overflow:hidden}.content-link:hover{background:#4a9eff2e}.content-link-tag{font-size:10px;color:#4a9eff;background:var(--panel);padding:0 3px;line-height:1.4;white-space:nowrap;pointer-events:none;max-width:100%;overflow:hidden;text-overflow:ellipsis}.bm-panel{display:flex;flex-direction:column;height:100%}.bm-head{display:flex;align-items:center;justify-content:space-between;padding:8px 10px;border-bottom:1px solid var(--border);font-size:12px;color:var(--muted);text-transform:uppercase;letter-spacing:.04em}.bm-add{font-size:12px;padding:3px 8px}.bm-tree{position:relative;flex:1;overflow-y:auto;padding:4px 0 22px}.bm-empty{padding:16px 12px;color:var(--muted);font-size:12px}.bm-row{position:relative;display:flex;align-items:center;gap:6px;padding:4px 8px 4px 6px;font-size:13px}.bm-row:hover{background:var(--panel-2)}.bm-grip{color:var(--muted);cursor:grab;font-size:11px;opacity:0;-webkit-user-select:none;user-select:none}.bm-row:hover .bm-grip{opacity:.7}.bm-row.dragging{opacity:.4}.bm-insert{position:absolute;right:6px;height:2px;background:var(--accent);border-radius:2px;pointer-events:none;z-index:3}.bm-insert:before{content:"";position:absolute;left:-4px;top:-3px;width:8px;height:8px;border-radius:50%;background:var(--accent)}.bm-title{flex:1;cursor:pointer;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.bm-title:hover{color:var(--accent)}.bm-pg{font-size:11px;color:var(--muted)}.bm-tools{display:none;gap:1px}.bm-row:hover .bm-tools{display:inline-flex}.bm-tools button{border:none;background:none;color:var(--muted);cursor:pointer;font-size:12px;padding:1px 3px;border-radius:4px}.bm-tools button:hover{color:var(--text);background:var(--border)}.bm-tools button.del:hover{color:#ff8f8f}.cmp-modal.modal{width:min(460px,94vw)}.cmp-result{width:min(1200px,96vw);height:min(90vh,940px);display:flex;flex-direction:column}.cmp-loading{display:flex;align-items:center;gap:10px;padding:24px 4px;color:var(--muted)}.cmp-summary{display:flex;gap:12px;font-size:13px;margin-right:auto;margin-left:6px}.cmp-add{color:#57c46a}.cmp-del{color:#ff7a7a}.cmp-toggle{display:flex;align-items:center;gap:6px;font-size:12px;color:var(--muted);margin-right:12px}.cmp-body{flex:1;min-height:0;overflow-y:auto;padding:16px 20px}.cmp-none{color:var(--muted);padding:24px;text-align:center}.cmp-page{margin-bottom:18px}.cmp-page-h{font-size:11px;text-transform:uppercase;letter-spacing:.05em;color:var(--muted);border-bottom:1px solid var(--border);padding-bottom:4px;margin-bottom:8px}.cmp-text{font-size:14px;line-height:1.7;margin:0;white-space:normal;word-break:break-word}.cmp-eq{color:var(--text)}.cmp-ins{background:color-mix(in srgb,#57c46a 30%,transparent);border-radius:2px}.cmp-del{background:color-mix(in srgb,#ff7a7a 26%,transparent);text-decoration:line-through;border-radius:2px}.cmp-viewtoggle{display:inline-flex;border:1px solid var(--border);border-radius:8px;overflow:hidden;margin-right:12px}.cmp-viewtoggle button{border:none;border-radius:0;padding:5px 12px;font-size:12px;background:var(--panel-2);color:var(--muted)}.cmp-viewtoggle button.on{background:var(--accent-2);color:#fff}.cmp-split{flex:1;min-height:0;display:flex}.cmp-col{flex:1;min-width:0;overflow-y:auto;padding:0 18px 18px}.cmp-col:first-child{border-right:1px solid var(--border)}.cmp-col-h{position:sticky;top:0;z-index:1;background:var(--panel);padding:10px 2px;font-size:12px;color:var(--muted);border-bottom:1px solid var(--border);margin-bottom:8px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.cmp-gap{color:var(--border)}.vc-root{flex:1;min-height:0;min-width:0;display:flex}.vc-col{flex:1;min-width:0;display:flex;flex-direction:column}.vc-col:first-child{border-right:1px solid var(--border)}.vc-col-h{padding:8px 14px;font-size:12px;color:var(--muted);border-bottom:1px solid var(--border);background:var(--panel);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;flex:0 0 auto}.vc-scroll{flex:1;min-height:0;min-width:0;overflow:auto;background:var(--panel-2)}.vc-inner{position:relative;width:100%}.vc-slot{position:absolute}.vc-pagenum{font-size:10px;color:var(--muted);margin-bottom:3px}.vc-page{position:relative;box-shadow:0 2px 10px #00000073}.vc-page canvas{display:block;background:#fff;border-radius:2px}.vc-hi{position:absolute;border-radius:2px;pointer-events:none;mix-blend-mode:multiply}.vc-wrap{flex:1;min-height:0;min-width:0;display:flex;flex-direction:column}.vc-toolbar{display:flex;align-items:center;gap:10px;padding:7px 12px;flex:0 0 auto;border-bottom:1px solid var(--border);background:var(--panel);flex-wrap:wrap}.vc-toolbar button{padding:4px 9px;font-size:12px}.vc-zoom{display:flex;align-items:center;gap:4px}.vc-zoomval{font-size:12px;color:var(--muted);min-width:40px;text-align:center}.vc-pageind{font-size:12px;color:var(--muted);white-space:nowrap}.vc-nav{display:flex;align-items:center;gap:4px}.vc-navlbl{font-size:12px;color:var(--text);min-width:108px;text-align:center;white-space:nowrap}.vc-find-bar{display:flex;align-items:center;gap:4px;margin-left:auto}.vc-findcount{font-size:11px;color:var(--muted);min-width:66px}.vc-main{flex:1;min-height:0;min-width:0;display:flex}.vc-changes{width:240px;flex:0 0 auto;display:flex;flex-direction:column;border-right:1px solid var(--border);background:var(--panel)}.vc-changes-h{padding:8px 12px;font-size:11px;text-transform:uppercase;letter-spacing:.05em;color:var(--muted);border-bottom:1px solid var(--border)}.vc-changes-list{flex:1;min-height:0;overflow-y:auto;padding-bottom:12px}.vc-changes-empty{padding:14px 12px;font-size:12px;color:var(--muted)}.vc-changes-pg{padding:6px 12px 3px;font-size:10px;text-transform:uppercase;letter-spacing:.04em;color:var(--muted)}.vc-change{display:flex;gap:6px;padding:5px 12px;font-size:12px;cursor:pointer;align-items:baseline}.vc-change:hover{background:var(--panel-2)}.vc-change.sel{background:color-mix(in srgb,var(--accent) 22%,var(--panel));box-shadow:inset 2px 0 0 var(--accent)}.vc-change-t{font-weight:700;flex:0 0 auto}.vc-change-t.ins{color:#57c46a}.vc-change-t.del{color:#ff7a7a}.vc-change-txt{color:var(--text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.vc-find{position:absolute;border-radius:2px;pointer-events:none;background:#ffd54a8c;mix-blend-mode:multiply;outline:1px solid #d0a400}.import-note{font-size:12px;color:#57c46a;white-space:nowrap}.sig-modal{width:min(560px,94vw)}.sig-section{font-size:11px;text-transform:uppercase;letter-spacing:.04em;color:var(--muted);margin:14px 0 6px}.sig-list{display:flex;flex-wrap:wrap;gap:8px}.sig-item{position:relative}.sig-use{padding:6px 10px;background:#fff;border:1px solid var(--border);border-radius:8px;cursor:pointer;display:block;min-width:110px;min-height:46px}.sig-use:hover{border-color:var(--accent);box-shadow:0 0 0 2px color-mix(in srgb,var(--accent) 35%,transparent)}.sig-use img{display:block;max-width:150px;max-height:44px}.sig-del{position:absolute;top:-7px;right:-7px;width:20px;height:20px;border-radius:50%;padding:0;font-size:13px;line-height:1;background:#ff6b6b;color:#fff;border:none}.sig-canvas{width:100%;height:170px;margin-top:10px;background:#fff;border:1px dashed var(--border);border-radius:8px;cursor:crosshair;touch-action:none}.sig-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:10px}.ink-sel{fill:none;stroke:var(--accent);stroke-width:1;stroke-dasharray:4 3}.rf-modal.modal{width:min(640px,94vw)}.rf-result{width:min(760px,94vw);max-height:min(88vh,880px);display:flex;flex-direction:column;padding:18px}.rf-presets{display:flex;flex-wrap:wrap;gap:6px;margin:10px 0}.rf-chip{display:inline-flex;align-items:center;gap:5px;padding:4px 9px;font-size:12px;border:1px solid var(--border);border-radius:14px;cursor:pointer;-webkit-user-select:none;user-select:none;color:var(--muted)}.rf-chip.on{background:color-mix(in srgb,var(--accent) 22%,var(--panel));border-color:var(--accent);color:var(--text)}.rf-custom{display:flex;align-items:center;gap:8px}.rf-custom .hf-field{flex:1}.rf-opt{display:inline-flex;align-items:center;gap:4px;font-size:12px;color:var(--muted);white-space:nowrap}.rf-summary{display:flex;align-items:center;gap:10px;margin:14px 0 6px;font-size:12px;flex-wrap:wrap}.rf-summary button{padding:3px 8px;font-size:12px}.rf-count{font-weight:700;color:var(--text)}.rf-tally{color:var(--muted)}.rf-list{flex:1;min-height:0;overflow-y:auto;border:1px solid var(--border);border-radius:8px;padding:6px 0}.rf-page{padding:6px 12px 3px;font-size:10px;text-transform:uppercase;letter-spacing:.04em;color:var(--muted)}.rf-row{display:flex;align-items:center;gap:8px;padding:5px 12px;font-size:13px;cursor:pointer}.rf-row:hover{background:var(--panel-2)}.rf-type{font-size:10px;text-transform:uppercase;letter-spacing:.04em;color:var(--muted);border:1px solid var(--border);border-radius:10px;padding:1px 7px;flex:0 0 auto;min-width:74px;text-align:center}.rf-text{font-family:ui-monospace,Menlo,monospace;color:var(--text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.rf-row.on .rf-text{color:#ff8f8f}.anno-markup-line{position:absolute;pointer-events:auto;border-radius:1px}.markup-hit{cursor:pointer}.anno-comment-dot{position:absolute;pointer-events:auto;font-size:11px;line-height:1;transform:translateY(-2px);cursor:pointer;filter:saturate(.9)}.comments{display:flex;flex-direction:column;height:100%;min-height:0}.comments-head{padding:8px;border-bottom:1px solid var(--border);display:flex;flex-direction:column;gap:6px}.comments-search{width:100%;box-sizing:border-box}.comments-filters{display:flex;flex-wrap:wrap;gap:4px;align-items:center}.comments-filters .chip{padding:2px 7px;font-size:11px;border-radius:999px;border:1px solid var(--border);background:transparent;color:var(--muted);cursor:pointer}.comments-filters .chip.on{background:var(--accent);border-color:var(--accent);color:#fff}.comments-only{font-size:11px;color:var(--muted);display:flex;align-items:center;gap:3px;margin-left:auto}.comments-list{flex:1;overflow-y:auto;min-height:0;padding:4px 0 8px}.comments-none{padding:14px;font-size:12px}.comments-page{position:sticky;top:0;z-index:1;padding:5px 10px;font-size:11px;font-weight:600;color:var(--muted);background:var(--panel);border-bottom:1px solid var(--border)}.comment{display:flex;gap:8px;padding:8px 10px;cursor:pointer;border-left:3px solid transparent;border-bottom:1px solid var(--border)}.comment:hover{background:var(--hover)}.comment.sel{border-left-color:var(--accent);background:var(--hover)}.comment-icon{font-size:13px;line-height:1.4;flex:none}.comment-main{min-width:0;flex:1}.comment-quote{font-size:11.5px;color:var(--muted);font-style:italic;border-left:2px solid var(--border);padding-left:6px;margin-bottom:3px;display:-webkit-box;-webkit-line-clamp:2;line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.comment-body{font-size:12.5px;white-space:pre-wrap;word-break:break-word}.comment-meta{display:flex;align-items:center;gap:6px;margin-top:4px;font-size:10.5px;color:var(--muted)}.comment-actions{margin-left:auto;display:none;gap:4px}.comment:hover .comment-actions{display:flex}.comment-actions button{font-size:10.5px;padding:1px 6px}.comments-foot{display:flex;align-items:center;gap:6px;padding:8px;border-top:1px solid var(--border);font-size:11px}.comments-foot button{font-size:11px;padding:2px 8px}.comments-empty{padding:18px 14px;font-size:12.5px}.comments-empty p{margin:0 0 8px}.toolmenu{position:relative;display:inline-flex}.toolmenu-pop{position:absolute;top:calc(100% + 4px);left:0;z-index:60;min-width:172px;background:var(--panel-2);border:1px solid var(--border);border-radius:8px;padding:4px;box-shadow:0 10px 30px #0000008c}.toolmenu-pop button{display:flex;align-items:center;gap:8px;width:100%;text-align:left;padding:5px 8px;background:transparent;border:0;border-radius:6px;color:var(--text);font-size:12.5px;cursor:pointer}.toolmenu-pop button:hover{background:#ffffff12}.toolmenu-pop button.active{background:var(--accent-2);color:#fff}.tm-icon{width:16px;text-align:center;flex:none}.tm-label{flex:1}.tm-key{font-size:10px;color:var(--muted);border:1px solid var(--border);border-radius:4px;padding:0 4px}.toolmenu-pop button.active .tm-key{color:#e9d8ff;border-color:#ffffff4d}.rk-modal{width:min(680px,92vw);max-height:88vh;display:flex;flex-direction:column}.rk-lede{font-size:12.5px;margin:0 0 12px;line-height:1.5}.rk-row{display:flex;flex-direction:column;gap:4px;margin-bottom:8px}.rk-row span{font-size:12px;color:var(--muted)}.rk-row input{width:100%}.rk-opts{display:flex;gap:14px;font-size:12px;color:var(--muted);margin-bottom:12px}.rk-opts label{display:flex;align-items:center;gap:4px}.rk-scope{border:1px solid var(--border);border-radius:8px;padding:8px 10px;margin-bottom:10px}.rk-label{font-size:12px;color:var(--muted);margin-bottom:6px}.rk-scope-opt{display:grid;grid-template-columns:auto 1fr;gap:2px 8px;align-items:baseline;padding:5px 4px;border-radius:6px;cursor:pointer}.rk-scope-opt:hover{background:#ffffff0a}.rk-scope-opt.on{background:#a855f71f}.rk-scope-name{font-size:12.5px;font-weight:600}.rk-scope-hint{grid-column:2;font-size:11.5px;color:var(--muted);line-height:1.4}.rk-check{display:flex;align-items:center;gap:5px;font-size:12px;color:var(--muted);margin-top:6px;padding-top:6px;border-top:1px solid var(--border)}.rk-err{font-size:12px;color:#ff8080;margin-bottom:8px}.rk-plan{flex:1;min-height:0;display:flex;flex-direction:column}.rk-summary{font-size:12.5px;padding:7px 10px;border-radius:6px;background:#a855f71f;margin-bottom:8px}.rk-summary.warn{background:#ff5a5a24}.rk-pages{overflow-y:auto;min-height:0;max-height:30vh;border:1px solid var(--border);border-radius:8px}.rk-page{padding:6px 10px;border-bottom:1px solid var(--border)}.rk-page:last-child{border-bottom:0}.rk-page-head{font-size:11.5px;font-weight:600;margin-bottom:3px}.rk-kept{font-size:11.5px;padding:2px 0 2px 8px;border-left:2px solid #7ddc6a;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:var(--text)}.rk-more{font-size:11px;padding-left:10px}.rk-note{font-size:11.5px;margin:10px 0 0}.sr-tabs{display:flex;gap:6px;margin:8px 0 12px}.sr-tabs button{flex:1;display:flex;flex-direction:column;align-items:flex-start;gap:1px;padding:7px 10px;border-radius:8px;border:1px solid var(--border);background:transparent;color:var(--text);font-size:12.5px;font-weight:600;cursor:pointer}.sr-tabs button span{font-size:11px;font-weight:400;color:var(--muted)}.sr-tabs button.on{background:#a855f729;border-color:var(--accent)}.sr-tabs button.on span{color:#d9bcff}.sr-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.sr-field{margin-bottom:10px;min-width:0}.sr-label{display:flex;align-items:center;gap:6px;font-size:12px;color:var(--muted);margin-bottom:5px}.sr-label select{font-size:11.5px;padding:1px 4px}.sr-terms{display:flex;flex-direction:column;gap:4px}.sr-term{display:flex;align-items:center;gap:5px}.sr-term input[type=text],.sr-term input:not([type]){flex:1;min-width:0}.sr-term label{display:flex;align-items:center;gap:2px;font-size:10.5px;color:var(--muted)}.sr-x{padding:1px 6px;line-height:1}.sr-add{align-self:flex-start;font-size:11px;padding:2px 8px}.sr-scopes{display:flex;flex-wrap:wrap;gap:4px}.sr-scope{padding:4px 10px;border-radius:999px;border:1px solid var(--border);background:transparent;color:var(--text);font-size:12px;cursor:pointer}.sr-scope.on{background:var(--accent);border-color:var(--accent);color:#fff}.sr-hint{font-size:11.5px;color:var(--muted);margin-top:5px;line-height:1.4}.sr-inline{display:flex;align-items:center;flex-wrap:wrap;gap:6px;font-size:12px;color:var(--muted);margin-top:7px}.sr-inline .muted{font-size:11px}.sr-num{width:68px}.sr-section{display:flex;flex-direction:column;gap:5px;margin-top:7px}.sr-section label{display:flex;align-items:center;gap:6px;font-size:12px;color:var(--muted)}.sr-section input{flex:1}.sr-more{background:transparent;border:0;color:var(--accent);font-size:12px;padding:4px 0;cursor:pointer;text-align:left}.sr-more-box{border:1px solid var(--border);border-radius:8px;padding:10px;margin-bottom:10px}.sr-cols{display:flex;flex-wrap:wrap;gap:4px}.sr-col{padding:3px 8px;border-radius:6px;border:1px solid var(--border);background:transparent;color:var(--muted);font-size:11.5px;cursor:pointer}.sr-col.on{background:#ff5a5a33;border-color:#ff5a5a;color:#ffd9d9}.sr-warn{background:#ff5a5a29!important}.sr-kept{font-size:11.5px;padding:2px 0 2px 8px;margin-left:4px;border-left:2px solid #7ddc6a;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.sr-kept-none{border-left-color:#ff5a5a;color:var(--muted)}.sr-kept-more{font-size:11px;padding-left:12px}.sr-note{font-size:11.5px;margin:8px 0 0}.vc-missing{display:flex;align-items:center;justify-content:center;text-align:center;border:1px dashed var(--border);border-radius:6px;padding:20px;font-size:12px;color:var(--muted);background:repeating-linear-gradient(45deg,transparent,transparent 8px,rgba(255,255,255,.03) 8px,rgba(255,255,255,.03) 16px)}.vc-missing.added{border-color:#5ac86e73}.vc-missing.removed{border-color:#ff5a5a73}.vc-missing span{max-width:70%}.vc-pagediff{display:flex;gap:6px;font-size:11.5px}.vc-pagediff .ins{color:#7ddc6a}.vc-pagediff .del{color:#ff8080}.cmp-export{display:flex;align-items:center;gap:4px;font-size:11.5px;margin-left:8px}.cmp-export button{font-size:11.5px;padding:2px 8px}.vc-whole .vc-wholetint{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none}.vc-whole{outline:2px solid rgba(255,255,255,.25);outline-offset:-2px}.bt-modal{width:min(900px,94vw)}.bt-cols{display:grid;grid-template-columns:260px 1fr;gap:14px;margin-bottom:10px}.bt-docs{min-width:0}.bt-doclist{border:1px solid var(--border);border-radius:8px;max-height:190px;overflow-y:auto;margin-bottom:6px}.bt-doc{display:flex;align-items:center;gap:6px;padding:5px 8px;font-size:12px;border-bottom:1px solid var(--border);cursor:pointer}.bt-doc:last-child{border-bottom:0}.bt-doc.on{background:#a855f71a}.bt-doc-name{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.bt-op{min-width:0}.bt-cfg{display:flex;flex-direction:column;gap:2px;margin-top:8px;border:1px solid var(--border);border-radius:8px;padding:8px 10px}.bt-plan{border:1px solid var(--border);border-radius:8px;padding:8px 10px;margin-bottom:10px}.bt-planlist{max-height:130px;overflow-y:auto}.bt-planrow{display:flex;align-items:center;gap:10px;font-size:12px;padding:2px 0}.bt-planname{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.bt-planrange{font-family:ui-monospace,monospace;font-size:11.5px;color:#7ddc6a}.bt-busy{display:flex;align-items:center;gap:8px;font-size:12.5px;padding:8px 0}.bt-results{margin-top:4px}.bt-result{display:flex;align-items:center;gap:10px;padding:5px 8px;font-size:12px;border-bottom:1px solid var(--border)}.bt-result.bad{color:#ff8080}.bt-result button{font-size:11px;padding:2px 8px}.bt-doc.bad{opacity:.5}.bt-cols{grid-template-columns:240px 1fr}.ocr-modal{width:min(560px,92vw)}.ocr-lede{font-size:12.5px;line-height:1.5;margin:0 0 12px}.ocr-cfg{border:1px solid var(--border);border-radius:8px;padding:10px;margin-bottom:10px}.ocr-busy{margin:10px 0}.ocr-bar{height:6px;border-radius:999px;background:var(--border);overflow:hidden;margin-bottom:6px}.ocr-fill{height:100%;background:var(--accent);transition:width .25s ease}.ocr-note{font-size:11px;margin-top:4px}.ocr-results{margin:8px 0}.opt-modal{width:min(620px,94vw)}.opt-lede{font-size:12.5px;line-height:1.5;margin:0 0 12px}.opt-facts{display:flex;gap:10px;margin-bottom:10px}.opt-fact{flex:1;border:1px solid var(--border);border-radius:8px;padding:8px 10px;display:flex;flex-direction:column;gap:2px}.opt-num{font-size:17px;font-weight:600}.opt-fact .muted{font-size:11px}.opt-list{border:1px solid var(--border);border-radius:8px;margin-bottom:10px;max-height:150px;overflow-y:auto}.opt-img{display:flex;align-items:center;gap:8px;padding:4px 8px;font-size:11.5px;border-bottom:1px solid var(--border)}.opt-img:last-child{border-bottom:0}.opt-img.hit{background:#a855f71a}.opt-img.skip{opacity:.55}.opt-dim{font-family:ui-monospace,monospace;width:78px}.opt-dpi{width:62px}.opt-filter{width:78px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.opt-size{width:60px;text-align:right;font-family:ui-monospace,monospace}.opt-verdict{flex:1;text-align:right;color:var(--muted)}.opt-img.hit .opt-verdict{color:#d9bcff}.opt-more{font-size:11px;padding:4px 8px}.opt-cfg{border:1px solid var(--border);border-radius:8px;padding:10px}.opt-result{margin-top:10px}.page-pending{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;pointer-events:none}.render-chip{display:inline-flex;align-items:center;gap:5px;font-size:11px;color:var(--muted)}.ocr-summary{font-size:12.5px;padding:7px 10px;border-radius:6px;background:#a855f71f;margin-bottom:8px}.ocr-pages{border:1px solid var(--border);border-radius:8px;max-height:180px;overflow-y:auto;margin-bottom:10px}.ocr-page{display:flex;align-items:center;gap:8px;padding:4px 8px;font-size:12px;border-bottom:1px solid var(--border);cursor:pointer}.ocr-page:last-child{border-bottom:0}.ocr-page.needy{background:#a855f714}.ocr-page.on .ocr-pnum{font-weight:600}.ocr-pnum{width:62px}.ocr-why{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ocr-cov{width:70px;text-align:right;font-size:11px}.ocr-warn{color:#ffb27a}.prot-modal{width:min(560px,94vw)}.prot-lede{font-size:12.5px;line-height:1.5;margin:0 0 12px}.prot-row{display:flex;flex-direction:column;gap:3px;margin-bottom:8px}.prot-row>span{font-size:12px;color:var(--muted)}.prot-row input{width:100%}.prot-perms{border:1px solid var(--border);border-radius:8px;padding:8px 10px;margin:4px 0 10px}.prot-perm{display:flex;align-items:center;gap:6px;font-size:12px;padding:2px 0;cursor:pointer}.prot-hint{font-size:11px}.prot-truth{font-size:11.5px;line-height:1.5;color:var(--muted);border-left:3px solid #ffa14a;background:#ffa14a14;padding:8px 10px;border-radius:0 6px 6px 0}.prot-truth strong{color:var(--text)}.prot-restricted{margin-top:5px;color:#ffb27a}.prot-done{font-size:12.5px;color:#7ddc6a;margin-top:10px}.a11y-modal{width:min(1000px,96vw)}.a11y-score{display:flex;gap:8px;font-size:11.5px;align-items:center}.a11y-ok{color:#7ddc6a}.a11y-fail{color:#ff8080}.a11y-warn{color:#ffb27a}.a11y-review{color:#8ab4ff}.a11y-busy{display:flex;align-items:center;gap:8px;font-size:12.5px;padding:8px 0}.a11y-applied{font-size:12.5px;color:#7ddc6a;padding:6px 0}.a11y-lede{font-size:12.5px;line-height:1.5;margin:0 0 10px}.a11y-body{flex:1;min-height:0;overflow-y:auto}.a11y-blocker{display:flex;align-items:center;gap:10px;font-size:12.5px;line-height:1.5;border-left:3px solid #ffa14a;background:#ffa14a1a;padding:8px 10px;border-radius:0 6px 6px 0;margin-bottom:10px}.a11y-blocker button{flex:none}.a11y-issues{display:flex;flex-direction:column;gap:6px}.a11y-issue{border:1px solid var(--border);border-left-width:3px;border-radius:0 8px 8px 0;padding:7px 10px}.a11y-issue.a11y-fail{border-left-color:#ff5a5a}.a11y-issue.a11y-warn{border-left-color:#ffa14a}.a11y-issue.a11y-review{border-left-color:#5aa9ff}.a11y-issue-head{display:flex;align-items:baseline;gap:8px;font-size:12.5px}.a11y-sev{font-size:10.5px;text-transform:uppercase;letter-spacing:.4px}.a11y-issue.a11y-fail .a11y-sev{color:#ff8080}.a11y-issue.a11y-warn .a11y-sev{color:#ffb27a}.a11y-issue.a11y-review .a11y-sev{color:#8ab4ff}.a11y-title{font-weight:600}.a11y-id{margin-left:auto;font-family:ui-monospace,monospace;font-size:10.5px}.a11y-detail{font-size:11.5px;color:var(--muted);line-height:1.5;margin-top:3px}.a11y-tools{display:flex;align-items:center;gap:10px;margin-bottom:8px;font-size:12px}.a11y-blocks{display:flex;flex-direction:column}.a11y-block{display:flex;align-items:center;gap:8px;padding:4px 6px;border-bottom:1px solid var(--border);font-size:12px}.a11y-block.unsure{background:#ffa14a14}.a11y-block.artifact{opacity:.55}.a11y-order{width:22px;text-align:right;color:var(--muted);font-size:11px}.a11y-block select{width:84px}.a11y-text{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.a11y-note{font-size:10.5px;white-space:nowrap}.a11y-move button{padding:0 5px;font-size:10px}.a11y-figures{display:flex;flex-direction:column;gap:8px}.a11y-figure{border:1px solid var(--border);border-radius:8px;padding:8px 10px}.a11y-fig-head{display:flex;align-items:center;gap:10px;font-size:12px;margin-bottom:5px}.a11y-dec{margin-left:auto;display:flex;align-items:center;gap:4px;font-size:11.5px;color:var(--muted)}.a11y-figure input{width:100%}.a11y-link{background:none;border:0;padding:0;cursor:pointer;text-decoration:underline;font-size:12px}.a11y-done{font-size:12.5px;line-height:1.5;color:#7ddc6a;border-left:3px solid #7ddc6a;background:#7ddc6a14;padding:8px 10px;border-radius:0 6px 6px 0}.a11y-groups{display:flex;flex-direction:column;gap:8px}.a11y-group{border:1px solid var(--border);border-radius:8px;overflow:hidden}.a11y-group-head{display:flex;align-items:center;gap:8px;padding:7px 10px;background:#ffa14a14;font-size:12.5px}.a11y-group-count{font-weight:700;font-size:15px;min-width:26px}.a11y-group-type{font-weight:600}.a11y-group-actions{margin-left:auto;display:flex;gap:6px}.a11y-group-actions button{font-size:11.5px}.a11y-group-items{display:flex;flex-direction:column}.a11y-group-item{display:flex;align-items:center;gap:8px;padding:3px 10px;font-size:11.5px;border-top:1px solid var(--border)}.a11y-group-item select{width:80px}.a11y-more{font-size:11px;padding:4px 10px;border-top:1px solid var(--border)}.a11y-pagebreak{position:sticky;top:0;z-index:1;display:flex;align-items:center;gap:8px;padding:4px 10px;margin-top:6px;font-size:11px;font-weight:600;color:var(--muted);background:var(--panel-2);border-top:1px solid var(--accent-2);border-bottom:1px solid var(--border)}.a11y-pagebreak .muted{font-weight:400;margin-left:auto}.a11y-inherited{font-size:12px;line-height:1.5;color:var(--muted);border-left:3px solid var(--accent);background:#a855f714;padding:7px 10px;border-radius:0 6px 6px 0;margin-bottom:8px}.a11y-imported{font-size:12.5px;line-height:1.5;border-left:3px solid #5aa9ff;background:#5aa9ff14;padding:8px 10px;border-radius:0 6px 6px 0;margin-bottom:8px}.a11y-smell{margin:6px 0 0;padding-left:18px;color:#ffb27a;font-size:12px}.a11y-smell li{margin-bottom:3px}.tbl{display:flex;flex-direction:column;gap:10px}.tbl-head{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.tbl-kind{font-size:11px;padding:1px 8px;border-radius:999px}.tbl-kind.simple{background:#7ddc6a26;color:#7ddc6a}.tbl-kind.complex{background:#ffa14a26;color:#ffb27a}.tbl-actions{margin-left:auto;display:flex;gap:6px}.tbl-actions button{font-size:11.5px}.tbl-grid-wrap{overflow:auto;max-height:320px;border:1px solid var(--border);border-radius:8px}.tbl-grid{border-collapse:collapse;width:100%;font-size:11.5px}.tbl-grid td{border:1px solid var(--border);padding:4px 6px;cursor:pointer;position:relative;max-width:180px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;vertical-align:top}.tbl-grid td.th{background:#a855f724;font-weight:600}.tbl-grid td.sel{outline:2px solid var(--accent);outline-offset:-2px}.tbl-grid td.unlinked{background:#ff5a5a1a}.tbl-text{display:block}.tbl-badge{position:absolute;top:1px;right:3px;font-size:8.5px;color:#d9bcff}.tbl-link{position:absolute;top:1px;right:3px;font-size:8.5px;color:#7ddc6a}.tbl-cell{display:flex;align-items:center;gap:12px;flex-wrap:wrap;border:1px solid var(--border);border-radius:8px;padding:8px 10px;font-size:12px}.tbl-cell.on{border-color:var(--accent);background:#a855f714}.tbl-cell.empty{border-style:dashed}.tbl-cell strong{color:var(--text)}.tbl-cell .sr-inline{margin-top:0}.tbl-labelled{font-size:11.5px}.tbl-hint{font-size:11px;width:100%}.tbl-issues{display:flex;flex-direction:column;gap:4px}.tbl-issue{display:flex;align-items:baseline;gap:8px;font-size:11.5px;line-height:1.5;padding:5px 8px;border-left:3px solid;border-radius:0 6px 6px 0}.tbl-issue.fail{border-color:#ff5a5a;background:#ff5a5a14}.tbl-issue.warn{border-color:#ffa14a;background:#ffa14a14}.tbl-issue.fail .a11y-sev{color:#ff8080}.tbl-issue.warn .a11y-sev{color:#ffb27a}.tbl-howto{font-size:11.5px;line-height:1.5;color:var(--muted);background:#a855f712;border-radius:6px;padding:6px 9px}.tbl-howto strong{color:var(--text)}.a11y-tableblock{border-top:1px solid var(--accent-2);padding:12px 0}.a11y-tableblock:first-of-type{border-top:0}.a11y-tablegroups{margin-bottom:12px}.appbar-signin{margin-left:auto;padding:.3rem .7rem;font-size:.82rem;color:var(--muted);text-decoration:none;border:1px solid transparent;border-radius:6px;white-space:nowrap}.appbar-signin:hover{color:var(--text);border-color:var(--border)}.admin{height:100vh;overflow-y:auto;min-height:100vh;background:var(--bg);color:var(--text);font:15px/1.6 ui-sans-serif,system-ui,-apple-system,Segoe UI,Roboto,sans-serif;padding:2rem 1.5rem 6rem}.admin h1{font-size:1.5rem;margin:0 0 .2rem}.admin h2{font-size:.95rem;margin:0 0 .75rem;font-weight:600}.admin .muted{color:var(--muted)}.admin code{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.86em;background:#7f7f7f1f;padding:.1em .35em;border-radius:4px}.admin-head{display:flex;justify-content:space-between;align-items:flex-start;gap:1rem;max-width:62rem;margin:0 auto 1.5rem}.admin-head p{margin:0;font-size:.88rem}.admin-headr{display:flex;gap:.5rem;align-items:center}.admin-link{color:var(--accent);text-decoration:none;font-size:.88rem}.admin-link:hover{text-decoration:underline}.admin-tabs{display:flex;gap:.25rem;max-width:62rem;margin:0 auto 1.25rem;border-bottom:1px solid var(--border)}.admin-tabs button{background:none;border:0;border-bottom:2px solid transparent;color:var(--muted);padding:.5rem .85rem;cursor:pointer;font-size:.9rem}.admin-tabs button.on{color:var(--text);border-bottom-color:var(--accent)}.admin section,.admin-card,.admin-table,.admin-stats,.admin-note{max-width:62rem;margin-left:auto;margin-right:auto}.admin-card{border:1px solid var(--border);border-radius:10px;padding:1rem 1.15rem;margin-bottom:1.25rem}.admin-row{display:flex;gap:.5rem;flex-wrap:wrap;align-items:center;margin-bottom:.5rem}.admin-row input{flex:1 1 16rem;min-width:0}.admin-row select{flex:0 0 auto}.admin-row+button{margin-top:.25rem}.admin input,.admin select{background:var(--panel-2);color:inherit;border:1px solid var(--border);border-radius:7px;padding:.5rem .65rem;font:inherit;font-size:.9rem}.admin button{background:var(--panel-2);color:inherit;border:1px solid var(--border);border-radius:7px;padding:.5rem .8rem;font:inherit;font-size:.88rem;cursor:pointer}.admin button:hover{border-color:var(--muted)}.admin button.primary{background:var(--accent);border-color:transparent;color:#fff;font-weight:600}.admin button.primary:hover:not(:disabled){background:var(--accent-2)}.admin button.primary:disabled{opacity:.5;cursor:not-allowed}.admin button.danger{color:#ff8080}.admin button.danger:hover{border-color:#ff8080}.admin-table{width:100%;border-collapse:collapse;font-size:.9rem;margin-bottom:1.5rem}.admin-table th{text-align:left;color:var(--muted);font-weight:600;font-size:.78rem;text-transform:uppercase;letter-spacing:.05em;padding:.5rem .6rem;border-bottom:1px solid var(--border)}.admin-table td{padding:.6rem;border-bottom:1px solid var(--border);vertical-align:middle}.admin-table tr.revoked{opacity:.45}.admin-table tr.pending{opacity:.7;font-style:italic}.admin-table .has-errors{color:#ffb86b}.tag{font-size:.68rem;text-transform:uppercase;letter-spacing:.05em;border:1px solid var(--border);border-radius:4px;padding:.05rem .3rem;margin-left:.4rem;color:var(--muted)}.role{font-size:.8rem}.role-owner{color:var(--accent);font-weight:600}.role-auditor{color:var(--muted)}.admin-once{margin-top:.9rem;padding:.8rem;border:1px dashed var(--accent);border-radius:8px;font-size:.86rem}.admin-once input{width:100%;margin:.5rem 0 .4rem;font-family:ui-monospace,monospace}.admin-error{color:#ff8080;font-size:.86rem}.admin-ok{color:#6ee7a8;font-size:.86rem}.admin-note{font-size:.82rem;margin-top:-.75rem;margin-bottom:1.25rem}.admin-stats{display:flex;gap:2.5rem;margin-bottom:1rem}.admin-stats div{display:flex;flex-direction:column}.admin-stats .stat{font-size:1.9rem;font-weight:600;line-height:1.2}.admin-stats .muted{font-size:.8rem}.spark{display:flex;align-items:flex-end;gap:2px;height:70px}.spark-bar{flex:1;height:100%;display:flex;align-items:flex-end}.spark-bar>div{width:100%;background:var(--accent);border-radius:2px 2px 0 0;min-height:2px;opacity:.8}.admin-signin{display:flex;align-items:center;justify-content:center;padding:3rem 1.5rem}.signin-card{width:100%;max-width:25rem;border:1px solid var(--border);border-radius:12px;padding:2rem}.signin-card.wide{max-width:30rem}.signin-card h1{margin:.75rem 0 .5rem}.signin-card form{display:flex;flex-direction:column;gap:.85rem;margin-top:1.25rem}.signin-card label{display:flex;flex-direction:column;gap:.3rem;font-size:.82rem;color:var(--muted)}.signin-card .hint{font-size:.75rem}.signin-card a{color:var(--accent)}.signin-foot{margin-top:1.75rem;padding-top:1rem;border-top:1px solid var(--border);font-size:.82rem;color:var(--muted)}.signin-err{font-size:.78rem;margin-top:.5rem}.admin .primary-link,.signin-card a.primary-link{display:inline-block;margin-top:1rem;background:var(--accent);color:#fff;font-weight:600;padding:.55rem .9rem;border-radius:7px;text-decoration:none}.admin .primary-link:hover{background:var(--accent-2)}.slug-field{display:flex;align-items:stretch}.slug-field input{flex:1;border-top-right-radius:0;border-bottom-right-radius:0}.slug-suffix{display:flex;align-items:center;padding:0 .6rem;border:1px solid var(--border);border-left:0;border-radius:0 7px 7px 0;color:var(--muted);font-size:.85rem;background:#7f7f7f14}.boot{min-height:100vh;background:var(--bg)}.dns-record{width:100%;border-collapse:collapse;margin:1rem 0;font-size:.85rem}.dns-record th{text-align:left;color:var(--muted);font-weight:600;padding:.5rem .6rem .5rem 0;vertical-align:top;width:4.5rem}.dns-record td{padding:.5rem 0;word-break:break-all}.dns-record code{background:var(--panel-2);border:1px solid var(--border);padding:.25rem .45rem;border-radius:5px}.copy{margin-left:.5rem;font-size:.72rem;padding:.15rem .4rem;background:none;border:1px solid var(--border);border-radius:4px;color:var(--muted);cursor:pointer}.copy:hover{color:var(--text);border-color:var(--muted)}.platform .admin-head,.platform .admin-tabs,.platform section,.platform .admin-card,.platform .admin-table,.platform .admin-stats,.platform .admin-note{max-width:78rem}.platform-stats{flex-wrap:wrap;gap:2rem 2.75rem}.platform-stats .stat{font-size:1.6rem}.platform-stats .stat.warn{color:#ffb86b}.admin .mono{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.78rem}.admin .small{font-size:.75rem}.admin .setting{padding:.9rem 1.15rem}.admin .setting p{margin:.4rem 0 0;font-size:.84rem}.admin .sr-inline{display:flex;align-items:center;gap:.5rem;font-size:.95rem;color:var(--text)}.qr{background:#fff;padding:.75rem;border-radius:8px;width:fit-content;margin:.5rem auto}.qr svg{display:block}.recovery{display:grid;grid-template-columns:1fr 1fr;gap:.4rem;margin:1rem 0}.recovery code{text-align:center;padding:.4rem;background:var(--panel-2);border:1px solid var(--border);border-radius:5px;letter-spacing:.05em}.appbar-signin.placeholder{pointer-events:none;min-width:4.5rem}.account{margin-left:auto;position:relative}.account-btn{display:flex;align-items:center;gap:.45rem;margin-left:0;background:none;cursor:pointer;font:inherit}.account-dot{width:1.35rem;height:1.35rem;border-radius:50%;background:var(--accent);color:#fff;font-size:.7rem;font-weight:700;line-height:1.35rem;text-align:center}.account-name{max-width:8rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.account-menu{position:absolute;right:0;top:calc(100% + .4rem);z-index:60;min-width:14rem;padding:.35rem;background:var(--panel-2);border:1px solid var(--border);border-radius:9px;box-shadow:0 10px 30px #00000073;display:flex;flex-direction:column}.account-head{padding:.55rem .6rem .6rem;border-bottom:1px solid var(--border);margin-bottom:.3rem;display:flex;flex-direction:column;gap:.1rem}.account-head strong{font-size:.84rem;overflow:hidden;text-overflow:ellipsis}.account-head .muted{font-size:.74rem}.account-menu a,.account-menu button{padding:.45rem .6rem;border:0;background:none;border-radius:6px;color:var(--text);font:inherit;font-size:.85rem;text-align:left;text-decoration:none;cursor:pointer}.account-menu a:hover,.account-menu button:hover{background:#7f7f7f24}.tel{position:absolute;top:0;right:0;bottom:0;left:0;z-index:24}.tel-para{position:absolute;padding:0;cursor:text;background:color-mix(in srgb,var(--accent) 8%,transparent);border:1px solid color-mix(in srgb,var(--accent) 30%,transparent);border-radius:2px}.tel-para:hover{background:color-mix(in srgb,var(--accent) 17%,transparent);border-color:var(--accent)}.tel-para.locked{background:repeating-linear-gradient(45deg,rgba(140,140,150,.09) 0 4px,transparent 4px 8px);border:1px dashed rgba(140,140,150,.3);cursor:not-allowed}.tel-inline{position:absolute;z-index:26}.tel-area{display:block;margin:0;padding:0 2px;background:#fff;color:#111;border:1px solid var(--accent);border-radius:2px;resize:none;overflow:hidden;outline:none;box-shadow:0 0 0 3px color-mix(in srgb,var(--accent) 22%,transparent)}.tel-bar{display:flex;align-items:center;justify-content:space-between;gap:.75rem;margin-top:.3rem;padding:.25rem .35rem;background:var(--panel-2);border:1px solid var(--border);border-radius:6px;font-size:.7rem;color:var(--muted)}.tel-meta{white-space:nowrap}.tel-actions{display:flex;gap:.3rem}.tel-actions button{background:var(--panel);color:var(--text);border:1px solid var(--border);border-radius:4px;padding:.2rem .5rem;font-size:.7rem;cursor:pointer}.tel-actions button.primary{background:var(--accent);border-color:transparent;color:#fff;font-weight:600}.tel-actions button.primary:disabled{opacity:.45;cursor:not-allowed}.tel-why{max-width:30rem;margin-top:.3rem;padding:.4rem .5rem;background:var(--panel-2);border:1px solid #ffb86b55;border-radius:6px;font-size:.72rem;line-height:1.45;color:#ffb86b}.tel-offer{margin-top:.45rem}.tel-offer button{font-size:.72rem;padding:.3rem .55rem;border-radius:5px;border:0;background:var(--accent);color:#fff;font-weight:600;cursor:pointer}.cer{min-height:100vh;background:var(--bg);color:var(--text);font:15px/1.6 ui-sans-serif,system-ui,sans-serif}.cer-center{display:flex;align-items:center;justify-content:center;padding:3rem 1.5rem}.cer-card{max-width:28rem;border:1px solid var(--border);border-radius:12px;padding:2rem;text-align:center}.cer-card h1{margin:.75rem 0 .5rem;font-size:1.4rem}.cer-done{font-size:2.6rem;color:var(--accent)}.cer-head{display:flex;justify-content:space-between;align-items:flex-start;gap:2rem;padding:1.25rem 1.5rem;border-bottom:1px solid var(--border)}.cer-head h1{margin:.2rem 0 0;font-size:1.3rem}.cer-msg{margin:.5rem 0 0;font-size:.9rem;color:var(--text)}.cer-who{display:flex;flex-direction:column;align-items:flex-end;font-size:.82rem;gap:.1rem}.cer-body{display:grid;grid-template-columns:1fr 22rem;gap:0;height:calc(100vh - 90px)}.cer-doc{background:#2a2a2e;overflow:hidden}.cer-doc iframe{width:100%;height:100%;border:0}.cer-side{border-left:1px solid var(--border);padding:1.25rem;overflow-y:auto}.cer-side section{margin-bottom:1.6rem}.cer-side h2{font-size:.78rem;text-transform:uppercase;letter-spacing:.07em;color:var(--muted);margin:0 0 .6rem}.cer-consent{display:flex;gap:.6rem;font-size:.85rem;line-height:1.5;cursor:pointer}.cer-consent input{margin-top:.25rem;flex-shrink:0}.cer-field{margin-bottom:.75rem;display:flex;flex-direction:column;gap:.3rem;font-size:.8rem}.cer-field em{color:var(--accent);font-style:normal}.cer-filled{display:flex;align-items:center;gap:.6rem;background:#fff;border-radius:6px;padding:.3rem .5rem}.cer-filled img{height:34px}.cer-filled span{color:#111;font-size:.9rem}.cer .primary{background:var(--accent);color:#fff;border:0;border-radius:7px;padding:.5rem .8rem;font:inherit;font-size:.85rem;font-weight:600;cursor:pointer}.cer .primary:disabled{opacity:.4;cursor:not-allowed}.cer .primary.big{width:100%;padding:.7rem;font-size:.95rem}.cer button:not(.primary):not(.cer-tab){background:var(--panel-2);color:var(--text);border:1px solid var(--border);border-radius:6px;padding:.35rem .6rem;font:inherit;font-size:.8rem;cursor:pointer}.cer-decline{width:100%;margin-top:.6rem;color:var(--muted)!important}.cer-hash{margin-top:1.5rem;padding-top:1rem;border-top:1px solid var(--border);font-size:.7rem;color:var(--muted);line-height:1.5}.cer-hash code{font-size:.95em;word-break:break-all}.cer .small{font-size:.78rem}.cer-modal{position:fixed;top:0;right:0;bottom:0;left:0;background:#000000b3;display:flex;align-items:center;justify-content:center;z-index:100}.cer-pad{background:var(--panel);border:1px solid var(--border);border-radius:12px;padding:1.25rem;width:min(620px,92vw)}.cer-pad h2{margin:0 0 .8rem;font-size:1rem}.cer-tabs{display:flex;gap:.3rem;margin-bottom:.7rem}.cer-tabs button.on{background:var(--accent);color:#fff;border-color:transparent}.cer-canvas{width:100%;height:180px;background:#fff;border-radius:8px;cursor:crosshair;touch-action:none}.cer-type{width:100%;background:#fff;color:#111;border:0;border-radius:8px;padding:1rem;font-size:1.4rem}.cer-type.script{font-family:Segoe Script,Brush Script MT,cursive;font-size:2rem}.cer-pad-actions{display:flex;gap:.4rem;margin-top:.8rem;align-items:center}.cer-pad-actions .spacer{flex:1}.env-state{font-size:.74rem;padding:.12rem .45rem;border-radius:4px;border:1px solid var(--border)}.env-state.s-completed,.env-state.s-signed{color:#6ee7a8;border-color:#6ee7a855}.env-state.s-sent,.env-state.s-delivered,.env-state.s-opened{color:var(--accent);border-color:color-mix(in srgb,var(--accent) 40%,transparent)}.env-state.s-declined,.env-state.s-voided,.env-state.s-expired{color:#ff8080;border-color:#ff808055}.admin-link.back{background:none;border:0;padding:0;cursor:pointer;font-size:.82rem}.admin-card.chain.ok{border-color:#6ee7a855}.admin-card.chain.ok h2{color:#6ee7a8}.admin-card.chain.broken{border-color:#ff6b6b;background:color-mix(in srgb,#ff6b6b 10%,transparent)}.admin-card.chain.broken h2{color:#ff8080}.chain-hash{display:block;margin-top:.5rem;word-break:break-all;font-size:.75rem}.ev-title{max-width:62rem;margin:1.75rem auto .75rem;font-size:.78rem;text-transform:uppercase;letter-spacing:.07em;color:var(--muted)}.ev{max-width:62rem;margin:0 auto}.ev-row{display:flex;gap:.8rem;padding:.6rem .7rem;border-left:2px solid var(--border)}.ev-row.k-signed{border-left-color:#6ee7a8}.ev-row.k-declined{border-left-color:#ff8080}.ev-row.k-consented,.ev-row.k-completed{border-left-color:var(--accent)}.ev-seq{font-family:ui-monospace,monospace;font-size:.75rem;color:var(--muted);padding-top:.1rem}.ev-main strong{font-size:.88rem}.ev .tiny{font-size:.68rem;opacity:.8;word-break:break-all}.fp-bar{display:flex;gap:.5rem;align-items:center;flex-wrap:wrap;margin-bottom:.5rem}.fp-kinds{display:flex;gap:.2rem}.fp-kinds button{padding:.3rem .55rem;font-size:.78rem}.fp-kinds button.on{background:var(--accent);color:#fff;border-color:transparent}.fp-hint{margin:0 0 .75rem}.fp-pages{max-height:60vh;overflow-y:auto;display:flex;flex-direction:column;gap:1rem;padding:.5rem;background:var(--bg);border:1px solid var(--border);border-radius:8px}.fp-page{position:relative;align-self:center}.fp-num{position:absolute;left:-1.6rem;top:0;font-size:.7rem;color:var(--muted)}.fp-canvas{position:relative;line-height:0;cursor:crosshair;touch-action:none}.fp-canvas canvas{display:block;max-width:100%;height:auto}.fp-drag{position:absolute;border:1.5px dashed var(--accent);background:color-mix(in srgb,var(--accent) 14%,transparent);pointer-events:none}.fp-field{position:absolute;border:1.5px solid;border-radius:3px;cursor:move;min-width:10px;min-height:14px}.fp-field.on{box-shadow:0 0 0 2px #fff,0 0 0 4px currentColor;z-index:3}.fp-tag{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;font-size:.6rem;font-weight:600;letter-spacing:.01em;color:#fff;white-space:nowrap;overflow:hidden;border-radius:2px;pointer-events:none}.fp-panel{margin-top:.6rem;padding:.6rem;border:1px solid var(--accent);border-radius:8px}.cer-auto{display:flex;flex-direction:column;gap:.1rem;background:var(--panel-2);border:1px solid var(--border);border-radius:6px;padding:.4rem .55rem;font-size:.85rem}.cer-auto .muted{font-size:.7rem}.cer-body{display:grid;grid-template-columns:1fr 22rem;height:calc(100vh - 90px)}.cer-doc{background:#33333a;overflow-y:auto;padding:1.25rem;display:flex;flex-direction:column;align-items:center;gap:1rem}.cer-page{position:relative;line-height:0;box-shadow:0 4px 20px #0006}.cer-page canvas{display:block;max-width:100%;height:auto}.cer-tab{position:absolute;display:flex;align-items:center;justify-content:center;padding:0;margin:0;border-radius:3px;overflow:hidden;min-height:16px;background:transparent;border:1px solid transparent;color:#111;-webkit-appearance:none;-moz-appearance:none;appearance:none;box-shadow:none}.cer-tab.todo{background:#fde047;border:1.5px solid #ca8a04;color:#422006;font-size:.62rem;font-weight:700;cursor:pointer;animation:cer-pulse 2.2s ease-in-out infinite}.cer-tab.todo:hover{background:#facc15;animation:none}@keyframes cer-pulse{0%,to{box-shadow:0 0 #fde0478c}50%{box-shadow:0 0 0 5px #fde04700}}.cer-tab.done{background:transparent;border:1px solid transparent;cursor:pointer}.cer-tab.done:hover{border-color:#6ee7a8;background:#6ee7a81a}.cer-tab.done img{width:100%;height:100%;object-fit:contain}.cer-val{font-size:.72rem;color:#111;font-weight:600}.cer-tab.check{border-radius:2px}.cer-tab.check.todo{background:#fde04759}.cer-tab.check.done{background:#fff;border:1.5px solid #16a34a}.cer-check{color:#16a34a;font-weight:800;font-size:.9em;line-height:1}.cer-tab.auto{background:#ffffffe6;border:1px dashed #94a3b8;cursor:default}.cer-tab.auto span{font-size:.7rem;color:#111}.cer-tab-label{padding:0 .2rem}.crash{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:2rem;background:var(--bg);color:var(--text);font:14px/1.6 ui-sans-serif,system-ui,sans-serif}.crash-card{max-width:44rem;width:100%;border:1px solid #ff6b6b55;border-radius:12px;padding:1.5rem}.crash-card h1{margin:0 0 .5rem;font-size:1.2rem;color:#ff8080}.crash-msg{margin:1rem 0 .5rem;padding:.7rem;background:var(--panel-2);border-radius:7px;color:#ff8080;white-space:pre-wrap;word-break:break-word;font-size:.85rem}.crash-stack{margin:0 0 .5rem;padding:.7rem;background:var(--panel-2);border-radius:7px;color:var(--muted);font-size:.72rem;overflow-x:auto}.crash-actions{display:flex;gap:.5rem;margin-top:1rem}.crash-actions button{background:var(--panel-2);color:var(--text);border:1px solid var(--border);border-radius:7px;padding:.5rem .8rem;font:inherit;font-size:.85rem;cursor:pointer}.crash-actions button.primary{background:var(--accent);border-color:transparent;color:#fff;font-weight:600}.mail-row{display:flex;flex-direction:column;gap:.5rem;padding:.9rem 0;border-top:1px solid var(--border)}.mail-who{display:flex;align-items:center;gap:.75rem;flex-wrap:wrap}.mail-who input{flex:1;min-width:18rem;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.75rem}.mail-acts{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap}.mail-preview{width:100%;height:30rem;border:1px solid var(--border);border-radius:10px;background:#f4f4f6;margin-top:1rem}.env-actions{display:flex;align-items:center;gap:.6rem;flex-wrap:wrap;margin-top:1rem}.env-actions button.danger{background:#e0564f1f;border:1px solid rgba(224,86,79,.55);color:#ffb3ae}.env-actions button.danger:hover{background:#e0564f;border-color:#e0564f;color:#fff}.modal.ask{width:min(460px,92vw)}.modal.ask.danger{border-color:#e0564f80}.ask-body{font-size:13.5px;line-height:1.6;color:var(--muted);margin-top:8px}.ask-body p{margin:0 0 8px}.ask-body p:last-child{margin-bottom:0}.ask-body strong{color:var(--text)}.ask-field{display:block;margin-top:14px}.ask-field .modal-label{display:block;margin-bottom:0}.ask-field code{background:var(--panel-2);border:1px solid var(--border);border-radius:4px;padding:0 5px;color:var(--text)}.modal-actions button.danger{background:#e0564f24;border:1px solid rgba(224,86,79,.55);color:#ffb3ae}.modal-actions button.danger:hover:not(:disabled){background:#e0564f;border-color:#e0564f;color:#fff}.modal-actions button:disabled{opacity:.45;cursor:not-allowed}.doctools .form-toggle.active{background:var(--accent);border-color:var(--accent);color:#fff}.doctools .icon-only{width:30px;padding:0;display:inline-flex;align-items:center;justify-content:center}.topbar .icon-only,.doctools .icon-only{width:32px;padding:0;display:inline-flex;align-items:center;justify-content:center}.icon-only .btn-ico{margin-right:0;vertical-align:middle}.icon-only .ico-char{font-size:17px;line-height:1;font-weight:600}.doctools .mode-switch.active{background:var(--accent);border-color:var(--accent);color:#fff}.mode-dot{display:inline-block;width:6px;height:6px;border-radius:50%;background:var(--accent);margin-left:6px;vertical-align:middle}.sheet-chip{font-size:12px;color:var(--muted);padding-left:4px;white-space:nowrap}.sheet-chip strong{color:var(--text);font-weight:600}.ask-check{display:flex;align-items:center;gap:8px;margin-top:14px;font-size:13px;color:var(--text)}.ask-check input{margin:0}.measure-layer{position:absolute;top:0;right:0;bottom:0;left:0;z-index:6}.measure-layer.armed{cursor:crosshair}.measure-layer.idle{pointer-events:none}.measure-layer .m-done line{stroke:#6c5ce7;stroke-width:1.5}.measure-layer .m-done circle{fill:#6c5ce7}.measure-layer text{font-size:calc(12px * var(--label-scale, 1.4))}.measure-layer .m-done text,.measure-layer .m-live text{fill:#1a1a1f;font-weight:600;font-family:ui-sans-serif,system-ui,sans-serif;paint-order:stroke;stroke:#fff;stroke-width:calc(3px * var(--label-scale, 1.4));stroke-linejoin:round}.measure-layer .m-live line{stroke:#6c5ce7;stroke-width:1.5;stroke-dasharray:5 3}.measure-layer .m-cursor rect{fill:none;stroke:#16a34a;stroke-width:2}.measure-layer .m-cursor circle{fill:none;stroke:#16a34a;stroke-width:2}.measure-layer .m-cursor.free line{stroke:#6c5ce7;stroke-width:1}.viewer.hand{cursor:grab}.viewer.grabbing{cursor:grabbing;-webkit-user-select:none;user-select:none}.page-base{position:absolute;left:0;top:0;z-index:0}.page-canvas{position:relative;z-index:1}.overlay-layer{position:absolute;top:0;right:0;bottom:0;left:0;z-index:5;pointer-events:none}.overlay-layer .ov-removed{stroke:#e0564f;stroke-width:2;opacity:.95}.overlay-layer .ov-added{stroke:#16a34a;stroke-width:2;opacity:.95}.overlay-layer .ov-region{pointer-events:auto;cursor:pointer}.overlay-layer .ov-region rect{fill:#6c5ce70f;stroke:#6c5ce7;stroke-width:1;stroke-dasharray:4 3}.overlay-layer .ov-region.on rect{fill:#6c5ce724;stroke-width:2;stroke-dasharray:none}.overlay-layer .ov-region text{fill:#6c5ce7;font:700 12px ui-sans-serif,system-ui,sans-serif;paint-order:stroke;stroke:#fff;stroke-width:3px}.ov-chip{display:inline-flex;align-items:center;gap:6px;font-size:12px;color:var(--muted);white-space:nowrap}.ov-chip strong{color:var(--text)}.measure-layer .m-area path{fill:#6c5ce72e;stroke:#6c5ce7;stroke-width:1.5}.measure-layer .m-area .m-hole{fill:none;stroke:#e0564f;stroke-width:1.5;stroke-dasharray:5 3}.measure-layer .m-area text{fill:#1a1a1f;font-weight:700;font-family:ui-sans-serif,system-ui,sans-serif;text-anchor:middle;paint-order:stroke;stroke:#fff;stroke-width:calc(3.5px * var(--label-scale, 1.4));stroke-linejoin:round}.measure-layer .m-area .m-sub{font-weight:500;font-size:calc(10px * var(--label-scale, 1.4));fill:#4a4a55}.measure-layer .m-live-area polygon{fill:#6c5ce724;stroke:#6c5ce7;stroke-width:1.5;stroke-dasharray:5 3}.measure-layer .m-live-area.cut polygon{fill:#e0564f29;stroke:#e0564f}.measure-layer .m-live-area circle{fill:#6c5ce7}.measure-layer .m-live-area circle.first{fill:#fff;stroke:#6c5ce7;stroke-width:2}.measure-layer .m-live-area text{fill:#1a1a1f;font-weight:700;font-family:ui-sans-serif,system-ui,sans-serif;paint-order:stroke;stroke:#fff;stroke-width:calc(3.5px * var(--label-scale, 1.4));stroke-linejoin:round}.takeoff{flex:0 0 22rem;min-width:18rem;display:flex;flex-direction:column;background:var(--panel);border-left:1px solid var(--border);min-height:0}.takeoff-head{display:flex;align-items:center;justify-content:space-between;padding:10px 12px;border-bottom:1px solid var(--border)}.takeoff-head .icon-only{font-size:18px}.takeoff-scale{padding:6px 12px 0;font-size:12px}.takeoff-size{display:flex;align-items:center;gap:8px;padding:8px 12px;font-size:12px}.takeoff-size input{flex:1}.takeoff-list{flex:1;min-height:0;overflow-y:auto;padding:4px 6px}.takeoff-empty{padding:1.5rem 1rem;font-size:13px;line-height:1.6}.takeoff-row{display:flex;align-items:center;gap:2px;border-radius:8px}.takeoff-row:hover{background:var(--panel-2)}.takeoff-jump{flex:1;min-width:0;display:flex;align-items:center;gap:8px;background:none;border:0;padding:8px;text-align:left;cursor:pointer}.takeoff-dot{flex:0 0 auto;width:10px;height:10px;border-radius:3px}.takeoff-dot.area{background:#6c5ce780;border:1.5px solid #6c5ce7}.takeoff-dot.distance{background:#6c5ce7;border-radius:999px}.takeoff-name{min-width:0;display:flex;flex-direction:column;gap:1px}.takeoff-name input{width:100%;font-size:13px}.takeoff-title{font-size:13px;font-weight:600;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.takeoff-value{font-size:11.5px;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.takeoff-row .icon-only{opacity:0;font-size:13px;padding:4px}.takeoff-row:hover .icon-only{opacity:.7}.takeoff-row .icon-only:hover{opacity:1}.takeoff-foot{border-top:1px solid var(--border);padding:10px 12px}.takeoff-totals{display:flex;flex-direction:column;gap:3px;margin-bottom:10px}.takeoff-totals>div{display:flex;align-items:baseline;justify-content:space-between;font-size:13px}.takeoff-totals strong{font-size:15px}.takeoff-actions{display:flex;gap:8px}.takeoff-actions button{flex:1}.takeoff-actions .danger{background:#e0564f1f;border:1px solid rgba(224,86,79,.5);color:#ffb3ae}.takeoff-actions .danger:hover{background:#e0564f;border-color:#e0564f;color:#fff}.takeoff-rail{flex:0 0 auto;align-self:stretch;writing-mode:vertical-rl;transform:rotate(180deg);background:var(--panel);border:0;border-left:1px solid var(--border);color:var(--muted);padding:12px 6px;cursor:pointer;font-size:12px;letter-spacing:.04em}.takeoff-rail:hover{color:var(--text);background:var(--panel-2)}.measure-layer .m-count circle{stroke:#fff;stroke-width:1.5}.takeoff-dot.count{border-radius:999px}.takeoff-dot.live{box-shadow:0 0 0 2px #ffffffe6,0 0 0 4px currentColor}.takeoff-head>div:last-child{display:flex;gap:2px}.takeoff-rowtop{display:flex;align-items:center;gap:2px}.takeoff-fields{display:grid;grid-template-columns:1fr 1fr;gap:4px 8px;padding:2px 8px 8px 24px}.takeoff-field{display:flex;flex-direction:column;gap:1px;min-width:0}.takeoff-field>span{font-size:10.5px}.takeoff-field input,.takeoff-field select{font-size:12px;padding:3px 5px;min-width:0;width:100%}.takeoff-computed{font-size:12px;font-weight:600;color:var(--accent);padding:3px 0}.takeoff-cols{border-bottom:1px solid var(--border);padding:8px 12px;background:var(--panel-2)}.takeoff-cols-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:6px}.takeoff-col-row{display:flex;align-items:center;gap:8px;padding:3px 0;font-size:12px}.takeoff-col-name{font-weight:600}.takeoff-col-type{flex:1;font-size:11px}.takeoff-col-add{display:flex;flex-wrap:wrap;gap:5px;margin-top:6px}.takeoff-col-add input,.takeoff-col-add select{font-size:12px;padding:4px 6px;flex:1;min-width:6rem}.takeoff-col-add .takeoff-col-unit{flex:0 0 4rem}.takeoff-col-add button{flex:0 0 auto}.takeoff-cols-hint{font-size:11px;line-height:1.5;margin-top:6px}.takeoff-cols-hint code{background:var(--panel);border:1px solid var(--border);border-radius:3px;padding:0 3px}.takeoff-grip,.tk-grip{cursor:grab;color:var(--muted);font-size:12px;-webkit-user-select:none;user-select:none;padding:0 2px}.takeoff-row.dragging,.tk-grid tr.dragging{opacity:.45}.takeoff-row.dropon,.tk-grid tr.dropon td{box-shadow:inset 0 2px 0 var(--accent)}.takeoff-fieldsum{padding:2px 8px 8px 30px;font-size:11.5px;color:var(--text);cursor:pointer;line-height:1.5}.takeoff-fieldsum:hover{color:var(--accent)}.tk-table{width:min(1100px,96vw);height:min(86vh,820px);display:flex;flex-direction:column;background:var(--panel);border:1px solid var(--border);border-radius:12px;box-shadow:0 12px 48px #0009;overflow:hidden}.tk-table-head{display:flex;align-items:center;justify-content:space-between;padding:12px 16px;border-bottom:1px solid var(--border)}.tk-table-actions{display:flex;align-items:center;gap:8px}.tk-cols{padding:10px 16px;background:var(--panel-2);border-bottom:1px solid var(--border)}.tk-cols-existing{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:8px}.tk-chip{display:inline-flex;align-items:center;gap:4px;background:var(--panel);border:1px solid var(--border);border-radius:999px;padding:2px 6px 2px 10px;font-size:12px}.tk-chip-x{border:0;background:none;color:var(--muted);cursor:pointer;font-size:11px}.tk-chip-x:hover{color:#e0564f}.tk-col-add{display:flex;flex-wrap:wrap;align-items:center;gap:6px}.tk-col-add input,.tk-col-add select{font-size:13px;padding:5px 7px}.tk-col-add .tk-wide{flex:1;min-width:12rem}.tk-col-add .tk-unit{width:7rem}.tk-hint{flex-basis:100%;font-size:11px}.tk-hint code,.tk-col-add code{background:var(--panel);border:1px solid var(--border);border-radius:3px;padding:0 3px}.tk-scroll{flex:1;min-height:0;overflow:auto}.tk-grid{border-collapse:separate;border-spacing:0;width:100%;font-size:13px}.tk-grid th,.tk-grid td{padding:6px 10px;border-bottom:1px solid var(--border);text-align:left;white-space:nowrap}.tk-grid thead th{position:sticky;top:0;background:var(--panel-2);z-index:2;font-weight:600}.tk-grid .tk-sticky{position:sticky;left:0;background:var(--panel);z-index:1;width:16rem;min-width:16rem;max-width:16rem;box-sizing:border-box}.tk-grid thead .tk-sticky{z-index:3;background:var(--panel-2)}.tk-namecell{display:flex;align-items:center;gap:4px;min-width:0}.tk-grid tbody tr:hover td{background:color-mix(in srgb,var(--accent) 6%,transparent)}.tk-grid tbody tr:hover .tk-sticky{background:color-mix(in srgb,var(--accent) 8%,var(--panel))}.tk-name{border:0;background:transparent;color:var(--text);font-weight:600;flex:1;min-width:0;padding:2px 4px}.tk-name:focus{background:var(--panel-2);border-radius:4px}.tk-jump{border:0;background:none;color:var(--accent);cursor:pointer;flex:0 0 auto}.tk-grid .tk-grip{flex:0 0 auto}.tk-qty{font-variant-numeric:tabular-nums}.tk-grid td input,.tk-grid td select{width:100%;min-width:5rem;font-size:13px;padding:4px 6px;background:var(--panel-2);border:1px solid var(--border);border-radius:5px;color:var(--text)}.tk-computed{font-weight:600;color:var(--accent);font-variant-numeric:tabular-nums}.tk-fx{color:var(--accent);font-style:italic}.tk-grid tfoot td{position:sticky;bottom:0;background:var(--panel-2);border-top:2px solid var(--border);font-variant-numeric:tabular-nums}.tk-del{opacity:.6}.tk-del:hover{opacity:1}
