@import url(https://fonts.googleapis.com/css2?family=Source+Code+Pro:wght@400;700&display=swap);*,:after,:before{box-sizing:border-box}:root{--bg-color:#1a1a1a;--text-color:#8cff8c;--container-bg:#222;--border-color:#8cff8c;--accent-color:#8cff8c;--subtle-text-color:#bbb;--error-color:#ff4100;--warn-color:#ffc107;--success-color:#28a745}body.light-mode{--bg-color:#e0e0e0;--text-color:#111;--container-bg:#f5f5f5;--border-color:#555;--accent-color:#007bff;--subtle-text-color:#333}body{background-color:#1a1a1a;background-color:var(--bg-color);color:#8cff8c;color:var(--text-color);font-family:Source Code Pro,monospace;font-size:16px;line-height:1.5;margin:0;padding:clamp(.75rem,2.5vw,1.5rem);transition:background-color .3s,color .3s}.container{background:#222;background:var(--container-bg);border:1px solid #8cff8c;border:1px solid var(--border-color);border-radius:18px;margin:auto;padding:clamp(1rem,4vw,2.25rem);width:min(100%,960px)}.foreground-warning{background-color:#ffc10726;border:1px solid #ffc107;border:1px solid var(--warn-color);border-radius:6px;color:#ffc107;color:var(--warn-color);font-weight:600;margin:1rem 0;padding:.75rem 1rem;text-align:center}h1{letter-spacing:2px;text-align:center}h1,h2,h3{color:#8cff8c;color:var(--accent-color);text-transform:uppercase}h2,h3{border-bottom:1px solid #8cff8c;border-bottom:1px solid var(--border-color);padding-bottom:.5rem}button,h2,h3{letter-spacing:1px}button{align-items:center;background-color:initial;border:1px solid #8cff8c;border:1px solid var(--accent-color);border-radius:12px;color:#8cff8c;color:var(--accent-color);cursor:pointer;display:inline-flex;justify-content:center;min-height:48px;padding:.75rem 1.25rem;text-transform:uppercase;transition:background-color .3s,color .3s}button:hover:not(:disabled){background-color:#8cff8c;background-color:var(--accent-color);color:#1a1a1a;color:var(--bg-color)}button:disabled{cursor:not-allowed;opacity:.5}.sr-only{clip:rect(0,0,0,0);border:0;height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;white-space:nowrap;width:1px}.secondary{background-color:initial;border-color:#bbb;border-color:var(--subtle-text-color);color:#bbb;color:var(--subtle-text-color)}.secondary:hover:not(:disabled){background-color:#bbb;background-color:var(--subtle-text-color);color:#1a1a1a;color:var(--bg-color)}.danger{background-color:#ff4100;background-color:var(--error-color);border-color:#ff4100;border-color:var(--error-color);color:#fff}.danger:hover:not(:disabled){background-color:#b83200;border-color:#b83200;color:#fff}.status-dot{background-color:#bbb;background-color:var(--subtle-text-color);border-radius:50%;display:inline-block;height:10px;margin-right:.5rem;width:10px}.status-dot.good{background-color:#28a745;background-color:var(--success-color)}.status-dot.warn{background-color:#ffc107;background-color:var(--warn-color)}.status-dot.poor{background-color:#ff4100;background-color:var(--error-color)}.status-dot.unknown{opacity:.5}.tabs-container{margin-bottom:1.5rem;position:relative}.tabs,.tabs-container{display:flex;justify-content:center}.tabs{border-bottom:1px solid #8cff8c;border-bottom:1px solid var(--border-color);flex-wrap:wrap;gap:.5rem}.tab-link{background:none;border:none;border-bottom:2px solid #0000;border-radius:10px 10px 0 0;color:#bbb;color:var(--subtle-text-color);cursor:pointer;font-size:1rem;padding:.6rem 1.1rem;text-transform:uppercase}.tab-link.active{border-bottom:2px solid #8cff8c;border-bottom:2px solid var(--accent-color);color:#8cff8c;color:var(--accent-color)}.tab-content{display:none}.tab-content.active{display:block}.hamburger-btn{background:none;border:none;color:#8cff8c;color:var(--accent-color);cursor:pointer;display:none;font-size:2rem;position:absolute;right:0;top:-10px}.theme-switch-container{align-items:center;display:flex;gap:.5rem;justify-content:center;margin-bottom:1rem}.theme-icon{height:24px}body.dark-mode .theme-icon{filter:invert(1)}.status-section{align-items:center;display:flex;flex-wrap:wrap;gap:1rem}.status-section h2{margin:0}.status-section span{color:#111;font-weight:700;padding:.25rem .75rem}.status-section .online{background-color:#28a745;background-color:var(--success-color)}.status-section .offline{background-color:#ff4100;background-color:var(--error-color)}.status-section .pending{background-color:#ffc107;background-color:var(--warn-color)}.status-section .stopped{background-color:#bbb;background-color:var(--subtle-text-color);color:#1a1a1a;color:var(--bg-color)}.advanced-controls>div,.log-section,.speed-test-section,.summary-section{border:1px solid #8cff8c;border:1px solid var(--border-color);margin-top:1.5rem;padding:1rem}.speed-test-section .metric{align-items:center;display:flex;gap:.5rem;margin-bottom:.5rem}.speed-test-section .metric.meta{align-items:flex-start;flex-direction:column;gap:.25rem}.staged-test-controls,.test-size-options{align-items:center;display:flex;flex-wrap:wrap;gap:1rem;margin-top:1rem}.auto-test-controls{display:flex;flex-direction:column;gap:.25rem}.auto-test-controls select{background:#222;background:var(--container-bg);border:1px solid #8cff8c;border:1px solid var(--border-color);color:#8cff8c;color:var(--text-color);padding:.4rem}.data-usage-warning{border:1px dashed #bbb;border:1px dashed var(--subtle-text-color);padding:.5rem}.contract-hint,.data-usage-warning{color:#bbb;color:var(--subtle-text-color);font-size:.8em;margin-top:1rem}.settings-section{border:1px solid #8cff8c;border:1px solid var(--border-color);margin-top:1.5rem;padding:1rem}.contract-settings{display:flex;flex-wrap:wrap;gap:1rem}.contract-settings label{display:flex;flex-direction:column;gap:.25rem}.contract-settings input{background:#222;background:var(--container-bg);border:1px solid #8cff8c;border:1px solid var(--border-color);color:#8cff8c;color:var(--text-color);padding:.4rem}.test-profile-section{margin-top:1.5rem}.test-profile-section .helper-text{color:#a0a0a0;color:var(--muted-text,#a0a0a0);font-size:.9rem;margin-top:.25rem}.test-profile-grid{grid-gap:1rem;display:grid;gap:1rem;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));margin-top:.75rem}.test-profile-grid label{display:flex;flex-direction:column;gap:.25rem}.test-profile-grid input{background:#222;background:var(--container-bg);border:1px solid #8cff8c;border:1px solid var(--border-color);border-radius:4px;color:#8cff8c;color:var(--text-color);padding:.4rem}.test-profile-grid small{color:#a0a0a0;color:var(--muted-text,#a0a0a0);font-size:.75rem}.session-divider{border-top:1px solid #8cff8c;border-top:1px solid var(--border-color)}.session-divider td{padding-top:1rem}.session-pill{background:#222;background:var(--container-bg);border:1px solid #8cff8c;border:1px solid var(--border-color);border-radius:999px;display:inline-block;font-size:.85rem;letter-spacing:.05em;margin-bottom:.5rem;margin-right:.75rem;padding:.3rem .75rem;text-transform:uppercase}.session-pill.end{opacity:.75}.dashboard{display:flex;flex-direction:column;gap:1.5rem}.card{background:#00000040;border:1px solid #8cff8c;border:1px solid var(--border-color);border-radius:16px;box-shadow:0 16px 32px #00000040;padding:clamp(1rem,2.5vw,1.5rem)}body.light-mode .card{background:#ffffffe6;box-shadow:0 16px 32px #00000026}.card-header{align-items:center;display:flex;gap:1rem;justify-content:space-between;margin-bottom:1rem}.card-header h2{border:none;padding-bottom:0}.collapsible-header h2{-webkit-tap-highlight-color:transparent;transition:color .2s,opacity .2s;-webkit-user-select:none;user-select:none}.collapsible-header h2:hover{opacity:.8}.collapsible-header h2:active{opacity:.6}.headline-card{background:linear-gradient(135deg,#8cff8c33,#8cff8c0d)}.headline-copy{font-size:1.1rem;line-height:1.6;margin:0}.quality-trend{color:#8cff8c;color:var(--accent-color);font-weight:600;margin-top:.5rem}.status-card .status-row{align-items:center;display:flex;gap:1rem;justify-content:space-between}.status-pill{border-radius:999px;font-weight:700;letter-spacing:.08em;padding:.4rem .9rem;text-transform:uppercase}.status-pill.online{background:#28a7452e;color:#6bff9f}.status-pill.offline{background:#ff41002e;color:#ff9472}.status-pill.pending{background:#ffc1072e;color:#ffd87a}.status-pill.stopped{background:#bbbbbb26;color:#bbb;color:var(--subtle-text-color)}.status-actions{align-items:center;display:flex;flex-wrap:wrap;gap:clamp(.75rem,2vw,1.5rem);margin-top:1rem}.metric-grid{grid-gap:clamp(.75rem,2vw,1.25rem);display:grid;gap:clamp(.75rem,2vw,1.25rem);grid-template-columns:repeat(auto-fit,minmax(160px,1fr))}.metric{background:#ffffff08;border:1px solid #ffffff1f;border-radius:12px;display:flex;flex-direction:column;gap:.25rem;padding:.75rem 1rem}.metric.good{border-color:#28a74599}.metric.warn{border-color:#ffc10799}.metric.poor{border-color:#ff410099}.metric.unknown{border-color:#ffffff1f}.metric-label{color:#bbb;color:var(--subtle-text-color);font-size:.85rem;letter-spacing:.08em;text-transform:uppercase}.metric-value{font-size:1.6rem;font-weight:700}.metric-unit{color:#bbb;color:var(--subtle-text-color);font-size:.85rem}.baseline-card h2,.insights-card h2,.install-card h2,.issues-card h2,.metrics-card h2,.share-card h2,.status-card h2{border:none;padding-bottom:0}.metric-meta{color:#bbb;color:var(--subtle-text-color);display:flex;flex-direction:column;font-size:.9rem;gap:.35rem}.metric-meta,.test-actions{margin-top:1rem}.share-card .share-actions{display:flex;flex-wrap:wrap;gap:.75rem;margin-bottom:.75rem}.share-card .share-feedback{color:#8cff8c;color:var(--accent-color);font-size:.9rem}.share-card .share-link{font-size:.9rem;overflow-wrap:anywhere}.error-text{color:#ff4100;color:var(--error-color);font-size:.9rem}.insight-list,.issues-list{display:flex;flex-direction:column;gap:.85rem;list-style:none;margin:0;padding:0}.wizard-guidance{border-top:1px solid #8cff8c;border-top:1px solid var(--border-color);margin-top:1rem;padding-top:.75rem}.wizard-guidance h3{color:#bbb;color:var(--subtle-text-color);font-size:.85rem;letter-spacing:.08em;margin:0 0 .5rem;text-transform:uppercase}.wizard-guidance ul{padding-left:1.1rem}.wizard-guidance li{margin-bottom:.35rem}.insight{background:#ffffff05;border:1px solid #ffffff1f;border-radius:12px;padding:.75rem}body.light-mode .insight{background:#00000008;border-color:#00000014}.insight.high{border-color:#ff410073}.insight.medium{border-color:#ffc10773}.insight.low{border-color:#28a74573}.insight-reco{color:#7ff4b2;font-weight:600;margin-top:.35rem}.issues-list li{align-items:flex-start;display:flex;gap:.75rem}.issue-pill{border-radius:999px;font-size:.75rem;letter-spacing:.08em;padding:.35rem .75rem;text-transform:uppercase}.issue-pill.warning{background:#ffc10733;color:#ffd87a}.issue-pill.critical{background:#ff410033;color:#ff8a61}.issue-pill.low{background:#8cff8c26;color:#8cff8c;color:var(--accent-color)}.issue-details{display:flex;flex:1 1;flex-direction:column;gap:.25rem}.issue-meta{color:#bbb;color:var(--subtle-text-color);font-size:.85rem}.mobile-session-carousel{background:#ffffff05;border:1px solid #8cff8c;border:1px solid var(--border-color);border-radius:12px;display:none;margin-top:1.5rem;padding:1rem}.carousel-header{align-items:center;display:flex;gap:1rem;justify-content:space-between;margin-bottom:1rem}.carousel-header button{font-size:1.4rem;padding:.25rem .6rem}.carousel-dates{color:#bbb;color:var(--subtle-text-color);font-size:.9rem}.carousel-body{display:flex;flex-direction:column;gap:.75rem}.carousel-event{border:1px solid #ffffff1a;border-radius:10px;padding:.75rem}.carousel-event-time{color:#bbb;color:var(--subtle-text-color);font-size:.85rem}.carousel-event-type{font-weight:600;letter-spacing:.08em;margin-top:.15rem;text-transform:uppercase}.carousel-event-details{font-size:.95rem;line-height:1.4;margin-top:.35rem}.carousel-empty{color:#bbb;color:var(--subtle-text-color);font-style:italic}.install-card .install-actions{display:flex;flex-wrap:wrap;gap:.75rem;margin-top:1rem}.alert-banner{align-items:center;background:#ffc10738;border:1px solid #ffc10780;border-radius:12px;color:#ffd87a;display:flex;justify-content:space-between;padding:.85rem 1rem}.alert-banner.critical{background:#ff410033;border-color:#ff41008c;color:#ffb399}.badge-dot{background:#ff4100;background:var(--error-color);border-radius:50%;height:12px;width:12px}.sticky-monitor-cta{bottom:1rem;display:none;justify-content:center;margin-top:1rem;pointer-events:none;position:-webkit-sticky;position:sticky}.sticky-monitor-cta button{background:#8cff8c;background:var(--accent-color);border-radius:999px;color:#1a1a1a;color:var(--bg-color);font-size:1rem;padding:.9rem 2.5rem;pointer-events:all}.sticky-monitor-cta.monitoring button{background:#ff4100e0;border-color:#ff4100e0}.wizard-overlay{align-items:center;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#000000a6;display:flex;inset:0;justify-content:center;padding:1rem;position:fixed;z-index:999}.wizard-content{background:#222;background:var(--container-bg);border:1px solid #8cff8c;border:1px solid var(--border-color);border-radius:16px;box-shadow:0 20px 45px #0006;max-height:90vh;overflow-y:auto;padding:1.5rem;width:min(520px,100%)}.wizard-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:1rem}.wizard-close{background:none;border:none;color:#8cff8c;color:var(--accent-color);font-size:1.6rem;line-height:1}.wizard-step h3{margin-top:0}.wizard-description{color:#bbb;color:var(--subtle-text-color);margin-bottom:1rem}.wizard-options{display:flex;flex-direction:column;gap:.75rem}.wizard-option{border:1px solid #ffffff26;border-radius:12px;padding:.75rem 1rem;text-align:left;transition:border-color .2s,background .2s}.wizard-option.selected{background:#8cff8c1f;border-color:#8cff8c99}.wizard-actions{display:flex;gap:.75rem;justify-content:flex-end;margin-top:1.5rem}.wizard-results ul{list-style:disc;padding-left:1.2rem}.toast-shelf{display:flex;flex-direction:column;gap:.5rem;max-width:400px;pointer-events:none;position:fixed;right:1rem;top:1rem;z-index:10000}.toast{align-items:stretch;animation:toast-slide-in .3s ease-out forwards;background:var(--color-bg-primary);border-left:4px solid var(--color-border);border-radius:8px;box-shadow:0 4px 12px #00000026;display:flex;overflow:hidden;pointer-events:auto}.toast-warning{border-left-color:#ff9800}.toast-critical,.toast-error{border-left-color:#f44336}.toast-success{border-left-color:#4caf50}.toast-info{border-left-color:#2196f3}.toast-content{background:none;border:none;cursor:pointer;display:flex;flex:1 1;gap:.75rem;min-height:48px;padding:.75rem 1rem;text-align:left;transition:background .2s}.toast-content:disabled{cursor:default}.toast-clickable:not(:disabled):hover{background:#0000000d;background:var(--color-bg-hover,#0000000d)}.toast-icon{align-items:center;display:flex;flex-shrink:0;font-size:1.5rem}.toast-body{flex:1 1;min-width:0}.toast-title{font-weight:600}.toast-message,.toast-title{color:var(--color-text-primary);font-size:.875rem;margin-bottom:.25rem}.toast-message{line-height:1.4}.toast-hint{font-size:.75rem;opacity:.7}.toast-dismiss,.toast-hint{color:var(--color-text-secondary)}.toast-dismiss{align-items:center;background:none;border:none;cursor:pointer;display:flex;flex-shrink:0;font-size:1.125rem;min-height:48px;padding:.5rem .75rem;transition:color .2s}.toast-dismiss:hover{color:var(--color-text-primary)}@keyframes toast-slide-in{0%{opacity:0;transform:translateX(calc(100% + 1rem))}to{opacity:1;transform:translateX(0)}}@media (prefers-reduced-motion:reduce){.toast{animation:none}@keyframes toast-slide-in{0%,to{opacity:1;transform:translateX(0)}}}@media (max-width:992px){.tabs-container{justify-content:space-between}}@media (max-width:768px){button{font-size:16px;min-height:48px;padding:12px 16px}.card-header h2,.test-size-options label{align-items:center;display:flex;min-height:48px}.test-size-options label{padding:8px}.test-size-cb{height:24px;margin-right:12px;width:24px}select{font-size:16px;min-height:48px}.share-actions button+button,.status-actions button+button,.test-actions button+button{margin-top:8px}.tabs{background:#222;background:var(--container-bg);border:1px solid #8cff8c;border:1px solid var(--border-color);border-radius:12px;box-shadow:0 16px 32px #0006;display:none;flex-direction:column;padding:.5rem;position:absolute;right:0;top:48px;width:min(220px,80vw)}.tabs-container.mobile-nav-open .tabs{display:flex}.hamburger-btn{align-self:flex-end;display:block;margin-bottom:.5rem;position:static}.tab-link{border-bottom:1px solid #8cff8c;border-bottom:1px solid var(--border-color);border-radius:8px;text-align:left;width:100%}.tab-link:last-child{border-bottom:none}.dashboard{gap:1rem}.card{border-radius:12px;padding:1rem}.metric-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.status-actions{align-items:stretch;flex-direction:column;gap:.75rem}.insight-list,.issues-list{gap:.65rem}.share-card .share-actions>*{flex:1 1 100%}.sticky-monitor-cta{display:flex}.dashboard{padding:8px}.card{border-radius:8px;margin-bottom:16px}.metric-grid{gap:12px;grid-template-columns:repeat(2,1fr)}.metric:last-child{grid-column:1/-1}.metric-value{font-size:32px}.metric-label{font-size:14px}.metric-unit{font-size:16px}.sticky-monitor-cta{background:var(--color-bg-primary);border-top:2px solid var(--color-border);bottom:0;box-shadow:0 -2px 8px #0000001a;left:0;padding:12px 16px;position:fixed;right:0;z-index:100}.sticky-monitor-cta button{font-size:18px;font-weight:600;min-height:56px;width:100%}.dashboard{padding-bottom:80px}.card-header h2{font-size:18px}.auto-test-controls,.test-size-options{display:flex;flex-direction:column;gap:8px}.auto-test-controls{width:100%}.auto-test-controls label{font-size:14px}.auto-test-controls select{width:100%}.share-actions{display:flex;flex-direction:column;gap:8px}.share-actions button{width:100%}.status-pill{font-size:14px;padding:4px 12px}.contract-hint{font-size:12px}}@media (max-width:600px){body{padding:.75rem}.container{padding:1rem}.metric-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.test-size-options{align-items:flex-start;flex-direction:column}.test-size-options label{align-items:center;display:flex;gap:.5rem;width:100%}.tabs-container{align-items:stretch;flex-direction:column}.toast-shelf{left:.5rem;max-width:none;right:.5rem;top:.5rem}}@media (max-width:480px){.metric-grid{grid-template-columns:1fr}.card-header{align-items:flex-start;flex-direction:column}.install-card .install-actions button,.share-card .share-actions button,.status-actions button{width:100%}.metric-meta{font-size:.85rem}}@media (max-width:375px){.metric-value{font-size:28px}.card-header h2{font-size:16px}.metric-grid{gap:8px}body{padding:.5rem}.container{padding:.75rem}h1{font-size:1.75rem}h2{font-size:1.1rem}.toast{font-size:.9rem}}@media (pointer:coarse){.wizard-option,button{font-size:1.05rem;min-height:48px}.mobile-session-carousel{display:block}.log-section table{display:none}}.info-tooltip-wrapper{display:inline-block;margin-left:4px;position:relative}.info-icon{background:none;border:none;cursor:pointer;font-size:14px;min-height:24px;min-width:24px;padding:4px}.tooltip-bubble{background:var(--color-bg-secondary);border:1px solid var(--color-border);border-radius:4px;bottom:100%;box-shadow:0 2px 8px #00000026;font-size:14px;line-height:1.4;margin-bottom:8px;max-width:90vw;padding:12px;width:250px;z-index:1000}.tooltip-bubble,.tooltip-bubble:after{left:50%;position:absolute;transform:translateX(-50%)}.tooltip-bubble:after{border:6px solid #0000;border-top:6px solid var(--color-bg-secondary);content:"";top:100%}@media (max-width:768px){.tooltip-bubble{left:auto;right:0;transform:none;width:280px}.tooltip-bubble:after{left:auto;right:12px;transform:none}}.anomaly-timeline{background:#0000000d;background:var(--color-bg-secondary,#0000000d);border-radius:8px;margin:1rem 0;padding:1rem}.timeline-header{align-items:center;display:flex;flex-wrap:wrap;gap:.5rem;justify-content:space-between;margin-bottom:1rem}.timeline-header h4{color:var(--color-text-primary);font-size:.95rem;font-weight:600;margin:0}.timeline-legend{display:flex;font-size:.75rem;gap:1rem}.legend-item{align-items:center;color:var(--color-text-secondary);display:flex;gap:.35rem}.legend-dot{border-radius:50%;flex-shrink:0;height:10px;width:10px}.legend-good{background:#4caf50}.legend-warning{background:#ff9800}.legend-critical{background:#f44336}.timeline-bars{align-items:flex-end;background:var(--color-bg-primary);border:1px solid #0000001a;border:1px solid var(--color-border,#0000001a);border-radius:4px;display:flex;gap:.5rem;height:120px;justify-content:space-between;padding:.5rem}.timeline-day{align-items:center;display:flex;flex:1 1;flex-direction:column;gap:.5rem}.timeline-bar{align-items:flex-start;border-radius:4px 4px 0 0;cursor:pointer;display:flex;justify-content:center;min-height:10px;padding-top:4px;position:relative;transition:all .3s ease;width:100%}.timeline-bar:hover{opacity:.8;transform:translateY(-2px)}.timeline-bar-good{background:linear-gradient(180deg,#4caf50,#66bb6a);border:1px solid #4caf50}.timeline-bar-warning{background:linear-gradient(180deg,#ff9800,#ffa726);border:1px solid #ff9800}.timeline-bar-critical{background:linear-gradient(180deg,#f44336,#e57373);border:1px solid #f44336}.bar-count{color:#fff;font-size:.7rem;font-weight:700;text-shadow:0 1px 2px #0000004d}.timeline-label{font-size:.7rem;white-space:nowrap}.timeline-empty,.timeline-label{color:var(--color-text-secondary);text-align:center}.timeline-empty{font-size:.9rem;font-style:italic;margin:1rem 0 0;padding:1rem}@media (max-width:768px){.timeline-header{align-items:flex-start;flex-direction:column}.timeline-legend{flex-wrap:wrap;gap:.75rem}.legend-item{font-size:.7rem}.timeline-bars{gap:.25rem;height:100px;padding:.35rem}.bar-count,.timeline-label{font-size:.65rem}}@media (max-width:480px){.timeline-bars{height:80px}.timeline-label{font-size:.6rem}}@media (prefers-reduced-motion:reduce){.timeline-bar{transition:none}.timeline-bar:hover{transform:none}}
/*# sourceMappingURL=main.2b3480ea.css.map*/