:root{--bg: #080810;--bg2: #0c0c18;--bg3: #10101e;--card: #13131f;--card2: #16162a;--input-bg: #0a0a14;--border: #1e2040;--border2: #252550;--text: #e2e8f0;--text2: #94a3b8;--muted: #4a5568;--cyan: #00d4ff;--cyan2: #00b8d9;--green: #00ff88;--green2: #00cc6a;--red: #ff4466;--yellow: #ffcc00;--purple: #b44eff;--orange: #ff8800;--sidebar-w: 265px;--header-h: 56px;--font-mono: "JetBrains Mono", "Fira Code", "Consolas", "Courier New", monospace;--font-sans: "Inter", system-ui, -apple-system, sans-serif}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html,body,#root{height:100%}body{background:var(--bg);color:var(--text);font-family:var(--font-sans);font-size:14px;line-height:1.6;overflow-x:hidden}::-webkit-scrollbar{width:5px;height:5px}::-webkit-scrollbar-track{background:var(--bg2)}::-webkit-scrollbar-thumb{background:var(--border2);border-radius:3px}::-webkit-scrollbar-thumb:hover{background:var(--muted)}a{color:var(--cyan);text-decoration:none}a:hover{text-decoration:underline}input,textarea,select{background:var(--input-bg);border:1px solid var(--border);color:var(--text);font-family:var(--font-mono);font-size:.875rem;border-radius:6px;padding:9px 13px;outline:none;transition:border-color .2s,box-shadow .2s;width:100%}input:focus,textarea:focus,select:focus{border-color:var(--cyan);box-shadow:0 0 0 2px #00d4ff1f}input::placeholder,textarea::placeholder{color:var(--muted)}button{cursor:pointer;font-family:var(--font-mono);border:none;border-radius:6px;transition:all .2s;font-size:.8rem;font-weight:700;letter-spacing:.08em}button:disabled{opacity:.45;cursor:not-allowed}.tool-page{padding:28px 32px;max-width:980px;animation:fadeIn .25s ease}.tool-header{margin-bottom:28px}.tool-title{color:var(--cyan);font-family:var(--font-mono);font-size:1.3rem;font-weight:700;letter-spacing:.06em;margin-bottom:6px;display:flex;align-items:center;gap:10px}.tool-desc{color:var(--text2);font-size:.88rem}.card{background:var(--card);border:1px solid var(--border);border-radius:10px;padding:20px;margin-bottom:18px}.card-title{color:var(--text2);font-family:var(--font-mono);font-size:.68rem;text-transform:uppercase;letter-spacing:.15em;margin-bottom:14px;display:flex;align-items:center;gap:8px}.card-title:before{content:"";display:inline-block;width:3px;height:12px;background:var(--cyan);border-radius:2px}.label{display:block;color:var(--text2);font-size:.68rem;font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.15em;margin-bottom:8px}.btn{padding:10px 22px;text-transform:uppercase;white-space:nowrap}.btn-cyan{background:var(--cyan);color:#000}.btn-cyan:hover:not(:disabled){background:var(--cyan2);box-shadow:0 0 18px #00d4ff59}.btn-green{background:var(--green);color:#000}.btn-green:hover:not(:disabled){background:var(--green2);box-shadow:0 0 18px #00ff8859}.btn-red{background:var(--red);color:#fff}.btn-red:hover:not(:disabled){background:#e03;box-shadow:0 0 18px #ff446659}.btn-outline{background:transparent;border:1px solid var(--border2);color:var(--text2)}.btn-outline:hover:not(:disabled){border-color:var(--cyan);color:var(--cyan)}.btn-sm{padding:6px 14px;font-size:.72rem}.row{display:flex;gap:10px;align-items:flex-start}.row input,.row select{flex:1}.col{display:flex;flex-direction:column;gap:14px}.grid-2{display:grid;grid-template-columns:1fr 1fr;gap:14px}.grid-3{display:grid;grid-template-columns:1fr 1fr 1fr;gap:14px}.error-box{background:#ff446612;border:1px solid rgba(255,68,102,.3);border-radius:8px;padding:12px 16px;color:var(--red);font-family:var(--font-mono);font-size:.8rem;margin-bottom:16px}.info-box{background:#00d4ff0f;border:1px solid rgba(0,212,255,.25);border-radius:8px;padding:12px 16px;color:var(--cyan);font-family:var(--font-mono);font-size:.8rem;margin-bottom:16px}.warn-box{background:#ffcc0012;border:1px solid rgba(255,204,0,.3);border-radius:8px;padding:12px 16px;color:var(--yellow);font-family:var(--font-mono);font-size:.8rem;margin-bottom:16px}.result-table{width:100%;border-collapse:collapse;font-family:var(--font-mono);font-size:.8rem}.result-table th{background:var(--bg2);color:var(--text2);padding:9px 14px;text-align:left;font-weight:500;border-bottom:1px solid var(--border);text-transform:uppercase;letter-spacing:.1em;font-size:.68rem}.result-table td{padding:9px 14px;border-bottom:1px solid var(--border);color:var(--text);word-break:break-all}.result-table tr:last-child td{border-bottom:none}.result-table tr:hover td{background:#ffffff05}.badge{display:inline-flex;align-items:center;padding:2px 8px;border-radius:4px;font-family:var(--font-mono);font-size:.68rem;font-weight:700;letter-spacing:.04em}.badge-open{background:#00ff881f;color:var(--green);border:1px solid rgba(0,255,136,.25)}.badge-closed{background:#ff44661a;color:var(--red);border:1px solid rgba(255,68,102,.2)}.badge-filtered{background:#ffcc001a;color:var(--yellow);border:1px solid rgba(255,204,0,.2)}.badge-cyan{background:#00d4ff1a;color:var(--cyan);border:1px solid rgba(0,212,255,.2)}.badge-purple{background:#b44eff1a;color:var(--purple);border:1px solid rgba(180,78,255,.2)}.badge-orange{background:#ff88001a;color:var(--orange);border:1px solid rgba(255,136,0,.2)}.pre-output{background:var(--bg2);border:1px solid var(--border);border-radius:8px;padding:16px;font-family:var(--font-mono);font-size:.78rem;color:var(--green);white-space:pre-wrap;overflow-x:auto;max-height:420px;overflow-y:auto;line-height:1.5}.upload-zone{border:2px dashed var(--border2);border-radius:10px;padding:36px;text-align:center;cursor:pointer;transition:all .2s;background:var(--input-bg)}.upload-zone:hover,.upload-zone.drag-over{border-color:var(--cyan);background:#00d4ff0a}.upload-zone input[type=file]{display:none}.upload-icon{font-size:2.5rem;margin-bottom:12px;opacity:.6}.upload-text{color:var(--text2);font-size:.85rem}.upload-hint{color:var(--muted);font-size:.75rem;margin-top:6px;font-family:var(--font-mono)}.stat-val{font-family:var(--font-mono);font-size:1.8rem;font-weight:700;color:var(--cyan)}.stat-lbl{color:var(--text2);font-size:.72rem;text-transform:uppercase;letter-spacing:.1em;margin-top:4px}@keyframes fadeIn{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@keyframes pulse{0%,to{opacity:1}50%{opacity:.4}}@keyframes blink{0%,to{opacity:1}50%{opacity:0}}@keyframes scanLine{0%{transform:translate(-100%)}to{transform:translate(100%)}}@keyframes glitch{0%,to{clip-path:inset(0 0 98% 0);transform:translate(-2px)}20%{clip-path:inset(30% 0 50% 0);transform:translate(2px)}40%{clip-path:inset(70% 0 20% 0);transform:translate(-1px)}}.scanning{animation:pulse 1s infinite}.blink{animation:blink 1s step-end infinite}.spinner{width:20px;height:20px;border:2px solid var(--border2);border-top-color:var(--cyan);border-radius:50%;animation:spin .7s linear infinite;display:inline-block}@keyframes spin{to{transform:rotate(360deg)}}.checkbox-row{display:flex;align-items:center;gap:10px;cursor:pointer;-webkit-user-select:none;user-select:none}.checkbox-row input[type=checkbox]{width:16px;height:16px;accent-color:var(--cyan);cursor:pointer}.copy-btn{background:transparent;border:1px solid var(--border2);color:var(--text2);padding:4px 10px;font-size:.7rem;cursor:pointer;border-radius:4px}.copy-btn:hover{border-color:var(--cyan);color:var(--cyan)}
