*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility}body{margin:0;min-height:100vh}button{font-family:inherit;cursor:pointer}input,select,textarea{font-family:inherit}img,svg{display:block}.app{--bg-body: linear-gradient(135deg, #f8f9fa 0%, #eef2f7 100%);--bg-surface: rgba(255,255,255,.85);--bg-surface-solid: #fff;--bg-canvas: rgba(255,255,255,.5);--text-primary: #1f2937;--text-secondary: #6b7280;--text-muted: #9ca3af;--border-color: #e5e7eb;--border-light: #f3f4f6;--accent: #4169e1;--accent-bg: rgba(65,105,225,.1);--logo-shadow: rgba(65,105,225,.4)}.app.dark{--bg-body: linear-gradient(135deg, #0a0a14 0%, #0f1020 100%);--bg-surface: rgba(18,18,35,.92);--bg-surface-solid: #141428;--bg-canvas: rgba(15,15,30,.6);--text-primary: #e0e0ef;--text-secondary: #8888a8;--text-muted: #55556a;--border-color: #2a2a4a;--border-light: #1e1e38;--accent: #6c8cff;--accent-bg: rgba(108,140,255,.15);--logo-shadow: rgba(108,140,255,.5)}body{margin:0;font-family:Inter,system-ui,-apple-system,sans-serif;min-height:100vh;overflow:hidden}.app{background:var(--bg-body);color:var(--text-primary);min-height:100vh}#root{min-height:100vh}.app-header{height:80px;background:var(--bg-surface);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-bottom:1px solid var(--border-color);position:fixed;top:0;width:100%;z-index:50;display:flex;align-items:center;justify-content:space-between;padding:0 32px;gap:12px}.app-brand{display:flex;align-items:center;gap:16px;flex-shrink:0}.app-logo{width:40px;height:40px;border-radius:10px;object-fit:contain}.app-title-wrapper{display:flex;flex-direction:column}.app-title{font-family:Outfit,Inter,sans-serif;font-size:20px;font-weight:700;color:var(--text-primary);line-height:1;margin:0}.status-badge{display:flex;align-items:center;gap:8px;margin-top:4px}.status-dot{width:10px;height:10px;border-radius:50%;background:#10b981;box-shadow:0 0 10px #10b981;animation:pulse 2s infinite}[data-theme=dark] .status-dot{background:#34d399;box-shadow:0 0 14px #34d399,0 0 28px #34d39966}.status-text{font-size:10px;font-weight:600;color:#6b7280;text-transform:uppercase;letter-spacing:.1em}@keyframes pulse{0%{transform:scale(.95);opacity:.8}50%{transform:scale(1.05);opacity:1}to{transform:scale(.95);opacity:.8}}.mode-toggle{display:flex;border-radius:8px;overflow:hidden;border:1px solid var(--border-color);margin-left:20px}.mode-btn{font-size:13px;font-weight:600;padding:6px 16px;border:none;cursor:pointer;transition:all .2s;background:transparent;color:var(--text-secondary)}.mode-btn:hover{background:var(--accent-bg)}.mode-btn.active{background:#111;color:#fff}.app.dark .mode-btn.active{background:#fff;color:#111}.privacy-banner{text-align:center;padding:6px 16px;background:#37418214;border:1px solid rgba(55,65,130,.25);border-radius:8px;white-space:nowrap;pointer-events:none;flex-shrink:1;min-width:0;overflow:hidden;margin-right:auto;transform:translate(100px)}.privacy-banner strong{display:block;font-size:12px;font-weight:700;color:#3b4fc4;font-family:Pretendard Variable,Pretendard,sans-serif}.privacy-banner span{font-size:10px;color:#555;line-height:1.4;font-family:Pretendard Variable,Pretendard,sans-serif}[data-theme=dark] .privacy-banner,.app.dark .privacy-banner{background:#6c8cff1f;border-color:#6c8cff4d}[data-theme=dark] .privacy-banner strong,.app.dark .privacy-banner strong{color:#7dabff}[data-theme=dark] .privacy-banner span,.app.dark .privacy-banner span{color:#b0b0c4}@media(max-width:1200px){.privacy-banner{transform:translate(60px)}}@media(max-width:900px){.privacy-banner{transform:translate(30px)}}@media(max-width:700px){.privacy-banner{display:none}}.header-right{display:flex;align-items:center;gap:20px}.auth-area{display:flex;align-items:center}.auth-signin-btn{display:inline-flex;align-items:center;font-size:13px;font-weight:600;color:#4b5563;background:#fff;border:1px solid #d1d5db;border-radius:8px;padding:6px 14px;cursor:pointer;transition:all .15s;white-space:nowrap}.auth-signin-btn:hover{background:#f3f4f6;border-color:#9ca3af}.user-info{display:flex;align-items:center;gap:8px;white-space:nowrap}.user-avatar{width:28px;height:28px;border-radius:50%;border:2px solid #e5e7eb}.user-name{font-size:13px;font-weight:500;color:#374151;max-width:120px;overflow:hidden;text-overflow:ellipsis}.auth-signout-btn{font-size:11px;color:#9ca3af;background:none;border:none;cursor:pointer;padding:2px 4px;text-decoration:underline}.auth-signout-btn:hover{color:#ef4444}.convert-area{display:flex;align-items:center;gap:16px}.convert-progress{display:flex;align-items:center;gap:10px;min-width:200px}.convert-progress-bar-bg{width:140px;height:8px;background:#e5e7eb;border-radius:999px;overflow:hidden}.convert-progress-bar-fill{height:100%;background:#4169e1;border-radius:999px;transition:width .3s ease}.convert-progress-bar-fill.paused{background:#f59e0b}.convert-progress-text{font-size:12px;color:#6b7280;white-space:nowrap;font-weight:500}.convert-ctrl-btn{width:32px;height:32px;border:1px solid #e5e7eb;border-radius:50%;background:#fff;color:#4b5563;font-size:14px;line-height:1;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .15s}.convert-ctrl-btn:hover{background:#f3f4f6}.convert-ctrl-btn.pause:hover{color:#f59e0b;border-color:#f59e0b}.convert-ctrl-btn.cancel:hover{color:#ef4444;border-color:#ef4444}.convert-button{background:#4169e1;color:#fff;border:none;border-radius:999px;padding:12px 32px;font-size:14px;font-weight:600;cursor:pointer;display:flex;align-items:center;gap:12px;box-shadow:0 10px 30px -10px #0000001a,0 4px 6px -2px #0000000d;transition:all .2s;white-space:nowrap}.convert-button:not(:disabled):hover{background:#27408b}.convert-button:disabled{background:#d1d5db;cursor:not-allowed}.app-main{padding-top:80px;padding-bottom:18px;height:100vh;display:grid;grid-template-columns:320px 4px 100px 4px 1fr 4px 400px;gap:0;overflow:auto}.col-uploads{background:var(--bg-canvas);display:flex;flex-direction:column;overflow:hidden}.col-section{overflow-y:auto;padding:12px 16px;min-height:0}.col-resizer-h{height:3px;flex-shrink:0;cursor:row-resize;background:#c0c4cc;touch-action:none;position:relative;transition:background .15s}.col-resizer-h:before{content:"";position:absolute;inset:-6px 0}.col-resizer-h:hover,.col-resizer-h:active{background:#4169e1}.col-resizer-v{cursor:col-resize;background:#c0c4cc;position:relative;touch-action:none;transition:background .15s}.col-resizer-v:before{content:"";position:absolute;inset:0 -6px}.col-resizer-v:hover,.col-resizer-v:active{background:#4169e1}.app.dark .col-resizer-h,.app.dark .col-resizer-v{background:#2a2a4a}.app.dark .col-resizer-h:hover,.app.dark .col-resizer-h:active,.app.dark .col-resizer-v:hover,.app.dark .col-resizer-v:active{background:#6c8cff}.col-resizer-v{display:flex;align-items:center;justify-content:center}.resizer-toggle-btn{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);z-index:20;width:20px;height:52px;border:1px solid #d1d5db;border-radius:5px;background:#f8f9fa;color:#6b7280;font-size:11px;line-height:1;padding:0;cursor:pointer;opacity:0;transition:opacity .2s,background .15s,color .15s,border-color .15s;display:flex;align-items:center;justify-content:center}.col-resizer-v:hover .resizer-toggle-btn,.resizer-toggle-btn:focus-visible{opacity:1}.resizer-toggle-btn:hover{background:#e0e7ff;color:#4169e1;border-color:#4169e1}.col-resizer-v.resizer-collapsed{cursor:default;background:#e5e7eb}.col-resizer-v.resizer-collapsed .resizer-toggle-btn{opacity:1}.app.dark .resizer-toggle-btn{background:#2a2a4a;border-color:#444;color:#9ca3af}.app.dark .resizer-toggle-btn:hover{background:#3a3a5a;color:#6c8cff;border-color:#6c8cff}.app.dark .col-resizer-v.resizer-collapsed{background:#1e1e3a}.upload-section{display:flex;flex-direction:column;gap:8px;height:100%;min-height:0}.upload-section-label{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:var(--text-secondary);margin:0;flex-shrink:0}.upload-section-label-row{display:flex;align-items:center;justify-content:space-between;gap:6px;margin-bottom:2px}.upload-drop{border:2px dashed var(--border-color);border-radius:16px;padding:12px;text-align:center;cursor:pointer;transition:border-color .2s,background .2s;flex:1 1 0;min-height:0;display:flex;flex-direction:column;align-items:center;justify-content:center;overflow:hidden}.upload-drop:hover{border-color:#4169e1}.upload-drop.drag-over{border-color:#4169e1!important;background:#4169e10d!important}.upload-icon{margin:0 auto 12px;color:#9ca3af;transition:color .2s}.upload-drop:hover .upload-icon{color:#4169e1}.upload-drop-name{font-size:14px;font-weight:500;color:#4b5563;margin:0}.upload-drop-name.loaded{color:#4169e1}.upload-drop-hint{font-size:11px;color:#9ca3af;margin:4px 0 0}.upload-drop--target{min-height:0;flex:1 1 0;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:0}.upload-drop--target.has-files{padding:0;cursor:default;align-items:stretch;justify-content:flex-start}.upload-drop-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:12px;width:100%;height:100%;cursor:pointer;overflow:hidden}.upload-target-header{display:flex;align-items:center;justify-content:space-between;padding:8px 12px;border-bottom:1px solid var(--border-color);flex-shrink:0}.upload-target-header-left{display:flex;align-items:center;gap:6px}.upload-check-all,.upload-file-check{width:13px;height:13px;cursor:pointer;flex-shrink:0;accent-color:#4169e1}.upload-autozone-btn{font-size:10px;font-weight:600;color:#059669;background:#05966914;border:1px solid rgba(5,150,105,.25);border-radius:4px;padding:2px 8px;cursor:pointer;white-space:nowrap}.upload-autozone-btn:hover:not(:disabled){background:#0596692e}.upload-autozone-btn:disabled{opacity:.45;cursor:not-allowed}.app.dark .upload-autozone-btn{color:#34d399;background:#34d3991a;border-color:#34d39940}.app.dark .upload-autozone-btn:hover:not(:disabled){background:#34d39933}.upload-autozone-cancel-btn{font-size:10px;font-weight:600;color:#6b7280;background:#fff;border:1px solid #d1d5db;border-radius:4px;padding:2px 8px;cursor:pointer;white-space:nowrap}.upload-autozone-cancel-btn:hover{background:#f3f4f6}.upload-autozone-confirm-btn{font-size:10px;font-weight:600;color:#fff;background:#059669;border:1px solid #059669;border-radius:4px;padding:2px 8px;cursor:pointer;white-space:nowrap}.upload-autozone-confirm-btn:hover{background:#047857}.app.dark .upload-autozone-cancel-btn{background:#2a2a3e;border-color:#ffffff26;color:#d1d5db}.app.dark .upload-autozone-cancel-btn:hover{background:#333348}.app.dark .upload-autozone-confirm-btn{background:#059669;border-color:#059669}.upload-target-count{font-size:11px;font-weight:600;color:#4169e1}.upload-target-actions{display:flex;gap:4px}.upload-target-add-btn{font-size:11px;font-weight:600;color:#4169e1;background:#4169e114;border:1px solid rgba(65,105,225,.2);border-radius:6px;padding:2px 10px;cursor:pointer;transition:background .15s}.upload-target-add-btn:hover{background:#4169e129}.upload-target-clear-btn{font-size:11px;font-weight:600;color:#ef4444;background:#ef444414;border:1px solid rgba(239,68,68,.2);border-radius:6px;padding:2px 10px;cursor:pointer;transition:background .15s}.upload-target-clear-btn:hover{background:#ef444429}.upload-filelist-inside{display:flex;flex-direction:column;gap:4px;list-style:none;padding:6px 8px;margin:0;overflow-y:auto;flex:1 1 0;min-height:0}.upload-file-item{display:flex;align-items:center;gap:8px;font-size:10px;color:#6b7280;background:#fff9;border:1px solid #2a2a3a;padding:6px 8px;border-radius:6px;flex-shrink:0}.upload-file-clickable{cursor:pointer;transition:background .15s}.upload-file-clickable:hover{background:#4169e11a;border-color:#4169e1}.app.dark .upload-file-clickable:hover{background:#6c8cff26;border-color:#6c8cff}.upload-file-item svg{flex-shrink:0}.upload-file-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}.app.dark .upload-file-item{background:#ffffff0a;border-color:#ffffff80;color:#9ca3af}.app.dark .upload-target-count{color:#6c8cff}.app.dark .upload-target-add-btn{color:#6c8cff;background:#6c8cff1a;border-color:#6c8cff40}.app.dark .upload-target-add-btn:hover{background:#6c8cff33}.app.dark .upload-target-clear-btn{color:#ff6b6b;background:#ff6b6b1a;border-color:#ff6b6b40}.app.dark .upload-target-clear-btn:hover{background:#ff6b6b33}.app.dark .upload-target-header{border-bottom-color:#ffffff14}.upload-result-filter{font-size:10px;padding:2px 4px;border-radius:4px;border:1px solid #d1d5db;background:#fff;color:#374151;cursor:pointer;outline:none;max-width:160px}.upload-result-filter:focus{border-color:#4169e1}.app.dark .upload-result-filter{background:#1e1e2e;color:#d1d5db;border-color:#fff3}.app.dark .upload-result-filter:focus{border-color:#6c8cff}.upload-file-item.file-result-success{background:#22c55e1f;border-color:#22c55e80;color:#166534}.upload-file-item.file-result-success svg{stroke:#22c55e}.upload-file-item.file-result-fail{background:#ef44441f;border-color:#ef444480;color:#991b1b}.upload-file-item.file-result-fail svg{stroke:#ef4444}.upload-file-item.file-result-review{background:#eab3082e;border-color:#eab30899;color:#854d0e}.upload-file-item.file-result-review svg{stroke:#eab308}.app.dark .upload-file-item.file-result-success{background:#22c55e26;border-color:#22c55e80;color:#86efac}.app.dark .upload-file-item.file-result-success svg{stroke:#4ade80}.app.dark .upload-file-item.file-result-fail{background:#ef444426;border-color:#ef444480;color:#fca5a5}.app.dark .upload-file-item.file-result-fail svg{stroke:#f87171}.app.dark .upload-file-item.file-result-review{background:#eab3082e;border-color:#eab30899;color:#fde047}.app.dark .upload-file-item.file-result-review svg{stroke:#facc15}.upload-file-clickable.file-result-success:hover{background:#22c55e38;border-color:#22c55eb3}.upload-file-clickable.file-result-fail:hover{background:#ef444438;border-color:#ef4444b3}.app.dark .upload-file-clickable.file-result-success:hover{background:#22c55e40;border-color:#22c55eb3}.app.dark .upload-file-clickable.file-result-fail:hover{background:#ef444440;border-color:#ef4444b3}.upload-file-clickable.file-result-review:hover{background:#eab3084d;border-color:#eab308cc}.app.dark .upload-file-clickable.file-result-review:hover{background:#eab30847;border-color:#eab308cc}.upload-file-item.file-selected-default{background:#64748b40;border-color:#64748bb3;color:#1e293b}.upload-file-item.file-selected-default svg{stroke:#475569}.upload-file-item.file-selected-success{background:#16a34a59;border-color:#16a34acc;color:#14532d}.upload-file-item.file-selected-success svg{stroke:#16a34a}.upload-file-item.file-selected-fail{background:#dc262659;border-color:#dc2626cc;color:#7f1d1d}.upload-file-item.file-selected-fail svg{stroke:#dc2626}.upload-file-item.file-selected-review{background:#ca8a0466;border-color:#ca8a04d9;color:#713f12}.upload-file-item.file-selected-review svg{stroke:#ca8a04}.app.dark .upload-file-item.file-selected-default{background:#94a3b84d;border-color:#94a3b8b3;color:#e2e8f0}.app.dark .upload-file-item.file-selected-default svg{stroke:#94a3b8}.app.dark .upload-file-item.file-selected-success{background:#22c55e59;border-color:#22c55ecc;color:#bbf7d0}.app.dark .upload-file-item.file-selected-success svg{stroke:#22c55e}.app.dark .upload-file-item.file-selected-fail{background:#ef444459;border-color:#ef4444cc;color:#fecaca}.app.dark .upload-file-item.file-selected-fail svg{stroke:#ef4444}.app.dark .upload-file-item.file-selected-review{background:#eab30861;border-color:#eab308d9;color:#fef08a}.app.dark .upload-file-item.file-selected-review svg{stroke:#eab308}.upload-filelist-inside:focus{outline:none}.hidden-input{display:none}.col-thumbnails{background:var(--bg-canvas);overflow-y:auto;padding:16px;display:flex;flex-direction:column;gap:16px}.thumb-placeholder{width:100%;aspect-ratio:1 / 1.41;background:#fff;border:1px solid #e5e7eb;border-radius:8px;display:flex;align-items:center;justify-content:center;box-shadow:0 1px 2px #0000000d}.thumb-placeholder-text{font-size:10px;color:#9ca3af}.thumbnails-list{display:flex;flex-direction:column;gap:16px}.thumb-item{width:100%;aspect-ratio:1 / 1.41;background:#fff;border:1px solid #e5e7eb;border-radius:8px;overflow:hidden;cursor:pointer;position:relative;box-shadow:0 1px 2px #0000000d;transition:all .2s;display:block;padding:0}.thumb-item.active{border:2px solid #4169e1;box-shadow:0 0 0 4px #4169e11a}.thumb-item canvas{width:100%;height:100%;display:block;object-fit:contain}.thumb-label{position:absolute;top:8px;left:8px;font-size:9px;font-weight:600;color:#6b7280;background:#fffc;padding:2px 6px;border-radius:4px;z-index:2}.thumb-zones-overlay{position:absolute;inset:0;pointer-events:none;z-index:1}.thumb-zone{position:absolute;border:1px solid;border-radius:1px}.col-canvas{overflow:auto;background:var(--bg-canvas);padding:48px;display:flex;flex-direction:column;align-items:center;gap:24px}.canvas-toolbar{width:595px;display:flex;align-items:center;justify-content:space-between;flex-shrink:0}.canvas-toolbar-left h2{font-family:Outfit,Inter,sans-serif;font-size:16px;font-weight:600;color:var(--text-primary);margin:0}.canvas-toolbar-left p{font-size:12px;color:#6b7280;margin:4px 0 0}.canvas-toolbar-right{display:flex;align-items:center;gap:12px}.panel-toggle-btn{display:none;background:#f3f4f6;border:1px solid #d1d5db;border-radius:4px;width:24px;height:28px;align-items:center;justify-content:center;cursor:pointer;color:#6b7280;font-size:10px;padding:0;flex-shrink:0;transition:background .15s,color .15s}.panel-toggle-btn:hover{background:#e0e7ff;color:#4169e1;border-color:#4169e1}.zoom-pill{display:flex;align-items:center;gap:8px;background:#fff;border:1px solid #e5e7eb;border-radius:999px;padding:4px 12px;box-shadow:0 1px 2px #0000000d}.zoom-pill button{background:transparent;border:none;color:#6b7280;font-weight:700;font-size:14px;cursor:pointer;padding:0}.zoom-pill button:hover{color:#4169e1}.zoom-eye-btn{display:flex;align-items:center;border-right:1px solid #e5e7eb!important;padding-right:8px!important;margin-right:0}.zoom-eye-btn svg{display:block}.zoom-input{width:32px;border:none;background:transparent;font-size:11px;font-weight:600;color:#6b7280;text-align:right;padding:0}.zoom-input:focus{outline:none;color:#4169e1}.zoom-pct{font-size:11px;font-weight:600;color:#6b7280}.clear-btn{font-size:12px;font-weight:700;color:#ef4444;background:transparent;border:none;cursor:pointer;text-transform:uppercase;letter-spacing:.05em;padding:0}.clear-btn:hover{color:#dc2626}.canvas-stage{position:relative;background:#fff;box-shadow:0 0 40px #00000014;cursor:crosshair;-webkit-user-select:none;user-select:none;overflow:hidden;border-radius:2px}.canvas-surface{display:block}.canvas-placeholder{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;font-size:12px;color:#94a3b8;background:#f8fafc99;pointer-events:none}.zone-box{position:absolute;border:2px solid rgba(255,215,0,.5);background:#ffd70026;z-index:10;pointer-events:auto;transition:background .2s}.zone-box:hover{background:#ffd70040}.zone-box.pinned{background:#16a34a26}.zone-box.pinned .zone-badge{background:#16a34a}.zone-box.pinned:after{content:"📌︎";position:absolute;top:-12px;right:-12px;font-size:12px}.zone-box.rule-zone{border-style:dashed}.zone-box.ifzone{background:#e67e2226}.zone-selected{outline-style:dashed;outline-width:2px;outline-offset:2px}.zone-badge{position:absolute;top:-12px;left:-4px;background:#4169e1;color:#fff;width:24px;height:24px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:12px;font-weight:700;box-shadow:0 4px 6px #0000001a;cursor:pointer;opacity:.8}.zone-row-label{position:absolute;top:-10px;left:22px;font-size:9px;font-weight:700;white-space:nowrap;pointer-events:none;text-shadow:0 0 3px #fff,0 0 3px #fff,0 0 3px #fff;line-height:1;opacity:.8}.zone-badge-star{position:absolute;top:-18px;left:-8px;width:30px;height:30px;cursor:default;filter:drop-shadow(0 1px 2px rgba(0,0,0,.2));opacity:.6}.zone-badge-triangle{position:absolute;top:-16px;left:-6px;width:28px;height:26px;pointer-events:auto;cursor:pointer;filter:drop-shadow(0 2px 3px rgba(0,0,0,.15));opacity:.6}.zone-badge-input-triangle{position:absolute;top:-14px;left:-6px;width:28px;height:24px;border:2px solid #e67e22;border-radius:4px;font-size:12px;text-align:center;background:#fff;color:#e67e22;font-weight:700}.zone-badge-input{position:absolute;top:-12px;left:-4px;width:28px;height:24px;border:1px solid #e5e7eb;border-radius:12px;font-size:12px;text-align:center;background:#fff}.zone-delete{position:absolute;top:-6px;right:-6px;width:16px;height:16px;border:none;border-radius:50%;background:#ef4444;color:#fff;font-size:12px;line-height:1;display:flex;align-items:center;justify-content:center;opacity:0;transition:opacity .2s;cursor:pointer;padding:0}.zone-box:hover .zone-delete{opacity:1}.zone-guide{position:absolute;border:2px dashed #4169e1;background:#4169e10d;z-index:20;pointer-events:none}.align-controls{position:absolute;top:-12px;left:22px;display:flex;gap:4px;z-index:40}.align-controls button{border:1px solid #4169e1;background:#fff;color:#4169e1;font-size:12px;font-weight:700;padding:2px 6px;border-radius:6px;cursor:pointer;min-width:22px;min-height:22px;display:flex;align-items:center;justify-content:center;box-shadow:0 2px 4px #00000026}.align-controls button:hover{background:#4169e1;color:#fff}.resize-handle{position:absolute;width:6px;height:6px;background:#4169e1;border:1px solid #fff;border-radius:50%;z-index:30;opacity:0;pointer-events:none}.zone-box:hover .resize-handle{opacity:1;pointer-events:auto}.resize-handle.n{top:-3px;left:50%;transform:translate(-50%);cursor:ns-resize}.resize-handle.s{bottom:-3px;left:50%;transform:translate(-50%);cursor:ns-resize}.resize-handle.e{right:-3px;top:50%;transform:translateY(-50%);cursor:ew-resize}.resize-handle.w{left:-3px;top:50%;transform:translateY(-50%);cursor:ew-resize}.resize-handle.ne{right:-3px;top:-3px;cursor:nesw-resize}.resize-handle.nw{left:-3px;top:-3px;cursor:nwse-resize}.resize-handle.se{right:-3px;bottom:-3px;cursor:nwse-resize}.resize-handle.sw{left:-3px;bottom:-3px;cursor:nesw-resize}.col-sidebar{background:var(--bg-surface);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-left:1px solid var(--border-color);display:flex;flex-direction:column;overflow:hidden;position:relative}.grid-panel-section{padding:4px 8px;border-bottom:1px solid var(--border-color);display:flex;flex-direction:column;gap:4px;flex-shrink:0;max-height:30vh;overflow-y:auto}.grid-toolbar{display:flex;align-items:center;gap:10px;padding:6px 10px;border-bottom:1px solid var(--border-color);flex-shrink:0;background:var(--bg-surface)}.grid-toolbar-match{font-size:11px;font-weight:700;color:#7c3aed;background:#faf5ff;border:1px solid #e9d5ff;border-radius:6px;padding:4px 10px;cursor:pointer;transition:all .15s;white-space:nowrap}.grid-toolbar-match:hover{background:#f3e8ff}.grid-toolbar-match.open{background:#f3e8ff;border-color:#7c3aed}.grid-toolbar-if{font-size:11px;font-weight:700;color:#d35400;background:#fffbf0;border:1px solid #f0e6d0;border-radius:6px;padding:4px 10px;cursor:pointer;transition:all .15s;white-space:nowrap}.grid-toolbar-if:hover{background:#fff5e0}.grid-toolbar-if.open{background:#fff5e0;border-color:#e67e22}.grid-toolbar-copyif{font-size:10px;font-weight:600;color:#d35400;background:#fff;border:1px solid #f0e6d0;border-radius:4px;padding:2px 6px;cursor:pointer;transition:all .15s;white-space:nowrap}.grid-toolbar-copyif:hover{background:#fff5e0;border-color:#e67e22}.grid-toolbar-clearif{font-size:10px;font-weight:600;color:#c0392b;background:#fff;border:1px solid #f0d0d0;border-radius:4px;padding:2px 6px;cursor:pointer;transition:all .15s;white-space:nowrap}.grid-toolbar-clearif:hover{background:#fde8e8;border-color:#e74c3c}.grid-toolbar-pasteif{font-size:10px;font-weight:600;color:#2980b9;background:#fff;border:1px solid #d0e0f0;border-radius:4px;padding:2px 6px;cursor:pointer;transition:all .15s;white-space:nowrap}.grid-toolbar-pasteif:hover{background:#e8f0fe;border-color:#3498db}.grid-toolbar-pin{font-size:14px;line-height:1;background:none;border:none;border-radius:4px;padding:2px 4px;cursor:pointer;color:#9ca3af;transition:all .15s}.grid-toolbar-pin:hover:not(:disabled){color:#4169e1}.grid-toolbar-pin.active{color:#16a34a}.grid-toolbar-pin:disabled{opacity:.3;cursor:not-allowed}.grid-toolbar-skip{display:flex;align-items:center;gap:5px;font-size:10px;color:#6b7280;cursor:pointer;white-space:nowrap}.grid-toolbar-skip input[type=checkbox]{width:12px;height:12px;accent-color:#4169e1}.grid-bottom-bar{flex-shrink:0;border-top:1px solid var(--border-color)}.grid-toolbar-bottom{border-bottom:none;border-top:none}.grid-match-panel{border-top:1px solid var(--border-color);flex-shrink:0;max-height:35vh;overflow-y:auto;padding:4px 8px;display:flex;flex-direction:column;gap:4px;background:#faf5ff}.grid-if-panel{border-top:1px solid var(--border-color);flex-shrink:0;max-height:35vh;overflow-y:auto;padding:4px 8px;display:flex;flex-direction:column;gap:4px;background:#fffdf7}.grid-if-logic{border-top:1px solid #f0e6d0;padding-top:6px}.grid-container{flex:1;min-height:0;overflow:auto;position:relative}.config-grid{border-collapse:separate;border-spacing:0;width:max-content;min-width:100%;font-size:11px;table-layout:fixed;-webkit-user-select:none;user-select:none}.grid-corner{position:sticky;top:0;left:0;z-index:3;width:56px;min-width:56px;background:#f3f4f6;border-right:1px solid #d1d5db;border-bottom:1px solid #c0c4cc;padding:2px 4px}.grid-corner-label{display:block;font-size:10px;font-weight:600;color:#6b7280;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;text-align:center}.grid-col-header{position:sticky;top:0;z-index:2;background:#f3f4f6;border-right:1px solid #d1d5db;border-bottom:1px solid #c0c4cc;padding:4px 8px;font-weight:600;font-size:11px;color:#374151;text-align:center;white-space:nowrap;overflow:visible;cursor:pointer;-webkit-user-select:none;user-select:none;transition:background .1s}.grid-col-header:hover{background:#e8eeff}.grid-col-header.selected{background:#dbe4ff;color:#4169e1}.grid-col-header.multi-sel{background:#dbe4ff}.grid-col-header.pinned{border-bottom-color:#16a34a}.grid-col-label{display:block;overflow:hidden;text-overflow:ellipsis}.grid-add-col-header{position:sticky;top:0;z-index:2;background:#f3f4f6;border-bottom:1px solid #c0c4cc;padding:0;text-align:center;cursor:pointer;-webkit-user-select:none;user-select:none;transition:background .15s}.grid-add-col-header:hover{background:#e8eeff}.grid-add-col-btn{display:block;font-size:15px;font-weight:600;color:#9ca3af;line-height:1}.grid-add-col-header:hover .grid-add-col-btn{color:#4169e1}.grid-add-col-spacer{border-bottom:1px solid #e5e7eb}.grid-row-header{position:sticky;left:0;z-index:1;background:#f3f4f6;border-right:1px solid #d1d5db;border-bottom:1px solid #e5e7eb;padding:2px 8px;font-weight:600;font-size:11px;color:#374151;white-space:nowrap;overflow:visible;cursor:pointer;-webkit-user-select:none;user-select:none;transition:background .1s}.grid-row-header:hover{background:#e8eeff}.grid-row-header.selected{background:#dbe4ff;color:#4169e1}.grid-row-header.multi-sel{background:#dbe4ff}.grid-row-label{display:block;overflow:hidden;text-overflow:ellipsis}.grid-row-active .grid-row-header{background:#dbe4ff}.grid-header-input{width:100%;min-width:40px;border:1px solid #4169e1;border-radius:3px;padding:2px 4px;font-size:11px;font-weight:600;color:#1f2937;background:#fff;outline:none}.grid-header-input:focus{box-shadow:0 0 0 2px #4169e14d}.grid-cell{border-right:1px solid #e5e7eb;border-bottom:1px solid #e5e7eb;padding:2px 6px;background:#fff;cursor:pointer;transition:background .1s;vertical-align:top}.grid-cell:hover{background:#f0f4ff}.grid-cell.has-zone{background:#fffde7}.grid-cell.has-zone:hover{background:#fff9c4}.grid-cell.pinned{background:#16a34a1f}.grid-cell.pinned:hover{background:#16a34a38}.grid-cell.skip-empty{background:#c8def0}.grid-cell.skip-empty:hover{background:#b8d0e4}.grid-cell.has-if-rule{background:#fed7aa}.grid-cell.has-if-rule:hover{background:#fdba74}.grid-cell.selected{background:#e8eeff;outline:2px solid #4169e1;outline-offset:-2px}.grid-cell.range-selected{background:#dbeafe}.grid-cell.range-selected.has-zone{background:#d4e3fc}.grid-cell.copied{outline:2px dashed #4169e1;outline-offset:-2px;animation:marching-ants .6s linear infinite}@keyframes marching-ants{0%{outline-style:dashed}50%{outline-style:dotted}to{outline-style:dashed}}.grid-cell-text{display:block;font-size:11px;color:#374151;line-height:1.5;word-break:break-word;white-space:normal}.grid-col-resize{position:absolute;top:0;right:0;width:6px;height:100%;cursor:col-resize;z-index:4;background:transparent;transition:background .15s}.grid-col-resize:hover,.grid-col-resize:active{background:#4169e1}.grid-row-resize{position:absolute;left:0;bottom:0;width:100%;height:6px;cursor:row-resize;z-index:4;background:transparent;transition:background .15s}.grid-row-resize:hover,.grid-row-resize:active{background:#4169e1}.resize-preview-line-h{position:absolute;left:0;right:0;height:0;border-top:2px dashed #4169e1;pointer-events:none;z-index:50}.resize-preview-line-v{position:absolute;top:0;bottom:0;width:0;border-left:2px dashed #4169e1;pointer-events:none;z-index:50}tr.resize-preview>th,tr.resize-preview>td{background:#4169e10a}.grid-col-header.resize-preview{background:#4169e10f!important}.resize-preview-tooltip{position:absolute;z-index:51;padding:2px 7px;border-radius:4px;background:#4169e1;color:#fff;font-size:11px;font-weight:600;white-space:nowrap;pointer-events:none;transform:translateY(-100%);box-shadow:0 2px 6px #0000002e}.grid-ctx-menu{position:fixed;z-index:100;background:#fff;border:1px solid #e5e7eb;border-radius:8px;box-shadow:0 8px 24px #0000001f;padding:4px 0;min-width:160px}.grid-ctx-item{display:block;width:100%;padding:6px 14px;font-size:11px;font-weight:500;color:#374151;background:none;border:none;text-align:left;cursor:pointer;transition:background .1s}.grid-ctx-item:hover:not(:disabled){background:#f3f4f6}.grid-ctx-item.danger{color:#ef4444}.grid-ctx-item.danger:hover:not(:disabled){background:#fef2f2}.grid-ctx-item:disabled{color:#d1d5db;cursor:not-allowed}.grid-ctx-divider{height:1px;background:#e5e7eb;margin:4px 0}.auto-toggle{display:inline-flex;align-items:center;gap:6px;cursor:pointer}.toggle-track{position:relative;width:28px;height:16px;background:#d1d5db;border-radius:999px;transition:background .2s;flex-shrink:0}.toggle-track.on{background:#4169e1}.toggle-dot{position:absolute;top:2px;left:2px;width:12px;height:12px;background:#fff;border-radius:50%;transition:transform .2s}.toggle-track.on .toggle-dot{transform:translate(12px)}.auto-toggle-label{font-size:10px;font-weight:600;color:#6b7280;text-transform:uppercase;letter-spacing:.05em}.tpl-section{border-top:1px solid var(--border-color);padding:12px 16px;background:var(--bg-surface);flex:1;min-height:0;display:flex;flex-direction:column}.tpl-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px;flex-shrink:0}.tpl-title{font-family:Outfit,Inter,sans-serif;font-size:16px;font-weight:700;color:var(--text-primary);margin:0}.tpl-hint{font-size:12px;color:#9ca3af;margin:0 0 8px;font-style:italic;flex-shrink:0}.tpl-actions{display:flex;gap:6px;flex-shrink:0}.tpl-actions button{font-size:9px;font-weight:600;color:#6b7280;background:#fff;border:1px solid #e5e7eb;border-radius:5px;padding:3px 8px;cursor:pointer;transition:all .15s}.tpl-actions button:hover:not(:disabled){background:#f3f4f6;border-color:#9ca3af}.tpl-actions button:disabled{opacity:.4;cursor:not-allowed}.tpl-list{flex:1;min-height:0;overflow-y:auto;border:1px solid var(--border-color);border-radius:8px;background:var(--bg-surface-solid)}.tpl-empty{padding:24px;text-align:center;font-size:12px;color:#9ca3af}.tpl-item{display:flex;justify-content:space-between;align-items:center;padding:9px 12px;cursor:pointer;border-bottom:1px solid var(--border-light);transition:background .15s}.tpl-item:last-child{border-bottom:none}.tpl-item:hover{background:#e8eeff}.tpl-item:hover .tpl-item-name{color:#1f2937}.tpl-item:hover .tpl-item-date{color:#6b7280}.tpl-item.active{background:#4169e1;border-radius:0}.tpl-item-name{font-size:12px;font-weight:500;color:var(--text-primary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;display:flex;align-items:center;gap:5px}.tpl-item.active .tpl-item-name{color:#fff;font-weight:600}.tpl-unsaved-badge{display:inline-block;flex-shrink:0;width:7px;height:7px;border-radius:50%;background:#ef4444;margin-left:2px}.tpl-item-date{font-size:10px;color:#9ca3af;flex-shrink:0;margin-left:8px}.tpl-item.active .tpl-item-date{color:#ffffffb3}.tpl-load-btn{flex-shrink:0;margin-left:6px;width:24px;height:24px;display:flex;align-items:center;justify-content:center;background:#ffffff40;color:#fff;border:1px solid rgba(255,255,255,.4);border-radius:6px;font-size:11px;cursor:pointer;transition:all .15s}.tpl-load-btn:hover{background:#ffffff80}.ifzone-bar{margin:0;border:1px solid #e5e7eb;border-radius:6px;overflow:hidden;flex-shrink:0}.ifzone-bar-header{display:flex;align-items:center;gap:5px;padding:4px 8px;cursor:pointer;background:#fffbf0;-webkit-user-select:none;user-select:none;transition:background .15s}.ifzone-bar-header:hover{background:#fff5e0}.ifzone-bar-header.open{background:#fff5e0;border-bottom:1px solid #f0e6d0}.ifzone-bar-title{font-size:10px;font-weight:700;color:#d35400}.ifzone-bar-count{font-size:10px;font-weight:600;background:#e67e22;color:#fff;border-radius:10px;padding:1px 7px;min-width:18px;text-align:center}.ifzone-bar-chevron{margin-left:auto;font-size:11px;color:#9ca3af}.ifzone-bar-body{padding:4px 8px;display:flex;flex-direction:column;gap:4px;background:#fffdf7}.ifzone-item{display:flex;align-items:center;gap:4px;padding:3px 6px;border:1px solid #f0e6d0;border-radius:5px;background:#fff;font-size:10px}.ifzone-item-badge{font-size:10px;font-weight:700;color:#fff;background:#e67e22;border-radius:10px;padding:2px 6px;white-space:nowrap;flex-shrink:0}.ifzone-item-name{font-weight:600;color:#374151;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;flex-shrink:0}.ifzone-item-coords{font-size:10px;color:#9ca3af;white-space:nowrap;flex-shrink:0}.ifzone-item-preview{font-size:10px;color:#6b7280;flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ifzone-item-empty{font-size:10px;color:#d1d5db;font-style:italic}.ifzone-item-del{border:none;background:transparent;color:#d1d5db;font-size:12px;cursor:pointer;padding:0 2px;line-height:1}.ifzone-item-del:hover{color:#ef4444}.ifzone-item-name-input{flex:1;min-width:0;padding:2px 6px;font-size:11px;font-weight:600;border:1px solid #e67e22;border-radius:4px;background:#fff;color:#374151;outline:none}.ifzone-item-name-input:focus{box-shadow:0 0 0 2px #e67e2233}.ifzone-item.ifzone-dragging{opacity:.4}.ifzone-item.ifzone-drop-target{border-color:#e67e22;box-shadow:0 0 0 2px #e67e2240}.ifzone-item-name{cursor:pointer}.ifzone-item-name:hover{text-decoration:underline;text-decoration-color:#d1d5db}.ifzone-item.ifzone-draw-target{border-color:#e67e22;background:#fff8f0;box-shadow:0 0 0 2px #e67e224d}.ifzone-item-badge.active{animation:ifzone-pulse 1.2s ease-in-out infinite}.mz-bar{margin:0;border:1px solid #e5e7eb;border-radius:6px;overflow:hidden;flex-shrink:0}.mz-bar-header{display:flex;align-items:center;gap:5px;padding:4px 8px;cursor:pointer;background:#fffbf0;-webkit-user-select:none;user-select:none;transition:background .15s}.mz-bar-header:hover{background:#fff5e0}.mz-bar-header.open{background:#fff5e0;border-bottom:1px solid #f0e6d0}.mz-bar-title{font-size:10px;font-weight:700;color:#b8860b}.mz-bar-count{font-size:10px;font-weight:600;background:#d4a017;color:#fff;border-radius:10px;padding:1px 7px;min-width:18px;text-align:center}.mz-bar-chevron{margin-left:auto;font-size:11px;color:#9ca3af}.mz-bar-body{padding:4px 8px;display:flex;flex-direction:column;gap:4px;background:#fffdf7}.mz-item{display:flex;align-items:center;gap:4px;padding:3px 6px;border:1px solid #f0e6d0;border-radius:5px;background:#fff;font-size:10px;cursor:pointer;transition:all .15s}.mz-item:hover{border-color:#d4a017}.mz-draw-target{border-color:#d4a017!important;background:#fff8f0!important;box-shadow:0 0 0 2px #d4a0174d}.mz-badge{font-size:10px;font-weight:700;color:#fff;background:#d4a017;border-radius:10px;padding:2px 6px;white-space:nowrap;flex-shrink:0}.mz-badge.active{animation:ifzone-pulse 1.2s ease-in-out infinite}.mz-name{font-weight:600;color:#374151;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;cursor:pointer;flex-shrink:0}.mz-name:hover{text-decoration:underline;text-decoration-color:#d1d5db}.mz-name-input{min-width:0;width:80px;padding:2px 6px;font-size:11px;border:1px solid #d4a017;border-radius:6px;font-weight:600;color:#374151;background:#fff}.mz-name-input:focus{box-shadow:0 0 0 2px #d4a01733;outline:none}.mz-coords{font-size:10px;color:#9ca3af;white-space:nowrap;flex-shrink:0}.mz-preview-val{font-size:10px;color:#6b7280;flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.mz-empty{font-size:10px;color:#d1d5db;font-style:italic}.mz-drawing{font-size:9px;font-weight:600;color:#d4a017;white-space:nowrap;animation:ifzone-pulse 1.2s ease-in-out infinite}.mz-del{border:none;background:transparent;color:#d1d5db;font-size:12px;cursor:pointer;padding:0 2px;flex-shrink:0;transition:color .15s}.mz-del:hover{color:#ef4444}.mz-add-btn{width:100%;padding:6px 0;border:1px dashed #d4a017;border-radius:8px;background:transparent;color:#b8860b;font-size:11px;font-weight:600;cursor:pointer;text-align:center;transition:background .15s}.mz-add-btn:hover{background:#d4a01714}.match-cond-card{background:#ffffffd9;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border:1px solid #e5e7eb;border-radius:8px;padding:8px;box-shadow:0 4px 10px #0f172a0a;position:relative;flex-shrink:0}.match-cond-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:4px}.match-cond-header-left{display:flex;align-items:center;gap:8px}.match-cond-number{width:16px;height:16px;background:#d4a017;color:#fff;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:9px;font-weight:700;flex-shrink:0;line-height:1}.match-cond-title{font-size:11px;font-weight:700;color:#1f2937}.match-cond-preview{background:#f9fafb;border:1px solid #f3f4f6;border-radius:5px;padding:4px 6px}.match-cond-preview-label{font-size:9px;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:#9ca3af;margin:0 0 3px}.match-cond-logic-bar{display:flex;align-items:center;justify-content:space-between;margin-bottom:6px}.match-cond-logic-btn{font-size:11px;font-weight:700;color:#d4a017;background:none;border:none;cursor:pointer;padding:0}.match-cond-logic-hint{font-size:10px;color:#9ca3af}.match-cond-logic-body .logic-builder{margin:0}.match-cond-logic-body .logic-rule{margin-bottom:6px;box-shadow:none;border:1px solid #e5e7eb}@keyframes ifzone-pulse{0%,to{opacity:1}50%{opacity:.5}}.ifzone-item-drawing{font-size:9px;font-weight:600;color:#e67e22;white-space:nowrap;animation:ifzone-pulse 1.2s ease-in-out infinite}.ifzone-add-btn{width:100%;padding:6px 0;border:1px dashed #e67e22;border-radius:8px;background:transparent;color:#e67e22;font-size:11px;font-weight:600;cursor:pointer;transition:background .15s}.ifzone-add-btn:hover{background:#e67e2214}.sidebar-empty{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:32px}.sidebar-empty-icon{width:64px;height:64px;border-radius:50%;background:#f8fafc;display:flex;align-items:center;justify-content:center;margin-bottom:16px}.sidebar-empty-title{font-size:14px;font-weight:500;color:#9ca3af;margin:0}.sidebar-empty-hint{font-size:11px;color:#9ca3af;margin:8px 0 0}.logic-builder{margin-top:6px;padding-top:6px;border-top:1px solid #f1f5f9}.logic-desc{font-size:9px;color:#9ca3af;margin:0 0 8px 4px}.logic-no-rules{font-size:12px;color:#9ca3af;margin:0 0 8px}.logic-add-btn{font-size:10px;color:#4169e1;font-weight:600;background:transparent;border:none;cursor:pointer;padding:0;margin-top:6px}.logic-add-btn:hover{color:#27408b}.logic-rules{display:flex;flex-direction:column;gap:4px}.logic-rule{background:#fff;border:1px solid #e5e7eb;border-radius:5px;box-shadow:0 1px 2px #0000000a;padding:4px 6px}.app.dark .logic-rule{background:#fff;border-color:#e5e7eb}.logic-rule-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:4px}.logic-rule-title-text{font-size:11px;font-weight:700;color:#4169e1}.logic-rule-header .rule-delete{border:none;background:transparent;color:#9ca3af;cursor:pointer;padding:4px;font-size:12px;line-height:1}.logic-rule-header .rule-delete:hover{color:#ef4444}.logic-summary{display:flex;flex-direction:column;gap:2px;background:#f8fafc;border:1px solid #e5e7eb;border-radius:6px;padding:8px 10px;margin-bottom:8px}.logic-summary.empty{color:#9ca3af;font-style:italic;font-size:11px}.summary-line{display:flex;align-items:center;gap:5px;padding:2px 0;border-radius:4px;transition:background .15s}.summary-line.matched{background:#f0fdf4}.summary-col{font-size:10px;font-weight:600;color:#4169e1;background:#eef2ff;border:1px solid #c7d2fe;padding:1px 6px;border-radius:3px;white-space:nowrap}.summary-line.matched .summary-col{color:#166534;background:#dcfce7;border-color:#bbf7d0}.summary-op{font-size:10px;font-weight:500;color:#6b7280}.summary-line.matched .summary-op{color:#16a34a}.summary-val{font-size:10px;font-weight:600;color:#1f2937;background:#fff;border:1px solid #e5e7eb;padding:1px 5px;border-radius:3px;font-family:SF Mono,Fira Code,monospace;max-width:120px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.summary-line.matched .summary-val{color:#166534;border-color:#bbf7d0;background:#f0fdf4}.summary-sep{padding:1px 0}.summary-sep-text{font-size:9px;font-weight:700;letter-spacing:.05em;color:#6366f1}.summary-sep-text.or{color:#d97706}.summary-group{display:flex;flex-direction:column;gap:2px;padding-left:8px;border-left:2px solid #e2e8f0;margin:2px 0}.summary-group-paren{font-size:11px;font-weight:700;color:#94a3b8;font-family:SF Mono,Fira Code,monospace;line-height:1}.summary-group-body{display:flex;flex-direction:column;gap:2px}.logic-rule-body{background:#fafbfc;border:1px solid #f1f5f9;border-radius:5px;padding:5px 6px}.logic-group{display:flex;flex-direction:column}.logic-paren-row{display:flex;align-items:center;gap:6px;padding:3px 0}.logic-paren-row.clickable{cursor:pointer;border-radius:4px;transition:background .15s}.logic-paren-row.clickable:hover{background:#eef2ff}.logic-depth-badge{display:inline-flex;align-items:center;justify-content:center;width:18px;height:18px;border-radius:50%;font-size:9px;font-weight:700;line-height:1;flex-shrink:0;-webkit-user-select:none;user-select:none}.logic-depth-badge.depth-0{color:#6366f1;background:#eef2ff;border:1px solid #c7d2fe}.logic-depth-badge.depth-1{color:#d97706;background:#fffbeb;border:1px solid #fde68a}.logic-depth-badge.depth-2{color:#059669;background:#ecfdf5;border:1px solid #a7f3d0}.logic-depth-badge.depth-3{color:#dc2626;background:#fef2f2;border:1px solid #fecaca}.logic-depth-badge.depth-4{color:#7c3aed;background:#f5f3ff;border:1px solid #ddd6fe}.logic-paren{font-size:16px;font-weight:700;line-height:1;-webkit-user-select:none;user-select:none;font-family:SF Mono,Fira Code,monospace}.logic-paren.open.depth-0{color:#6366f1}.logic-paren.open.depth-1{color:#d97706}.logic-paren.open.depth-2{color:#059669}.logic-paren.open.depth-3{color:#dc2626}.logic-paren.open.depth-4{color:#7c3aed}.logic-paren-hint{font-size:9px;color:#9ca3af;font-style:italic}.logic-group-del{border:none;background:transparent;color:#d1d5db;cursor:pointer;padding:0;font-size:11px;line-height:1;transition:color .15s}.logic-group-del:hover{color:#ef4444}.logic-group-body{padding-left:4px}.logic-group-item{display:flex;flex-direction:column}.logic-operator-badge-row{display:flex;align-items:center;padding:3px 0}.logic-operator-badge{font-size:9px;font-weight:700;letter-spacing:.05em;color:#6366f1;background:#eef2ff;border:1px solid #c7d2fe;border-radius:999px;padding:2px 12px;cursor:pointer;transition:all .15s;-webkit-user-select:none;user-select:none}.logic-operator-badge:hover{background:#e0e7ff;border-color:#a5b4fc;box-shadow:0 1px 3px #6366f126}.logic-operator-badge.or{color:#d97706;background:#fffbeb;border-color:#fde68a}.logic-operator-badge.or:hover{background:#fef3c7;border-color:#fcd34d;box-shadow:0 1px 3px #d9770626}.logic-action-bar{display:flex;gap:5px;align-items:center;padding:6px 0 2px;margin-top:4px;border-top:1px dashed #e5e7eb}.logic-action-bar.empty{border-top:none;margin-top:0;padding-top:2px}.logic-action-btn{font-size:10px;font-weight:700;letter-spacing:.02em;color:#4b5563;background:#fff;border:1px solid #e5e7eb;border-radius:4px;padding:3px 10px;cursor:pointer;box-shadow:0 1px 2px #0000000a;transition:all .15s}.logic-action-btn:hover:not(:disabled){color:#6366f1;border-color:#c7d2fe;background:#f8faff}.logic-action-btn.or:hover:not(:disabled){color:#d97706;border-color:#fde68a;background:#fffdf7}.logic-action-btn.paren{color:#6366f1;font-family:SF Mono,Fira Code,monospace}.logic-action-btn.close-paren{color:#6366f1;font-family:SF Mono,Fira Code,monospace;font-size:12px}.logic-action-btn.add-first{color:#6366f1}.logic-action-btn.disabled,.logic-action-btn:disabled{color:#d1d5db;border-color:#f1f5f9;background:#fafafa;cursor:not-allowed;box-shadow:none}.logic-group-children{display:flex;flex-direction:column}.logic-condition-row{display:flex;gap:6px;align-items:center;flex-wrap:wrap;padding:6px 0}.logic-condition-row select{font-size:10px;border:1px solid #e5e7eb;border-radius:4px;padding:4px 8px;background:#fff}.logic-condition-row select:first-child{flex:1 1 auto;max-width:100px}.logic-condition-row select:nth-child(2){flex:0 0 auto;width:70px}.logic-condition-row input{flex:1 1 auto;min-width:80px;font-size:10px;border:1px solid #e5e7eb;border-radius:4px;padding:4px 8px;background:#fff}.logic-condition-row>button{border:none;background:transparent;color:#9ca3af;cursor:pointer;padding:0;font-size:14px;flex-shrink:0}.logic-condition-row>button:hover{color:#ef4444}.logic-rule-preview{margin-top:3px;background:#f8fafc;border:1px solid #e5e7eb;border-radius:5px;padding:4px 6px;cursor:pointer;transition:all .15s}.logic-rule-preview:hover{border-color:#4169e1;background:#fff;box-shadow:0 1px 3px #0000000f}.logic-rule-preview.ready{border:2px solid #4169e1;background:#fff}.logic-rule-preview.ready:hover{border-color:#4169e1}.logic-rule-preview.matched{border:2px solid #22c55e;background:#fff}.logic-rule-preview.matched:hover{border-color:#22c55e}.logic-rule-preview-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:4px}.logic-rule-preview-dot-label{display:flex;align-items:center;gap:6px}.logic-rule-preview-dot{width:8px;height:8px;border-radius:50%;background:#4169e1;box-shadow:0 1px 2px #0000001a}.logic-rule-preview-label{font-size:10px;font-weight:700;color:#4169e1;text-transform:uppercase;letter-spacing:.05em}.logic-rule-preview-coords{display:flex;gap:4px}.logic-rule-preview-label-static{font-size:10px;font-weight:700;color:#9ca3af;text-transform:uppercase;letter-spacing:.05em;margin:0 0 4px}.logic-rule-preview-text{font-size:11px;font-weight:500;color:#6b7280;margin:0}.logic-rule-action-section{margin-top:3px}.logic-action-tabs{display:flex;gap:2px;margin-bottom:4px;background:#f1f5f9;border-radius:5px;padding:2px}.logic-action-tab{flex:1;padding:4px 6px;font-size:10px;font-weight:600;border:none;border-radius:4px;cursor:pointer;background:transparent;color:#64748b;transition:all .15s}.logic-action-tab:hover{background:#fff9;color:#334155}.logic-action-tab.active{background:#fff;color:#4169e1;box-shadow:0 1px 2px #00000014}.logic-rule-action-info{display:flex;align-items:center;gap:6px;padding:5px 8px;border-radius:6px;font-size:11px;font-weight:500}.logic-rule-action-info.skiprow{background:#ef444414;border:1px solid rgba(239,68,68,.25);color:#dc2626}.logic-action-icon{font-size:16px;flex-shrink:0}.logic-rule-action-info.customtext{background:#6366f10f;border:1px solid rgba(99,102,241,.25);padding:6px}.logic-custom-text-input{width:100%;padding:6px 10px;font-size:12px;border:1px solid #d1d5db;border-radius:6px;outline:none;background:#fff;color:#1e293b;font-family:inherit}.logic-custom-text-input:focus{border-color:#6366f1;box-shadow:0 0 0 2px #6366f126}.logic-custom-text-input::placeholder{color:#9ca3af}.app.dark .logic-action-tabs{background:#ffffff0f}.app.dark .logic-action-tab{color:#94a3b8}.app.dark .logic-action-tab:hover{background:#ffffff14;color:#cbd5e1}.app.dark .logic-action-tab.active{background:#ffffff1f;color:#818cf8;box-shadow:0 1px 2px #0003}.app.dark .logic-rule-action-info.skiprow{background:#ef44441f;border-color:#ef44444d;color:#fca5a5}.app.dark .logic-rule-action-info.customtext{background:#818cf814;border-color:#818cf840}.app.dark .logic-custom-text-input{background:#1e1e2e;border-color:#ffffff26;color:#e2e8f0}.app.dark .logic-custom-text-input:focus{border-color:#818cf8;box-shadow:0 0 0 2px #818cf833}.app.dark .logic-custom-text-input::placeholder{color:#64748b}.custom-scrollbar::-webkit-scrollbar{width:6px}.custom-scrollbar::-webkit-scrollbar-track{background:transparent}.custom-scrollbar::-webkit-scrollbar-thumb{background:#cbd5e1;border-radius:10px}.drag-over{border-color:#4169e1!important;background:#4169e10d!important}.app-footer{position:fixed;bottom:4px;left:0;right:0;display:flex;align-items:center;justify-content:center;gap:12px;background:none;border:none;pointer-events:none;z-index:100;font-size:10px;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif}.app-footer-copy{color:#6b7280}.app-footer-links{display:flex;align-items:center;gap:6px;pointer-events:auto}.app-footer-links a{color:#6b7280;text-decoration:none;transition:color .15s}.app-footer-links a:hover{color:#4169e1;text-decoration:underline}.app-footer-sep{color:#9ca3af}[data-theme=dark] .app-footer-copy,[data-theme=dark] .app-footer-links a{color:#fff9}[data-theme=dark] .app-footer-links a:hover{color:#60a5fa}[data-theme=dark] .app-footer-sep{color:#ffffff4d}.preview-btn{font-size:12px;font-weight:600;color:#4a6cf7;background:#eef3ff;border:1px solid #b8ccff;border-radius:6px;padding:4px 14px;cursor:pointer;transition:background .15s,border-color .15s}.preview-btn:hover{background:#dce6ff;border-color:#4a6cf7}.preview-btn:disabled{opacity:.4;cursor:not-allowed}.app.dark .preview-btn{color:#8aacff;background:#6c8cff1f;border-color:#6c8cff4d}.app.dark .preview-btn:hover{background:#6c8cff38;border-color:#6c8cff}.preview-panel{position:fixed;z-index:9990;min-width:360px;min-height:180px;background:#fff;border:1px solid #d0d5dd;border-radius:12px;box-shadow:0 12px 40px #00000024,0 0 0 1px #0000000a;display:flex;flex-direction:column;font-family:Inter,system-ui,-apple-system,sans-serif;overflow:hidden;animation:previewFadeIn .15s ease-out}.preview-panel.pv-fullscreen{left:0!important;top:0!important;width:100vw!important;height:100vh!important;border-radius:0;border:none}.preview-panel.pv-fullscreen .preview-header{cursor:default}.preview-panel.pv-minimized{height:auto!important;min-height:0;width:auto!important;min-width:0}.preview-panel.pv-minimized .preview-body,.preview-panel.pv-minimized .preview-progress,.preview-panel.pv-minimized .preview-skipped-panel,.preview-panel.pv-minimized .preview-col-editor,.preview-panel.pv-minimized .preview-title .preview-badge,.preview-panel.pv-minimized .preview-title-input,.preview-panel.pv-minimized .preview-edit-btn,.preview-panel.pv-minimized .preview-clear-filters-btn,.preview-panel.pv-minimized .preview-refresh-btn,.preview-panel.pv-minimized .preview-size-btn,.preview-panel.pv-minimized .preview-save-btn,.preview-panel.pv-minimized .preview-edit-cancel,.preview-panel.pv-minimized .preview-edit-save,.preview-panel.pv-minimized .preview-edit-saveas,.preview-panel.pv-minimized .preview-actions-gap,.preview-panel.pv-minimized .preview-ctrl-btn{display:none}.preview-panel.pv-minimized .preview-title{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:180px}@keyframes previewFadeIn{0%{opacity:0;transform:scale(.96)}to{opacity:1;transform:scale(1)}}.preview-header{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:10px 14px;border-bottom:1px solid #e8ecf1;flex-shrink:0;cursor:grab;-webkit-user-select:none;user-select:none;touch-action:none}.preview-header:active{cursor:grabbing}.preview-title{font-size:13px;font-weight:700;color:#4a6cf7;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:flex;align-items:center;gap:8px}.preview-badge{font-size:10px;font-weight:500;color:#8888a0;font-style:italic}.preview-actions{display:flex;align-items:center;gap:4px;flex-shrink:0}.preview-refresh-btn,.preview-save-btn,.preview-size-btn{padding:0 6px;height:26px;border:none;border-radius:6px;background:#0000000a;color:#777;font-size:10px;font-weight:600;letter-spacing:.3px;text-transform:lowercase}.preview-close{width:26px;height:26px;border:none;border-radius:6px;background:#0000000a;color:#777;font-size:14px;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background .15s,color .15s;flex-shrink:0}.preview-refresh-btn{position:relative}.preview-refresh-btn:hover{background:#4a6cf71f;color:#4a6cf7}.refresh-dot{position:absolute;top:2px;right:2px;width:6px;height:6px;border-radius:50%;background:#ef4444}.preview-save-btn:hover{background:#50c8781f;color:#1d8e44}.preview-size-btn:hover{background:#6464c81f;color:#55b}.preview-close:hover{background:#ff50501f;color:#e84444}.preview-minimize-btn,.preview-fullscreen-btn{width:26px;height:26px;border:none;border-radius:6px;background:#0000000a;color:#777;font-size:14px;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background .15s,color .15s;flex-shrink:0}.preview-minimize-btn:hover{background:#50a0c81f;color:#2e8bb5}.preview-fullscreen-btn:hover{background:#6450c81f;color:#6b4ecf}.preview-edit-btn{width:26px;height:26px;border:none;border-radius:6px;background:#0000000a;color:#777;font-size:15px;cursor:pointer;display:flex;align-items:center;justify-content:center}.preview-edit-btn:hover{background:#5078ff1f;color:#4169e1}.preview-clear-filters-btn{height:26px;padding:0 8px;border:none;border-radius:6px;background:#fee2e2;color:#dc2626;font-size:11px;font-weight:600;cursor:pointer;display:flex;align-items:center;gap:2px;white-space:nowrap;transition:background .15s,color .15s}.preview-clear-filters-btn:hover{background:#fca5a5;color:#991b1b}.preview-title-input{flex:1 1 0;min-width:0;padding:4px 8px;border:1px solid #4169e1;border-radius:5px;font-size:13px;font-weight:700;color:#1f2937;background:#f0f4ff;outline:none}.preview-title-input:focus{background:#fff}.preview-actions-gap{width:12px;flex-shrink:0}.preview-edit-cancel,.preview-edit-save,.preview-edit-saveas{padding:4px 10px;border:1px solid #d1d5db;border-radius:5px;font-size:11px;font-weight:600;cursor:pointer;white-space:nowrap}.preview-edit-cancel{background:#fff;color:#6b7280}.preview-edit-cancel:hover{background:#f3f4f6}.preview-edit-save{background:#4169e1;color:#fff;border-color:#4169e1}.preview-edit-save:hover{background:#3457c9}.preview-edit-saveas{background:#f0f4ff;color:#4169e1;border-color:#4169e1}.preview-edit-saveas:hover{background:#dde5ff}.preview-th-editable{padding:0!important}.preview-col-input{width:100%;box-sizing:border-box;padding:6px 8px;border:none;border-bottom:2px solid #4169e1;font-size:11px;font-weight:700;color:#1f2937;background:#4169e10a;outline:none;text-transform:uppercase}.preview-col-input:focus{background:#4169e11a}.preview-progress{position:relative;height:22px;background:#f0f2f5;flex-shrink:0;overflow:hidden}.preview-progress-bar{position:absolute;top:0;left:0;bottom:0;background:linear-gradient(90deg,#4169e1,#6c8cff);transition:width .3s}.preview-progress-text{position:relative;z-index:1;display:block;text-align:center;font-size:10px;font-weight:600;line-height:22px;color:#333;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;padding:0 8px}.app.dark .preview-progress{background:#1a1a3a}.app.dark .preview-progress-bar{background:linear-gradient(90deg,#3a5ec8,#6c8cff)}.app.dark .preview-progress-text{color:#d0d0e0}.preview-ctrl-btn{border:none;background:transparent;color:#666;cursor:pointer;font-size:12px;padding:2px 6px;border-radius:4px}.preview-ctrl-btn:hover{background:#00000014}.preview-ctrl-btn.cancel:hover{color:#ef4444}.app.dark .preview-ctrl-btn{color:#aaa}.app.dark .preview-ctrl-btn:hover{background:#ffffff1a}.preview-badge-warn{background:#f59e0b!important;color:#000!important}.preview-badge-filter{background:#ef4444!important;color:#fff!important}.pv-filter-icon{display:inline-block;margin-left:4px;font-size:8px;cursor:pointer;opacity:.4;vertical-align:middle;transition:opacity .15s}.pv-filter-icon:hover{opacity:.8}.pv-filter-icon.active{opacity:1;color:#4a6cf7}.pv-filter-dropdown{position:absolute;top:100%;left:0;z-index:100;min-width:220px;max-width:280px;background:#fff;border:1px solid #d0d5dd;border-radius:8px;box-shadow:0 6px 20px #00000026;padding:8px;text-transform:none;letter-spacing:normal;font-weight:400}.pv-filter-tabs{display:flex;gap:2px;margin-bottom:8px;border-bottom:1px solid #e5e7eb;padding-bottom:6px}.pv-filter-tabs button{flex:1;padding:4px 6px;font-size:10px;font-weight:500;border:none;border-radius:4px;background:transparent;color:#666;cursor:pointer}.pv-filter-tabs button:hover{background:#f0f2f5}.pv-filter-tabs button.active{background:#4a6cf7;color:#fff}.pv-filter-search,.pv-filter-cond-input,.pv-filter-text-input{width:100%;padding:5px 8px;border:1px solid #d0d5dd;border-radius:5px;font-size:11px;margin-bottom:6px;box-sizing:border-box;outline:none}.pv-filter-search:focus,.pv-filter-cond-input:focus,.pv-filter-text-input:focus{border-color:#4a6cf7}.pv-filter-check-actions{display:flex;gap:4px;margin-bottom:4px}.pv-filter-check-actions button{padding:2px 8px;font-size:10px;border:1px solid #d0d5dd;border-radius:4px;background:#f9fafb;cursor:pointer;color:#555}.pv-filter-check-actions button:hover{background:#e8eeff;border-color:#4a6cf7}.pv-filter-list{max-height:180px;overflow-y:auto;margin-bottom:6px;border:1px solid #e5e7eb;border-radius:4px}.pv-filter-item{display:flex;align-items:center;gap:6px;padding:3px 8px;font-size:11px;color:#333;cursor:pointer}.pv-filter-item:hover{background:#f0f4ff}.pv-filter-item input[type=checkbox]{margin:0;accent-color:#4a6cf7}.pv-filter-item span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.pv-cond-row{display:flex;flex-direction:column;gap:4px}.pv-cond-row select{width:100%;padding:5px 8px;border:1px solid #d0d5dd;border-radius:5px;font-size:11px;background:#f9fafb;outline:none;cursor:pointer}.pv-cond-row select:focus{border-color:#4a6cf7}.pv-cond-row .pv-filter-cond-input{margin-bottom:0}.pv-cond-row{position:relative}.pv-cond-remove{position:absolute;top:2px;right:2px;background:none;border:none;color:#aaa;cursor:pointer;font-size:10px;padding:0 3px;line-height:1}.pv-cond-remove:hover{color:#ef4444}.pv-cond-logic-row{display:flex;justify-content:center;gap:4px;margin:6px 0}.pv-cond-logic-btn{padding:2px 10px;font-size:10px;font-weight:600;border:1px solid #d0d5dd;border-radius:4px;background:#f9fafb;color:#888;cursor:pointer;transition:all .15s}.pv-cond-logic-btn:hover{border-color:#4a6cf7;color:#4a6cf7}.pv-cond-logic-btn.active{background:#4a6cf7;color:#fff;border-color:#4a6cf7}.pv-cond-add{display:block;width:100%;margin-top:6px;padding:4px;font-size:11px;font-weight:600;border:1px dashed #c0c6d0;border-radius:5px;background:transparent;color:#4a6cf7;cursor:pointer;text-align:center;transition:all .15s}.pv-cond-add:hover{background:#eef2ff;border-color:#4a6cf7}.pv-filter-btns{display:flex;gap:6px;margin-top:6px}.pv-filter-apply{flex:1;padding:5px;font-size:11px;font-weight:600;border:none;border-radius:5px;background:#4a6cf7;color:#fff;cursor:pointer}.pv-filter-apply:hover{background:#3a5ad7}.pv-filter-clear{padding:5px 10px;font-size:11px;border:1px solid #d0d5dd;border-radius:5px;background:#f9fafb;color:#666;cursor:pointer}.pv-filter-clear:hover{background:#fee2e2;color:#dc2626;border-color:#fca5a5}.preview-skipped-panel{border-bottom:2px solid #f59e0b;background:#fffbeb;max-height:200px;display:flex;flex-direction:column;flex-shrink:0}.preview-skipped-header{display:flex;justify-content:space-between;align-items:center;padding:6px 10px;font-size:12px;background:#fef3c7;border-bottom:1px solid #fde68a}.preview-skipped-header button{border:none;background:transparent;cursor:pointer;font-size:14px;color:#92400e}.preview-skipped-list{overflow-y:auto;padding:4px 8px;font-size:11px}.preview-skipped-item{display:flex;gap:8px;align-items:baseline;padding:2px 0;border-bottom:1px solid #fde68a}.skipped-name{font-weight:500;color:#92400e;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;flex:1}.skipped-reason{white-space:nowrap;font-size:10px;padding:1px 5px;border-radius:3px;background:#fee2e2;color:#991b1b}.skipped-reason--no_pages{background:#dbeafe;color:#1e40af}.skipped-reason--all_rows_skipped{background:#fef3c7;color:#92400e}.skipped-detail{color:#666;font-size:10px;max-width:300px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.app.dark .preview-skipped-panel{background:#2d2a1a}.app.dark .preview-skipped-header{background:#3d3520;border-color:#5c4e2a}.app.dark .preview-skipped-header button{color:#fbbf24}.app.dark .preview-skipped-list{color:#e5e5e5}.app.dark .preview-skipped-item{border-color:#4a4020}.app.dark .skipped-name{color:#fbbf24}.app.dark .skipped-reason{background:#4a2020;color:#fca5a5}.app.dark .skipped-reason--no_pages{background:#1e3050;color:#93c5fd}.app.dark .skipped-reason--all_rows_skipped{background:#3d3520;color:#fcd34d}.app.dark .skipped-detail{color:#aaa}.preview-body{flex:1 1 0;overflow:auto;padding:0;min-height:60px}.preview-loading{display:flex;align-items:center;gap:10px;color:#7a7a96;font-size:13px;padding:16px 14px}.preview-spinner{width:16px;height:16px;border:2px solid #e0e0e8;border-top-color:#4a6cf7;border-radius:50%;animation:previewSpin .8s linear infinite}@keyframes previewSpin{to{transform:rotate(360deg)}}.preview-error{color:#e04040;font-size:13px;padding:12px 14px}.preview-empty{color:#8888a0;font-size:13px;font-style:italic;padding:16px 14px}.preview-table{width:0;border-collapse:collapse;font-size:12px;table-layout:fixed}.preview-table th,.preview-table td{padding:5px 8px;border:1px solid #e0e4ea;text-align:left;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.preview-table th{overflow:visible;background:#f5f7fa;color:#555570;font-weight:600;font-size:10px;text-transform:uppercase;letter-spacing:.03em;position:sticky;top:0;z-index:2}.pv-col-resize{position:absolute;top:0;right:0;bottom:0;width:6px;cursor:col-resize;z-index:4}.pv-col-resize:hover,.pv-col-resize:active{background:#4a6cf759;border-radius:2px}.preview-pdf-name{cursor:pointer;color:#4f6ef7}.preview-pdf-name:hover{color:#2a4edf;text-decoration:underline}.preview-table td{color:#1a1a2e;background:#fff}.preview-table tr:hover td{background:#f0f4ff}.pv-resize{position:absolute;z-index:10;touch-action:none}.pv-resize-n{top:-4px;left:8px;right:8px;height:8px;cursor:n-resize}.pv-resize-s{bottom:-4px;left:8px;right:8px;height:8px;cursor:s-resize}.pv-resize-e{right:-4px;top:8px;bottom:8px;width:8px;cursor:e-resize}.pv-resize-w{left:-4px;top:8px;bottom:8px;width:8px;cursor:w-resize}.pv-resize-ne{top:-4px;right:-4px;width:14px;height:14px;cursor:ne-resize}.pv-resize-nw{top:-4px;left:-4px;width:14px;height:14px;cursor:nw-resize}.pv-resize-se{bottom:-4px;right:-4px;width:14px;height:14px;cursor:se-resize}.pv-resize-sw{bottom:-4px;left:-4px;width:14px;height:14px;cursor:sw-resize}.app.dark .preview-panel{background:#1a1a2e;border-color:#2a2a4a;box-shadow:0 12px 40px #00000080,0 0 0 1px #6c8cff1f}.app.dark .preview-panel.pv-fullscreen{border:none}.app.dark .preview-header{border-bottom-color:#2a2a4a}.app.dark .preview-title{color:#8aacff}.app.dark .preview-badge{color:#6c6c88}.app.dark .preview-refresh-btn,.app.dark .preview-save-btn,.app.dark .preview-size-btn,.app.dark .preview-edit-btn,.app.dark .preview-minimize-btn,.app.dark .preview-fullscreen-btn,.app.dark .preview-close{background:#ffffff0f;color:#888}.app.dark .preview-edit-btn:hover{background:#6c8cff33;color:#6c8cff}.app.dark .preview-clear-filters-btn{background:#ef444426;color:#f87171}.app.dark .preview-clear-filters-btn:hover{background:#ef44444d;color:#fca5a5}.app.dark .preview-title-input{background:#16162a;border-color:#6c8cff;color:#e0e0ef}.app.dark .preview-title-input:focus{background:#1a1a32}.app.dark .preview-edit-cancel{background:#16162a;color:#8888a8;border-color:#2a2a4a}.app.dark .preview-edit-cancel:hover{background:#1e1e38}.app.dark .preview-edit-save{background:#4169e1;color:#fff;border-color:#4169e1}.app.dark .preview-edit-save:hover{background:#5a7fff}.app.dark .preview-edit-saveas{background:#6c8cff1a;color:#6c8cff;border-color:#6c8cff}.app.dark .preview-edit-saveas:hover{background:#6c8cff33}.app.dark .preview-col-input{background:#6c8cff0f;border-bottom-color:#6c8cff;color:#e0e0ef}.app.dark .preview-col-input:focus{background:#6c8cff1f}.app.dark .preview-refresh-btn:hover{background:#6c8cff33;color:#6c8cff}.app.dark .preview-save-btn:hover{background:#50c87833;color:#50c878}.app.dark .preview-size-btn:hover{background:#8c8cff33;color:#8c8cff}.app.dark .preview-close:hover{background:#ff646433;color:#ff6b6b}.app.dark .preview-minimize-btn:hover{background:#50c8ff33;color:#67d4ff}.app.dark .preview-fullscreen-btn:hover{background:#8c64ff33;color:#a78bfa}.app.dark .preview-loading{color:#8888a8}.app.dark .preview-spinner{border-color:#2a2a4a;border-top-color:#6c8cff}.app.dark .preview-error{color:#ff6b6b}.app.dark .preview-empty{color:#55556a}.app.dark .preview-table th,.app.dark .preview-table td{border-color:#2a2a4a}.app.dark .preview-table th{background:#1e1e38;color:#8888a8}.app.dark .pv-filter-icon.active{color:#6c8cff}.app.dark .pv-filter-dropdown{background:#1e1e38;border-color:#3a3a5a;box-shadow:0 6px 24px #00000080}.app.dark .pv-filter-tabs{border-color:#3a3a5a}.app.dark .pv-filter-tabs button{color:#888}.app.dark .pv-filter-tabs button:hover{background:#ffffff0f}.app.dark .pv-filter-tabs button.active{background:#6c8cff;color:#fff}.app.dark .pv-filter-search,.app.dark .pv-filter-cond-input,.app.dark .pv-filter-text-input{background:#161630;border-color:#3a3a5a;color:#ddd}.app.dark .pv-filter-search:focus,.app.dark .pv-filter-cond-input:focus,.app.dark .pv-filter-text-input:focus{border-color:#6c8cff}.app.dark .pv-filter-check-actions button{background:#ffffff0a;border-color:#3a3a5a;color:#aaa}.app.dark .pv-filter-check-actions button:hover{background:#6c8cff26;border-color:#6c8cff}.app.dark .pv-filter-list{border-color:#3a3a5a}.app.dark .pv-filter-item{color:#ccc}.app.dark .pv-filter-item:hover{background:#6c8cff1a}.app.dark .pv-cond-row select{background:#161630;border-color:#3a3a5a;color:#ddd}.app.dark .pv-cond-row select:focus{border-color:#6c8cff}.app.dark .pv-cond-remove{color:#666}.app.dark .pv-cond-remove:hover{color:#f87171}.app.dark .pv-cond-logic-btn{background:#ffffff0a;border-color:#3a3a5a;color:#888}.app.dark .pv-cond-logic-btn:hover{border-color:#6c8cff;color:#6c8cff}.app.dark .pv-cond-logic-btn.active{background:#6c8cff;color:#fff;border-color:#6c8cff}.app.dark .pv-cond-add{border-color:#3a3a5a;color:#6c8cff}.app.dark .pv-cond-add:hover{background:#6c8cff1a;border-color:#6c8cff}.app.dark .pv-filter-apply{background:#6c8cff}.app.dark .pv-filter-apply:hover{background:#5a7aef}.app.dark .pv-filter-clear{background:#ffffff0a;border-color:#3a3a5a;color:#aaa}.app.dark .pv-filter-clear:hover{background:#ef444426;color:#f87171;border-color:#f87171}.app.dark .preview-pdf-name{color:#7c9cff}.app.dark .preview-pdf-name:hover{color:#a8bfff}.app.dark .preview-table td{color:#e0e0ef;background:#ffffff05}.app.dark .preview-table tr:hover td{background:#6c8cff14}.zone-box.autozone-preview{border:2px dashed #059669!important;background:#0596690f!important;outline:none!important;pointer-events:none;z-index:5;animation:autozone-pulse 1.5s ease-in-out infinite}@keyframes autozone-pulse{0%,to{opacity:.7}50%{opacity:1}}.autozone-action-bar{position:sticky;top:0;left:0;right:0;z-index:20;display:flex;align-items:center;justify-content:center;gap:12px;padding:8px 16px;background:#fffffff2;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);border-bottom:1px solid #d1d5db;box-shadow:0 2px 8px #00000014}.autozone-action-label{font-size:12px;font-weight:600;color:#059669}.autozone-action-cancel{font-size:11px;font-weight:600;padding:5px 14px;border-radius:5px;border:1px solid #d1d5db;background:#fff;color:#374151;cursor:pointer}.autozone-action-cancel:hover{background:#f3f4f6}.autozone-action-confirm{font-size:11px;font-weight:600;padding:5px 14px;border-radius:5px;border:1px solid #059669;background:#059669;color:#fff;cursor:pointer}.autozone-action-confirm:hover{background:#047857}.app.dark .autozone-action-bar{background:#1e1e2ef2;border-bottom-color:#ffffff1a}.app.dark .autozone-action-label{color:#34d399}.app.dark .autozone-action-cancel{background:#2a2a3e;border-color:#ffffff26;color:#d1d5db}.app.dark .autozone-action-cancel:hover{background:#333348}.app.dark .zone-box.autozone-preview{border-color:#34d399!important;background:#34d3990f!important}.app.dark .grid-cell{background:#1e1e3a;border-color:#3a3a5e}.app.dark .grid-cell:hover{background:#2a2a4e}.app.dark .grid-cell.has-zone{background:#3a3818}.app.dark .grid-cell.has-zone:hover{background:#4a4828}.app.dark .grid-cell.pinned{background:#22c55e38}.app.dark .grid-cell.pinned:hover{background:#22c55e52}.app.dark .grid-cell.skip-empty{background:#1e3048}.app.dark .grid-cell.skip-empty:hover{background:#2a3e58}.app.dark .grid-cell.has-if-rule{background:#3d2a10}.app.dark .grid-cell.has-if-rule:hover{background:#4d3818}.app.dark .grid-cell.selected{background:#2a3060;outline-color:#809cff}.app.dark .grid-cell.range-selected{background:#262c54}.app.dark .grid-cell.range-selected.has-zone{background:#2e3448}.app.dark .grid-cell.copied{outline-color:#809cff}.app.dark .grid-cell-text{color:#ececf8}.app.dark .grid-corner{background:#242448;border-color:#3a3a5e;color:#9898b8}.app.dark .grid-col-header{background:#242448;border-color:#3a3a5e;color:#c4c4d8}.app.dark .grid-col-header:hover{background:#303058}.app.dark .grid-col-header.selected{background:#2a3060;color:#809cff}.app.dark .grid-col-header.multi-sel{background:#2a3060}.app.dark .grid-row-header{background:#242448;border-color:#3a3a5e;color:#c4c4d8}.app.dark .grid-row-header:hover{background:#303058}.app.dark .grid-row-header.selected{background:#2a3060;color:#809cff}.app.dark .grid-add-col-header{background:#242448;border-color:#3a3a5e}.app.dark .grid-add-col-header:hover{background:#303058}.app.dark .grid-add-col-btn{color:#686888}.app.dark .grid-add-col-header:hover .grid-add-col-btn{color:#809cff}.app.dark .grid-add-col-spacer{border-color:#3a3a5e}
