:root,:root[data-theme=dark]{--bg: #0a0f1c;--bg-grid: rgba(148, 163, 184, .1);--bg-glow-1: rgba(168, 85, 247, .3);--bg-glow-2: rgba(192, 132, 252, .16);--bg-elev-1: #111827;--bg-elev-2: #1e293b;--bg-elev-3: #334155;--border: #2a3454;--border-soft: #1f2841;--text: #f1f5f9;--text-dim: #94a3b8;--text-faint: #64748b;--accent: #a855f7;--accent-2: #c084fc;--accent-deep: #7c3aed;--accent-soft: rgba(168, 85, 247, .16);--accent-glow: rgba(168, 85, 247, .45);--danger: #ef4444;--danger-soft: rgba(239, 68, 68, .14);--shadow-sm: 0 1px 3px rgba(0,0,0,.4);--shadow-md: 0 4px 12px rgba(0,0,0,.45);--shadow-lg: 0 12px 32px rgba(0,0,0,.5);color-scheme:dark}:root[data-theme=light]{--bg: #f5f3ff;--bg-grid: rgba(15, 23, 42, .05);--bg-glow-1: rgba(168, 85, 247, .16);--bg-glow-2: rgba(192, 132, 252, .1);--bg-elev-1: #ffffff;--bg-elev-2: #f5f3ff;--bg-elev-3: #e9d5ff;--border: #d8b4fe;--border-soft: #ede9fe;--text: #1c1917;--text-dim: #57534e;--text-faint: #78716c;--accent: #7c3aed;--accent-2: #a855f7;--accent-deep: #5b21b6;--accent-soft: rgba(124, 58, 237, .1);--accent-glow: rgba(124, 58, 237, .25);--danger: #b91c1c;--danger-soft: rgba(185, 28, 28, .1);--shadow-sm: 0 1px 2px rgba(28,25,23,.06);--shadow-md: 0 4px 10px rgba(28,25,23,.08);--shadow-lg: 0 12px 30px rgba(28,25,23,.12);color-scheme:light}*{box-sizing:border-box}html,body,#root{height:100%;margin:0;padding:0;overscroll-behavior:none}body{font-family:Outfit,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;color:var(--text);background:var(--bg);background-image:radial-gradient(ellipse 80% 60% at 50% 0%,var(--bg-glow-1) 0%,transparent 60%),radial-gradient(ellipse 60% 50% at 90% 100%,var(--bg-glow-2) 0%,transparent 55%),linear-gradient(var(--bg-grid) 1px,transparent 1px),linear-gradient(90deg,var(--bg-grid) 1px,transparent 1px);background-size:100% 100%,100% 100%,40px 40px,40px 40px;background-attachment:fixed;-webkit-font-smoothing:antialiased}button{font-family:inherit;font-size:inherit;cursor:pointer;border:none;background:transparent;color:inherit;padding:0}button:disabled{cursor:not-allowed;opacity:.4}.app{display:flex;flex-direction:row;height:100dvh;max-width:none}.sidebar{display:flex;flex-direction:column;width:240px;flex-shrink:0;background:var(--bg-elev-1);border-right:1px solid var(--border);padding:20px 12px 16px}.sidebar .logo-wrap{padding:4px 8px}.sidebar .footer{flex-shrink:0;padding-top:14px}@media (max-width: 880px){.sidebar{display:none}}.app-header{display:flex;align-items:center;justify-content:space-between;padding:max(10px,env(safe-area-inset-top)) 16px 10px;background:var(--bg-elev-1);border-bottom:1px solid var(--border);flex-shrink:0;gap:12px}.app-header-left{display:flex;align-items:center;gap:10px;min-width:0}.app-header-toggle{display:inline-flex;align-items:center;justify-content:center;width:36px;height:36px;border-radius:8px;color:var(--text-dim);flex-shrink:0;transition:all .12s}.app-header-toggle:hover{background:var(--accent-soft);color:var(--accent)}.app-header-toggle:active{transform:scale(.95)}.pdf-name{font-size:13px;color:var(--text-dim);font-weight:500;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:45%}.app-main{display:flex;flex-direction:row;flex:1;min-height:0;overflow:hidden}.tabs-bar{display:flex;align-items:flex-end;gap:2px;padding:8px 12px 0;background:var(--bg-elev-1);border-bottom:1px solid var(--border);overflow-x:auto;scrollbar-width:thin;flex-shrink:0}.tab-item{display:inline-flex;align-items:center;gap:7px;padding:7px 8px 7px 12px;background:var(--bg-elev-2);color:var(--text-dim);border-radius:8px 8px 0 0;border:1px solid var(--border-soft);border-bottom:0;font-size:12.5px;font-weight:600;cursor:pointer;flex-shrink:0;max-width:230px;transition:all .12s;-webkit-user-select:none;user-select:none}.tab-item:hover:not(.active){background:var(--accent-soft);color:var(--accent);border-color:var(--accent-soft)}.tab-item.active{background:var(--accent);color:#fff;border-color:var(--accent);box-shadow:0 -2px 8px var(--accent-glow)}.tab-icon{display:inline-flex;align-items:center;opacity:.85}.tab-name{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:170px}.tab-close{display:inline-flex;align-items:center;justify-content:center;width:20px;height:20px;border-radius:4px;color:inherit;opacity:.6;transition:all .12s}.tab-close:hover{opacity:1;background:#ffffff2e}.tab-item:not(.active) .tab-close:hover{background:var(--danger-soft);color:var(--danger)}.tab-add{display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;margin-left:4px;background:transparent;color:var(--text-dim);border-radius:6px;flex-shrink:0;transition:all .12s}.tab-add:hover{background:var(--accent-soft);color:var(--accent)}.toolbar{display:flex;align-items:center;gap:4px;padding:8px 14px;background:var(--bg-elev-1);border-bottom:1px solid var(--border-soft);flex-shrink:0;overflow-x:auto;scrollbar-width:thin}.toolbar.sidebar{flex-direction:column;align-items:center;width:68px;min-width:68px;height:100%;padding:10px 4px;gap:2px;border-bottom:none;border-right:1px solid var(--border-soft);overflow-y:auto;overflow-x:hidden}.toolbar.sidebar .tb-section{flex-direction:column;width:100%;align-items:center;gap:3px}.toolbar.sidebar .tb-divider{width:38px;height:1px;margin:6px 0}.toolbar.sidebar .tb-btn{width:44px;padding:0;justify-content:center;gap:0}.toolbar.sidebar .tb-btn span{display:none}.toolbar.sidebar .tb-color{width:24px;height:24px;margin:1px}.toolbar.sidebar .tb-size{width:32px;height:32px}.toolbar.sidebar .tb-zoom-label{font-size:11px;min-width:auto;padding:2px 0}.toolbar.sidebar .tb-page{flex-direction:column;align-items:center}.toolbar.sidebar .tb-page-input{width:40px}.toolbar.sidebar .tb-page-total{font-size:11px;padding:0}.tb-section{display:inline-flex;align-items:center;gap:4px;flex-shrink:0}.tb-divider{width:1px;height:22px;background:var(--border);margin:0 6px;flex-shrink:0}.tb-btn{display:inline-flex;align-items:center;gap:5px;height:36px;padding:0 10px;border-radius:8px;background:transparent;color:var(--text);font-size:13px;font-weight:600;transition:all .12s}.tb-btn:hover:not(:disabled){background:var(--accent-soft);color:var(--accent)}.tb-btn.active,.tb-btn.primary{background:var(--accent);color:#fff}.tb-btn.primary:hover:not(:disabled){background:var(--accent-2);color:#fff}.tb-btn.tb-danger:hover:not(:disabled){background:var(--danger-soft);color:var(--danger)}.tb-btn.tb-icon{padding:0;width:36px;justify-content:center;gap:0}.tb-btn.tb-icon.active.tb-danger{background:var(--danger);color:#fff}.tb-page{gap:2px}.tb-page-input{width:44px;height:30px;text-align:center;border:1px solid var(--border);background:var(--bg-elev-2);color:var(--text);border-radius:6px;font-size:12px;font-weight:700;font-variant-numeric:tabular-nums;font-family:inherit;outline:none;-moz-appearance:textfield;-webkit-appearance:textfield;appearance:textfield}.tb-page-input::-webkit-outer-spin-button,.tb-page-input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.tb-page-input:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}.tb-page-total{font-size:12px;font-weight:700;color:var(--text-dim);font-variant-numeric:tabular-nums;padding:0 2px}.tb-color{width:22px;height:22px;border-radius:50%;border:2px solid var(--border);transition:all .12s}.tb-color.active{border-color:var(--accent);transform:scale(1.15);box-shadow:0 0 8px var(--accent-glow)}.tb-size{width:30px;height:30px;border-radius:50%;display:grid;place-items:center;color:var(--text-dim);background:transparent}.tb-size.active{background:var(--accent-soft);color:var(--accent)}.tb-zoom-label{font-size:12px;font-weight:700;color:var(--text-dim);font-variant-numeric:tabular-nums;padding:0 4px;min-width:42px;text-align:center}.pages-container{flex:1;min-height:0;overflow-y:auto;padding:20px;display:flex;flex-direction:column;align-items:center;gap:18px}.pages-container.full-width{padding:20px 8px}.pages-container.full-width .page-block{max-width:100%}.page-block{background:var(--bg-elev-1);border-radius:4px;box-shadow:var(--shadow-lg);position:relative}.page-label{position:absolute;top:-22px;left:0;font-size:11px;color:var(--text-dim);font-weight:600;letter-spacing:.06em;text-transform:uppercase}.page-canvas-wrap{position:relative;background:#fff;isolation:isolate}.pdf-layer{display:block;position:relative;z-index:1}.hl-layer{position:absolute;top:0;left:0;z-index:2;width:100%;height:100%;pointer-events:none;mix-blend-mode:multiply}.color-layer{position:absolute;top:0;left:0;z-index:2;width:100%;height:100%;pointer-events:none;mix-blend-mode:lighten}.page-canvas-wrap.pdf-dark{background:#0f0f0f}.page-canvas-wrap.pdf-dark .pdf-layer{filter:invert(1) hue-rotate(180deg)}.page-canvas-wrap.pdf-dark .hl-layer{mix-blend-mode:screen}.page-canvas-wrap.pdf-dark .color-layer{mix-blend-mode:darken}.text-layer{position:absolute;top:0;left:0;z-index:2;overflow:hidden;line-height:1;user-select:none;-webkit-user-select:none;pointer-events:none}.text-layer.selectable{user-select:text;-webkit-user-select:text;pointer-events:auto;cursor:text}.text-layer span{color:transparent;background:transparent;position:absolute;white-space:pre;transform-origin:0% 0%}.text-layer.selectable span{cursor:text}@media (pointer: fine){.text-layer.selectable-direct{touch-action:none}}.text-layer ::selection{background:#a855f773}.text-layer span.search-match{background-color:#fcd34d8c;border-radius:2px;box-shadow:0 0 0 1px #f59e0b80}.text-layer .endOfContent{display:block;position:absolute;top:100%;right:0;bottom:0;left:0;z-index:-1;cursor:default;user-select:none;-webkit-user-select:none}.text-layer .endOfContent.active{top:0}.draw-layer{position:absolute;top:0;left:0;z-index:3;width:100%;height:100%}.cursor-pen{cursor:crosshair}.cursor-default{cursor:default}.cursor-text{cursor:text}.cursor-cross{cursor:crosshair}.cursor-grab{cursor:grab}.cursor-grab:active{cursor:grabbing}.tool-props-panel{display:flex;flex-direction:column;width:208px;flex-shrink:0;padding:14px 14px 16px;background:var(--bg-elev-1);border-right:1px solid var(--border-soft);overflow-y:auto;gap:16px}.tool-props-header{display:flex;align-items:center;justify-content:space-between;padding-bottom:8px;border-bottom:1px solid var(--border-soft)}.tool-props-title{font-size:13px;font-weight:700;color:var(--text);letter-spacing:-.005em}.tool-props-close{display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px;border-radius:6px;color:var(--text-dim);transition:all .12s}.tool-props-close:hover{background:var(--danger-soft);color:var(--danger)}.tool-props-section{display:flex;flex-direction:column;gap:8px}.tool-props-label{display:flex;align-items:center;justify-content:space-between;font-size:11px;font-weight:600;letter-spacing:.04em;text-transform:uppercase;color:var(--text-dim)}.tool-props-value{font-size:11px;font-weight:700;color:var(--accent);text-transform:none;letter-spacing:0;font-variant-numeric:tabular-nums}.tool-props-colors{display:grid;grid-template-columns:repeat(6,1fr);gap:6px}.tool-props-color{width:26px;height:26px;border-radius:50%;border:2px solid var(--border);cursor:pointer;transition:all .12s}.tool-props-color:hover{transform:scale(1.1)}.tool-props-color.active{border-color:var(--accent);transform:scale(1.15);box-shadow:0 0 0 2px var(--bg-elev-1),0 0 0 4px var(--accent)}.tool-props-slider{width:100%;accent-color:var(--accent)}.tool-props-preview{display:flex;align-items:center;justify-content:center;height:30px}.sel-popover{position:absolute;z-index:6;display:inline-flex;align-items:center;gap:4px;padding:5px;background:var(--bg-elev-1);border:1px solid var(--border);border-radius:10px;box-shadow:var(--shadow-lg);-webkit-user-select:none;user-select:none}.sel-popover-btn{display:inline-flex;align-items:center;gap:6px;padding:7px 11px;border-radius:7px;font-size:12.5px;font-weight:600;color:var(--text);background:transparent;transition:all .12s}.sel-popover-btn:hover{background:var(--accent-soft);color:var(--accent)}.sel-popover-btn.highlight:hover{color:#ca8a04;background:#facc152e}.sel-popover-btn.underline:hover{color:var(--accent)}.sel-popover-btn.strike:hover{color:var(--danger);background:var(--danger-soft)}.sel-popover-btn.textcolor:hover{color:#1d4ed8;background:#1d4ed824}.text-hit-zone{position:absolute;z-index:4;cursor:move;background:transparent;border-radius:4px;transition:background .12s,outline .12s;touch-action:none}.text-hit-zone:hover{background:#a855f71a;outline:1px dashed var(--accent)}.image-hit-zone{position:absolute;z-index:4;cursor:move;border:1.5px dashed var(--accent);border-radius:4px;background:transparent;touch-action:none}.image-del{position:absolute;top:-11px;right:-11px;width:22px;height:22px;border-radius:50%;border:none;background:var(--danger, #ef4444);color:#fff;font-size:15px;line-height:1;font-weight:700;cursor:pointer;display:flex;align-items:center;justify-content:center;box-shadow:0 1px 4px #00000059;touch-action:none}.image-resize{position:absolute;right:-8px;bottom:-8px;width:16px;height:16px;border-radius:3px;background:var(--accent, #a855f7);border:2px solid #fff;cursor:nwse-resize;box-shadow:0 1px 4px #00000059;touch-action:none}.cursor-eraser{cursor:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='%23ef4444' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 20H7l-3-3 9-9 7 7-3 3-2-2-3 3'/%3E%3C/svg%3E") 12 12,auto}.text-input-floating{position:absolute;z-index:4;min-width:120px;min-height:28px;padding:4px 6px;border:1.5px dashed var(--accent);background:#ffffffeb;color:#000;font-family:Outfit,Arial,sans-serif;font-size:18px;line-height:1.2;outline:none;resize:both;overflow:auto;border-radius:4px;box-shadow:0 4px 12px #a855f740}.pdf-calc{position:fixed;z-index:19000;width:248px;background:var(--bg-elev-1);border:1px solid var(--border);border-radius:14px;box-shadow:var(--shadow-lg);overflow:hidden;-webkit-user-select:none;user-select:none;outline:none;font-family:Outfit,-apple-system,sans-serif}.pdf-calc:focus-visible{box-shadow:var(--shadow-lg),0 0 0 2px var(--accent)}.pdf-calc-header{display:flex;align-items:center;justify-content:space-between;padding:8px 10px;background:var(--bg-elev-2);border-bottom:1px solid var(--border-soft);cursor:grab;touch-action:none}.pdf-calc-header:active{cursor:grabbing}.pdf-calc-title{display:inline-flex;align-items:center;gap:6px;font-size:12px;font-weight:700;color:var(--text)}.pdf-calc-close{display:inline-flex;align-items:center;justify-content:center;width:24px;height:24px;border-radius:6px;border:none;background:transparent;color:var(--text-dim);cursor:pointer;transition:all .12s}.pdf-calc-close:hover{background:var(--danger-soft);color:var(--danger)}.pdf-calc-display{padding:10px 14px 8px;text-align:right;background:var(--bg-elev-1)}.pdf-calc-expr{min-height:16px;font-size:12px;color:var(--text-faint);font-variant-numeric:tabular-nums;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.pdf-calc-main{font-size:30px;font-weight:700;color:var(--text);font-variant-numeric:tabular-nums;line-height:1.15;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.pdf-calc-keys{display:grid;grid-template-columns:repeat(4,1fr);gap:6px;padding:10px;touch-action:none}.pdf-calc-key{height:44px;border:1px solid var(--border-soft);border-radius:9px;background:var(--bg-elev-2);color:var(--text);font-family:inherit;font-size:17px;font-weight:600;cursor:pointer;transition:all .1s;touch-action:none;user-select:none;-webkit-user-select:none}.pdf-calc-key:hover{background:var(--bg-elev-3);border-color:var(--accent)}.pdf-calc-key:active{transform:scale(.95)}.pdf-calc-key.fn{background:var(--bg-elev-1);color:var(--text-dim);font-size:15px}.pdf-calc-key.danger{color:var(--danger)}.pdf-calc-key.op{background:var(--accent-soft);color:var(--accent);font-weight:700}.pdf-calc-key.op:hover{background:var(--accent);color:#fff}.pdf-calc-key.eq{background:var(--accent);color:#fff;font-weight:800}.pdf-calc-key.eq:hover{background:var(--accent-2)}.search-bar{display:flex;align-items:center;gap:6px;padding:8px 12px;background:var(--bg-elev-1);border-bottom:1px solid var(--border);box-shadow:var(--shadow-md);flex-shrink:0;color:var(--text-dim)}.search-bar input{flex:1;min-width:0;height:32px;padding:0 10px;background:var(--bg-elev-2);border:1px solid var(--border);border-radius:8px;color:var(--text);font-family:inherit;font-size:13px;outline:none;transition:all .15s}.search-bar input:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}.search-bar .search-count{font-size:12px;font-weight:600;color:var(--text-dim);font-variant-numeric:tabular-nums;min-width:90px;text-align:right}.search-bar .sb-btn{display:inline-flex;align-items:center;justify-content:center;width:30px;height:30px;border-radius:6px;color:var(--text);transition:all .12s}.search-bar .sb-btn:hover:not(:disabled){background:var(--accent-soft);color:var(--accent)}.search-bar .sb-btn:disabled{opacity:.35}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#0000008c;backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px);z-index:20000;display:flex;align-items:center;justify-content:center;animation:fadeIn .12s ease-out}.modal-confirm{background:var(--bg-elev-1);border:1px solid var(--border);border-radius:14px;padding:22px 24px;width:min(440px,92vw);box-shadow:var(--shadow-lg)}.modal-confirm h3{margin:0 0 10px;font-size:17px;font-weight:700;color:var(--text)}.modal-confirm p{margin:0 0 22px;color:var(--text-dim);font-size:13.5px;line-height:1.5}.modal-confirm strong{color:var(--text);font-weight:600}.modal-actions{display:flex;justify-content:flex-end;gap:8px;flex-wrap:wrap}.modal-actions button{padding:9px 16px;border-radius:8px;font-size:13px;font-weight:600;font-family:inherit;cursor:pointer;border:none;transition:all .12s}.btn-ghost{background:transparent;color:var(--text-dim)}.btn-ghost:hover{background:var(--bg-elev-2);color:var(--text)}.btn-danger{background:var(--danger-soft);color:var(--danger)}.btn-danger:hover{background:var(--danger);color:#fff}.btn-primary{background:var(--accent);color:#fff}.btn-primary:hover{background:var(--accent-2)}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.empty-state{display:flex;flex-direction:column;align-items:center;gap:14px;padding:60px 24px;text-align:center;color:var(--text-dim)}.empty-state h2{margin:14px 0 4px;font-size:22px;font-weight:700;color:var(--text);letter-spacing:-.01em}.empty-state p{margin:0;max-width:420px;line-height:1.5}.empty-state .hint{font-size:12.5px;opacity:.7;margin-top:8px}.btn-open-big{margin-top:12px;padding:14px 32px;background:var(--accent);color:#fff;border-radius:12px;font-size:15px;font-weight:700;box-shadow:0 4px 16px var(--accent-glow);transition:all .15s}.btn-open-big:hover{background:var(--accent-2);transform:translateY(-1px)}
