:root,[data-theme=dark]{--bg: #0c1222;--bg-secondary: #111a2e;--bg-panel: #162038;--bg-elevated: #1a2540;--accent: #5b8af5;--accent-hover: #7ba3ff;--accent-glow: rgba(91, 138, 245, .15);--text: #e2e8f0;--text-muted: #7b8ba5;--border: #1e2d48;--border-subtle: rgba(255,255,255,.04);--success: #34d399;--warning: #fbbf24;--danger: #f87171;--input-bg: #0f1729;--tag-bg: #1a2744;--scrollbar: #2a3a58;--shadow: 0 1px 3px rgba(0,0,0,.4);--shadow-lg: 0 8px 30px rgba(0,0,0,.5);--overlay: rgba(4, 8, 20, .75);--gradient-accent: linear-gradient(135deg, #5b8af5, #38bdf8);--selection-bg: rgba(91, 138, 245, .1);--btn-surface: linear-gradient(180deg, rgba(255,255,255,.08), rgba(255,255,255,.02));--btn-surface-hover: linear-gradient(180deg, rgba(255,255,255,.12), rgba(255,255,255,.04));--btn-shadow: 0 8px 18px rgba(2, 6, 23, .28), inset 0 1px 0 rgba(255,255,255,.05);--btn-shadow-hover: 0 14px 28px rgba(2, 6, 23, .38), 0 0 0 1px rgba(255,255,255,.03), inset 0 1px 0 rgba(255,255,255,.08);--btn-ring: 0 0 0 3px rgba(91, 138, 245, .22)}[data-theme=light]{--bg: #f0f4f8;--bg-secondary: #ffffff;--bg-panel: #e8eef6;--bg-elevated: #f5f8fc;--accent: #3b6ce7;--accent-hover: #2a57cc;--accent-glow: rgba(59, 108, 231, .1);--text: #1a2332;--text-muted: #6b7a90;--border: #d4dce8;--border-subtle: rgba(0,0,0,.04);--success: #059669;--warning: #d97706;--danger: #dc2626;--input-bg: #f5f8fc;--tag-bg: #dde6f2;--scrollbar: #b8c5d8;--shadow: 0 1px 3px rgba(0,0,0,.08);--shadow-lg: 0 8px 30px rgba(0,0,0,.12);--overlay: rgba(0, 0, 0, .4);--gradient-accent: linear-gradient(135deg, #3b6ce7, #0ea5e9);--selection-bg: rgba(59, 108, 231, .08);--btn-surface: linear-gradient(180deg, rgba(255,255,255,.96), rgba(244,248,252,.88));--btn-surface-hover: linear-gradient(180deg, rgba(255,255,255,1), rgba(239,245,252,.96));--btn-shadow: 0 10px 20px rgba(148, 163, 184, .18), inset 0 1px 0 rgba(255,255,255,.85);--btn-shadow-hover: 0 16px 30px rgba(148, 163, 184, .26), 0 0 0 1px rgba(255,255,255,.65), inset 0 1px 0 rgba(255,255,255,.95);--btn-ring: 0 0 0 3px rgba(59, 108, 231, .16)}*{margin:0;padding:0;box-sizing:border-box}body{font-family:Inter,Segoe UI,system-ui,-apple-system,sans-serif;background:var(--bg);color:var(--text);line-height:1.5;-webkit-font-smoothing:antialiased}.app{display:flex;flex-direction:column;height:100vh}.header{background:var(--bg-secondary);border-bottom:1px solid var(--border);padding:.5rem 1rem;display:flex;align-items:center;gap:1rem;flex-shrink:0;box-shadow:var(--shadow)}.header h1{font-size:1.2rem;font-weight:600;background:var(--gradient-accent);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.header-actions{display:flex;gap:.5rem;margin-left:auto}.btn{display:inline-flex;align-items:center;gap:.4rem;justify-content:center;min-height:34px;padding:.45rem .9rem;border:1px solid var(--border);border-radius:12px;background:var(--btn-surface),var(--bg-elevated);color:var(--text);font-size:.85rem;font-weight:600;letter-spacing:.01em;cursor:pointer;transition:transform .18s ease,box-shadow .18s ease,border-color .18s ease,background .18s ease,color .18s ease;white-space:nowrap;box-shadow:var(--btn-shadow)}.btn:hover{transform:translateY(-1px);background:var(--btn-surface-hover),var(--bg-elevated);border-color:#7ba3ff61;color:#fff;box-shadow:var(--btn-shadow-hover)}.btn:active{transform:translateY(0);box-shadow:var(--btn-shadow)}.btn:focus-visible,.btn-close:focus-visible,.theme-toggle:focus-visible,.icon-btn:focus-visible,.lang-toggle:focus-visible{outline:none;box-shadow:var(--btn-ring),var(--btn-shadow-hover)}.btn:disabled{opacity:.45;cursor:not-allowed;transform:none;box-shadow:none}.btn-primary{background:var(--gradient-accent);border-color:transparent;color:#fff;box-shadow:0 12px 24px #38bdf82e,0 8px 18px #5b8af53d}.btn-primary:hover{background:linear-gradient(135deg,var(--accent-hover),#38bdf8);border-color:transparent}.btn-sm{min-height:28px;padding:.2rem .65rem;font-size:.8rem;border-radius:10px}.btn-danger{background:linear-gradient(135deg,#f871712e,#f8717114);border-color:#f8717157;color:#fff}.btn-danger:hover{background:linear-gradient(135deg,var(--danger),#ef4444);border-color:transparent;color:#fff}.btn-close{width:30px;height:30px;border:1px solid var(--border);background:var(--btn-surface),var(--bg-elevated);color:var(--text-muted);font-size:14px;cursor:pointer;border-radius:10px;display:flex;align-items:center;justify-content:center;padding:0;line-height:1;transition:transform .18s ease,background .18s ease,border-color .18s ease,color .18s ease,box-shadow .18s ease;box-shadow:var(--btn-shadow)}.btn-close:hover{transform:translateY(-1px);background:linear-gradient(135deg,var(--danger),#ef4444);border-color:transparent;color:#fff}.btn-success{background:linear-gradient(135deg,#34d399f2,#10b981eb);border-color:transparent;color:#f8fffc;box-shadow:0 12px 24px #10b9812e,0 8px 18px #0596693d}.btn-success:hover{background:linear-gradient(135deg,#3dd7a3,var(--success));border-color:transparent;color:#fff}.split-container{display:flex;flex:1;overflow:hidden}.panel{flex:1;display:flex;flex-direction:column;border-right:1px solid var(--border);min-width:0}.panel:last-child{border-right:none}.panel-header{background:var(--bg-secondary);padding:.4rem .8rem;border-bottom:1px solid var(--border);display:flex;align-items:center;gap:.5rem;flex-shrink:0}.panel-header .label{font-size:.75rem;color:var(--text-muted);text-transform:uppercase;letter-spacing:.05em}.panel-header .filename{font-size:.85rem;font-weight:500}.panel-body{flex:1;overflow:hidden;display:flex;flex-direction:column}.upload-container{display:flex;flex-direction:column;height:100%}.upload-zone{display:flex;flex-direction:column;align-items:center;justify-content:center;flex:1;gap:1rem;padding:2rem;cursor:pointer;border:2px dashed var(--border);margin:1rem 1rem .5rem;border-radius:12px;transition:all .2s ease;background:var(--border-subtle)}.upload-zone:hover,.upload-zone.dragover{border-color:var(--accent);background:var(--accent-glow)}.upload-zone .icon{font-size:3rem;color:var(--text-muted)}.upload-zone p{color:var(--text-muted);text-align:center}.url-input-row{display:flex;gap:.4rem;padding:.5rem 1rem 1rem;align-items:center}.url-input-row input{flex:1;padding:.4rem .6rem;background:var(--input-bg);border:1px solid var(--border);border-radius:4px;color:var(--text);font-size:.85rem;outline:none}.url-input-row input:focus{border-color:var(--accent)}.category-list{width:200px;border-right:1px solid var(--border);overflow:hidden;flex-shrink:0;display:flex;flex-direction:column}.resize-handle{width:4px;cursor:col-resize;background:transparent;flex-shrink:0;transition:background .15s;position:relative}.resize-handle:after{content:"";position:absolute;top:0;bottom:0;left:-3px;right:-3px}.resize-handle:hover,.resize-handle:active{background:var(--accent)}.category-item{padding:.4rem .8rem;cursor:pointer;border-bottom:1px solid var(--border);font-size:.85rem;display:flex;justify-content:space-between;align-items:center;gap:.5rem;transition:background .1s}.category-item:hover{background:var(--accent-glow)}.category-item.active{background:var(--selection-bg);border-left:3px solid var(--accent)}.category-item .count{font-size:.75rem;color:var(--text-muted);background:var(--tag-bg);padding:.1rem .4rem;border-radius:10px}.category-item .category-actions{display:none;gap:.3rem}.category-item:hover .category-actions{display:flex}.rule-list-container{flex:1;display:flex;flex-direction:column;overflow:hidden;position:relative}.rule-toolbar{padding:.4rem .8rem;display:flex;gap:.5rem;align-items:center;border-bottom:1px solid var(--border);flex-shrink:0;position:sticky;top:0;z-index:10;background:var(--bg-secondary);box-shadow:var(--shadow)}.rule-toolbar input{flex:1;padding:.3rem .6rem;background:var(--input-bg);border:1px solid var(--border);border-radius:4px;color:var(--text);font-size:.85rem;outline:none}.rule-toolbar input:focus{border-color:var(--accent)}.rule-list{flex:1;overflow-y:auto;font-family:Cascadia Code,Fira Code,monospace;font-size:.82rem;min-height:0}.rule-item{padding:.25rem .8rem;border-bottom:1px solid var(--border-subtle);display:flex;align-items:center;gap:.5rem;cursor:default}.rule-item .rule-invalid-icon{color:var(--warning);font-size:.9rem;flex-shrink:0;title:"Invalid format"}.rule-item:hover{background:var(--border-subtle)}.rule-item.selected{background:var(--selection-bg)}.rule-item .rule-type{font-size:.7rem;color:var(--accent);min-width:60px}.rule-item .rule-value{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.rule-item .rule-actions{display:none;gap:.3rem}.rule-item:hover .rule-actions{display:flex}.rule-item .copy-btn{cursor:pointer;color:var(--text-muted);padding:.1rem .3rem;border-radius:3px;font-size:.8rem}.rule-item .copy-btn:hover{color:var(--success);background:#2ecc711a}.status-bar{background:var(--bg-secondary);border-top:1px solid var(--border);padding:.2rem 1rem;font-size:.75rem;color:var(--text-muted);display:flex;gap:1.5rem;flex-shrink:0;box-shadow:0 -1px 3px #0000001a}.add-rule-form{display:flex;gap:.5rem;padding:.4rem .8rem;border-bottom:1px solid var(--border);flex-shrink:0;background:var(--bg-secondary)}.add-rule-form input{flex:1;padding:.3rem .6rem;background:var(--input-bg);border:1px solid var(--border);border-radius:4px;color:var(--text);font-size:.85rem;outline:none}.add-rule-form select{padding:.3rem .6rem;background:var(--input-bg);border:1px solid var(--border);border-radius:4px;color:var(--text);font-size:.85rem;outline:none}.format-badge{font-size:.7rem;padding:.1rem .4rem;border-radius:3px;background:var(--tag-bg);color:var(--accent);text-transform:uppercase}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:var(--overlay);display:flex;align-items:center;justify-content:center;z-index:100;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.modal{background:var(--bg-secondary);border:1px solid var(--border);border-radius:12px;padding:1.5rem;min-width:400px;max-width:90vw;box-shadow:var(--shadow-lg)}.modal h3,.modal .form-group{margin-bottom:1rem}.modal .form-group label{display:block;font-size:.85rem;color:var(--text-muted);margin-bottom:.3rem}.modal .form-group input,.modal .form-group select{width:100%;padding:.4rem .6rem;background:var(--input-bg);border:1px solid var(--border);border-radius:4px;color:var(--text);font-size:.9rem;outline:none}.modal-actions{display:flex;gap:.5rem;justify-content:flex-end;margin-top:1rem}.modal-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:1.25rem}.modal-header h2{margin:0;font-size:1.1rem;font-weight:600}.modal-footer{display:flex;gap:.5rem;justify-content:flex-end;margin-top:1.25rem}.modal-body{display:flex;flex-direction:column;gap:.5rem}.new-file-label{font-size:.8rem;color:var(--text-muted);font-weight:500;margin-top:.5rem}.new-file-input{width:100%;padding:.45rem .65rem;background:var(--input-bg);border:1px solid var(--border);border-radius:8px;color:var(--text);font-size:.9rem;outline:none;box-sizing:border-box;transition:border-color .15s}.new-file-input:focus{border-color:var(--accent)}.new-file-type-grid{display:grid;grid-template-columns:1fr 1fr;gap:.5rem}.new-file-type-card{display:flex;flex-direction:column;align-items:center;gap:.2rem;padding:.75rem .5rem;background:var(--bg-tertiary);border:2px solid var(--border);border-radius:10px;cursor:pointer;transition:border-color .15s,background .15s;font-family:inherit;color:var(--text)}.new-file-type-card:hover{border-color:var(--accent)}.new-file-type-card.selected{border-color:var(--accent);background:color-mix(in srgb,var(--accent) 12%,var(--bg-tertiary))}.new-file-type-icon{font-size:1.5rem}.new-file-type-name{font-size:.9rem;font-weight:600}.new-file-type-desc{font-size:.75rem;color:var(--text-muted);text-align:center}.new-file-format-row{display:flex;gap:.4rem;flex-wrap:wrap}.new-file-format-btn{padding:.35rem .75rem;background:var(--bg-tertiary);border:2px solid var(--border);border-radius:8px;cursor:pointer;font-size:.82rem;font-family:inherit;color:var(--text);transition:border-color .15s,background .15s}.new-file-format-btn:hover{border-color:var(--accent)}.new-file-format-btn.selected{border-color:var(--accent);background:color-mix(in srgb,var(--accent) 12%,var(--bg-tertiary));font-weight:600}.upload-new-file-row{display:flex;justify-content:center;margin-top:.5rem}.toast{position:fixed;bottom:2rem;right:2rem;background:var(--bg-secondary);border:1px solid var(--border);padding:.6rem 1.2rem;border-radius:8px;font-size:.85rem;z-index:200;animation:slideIn .2s ease;box-shadow:var(--shadow-lg)}.toast.success{border-color:var(--success)}.toast.error{border-color:var(--danger)}@keyframes slideIn{0%{transform:translateY(20px);opacity:0}to{transform:translateY(0);opacity:1}}.about-modal{position:relative;background:var(--bg-secondary);border:1px solid var(--border);border-radius:16px;padding:2rem 2.5rem;min-width:380px;max-width:440px;text-align:center;animation:aboutFadeIn .25s ease;box-shadow:var(--shadow-lg)}@keyframes aboutFadeIn{0%{transform:scale(.92);opacity:0}to{transform:scale(1);opacity:1}}.about-logo{margin-bottom:1rem}.about-logo img{width:100px;height:100px;border-radius:20px;box-shadow:0 4px 24px var(--accent-glow);border:2px solid var(--border)}.about-title{font-size:1.4rem;margin:0 0 .3rem;background:var(--gradient-accent);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.about-version{display:inline-block;font-size:.8rem;color:var(--text-muted);background:var(--bg-panel);padding:.15rem .6rem;border-radius:10px;margin-bottom:1rem}.about-desc{font-size:.85rem;color:var(--text-muted);line-height:1.5;margin-bottom:1.2rem}.about-features{display:grid;grid-template-columns:1fr 1fr;gap:.5rem;margin-bottom:1.2rem}.about-feature{font-size:.78rem;color:var(--text);background:var(--bg-panel);padding:.4rem .6rem;border-radius:6px;text-align:left}.about-links{margin-bottom:1rem}.about-github{display:inline-flex;align-items:center;gap:.4rem;padding:.5rem 1.2rem;background:var(--bg-panel);color:var(--text);border:1px solid var(--border);border-radius:8px;text-decoration:none;font-size:.85rem;font-weight:500;transition:all .2s}.about-github:hover{background:var(--accent);color:#fff;border-color:var(--accent)}.about-footer{font-size:.75rem;color:var(--text-muted)}.about-donate{margin-bottom:1rem;text-align:center}.about-donate-label{font-size:.75rem;color:var(--text-muted);margin-bottom:.4rem}.about-wallet{display:inline-flex;align-items:center;gap:.4rem;padding:.4rem .8rem;background:var(--bg-panel);border:1px solid var(--border);border-radius:8px;cursor:pointer;transition:all .2s}.about-wallet:hover{border-color:var(--accent);background:var(--accent-glow)}.about-wallet code{font-size:.65rem;color:var(--text);word-break:break-all}.about-wallet-icon{font-size:.8rem;flex-shrink:0}.about-copied{font-size:.72rem;color:var(--success);margin-top:.3rem}.loading{display:flex;align-items:center;justify-content:center;height:100%;color:var(--text-muted)}.spinner{width:24px;height:24px;border:2px solid var(--border);border-top-color:var(--accent);border-radius:50%;animation:spin .6s linear infinite;margin-right:.5rem}@keyframes spin{to{transform:rotate(360deg)}}::-webkit-scrollbar{width:6px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--scrollbar);border-radius:3px}::-webkit-scrollbar-thumb:hover{background:var(--accent)}.theme-toggle,.icon-btn{width:32px;height:32px;border:1px solid var(--border);border-radius:10px;background:var(--btn-surface),var(--bg-elevated);color:var(--text);font-size:1rem;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:transform .18s ease,box-shadow .18s ease,border-color .18s ease,background .18s ease,color .18s ease;box-shadow:var(--btn-shadow);padding:0}.theme-toggle:hover,.icon-btn:hover{transform:translateY(-1px);color:#fff;border-color:#7ba3ff61;background:linear-gradient(135deg,#5b8af542,#38bdf82e),var(--bg-elevated);box-shadow:var(--btn-shadow-hover)}.lang-toggle{width:32px;height:32px;border:1px solid var(--border);border-radius:10px;background:var(--btn-surface),var(--bg-elevated);color:var(--text);font-size:.7rem;font-weight:600;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:transform .18s ease,box-shadow .18s ease,border-color .18s ease,background .18s ease,color .18s ease;box-shadow:var(--btn-shadow);letter-spacing:.02em}.lang-toggle:hover{transform:translateY(-1px);color:#fff;border-color:#7ba3ff61;background:linear-gradient(135deg,#5b8af542,#38bdf82e),var(--bg-elevated);box-shadow:var(--btn-shadow-hover)}.pagination{display:flex;align-items:center;justify-content:space-between;padding:.3rem .5rem;border-top:1px solid var(--border);flex-shrink:0;font-size:.75rem;position:sticky;bottom:0;z-index:10;background:var(--bg-secondary);box-shadow:0 -1px 3px #0000001a}.pagination-controls{display:flex;align-items:center;gap:.3rem}.pagination-info{color:var(--text-muted);min-width:60px;text-align:center}.pagination-size{padding:.15rem .3rem;background:var(--input-bg);border:1px solid var(--border);border-radius:3px;color:var(--text);font-size:.75rem}.category-items{flex:1;overflow-y:auto;min-height:0}.category-list>div:first-child{position:sticky;top:0;z-index:10;background:var(--bg-secondary);flex-shrink:0}.category-list>div:nth-child(2){flex-shrink:0}.selection-count{font-size:.8rem;color:var(--accent);padding:.2rem .6rem;background:var(--selection-bg);border-radius:4px}
