:root{--bg: #070a15;--bg-grad: radial-gradient(ellipse at 20% 0%, #16213a 0%, #070a15 50%, #050810 100%);--surface: rgba(22, 30, 54, .55);--surface-hover: rgba(30, 40, 68, .75);--border: rgba(124, 170, 255, .12);--border-strong: rgba(124, 170, 255, .25);--text: #e7ecff;--text-dim: #9aa6c8;--text-mute: #64708f;--accent: #7cf0ff;--accent-2: #b79fff;--green: #4ade80;--yellow: #facc15;--red: #fb7185;--blue: #7aa7ff;--purple: #c58dff;--cyan: #67e8f9;--gray: #64748b;--mono: ui-monospace, "Cascadia Code", "JetBrains Mono", "Fira Code", SFMono-Regular, Menlo, monospace;--sans: -apple-system, BlinkMacSystemFont, "Segoe UI", "PingFang SC", "Helvetica Neue", "Microsoft YaHei", Roboto, sans-serif;--radius: 14px;--shadow: 0 10px 40px -10px rgba(0, 0, 0, .4), 0 2px 10px rgba(0, 0, 0, .25)}[data-theme=light]{--bg: #f3f6fd;--bg-grad: radial-gradient(ellipse at 18% -10%, #dfe8ff 0%, #eef2fb 42%, #f7f9fe 78%, #ffffff 100%);--surface: rgba(255, 255, 255, .86);--surface-hover: #ffffff;--border: rgba(35, 56, 120, .1);--border-strong: rgba(35, 56, 120, .22);--text: #0e1b3b;--text-dim: #4a5680;--text-mute: #7a88b0;--accent: #3b82f6;--accent-2: #7c3aed;--green: #16a34a;--yellow: #d97706;--red: #dc2626;--blue: #2563eb;--purple: #7c3aed;--cyan: #0891b2;--gray: #64748b;--shadow: 0 10px 30px -14px rgba(30, 50, 120, .22), 0 2px 8px rgba(30, 50, 120, .08)}[data-theme=light] .bg-grid{background-image:linear-gradient(rgba(35,56,120,.07) 1px,transparent 1px),linear-gradient(90deg,rgba(35,56,120,.07) 1px,transparent 1px)}[data-theme=light] .bg-glow{background:radial-gradient(640px 420px at 10% 8%,rgba(59,130,246,.14),transparent 62%),radial-gradient(540px 360px at 92% 18%,rgba(124,58,237,.12),transparent 62%)}[data-theme=light] .brand-title,[data-theme=light] .ip-big{background:linear-gradient(135deg,#2563eb,#7c3aed);-webkit-background-clip:text;background-clip:text;color:transparent}[data-theme=light] .lookup-form input{background:#fff;color:var(--text)}[data-theme=light] .src-table th{background:#f0f5fff2}[data-theme=light] .toast{background:#fffffffa;color:var(--text)}[data-theme=light] .chip,[data-theme=light] .flag-chip{background:#f0f5ffcc}[data-theme=light] .btn,[data-theme=light] .btn-icon{background:#fff}[data-theme=light] .flag-chip.good{color:#15803d;border-color:#16a34a47;background:#dcfce7b3}[data-theme=light] .flag-chip.bad{color:#b91c1c;border-color:#dc262647;background:#fee2e2b3}[data-theme=light] .flag-chip.warn{color:#b45309;border-color:#d9770647;background:#fef3c7b3}[data-theme=light] .flag-chip.info{color:#1d4ed8;border-color:#2563eb47;background:#dbeafeb3}[data-theme=light] .ai-grid{background:#2338781a}[data-theme=light] .ai-item:hover{background:#3b82f612}[data-theme=light] .src-table tbody tr:hover{background:#3b82f60d}[data-theme=light] .ai-region{background:#dbeafecc;color:#1d4ed8}*{box-sizing:border-box}html,body{margin:0;padding:0}body{font-family:var(--sans);background:var(--bg);background-image:var(--bg-grad);background-attachment:fixed;color:var(--text);min-height:100vh;font-size:15px;line-height:1.55;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}[x-cloak]{display:none!important}.bg-grid{position:fixed;inset:0;background-image:linear-gradient(rgba(124,170,255,.04) 1px,transparent 1px),linear-gradient(90deg,rgba(124,170,255,.04) 1px,transparent 1px);background-size:40px 40px;mask-image:radial-gradient(ellipse at 50% 0%,black 40%,transparent 80%);pointer-events:none;z-index:0}.bg-glow{position:fixed;inset:0;background:radial-gradient(600px 400px at 10% 10%,rgba(124,240,255,.08),transparent 60%),radial-gradient(500px 350px at 90% 20%,rgba(183,159,255,.08),transparent 60%);pointer-events:none;z-index:0}.layout{position:relative;z-index:1;max-width:1180px;margin:0 auto;padding:32px 20px 64px}.hero{display:flex;align-items:center;gap:16px;flex-wrap:wrap;margin-bottom:24px}.brand{display:flex;align-items:center;gap:14px;flex:1;min-width:0}.brand-mark{width:44px;height:44px;border-radius:10px;box-shadow:0 4px 20px #7caaff40;flex-shrink:0}.brand-title{margin:0;font-family:var(--mono);font-size:20px;font-weight:700;letter-spacing:-.02em;background:linear-gradient(135deg,var(--accent) 0%,var(--accent-2) 100%);-webkit-background-clip:text;background-clip:text;color:transparent}.brand-sub{margin:2px 0 0;color:var(--text-dim);font-size:12.5px;font-family:var(--mono)}.toolbar{display:flex;align-items:center;gap:8px}.btn,.btn-ghost,.btn-icon{cursor:pointer;border:1px solid var(--border-strong);background:var(--surface);color:var(--text);padding:9px 16px;font-size:13.5px;font-weight:500;border-radius:10px;font-family:var(--mono);letter-spacing:.02em;transition:all .15s ease;display:inline-flex;align-items:center;gap:6px;backdrop-filter:blur(10px)}.btn:hover{background:var(--surface-hover);border-color:var(--accent);transform:translateY(-1px)}.btn:disabled{opacity:.5;cursor:not-allowed;transform:none}.btn-ghost{background:transparent;border-color:var(--border)}.btn-ghost:hover{border-color:var(--accent);color:var(--accent)}.btn-icon{padding:8px 12px;font-size:14px}.btn-icon:hover{border-color:var(--accent);color:var(--accent)}.ml-auto{margin-left:auto}.top-row{display:grid;grid-template-columns:minmax(0,4fr) minmax(0,7fr);gap:16px;margin-bottom:16px;align-items:stretch}.top-row>.panel{margin-bottom:0;min-width:0}.panel-sources{display:flex;flex-direction:column;min-width:0}.panel-sources .table-wrap{flex:1;overflow:auto;max-height:460px}.top-row .ip-big{font-size:clamp(14px,1.3vw,20px);white-space:nowrap;overflow-x:auto;max-width:100%;letter-spacing:-.01em;scrollbar-width:thin;gap:8px}.top-row .ip-big::-webkit-scrollbar{height:3px}.top-row .ip-big::-webkit-scrollbar-thumb{background:var(--border-strong);border-radius:3px}.top-row .src-table{font-size:12px}.top-row .src-table th,.top-row .src-table td{padding:7px 8px}.top-row .ip-cell{font-family:var(--mono);font-size:11.5px;max-width:140px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.top-row .org-cell{max-width:160px}@media (max-width: 1180px){.top-row{grid-template-columns:1fr}.panel-sources .table-wrap{max-height:none}.top-row .ip-big{font-size:clamp(26px,5.5vw,40px);white-space:normal;word-break:break-all;overflow-x:visible}.top-row .src-table{font-size:13px}.top-row .src-table th,.top-row .src-table td{padding:10px 14px}.top-row .ip-cell{font-size:12px;max-width:none}.top-row .org-cell{max-width:260px}}.ip-cell{font-family:var(--mono);max-width:200px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.panel{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:0;margin-bottom:16px;backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px);box-shadow:var(--shadow);overflow:hidden}.panel-hero{background:linear-gradient(135deg,#7cf0ff0a,#b79fff0a),var(--surface)}.panel-title{display:flex;align-items:center;gap:10px;padding:14px 18px;font-family:var(--mono);font-size:12.5px;color:var(--text-dim);text-transform:uppercase;letter-spacing:.1em;border-bottom:1px solid var(--border)}.panel-title-extra{color:var(--text-mute);font-size:11.5px;text-transform:none;letter-spacing:0}.panel-body{padding:18px}.dot{width:8px;height:8px;border-radius:50%;display:inline-block;flex-shrink:0}.dot-green{background:var(--green);box-shadow:0 0 10px var(--green)}.dot-blue{background:var(--blue);box-shadow:0 0 10px var(--blue)}.dot-purple{background:var(--purple);box-shadow:0 0 10px var(--purple)}.dot-cyan{background:var(--cyan);box-shadow:0 0 10px var(--cyan)}.dot-yellow{background:var(--yellow);box-shadow:0 0 10px var(--yellow)}.dot-red{background:var(--red);box-shadow:0 0 10px var(--red)}.dot-gray{background:var(--gray)}.ip-hero{padding:28px 24px}.ip-big{font-family:var(--mono);font-size:clamp(28px,6vw,44px);font-weight:700;letter-spacing:-.02em;display:inline-flex;align-items:center;gap:12px;cursor:pointer;user-select:all;background:linear-gradient(135deg,var(--accent) 0%,var(--accent-2) 100%);-webkit-background-clip:text;background-clip:text;color:transparent;transition:opacity .15s}.ip-big:hover{opacity:.85}.ip-big .copy-icon{font-size:18px;color:var(--text-mute);opacity:.5;-webkit-text-fill-color:var(--text-mute)}.ip-meta{display:flex;align-items:center;gap:6px;flex-wrap:wrap;color:var(--text-dim);margin-top:8px;font-size:14px}.ip-meta .sep{color:var(--text-mute);margin:0 4px}.flag{font-size:16px;line-height:1}.chip{background:#7caaff14;border:1px solid var(--border);padding:3px 10px;border-radius:20px;font-family:var(--mono);font-size:12px;color:var(--text-dim);white-space:nowrap}.ip-flags{display:flex;gap:6px;flex-wrap:wrap;margin-top:14px}.flag-chip{display:inline-flex;align-items:center;gap:4px;padding:3px 9px;border-radius:20px;font-size:11.5px;font-family:var(--mono);border:1px solid var(--border);background:var(--surface)}.flag-chip.good{color:var(--green);border-color:#4ade804d}.flag-chip.bad{color:var(--red);border-color:#fb71854d}.flag-chip.warn{color:var(--yellow);border-color:#facc154d}.flag-chip.info{color:var(--blue);border-color:#7aa7ff4d}.ai-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(290px,1fr));gap:1px;background:var(--border)}.ai-cat{background:var(--surface);padding:14px 18px 16px;display:flex;flex-direction:column;min-height:100%}.ai-cat-head{display:flex;align-items:center;justify-content:space-between;padding-bottom:10px;margin-bottom:10px;border-bottom:1px dashed var(--border)}.ai-cat-name{font-family:var(--mono);font-size:12px;text-transform:uppercase;letter-spacing:.09em;color:var(--cat-color, var(--text));font-weight:700}.ai-cat-count{font-family:var(--mono);font-size:11px;color:var(--text-mute);background:#7caaff0f;padding:2px 7px;border-radius:10px}.ai-items{display:flex;flex-direction:column;gap:4px}.ai-item{display:flex;align-items:center;gap:10px;padding:7px 10px;border-radius:8px;font-size:13px;transition:background .1s;min-height:30px}.ai-item:hover{background:#7caaff0f}.ai-item.ok .ai-status-icon{color:var(--green)}.ai-item.region_limited .ai-status-icon{color:var(--yellow)}.ai-item.blocked .ai-status-icon{color:var(--red)}.ai-item.login_required .ai-status-icon{color:var(--blue)}.ai-item.error .ai-status-icon,.ai-item.unknown .ai-status-icon{color:var(--gray)}.ai-item.pending .ai-status-icon{color:var(--text-mute)}.ai-item.pending .ai-status-icon:after{content:"\2026"}.ai-status-icon{font-size:14px;font-family:var(--mono);text-align:center;width:16px;flex-shrink:0}.ai-name{color:var(--text);flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:500}.ai-latency{font-family:var(--mono);font-size:11px;color:var(--text-mute);flex-shrink:0}.ai-region{font-family:var(--mono);font-size:10.5px;color:var(--accent);background:#7cf0ff1a;padding:2px 6px;border-radius:4px;flex-shrink:0}.ai-note{font-size:10.5px;color:var(--text-mute);max-width:90px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;flex-shrink:0}#stream-grid{display:flex;flex-direction:column;gap:1px;background:var(--border)}#stream-grid .ai-cat{padding:14px 18px 16px}#stream-grid .ai-items{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:4px 10px}#stream-grid .ai-cat-head{padding-bottom:10px;margin-bottom:12px}.ai-legend{display:flex;gap:18px;flex-wrap:wrap;padding:12px 18px;border-top:1px solid var(--border);font-size:11.5px;color:var(--text-dim);font-family:var(--mono)}.ai-legend>span{display:inline-flex;align-items:center;gap:6px}.table-wrap{overflow-x:auto}.src-table{width:100%;border-collapse:collapse;font-size:13px}.src-table th,.src-table td{padding:10px 14px;text-align:left;border-bottom:1px solid var(--border);white-space:nowrap}.src-table th{font-family:var(--mono);font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.08em;color:var(--text-mute);background:#070a154d;position:sticky;top:0}.src-table tbody tr:hover{background:#7caaff0a}.src-table tr.row-err{opacity:.5}.src-name{font-family:var(--mono);font-weight:500}.src-ok{margin-left:6px;font-family:var(--mono);color:var(--green)}.row-err .src-ok{color:var(--red)}.org-cell{max-width:260px;overflow:hidden;text-overflow:ellipsis}.empty{text-align:center;color:var(--text-mute);padding:28px}.cdn-table td .cdn-status{font-family:var(--mono);font-weight:600}.cdn-row.cdn-ok .cdn-status{color:var(--green)}.cdn-row.cdn-blocked .cdn-status{color:var(--red)}.cdn-row.cdn-pending{opacity:.55}.cdn-row.cdn-pending .cdn-status{color:var(--text-mute)}.chip.chip-host{max-width:360px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--accent)}[data-theme=light] .chip.chip-host{color:#2563eb}.lookup-form{display:flex;gap:8px;padding:18px;flex-wrap:wrap}.lookup-form input{flex:1;min-width:200px;padding:10px 14px;background:#070a1566;color:var(--text);border:1px solid var(--border-strong);border-radius:10px;font-family:var(--mono);font-size:14px;transition:border-color .15s}.lookup-form input:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px #7cf0ff26}.help-text{padding:0 18px 14px;color:var(--text-mute);font-size:12px;font-family:var(--mono)}.skel-line{height:14px;background:linear-gradient(90deg,#7caaff0d,#7caaff1f,#7caaff0d);background-size:200% 100%;border-radius:6px;margin-bottom:10px;animation:skel 1.4s ease-in-out infinite}@keyframes skel{0%{background-position:200% 0}to{background-position:-200% 0}}.spinner,.spinner-sm{display:inline-block;border:2px solid rgba(124,240,255,.2);border-top-color:var(--accent);border-radius:50%;animation:spin .8s linear infinite}.spinner{width:14px;height:14px}.spinner-sm{width:11px;height:11px;border-width:1.5px}@keyframes spin{to{transform:rotate(360deg)}}.foot{margin-top:28px;text-align:center;color:var(--text-mute);font-size:12px;font-family:var(--mono)}.foot-line{display:flex;gap:8px;justify-content:center;flex-wrap:wrap;margin-bottom:4px}.foot-muted{color:var(--text-mute);opacity:.6;font-size:11px}.toast{position:fixed;bottom:32px;left:50%;transform:translate(-50%);background:#070a15f2;color:var(--text);padding:10px 20px;border:1px solid var(--border-strong);border-radius:10px;font-family:var(--mono);font-size:13px;box-shadow:var(--shadow);z-index:100}.center-404{min-height:80vh;display:flex;flex-direction:column;align-items:center;justify-content:center;position:relative;z-index:1;gap:16px}.code-404{font-family:var(--mono);font-size:128px;font-weight:900;background:linear-gradient(135deg,var(--accent),var(--accent-2));-webkit-background-clip:text;background-clip:text;color:transparent}.text-404{color:var(--text-dim);font-family:var(--mono)}@media (max-width: 640px){.layout{padding:20px 14px 48px}.hero{gap:10px}.toolbar{flex:1;justify-content:flex-end}.btn{padding:8px 12px;font-size:12.5px}.ai-grid{grid-template-columns:1fr}.ip-hero{padding:22px 16px}.src-table th,.src-table td{padding:8px 10px;font-size:12px}.lookup-form input{min-width:140px}.code-404{font-size:88px}}
