*{box-sizing:border-box}html,body,#root{height:100%}body{background:#050806;min-width:320px;margin:0;overflow:hidden}.app-shell{box-sizing:border-box;flex-direction:column;height:100%;padding:30px 36px;display:flex;overflow:hidden}.app-header{flex:none;justify-content:space-between;align-items:center;margin-bottom:20px;display:flex}.app-brand,.app-status,.app-live-status{align-items:center;display:flex}.app-brand{gap:14px;min-width:0}.app-logo{flex-shrink:0;width:auto;height:38px}.app-title{letter-spacing:2px;margin:0;font-size:20px;font-weight:700}.app-subtitle{letter-spacing:1.5px;margin:2px 0 0;font-size:11px}.app-status{flex:none;gap:20px}.app-live-status{gap:7px}.app-clock{white-space:nowrap;font-size:11px}.toolbar{flex:none;justify-content:flex-end;align-items:center;margin-bottom:14px;display:flex}.latency-table-viewport:focus-visible{outline-offset:2px;outline:1px solid #fff}.toolbar-summary{text-align:right;min-width:0}.toolbar-help{margin-top:2px;font-size:10px}.dashboard-grid{flex:1;grid-template-columns:1.55fr 1fr;gap:18px;min-height:0;display:grid}.latency-panel,.detail-panel{flex-direction:column;min-height:0;display:flex;overflow:hidden}.latency-panel{padding:14px 14px 10px}.detail-panel{padding:16px}.detail-panel-header{flex:none;justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:8px;display:flex}.region-latency-graph-loading{flex:1;justify-content:center;align-items:center;min-height:0;font-size:10.5px;display:flex}.panel-back-mobile{display:none}.mobile-scroll-hint{color:#d4ffe073;letter-spacing:1px;text-align:right;padding-bottom:7px;font-size:9px;display:none}.latency-table-viewport{overscroll-behavior:contain;scrollbar-gutter:stable;flex:1;min-height:0;overflow:auto}.latency-table-content{--exchange-column-width:minmax(150px, 1.4fr);min-height:100%;min-width:var(--table-min-width);width:100%}.latency-grid-row{align-items:center;gap:4px;display:grid}.latency-grid-header{z-index:3;background:#071009;position:sticky;top:0}.latency-grid-exchange-header{letter-spacing:1px;align-self:stretch;align-items:center;padding-bottom:8px;font-size:9.5px;display:flex}.latency-region-header{appearance:none;cursor:pointer;letter-spacing:1px;text-align:center;-webkit-user-select:none;user-select:none;background:0 0;border:0;min-width:0;padding:2px 2px 10px;font:9.5px JetBrains Mono,monospace}.latency-region-header:hover{color:#fff!important}.sticky-exchange{z-index:2;background:#071009;position:sticky;left:0;box-shadow:4px 0 #071009,0 2px #071009,0 -1px #071009}.latency-grid-header .sticky-exchange{z-index:4}.dv-row{min-height:39px}.dv-row:hover .exchange-name{background:#0d1510}.exchange-name{text-overflow:ellipsis;white-space:nowrap;align-self:stretch;align-items:center;padding:7px 8px 7px 0;font-size:11px;font-weight:600;display:flex;overflow:hidden}.latency-cell,.empty-latency-cell{text-align:center;min-width:0;margin:7px 2px;padding:4px 2px;font-size:10.5px}.latency-cell{font-weight:600}.latency-table-message{padding:18px 0;font-size:11px}.latency-table-footer{flex:none;padding-top:8px;font-size:10px;line-height:1.5}@keyframes pulse{0%,to{opacity:1}50%{opacity:.25}}.pulse{animation:1.6s ease-in-out infinite pulse}.dv-row:hover{background:#ffffff0a!important}.latency-cell{appearance:none;cursor:pointer;font-family:JetBrains Mono,monospace;line-height:normal}.latency-cell:hover{filter:brightness(1.25)}.latency-cell:focus-visible,.latency-region-header:focus-visible,.panel-back:focus-visible,.filter-stat:focus-visible,.filter-modal button:focus-visible{outline-offset:2px;outline:1px solid #fff}.filter-checkbox:has(input:focus-visible){outline-offset:2px;outline:1px solid #fff}.panel-back{appearance:none;color:#39ff6a;cursor:pointer;letter-spacing:1px;background:#39ff6a0f;border:1px solid #39ff6a4d;flex:none;padding:5px 7px;font-family:JetBrains Mono,monospace;font-size:9.5px}.panel-back:hover{background:#39ff6a1f}.graph-view-tabs{border-bottom:1px solid #39ff6a29;flex:none;gap:4px;padding:8px 0 0;display:flex}.graph-view-tab{appearance:none;color:#d4ffe073;cursor:pointer;letter-spacing:1px;background:0 0;border:1px solid #0000;border-bottom:0;padding:6px 10px;font-family:JetBrains Mono,monospace;font-size:9.5px;transition:background .12s,border-color .12s,color .12s}.graph-view-tab:hover{color:#d4ffe0}.graph-view-tab-active{color:#39ff6a;background:#39ff6a17;border-color:#39ff6a59}.graph-view-tab:focus-visible{outline-offset:2px;outline:1px solid #fff}@media (width<=600px){.graph-view-tab{flex:1;min-height:40px}}.dv-scroll::-webkit-scrollbar{width:6px;height:6px}.dv-scroll::-webkit-scrollbar-thumb{background:#ffffff26;border-radius:3px}.filter-stats{justify-content:flex-end;align-items:center;display:flex}.filter-stat{appearance:none;color:#d4ffe0;cursor:pointer;font:inherit;background:0 0;border:1px solid #0000;padding:4px 7px;transition:background .12s,border-color .12s,color .12s,box-shadow .12s}.filter-stat:hover,.filter-stat-active{color:#39ff6a;background:#39ff6a17;border-color:#39ff6a59;box-shadow:0 0 10px #39ff6a14}.filter-stat-separator{color:#d4ffe04d;margin:0 2px}.filter-stat-average{color:#d4ffe073;padding:4px 7px;font-weight:400}.filter-modal-backdrop{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:20;background:#000401c7;justify-content:center;align-items:center;padding:24px;display:flex;position:fixed;inset:0}.filter-modal{color:#d4ffe0;background:#071009;border:1px solid #39ff6a6b;flex-direction:column;width:min(520px,100vw - 48px);max-width:520px;min-height:360px;max-height:min(680px,100vh - 48px);font-family:JetBrains Mono,monospace;display:flex;overflow:hidden;box-shadow:0 0 40px #39ff6a1f,inset 0 0 30px #39ff6a06}.filter-modal-header{border-bottom:1px solid #39ff6a29;justify-content:space-between;align-items:flex-start;padding:20px 22px 16px;display:flex}.filter-modal-kicker{color:#39ff6a;letter-spacing:2px;margin-bottom:5px;font-size:9px}.filter-modal h2{letter-spacing:1.5px;text-transform:uppercase;margin:0;font-size:18px}.filter-modal-close{appearance:none;color:#d4ffe08c;cursor:pointer;background:0 0;border:0;padding:0 2px;font:24px/1 JetBrains Mono,monospace}.filter-modal-close:hover{color:#fff}.filter-modal-tools{color:#d4ffe073;letter-spacing:1px;background:#39ff6a06;border-bottom:1px solid #39ff6a1f;justify-content:space-between;align-items:center;padding:10px 22px;font-size:9.5px;display:flex}.filter-modal-tools div{gap:12px;display:flex}.filter-modal-tools button{appearance:none;color:#39ff6a;cursor:pointer;background:0 0;border:0;padding:2px;font:9.5px JetBrains Mono,monospace}.filter-modal-tools button:hover{color:#fff}.filter-modal-scroll{flex:1;min-height:0;padding:10px 14px;overflow-y:auto}.filter-option-list{grid-template-columns:repeat(2,minmax(0,1fr));gap:3px;display:grid}.filter-checkbox{color:#d4ffe0bf;cursor:pointer;-webkit-user-select:none;user-select:none;border:1px solid #0000;align-items:center;gap:9px;min-height:34px;padding:7px 8px;font-size:10.5px;display:flex}.filter-checkbox:hover{color:#d4ffe0;background:#39ff6a0e;border-color:#39ff6a24}.filter-checkbox input{opacity:0;width:0;height:0;position:absolute}.filter-checkmark{background:#39ff6a06;border:1px solid #39ff6a61;flex:0 0 14px;width:14px;height:14px;display:block;position:relative}.filter-checkbox input:checked+.filter-checkmark{background:#39ff6a2e;border-color:#39ff6a;box-shadow:0 0 7px #39ff6a40}.filter-checkbox input:checked+.filter-checkmark:after{content:"";border:2px solid #39ff6a;border-width:0 2px 2px 0;width:3px;height:7px;position:absolute;top:1px;left:4px;transform:rotate(45deg)}.filter-checkbox input:indeterminate+.filter-checkmark:after{content:"";background:#39ff6a;width:6px;height:2px;position:absolute;top:5px;left:3px}.filter-modal-footer{border-top:1px solid #39ff6a29;justify-content:flex-end;gap:10px;padding:14px 18px;display:flex}.filter-modal-footer button{appearance:none;cursor:pointer;letter-spacing:1px;padding:8px 12px;font:10px JetBrains Mono,monospace}.filter-cancel{color:#d4ffe099;background:0 0;border:1px solid #d4ffe02e}.filter-apply{color:#39ff6a;background:#39ff6a24;border:1px solid #39ff6a80}.filter-modal-footer button:hover{filter:brightness(1.35)}.region-groups{flex-direction:column;gap:9px;display:flex}.region-group{border:1px solid #39ff6a1c}.filter-checkbox-group{color:#d4ffe0;letter-spacing:1px;text-transform:uppercase;background:#39ff6a0b;border-bottom-color:#39ff6a1c;font-size:10px;font-weight:700}.filter-checkbox-group>span:last-child{flex:1;justify-content:space-between;align-items:center;display:flex}.region-group-count{color:#d4ffe059;font-weight:400}.region-option-list{grid-template-columns:repeat(2,minmax(0,1fr));padding:4px;display:grid}.region-location{color:#d4ffe059;margin-top:2px;font-size:9px;display:block}@media (width<=900px){html,body,#root{height:100%;min-height:0;overflow:hidden}body.latency-detail-open{overflow:hidden}.app-shell{height:100dvh;min-height:0;padding:20px 20px calc(20px + env(safe-area-inset-bottom));overflow:hidden}.app-header{flex-wrap:wrap;gap:14px 20px;margin-bottom:16px}.toolbar{flex-direction:column;align-items:stretch}.toolbar-summary{text-align:left}.filter-stats{justify-content:flex-start}.toolbar-help{line-height:1.5}.dashboard-grid{flex-direction:column;flex:1;gap:0;min-height:0;display:flex}.latency-panel{flex:1;height:auto;min-height:0}.detail-panel{height:100dvh;min-height:0;padding:calc(18px + env(safe-area-inset-top)) calc(18px + env(safe-area-inset-right)) calc(16px + env(safe-area-inset-bottom)) calc(18px + env(safe-area-inset-left));z-index:30;width:100vw;position:fixed;inset:0;overflow:hidden;background:#050806!important;border:0!important}.detail-panel-fastest{display:none}.detail-panel-header{border-bottom:1px solid #39ff6a29;margin-bottom:0;padding-bottom:14px}.detail-panel-selected .region-latency-graph{touch-action:none}.panel-back{min-height:44px;padding:8px 10px}.panel-back-desktop{display:none}.panel-back-mobile{display:inline}.mobile-scroll-hint{display:block}.latency-table-content{--exchange-column-width:132px}.latency-table-footer{overflow-wrap:anywhere}}@media (width<=600px){.app-shell{padding:calc(12px + env(safe-area-inset-top)) calc(12px + env(safe-area-inset-right)) calc(16px + env(safe-area-inset-bottom)) calc(12px + env(safe-area-inset-left))}.app-header{align-items:flex-start;gap:12px}.app-brand{gap:10px}.app-logo{height:32px}.app-title{font-size:17px}.app-subtitle{letter-spacing:1px;font-size:8.5px}.app-status{gap:12px}.app-clock,.app-live-status span{font-size:9.5px!important}.filter-stats{flex-wrap:wrap;row-gap:2px}.filter-stat,.filter-stat-average{align-items:center;min-height:40px;display:inline-flex}.filter-option-list,.region-option-list{grid-template-columns:1fr}.latency-panel{padding:10px 9px 8px}.latency-table-content{--exchange-column-width:112px}.detail-panel{padding:calc(12px + env(safe-area-inset-top)) calc(12px + env(safe-area-inset-right)) calc(10px + env(safe-area-inset-bottom)) calc(12px + env(safe-area-inset-left))}.dv-row{min-height:48px}.latency-cell,.empty-latency-cell{justify-content:center;align-items:center;min-height:40px;margin-top:4px;margin-bottom:4px;display:flex}.exchange-name{padding-top:4px;padding-bottom:4px}.filter-modal-backdrop{padding:calc(8px + env(safe-area-inset-top)) calc(8px + env(safe-area-inset-right)) calc(8px + env(safe-area-inset-bottom)) calc(8px + env(safe-area-inset-left));align-items:stretch}.filter-modal{width:100%;min-height:0;max-height:none}.filter-modal-header{padding:16px 16px 13px}.filter-modal-tools{padding:10px 14px}.filter-modal-tools button{min-height:40px;padding:8px 3px}.filter-checkbox{min-height:44px}.filter-modal-footer{padding:10px 12px}.filter-modal-footer button{min-height:44px}}
