:root{--bg-window: #ffffff;--bg-sidebar: #f5f5f7;--bg-canvas: #e9e9ed;--bg-input: #ffffff;--bg-toolbar: rgba(245, 245, 247, .72);--bg-cluster: rgba(0, 0, 0, .06);--bg-cluster-hover: rgba(0, 0, 0, .1);--bg-cluster-active: rgba(0, 0, 0, .14);--fg-primary: #1d1d1f;--fg-secondary: rgba(60, 60, 67, .62);--fg-tertiary: rgba(60, 60, 67, .3);--fg-on-accent: #ffffff;--border-thin: rgba(0, 0, 0, .06);--border-strong: rgba(0, 0, 0, .12);--border-input: rgba(0, 0, 0, .13);--accent: #2680eb;--accent-hover: #1f74dc;--accent-bg: rgba(38, 128, 235, .12);--accent-bg-strong: rgba(38, 128, 235, .2);--accent-text: #0a66c2;--danger: #d93025;--danger-bg: rgba(217, 48, 37, .1);--shadow-sm: 0 1px 2px rgba(0, 0, 0, .05);--shadow-md: 0 4px 16px rgba(0, 0, 0, .08);--shadow-lg: 0 24px 60px rgba(0, 0, 0, .2), 0 4px 16px rgba(0, 0, 0, .08);--shadow-pop: 0 0 0 .5px rgba(0, 0, 0, .04), 0 1px 0 rgba(0, 0, 0, .02), 0 1px 3px rgba(0, 0, 0, .1);--shadow-primary: 0 1px 2px rgba(38, 128, 235, .25), 0 0 0 .5px rgba(38, 128, 235, .7);--r-sm: 6px;--r-md: 10px;--r-lg: 14px;--r-xl: 18px;--r-pill: 9999px;--h-navbar: 60px;--h-status: 28px}*{box-sizing:border-box}html,body,#root{margin:0;padding:0;height:100%;overflow:hidden}body{font-family:-apple-system,BlinkMacSystemFont,SF Pro Text,Segoe UI,Helvetica Neue,Arial,sans-serif;font-size:13px;color:var(--fg-primary);background:var(--bg-canvas);user-select:none;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;letter-spacing:-.005em}.mono{font-family:ui-monospace,SFMono-Regular,SF Mono,Menlo,Consolas,monospace}.app{position:relative;height:100vh;overflow:hidden}.workspace{position:absolute;inset:0;display:grid;grid-template-columns:1fr 290px;min-height:0}.navbar{position:absolute;top:0;left:0;right:0;height:var(--h-navbar);z-index:10;pointer-events:none}.navbar-bg{position:absolute;top:0;left:0;right:0;height:calc(var(--h-navbar) + 14px);background:var(--bg-toolbar);backdrop-filter:blur(36px) saturate(200%);-webkit-backdrop-filter:blur(36px) saturate(200%);-webkit-mask-image:linear-gradient(to bottom,rgba(0,0,0,1) 0%,rgba(0,0,0,1) calc(100% - 22px),rgba(0,0,0,0) 100%);mask-image:linear-gradient(to bottom,#000 0% calc(100% - 22px),#0000);pointer-events:none}.navbar-content{position:relative;z-index:1;height:100%;display:grid;grid-template-columns:1fr auto 1fr;align-items:center;padding:0 14px;gap:16px;pointer-events:auto}.nav-left,.nav-center,.nav-right{display:flex;align-items:center;gap:10px;min-width:0}.nav-left{justify-content:flex-start}.nav-center{justify-content:center}.nav-right{justify-content:flex-end}.file-pill{display:flex;flex-direction:column;justify-content:center;background:var(--bg-cluster);border-radius:var(--r-md);padding:6px 14px;min-height:40px;max-width:280px;min-width:0;box-shadow:inset 0 0 0 .5px #00000008}.file-pill.empty{color:var(--fg-secondary);font-style:normal;font-weight:500;font-size:12.5px;align-items:center;flex-direction:row}.file-name{font-size:12.5px;font-weight:600;color:var(--fg-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;letter-spacing:-.01em;line-height:1.2}.page-select{background:transparent;border:none;color:var(--fg-secondary);font-size:11px;font-weight:500;font-family:inherit;appearance:none;-webkit-appearance:none;padding:1px 14px 1px 0;margin-top:1px;cursor:pointer;background-image:linear-gradient(45deg,transparent 50%,rgba(60,60,67,.55) 50%),linear-gradient(135deg,rgba(60,60,67,.55) 50%,transparent 50%);background-position:calc(100% - 4px) 50%,calc(100% + -0px) 50%;background-size:4px 4px,4px 4px;background-repeat:no-repeat;width:max-content;outline:none}.page-select:hover{color:var(--fg-primary)}.page-select:focus{color:var(--accent)}.cluster{display:inline-flex;align-items:center;background:var(--bg-cluster);border-radius:20px;padding:4px;gap:2px;box-shadow:inset 0 0 0 .5px #00000008}.cluster>.btn,.cluster>.icobtn,.cluster>.lang-select{background:transparent;border:none;box-shadow:none;height:32px}.cluster>.btn{border-radius:16px;padding:0 12px}.cluster>.icobtn{width:32px;height:32px;border-radius:50%}.cluster>.lang-select{border-radius:16px}.cluster>.btn:hover:not(:disabled),.cluster>.icobtn:hover:not(:disabled){background:#0000000f}.cluster>.btn:active:not(:disabled),.cluster>.icobtn:active:not(:disabled){background:#0000001a}.btn{background:var(--bg-cluster);color:var(--fg-primary);border:none;height:32px;padding:0 14px;border-radius:16px;font-size:13px;font-weight:500;font-family:inherit;cursor:pointer;display:inline-flex;align-items:center;gap:7px;white-space:nowrap;box-shadow:inset 0 0 0 .5px #00000008;transition:background-color .12s ease,color .12s ease}.btn:hover:not(:disabled){background:var(--bg-cluster-hover)}.btn:active:not(:disabled){background:var(--bg-cluster-active)}.btn:disabled{opacity:.4;cursor:not-allowed}.btn.primary{background:var(--accent);color:var(--fg-on-accent);border-radius:var(--r-pill);padding:0 16px;font-weight:600;box-shadow:var(--shadow-primary)}.btn.primary:hover:not(:disabled){background:var(--accent-hover)}.btn.primary:active:not(:disabled){background:var(--accent-hover);filter:brightness(.93)}.btn.primary:disabled{background:var(--bg-cluster);color:var(--fg-tertiary);box-shadow:inset 0 0 0 .5px #0000000f}.btn.ghost{background:var(--bg-window);box-shadow:inset 0 0 0 .5px var(--border-strong),0 1px 2px #0000000a}.btn.ghost:hover:not(:disabled){background:var(--bg-cluster)}.btn.ghost.install{background:var(--accent-bg);color:var(--accent-text);box-shadow:inset 0 0 0 .5px #2680eb66,0 1px 2px #2680eb1a}.btn.ghost.install:hover:not(:disabled){background:var(--accent-bg-strong)}.btn.ghost.danger{color:var(--danger);box-shadow:inset 0 0 0 .5px #d930254d}.btn.ghost.danger:hover:not(:disabled){background:var(--danger-bg)}.btn.full{width:100%;justify-content:center}.zoomctl{display:inline-flex;align-items:center;gap:0;background:var(--bg-cluster);border-radius:20px;padding:4px;box-shadow:inset 0 0 0 .5px #00000008}.zoomctl>.icobtn{width:32px;height:32px;border-radius:50%;background:transparent;box-shadow:none}.zoomctl>.icobtn:hover:not(:disabled){background:#0000000f}.zoomctl>.icobtn:disabled{opacity:.4;cursor:not-allowed}.zoomval{min-width:56px;text-align:center;color:var(--fg-secondary);font-size:12px;font-weight:600;font-variant-numeric:tabular-nums;padding:0 4px;letter-spacing:-.01em}.icobtn{width:32px;height:32px;background:var(--bg-cluster);color:var(--fg-secondary);border:none;border-radius:50%;cursor:pointer;padding:0;font-family:inherit;display:inline-flex;align-items:center;justify-content:center;box-shadow:inset 0 0 0 .5px #00000008;transition:background-color .12s ease,color .12s ease}.icobtn:hover{background:var(--bg-cluster-hover);color:var(--fg-primary)}.icobtn:active{background:var(--bg-cluster-active)}.panel{background:var(--bg-sidebar);border-left:1px solid var(--border-thin);overflow-y:auto;overflow-x:hidden;scrollbar-width:thin;scrollbar-color:rgba(0,0,0,.18) transparent;padding-top:var(--h-navbar)}.panel::-webkit-scrollbar{width:10px}.panel::-webkit-scrollbar-thumb{background:#0000002e;border-radius:5px;border:3px solid transparent;background-clip:padding-box}.panel::-webkit-scrollbar-thumb:hover{background:#00000047;background-clip:padding-box}.panel::-webkit-scrollbar-track{background:transparent}.panel-header{font-size:13px;font-weight:600;color:var(--fg-primary);padding:14px 16px 12px;border-bottom:1px solid var(--border-thin);background:var(--bg-sidebar);position:sticky;top:var(--h-navbar);z-index:1;letter-spacing:-.01em}.section{border-bottom:1px solid var(--border-thin);padding:12px 16px 16px}.section:last-child{border-bottom:none}.section[open]>summary:before{transform:rotate(90deg)}.section>summary{cursor:pointer;list-style:none;display:flex;align-items:center;gap:8px;padding:4px 0 10px;user-select:none}.section>summary::-webkit-details-marker{display:none}.section>summary:before{content:"";width:10px;height:10px;background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 10 10' fill='none' stroke='rgba(60,60,67,0.55)' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'><path d='M3.5 2.5L7 5L3.5 7.5'/></svg>");background-repeat:no-repeat;background-position:center;background-size:10px 10px;transition:transform .18s ease;display:inline-block;flex:0 0 auto}.section-title{font-size:13px;font-weight:600;color:var(--fg-primary);letter-spacing:-.01em}summary.section-title{padding-left:0}.row{display:block;padding:6px 0}.row.two{display:grid;grid-template-columns:1fr 1fr;gap:8px}.row.btnrow{padding-top:12px}.row.check{padding:6px 0}.row label{display:block;color:var(--fg-secondary);font-size:11.5px;font-weight:500;margin-bottom:5px;letter-spacing:-.005em}.ctl{width:100%;background:var(--bg-input);color:var(--fg-primary);border:none;border-radius:7px;padding:7px 9px;font-size:12.5px;font-family:inherit;outline:none;box-shadow:0 0 0 .5px var(--border-input),0 1px 2px #00000008;transition:box-shadow .12s ease}.ctl:hover:not(:disabled):not(:focus){box-shadow:0 0 0 .5px var(--border-strong),0 1px 2px #0000000a}.ctl:focus{box-shadow:0 0 0 1.5px var(--accent),0 0 0 4px var(--accent-bg)}.ctl:disabled{opacity:.45;cursor:not-allowed}select.ctl{appearance:none;background-image:linear-gradient(45deg,transparent 50%,rgba(60,60,67,.55) 50%),linear-gradient(135deg,rgba(60,60,67,.55) 50%,transparent 50%);background-position:calc(100% - 14px) 50%,calc(100% - 10px) 50%;background-size:4px 4px,4px 4px;background-repeat:no-repeat;padding-right:26px;cursor:pointer}.numwrap{position:relative}.numwrap .unit{position:absolute;right:9px;top:50%;transform:translateY(-50%);color:var(--fg-tertiary);font-size:11px;pointer-events:none;font-weight:500}.numwrap .ctl.num{padding-right:26px;text-align:right;font-variant-numeric:tabular-nums}input[type=number]::-webkit-inner-spin-button,input[type=number]::-webkit-outer-spin-button{opacity:0;-webkit-appearance:none;margin:0}.value{padding:5px 0;color:var(--fg-primary);font-size:12.5px}.hint{color:var(--fg-secondary);line-height:1.5;font-size:12.5px}.chk{display:flex;align-items:center;gap:8px;cursor:pointer;color:var(--fg-primary)!important;text-transform:none!important;letter-spacing:0!important;font-size:12.5px!important;font-weight:400!important}.chk input[type=checkbox]{appearance:none;-webkit-appearance:none;width:15px;height:15px;background:var(--bg-input);border-radius:4px;display:inline-block;position:relative;cursor:pointer;flex:0 0 auto;box-shadow:0 0 0 .5px var(--border-input),0 1px 2px #00000008;transition:background-color .12s ease,box-shadow .12s ease}.chk input[type=checkbox]:hover{box-shadow:0 0 0 .5px var(--border-strong)}.chk input[type=checkbox]:checked{background:var(--accent);box-shadow:0 0 0 .5px var(--accent-hover),0 1px 2px #2680eb33}.chk input[type=checkbox]:checked:after{content:"";position:absolute;left:4.5px;top:1.5px;width:4.5px;height:8.5px;border:solid #fff;border-width:0 1.7px 1.7px 0;transform:rotate(45deg)}.seg{display:inline-flex;background:var(--bg-cluster);border-radius:9px;padding:2px;gap:0;box-shadow:inset 0 0 0 .5px #00000008}.seg-btn{background:transparent;color:var(--fg-secondary);border:none;padding:5px 14px;font-size:12.5px;font-weight:500;cursor:pointer;font-family:inherit;border-radius:7px;transition:background-color .12s ease,color .12s ease,box-shadow .18s ease}.seg-btn:hover:not(.active){color:var(--fg-primary)}.seg-btn.active{background:var(--bg-window);color:var(--fg-primary);font-weight:600;box-shadow:var(--shadow-pop)}.seg.small .seg-btn{padding:4px 12px;font-size:12px}.dropzone{border:1.5px dashed var(--border-strong);border-radius:var(--r-lg);padding:36px 28px;text-align:center;cursor:pointer;background:var(--bg-window);color:var(--fg-secondary);transition:all .15s ease;width:100%;max-width:380px}.dropzone:hover,.dropzone.drag{border-color:var(--accent);color:var(--accent-text);background:var(--accent-bg)}.dropzone .dz-icon{width:56px;height:56px;margin:0 auto 14px;border-radius:50%;background:var(--bg-cluster);color:var(--fg-secondary);display:flex;align-items:center;justify-content:center;transition:background-color .15s ease,color .15s ease}.dropzone:hover .dz-icon,.dropzone.drag .dz-icon{background:#ffffffd9;color:var(--accent)}.dropzone .dz-title{font-size:14px;font-weight:600;color:var(--fg-primary);letter-spacing:-.01em}.dropzone:hover .dz-title,.dropzone.drag .dz-title{color:var(--accent-text)}.dropzone .dz-sub{font-size:12.5px;color:var(--fg-secondary);margin-top:5px}.dropzone a{color:var(--accent);text-decoration:none;font-weight:500}.dropzone a:hover{text-decoration:underline}.margins-grid{display:grid;grid-template-columns:1fr auto 1fr;grid-template-rows:auto auto auto;grid-template-areas:".  top    ." "left center right" ".  bottom .";gap:8px 10px;margin-top:8px;align-items:center}.mg-cell label{text-align:center}.mg-top{grid-area:top}.mg-bottom{grid-area:bottom}.mg-left{grid-area:left}.mg-right{grid-area:right}.mg-center{grid-area:center;display:flex;align-items:center;justify-content:center;padding:0 4px}.paper-icon{width:30px;height:40px;background:var(--bg-input);border:none;border-radius:3px;outline:4px solid var(--bg-sidebar);outline-offset:0;position:relative;box-shadow:0 0 0 .5px var(--border-strong),0 1px 2px #0000000f}.paper-icon:before{content:"";position:absolute;inset:5px;background:var(--accent-bg);border:1px dashed var(--accent);border-radius:1px}.canvas-area{display:grid;grid-template-rows:1fr var(--h-status);background:var(--bg-canvas);min-width:0;position:relative}.canvas-host{position:relative;background:var(--bg-canvas);overflow:hidden;cursor:default;touch-action:none}.canvas-host.has-content{cursor:grab}.canvas-host.has-content:active{cursor:grabbing}.canvas-host canvas{display:block;width:100%;height:100%}.canvas-empty{position:absolute;inset:0;padding-top:var(--h-navbar);display:flex;align-items:center;justify-content:center}.canvas-empty-card{display:flex;flex-direction:column;align-items:center;gap:18px;width:100%;max-width:420px;padding:24px}.canvas-empty-tip{color:var(--fg-secondary);font-size:12px;line-height:1.55;text-align:center;max-width:360px}.status-bar{background:var(--bg-toolbar);backdrop-filter:blur(30px) saturate(180%);-webkit-backdrop-filter:blur(30px) saturate(180%);border-top:1px solid var(--border-thin);display:flex;align-items:center;gap:10px;padding:0 14px;color:var(--fg-secondary);font-size:11.5px;font-weight:500;font-variant-numeric:tabular-nums;letter-spacing:-.005em}.status-bar .dot{color:var(--fg-tertiary);font-size:14px;line-height:0}.modal-backdrop{position:fixed;inset:0;background:#0000002e;backdrop-filter:blur(12px) saturate(160%);-webkit-backdrop-filter:blur(12px) saturate(160%);display:flex;align-items:center;justify-content:center;z-index:100;animation:modal-fade .16s ease-out}@keyframes modal-fade{0%{opacity:0}to{opacity:1}}.modal-panel{background:var(--bg-window);border-radius:var(--r-lg);width:90%;max-width:520px;max-height:85vh;overflow:hidden;box-shadow:var(--shadow-lg);display:flex;flex-direction:column;animation:modal-pop .2s cubic-bezier(.16,1,.3,1)}@keyframes modal-pop{0%{opacity:0;transform:translateY(12px) scale(.97)}to{opacity:1;transform:translateY(0) scale(1)}}.modal-header{display:flex;align-items:center;justify-content:space-between;padding:18px 20px 14px;border-bottom:1px solid var(--border-thin)}.modal-title{margin:0;font-size:16px;font-weight:600;color:var(--fg-primary);letter-spacing:-.015em}.modal-close.icobtn{width:28px;height:28px;background:var(--bg-cluster);color:var(--fg-secondary);box-shadow:none}.modal-close.icobtn:hover{background:var(--bg-cluster-hover);color:var(--fg-primary)}.modal-body{padding:8px 20px 20px;overflow-y:auto}.settings-row{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;padding:16px 0;border-bottom:1px solid var(--border-thin)}.settings-row:last-child{border-bottom:none}.settings-row.settings-tip{display:block}.settings-row-text{flex:1;min-width:0}.settings-row-title{font-size:13px;font-weight:600;color:var(--fg-primary);letter-spacing:-.01em;margin-bottom:3px}.settings-row-hint{font-size:12px;color:var(--fg-secondary);line-height:1.45}.overlay{position:fixed;inset:0;background:#ffffff8c;backdrop-filter:blur(20px) saturate(180%);-webkit-backdrop-filter:blur(20px) saturate(180%);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:16px;z-index:50}.spinner{width:36px;height:36px;border:3px solid var(--border-thin);border-top-color:var(--accent);border-radius:50%;animation:spin .8s linear infinite}.busy-text{color:var(--fg-primary);font-size:13px;font-weight:500}@keyframes spin{to{transform:rotate(360deg)}}
