@import url(https://fonts.googleapis.com/css2?family=Inter:wght@300;400;600;700;800&display=swap);:root{--bg-gradient:linear-gradient(135deg,#f5f7fa,#c3cfe2);--card-bg:#ffffffe6;--text-color:#2d3748;--text-secondary:#718096;--metric-bg:#fff;--metric-shadow:0 4px 6px #0000000d;--card-shadow:0 10px 15px -3px #0000001a,0 4px 6px -2px #0000000d;--border-color:#e2e8f0;--primary-gradient:linear-gradient(135deg,#667eea,#764ba2);--primary-shadow:0 4px 14px 0 #764ba263}[data-theme=dark]{--bg-gradient:linear-gradient(135deg,#1a202c,#2d3748);--card-bg:#2d3748f2;--text-color:#f7fafc;--text-secondary:#a0aec0;--metric-bg:#2d3748;--metric-shadow:0 4px 6px #0003;--card-shadow:0 10px 15px -3px #0000004d;--border-color:#4a5568}body{background:linear-gradient(135deg,#f5f7fa,#c3cfe2);background:var(--bg-gradient);background-attachment:fixed;color:#2d3748;color:var(--text-color);font-family:Inter,sans-serif;margin:0;min-height:100vh;transition:color .3s ease}.App{display:flex;flex-direction:column;gap:30px;margin:0 auto;max-width:1600px;padding:40px 20px;position:relative;text-align:center}h1{-webkit-text-fill-color:#0000;background:linear-gradient(135deg,#667eea,#764ba2);background:var(--primary-gradient);-webkit-background-clip:text;background-clip:text;color:#0000;display:inline-block;font-size:3rem;font-weight:800;margin-bottom:10px;text-shadow:0 2px 4px #0000000d}h2{border-left:4px solid #764ba2;color:#2d3748;color:var(--text-color);font-weight:600;margin-bottom:20px;padding-left:15px;text-align:left}.card{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#ffffffe6;background:var(--card-bg);border:1px solid #e2e8f0;border:1px solid var(--border-color);border-radius:20px;box-shadow:0 10px 15px -3px #0000001a,0 4px 6px -2px #0000000d;box-shadow:var(--card-shadow);margin-bottom:0;padding:30px;transition:transform .2s ease,box-shadow .2s ease}.card:hover{box-shadow:0 20px 25px -5px #0000001a,0 10px 10px -5px #0000000a;transform:translateY(-2px)}.charts-row{display:flex;flex-direction:column;gap:20px}@media (min-width:900px){.charts-row{flex-direction:row}.charts-row>.card{flex:1 1;width:0}}.next-test-badge{align-items:center;background:#667eea1a;border:1px solid #667eea33;border-radius:20px;box-shadow:0 2px 5px #0000000d;color:#5a67d8;display:inline-flex;font-size:.9rem;font-weight:500;gap:10px;margin-bottom:25px;margin-top:-10px;padding:8px 16px}[data-theme=dark] .next-test-badge{background:#667eea26;border-color:#667eea4d;color:#a3bffa}.pulse-dot{display:inline-block;height:8px;position:relative;width:8px}.pulse-dot,.pulse-dot:after{background-color:#667eea;border-radius:50%}.pulse-dot:after{animation:pulse-ring 2s cubic-bezier(.215,.61,.355,1) infinite;content:"";height:100%;left:0;position:absolute;top:0;width:100%}@keyframes pulse-ring{0%{opacity:1;transform:scale(.9)}to{opacity:0;transform:scale(2.4)}}button.start-btn{background:linear-gradient(135deg,#667eea,#764ba2);background:var(--primary-gradient);border:none;border-radius:50px;box-shadow:0 4px 14px 0 #764ba263;box-shadow:var(--primary-shadow);color:#fff;cursor:pointer;font-size:1.1rem;font-weight:700;letter-spacing:1.5px;padding:18px 50px;text-transform:uppercase;transition:all .3s ease}button.start-btn:hover:not(:disabled){box-shadow:0 6px 25px #764ba299;transform:scale(1.05) translateY(-2px)}button.start-btn:disabled{cursor:wait;filter:grayscale(80%);opacity:.7}.results-grid{grid-gap:25px;display:grid;gap:25px;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));margin-top:25px}.metric{align-items:center;background:#fff;background:var(--metric-bg);border:1px solid #e2e8f0;border:1px solid var(--border-color);border-radius:16px;box-shadow:0 4px 6px #0000000d;box-shadow:var(--metric-shadow);display:flex;flex-direction:column;justify-content:center;min-height:150px;padding:20px;transition:transform .2s}.metric:hover{border-color:#667eea;transform:scale(1.03)}.metric h3{color:#718096;color:var(--text-secondary);font-size:.75rem;font-weight:700;letter-spacing:.05em;margin-bottom:10px;margin-top:0;text-transform:uppercase}.metric p{background:linear-gradient(135deg,#f5f7fa,#c3cfe2);background:var(--bg-gradient);-webkit-background-clip:text;color:#2d3748;color:var(--text-color);font-size:2.5rem;font-weight:800;line-height:1.1;margin:0 0 10px;text-align:center}.metric p span{display:block;font-size:.8rem;font-weight:500}.metric p span,.sub-metrics{color:#718096;color:var(--text-secondary);margin-top:5px}.sub-metrics{align-items:center;background:#00000008;border-radius:8px;box-sizing:border-box;display:flex;flex-direction:column;font-size:.85rem;gap:4px;padding:10px 15px;width:100%}[data-theme=dark] .sub-metrics{background:#ffffff0d}.sub-metrics div{font-feature-settings:"tnum";display:flex;font-variant-numeric:tabular-nums;gap:5px;justify-content:center;width:100%}.list-header-row{align-items:center;display:flex;flex-wrap:wrap;gap:15px;justify-content:space-between;margin-bottom:20px}.list-header-left{align-items:center;display:flex;gap:20px}.export-link{align-items:center;background:#fff;background:var(--metric-bg);border:1px solid #e2e8f0;border:1px solid var(--border-color);border-radius:15px;color:#667eea;cursor:pointer;display:inline-flex;font-size:.9rem;font-weight:700;gap:5px;padding:8px 16px;text-decoration:none;transition:color .2s}.export-link:hover{background:#667eea1a;border-color:#764ba2;color:#764ba2;text-decoration:underline}.export-link:active{transform:translateY(1px)}.export-link.button{text-decoration:none}.export-link span{font-size:1.1em;font-weight:800;margin-left:5px}.export-link .icon-import{color:#3498db}.export-link .icon-export{color:#2ecc71}.range-slider{-webkit-appearance:none;background:#e2e8f0;background:var(--border-color);border-radius:5px;cursor:pointer;height:6px;opacity:.7;outline:none;transition:opacity .2s;width:120px}.range-slider:hover{opacity:1}.range-slider::-webkit-slider-thumb{-webkit-appearance:none;appearance:none;background:linear-gradient(135deg,#667eea,#764ba2);background:var(--primary-gradient);border-radius:50%;box-shadow:0 2px 4px #0003;cursor:pointer;height:18px;width:18px}.range-slider::-moz-range-thumb{background:linear-gradient(135deg,#667eea,#764ba2);background:var(--primary-gradient);border:none;border-radius:50%;box-shadow:0 2px 4px #0003;cursor:pointer;height:18px;width:18px}.recent-tests-list{display:flex;flex-direction:column;gap:8px;list-style:none;margin:0;padding:0}.recent-tests-table-header{align-items:center;background-color:#ffffffe6;background-color:var(--card-bg);border-bottom:1px solid #e2e8f0;border-bottom:1px solid var(--border-color);border-radius:12px 12px 0 0;color:#718096;color:var(--text-secondary);display:flex;font-size:.8rem;font-weight:700;gap:10px;justify-content:space-between;letter-spacing:.05em;margin-bottom:5px;padding:12px 20px;text-transform:uppercase}.recent-tests-table-header>div{text-align:right}.recent-tests-table-header .header-id{text-align:left;width:120px}.recent-tests-table-header .header-time{text-align:left;width:110px}.recent-tests-table-header .header-server{flex:1 1;margin:0 5px;text-align:left}.recent-tests-table-header .header-download,.recent-tests-table-header .header-ping,.recent-tests-table-header .header-upload{width:100px}.recent-tests-row{align-items:center;background:#fff;background:var(--metric-bg);border:1px solid #e2e8f0;border:1px solid var(--border-color);border-radius:8px;box-shadow:0 4px 6px #0000000d;box-shadow:var(--metric-shadow);display:flex;gap:10px;justify-content:space-between;padding:12px 20px;transition:all .2s ease}.recent-tests-row:hover{background-color:#667eea0d;border-color:#667eea;transform:translateY(-2px)}.recent-tests-row.detail-row{border-left:4px solid #bdc3c7;margin-bottom:5px;margin-left:auto;margin-top:5px;width:95%}.row-id{width:120px}.row-id,.row-time{color:#2d3748;color:var(--text-color);font-weight:700;text-align:left}.row-time{display:flex;flex-direction:column;line-height:1.2;width:110px}.row-date{font-size:.75rem;font-weight:400}.row-date,.row-server{color:#718096;color:var(--text-secondary)}.row-server{flex:1 1;font-size:.9rem;margin:0 20px;overflow:hidden;text-align:left;text-overflow:ellipsis;white-space:nowrap}.row-metric{align-items:center;color:#2d3748;color:var(--text-color);display:flex;font-weight:700;gap:6px;justify-content:flex-end;text-align:right;width:120px}.row-metric small{color:#718096;color:var(--text-secondary);font-size:.75rem;font-weight:500;text-align:left;width:35px}.row-metric .icon{font-size:.9rem;text-align:center;width:20px}.row-metric.download .icon{color:#2ecc71;font-size:1.1rem}.row-metric.upload .icon{color:#3498db;font-size:1.1rem}.row-metric.ping .icon{color:#e67e22;font-size:1.1rem}@media (max-width:700px){.recent-tests-table-header{display:none}.recent-tests-row{flex-wrap:wrap;justify-content:flex-start}.row-server{flex:none;margin:5px 0 10px;order:3;width:100%}.row-time{width:50%}.row-metric{justify-content:flex-start;width:33%}.recent-tests-table-header{display:none}.recent-tests-row{flex-wrap:wrap;justify-content:flex-start}.row-server{flex:none;margin:5px 0 10px;order:3;width:100%}.row-time{width:50%}.row-metric{justify-content:flex-start;width:33%}.full-history-row{gap:10px;grid-template-columns:50px 1fr 1fr;padding:10px}.full-history-row .row-country,.full-history-row .row-id,.full-history-row .row-isp,.full-history-row .row-metric,.full-history-row .row-packet-loss,.full-history-row .row-server,.full-history-row .row-time{flex:1 1 auto;margin:0;text-align:left;width:auto}}.recent-tests-table-header.full-history-header{grid-gap:15px;align-items:center;display:grid;gap:15px;grid-template-columns:120px 160px 1fr 110px 110px 90px 140px 120px;padding:15px 20px}.recent-tests-table-header.full-history-header>div{text-align:left;white-space:nowrap}.recent-tests-table-header.full-history-header .header-download,.recent-tests-table-header.full-history-header .header-packet-loss,.recent-tests-table-header.full-history-header .header-ping,.recent-tests-table-header.full-history-header .header-upload{text-align:right}.recent-tests-row.full-history-row{grid-gap:15px;align-items:center;display:grid;gap:15px;grid-template-columns:120px 160px 1fr 110px 110px 90px 140px 120px;padding:15px 20px}.full-history-row .row-id{color:#2d3748;color:var(--text-color);font-weight:700}.full-history-row .row-time{align-items:center;flex-direction:row;gap:10px;width:auto}.full-history-row .row-time .row-date{font-size:.9rem}.full-history-row .row-server{flex:auto;margin:0;white-space:normal}.full-history-row .row-metric{justify-content:flex-end;width:auto}.full-history-row .row-packet-loss{color:#2d3748;color:var(--text-color);font-weight:700;text-align:right}.full-history-row .row-country{color:#718096;color:var(--text-secondary);font-weight:500;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.recent-tests-row.manual-test-row{background-color:#667eea0d;border-left:4px solid #667eea;padding-left:16px}[data-theme=dark] .recent-tests-row.manual-test-row{background-color:#667eea1a}.recent-tests-row.auto-test-row{background-color:#2ecc7108;border-left:4px solid #2ecc71;padding-left:16px}[data-theme=dark] .recent-tests-row.auto-test-row{background-color:#2ecc710d}.recent-tests-row.manual-test-row:hover{background-color:#667eea1a}.recent-tests-row.auto-test-row:hover{background-color:#2ecc7112}.theme-toggle-container{position:absolute;right:20px;top:30px}.theme-toggle{-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px);background:#0000;border:2px solid #e2e8f0;border:2px solid var(--border-color);border-radius:20px;color:#2d3748;color:var(--text-color);cursor:pointer;font-family:Inter,sans-serif;font-size:.85rem;font-weight:600;padding:8px 16px;transition:all .2s}.theme-toggle:hover{background:#fff;background:var(--metric-bg);border-color:#764ba2;color:#764ba2}.loader{animation:pulse 1.5s infinite;color:#718096;color:var(--text-secondary);font-weight:500;letter-spacing:.5px;margin-top:25px}@keyframes pulse{0%{opacity:.5}50%{opacity:1}to{opacity:.5}}.modal-overlay{align-items:center;-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px);background:#00000080;display:flex;height:100%;justify-content:center;left:0;position:fixed;top:0;width:100%;z-index:1000}.modal-content{animation:slideIn .3s ease-out;background:#ffffffe6;background:var(--card-bg);border:1px solid #e2e8f0;border:1px solid var(--border-color);border-radius:20px;box-shadow:0 20px 25px -5px #0003;max-width:500px;padding:30px;width:90%}.modal-content h2{border-left:none;margin-top:0;padding-left:0}.modal-content .form-group{margin-bottom:20px;text-align:left}.modal-content input[type=number],.modal-content input[type=text],.modal-content input[type=time],.modal-content select{background:#fff;background:var(--metric-bg);border:2px solid #e2e8f0;border:2px solid var(--border-color);border-radius:12px;box-sizing:border-box;color:#2d3748;color:var(--text-color);cursor:pointer;font-family:Inter,sans-serif;font-size:1rem;margin-bottom:15px;outline:none;padding:12px 15px;transition:border-color .2s,box-shadow .2s;width:100%}.modal-content input[type=number]:focus,.modal-content input[type=time]:focus,.modal-content select:focus{border-color:#667eea;box-shadow:0 0 0 3px #667eea33}.modal-content input[type=time]::-webkit-calendar-picker-indicator{cursor:pointer;filter:invert(.5)}[data-theme=dark] .modal-content input[type=time]::-webkit-calendar-picker-indicator{filter:invert(.9)}.modal-content .form-group select{margin-bottom:15px;margin-top:5px}.modal-content .form-group input[type=time]{margin-bottom:15px}.modal-button,.modal-button-danger{background:linear-gradient(135deg,#667eea,#764ba2);background:var(--primary-gradient);border:none;border-radius:12px;box-shadow:0 4px 6px #0000001a;color:#fff;cursor:pointer;font-size:.9rem;font-weight:700;letter-spacing:.8px;padding:10px 15px;text-transform:uppercase;transition:all .2s ease}.modal-button-danger:hover,.modal-button:hover{box-shadow:0 6px 10px #00000026;transform:translateY(-1px)}.modal-button{background:#fff;background:var(--metric-bg);border:1px solid #e2e8f0;border:1px solid var(--border-color);box-shadow:none;color:#2d3748;color:var(--text-color)}.modal-button:hover{background:#667eea1a;border-color:#667eea;color:#667eea}.modal-button-danger{background-color:#e74c3c;background-image:none}.modal-button-danger:hover{background-color:#c0392b}@keyframes slideIn{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.chart-container{height:auto;min-height:400px;padding:20px}.toast-notification{align-items:center;animation:slideInToast .4s cubic-bezier(.175,.885,.32,1.275);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-radius:12px;bottom:30px;box-shadow:0 10px 15px -3px #0000001a,0 4px 6px -2px #0000000d;color:#fff;display:flex;font-weight:600;gap:10px;padding:15px 25px;position:fixed;right:30px;z-index:2000}.toast-notification.success{background:linear-gradient(135deg,#2ecc71,#26a69a)}.toast-notification.error{background:linear-gradient(135deg,#e74c3c,#c0392b)}@keyframes slideInToast{0%{opacity:0;transform:translateY(20px) scale(.9)}to{opacity:1;transform:translateY(0) scale(1)}}
/*# sourceMappingURL=main.016defc8.css.map*/