html{background:#f6f8fb;color:#172033}body{margin:0;font-family:Nunito,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif}@font-face{font-family:Nunito;font-style:normal;font-weight:400;src:local(""),url(./nunito-v16-latin-regular.06f3af3f.woff2) format("woff2")}#app{min-height:100vh}.page{box-sizing:border-box;width:min(1560px,calc(100vw - 36px));margin:0 auto;padding:22px 0}.toolbar{display:flex;align-items:center;justify-content:space-between;gap:14px;margin-bottom:18px}.toolbar>div:first-child{min-width:250px;flex:1 1 auto}.toolbar-actions{display:flex;flex:0 1 auto;flex-wrap:nowrap;align-items:center;justify-content:flex-end;gap:7px;min-width:0;overflow-x:auto;overflow-y:hidden;padding-bottom:2px;scrollbar-width:thin}.toolbar-actions>*{flex:0 0 auto}.batch-button{border-color:#bbf7d0;background:#f0fdf4;color:#15803d}.batch-button:hover{border-color:#16a34a;color:#166534}.filter-label{display:flex;align-items:center;gap:6px;color:#475569;font-size:13px;white-space:nowrap}.filter-label select{min-width:112px;height:38px;border:1px solid #dbe3ef;border-radius:10px;background:#fff;color:#172033;padding:0 10px;outline:none}.filter-label select:focus{border-color:#2563eb;box-shadow:0 0 0 3px #2563eb1f}h1{display:inline-flex;align-items:baseline;flex-wrap:nowrap;margin:0 0 8px;color:#111827;font-size:28px;line-height:1.2;white-space:nowrap}p{margin:0;color:#64748b}#summary{font-size:12px;line-height:1.5}.primary-button{display:inline-flex;align-items:center;justify-content:center;gap:7px;border:0;border-radius:10px;background:#2563eb;color:#fff;padding:10px 13px;font-size:14px;font-weight:800;white-space:nowrap;cursor:pointer;transition:background .16s ease,transform .16s ease}.primary-button:hover{background:#1d4ed8;transform:translateY(-1px)}.secondary-button{display:inline-flex;align-items:center;justify-content:center;gap:7px;border:1px solid #dbe3ef;border-radius:10px;background:#fff;color:#334155;padding:9px 12px;font-size:14px;font-weight:700;white-space:nowrap;cursor:pointer;transition:border-color .16s ease,color .16s ease,transform .16s ease}.secondary-button:hover{border-color:#2563eb;color:#1d4ed8;transform:translateY(-1px)}.export-button{display:inline-flex;align-items:center;justify-content:center;gap:7px;border:0;border-radius:10px;background:#0f766e;color:#fff;padding:9px 12px;font-size:14px;font-weight:800;white-space:nowrap;cursor:pointer;box-shadow:0 10px 22px #2563eb2e;transition:box-shadow .16s ease,filter .16s ease,transform .16s ease}.export-button:hover{filter:brightness(1.04);transform:translateY(-1px);box-shadow:0 14px 28px #2563eb3d}.button-icon{width:16px;height:16px;flex:0 0 auto;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;fill:none}.export-button .button-icon,.primary-button .button-icon{stroke-width:2.2}.primary-button:disabled,.secondary-button:disabled,.export-button:disabled{cursor:not-allowed;transform:none}.primary-button:disabled{background:#94a3b8}.secondary-button:disabled{border-color:#dbe3ef;color:#94a3b8}.export-button:disabled{background:#94a3b8;box-shadow:none}.status-card{display:flex;align-items:center;gap:10px;min-height:20px;margin-bottom:14px;border:1px solid #e2e8f0;border-radius:12px;background:#fff;padding:12px 14px;color:#334155;box-shadow:0 8px 24px #0f172a0a}.selection-card{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:14px;border:1px solid #ccfbf1;border-radius:14px;background:#f0fdfa;padding:13px 14px;box-shadow:0 10px 26px #0f766e14}.selection-card[hidden],.export-card[hidden]{display:none}.selection-card strong{display:block;margin-bottom:4px;color:#115e59;font-size:14px}.selection-card p{color:#475569;font-size:12px;line-height:1.5}.selection-actions{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:8px}.export-card{margin-bottom:14px;border:1px solid #dbeafe;border-radius:14px;background:#eff6ff;padding:14px;box-shadow:0 10px 28px #2563eb14}.export-card-header{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:12px}.export-card strong{display:block;margin-bottom:4px;color:#1e3a8a;font-size:14px}.export-card p{color:#475569;font-size:12px}.export-card-actions{display:flex;flex-wrap:wrap;gap:8px}.mini-button{border:1px solid #bfdbfe;border-radius:999px;background:#fff;color:#1d4ed8;padding:7px 12px;font-size:12px;font-weight:700;cursor:pointer;transition:border-color .16s ease,background .16s ease}.mini-button:hover{border-color:#2563eb;background:#dbeafe}.mini-button:disabled{cursor:not-allowed;border-color:#e2e8f0;background:#f8fafc;color:#94a3b8}.danger-mini-button{border-color:#fecaca;color:#b91c1c}.danger-mini-button:hover{border-color:#ef4444;background:#fef2f2}.export-fields{display:grid;grid-template-columns:repeat(auto-fill,minmax(138px,1fr));gap:8px}.export-field-option{display:flex;align-items:center;gap:8px;border:1px solid #dbeafe;border-radius:10px;background:rgba(255,255,255,.78);padding:8px 10px;color:#334155;font-size:13px;cursor:pointer}.export-field-option input{accent-color:#2563eb}.export-dialog-backdrop{position:fixed;inset:0;z-index:90;display:flex;align-items:center;justify-content:center;background:rgba(15,23,42,.38);padding:22px;backdrop-filter:blur(6px)}.export-dialog-backdrop[hidden]{display:none}.export-dialog{width:min(720px,100%);border:1px solid #dbeafe;border-radius:20px;background:#fff;padding:20px;box-shadow:0 30px 80px #0f172a42}.export-dialog-header{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:16px}.export-dialog-kicker{display:inline-flex;margin-bottom:6px;border-radius:999px;background:#ecfeff;color:#0f766e;padding:4px 9px;font-size:12px;font-weight:800}.export-dialog h2{margin:0;color:#0f172a;font-size:22px;line-height:1.25}.dialog-close-button{width:34px;height:34px;border:1px solid #e2e8f0;border-radius:999px;background:#fff;color:#64748b;font-size:22px;line-height:1;cursor:pointer}.dialog-close-button:hover{border-color:#2563eb;color:#1d4ed8}.export-summary-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-bottom:14px}.export-summary-item{min-width:0;border:1px solid #e2e8f0;border-radius:14px;background:#f8fafc;padding:11px 12px}.export-summary-item span{display:block;margin-bottom:5px;color:#64748b;font-size:12px;font-weight:700}.export-summary-item strong{display:block;color:#172033;font-size:14px;line-height:1.45;overflow-wrap:anywhere}.export-dialog-note{border-radius:14px;background:#eff6ff;color:#1e3a8a;padding:10px 12px;font-size:13px;line-height:1.55}.export-dialog-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:16px}.status-dot{width:9px;height:9px;border-radius:999px;background:#94a3b8}.status-dot.loading{background:#f59e0b}.status-dot.success{background:#16a34a}.status-dot.error{background:#dc2626}.table-panel{overflow:hidden;border:1px solid #e2e8f0;border-radius:14px;background:#fff;box-shadow:0 16px 38px #0f172a12}table{width:100%;border-collapse:collapse;table-layout:fixed}thead{background:#f8fafc}th,td{border-bottom:1px solid #e5e7eb;padding:12px 14px;text-align:left;font-size:14px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}th{color:#475569;font-weight:700}th[data-sort]{cursor:pointer}.sort-header{display:inline-flex;align-items:center;justify-content:flex-start;gap:2px;width:100%;border:0;background:transparent;color:inherit;padding:0;font:inherit;cursor:pointer}.sort-header:hover,.sort-header.active{color:#2563eb}.sort-mark{min-width:16px;color:#94a3b8;font-size:12px}.sort-header.active .sort-mark{color:#2563eb}td{color:#1f2937}tbody tr:hover{background:#f8fbff}tbody tr.row-selected{background:#f0fdfa}tbody tr.row-selected:hover{background:#ccfbf1}tbody tr:last-child td{border-bottom:0}.select-header,.select-cell{text-align:center}.select-header input,.select-cell input{width:16px;height:16px;accent-color:#0f766e;cursor:pointer}.ip-cell{color:#0f172a;font-family:Consolas,SFMono-Regular,monospace;font-weight:700}.copy-ip-cell{cursor:copy;user-select:none}.copy-ip-cell:hover{color:#2563eb;text-decoration:underline;text-underline-offset:3px}.meta-ip-cell{color:#475569;font-family:Consolas,SFMono-Regular,monospace;max-width:0}.speed-cell{color:#15803d;font-weight:700}.isp-cell{overflow:hidden;color:#334155;text-overflow:ellipsis}.source-cell{color:#64748b;font-size:12px}.country-badge,.colo-badge,.type-badge{display:inline-flex;align-items:center;min-width:34px;justify-content:center;border-radius:999px;padding:3px 8px;font-size:12px;font-weight:700}.country-badge{background:#eff6ff;color:#1d4ed8}.colo-badge{background:#ecfdf5;color:#047857}.type-badge{min-width:74px}.type-hosting{background:#fef2f2;color:#b91c1c}.type-proxy{background:#fff7ed;color:#c2410c}.type-mobile{background:#fdf4ff;color:#a21caf}.type-residential{background:#ecfdf5;color:#047857}.type-error,.type-unknown{background:#f1f5f9;color:#64748b}.empty-cell{padding:42px 14px;text-align:center;color:#94a3b8}.source-line{margin-top:12px;color:#64748b;font-size:12px;word-break:break-all}.pagination{display:flex;align-items:center;justify-content:center;gap:12px;margin-top:14px;color:#475569;font-size:13px}.page-button{padding:8px 14px}.toast{position:fixed;top:18px;left:50%;z-index:100;transform:translate(-50%,-12px);opacity:0;pointer-events:none;border:1px solid #bbf7d0;border-radius:999px;background:#ecfdf5;color:#15803d;padding:9px 16px;font-size:14px;font-weight:700;box-shadow:0 16px 36px #0f172a1f;transition:opacity .18s ease,transform .18s ease}.toast.show{transform:translate(-50%);opacity:1}@media (max-width: 760px){.page{width:calc(100vw - 24px);padding:20px 0}.toolbar{align-items:flex-start;flex-direction:column}.toolbar-actions{width:100%;justify-content:flex-start}.selection-card{align-items:flex-start;flex-direction:column}.selection-actions{width:100%;justify-content:flex-start}.table-panel{overflow-x:auto}table{min-width:1588px}.export-card-header{flex-direction:column}.export-dialog{padding:16px}.export-summary-grid{grid-template-columns:1fr}.export-dialog-actions{flex-direction:column-reverse}.export-dialog-actions button{width:100%}}.col-select{width:48px}.col-ip{width:150px}.col-type{width:120px}.col-country{width:130px}.col-isp{width:260px}.col-meta-ip{width:220px}.col-port{width:72px}.col-speed{width:105px}.col-cf-country{width:126px}.col-latency{width:128px}:root{--terminal-bg: #020705;--terminal-panel: rgba(4, 16, 12, .94);--terminal-panel-strong: #07130f;--terminal-border: rgba(34, 197, 94, .34);--terminal-border-strong: rgba(74, 222, 128, .74);--terminal-text: #d1fae5;--terminal-muted: #86efac;--terminal-dim: #4ade80;--terminal-green: #22c55e;--terminal-green-bright: #00ff88;--terminal-cyan: #67e8f9;--terminal-amber: #fbbf24;--terminal-red: #fb7185;--terminal-shadow: 0 0 0 1px rgba(34, 197, 94, .12), 0 20px 60px rgba(0, 0, 0, .48)}html{background:radial-gradient(circle at top left,rgba(34,197,94,.16),transparent 34%),radial-gradient(circle at 80% 0%,rgba(20,184,166,.1),transparent 30%),linear-gradient(180deg,#04110c 0%,var(--terminal-bg) 56%,#000 100%);color:var(--terminal-text)}body{position:relative;background:linear-gradient(rgba(34,197,94,.025) 1px,transparent 1px),linear-gradient(90deg,rgba(34,197,94,.022) 1px,transparent 1px);background-size:26px 26px;color:var(--terminal-text);font-family:Consolas,SFMono-Regular,Cascadia Mono,Courier New,monospace}body:before{position:fixed;inset:0;z-index:-1;pointer-events:none;content:"";background:repeating-linear-gradient(180deg,rgba(134,239,172,.035) 0,rgba(134,239,172,.035) 1px,transparent 1px,transparent 4px);opacity:.42}h1{color:var(--terminal-green-bright);letter-spacing:.02em;text-shadow:0 0 18px rgba(0,255,136,.35)}h1:before{content:"> ";color:var(--terminal-cyan)}.title-count{margin-left:6px;color:var(--terminal-cyan);flex:0 0 auto;font-size:.62em;font-weight:700;text-shadow:0 0 14px rgba(103,232,249,.32)}p,#summary{color:var(--terminal-muted)}.toolbar,.status-card,.selection-card,.export-card,.table-panel,.export-dialog{border-color:var(--terminal-border);background:var(--terminal-panel);box-shadow:var(--terminal-shadow);backdrop-filter:blur(10px)}.toolbar{border:1px solid rgba(34,197,94,.16);border-radius:18px;padding:14px}.filter-label{color:var(--terminal-muted)}.filter-label select{border-color:var(--terminal-border);background:#020705;color:var(--terminal-text);box-shadow:inset 0 0 18px #22c55e14}.filter-label select:focus{border-color:var(--terminal-green-bright);box-shadow:0 0 0 3px #00ff8829,inset 0 0 18px #22c55e1f}.primary-button,.secondary-button,.export-button,.mini-button{border-color:var(--terminal-border);background:rgba(3,20,13,.94);color:var(--terminal-text);text-shadow:0 0 10px rgba(34,197,94,.22);box-shadow:inset 0 0 0 1px #22c55e14,0 0 18px #22c55e14}.primary-button,.export-button{border:1px solid var(--terminal-border-strong);background:#052e16;color:#ecfdf5}.batch-button{border-color:#22c55e6b;background:rgba(5,46,22,.72);color:var(--terminal-green-bright)}.primary-button:hover,.secondary-button:hover,.export-button:hover,.mini-button:hover,.batch-button:hover{border-color:var(--terminal-green-bright);background:rgba(6,78,59,.92);color:#fff;box-shadow:0 0 22px #00ff8838,inset 0 0 18px #22c55e1a}.primary-button:disabled,.secondary-button:disabled,.export-button:disabled,.mini-button:disabled{border-color:#4ade8029;background:rgba(15,23,42,.8);color:#86efac6b;box-shadow:none}.danger-mini-button{border-color:#fb718575;color:var(--terminal-red)}.danger-mini-button:hover{border-color:var(--terminal-red);background:rgba(69,10,10,.72)}.status-card{color:var(--terminal-text)}.status-dot{background:#64748b;box-shadow:0 0 12px #94a3b866}.status-dot.loading{background:var(--terminal-amber);box-shadow:0 0 14px #fbbf24b3}.status-dot.success{background:var(--terminal-green-bright);box-shadow:0 0 16px #00ff88c2}.status-dot.error{background:var(--terminal-red);box-shadow:0 0 16px #fb7185b8}.selection-card,.export-card{background:linear-gradient(135deg,rgba(4,26,17,.96),rgba(2,9,7,.94))}.selection-card strong,.export-card strong{color:var(--terminal-green-bright)}.selection-card p,.export-card p{color:var(--terminal-muted)}thead{background:#03140d}th,td{border-bottom-color:#22c55e2e}th{color:var(--terminal-muted)}td{color:var(--terminal-text)}tbody tr{background:rgba(2,7,5,.64)}tbody tr:hover{background:rgba(5,46,22,.62)}tbody tr.row-selected{background:rgba(20,83,45,.58)}tbody tr.row-selected:hover{background:rgba(22,101,52,.72)}.select-header input,.select-cell input,.export-field-option input{accent-color:var(--terminal-green-bright)}.ip-cell{color:var(--terminal-green-bright);text-shadow:0 0 12px rgba(0,255,136,.25)}.copy-ip-cell:hover{color:#fff}.meta-ip-cell,.isp-cell,.source-line,.empty-cell{color:var(--terminal-muted)}.speed-cell,.sort-header:hover,.sort-header.active,.sort-header.active .sort-mark{color:var(--terminal-green-bright)}.sort-mark{color:#86efac7a}.country-badge,.colo-badge,.type-badge{border:1px solid rgba(74,222,128,.22);background:rgba(5,46,22,.78);color:var(--terminal-text)}.country-badge{color:var(--terminal-cyan)}.type-hosting{border-color:#fb718557;background:rgba(69,10,10,.72);color:#fecdd3}.type-proxy{border-color:#fbbf246b;background:rgba(69,26,3,.72);color:#fde68a}.type-mobile{border-color:#67e8f95c;background:rgba(8,47,73,.68);color:#cffafe}.type-residential{border-color:#00ff885c;background:rgba(6,78,59,.7);color:#bbf7d0}.type-error,.type-unknown{border-color:#94a3b838;background:rgba(15,23,42,.76);color:#cbd5e1}.export-field-option,.export-summary-item{border-color:#22c55e38;background:rgba(2,7,5,.68);color:var(--terminal-text)}.export-summary-item span{color:var(--terminal-muted)}.export-summary-item strong,.export-dialog h2{color:var(--terminal-text)}.export-dialog-backdrop{background:rgba(0,0,0,.68)}.export-dialog-kicker,.export-dialog-note{background:rgba(5,46,22,.82);color:var(--terminal-green-bright)}.dialog-close-button{border-color:var(--terminal-border);background:#020705;color:var(--terminal-muted)}.dialog-close-button:hover{border-color:var(--terminal-green-bright);color:#fff}.pagination{color:var(--terminal-muted)}.toast{border-color:#00ff8875;background:rgba(4,26,17,.96);color:var(--terminal-green-bright);box-shadow:0 0 30px #00ff883d}
