.tooltip-wrap{position:relative;display:inline-flex}.tooltip-bubble{width:max-content;padding:8px 10px;border-radius:var(--radius-sm);background:var(--bg-panel-hi);border:1px solid var(--border-strong);box-shadow:var(--shadow-raised);color:var(--text-secondary);font-size:var(--text-caption);line-height:1.5;text-align:left;white-space:normal;pointer-events:none}.tooltip-bubble-portal{position:fixed;z-index:9999;opacity:0;visibility:hidden;transform:translateY(-3px);transition:opacity .12s ease,transform .12s ease,visibility .12s}.tooltip-bubble-portal.is-visible{opacity:1;visibility:visible;transform:translateY(0)}.nav-rail{display:flex;flex-direction:column;align-items:center;justify-content:space-between;gap:var(--gap-md);padding:var(--gap-md) 11px;background:var(--bg-app-2);border-right:1px solid var(--border);flex-shrink:0;position:relative;z-index:100}.nav-items{display:flex;flex-direction:column;align-items:center;gap:var(--gap-md)}.nav-items-bottom{position:relative;padding-top:var(--gap-md)}.nav-items-bottom:before{content:"";position:absolute;top:0;left:-11px;right:-11px;height:1px;background:var(--border)}.nav-item{position:relative;display:inline-flex;align-items:center;justify-content:center;width:38px;height:38px;border-radius:10px;color:var(--text-tertiary);transition:color var(--duration-fast) var(--ease-in-out),background var(--duration-fast) var(--ease-in-out)}.nav-icon{flex-shrink:0}.nav-item:hover:not(.active){color:var(--text-secondary);background:#ffffff0a}.nav-item.active{background:var(--accent-muted);color:var(--accent)}.nav-item.active:before{content:"";position:absolute;left:-11px;top:50%;transform:translateY(-50%);width:3px;height:20px;border-radius:0 3px 3px 0;background:var(--accent)}.nav-item:focus-visible{outline:1px solid var(--accent);outline-offset:2px}.container_f47ac7{flex-shrink:0;display:inline-flex;align-items:center;justify-content:center;height:var(--uib-size);width:var(--uib-size)}.inner_235694{height:var(--uib-size);width:var(--uib-size);transform-origin:center;animation:rotate_c76b1d var(--uib-speed) linear infinite;will-change:transform;overflow:visible}.car_b190b2{fill:none;stroke:var(--uib-color);stroke-dasharray:1,200;stroke-dashoffset:0;stroke-linecap:round;animation:stretch_e5e8e0 calc(var(--uib-speed) * .75) ease-in-out infinite;will-change:stroke-dasharray,stroke-dashoffset;transition:stroke .5s ease}.track_4529b9{fill:none;stroke:var(--uib-color);opacity:var(--uib-bg-opacity);transition:stroke .5s ease}@keyframes rotate_c76b1d{to{transform:rotate(360deg)}}@keyframes stretch_e5e8e0{0%{stroke-dasharray:0,150;stroke-dashoffset:0}50%{stroke-dasharray:75,150;stroke-dashoffset:-25}to{stroke-dashoffset:-99}}.update-overlay{position:fixed;inset:0;z-index:100;display:flex;align-items:center;justify-content:center;padding:var(--gap-xl);background:#0000008c;animation:update-fade var(--duration-fast) var(--ease-out)}.update-dialog{width:100%;max-width:360px;padding:0;overflow:hidden;background:var(--bg-panel);border:1px solid var(--border-strong);border-radius:var(--radius);box-shadow:var(--shadow-raised);animation:update-rise var(--duration-normal) var(--ease-out)}.update-head{display:flex;align-items:center;gap:var(--gap-md);padding:var(--gap-lg)}.update-mark{display:flex;align-items:center;justify-content:center;flex-shrink:0;width:40px;height:40px;border-radius:var(--radius-sm);color:var(--accent);background:var(--accent-muted);border:1px solid var(--border)}.update-heading{min-width:0}.update-title{margin:0;font-size:15px;font-weight:var(--weight-semibold);color:var(--text-primary);letter-spacing:-.01em}.update-versions{display:flex;align-items:center;gap:var(--gap-tight);margin:3px 0 0;font-size:var(--text-small);font-variant-numeric:tabular-nums}.update-version-old{color:var(--text-tertiary)}.update-versions svg{color:var(--text-tertiary)}.update-version-new{color:var(--accent);font-weight:var(--weight-semibold)}.update-body{padding:var(--gap-lg);background:var(--bg-app-2);border-top:1px solid var(--border)}.update-notes-label{margin:0 0 var(--gap-sm);font-size:var(--text-micro);font-weight:var(--weight-semibold);letter-spacing:.06em;text-transform:uppercase;color:var(--text-tertiary)}.update-notes{max-height:168px;overflow-y:auto;padding:var(--gap-stack) var(--gap-md);background:var(--bg-inset);border:1px solid var(--border);border-radius:var(--radius-sm);font-size:var(--text-body);line-height:1.5;color:var(--text-secondary);white-space:pre-wrap}.update-actions{display:flex;justify-content:flex-end;gap:var(--gap-sm);padding:var(--gap-lg)}.update-btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--gap-tight);min-width:76px;padding:10px 14px;border-radius:var(--radius-sm);font-size:var(--text-small);font-weight:var(--weight-semibold);letter-spacing:.01em;color:var(--text-secondary);background:var(--bg-panel-hi);border:1px solid var(--border);transition:background var(--duration-fast) var(--ease-in-out),color var(--duration-fast) var(--ease-in-out)}.update-btn:hover:not(:disabled){background:var(--bg-hover);color:var(--text-primary)}.update-btn:active:not(:disabled){transform:translateY(.5px)}.update-btn.is-primary{color:#fff;background:var(--accent);border-color:transparent}.update-btn.is-primary:hover:not(:disabled){background:var(--accent-hover);color:#fff}.update-btn:disabled{opacity:.45;cursor:not-allowed}.update-btn.is-busy{opacity:1;cursor:default;pointer-events:none}@keyframes update-fade{0%{opacity:0}}@keyframes update-rise{0%{opacity:0;transform:translateY(6px) scale(.98)}}.container_f782f4{flex-shrink:0;display:inline-flex;align-items:center;justify-content:center;height:calc(var(--uib-size) * .9);width:var(--uib-size)}.inner_37f4c9{display:flex;align-items:center;justify-content:space-between;width:var(--uib-size);height:calc(var(--uib-size) * .9)}.bar_409d0f{width:var(--uib-stroke);height:100%;background-color:var(--uib-color);transition:background-color .3s ease}.bar_409d0f:nth-child(1){animation:grow_ca6a4e var(--uib-speed) ease-in-out calc(var(--uib-speed) * -.45) infinite}.bar_409d0f:nth-child(2){animation:grow_ca6a4e var(--uib-speed) ease-in-out calc(var(--uib-speed) * -.3) infinite}.bar_409d0f:nth-child(3){animation:grow_ca6a4e var(--uib-speed) ease-in-out calc(var(--uib-speed) * -.15) infinite}.bar_409d0f:nth-child(4){animation:grow_ca6a4e var(--uib-speed) ease-in-out infinite}@keyframes grow_ca6a4e{0%,to{transform:scaleY(.3)}50%{transform:scaleY(1)}}.data-row{display:flex;align-items:baseline;justify-content:space-between;gap:var(--gap-lg);padding:var(--row-py) 0}.data-row .field-label{flex-shrink:0}.data-row .text-value{text-align:right}.data-row:first-child{padding-top:0}.data-row:last-child{padding-bottom:0}.data-row+.text-hint{margin-top:var(--gap-sm)}.inline-meta{display:inline-flex;align-items:center;gap:var(--gap-tight);min-width:0;max-width:100%}.inline-meta-item{min-width:0}.sep-dot{flex-shrink:0;width:3px;height:3px;border-radius:50%;background:var(--text-tertiary)}.conn-strip-sub.inline-meta,.iface-header-sub.inline-meta{display:flex;overflow:hidden;white-space:nowrap}.conn-strip-sub.inline-meta .inline-meta-item:first-child{flex-shrink:1;overflow:hidden;text-overflow:ellipsis}.wifi-share-overlay{position:absolute;inset:0;z-index:90;display:flex;align-items:center;justify-content:center;padding:var(--gap-xl);background:#00000080;animation:wifi-share-fade var(--duration-fast) var(--ease-out)}.wifi-share-dialog{width:100%;max-width:340px;padding:0;overflow:hidden;background:var(--bg-panel);border:1px solid var(--border-strong);border-radius:var(--radius);box-shadow:var(--shadow-raised);animation:wifi-share-rise var(--duration-normal) var(--ease-out)}.wifi-share-head{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--gap-sm);padding:var(--gap-lg)}.wifi-share-heading{min-width:0}.wifi-share-title{margin:0;font-size:15px;font-weight:var(--weight-semibold);color:var(--text-primary);letter-spacing:-.01em}.wifi-share-sub{margin:4px 0 0;font-size:var(--text-small);color:var(--text-secondary)}.wifi-share-head .wifi-share-close{flex-shrink:0;margin:calc(-1 * var(--gap-xs)) calc(-1 * var(--gap-xs)) 0 0;background:transparent}.wifi-share-body{display:flex;flex-direction:column;align-items:center;text-align:center;padding:var(--gap-lg);background:var(--bg-app-2)}.wifi-share-state{display:flex;flex-direction:column;align-items:center;gap:var(--gap-md);padding:var(--gap-lg) 0;text-align:center}.wifi-share-state .text-muted{font-size:var(--text-small)}.wifi-share-error{margin:0;font-size:var(--text-small);color:var(--text-secondary)}.wifi-share-qr{display:flex;justify-content:center;margin-bottom:var(--gap-md);padding:var(--gap-lg);background:#fff;border:1px solid var(--border-strong);border-radius:var(--radius)}.wifi-share-qr img{display:block;width:240px;height:240px}.wifi-share-ssid{margin:0;font-size:var(--text-section);font-weight:var(--weight-semibold);color:var(--text-primary);overflow-wrap:anywhere}.wifi-share-note{margin:var(--gap-md) 0 0;font-size:var(--text-caption);color:var(--text-tertiary)}@keyframes wifi-share-fade{0%{opacity:0}}@keyframes wifi-share-rise{0%{opacity:0;transform:translateY(6px) scale(.98)}}.conn-card{background:var(--bg-panel);border-radius:var(--radius);box-shadow:var(--shadow-panel);overflow:hidden}.conn-strip{position:relative;display:flex;align-items:flex-start;gap:var(--gap-md);width:100%;min-height:var(--section-header-min);padding:var(--section-header-y) var(--section-header-x);text-align:left;transition:background var(--duration-fast) var(--ease-in-out)}.conn-strip-toggle{position:absolute;inset:0;z-index:0;cursor:pointer}.conn-strip-toggle:focus-visible{outline:1px solid var(--accent);outline-offset:-2px;border-radius:var(--radius)}.conn-strip:hover{background:#ffffff05}.conn-strip-icon,.conn-strip-text,.conn-strip>.signal-meter,.conn-chevron{position:relative;z-index:1;pointer-events:none}.conn-strip-share{position:relative;z-index:1;display:inline-flex}.conn-strip-icon,.conn-strip-share,.conn-chevron,.conn-strip>.signal-meter{align-self:center;flex-shrink:0}.conn-strip-icon{display:flex;align-items:center;justify-content:center;width:36px;height:36px;border-radius:var(--radius-sm);background:var(--bg-inset);color:var(--text-secondary)}.conn-card.wifi .conn-strip-icon{color:var(--series-down);background:#60a5fa1a}.conn-card.ethernet .conn-strip-icon{color:var(--positive);background:#34d3991a}.conn-card.disconnected .conn-strip-icon{color:var(--negative);background:#f8717114}.conn-strip-text{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px;padding:2px 0}.conn-strip-title,.conn-strip-sub,.conn-strip-meta{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.conn-strip-sub{color:var(--text-secondary)}.conn-chevron{color:var(--text-tertiary);transition:transform var(--duration-normal) var(--ease-out)}.conn-chevron.open{transform:rotate(180deg)}.conn-details-wrap{display:grid;grid-template-rows:0fr;transition:grid-template-rows var(--duration-normal) var(--ease-out)}.conn-details-wrap.open{grid-template-rows:1fr}.conn-details{overflow:hidden}.conn-details-wrap.open .conn-details{padding:var(--section-header-y) var(--section-body);background:var(--bg-inset)}.conn-details .data-row{padding:var(--gap-xs) 0}.signal-meter{display:flex;align-items:center;gap:var(--gap-sm);color:var(--positive)}.signal-meter.sig-good{color:var(--positive)}.signal-meter.sig-fair{color:var(--warning)}.signal-meter.sig-weak{color:var(--negative)}.signal-bars{display:inline-flex;align-items:flex-end;gap:2px;height:12px}.signal-bar{width:3px;border-radius:99px;background:color-mix(in srgb,currentColor 22%,transparent)}.signal-bar:nth-child(1){height:6px}.signal-bar:nth-child(2){height:8px}.signal-bar:nth-child(3){height:10px}.signal-bar:nth-child(4){height:12px}.signal-bar.on{background:currentColor}.signal-detail{display:flex;align-items:center;justify-content:flex-end;gap:var(--gap-sm)}.signal-detail .signal-bars{transform:translateY(-2px)}.conn-details .data-row:has(.signal-detail){align-items:center}.capability-status{display:inline-flex;align-items:center;gap:var(--gap-sm);flex-shrink:0;font-size:var(--text-caption);font-weight:var(--weight-medium)}.capability-meter{display:inline-flex;align-items:flex-end;gap:2px;height:12px}.capability-seg{width:3px;border-radius:99px;background:color-mix(in srgb,currentColor 22%,transparent)}.capability-seg:nth-child(1){height:6px}.capability-seg:nth-child(2){height:8px}.capability-seg:nth-child(3){height:10px}.capability-seg:nth-child(4){height:12px}.capability-seg.on{background:currentColor}.capability-level{white-space:nowrap}.capability-status.level-excellent{color:var(--positive)}.capability-status.level-good{color:#7fd88a}.capability-status.level-fair{color:var(--warning)}.capability-status.level-poor{color:#f0a35e}.capability-status.level-unsupported{color:var(--text-tertiary)}.ui-section{background:var(--bg-panel);border-radius:var(--radius);box-shadow:var(--shadow-panel);overflow:hidden;contain:content}.ui-section-header{display:flex;align-items:center;justify-content:space-between;gap:var(--gap-md);height:var(--section-header-h);padding:0 var(--section-header-x)}.ui-section-heading{display:flex;align-items:center;gap:8px;min-width:0}.ui-section-icon{display:inline-flex;align-items:center;justify-content:center;color:var(--text-tertiary);flex-shrink:0}.ui-section-header .section-title{line-height:1.2}.ui-section-badge{flex-shrink:0;padding:1px 6px;border-radius:999px;font-size:10px;font-weight:600;letter-spacing:.04em;text-transform:uppercase;color:var(--warning);background:color-mix(in srgb,var(--warning) 15%,transparent)}.ui-section-action{display:flex;align-items:center;flex-shrink:0}.ui-section-body{padding:var(--gap-xs) var(--section-body) var(--section-body)}.ui-section-body>.text-hint:first-child:last-child{margin:0}.ui-section-footer{padding:var(--gap-sm) var(--section-body);background:var(--bg-inset);border-top:1px solid var(--border)}.ui-section-body.is-loading{position:relative;opacity:.55;pointer-events:none}.section-loading{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;pointer-events:none}.section-loading .spinner{width:18px;height:18px}.capability-strip-section.ui-section{overflow:visible}.capability-strip{display:flex;align-items:center;justify-content:space-between;margin:0 calc(-1 * var(--section-body));padding:0 var(--section-body)}.capability-strip>.capability-strip-cell{flex:0 0 auto}.capability-strip-cell{display:flex;flex-direction:column;align-items:center;gap:var(--gap-sm)}.capability-strip-cell .capability-meter{height:9px;gap:2px}.capability-strip-cell .capability-seg{width:2px;border-radius:1px}.capability-strip-cell .capability-seg:nth-child(1){height:3px}.capability-strip-cell .capability-seg:nth-child(2){height:5px}.capability-strip-cell .capability-seg:nth-child(3){height:7px}.capability-strip-cell .capability-seg:nth-child(4){height:9px}.capability-strip-item{width:34px;height:34px;transition:background var(--duration-fast) var(--ease-in-out),transform var(--duration-fast) var(--ease-in-out)}.capability-strip-item:hover,.capability-strip-item:focus-visible{background:color-mix(in srgb,currentColor 22%,transparent);outline:none;transform:translateY(-1px)}.capability-strip--testing .capability-strip-item.capability-icon-tile,.capability-strip--placeholder .capability-strip-item.capability-icon-tile{color:var(--text-tertiary)}.capability-strip--testing .capability-strip-cell .capability-seg,.capability-strip--placeholder .capability-strip-cell .capability-seg{background:#ffffff0f}.capability-strip--testing .capability-strip-cell .capability-seg.on,.capability-strip--placeholder .capability-strip-cell .capability-seg.on{background:#ffffff29}.capability-strip--testing .capability-strip-item{cursor:default}.capability-strip--testing .capability-strip-item:hover,.capability-strip--testing .capability-strip-item:focus-visible,.capability-strip--placeholder .capability-strip-item:hover,.capability-strip--placeholder .capability-strip-item:focus-visible{background:color-mix(in srgb,currentColor 14%,transparent);transform:none}.capability-run-btn{margin-top:var(--gap-2xs)}.capability-strip-footer{display:flex;align-items:center;justify-content:flex-end;width:calc(100% + 2 * var(--section-body));margin:var(--gap-lg) calc(-1 * var(--section-body)) calc(-1 * var(--section-body));padding:var(--section-header-y) var(--section-body);background:var(--bg-inset);border-bottom-left-radius:var(--radius);border-bottom-right-radius:var(--radius)}.capability-strip-footer--hint{justify-content:flex-end;margin-top:var(--gap-md)}.capability-strip-footer .capability-strip-hint{margin:0;font-size:var(--text-caption)}.capability-strip-link{display:inline-flex;align-items:center;gap:var(--gap-tight);color:var(--text-secondary);font-size:var(--text-caption);white-space:nowrap;cursor:pointer;transition:color var(--duration-fast) var(--ease-in-out)}.capability-strip-updated{font-weight:var(--weight-medium)}.capability-strip-link svg{color:inherit;opacity:.72;transition:opacity var(--duration-fast) var(--ease-in-out)}.capability-strip-link:hover,.capability-strip-link:focus-visible{color:var(--accent)}.capability-strip-link:hover svg,.capability-strip-link:focus-visible svg{opacity:1}.capability-strip-link:hover .capability-strip-updated,.capability-strip-link:focus-visible .capability-strip-updated{text-decoration:underline;text-underline-offset:2px}.direction-icon{display:inline-flex;align-items:center;flex-shrink:0}.direction-icon.down{color:var(--series-down)}.direction-icon.up{color:var(--series-up)}.home-stats{display:grid;grid-template-columns:3fr 2fr;gap:var(--gap-stack)}.home-stat{display:flex;flex-direction:column;gap:var(--gap-tight);padding:var(--section-body);text-align:left;cursor:pointer;transition:box-shadow .12s ease,transform .12s ease}.home-stat:hover{box-shadow:var(--shadow-raised)}.home-stat:active{transform:translateY(1px)}.home-stat-head{display:flex;align-items:center;gap:var(--gap-sm)}.home-stat-icon{display:inline-flex;align-items:center;justify-content:center;color:var(--text-tertiary);flex-shrink:0}.home-stat-caret{margin-left:auto;color:var(--text-tertiary);transition:color .12s ease}.home-stat:hover .home-stat-caret,.home-stat:focus-visible .home-stat-caret{color:var(--text-secondary)}.home-stat-metric{margin-top:var(--gap-2xs)}.home-stat-sub{display:flex;align-items:center;gap:var(--gap-xs);font-size:var(--text-caption);color:var(--text-tertiary)}.home-usage-split{display:grid;grid-template-columns:1fr 1fr;gap:var(--gap-sm);width:100%;margin-top:var(--gap-md)}.home-usage-readout{display:flex;flex-direction:row;align-items:center;gap:var(--gap-xs);min-width:0}.home-usage-readout .metric-compact .metric-value{font-size:var(--text-title)}.home-usage-key{width:6px;height:6px;border-radius:50%;flex-shrink:0}.home-usage-key.online{background:var(--positive)}.home-usage-single{margin-top:var(--gap-md)}.home-usage-single .home-usage-readout{gap:var(--gap-sm)}.home-stat-loading{display:flex;flex:1;align-items:center;justify-content:center;padding-top:6px}.home-stat-static{cursor:default}.home-stat-static:hover{box-shadow:none}.home-stat-static:active{transform:none}.home-stat-scan{display:flex;flex:1;align-items:flex-end;justify-content:center}.home-stat-scan .btn-secondary{display:inline-flex;align-items:center;gap:var(--gap-xs);padding-left:8px;padding-right:8px;margin-bottom:-4px}.speed-readout{flex:1;min-width:0}.speed-readout-label{display:flex;align-items:center;gap:var(--gap-tight);margin-bottom:var(--gap-sm)}.speed-readout .metric-value{color:var(--text-primary)}.tp-chart{position:relative;contain:layout}.tp-chart-plot{position:relative;height:80px}.tp-chart-scale{position:absolute;top:4px;right:0;bottom:4px;width:26px;display:flex;flex-direction:column;justify-content:space-between;align-items:flex-end;font-size:var(--text-micro);line-height:1;color:var(--text-tertiary);pointer-events:none}.tp-chart-scale span:first-child{transform:translateY(-50%)}.tp-chart-scale span:last-child{transform:translateY(50%)}.tp-chart-axis{display:flex;justify-content:space-between;margin-top:6px;padding-right:26px;font-size:var(--text-micro);line-height:1;color:var(--text-tertiary)}.live-readouts{display:grid;grid-template-columns:1fr 1fr;gap:var(--gap-lg);margin-bottom:var(--gap-md)}.live-chart-wrap{margin:0 calc(-1 * var(--section-body)) calc(-1 * var(--section-body));padding:var(--section-body);background:var(--bg-inset)}.live-badge{display:inline-flex;align-items:center;gap:var(--gap-tight);padding:var(--gap-xs) var(--gap-sm);border-radius:99px;background:var(--bg-inset);font-size:var(--text-caption);font-weight:var(--weight-medium);color:var(--text-tertiary)}.live-badge.live{color:var(--positive)}.live-badge.live:before{content:"";display:inline-block;width:5px;height:5px;border-radius:50%;background:currentColor;animation:status-pulse 2s ease-in-out infinite}.bench-progress,.bench-footer{margin:var(--gap-lg) calc(-1 * var(--section-body)) calc(-1 * var(--section-body));padding:var(--section-body);background:var(--bg-inset)}.bench-progress{display:flex;flex-direction:column;gap:var(--gap-sm)}.bench-progress-head{display:flex;align-items:baseline;justify-content:space-between;gap:var(--gap-md)}.bench-progress-message{font-size:var(--text-small);color:var(--text-secondary);line-height:1.4}.bench-progress-pct{font-size:var(--text-body);font-weight:var(--weight-regular);color:var(--accent)}.bench-progress-track{width:100%}.wavy-progress{display:block;width:100%;height:16px;line-height:0}.wavy-fill{fill:none;stroke:var(--accent);stroke-width:3;stroke-linecap:round;stroke-linejoin:round}.wavy-scroll{animation-name:wavy-scroll;animation-timing-function:linear;animation-iteration-count:infinite;will-change:transform}@keyframes wavy-scroll{to{transform:translate(var(--wave-length))}}@media(prefers-reduced-motion:reduce){.wavy-scroll{animation:none}}.wavy-track{stroke:var(--accent);stroke-width:3;stroke-linecap:round;opacity:.24}.wavy-dot{fill:var(--accent)}.bench-hero{display:grid;grid-template-columns:1fr 1fr;gap:var(--gap-lg)}.bench-substats{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--gap-lg);margin-top:var(--gap-lg)}.bench-substat{display:flex;flex-direction:column;gap:4px}.bench-substat-value{font-size:var(--text-body);font-weight:var(--weight-medium);color:var(--text-primary)}.bench-substat-value.is-empty,.metric.is-empty .metric-value{color:var(--text-tertiary)}.bench-hero-cell{display:flex;flex-direction:column;gap:var(--gap-sm)}.bench-hero-label{display:flex;align-items:center;gap:var(--gap-tight)}.bench-empty{font-size:var(--text-display-sm)}.bench-footer{display:flex;align-items:center}.bench-footnote{display:flex;align-items:center;justify-content:space-between;gap:var(--gap-md);width:100%;min-width:0;font-size:var(--text-caption)}.bench-footnote-link{margin-left:auto;flex-shrink:0}.bench-conn{display:inline-flex;align-items:center;gap:var(--gap-tight);font-weight:var(--weight-medium);color:var(--text-secondary)}.bench-conn.conn-wifi svg{color:var(--series-down)}.bench-conn.conn-ethernet svg{color:var(--positive)}.capability-icon-tile{display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;border-radius:var(--radius-sm);color:var(--text-tertiary);background:color-mix(in srgb,currentColor 14%,transparent)}.capability-icon-tile.level-excellent{color:var(--positive)}.capability-icon-tile.level-good{color:#7fd88a}.capability-icon-tile.level-fair{color:var(--warning)}.capability-icon-tile.level-poor{color:#f0a35e}.capability-icon-tile.level-unsupported{color:var(--text-tertiary)}.capability-list-action{display:inline-flex;align-items:center;color:var(--text-secondary)}.capability-row{display:flex;align-items:center;gap:var(--gap-md);padding:var(--row-py) 8px;margin:0 -8px;width:calc(100% + 16px);border-radius:var(--radius-sm);text-align:left;transition:background var(--duration-fast) var(--ease-in-out)}.capability-row:hover,.capability-row:focus-visible{background:#ffffff08;outline:none}.capability-list{display:flex;flex-direction:column}.capability-row-main{display:flex;align-items:center;gap:12px;min-width:0;flex:1}.capability-row-text{display:flex;flex-direction:column;min-width:0}.capability-name,.capability-desc{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.capability-name{font-weight:var(--weight-medium);line-height:1.35}.capability-desc{font-size:var(--text-caption);line-height:1.3}.capability-icon-tile{width:32px;height:32px}.capability-row-status{display:flex;align-items:center;gap:10px;flex-shrink:0}.capability-chevron{flex-shrink:0;color:var(--text-tertiary);opacity:.3;transition:opacity var(--duration-fast) var(--ease-in-out)}.capability-row:hover .capability-chevron,.capability-row:focus-visible .capability-chevron{opacity:.7}.capability-list--testing .capability-row .capability-icon-tile{color:var(--text-tertiary)}.capability-list--testing .capability-row .capability-seg{background:#ffffff0f}.capability-list--testing .capability-row .capability-seg.on{background:#ffffff29}.capability-list--testing .capability-row{cursor:default}.capability-list--testing .capability-row:hover,.capability-list--testing .capability-row:focus-visible{background:transparent}.capability-row.is-empty{cursor:default}.capability-row.is-empty:hover{background:transparent}.capability-icon-tile.level-empty{color:var(--text-tertiary)}.capability-empty-value{flex-shrink:0;font-weight:var(--weight-medium);color:var(--text-tertiary)}.subpage{display:flex;flex:1;flex-direction:column;gap:var(--gap-stack)}.subpage-head{display:flex;align-items:center;gap:var(--gap-md)}.subpage-back{display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;width:38px;height:38px;border-radius:10px;color:var(--text-secondary);background:#ffffff0d;transition:color var(--duration-fast) var(--ease-in-out),background var(--duration-fast) var(--ease-in-out)}.subpage-back:hover{color:var(--text-primary);background:var(--bg-hover)}.subpage-text{display:flex;flex-direction:column;gap:var(--gap-xs);min-width:0;flex:1}.subpage-desc{font-size:var(--text-caption);color:var(--text-tertiary);line-height:1.35}.subpage-action{display:flex;align-items:center;flex-shrink:0}.cap-detail-list{display:flex;flex-direction:column;gap:var(--gap-lg)}.cap-detail{display:flex;flex-direction:column;overflow:hidden;padding:var(--section-header-y) var(--section-header-x) 0;scroll-margin-top:var(--gap-md)}.cap-detail-head{display:flex;align-items:center;gap:var(--gap-sm);padding-bottom:var(--gap-md)}.cap-detail-icon{display:inline-flex;align-items:center;justify-content:center;width:30px;height:30px;border-radius:var(--radius-sm);flex-shrink:0;color:var(--text-tertiary);background:color-mix(in srgb,currentColor 14%,transparent)}.cap-detail-icon.level-excellent{color:var(--positive)}.cap-detail-icon.level-good{color:#7fd88a}.cap-detail-icon.level-fair{color:var(--warning)}.cap-detail-icon.level-poor{color:#f0a35e}.cap-detail-icon.level-unsupported{color:var(--text-tertiary)}.cap-detail-head .capability-meter{transform:translateY(-1px)}.cap-detail-headtext{display:flex;flex-direction:column;gap:2px;flex:1;min-width:0}.cap-detail-name{font-size:var(--text-section);font-weight:var(--weight-semibold);letter-spacing:-.01em;line-height:1.2}.cap-detail-desc{font-size:var(--text-caption);color:var(--text-tertiary);line-height:1.3}.cap-detail-verdict{display:flex;align-items:center;justify-content:space-between;gap:var(--gap-md);margin:0 calc(-1 * var(--section-header-x));padding:var(--gap-md) calc(var(--section-header-x) - 1px) var(--gap-md);background:var(--bg-app);border:1px solid var(--bg-inset);border-top:0;border-bottom-left-radius:var(--radius);border-bottom-right-radius:var(--radius)}.cap-detail-summary{flex:1;min-width:0;display:flex;align-items:flex-start;gap:var(--gap-xs);font-size:var(--text-small);color:var(--text-secondary);line-height:1.45}.cap-verdict-icon{display:inline-flex;align-items:center;flex-shrink:0;height:calc(var(--text-small) * 1.45)}.cap-verdict-icon.level-excellent{color:var(--positive)}.cap-verdict-icon.level-good{color:#7fd88a}.cap-verdict-icon.level-fair{color:var(--warning)}.cap-verdict-icon.level-poor{color:#f0a35e}.cap-verdict-icon.level-unsupported{color:var(--text-tertiary)}.cap-verdict-status{display:inline-flex;align-items:center;gap:var(--gap-tight);flex-shrink:0;font-size:var(--text-caption);font-weight:var(--weight-semibold)}.cap-verdict-dot{width:6px;height:6px;border-radius:50%;background:currentColor;flex-shrink:0}.cap-verdict-status.level-excellent{color:var(--positive)}.cap-verdict-status.level-good{color:#7fd88a}.cap-verdict-status.level-fair{color:var(--warning)}.cap-verdict-status.level-poor{color:#f0a35e}.cap-verdict-status.level-unsupported{color:var(--text-tertiary)}.cap-metrics{display:grid;grid-template-columns:repeat(4,1fr);gap:var(--gap-md) var(--gap-sm);margin:0 calc(-1 * var(--section-header-x));padding:var(--gap-md) var(--section-header-x);background:var(--bg-inset)}.cap-metric{display:flex;flex-direction:column;gap:var(--gap-tight);min-width:0}.cap-metric .field-label{line-height:1.15}.cap-metric-value{font-size:var(--text-body);font-weight:var(--weight-medium);color:var(--text-primary);line-height:1.25;white-space:nowrap}.cap-metric.fail .cap-metric-value{color:var(--negative)}.cap-metric-need{font-size:var(--text-caption);color:var(--text-tertiary);line-height:1.2;white-space:nowrap}.view-empty.empty-state{gap:16px;text-align:center}.empty-state-icon{color:var(--text-tertiary);opacity:.55}.empty-state .empty-state-title{font-size:var(--text-body);color:var(--text-secondary)}.empty-state .empty-state-hint{max-width:42ch;font-size:var(--text-small);line-height:1.45;color:var(--text-tertiary)}.empty-state .btn-secondary{margin-top:4px}.history-list{display:flex;flex-direction:column;gap:var(--gap-md)}.history-card{padding:var(--section-body) var(--section-body) 0;overflow:hidden}.history-card-head{display:flex;align-items:center;justify-content:space-between;gap:var(--gap-md);margin-bottom:var(--gap-md)}.history-conn{display:inline-flex;align-items:center;gap:6px;min-width:0;font-size:var(--text-small);font-weight:var(--weight-medium);color:var(--text-secondary)}.history-conn.conn-wifi{color:var(--series-down)}.history-conn.conn-ethernet{color:var(--positive)}.history-conn-name{min-width:0;color:var(--text-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.history-conn-band{flex-shrink:0;font-size:var(--text-caption);color:var(--text-tertiary);font-weight:var(--weight-regular)}.history-card-time{flex-shrink:0;font-size:var(--text-caption);color:var(--text-tertiary)}.history-card-metrics{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--gap-md)}.history-metric{display:flex;flex-direction:column;gap:4px;min-width:0}.history-metric-label{display:flex;align-items:center;gap:var(--gap-tight)}.history-metric-value{font-size:var(--text-title);font-weight:var(--weight-semibold);letter-spacing:-.01em;color:var(--text-primary)}.history-metric-unit{font-family:var(--font);font-size:var(--text-caption);font-weight:var(--weight-regular);color:var(--text-secondary)}.history-card-footer{margin:var(--gap-sm) calc(-1 * var(--section-body)) 0;padding:var(--gap-md) calc(var(--section-body) - 1px);background:var(--bg-app);border:1px solid var(--bg-inset);border-top:0;border-bottom-left-radius:var(--radius);border-bottom-right-radius:var(--radius)}.history-footnote{display:flex;align-items:center;justify-content:space-between;gap:var(--gap-md);width:100%;min-width:0;font-size:var(--text-caption);color:var(--text-tertiary)}.history-footnote-link{margin-left:auto;flex-shrink:0}.history-menu{position:relative;flex-shrink:0}.history-kebab{display:inline-flex;align-items:center;justify-content:center;width:30px;height:30px;border-radius:var(--radius-sm);color:var(--text-tertiary);transition:color var(--duration-fast) var(--ease-in-out),background var(--duration-fast) var(--ease-in-out)}.history-kebab:hover,.history-kebab[aria-expanded=true]{color:var(--text-primary);background:var(--bg-hover)}.history-dropdown{position:absolute;top:calc(100% + 4px);right:0;z-index:20;display:flex;flex-direction:column;gap:2px;min-width:148px;padding:var(--gap-xs);background:var(--bg-panel-hi);border:1px solid var(--border-strong);border-radius:var(--radius-sm);box-shadow:var(--shadow-raised);animation:history-menu-in var(--duration-fast) var(--ease-out)}.history-menuitem{display:flex;align-items:center;gap:var(--gap-sm);width:100%;padding:var(--gap-sm);border-radius:var(--radius-xs);font-size:var(--text-small);font-weight:var(--weight-medium);color:var(--text-secondary);text-align:left;transition:color var(--duration-fast) var(--ease-in-out),background var(--duration-fast) var(--ease-in-out)}.history-menuitem:hover{color:var(--text-primary);background:var(--bg-hover)}.history-menuitem.is-danger{color:var(--negative)}.history-menuitem.is-danger:hover{color:var(--negative);background:color-mix(in srgb,var(--negative) 14%,transparent)}@keyframes history-menu-in{0%{opacity:0;transform:translateY(-4px)}}.view-header-row{display:flex;align-items:center;gap:var(--gap-md);position:relative;z-index:20}.view-header-text{display:flex;flex-direction:column;gap:var(--gap-xs);min-width:0;flex:1}.view-header-sub{font-size:var(--text-caption);color:var(--text-tertiary);min-height:calc(var(--text-caption) * 1.35)}.view-header-sub.show{animation:fade-in var(--duration-normal) var(--ease-out)}.view-header-status{color:var(--text-tertiary)}.view-header-actions{display:flex;align-items:center;gap:4px}.speed-header-sub{display:inline-flex;align-items:center;gap:var(--gap-tight)}.speed-history-link{display:inline-flex;align-items:center;gap:5px;margin-left:-6px;padding:2px 8px;border-radius:999px;color:var(--text-secondary);font-size:inherit;font-weight:var(--weight-medium);cursor:pointer;transition:color var(--duration-fast) var(--ease-in-out)}.speed-history-link:hover{color:var(--accent)}.speed-history-link:hover .speed-history-link-text{text-decoration:underline;text-underline-offset:2px}.speed-history-link svg{color:inherit;opacity:.72;transition:opacity var(--duration-fast) var(--ease-in-out)}.speed-history-link:hover svg{opacity:1}button.speed-run-btn{padding:10px 14px;font-size:var(--text-small)}.speed-run-btn:not(.is-stop){color:#fff;background:var(--accent)}.speed-run-btn:not(.is-stop):hover:not(:disabled){color:#fff;background:var(--accent-hover)}.speed-run-btn.is-stop{color:#fff;background:var(--negative)}.speed-run-btn.is-stop:hover:not(:disabled){color:#fff;background:color-mix(in srgb,var(--negative) 84%,#000)}.interface-list{display:flex;flex-direction:column;gap:var(--gap-stack)}.iface-panel .ui-section-header{height:auto;padding:var(--section-header-y) var(--section-header-x) var(--gap-sm);border-bottom:none}.iface-panel .ui-section-body{padding-top:var(--gap-tight)}.iface-panel .data-row{padding:var(--gap-xs) 0}.iface-panel-icon{display:flex;align-items:center;justify-content:center;width:32px;height:32px;border-radius:var(--radius-sm);background:var(--bg-inset);color:var(--text-secondary);flex-shrink:0}.iface-panel.wifi .iface-panel-icon{color:var(--series-down);background:#60a5fa1a}.iface-panel.ethernet .iface-panel-icon{color:var(--positive);background:#34d3991a}.iface-panel-name{min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.iface-panel-name.text-title{font-size:var(--text-section)}.iface-tag{color:var(--text-tertiary)}.iface-tag.muted{opacity:.7}.iface-panel.default .iface-tag:not(.muted){color:var(--positive)}.iface-state{display:inline-flex;align-items:center;gap:var(--gap-tight);flex-shrink:0;text-transform:capitalize}.iface-state-dot{width:5px;height:5px;border-radius:50%;background:currentColor}.iface-state.up{color:var(--positive)}.devices-subnet{display:inline-flex;align-items:baseline;gap:6px}.devices-indicator{position:relative;display:inline-block;margin-left:3px}.devices-online.leaving,.devices-scan.leaving{position:absolute;left:0;top:0}.devices-online{color:var(--text-tertiary);white-space:nowrap;animation:scan-slide-in var(--duration-normal) var(--ease-out) backwards}.devices-online.leaving{animation:scan-slide-out var(--duration-normal) var(--ease-out) forwards}.devices-online-dot{display:inline-block;width:5px;height:5px;border-radius:50%;background:var(--positive);margin-right:5px;vertical-align:middle;position:relative;top:-1px}.devices-online .num{color:var(--text-secondary)}.devices-scan{display:inline-block;color:var(--text-tertiary);white-space:nowrap;animation:scan-slide-in var(--duration-normal) var(--ease-out) backwards}.devices-scan.leaving{animation:scan-slide-out var(--duration-normal) var(--ease-out) forwards}@keyframes scan-slide-in{0%{opacity:0;transform:translate(-8px)}to{opacity:1;transform:none}}@keyframes scan-slide-out{to{opacity:0;transform:translate(-8px)}}.devices-scan-dot{display:inline-block;width:5px;height:5px;border-radius:50%;background:var(--positive);margin-right:5px;vertical-align:middle;position:relative;top:-1px;animation:status-pulse 1.6s ease-in-out infinite}.devices-scan-phases{position:relative;display:inline-block}.devices-scan-phase-sizer{visibility:hidden}.devices-scan-phase{position:absolute;left:0;top:0;transition:opacity var(--duration-normal) var(--ease-out),transform var(--duration-normal) var(--ease-out)}.devices-scan-phase[data-state=next]{opacity:0;transform:translateY(5px)}.devices-scan-phase[data-state=current]{opacity:1;transform:none}.devices-scan-phase[data-state=past]{opacity:0;transform:translateY(-5px)}.device-list{display:flex;flex-direction:column;gap:var(--gap-stack)}.device-row{display:flex;align-items:flex-start;gap:12px;padding:var(--section-header-y) var(--section-header-x)}.device-row-body{display:flex;flex-direction:column;gap:var(--gap-xs);min-width:0;flex:1}.device-row-top{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--gap-sm);margin-bottom:var(--gap-2xs)}.device-row-bottom{display:flex;align-items:baseline;justify-content:space-between;gap:var(--gap-sm)}.device-row-icon{display:flex;align-items:center;justify-content:center;width:32px;height:32px;border-radius:var(--radius-sm);background:var(--bg-inset);color:var(--text-secondary);flex-shrink:0}.device-row.gateway .device-row-icon{color:var(--positive);background:#34d3991a}.device-row:not(.gateway) .device-row-icon.kind-computer,.device-row:not(.gateway) .device-row-icon.kind-nas,.device-row:not(.gateway) .device-row-icon.kind-tablet,.device-row:not(.gateway) .device-row-icon.kind-phone{color:var(--series-down);background:#6aa0ff1a}.device-row:not(.gateway) .device-row-icon.kind-tv,.device-row:not(.gateway) .device-row-icon.kind-console,.device-row:not(.gateway) .device-row-icon.kind-printer{color:var(--series-up);background:#b39dff1a}.device-row:not(.gateway) .device-row-icon.kind-iot,.device-row:not(.gateway) .device-row-icon.kind-camera,.device-row:not(.gateway) .device-row-icon.kind-speaker{color:var(--warning);background:#f5c4511a}.device-row:not(.gateway) .device-row-icon.kind-router{color:var(--positive);background:#34d3991a}.device-row-name{min-width:0;flex:1;display:-webkit-box;-webkit-line-clamp:2;line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;overflow-wrap:anywhere}.device-row-name.text-title{font-size:var(--text-section)}.device-row-meta{display:flex;align-items:baseline;gap:var(--gap-sm);min-width:0}.device-row-meta>.device-row-kind{min-width:0;flex:0 1 auto;flex-wrap:nowrap;overflow:hidden;white-space:nowrap}.device-row-meta>.device-row-kind .inline-meta-item{overflow:hidden;text-overflow:ellipsis}.device-row-kind{flex-wrap:wrap;color:var(--text-secondary)}.device-row-lastseen{margin-left:auto;flex-shrink:0;color:var(--text-tertiary)}.device-row-gateway-role{color:var(--positive)}.device-row-mac{display:inline-flex;align-items:baseline;gap:var(--gap-sm);min-width:0;font-variant-numeric:tabular-nums;letter-spacing:.02em;color:var(--text-tertiary)}.device-row-random{position:relative;padding-left:var(--gap-md);letter-spacing:0;color:var(--text-tertiary);white-space:nowrap}.device-row-random:before{content:"";position:absolute;left:0;top:50%;width:3px;height:3px;border-radius:50%;background:currentColor;opacity:.55;transform:translateY(-50%)}.device-row-ip{flex-shrink:0;color:var(--text-secondary)}.device-row-state{display:inline-flex;align-items:center;flex-shrink:0;gap:var(--gap-tight);color:var(--text-tertiary);font-size:var(--text-small)}.device-row-dot{width:5px;height:5px;border-radius:50%;background:currentColor}.device-row-state.reachable{color:var(--positive)}.device-list>.devices-hint{max-width:40ch;margin-top:10px;padding:0 4px;line-height:1.45;font-size:var(--text-small)}.events-timeline{display:flex;flex-direction:column;padding:6px 4px 8px 0}.tl-day{display:flex;flex-direction:column}.tl-day:not(:first-child){margin-top:18px}.tl-day-heading{margin:0 0 14px;color:var(--text-tertiary);font-size:var(--text-small);font-weight:600;letter-spacing:.04em;text-transform:uppercase}.tl-item{position:relative;display:grid;grid-template-columns:28px 1fr;gap:14px;padding-left:5px;padding-bottom:22px}.tl-item:last-child{padding-bottom:0}.tl-item:not(:last-child):before{content:"";position:absolute;left:18px;top:30px;bottom:0;width:2px;background:var(--border-strong);border-radius:1px}.tl-marker{width:28px;height:28px;border-radius:50%;display:flex;align-items:center;justify-content:center;flex-shrink:0;color:var(--text-secondary);background:var(--bg-inset);z-index:1}.tl-marker[class*=tone-]{background:color-mix(in srgb,currentColor 14%,transparent)}.tl-marker.tone-join{color:var(--positive)}.tl-marker.tone-leave{color:var(--text-tertiary);background:var(--bg-inset);box-shadow:inset 0 0 0 1.5px var(--border-strong)}.tl-marker.tone-baseline{color:var(--accent)}.tl-marker.tone-alert{color:var(--warning)}.tl-marker.tone-danger{color:var(--negative)}.tl-content{display:flex;flex-direction:column;gap:4px;min-width:0;padding-top:2px}.tl-content>*{line-height:1.3}.tl-head{display:flex;align-items:baseline;gap:10px}.tl-title{flex:1;min-width:0;color:var(--text-primary);font-weight:600;font-size:var(--text-section);overflow-wrap:anywhere}.tl-time{flex-shrink:0;color:var(--text-tertiary);font-size:var(--text-small);white-space:nowrap}.tl-subject{flex-wrap:wrap;color:var(--text-secondary);font-size:var(--text-body)}.tl-subject-kind{color:var(--text-tertiary)}.tl-conn-line{display:flex;width:100%}.tl-conn-duration{margin-left:auto;flex-shrink:0;white-space:nowrap;color:var(--text-tertiary);font-size:var(--text-small)}.tl-meta{align-items:center;flex-wrap:wrap;color:var(--text-tertiary);font-size:var(--text-small);font-variant-numeric:tabular-nums;letter-spacing:.02em}.usage-hero{display:grid;grid-template-columns:1fr 1fr;gap:var(--gap-lg)}.usage-metric-label{display:flex;align-items:center;gap:6px;margin-bottom:var(--gap-sm)}.usage-inline-icon{vertical-align:-1px;color:var(--text-tertiary)}.usage-footer{margin:var(--gap-md) calc(-1 * var(--section-body)) calc(-1 * var(--section-body));padding:var(--section-body);background:var(--bg-app)}.usage-footer--split{display:flex;align-items:center;justify-content:space-between;gap:var(--gap-md)}.usage-footer-metrics{display:inline-flex;align-items:center;gap:var(--gap-md)}.usage-footer-metric{display:inline-flex;align-items:center;gap:var(--gap-xs)}.usage-chart-wrap+.usage-footer{margin-top:0}.usage-chart-wrap{position:relative;margin:-2px calc(-1 * var(--section-body)) 0;padding:var(--gap-xs) var(--section-body) var(--gap-sm);background:var(--bg-inset)}.service-icon{flex-shrink:0;border-radius:var(--radius-xs);object-fit:contain}.service-icon--fallback{display:inline-flex;align-items:center;justify-content:center;background:var(--bg-hover);color:var(--text-secondary);font-size:10px;font-weight:var(--weight-semibold);line-height:1}.app-list{display:flex;flex-direction:column}.ui-section-body.app-list{padding:0}.app-row{position:relative;display:flex;flex-direction:column;gap:var(--gap-sm);padding:var(--gap-md) var(--section-body);transition:background var(--duration-fast) var(--ease-in-out)}.app-row:hover{background:#ffffff08}.app-row-toggle{position:absolute;inset:0;width:100%;border:none;background:none;cursor:pointer}.app-row-toggle:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}.app-row-main,.app-row-bar,.app-row-figures{pointer-events:none}.app-row+.app-row{border-top:1px solid var(--border)}.app-row-main{display:flex;align-items:center;justify-content:space-between;gap:var(--gap-md)}.app-row-end{display:inline-flex;align-items:center;gap:8px;flex-shrink:0}.app-row-caret{color:var(--text-tertiary);opacity:.35;transition:opacity var(--duration-fast) var(--ease-in-out)}.app-row:hover .app-row-caret{opacity:.75}.app-row-id{display:inline-flex;align-items:center;gap:8px;min-width:0}.app-row-name{font-size:var(--text-small);color:var(--text-primary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.app-row-total{font-size:var(--text-small);color:var(--text-secondary);flex-shrink:0}.app-row-bar{display:flex;height:3px;margin-left:3px;border-radius:var(--radius-xs);overflow:hidden;background:var(--bg-inset)}.app-row-seg{height:100%;transition:width .4s var(--ease-out)}.app-row-seg--down{background:var(--series-down)}.app-row-seg--up{background:var(--series-up)}.app-row-figures{display:flex;align-items:center;gap:var(--gap-md);padding-left:0}.app-row-figure{display:inline-flex;align-items:center;gap:5px;font-size:var(--text-caption);color:var(--text-tertiary)}.app-row-figure .num{min-width:46px;text-align:right}.app-subtitle-links{display:inline-flex;align-items:center;gap:2px}.app-subtitle-links .sep-dot+.app-hosts-link{margin-left:0}.app-hosts-link{display:inline-flex;align-items:center;gap:5px;margin-left:-8px;padding:2px 8px;border-radius:999px;color:var(--text-secondary);font-size:inherit;font-weight:var(--weight-medium);cursor:pointer;transition:color var(--duration-fast) var(--ease-in-out)}.app-hosts-link:hover{color:var(--accent)}.app-hosts-link:hover .app-hosts-link-text{text-decoration:underline;text-underline-offset:2px}.app-hosts-link svg{color:inherit;opacity:.72;transition:opacity var(--duration-fast) var(--ease-in-out)}.app-hosts-link:hover svg{opacity:1}.host-list{display:flex;flex-direction:column}.ui-section-body.host-list{padding:0}.host-app{padding:var(--gap-md) var(--section-body);scroll-margin-top:var(--gap-md)}.host-app+.host-app{border-top:1px solid var(--border)}.host-app.nav-flash:first-child{border-radius:var(--radius) var(--radius) 0 0}.host-app.nav-flash:last-child{border-radius:0 0 var(--radius) var(--radius)}.host-app.nav-flash:only-child{border-radius:var(--radius)}.host-app-header{display:flex;align-items:center;justify-content:space-between;gap:var(--gap-md);width:100%;padding:0;border:none;background:none;font:inherit;color:inherit;text-align:left;cursor:pointer;border-radius:var(--radius-xs);transition:color var(--duration-fast) var(--ease-in-out)}.host-app-header:hover{color:var(--text-primary)}.host-app-id{display:inline-flex;align-items:center;gap:8px;min-width:0}.host-app-chevron{flex-shrink:0;color:var(--text-tertiary);transform:rotate(-90deg);transition:transform var(--duration-normal) var(--ease-out)}.host-app-chevron.open{transform:rotate(0)}.host-app-count{flex-shrink:0;min-width:18px;padding:1px 6px;border-radius:var(--radius-pill, 999px);background:var(--bg-inset);color:var(--text-tertiary);font-size:var(--text-caption);font-variant-numeric:tabular-nums;text-align:center}.host-app-name{font-size:var(--text-small);color:var(--text-primary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.host-app-total{font-size:var(--text-small);color:var(--text-secondary);flex-shrink:0}.host-app-hosts{display:flex;flex-direction:column;gap:var(--gap-sm);margin-top:var(--gap-sm);padding-left:21px}.host-row{display:flex;align-items:center;justify-content:space-between;gap:var(--gap-md)}.host-row-id{display:inline-flex;align-items:center;gap:7px;min-width:0}.host-flag{flex-shrink:0;width:18px;display:inline-flex;align-items:center;justify-content:center;font-size:13px;line-height:1;font-family:"Twemoji Country Flags",var(--font)}.host-flag-fallback{color:var(--text-quaternary, var(--text-tertiary));opacity:.6}.host-name{font-size:var(--text-caption);color:var(--text-secondary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.host-name-tip{min-width:0;overflow:hidden}.host-name-tip-content{display:flex;flex-direction:column;gap:2px}.host-name-tip-name{color:var(--text-primary);word-break:break-all}.host-name-tip-ip{color:var(--text-tertiary);font-variant-numeric:tabular-nums}.host-row-figures{display:inline-flex;align-items:center;gap:var(--gap-md);flex-shrink:0}.host-figure{display:inline-flex;align-items:center;gap:5px;font-size:var(--text-caption);color:var(--text-tertiary)}.host-figure .num{min-width:46px;text-align:right}.traffic-list{display:flex;flex-direction:column}.ui-section-body.traffic-list{padding:0}.traffic-row{display:flex;flex-direction:column;gap:var(--gap-sm);padding:var(--gap-md) var(--section-body)}.traffic-row+.traffic-row{border-top:1px solid var(--border)}.traffic-row-main{display:flex;align-items:center;justify-content:space-between;gap:var(--gap-md)}.traffic-row-id{display:inline-flex;align-items:center;gap:8px;min-width:0}.traffic-row-glyph{color:var(--text-tertiary);flex-shrink:0}.traffic-row-name{font-size:var(--text-small);color:var(--text-primary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.traffic-row-total{font-size:var(--text-small);color:var(--text-secondary);flex-shrink:0}.traffic-row-bar{display:flex;height:3px;margin-left:3px;border-radius:var(--radius-xs);overflow:hidden;background:var(--bg-inset)}.traffic-row-seg{height:100%;transition:width .4s var(--ease-out)}.traffic-row-seg--down{background:var(--series-down)}.traffic-row-seg--up{background:var(--series-up)}.traffic-row-figures{display:flex;align-items:center;gap:var(--gap-md)}.traffic-row-figure{display:inline-flex;align-items:center;gap:5px;font-size:var(--text-caption);color:var(--text-tertiary)}.traffic-row-figure .num{min-width:46px;text-align:right}.diag-warning{margin:0}.diag-router-section .ui-section-footer{padding-top:var(--gap-md);padding-bottom:var(--gap-lg);border-top:none}.diag-router .data-row{padding:var(--gap-xs) 0}.diag-dns .data-row{padding:6px 0}.diag-router .data-row:first-child,.diag-dns .data-row:first-child{padding-top:0}.diag-router .data-row:last-child,.diag-dns .data-row:last-child{padding-bottom:0}.svctally{display:inline-flex;align-items:center;gap:var(--gap-sm)}.svctally-half{display:inline-flex;align-items:center;gap:3px}.svctally-icon{flex-shrink:0}.spark-wrap{position:relative;display:inline-block;flex-shrink:0}.spark{display:block;overflow:visible;cursor:crosshair;color:var(--text-tertiary)}.spark-good{color:var(--positive)}.spark-warn{color:var(--warning)}.spark-bad{color:var(--negative)}.spark-area{stroke:none}.spark-line{fill:none;stroke:currentColor;stroke-width:1.25;stroke-linecap:round;stroke-linejoin:round;opacity:.85}.spark-dot-solo{fill:currentColor}.spark-flat{opacity:1;stroke-width:1.5}.spark-down{fill:var(--negative)}.spark-empty{display:inline-block}.spark-cursor{stroke:var(--border-strong);stroke-width:1}.spark-cursor-dot{fill:currentColor;stroke:var(--bg-panel);stroke-width:1.5}.spark-tip{position:absolute;bottom:calc(100% + 3px);transform:translate(-50%);padding:2px 6px;border-radius:var(--radius-xs);background:var(--bg-panel-hi);border:1px solid var(--border);box-shadow:var(--shadow-panel);color:var(--text-primary);font-family:var(--font-numeric);font-variant-numeric:tabular-nums;font-size:var(--text-micro);line-height:1.2;white-space:nowrap;pointer-events:none;z-index:3}.svc-dialog-overlay{position:absolute;inset:0;z-index:90;display:flex;align-items:center;justify-content:center;padding:var(--gap-xl);background:#00000080;animation:svc-dialog-fade var(--duration-fast) var(--ease-out)}.svc-dialog{width:100%;max-width:340px;padding:0;background:var(--bg-panel);border:1px solid var(--border-strong);border-radius:var(--radius);box-shadow:var(--shadow-raised);animation:svc-dialog-rise var(--duration-normal) var(--ease-out)}.svc-dialog-head{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--gap-sm);padding:var(--gap-lg)}.svc-dialog-heading{min-width:0}.svc-dialog-title{margin:0;font-size:15px;font-weight:var(--weight-semibold);color:var(--text-primary);letter-spacing:-.01em}.svc-dialog-sub{margin:4px 0 0;font-size:var(--text-small);color:var(--text-secondary)}.svc-dialog-head .svc-dialog-close{flex-shrink:0;margin:calc(-1 * var(--gap-xs)) calc(-1 * var(--gap-xs)) 0 0;background:transparent}.svc-dialog-body{padding:var(--gap-lg);background:var(--bg-app-2)}.svc-dialog-field{display:block}.svc-dialog-field+.svc-dialog-field{margin-top:var(--gap-lg)}.svc-dialog-field-label{display:block;margin-bottom:6px;font-size:var(--text-small);font-weight:var(--weight-medium);color:var(--text-secondary)}.svc-dialog-input{width:100%;padding:10px 12px;line-height:18px;background:var(--bg-inset);border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text-primary);font-size:var(--text-body);transition:border-color var(--duration-fast) var(--ease-in-out)}.svc-dialog-input::placeholder{color:var(--text-tertiary)}.svc-dialog-input:focus-visible{outline:none;border-color:var(--accent)}.svc-dialog-input[aria-invalid=true]{border-color:var(--negative)}.svc-dialog-inputgroup{display:flex;align-items:center;gap:var(--gap-xs);padding-right:6px;background:var(--bg-inset);border:1px solid var(--border);border-radius:var(--radius-sm);transition:border-color var(--duration-fast) var(--ease-in-out)}.svc-dialog-inputgroup:focus-within{border-color:var(--accent)}.svc-dialog-inputgroup[data-invalid=true]{border-color:var(--negative)}.svc-dialog-inputgroup .svc-dialog-input{flex:1 1 auto;min-width:0;background:transparent;border:none}.svc-dialog-inputgroup .svc-dialog-input:focus-visible{border:none}.svc-dialog-test{flex-shrink:0;display:inline-flex;align-items:center;justify-content:center;min-width:52px;height:30px;padding:0 var(--gap-stack);border:none;border-radius:var(--radius-sm);color:var(--accent);background:var(--accent-muted);font-size:var(--text-caption);font-weight:var(--weight-semibold);letter-spacing:.01em;transition:background var(--duration-fast) var(--ease-in-out),color var(--duration-fast) var(--ease-in-out)}.svc-dialog-test:hover:not(:disabled){color:var(--accent-hover);background:var(--accent-muted)}.svc-dialog-test.is-loading{min-width:0;width:30px;padding:0}.svc-dialog-test:disabled{opacity:.45;cursor:not-allowed}.svc-dialog-note,.svc-dialog-result{display:flex;align-items:center;margin-top:var(--gap-sm)}.svc-dialog-note{min-height:18px;font-size:var(--text-small);line-height:1.4;color:var(--text-tertiary)}.svc-dialog-note-error{color:var(--negative)}.svc-dialog-result{min-height:40px;gap:var(--gap-sm);padding:0 12px;background:var(--bg-inset);border:1px solid var(--border);border-radius:var(--radius-sm)}.svc-dialog-result-name{flex:1 1 auto;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:var(--text-small);color:var(--text-primary)}.svc-dialog-result-status{flex-shrink:0;font-family:var(--font-numeric);font-size:var(--text-small)}.svc-dialog-foot{display:flex;justify-content:flex-end;padding:var(--gap-lg)}.svc-dialog-btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--gap-tight);min-width:76px;padding:10px 14px;border-radius:var(--radius-sm);font-size:var(--text-small);font-weight:var(--weight-semibold);letter-spacing:.01em;color:var(--text-secondary);background:var(--bg-panel-hi);border:1px solid var(--border);transition:background var(--duration-fast) var(--ease-in-out),color var(--duration-fast) var(--ease-in-out)}.svc-dialog-btn:hover:not(:disabled){background:var(--bg-hover);color:var(--text-primary)}.svc-dialog-btn.is-primary{color:#fff;background:var(--accent);border-color:transparent}.svc-dialog-btn.is-primary:hover:not(:disabled){background:var(--accent-hover);color:#fff}.svc-dialog-btn:disabled{opacity:.45;cursor:not-allowed}@keyframes svc-dialog-fade{0%{opacity:0}}@keyframes svc-dialog-rise{0%{opacity:0;transform:translateY(6px) scale(.98)}}.mgsvc-list{padding:0}.mgsvc-row{display:flex;align-items:center;gap:var(--gap-sm);padding:var(--gap-md) var(--gap-tight) var(--gap-md) var(--gap-lg)}.mgsvc-row+.mgsvc-row{border-top:1px solid var(--border)}.mgsvc-body{display:flex;flex-direction:column;gap:2px;min-width:0;flex:1 1 auto}.mgsvc-line{display:flex;align-items:center;gap:var(--gap-md);min-width:0}.mgsvc-line-sub{min-height:1.25em;padding-left:calc(16px + var(--gap-md))}.mgsvc-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;flex:1 1 auto;min-width:0;color:var(--text-primary)}.mgsvc-host{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;flex:1 1 auto;min-width:0;font-size:var(--text-small);color:var(--text-tertiary)}.mgsvc-status{flex-shrink:0;min-width:4.5em;font-family:var(--font-numeric);font-size:var(--text-small);color:var(--text-secondary);text-align:right}.mgsvc-menu{position:relative;flex-shrink:0}.mgsvc-kebab{display:inline-flex;align-items:center;justify-content:center;width:30px;height:30px;border-radius:var(--radius-sm);color:var(--text-tertiary);transition:color var(--duration-fast) var(--ease-in-out),background var(--duration-fast) var(--ease-in-out)}.mgsvc-kebab:hover,.mgsvc-kebab[aria-expanded=true]{color:var(--text-primary);background:var(--bg-hover)}.mgsvc-dropdown{position:absolute;top:calc(100% + 4px);right:0;z-index:20;display:flex;flex-direction:column;gap:2px;min-width:148px;padding:var(--gap-xs);background:var(--bg-panel-hi);border:1px solid var(--border-strong);border-radius:var(--radius-sm);box-shadow:var(--shadow-raised);animation:mgsvc-menu-in var(--duration-fast) var(--ease-out)}.mgsvc-menuitem{display:flex;align-items:center;gap:var(--gap-sm);width:100%;padding:var(--gap-sm);border-radius:var(--radius-xs);font-size:var(--text-small);font-weight:var(--weight-medium);color:var(--text-secondary);text-align:left;transition:color var(--duration-fast) var(--ease-in-out),background var(--duration-fast) var(--ease-in-out)}.mgsvc-menuitem:hover{color:var(--text-primary);background:var(--bg-hover)}.mgsvc-menuitem.is-danger{color:var(--negative)}.mgsvc-menuitem.is-danger:hover{color:var(--negative);background:color-mix(in srgb,var(--negative) 14%,transparent)}@keyframes mgsvc-menu-in{0%{opacity:0;transform:translateY(-4px)}}.mgsvc-subtitle{display:inline-flex;align-items:center;gap:var(--gap-sm)}.mgsvc-timeline-link{display:inline-flex;align-items:center;gap:5px;margin-left:-6px;padding:2px 8px;border-radius:999px;color:var(--text-secondary);font-size:inherit;font-weight:var(--weight-medium);cursor:pointer;transition:color var(--duration-fast) var(--ease-in-out)}.mgsvc-timeline-link:hover{color:var(--accent)}.mgsvc-timeline-link:hover .mgsvc-timeline-link-text{text-decoration:underline;text-underline-offset:2px}.mgsvc-timeline-link svg{color:inherit;opacity:.72;transition:opacity var(--duration-fast) var(--ease-in-out)}.mgsvc-timeline-link:hover svg{opacity:1}button.mgsvc-add{color:#fff;background:var(--accent);padding:10px 14px;font-size:var(--text-small)}button.mgsvc-add:hover:not(:disabled){color:#fff;background:var(--accent-hover)}.stl-timeline{display:flex;flex-direction:column;padding:6px 4px 8px 0}.stl-day{display:flex;flex-direction:column}.stl-day:not(:first-child){margin-top:18px}.stl-day-heading{margin:0 0 14px;color:var(--text-tertiary);font-size:var(--text-small);font-weight:600;letter-spacing:.04em;text-transform:uppercase}.stl-item{position:relative;display:grid;grid-template-columns:28px 1fr;gap:14px;padding-left:5px;padding-bottom:22px}.stl-item:last-child{padding-bottom:0}.stl-item:not(:last-child):before{content:"";position:absolute;left:18px;top:30px;bottom:0;width:2px;background:var(--border-strong);border-radius:1px}.stl-marker{width:28px;height:28px;border-radius:50%;display:flex;align-items:center;justify-content:center;flex-shrink:0;z-index:1;background:color-mix(in srgb,currentColor 14%,transparent)}.stl-marker.is-down{color:var(--negative)}.stl-marker.is-up,.stl-marker.is-running{color:var(--positive)}.stl-content{display:flex;flex-direction:column;gap:4px;min-width:0;padding-top:2px}.stl-content>*{line-height:1.3}.stl-head{display:flex;align-items:baseline;gap:10px}.stl-title{flex:1;min-width:0;color:var(--text-primary);font-weight:600;font-size:var(--text-section);overflow-wrap:anywhere}.stl-time{flex-shrink:0;color:var(--text-tertiary);font-size:var(--text-small);white-space:nowrap}.stl-subject{display:inline-flex;align-items:center;gap:var(--gap-xs);min-width:0;color:var(--text-secondary);font-size:var(--text-body)}.stl-subject-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.stl-subject-muted{color:var(--text-tertiary)}.stl-conn-line{display:flex;width:100%}.stl-conn-line .stl-meta-duration{font-size:var(--text-small)}.stl-meta{display:flex;align-items:baseline;gap:10px;color:var(--text-tertiary);font-size:var(--text-small);letter-spacing:.02em}.stl-meta-host{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.stl-meta-duration{margin-left:auto;flex-shrink:0;white-space:nowrap}.stl-menu{position:relative}.stl-kebab{display:inline-flex;align-items:center;justify-content:center;width:30px;height:30px;border-radius:var(--radius-sm);color:var(--text-secondary);transition:color var(--duration-fast) var(--ease-in-out),background var(--duration-fast) var(--ease-in-out)}.stl-kebab:hover{color:var(--text-primary);background:var(--bg-hover)}.stl-dropdown{position:absolute;top:calc(100% + 4px);right:0;z-index:20;min-width:148px;padding:var(--gap-xs);border-radius:var(--radius-sm);border:1px solid var(--border-strong);background:var(--bg-panel-hi);box-shadow:var(--shadow-raised)}.stl-menuitem{display:flex;align-items:center;gap:8px;width:100%;padding:var(--gap-sm);border-radius:var(--radius-xs);color:var(--text-secondary);font-size:var(--text-small);text-align:left;transition:color var(--duration-fast) var(--ease-in-out),background var(--duration-fast) var(--ease-in-out)}.stl-menuitem:hover{background:var(--bg-hover)}.stl-menuitem.is-danger{color:var(--negative)}.stl-menuitem.is-danger:hover{color:var(--negative);background:color-mix(in srgb,var(--negative) 14%,transparent)}.toggle{position:relative;flex-shrink:0;width:36px;height:20px;border-radius:999px;background:var(--bg-inset);border:1px solid var(--border);transition:background var(--duration-fast) var(--ease-in-out),border-color var(--duration-fast) var(--ease-in-out)}.toggle.on{background:var(--accent);border-color:var(--accent)}.toggle:disabled{opacity:.5;cursor:not-allowed}.toggle:focus-visible{outline:1px solid var(--accent);outline-offset:2px}.toggle-knob{position:absolute;top:50%;left:2px;width:14px;height:14px;border-radius:50%;background:#fff;transform:translateY(-50%);transition:transform var(--duration-fast) var(--ease-in-out)}.toggle.on .toggle-knob{transform:translate(16px,-50%)}.settings-header{display:flex;align-items:center;gap:var(--gap-md)}.setting-list{display:flex;flex-direction:column}.ui-section-body.setting-list{padding-top:0}.setting-link-row{display:flex;align-items:center;justify-content:space-between;gap:var(--gap-lg);padding:var(--row-py) 8px;margin:0 -8px;width:calc(100% + 16px);border-radius:var(--radius-sm);text-align:left;cursor:pointer;transition:background var(--duration-fast) var(--ease-in-out)}.setting-link-row:hover,.setting-link-row:focus-visible{background:#ffffff08;outline:none}.setting-link-chevron{flex-shrink:0;color:var(--text-tertiary);opacity:.3;transition:opacity var(--duration-fast) var(--ease-in-out)}.setting-link-row:hover .setting-link-chevron,.setting-link-row:focus-visible .setting-link-chevron{opacity:.7}.setting-row{display:flex;align-items:center;justify-content:space-between;gap:var(--gap-lg);padding:var(--row-py) 0}.setting-row-stacked{flex-direction:column;align-items:flex-start;gap:var(--gap-md)}.setting-row-text{display:flex;flex-direction:column;gap:var(--gap-xs);min-width:0}.setting-row-title{font-size:var(--text-body);font-weight:var(--weight-medium);color:var(--text-primary)}.setting-row-desc{font-size:var(--text-caption);color:var(--text-tertiary);line-height:1.4}.setting-row-control{flex-shrink:0}.setting-input{width:100%;padding:8px 10px;font-size:var(--text-body);font-family:inherit;color:var(--text-primary);background:var(--surface-sunken, var(--surface));border:1px solid var(--border);border-radius:var(--radius-sm);outline:none}.setting-input::placeholder{color:var(--text-tertiary)}.setting-input:focus{border-color:var(--accent);outline:1px solid var(--accent)}.setting-row-control .btn-secondary{padding-top:var(--gap-sm);padding-bottom:var(--gap-sm)}.setting-row-control .check-now-btn{color:var(--text-secondary);background:var(--bg-inset)}.setting-row-control .check-now-btn:hover:not(:disabled){color:var(--text-primary);background:var(--bg-hover)}.check-now-btn.is-scanning{opacity:1;cursor:default;pointer-events:none}.settings-updates .ui-section-body:has(+.ui-section-footer){padding-bottom:0}.settings-updates .ui-section-footer{margin-top:var(--gap-md);padding-top:var(--gap-md);padding-bottom:var(--gap-md);border-top:none}.settings-status{display:flex;align-items:center;gap:var(--gap-tight);font-size:var(--text-caption);color:var(--text-secondary)}.settings-status svg{flex-shrink:0;transform:translateY(1px)}.settings-status.ok{color:var(--positive)}.settings-update{justify-content:space-between;gap:var(--gap-md)}.theme-segmented{display:inline-flex;gap:var(--gap-2xs);padding:2px;background:var(--bg-inset);border:1px solid var(--border);border-radius:var(--radius-sm)}.theme-seg{display:inline-flex;align-items:center;gap:var(--gap-tight);padding:5px 10px;border:none;background:transparent;border-radius:var(--radius-xs);font-size:var(--text-caption);font-weight:var(--weight-medium);color:var(--text-tertiary);cursor:pointer;transition:background var(--duration-fast) var(--ease-in-out),color var(--duration-fast) var(--ease-in-out)}.theme-seg svg{flex-shrink:0}.theme-seg:hover:not(.is-active){color:var(--text-secondary)}.theme-seg.is-active{background:var(--accent-muted);color:var(--accent)}.theme-seg:focus-visible{outline:1px solid var(--accent);outline-offset:1px}.about-hero{display:flex;flex-direction:column;align-items:center;text-align:center;gap:var(--gap-xs);padding:var(--gap-lg) var(--gap-md) var(--gap-md)}.about-logo{display:inline-flex;align-items:center;justify-content:center;width:72px;height:72px;border-radius:16px;background:radial-gradient(circle at 50% 56%,#5b8cff38,#5b8cff00 68%),linear-gradient(180deg,#1f2125,#16171a);box-shadow:inset 0 0 0 1px #ffffff0d,0 6px 16px #00000059;margin-bottom:var(--gap-sm)}.about-name{font-size:var(--text-display-sm);font-weight:var(--weight-semibold);letter-spacing:-.02em;color:var(--text-primary)}.about-tagline{font-size:var(--text-body);color:var(--text-secondary);max-width:300px;line-height:1.45}.about-version{margin-top:var(--gap-xs);font-size:var(--text-caption);color:var(--text-tertiary);font-variant-numeric:tabular-nums}.about-link{color:var(--accent);text-decoration:none}.about-link:hover{text-decoration:underline}.about-footer{text-align:center;padding:var(--gap-sm) 0 var(--gap-md)}.app-shell{display:flex;flex-direction:column;height:100%;background:var(--bg-app);border:1px solid var(--border);overflow:hidden}.app-lower{flex:1;display:flex;flex-direction:row;min-height:0;overflow:hidden}.app-col{flex:1;min-width:0;display:flex;flex-direction:column;overflow:hidden;position:relative}.app{flex:1;display:flex;flex-direction:column;width:100%;min-height:0;overflow:hidden;animation:fade-in var(--duration-normal) var(--ease-out) both}.app-scroll{flex:1;min-width:0;min-height:0;display:flex;flex-direction:column;overflow-x:hidden;overflow-y:auto;overscroll-behavior:contain;-webkit-overflow-scrolling:touch;scrollbar-gutter:stable;padding:var(--gap-md) 11px var(--gap-xl)}.loading-screen{display:flex;flex:1;flex-direction:column;align-items:center;justify-content:center;gap:14px;animation:fade-in var(--duration-normal) var(--ease-out)}.loading-screen p{font-size:var(--text-small);color:var(--text-secondary)}.loading-screen-slow{font-size:var(--text-caption);color:var(--text-tertiary)}.loading-screen-error{gap:var(--gap-lg);padding:var(--gap-xl)}.loading-screen-icon{display:inline-flex;align-items:center;justify-content:center;width:48px;height:48px;border-radius:50%;background:#f77b7b1a;color:var(--negative)}.loading-screen-text{display:flex;flex-direction:column;align-items:center;gap:var(--gap-xs);text-align:center}.loading-screen-error .loading-screen-title{font-size:var(--text-section);font-weight:var(--weight-semibold);color:var(--text-primary)}.loading-screen-error .loading-screen-msg{max-width:260px;color:var(--text-tertiary)}.loading-screen-retry{gap:var(--gap-tight)}.spinner{width:22px;height:22px;border:2px solid var(--border-strong);border-top-color:var(--accent);border-radius:50%;animation:spin .75s linear infinite}.status-bar{display:flex;align-items:center;justify-content:space-between;flex-shrink:0;min-height:56px;padding:0 var(--section-header-x) 0 16px;background:var(--bg-app-2);border-bottom:1px solid var(--border);-webkit-app-region:drag;position:relative;z-index:100}.status-bar-brand{display:inline-flex;align-items:center;gap:var(--gap-sm);-webkit-app-region:drag}.status-bar-logo{display:inline-flex;align-items:center;justify-content:center;color:var(--accent);flex-shrink:0}.brand-name{font-size:var(--text-title);font-weight:var(--weight-semibold);color:var(--text-primary);letter-spacing:-.02em}.status-bar-left{display:inline-flex;align-items:center;gap:12px;min-width:0}.status-bar-link{display:inline-flex;align-items:center;gap:6px;margin-top:1px;font-size:var(--text-caption);font-weight:var(--weight-medium);color:var(--text-tertiary);-webkit-app-region:no-drag}.win-controls{display:inline-flex;align-items:center;gap:6px;-webkit-app-region:no-drag}.win-btn{display:inline-flex;align-items:center;justify-content:center;width:28px;height:26px;border-radius:var(--radius-xs);color:var(--text-tertiary);transition:color var(--duration-fast) var(--ease-in-out),background var(--duration-fast) var(--ease-in-out)}.win-btn:hover{background:var(--bg-hover);color:var(--text-primary)}.win-btn-close:hover{background:#e5484d;color:#fff}.status-bar-link.on{color:var(--positive)}.status-bar-link.bad{color:var(--negative)}.status-bar-dot{width:5px;height:5px;border-radius:50%;background:currentColor}.status-bar-link.on .status-bar-dot,.status-bar-link.bad .status-bar-dot{animation:status-pulse 2.4s ease-in-out infinite}.btn-primary{display:inline-flex;align-items:center;justify-content:center;gap:var(--gap-tight);padding:var(--gap-sm) var(--gap-stack);background:transparent;color:var(--accent);border-radius:var(--radius-sm);font-size:var(--text-caption);font-weight:var(--weight-semibold);letter-spacing:.01em;transition:background var(--duration-fast) var(--ease-in-out),color var(--duration-fast) var(--ease-in-out),transform var(--duration-fast) var(--ease-in-out)}.btn-primary:hover:not(:disabled){background:var(--accent-muted);color:var(--accent-hover)}.btn-primary:active:not(:disabled){transform:translateY(.5px)}.btn-primary:disabled{opacity:.4;cursor:not-allowed}.btn-secondary{display:inline-flex;align-items:center;justify-content:center;gap:var(--gap-tight);padding:6px 12px;border-radius:var(--radius-sm);background:var(--bg-inset);color:var(--text-secondary);font-size:var(--text-caption);font-weight:var(--weight-medium);transition:color var(--duration-fast) var(--ease-in-out),background var(--duration-fast) var(--ease-in-out)}.btn-secondary:hover:not(:disabled){color:var(--text-primary);background:var(--bg-hover)}.btn-secondary:active:not(:disabled){transform:translateY(.5px)}.btn-secondary:disabled{opacity:.4;cursor:not-allowed}.btn-secondary.is-scanning{opacity:1;cursor:default;pointer-events:none}.btn-icon{display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;border-radius:var(--radius-sm);transition:color var(--duration-fast) var(--ease-in-out),background var(--duration-fast) var(--ease-in-out),transform var(--duration-fast) var(--ease-in-out)}.btn-icon:active:not(:disabled){transform:translateY(.5px)}.btn-icon:disabled{opacity:.4;cursor:not-allowed}.btn-icon.is-scanning{cursor:default;pointer-events:none;opacity:1}.btn-icon-primary{background:transparent;color:var(--accent)}.btn-icon-primary:hover:not(:disabled){background:var(--accent-muted);color:var(--accent-hover)}.btn-icon-secondary{background:var(--bg-inset);color:var(--text-secondary)}.btn-icon-stop{background:#f77b7b24;color:var(--negative)}.btn-icon-stop:hover{background:#f77b7b38}.btn-icon-stop svg{fill:currentColor}.btn-icon-secondary:hover:not(:disabled){background:var(--bg-hover);color:var(--text-primary)}.inline-error{padding:var(--gap-sm) var(--gap-md);border-radius:var(--radius-sm);background:#f8717114;color:var(--negative);font-size:var(--text-body);line-height:1.45}.error-banner{display:flex;align-items:center;gap:var(--gap-sm);padding:var(--gap-xs) var(--gap-sm) var(--gap-xs) var(--gap-md);border-radius:var(--radius-sm);background:#f8717114;color:var(--negative);font-size:var(--text-body);line-height:1.45;animation:fade-in var(--duration-fast) var(--ease-out)}.error-banner-icon{display:inline-flex;flex-shrink:0}.error-banner-text{flex:1;min-width:0}.error-banner-action{display:inline-flex;align-items:center;gap:var(--gap-tight);flex-shrink:0;padding:4px 10px;border-radius:var(--radius-sm);color:var(--negative);font-size:var(--text-caption);font-weight:var(--weight-medium);transition:background var(--duration-fast) var(--ease-in-out)}.error-banner-action:hover{background:#f8717124}.error-banner-dismiss{width:24px;height:24px;flex-shrink:0;color:var(--negative)}.error-banner-dismiss:hover{background:#f8717124}.app-scroll>.error-banner{margin-bottom:var(--gap-md)}.inline-error{margin-bottom:var(--gap-md)}.app-main{display:flex;flex:1;flex-direction:column;gap:var(--gap-stack)}@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(./InterVariable-DiVDrmQJ.woff2) format("woff2")}@font-face{font-family:Questrial;font-style:normal;font-weight:400;font-display:swap;src:url(./Questrial-Regular-DNhQdR1R.woff2) format("woff2")}@font-face{font-family:Twemoji Country Flags;font-style:normal;font-weight:400;font-display:swap;src:url(./TwemojiCountryFlags-Bymva2JV.woff2) format("woff2")}:root{--bg-app: #0a0b0e;--bg-app-2: #0c0d11;--bg-panel: #141519;--bg-panel-hi: #191a1f;--bg-inset: #0e0f13;--bg-hover: #202127;--border: rgba(255, 255, 255, .07);--border-strong: rgba(255, 255, 255, .11);--hairline-top: rgba(255, 255, 255, .05);--text-primary: #f5f6f8;--text-secondary: #a4a7b2;--text-tertiary: #71747f;--accent: #5b8cff;--accent-hover: #6f9bff;--accent-press: #4d7ef0;--accent-muted: rgba(91, 140, 255, .14);--positive: #43d6a0;--warning: #f5c451;--negative: #f77b7b;--series-down: #6aa0ff;--series-up: #b39dff;--shadow-panel: 0 1px 2px rgba(0, 0, 0, .35), 0 4px 12px rgba(0, 0, 0, .22);--shadow-raised: 0 12px 32px rgba(0, 0, 0, .45);--radius: 13px;--radius-sm: 8px;--radius-xs: 5px;--section-pad: 14px;--section-header-y: var(--section-pad);--section-header-x: var(--section-pad);--section-header-min: 42px;--section-header-h: 44px;--section-body: var(--section-pad);--gap-2xs: 2px;--gap-xs: 4px;--gap-tight: 6px;--gap-sm: 8px;--gap-md: 12px;--gap-stack: 10px;--gap-lg: 16px;--gap-xl: 20px;--row-py: 8px;--ease-out: cubic-bezier(.16, 1, .3, 1);--ease-in-out: cubic-bezier(.4, 0, .2, 1);--duration-fast: .14s;--duration-normal: .22s;--font: "Inter", system-ui, -apple-system, "Segoe UI", sans-serif;--font-numeric: "Questrial", ui-sans-serif, system-ui, sans-serif;--font-mono: var(--font-numeric);--text-micro: 10px;--text-caption: 11px;--text-small: 12px;--text-body: 13px;--text-section: 14px;--text-title: 17px;--text-display-sm: 28px;--text-display: 28px;--weight-regular: 400;--weight-medium: 500;--weight-semibold: 600}::view-transition-old(root),::view-transition-new(root){animation:none;mix-blend-mode:normal}::view-transition-old(root){z-index:0}::view-transition-new(root){z-index:1}:root.theme-to-dark::view-transition-old(root){z-index:1}:root.theme-to-dark::view-transition-new(root){z-index:0}:root.theme-light{--bg-app: #f6f7fa;--bg-app-2: #fafbfd;--bg-panel: #ffffff;--bg-panel-hi: #f6f7fa;--bg-inset: #f4f6fa;--bg-hover: #e9ecf2;--border: rgba(15, 18, 30, .1);--border-strong: rgba(15, 18, 30, .16);--hairline-top: rgba(255, 255, 255, .7);--text-primary: #1a1c22;--text-secondary: #565a66;--text-tertiary: #888c98;--accent: #3d6fe0;--accent-hover: #3162d4;--accent-press: #2b58c4;--accent-muted: rgba(61, 111, 224, .12);--positive: #1aa87a;--warning: #c6890c;--negative: #dc5757;--series-down: #3d6fe0;--series-up: #7c5cff;--shadow-panel: 0 1px 2px rgba(15, 20, 35, .06), 0 4px 12px rgba(15, 20, 35, .05);--shadow-raised: 0 12px 32px rgba(15, 20, 35, .14)}:root.theme-light .app-shell{background:#f0f2f6}:root.theme-light *::-webkit-scrollbar-thumb{background:#0f121e2e}:root.theme-light *{scrollbar-color:rgba(15,18,30,.18) transparent}:root.theme-light .view-header-icon,:root.theme-light .subpage-back{background:#0f121e0d}:root.theme-light .nav-item:hover:not(.active){background:#0f121e0d}:root.theme-light .conn-strip:hover,:root.theme-light .capability-row:hover,:root.theme-light .capability-row:focus-visible{background:#0f121e08}:root.theme-light .capability-list--testing .capability-row .capability-seg,:root.theme-light .capability-strip--testing .capability-strip-cell .capability-seg,:root.theme-light .capability-strip--placeholder .capability-strip-cell .capability-seg{background:#0f121e12}:root.theme-light .capability-list--testing .capability-row .capability-seg.on,:root.theme-light .capability-strip--testing .capability-strip-cell .capability-seg.on,:root.theme-light .capability-strip--placeholder .capability-strip-cell .capability-seg.on{background:#0f121e2e}:root.theme-light .setting-link-row:hover,:root.theme-light .setting-link-row:focus-visible{background:#0f121e08}*{margin:0;padding:0;box-sizing:border-box}html{height:100%;overflow:hidden}body{font-family:var(--font);background:transparent;color:var(--text-primary);line-height:1.45;font-size:var(--text-body);font-weight:var(--weight-regular);font-optical-sizing:auto;font-feature-settings:"cv11" 1,"ss01" 1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility;user-select:none;cursor:default;height:100%;overflow:hidden}input,textarea,select,[contenteditable]:not([contenteditable=false]){user-select:text;-webkit-user-select:text}.num,.data-row-value,.metric-value{font-family:var(--font-numeric);font-variant-numeric:tabular-nums;letter-spacing:0}::selection{background:#3b82f659}*{scrollbar-width:thin;scrollbar-color:rgba(255,255,255,.1) transparent}*::-webkit-scrollbar{width:5px}*::-webkit-scrollbar-thumb{background:#ffffff1a;border-radius:99px}#root{height:100%;overflow:hidden}button{font-family:inherit;cursor:pointer;border:none;outline:none;background:none;white-space:nowrap}button:focus-visible{outline:1px solid var(--accent);outline-offset:1px}.section-title{font-size:var(--text-section);font-weight:var(--weight-semibold);color:var(--text-primary);letter-spacing:-.01em;line-height:1.2}.field-label{font-size:var(--text-micro);font-weight:var(--weight-medium);color:var(--text-tertiary);text-transform:uppercase;letter-spacing:.06em;line-height:1.2}.text-title,.view-header-title{font-size:var(--text-title);font-weight:var(--weight-semibold);color:var(--text-primary);letter-spacing:-.02em;line-height:1.25}.view-header{margin:calc(-1 * var(--gap-md)) -40px 0 -11px;padding:var(--gap-md) 40px var(--gap-md) 11px;border-bottom:1px solid var(--border)}.view-header-icon{display:inline-flex;align-items:center;justify-content:center;align-self:center;width:38px;height:38px;border-radius:10px;background:#ffffff0d;color:var(--text-secondary);flex-shrink:0}.text-body{font-size:var(--text-body);font-weight:var(--weight-regular);color:var(--text-primary);line-height:1.45}.text-secondary{font-size:var(--text-body);font-weight:var(--weight-regular);color:var(--text-secondary);line-height:1.45}.text-muted{font-size:var(--text-body);font-weight:var(--weight-regular);color:var(--text-tertiary);line-height:1.45}.text-hint{font-size:var(--text-small);font-weight:var(--weight-regular);color:var(--text-tertiary);line-height:1.5}.text-value{font-size:var(--text-body);font-weight:var(--weight-medium);color:var(--text-primary);line-height:1.35}.val-good{color:var(--positive)}.val-warn{color:var(--warning)}.val-bad{color:var(--negative)}.text-meta{font-size:var(--text-caption);font-weight:var(--weight-regular);color:var(--text-tertiary);line-height:1.35}.metric{display:flex;align-items:baseline;gap:4px}.metric-value{font-family:var(--font-numeric);font-variant-numeric:tabular-nums;font-size:var(--text-display);font-weight:var(--weight-semibold);letter-spacing:-.01em;line-height:1;color:var(--text-primary)}.metric-unit{font-family:var(--font);font-size:var(--text-small);font-weight:var(--weight-regular);color:var(--text-secondary);transform:translateY(-1px)}.metric-compact .metric-value{font-size:var(--text-display-sm)}.section-placeholder{display:flex;flex-direction:column;align-items:center;text-align:center;gap:10px;padding:12px 8px 8px}.section-placeholder-icon{color:var(--text-tertiary)}.section-placeholder .text-hint{max-width:264px}.view-page{display:flex;flex:1;flex-direction:column;gap:var(--gap-stack)}.view-toolbar{display:flex;align-items:center;justify-content:space-between;gap:var(--gap-md);min-height:32px;padding:0 2px}.panel-head-main{display:flex;align-items:center;gap:10px;min-width:0;flex:1}.row-list>:first-child{padding-top:0}.row-list>:last-child{padding-bottom:0}.view-empty{display:flex;flex:1;flex-direction:column;align-items:center;justify-content:center;gap:12px;min-height:140px;padding:var(--gap-lg)}.view-empty p{font-size:var(--text-small);color:var(--text-tertiary)}.surface{background:var(--bg-panel);border-radius:var(--radius);box-shadow:var(--shadow-panel)}@keyframes spin{to{transform:rotate(360deg)}}@keyframes status-pulse{0%,to{opacity:1}50%{opacity:.4}}@keyframes fade-in{0%{opacity:0}to{opacity:1}}@keyframes fade-up{0%{opacity:0;transform:translateY(7px)}to{opacity:1;transform:none}}.recharts-wrapper,.recharts-surface{outline:none}.chart-tip{display:flex;flex-direction:column;gap:var(--gap-tight);padding:var(--gap-sm) var(--gap-md);min-width:150px;border-radius:var(--radius-sm);background:var(--bg-panel-hi);border:1px solid var(--border-strong);box-shadow:var(--shadow-raised);pointer-events:none}.chart-tip-title{font-size:var(--text-caption);font-weight:var(--weight-semibold);color:var(--text-secondary)}.chart-tip-row{display:flex;align-items:center;gap:var(--gap-sm)}.chart-tip-label{font-size:var(--text-small);color:var(--text-secondary)}.chart-tip-value{margin-left:auto;padding-left:var(--gap-lg);font-size:var(--text-small);font-weight:var(--weight-semibold);color:var(--text-primary)}.view-page>*,.subpage>*{animation:fade-up var(--duration-normal) var(--ease-out) backwards}.view-page>*:nth-child(2),.subpage>*:nth-child(2){animation-delay:45ms}.view-page>*:nth-child(3),.subpage>*:nth-child(3){animation-delay:90ms}.view-page>*:nth-child(4),.subpage>*:nth-child(4){animation-delay:135ms}.view-page>*:nth-child(n+5),.subpage>*:nth-child(n+5){animation-delay:.18s}.nav-flash{animation:nav-flash 1.5s var(--ease-out) forwards}@keyframes nav-flash{0%{outline:1px solid transparent;outline-offset:-1px;background-image:linear-gradient(transparent,transparent)}15%,55%{outline:1px solid var(--accent);outline-offset:-1px;background-image:linear-gradient(var(--accent-muted),var(--accent-muted))}to{outline:1px solid transparent;outline-offset:-1px;background-image:linear-gradient(transparent,transparent)}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}
