.home-panel{height:auto;text-align:center;padding:50px}.home-panel h1{margin:0 0 12px;font-size:24px;color:#3d6078}.home-panel p{margin:0;color:#8193a1}
.map-head,.stats-title{display:flex;justify-content:space-between;border-bottom:1px solid #edf1f4;padding-bottom:10px}.count{font-size:25px;font-weight:bold;color:#367fc5}.count small{font-size:12px;color:#8a9aa8;font-weight:normal;margin-left:5px}.map-svg{display:block;width:100%;height:440px}.legend{display:flex;max-width:100%;box-sizing:border-box;align-items:center;justify-content:center;gap:7px 12px;padding:4px 8px;color:#718293;flex-wrap:wrap;overflow:hidden}.legend i{display:inline-block;width:11px;height:11px;margin-right:4px}.stats-grid{display:grid;grid-template-columns:1fr 1fr}.stat-row{display:grid;grid-template-columns:90px 1fr 58px;padding:16px 0;border-bottom:1px solid #f0f3f6;color:#738798}.stat-row b{font-weight:normal;color:#4f697b}.stat-row em{font-style:normal;text-align:right;color:#54a873}
.map-legend-item{display:inline-flex;flex:0 0 auto;align-items:center;gap:4px;white-space:nowrap;font-size:12px;color:#66798c}.map-legend-scope{flex:0 0 auto;padding:2px 7px;border-radius:10px;background:#eef5fb;color:#397fc0;font-size:12px;white-space:nowrap}.map-legend-swatch{display:inline-block;width:12px;height:12px;border-radius:3px;border:1px solid rgba(35,55,75,.12);box-shadow:inset 0 0 0 1px rgba(255,255,255,.18)}
.dns-stats{margin-top:10px;padding:0 9px 12px}.dns-head{height:55px;display:flex;align-items:center;border-bottom:1px solid #e5ebf0}.dns-head strong{font-size:16px;font-weight:normal;border-left:3px solid #397ff0;padding-left:12px}.dns-count{margin-left:10px;color:#397ff0;background:#dce9ff;padding:3px 7px;border-radius:3px}.dns-head button{margin-left:10px;color:#e98922;background:#fff0dc;border:0;padding:5px;cursor:pointer}.collapse{margin-left:auto;cursor:pointer}.dns-items{display:flex;gap:8px;flex-wrap:wrap;padding-top:9px}.dns-item{min-width:220px;display:flex;justify-content:space-between;background:#f7f9fb;padding:8px 12px}.dns-item em{color:#397ff0;font-style:normal}.node-panel{margin-top:10px}.caption{height:38px;display:flex;align-items:center;padding:0 13px;background:#fbfcfd;border-bottom:1px solid #edf1f4}.caption strong{margin-right:12px;font-weight:normal;color:#587083}.table-wrap{overflow:auto}.nodes{width:100%;min-width:900px;border-collapse:collapse}.nodes th,.nodes td{text-align:left;padding:9px 8px;border-bottom:1px solid #edf1f4;white-space:nowrap;max-width:280px;overflow:hidden;text-overflow:ellipsis}.nodes th{background:#f1f6fc;color:#62798b;font-weight:normal}.detail{color:#287fca;cursor:pointer}.detail-button{border:1px solid #8bb9e2;background:#f4f9fe;color:#287fca;border-radius:3px;padding:4px 10px;cursor:pointer;white-space:nowrap}.detail-button:hover{background:#e6f2ff;border-color:#4d96d1}
.expand-detail{margin-top:8px;padding:11px 13px;background:#f7fafc;border:1px solid #dce8f1;border-radius:3px;color:#506879;white-space:normal;overflow:auto;max-width:680px;line-height:1.6}.head-detail{white-space:pre-wrap;word-break:break-word;max-height:360px}.detail-title{font-weight:bold;color:#3d6f98;margin-bottom:8px}.detail-grid{display:grid;grid-template-columns:repeat(2,minmax(160px,1fr));gap:6px 18px;margin-bottom:8px}.expand-detail pre{margin:0;white-space:pre-wrap;word-break:break-word;font:12px/1.6 Consolas,monospace}.dns-records{display:flex;flex-wrap:wrap;gap:6px;min-width:330px}.record-cell{display:inline-flex;flex-direction:column;align-items:flex-start}.record-cell .expand-detail{min-width:240px}.record-detail{max-height:180px}.nodes td:has(.expand-detail){overflow:visible;white-space:normal;vertical-align:top}
.trace-detail{width:100%;min-width:0;max-width:100%;padding:0!important;background:#fbfdff;border-left:3px solid #77aee0;white-space:normal;overflow:hidden;box-sizing:border-box}.trace-hop{display:grid;width:100%;grid-template-columns:48px minmax(90px,1.15fr) minmax(120px,1.6fr) minmax(90px,1.15fr) minmax(70px,1fr) minmax(82px,1fr) minmax(70px,.9fr);align-items:center;gap:8px;min-width:0;padding:9px 10px;border-bottom:1px solid #e8eff5;color:#526b7e}.trace-hop:hover{background:#f0f7ff}.trace-hop-head{background:#eaf3fc;color:#648096;font-size:12px;font-weight:bold}.trace-hop span{min-width:0;overflow-wrap:anywhere;white-space:normal;line-height:1.4}.trace-hop b{text-align:center;color:#397fc0}.trace-empty{padding:20px;color:#9b6b6b;text-align:center;background:#fff8f8;overflow-wrap:anywhere}
.detail-modal{position:fixed;z-index:9999;inset:0;background:rgba(30,49,67,.48);display:flex;align-items:center;justify-content:center;padding:20px}.detail-modal-box{width:min(1100px,100%);max-height:min(760px,calc(100vh - 40px));background:#fff;border-radius:6px;box-shadow:0 12px 38px rgba(22,48,75,.28);overflow:hidden}.detail-modal-head{height:52px;display:flex;align-items:center;justify-content:space-between;padding:0 18px;background:#eef6fd;border-bottom:1px solid #dbe8f2;color:#3d6f98}.detail-modal-close{width:30px;height:30px;border:0;border-radius:50%;background:#fff;color:#7890a2;font-size:24px;cursor:pointer}.detail-modal-body{padding:0;max-height:calc(100vh - 112px);overflow:auto}.detail-modal-body .trace-detail{border:0;overflow:visible}.detail-modal-body .trace-hop{min-width:900px}
.progress-card{grid-column:1/-1;padding:16px 4px 8px;color:#5e7486}.progress-line{display:flex;align-items:center;gap:10px}.progress-label{min-width:230px}.progress-track{height:14px;flex:1;min-width:120px;background:#e4ebf3;border-radius:3px;overflow:hidden}.progress-fill{height:100%;width:8%;background:#477ff0;border-radius:3px;transition:width .7s ease}.progress-percent{width:42px;text-align:right;color:#477ff0}.progress-time{margin-top:8px;color:#91a0ad;font-size:12px}
.empty-result-row td{padding:0!important;white-space:normal!important}.empty-result{display:flex;min-height:112px;align-items:center;justify-content:center;flex-direction:column;gap:9px;color:#8193a1;background:linear-gradient(180deg,#fbfdff,#f5f8fb)}.empty-result strong{font-size:15px;font-weight:normal;color:#587083}.empty-result span{font-size:12px;color:#9aaab6}.overview-empty{grid-column:1/-1;display:flex;align-items:center;justify-content:center;min-height:220px;padding:24px;text-align:center;color:#9aaab6;background:linear-gradient(180deg,#fbfdff,#f5f8fb);border:1px dashed #d8e4ee;border-radius:4px}
.map-panel{position:relative}.map-svg .province{cursor:pointer;transition:filter .15s,stroke-width .15s,opacity .15s;outline:none}.map-svg .province:hover,.map-svg .province:focus{filter:brightness(1.06);stroke:#315f37;stroke-width:1.6}.map-svg .province.selected{filter:drop-shadow(0 0 3px rgba(28,78,137,.55));stroke:#1c4e89;stroke-width:2.5}.map-tooltip{position:absolute;z-index:30;display:none;min-width:210px;max-width:290px;overflow:hidden;border:1px solid rgba(255,255,255,.28);border-radius:5px;background:rgba(38,86,52,.95);box-shadow:0 8px 25px rgba(20,43,29,.32);color:#fff;pointer-events:none;font-size:13px}.map-tooltip.visible{display:block}.map-tooltip-title{padding:7px 12px;background:#4d82ed;text-align:center;font-weight:700}.map-tooltip-fastest{padding:9px 12px 6px;font-weight:700}.map-tooltip-list{max-height:220px;overflow:hidden;padding:0 12px}.map-tooltip-line{display:grid;grid-template-columns:auto minmax(70px,1fr) auto;gap:5px;align-items:center;padding:4px 0}.map-tooltip-carrier{font-weight:700}.map-tooltip-node{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.map-tooltip-empty,.map-tooltip-more{padding:9px 12px;text-align:center;color:#e6f2e8}.map-tooltip-hint{margin-top:7px;padding:7px 12px;border-top:1px solid rgba(255,255,255,.18);text-align:center;color:#eef6ef}.map-head-controls{display:flex;align-items:center;gap:10px}.map-alert-toggle{height:26px;padding:0 9px;border:1px solid #f0b4b4;border-radius:3px;background:#fff5f5;color:#df4d4d;cursor:pointer;font:inherit;font-size:12px}.map-alert-toggle.disabled{border-color:#d9e1e8;background:#f7f9fb;color:#8797a5}
.http-advanced-shell{display:none}.http-advanced-shell[style*="display: block"]{display:block}.http-advanced{margin:11px 0 0;border:1px solid #d4e0eb;border-radius:4px;background:#f5f8fb;overflow:hidden}.http-advanced-toggle{width:100%;height:40px;display:flex;align-items:center;justify-content:space-between;padding:0 14px;border:0;background:#edf3f8;color:#4f687c;cursor:pointer;font:inherit;text-align:left}.http-advanced-body{padding:13px 15px 15px}.http-advanced-row{display:grid;grid-template-columns:112px minmax(0,1fr);align-items:center;gap:12px;margin-bottom:9px}.http-advanced-label{color:#5d7488}.http-advanced-control{min-width:0}.http-advanced-options,.http-radio-group{display:flex;align-items:center;gap:19px;min-height:32px;flex-wrap:wrap}.http-advanced-options label,.http-radio-group label{display:inline-flex;align-items:center;gap:5px;color:#587083;cursor:pointer}.http-advanced-options input,.http-radio-group input{accent-color:#287fca}.http-advanced-input,.http-advanced-textarea{width:100%;border:1px solid #cbd9e7;border-radius:3px;background:#fff;color:#50697d;outline:0;font:inherit}.http-advanced-input{height:32px;padding:0 9px}.http-advanced-textarea{min-height:74px;padding:8px 9px;resize:vertical;line-height:1.5}.http-advanced-number{width:84px}.http-help{margin-left:10px;color:#8a9aa8;font-size:12px}
@media(max-width:800px){.summary{grid-template-columns:1fr}.filter{display:none}.toolbar-row{flex-wrap:wrap}.input{min-width:100%}.panel{height:auto}.map-svg{height:380px}.stats-grid{grid-template-columns:1fr}.trace-hop{grid-template-columns:minmax(76px,.65fr) minmax(0,1.35fr);gap:0 8px;padding:8px}.trace-hop span,.trace-hop b{text-align:left}.trace-hop-head{display:none}.detail-modal{padding:10px}.detail-modal-box{max-height:calc(100vh - 20px)}.detail-modal-body{max-height:calc(100vh - 82px)}.detail-modal-body .trace-hop{min-width:0}.http-advanced-row{grid-template-columns:1fr;gap:5px}}
@media(max-width:800px){html{min-width:1200px}body{min-width:1200px}.wrap{max-width:none}.summary{grid-template-columns:1fr 1fr}.filter{display:flex}.toolbar-row{flex-wrap:nowrap}.input{min-width:0}.panel{height:520px}.map-svg{height:440px}.stats-grid{grid-template-columns:1fr 1fr}.trace-hop{grid-template-columns:48px minmax(90px,1.15fr) minmax(120px,1.6fr) minmax(90px,1.15fr) minmax(70px,1fr) minmax(82px,1fr) minmax(70px,.9fr);gap:8px;padding:9px 10px}.trace-hop-head{display:grid}.detail-modal{padding:20px}.detail-modal-box{max-height:min(760px,calc(100vh - 40px))}.detail-modal-body{max-height:calc(100vh - 112px)}.detail-modal-body .trace-hop{min-width:900px}.http-advanced-row{grid-template-columns:112px minmax(0,1fr);gap:12px}}
.country-tab{margin-left:8px;padding:0 12px;background:#eef6fd;border:1px solid #8bb9e2;color:#287fc8;max-width:180px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
