/* A quiet, dark iOS-inspired working surface. Shared tokens also color SVG charts. */
:root {
  color-scheme: dark;
  --ink: #f5f5f7; --muted: #adb0bb; --border: #35353d;
  --blue: #79afff; --orange: #ffb16b; --green: #65dca9; --red: #ff919b; --mts: #ef3f47; --purple: #c9a2ff; --navy: #4f7dff; --sky: #86dcff;
  --surface: #1c1c20; --page: #09090b; --raised: #28282e;
  --track: #34343c; --grid: #33333b; --axis: #555562; --crosshair: #babaca;
  --ease: cubic-bezier(.22, 1, .36, 1);
  font-family: -apple-system, BlinkMacSystemFont, "SF Pro Display", "Segoe UI", sans-serif;
  font-size: 16px; line-height: 1.5; -webkit-font-smoothing: antialiased;
}
* { box-sizing: border-box; }
html { scroll-behavior: smooth; scroll-padding-top: 120px; }
body { margin: 0; background: var(--page); color: var(--ink); }
a { color: inherit; text-decoration: none; }
button, a { -webkit-tap-highlight-color: transparent; touch-action: manipulation; }
button { font: inherit; color: inherit; cursor: pointer; }
button:focus-visible, a:focus-visible, [tabindex]:focus-visible { outline: 3px solid var(--blue); outline-offset: 5px; }
[hidden] { display: none !important; }
::selection { background: #32538a; color: white; }
svg { fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
.skip { position: fixed; top: -100px; left: 16px; padding: 12px 18px; border-radius: 14px; background: var(--raised); z-index: 100; }
.skip:focus { top: 16px; }

/* Floating material bar; the same navigation becomes a bottom dock on phones. */
.header {
  position: sticky; top: 12px; z-index: 20;
  display: flex; align-items: center; justify-content: space-between; gap: 24px;
  max-width: 1432px; min-height: 80px; margin: 12px auto 0; padding: 14px 24px;
  background: rgba(30, 30, 35, .91); border: 1px solid rgba(255, 255, 255, .1);
  border-radius: 26px; box-shadow: 0 10px 36px #00000033, inset 0 1px #ffffff06;
  -webkit-backdrop-filter: blur(24px) saturate(150%); backdrop-filter: blur(24px) saturate(150%);
}
.brand { display: flex; align-items: center; gap: 12px; font-size: 1.125rem; font-weight: 650; letter-spacing: -.025em; white-space: nowrap; }
.brand small { display: block; font-size: .8125rem; font-weight: 400; letter-spacing: 0; color: var(--muted); }
.brand-mark { display: grid; place-items: center; width: 44px; height: 44px; border-radius: 14px; background: linear-gradient(155deg, #5b9cff, #2863ce); box-shadow: inset 0 1px #ffffff40, 0 3px 12px #00000030; color: white; font-size: 1.6rem; font-weight: 700; }
.section-nav { --selected: 0; position: relative; display: grid; grid-template-columns: repeat(3, 1fr); gap: 0; width: 390px; padding: 4px; border-radius: 17px; background: #111114a8; }
.section-nav::before { content: ""; position: absolute; top: 4px; bottom: 4px; left: 4px; width: calc((100% - 8px)/3); border-radius: 13px; background: #404048; box-shadow: 0 2px 8px #00000035, inset 0 1px #ffffff12; transform: translateX(calc(var(--selected) * 100%)); transition: transform 340ms var(--ease); pointer-events: none; }
.section-nav a { position: relative; display: flex; align-items: center; justify-content: center; gap: 8px; min-height: 40px; padding: 8px 13px; border-radius: 13px; color: #b9bbc5; font-size: .875rem; font-weight: 500; transition: color 220ms, transform 180ms var(--ease); }
.section-nav a[aria-current] { color: white; }
.section-nav a:active { transform: scale(.95); }
.section-nav svg { width: 19px; height: 19px; }
.header-clock { text-align: right; font-size: .875rem; font-variant-numeric: tabular-nums; }
.header-clock small { display: block; color: var(--muted); font-size: .8125rem; }
main { max-width: 1488px; margin: auto; padding: 34px 28px 30px; }
.page-heading, .panel-heading, .heading-actions, .panel-bottom, .online-summary, .legend, .subheading, .difference-heading { display: flex; align-items: center; justify-content: space-between; gap: 20px; }
.page-heading { margin-bottom: 26px; justify-content: flex-end; }
.eyebrow { color: var(--muted); font-size: .875rem; font-weight: 500; margin: 0 0 7px; }
h1, h2, h3, p { margin: 0; }
h1 { font-size: clamp(1.65rem, 2.7vw, 2.25rem); line-height: 1.2; letter-spacing: -.045em; font-weight: 700; }
h2 { font-size: 1.55rem; line-height: 1.25; letter-spacing: -.035em; font-weight: 650; }
h3 { font-size: 1.0625rem; line-height: 1.4; letter-spacing: -.015em; font-weight: 600; }
.muted { color: var(--muted); font-size: .875rem; }
.heading-actions { flex-wrap: wrap; justify-content: flex-end; gap: 16px; }
.button { display: inline-flex; align-items: center; justify-content: center; gap: 8px; min-height: 44px; padding: 11px 19px; border: 1px solid #ffffff0c; border-radius: 15px; background: var(--raised); font-size: .875rem; font-weight: 600; transition: background 200ms, transform 180ms var(--ease), box-shadow 200ms; }
.button svg { width: 19px; height: 19px; }
.report-button { background: #0a64cd; color: white; box-shadow: 0 4px 14px #006ce220, inset 0 1px #ffffff15; }
.button:active { transform: scale(.96); }
.heading-actions form { margin: 0; }
.login-page { min-height: 100svh; display: grid; place-items: center; padding: 28px 18px; background: radial-gradient(ellipse at 50% 0%, #18273e 0%, transparent 60%), var(--page); }
.login-card { width: min(100%, 440px); margin: auto; padding: 36px; border: 1px solid var(--border); border-radius: 30px; background: var(--surface); box-shadow: 0 24px 80px #0006; }
.login-card .brand { margin-bottom: 36px; }
.login-card h1 { font-size: 1.8rem; }
.login-description { margin-top: 12px; color: var(--muted); }
.login-card form { margin-top: 28px; }
.login-card label { display: block; font-size: .9375rem; margin-bottom: 9px; }
.login-card input { width: 100%; min-height: 52px; padding: 12px 15px; border: 1px solid var(--border); border-radius: 14px; background: var(--page); color: var(--ink); font: inherit; }
.login-card input:focus-visible { outline: 3px solid var(--blue); outline-offset: 3px; }
.login-error { color: var(--red); font-size: .875rem; margin-top: 12px; }
.login-error:empty { display: none; }
.login-submit { width: 100%; font-size: 1rem; min-height: 50px; margin-top: 24px; }
.status-pill { display: inline-flex; align-items: center; gap: 7px; font-size: .875rem; color: var(--green); }
.status-pill::before { content: ""; width: 6px; height: 6px; border-radius: 50%; background: currentColor; }
.status-pill.warning { color: #ffcb7c; }
.notice { margin-bottom: 20px; padding: 16px 20px; background: #342b1d; color: #ffd595; border: 1px solid #5e4a2f; border-radius: 18px; font-size: .9375rem; }

/* Spacious grouped cards, with content hierarchy carried by type. */
.panel { margin-bottom: 24px; padding: 30px 32px 24px; border: 1px solid #ffffff0b; border-radius: 30px; background: var(--surface); box-shadow: 0 8px 30px #00000024, inset 0 1px #ffffff05; animation: enter-card 500ms var(--ease) both; }
.online-panel { background: linear-gradient(125deg, #20304618, transparent 60%), var(--surface); }
.panel-heading { align-items: flex-start; }
.panel-heading > div:first-child { min-width: 0; }
.panel-heading .muted { margin-top: 7px; }
.section-label { display: flex; align-items: center; gap: 9px; color: #c6c8d1; margin-bottom: 12px; }
.section-icon { display: inline-grid; place-items: center; width: 29px; height: 29px; border-radius: 9px; }
.section-icon svg { width: 18px; height: 18px; stroke-width: 1.9; }
.users-icon { background: #2f4768; color: #a3caff; }
.traffic-icon { background: #4c3824; color: #ffbf84; }
.bypass-icon { background: #204a3b; color: #8ce2ba; }
.average { display: grid; gap: 1px; text-align: right; min-width: 220px; padding-left: 28px; }
.average > span { color: var(--muted); font-size: .875rem; }
.average strong { font-size: 3.45rem; line-height: 1.15; letter-spacing: -.055em; font-weight: 650; font-variant-numeric: tabular-nums; }
.average small { color: var(--muted); font-size: .8125rem; }
.online-summary { justify-content: flex-start; flex-wrap: wrap; gap: 10px 18px; margin-top: 20px; font-size: .875rem; }
.online-summary > span:first-child { display: flex; align-items: center; gap: 10px; padding: 7px 12px; background: #ffffff06; border: 1px solid #ffffff07; border-radius: 11px; color: #c1c3cd; }
.online-summary strong { color: var(--ink); font-size: 1.125rem; font-weight: 650; font-variant-numeric: tabular-nums; }
.badge { display: inline-flex; align-items: center; padding: 5px 11px; border-radius: 9px; background: #493c242e; border: 1px solid #d5a75925; color: #f2cd8e; font-size: .8125rem; line-height: 1.5; }
.badge.ready { color: #82e3b6; border-color: #48c58a35; background: #1c433042; }
.chart-shell { position: relative; width: 100%; overflow: hidden; margin-top: 24px; }
.chart-shell svg { display: block; width: 100%; height: 100%; overflow: visible; stroke: none; }
.online-chart { height: 245px; }
.traffic-chart { height: 420px; }
.difference-chart { height: 166px; margin-top: 15px; }
.panel-bottom { margin-top: 15px; padding-top: 17px; border-top: 1px solid #ffffff0c; flex-wrap: wrap; font-size: .8125rem; color: var(--muted); }
.chart-empty { height: 100%; display: grid; place-items: center; padding: 20px; text-align: center; color: var(--muted); font-size: .9375rem; background: repeating-linear-gradient(0deg, transparent, transparent 49px, var(--grid) 50px); }
.tooltip { position: absolute; z-index: 3; top: 8px; min-width: 205px; max-width: 295px; padding: 14px 17px; border-radius: 17px; pointer-events: none; background: #313137ed; border: 1px solid #ffffff22; box-shadow: 0 8px 28px #00000055; -webkit-backdrop-filter: blur(18px); backdrop-filter: blur(18px); font-size: .875rem; line-height: 1.7; }
.tooltip strong { font-variant-numeric: tabular-nums; font-weight: 600; }
.tooltip-title { margin-bottom: 6px; padding-bottom: 6px; border-bottom: 1px solid #ffffff18; font-weight: 600; }
.tooltip-row { display: flex; align-items: center; justify-content: space-between; gap: 16px; }
.tooltip-dot { display: inline-block; width: 7px; height: 7px; margin-right: 6px; border-radius: 50%; }









.legend { justify-content: flex-start; gap: 12px; margin-top: 24px; font-size: .875rem; flex-wrap: wrap; }
.legend > span { display: flex; align-items: center; gap: 8px; }
.legend > span:not(.legend-unit) { padding: 7px 12px; background: #ffffff06; border-radius: 10px; }
.legend-line { display: inline-block; width: 20px; height: 3px; border-radius: 4px; }
.blue { background: var(--blue); } .orange { background: var(--orange); }
#traffic .legend-line.orange { width: 36px; height: 4px; border-radius: 0; background: repeating-linear-gradient(to right, var(--orange) 0 8px, transparent 8px 14px); }
.green { background: var(--green); }
.long-period { margin-top: 12px; line-height: 1.6; }
.legend .legend-unit { margin-left: auto; color: var(--muted); }
.difference-heading { border-top: 1px solid #ffffff0c; padding-top: 24px; margin-top: 22px; align-items: baseline; }
.difference-heading > span { color: var(--muted); font-size: .8125rem; }
.bypass-total { display: flex; align-items: baseline; gap: 9px; }
.bypass-total strong { font-size: 2.8rem; line-height: 1.2; font-weight: 650; letter-spacing: -.05em; }
.bypass-total > span { color: var(--muted); }
.bypass-layout { display: grid; grid-template-columns: 350px minmax(0, 1fr); gap: 50px; align-items: start; padding: 24px 0 35px; }
.share-visual { min-width: 0; }
.share-title { margin: 0 0 20px; font-size: .9375rem; font-weight: 500; color: #c6c8d1; }
.share-periods { display: grid; gap: 12px; }
.share-schedule { margin: 0 0 16px; color: var(--green); font-size: .875rem; line-height: 1.5; }
.share-interval { margin-top: 12px; color: var(--muted); font-size: .875rem; line-height: 1.5; }
.share-interval summary { cursor: pointer; overflow-wrap: anywhere; }
.share-interval summary:focus-visible { outline: 2px solid var(--green); outline-offset: 4px; border-radius: 3px; }
.share-interval .share-dates { margin-top: 8px; }
.share-period { padding: 17px 18px; border-radius: 20px; background: var(--raised); border: 1px solid var(--border); }
.share-period-heading { display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.share-period-heading span { max-width: 155px; font-size: .9375rem; }
.share-period-heading strong { color: var(--green); font-size: 1.875rem; font-weight: 600; letter-spacing: -.045em; white-space: nowrap; font-variant-numeric: tabular-nums; }
.share-dates { display: flex; flex-wrap: wrap; gap: 2px 5px; margin: 10px 0 12px; color: var(--muted); font-size: .75rem; line-height: 1.5; }
.share-dates span { white-space: nowrap; }
.share-track { height: 4px; border-radius: 4px; background: var(--track); overflow: hidden; }
.share-track > div { height: 100%; background: var(--green); border-radius: inherit; }
.share-note { margin: 12px 0 0; color: var(--muted); font-size: .75rem; line-height: 1.6; }
.share-note.stale { color: var(--orange); }
.group-heading { display: flex; align-items: start; justify-content: space-between; gap: 20px; margin-bottom: 26px; }
.group-heading .share-title { margin-bottom: 8px; }
.group-heading .muted { font-size: .8125rem; }
.group-heading .bypass-total { white-space: nowrap; }
.group-bars { display: flex; flex-direction: column; gap: 20px; }
.group-row > div:first-child { display: flex; align-items: baseline; justify-content: space-between; gap: 14px; margin-bottom: 10px; font-size: 1rem; }
.group-row strong { flex-shrink: 0; font-size: 1.125rem; font-weight: 600; font-variant-numeric: tabular-nums; }
.group-row small { display: block; font-size: .8125rem; color: var(--muted); margin-top: 2px; }
.bar-track { height: 7px; border-radius: 10px; background: var(--track); overflow: hidden; }
.bar-fill { height: 100%; border-radius: 10px; background: #85badf; transition: width 600ms var(--ease); }
.bypass-history { border-top: 1px solid #ffffff0c; padding-top: 26px; }
.subheading { margin-bottom: 24px; }
.subheading-actions { display: flex; align-items: center; justify-content: flex-end; gap: 14px; flex-wrap: wrap; }
.demo-switch { display: inline-flex; align-items: center; justify-content: space-between; gap: 10px; min-height: 44px; padding: 4px 0; border: 0; background: transparent; border-radius: 10px; font-size: .875rem; }
.switch-track { position: relative; display: inline-block; flex-shrink: 0; width: 45px; height: 28px; border-radius: 20px; background: #56565e; box-shadow: inset 0 0 0 1px #ffffff08; transition: background 250ms var(--ease); }
.switch-track > i { position: absolute; left: 3px; top: 3px; width: 22px; height: 22px; border-radius: 50%; background: #fff; box-shadow: 0 2px 4px #00000033; transition: transform 280ms var(--ease); }
.demo-switch[aria-checked="true"] .switch-track { background: #30a966; }
.demo-switch[aria-checked="true"] .switch-track > i { transform: translateX(17px); }
.demo-switch:active .switch-track > i { transform: scale(.93); }
.demo-switch[aria-checked="true"]:active .switch-track > i { transform: translateX(17px) scale(.93); }
.demo-note { display: flex; flex-wrap: wrap; align-items: center; gap: 5px 16px; padding: 15px 18px; margin-bottom: 18px; border-radius: 16px; background: #322a1e; border: 1px solid #e5ba7825; color: #f6d49c; font-size: .875rem; }
.demo-note strong { font-size: .9375rem; font-weight: 600; }
#bypass-comparison-period { margin-bottom: 15px; }
#bypass-comparison:not([hidden]) + #bypass-pending { margin-top: 26px; }
#bypass-recent-section { margin-top: 26px; }
.bypass-groups { margin-top: 30px; padding-top: 26px; border-top: 1px solid #ffffff0c; }
.bypass-groups-toggle { list-style: none; cursor: pointer; padding: 18px 20px; border-radius: 18px; background: #25252c; border: 1px solid var(--border); -webkit-tap-highlight-color: transparent; }
.bypass-groups-toggle::-webkit-details-marker { display: none; }
.bypass-groups-toggle::marker { content: ''; }
.bypass-groups-toggle:focus-visible { outline: 3px solid var(--blue); outline-offset: 4px; }
.bypass-groups-toggle h3, .online-toggle h2 { display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 10px 18px; }
.bypass-groups-action { display: inline-flex; align-items: center; gap: 10px; font-size: .8125rem; font-weight: 500; color: var(--muted); }
.bypass-groups-action svg { width: 20px; height: 20px; transition: transform 240ms var(--ease); }
.bypass-groups .when-open, .bypass-groups[open] .when-closed, .online-details .when-open, .online-details[open] .when-closed { display: none; }
.bypass-groups[open] .when-open, .online-details[open] .when-open { display: inline; }
.bypass-groups[open] .bypass-groups-action svg, .online-details[open] .bypass-groups-action svg { transform: rotate(180deg); }
.online-toggle { padding: 0; border: 0; border-radius: 8px; background: transparent; }
.online-content { padding-top: 24px; }
.bypass-groups-heading { display: grid; gap: 7px; margin-top: 20px; }
.bypass-group-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 20px; margin-top: 22px; }
.bypass-group-card { min-width: 0; padding: 22px 20px 16px; border: 1px solid var(--border); border-radius: 22px; background: #19191d; }
.bypass-group-heading { display: flex; align-items: center; justify-content: space-between; gap: 10px; flex-wrap: wrap; }
.bypass-group-heading h4 { margin: 0; font-size: 1.0625rem; font-weight: 600; }
.bypass-group-card .legend { gap: 8px; margin-top: 18px; font-size: .8125rem; }
.bypass-group-card .legend-unit { flex-basis: 100%; margin: 2px 0 0; }
.bypass-group-chart { height: 280px; margin-top: 18px; }
.collection-box { display: grid; grid-template-columns: minmax(0, 1fr) 280px; align-items: center; gap: 30px; padding: 22px 24px; border-radius: 20px; background: #25252c; border: 1px solid #ffffff08; }
.collection-box strong { font-size: 1rem; font-weight: 600; }
.collection-box p { color: var(--muted); font-size: .875rem; margin-top: 5px; max-width: 650px; }
.collection-progress { display: flex; flex-direction: column; gap: 8px; }
.collection-progress > span { font-size: .9375rem; font-weight: 500; }
.collection-progress small { font-size: .8125rem; color: var(--muted); }
progress { appearance: none; border: 0; width: 100%; height: 6px; border-radius: 8px; overflow: hidden; }
progress::-webkit-progress-bar { background: #3d3d47; }
progress::-webkit-progress-value { border-radius: 8px; background: var(--blue); transition: width 500ms var(--ease); }
progress::-moz-progress-bar { background: var(--blue); }
footer { display: flex; justify-content: space-between; gap: 20px; padding: 8px 5px 10px; color: var(--muted); font-size: .8125rem; }
footer > div { display: flex; gap: 8px 16px; flex-wrap: wrap; }
footer > div:last-child { text-align: right; justify-content: flex-end; }
footer strong { color: #d0d1d8; font-weight: 500; }
@keyframes enter-card { from { opacity: 0; transform: translateY(10px); } to { opacity: 1; transform: translateY(0); } }
@media (hover: hover) { .button:hover { background: #383842; box-shadow: inset 0 1px #ffffff14; } .report-button:hover { background: #1374e6; } .section-nav a:hover { color: white; } }
@media (min-width: 1700px) { main { max-width: 1590px; } .header { max-width: 1534px; } .traffic-chart { height: 450px; } }
@media (max-width: 1500px) { .header { margin-left: 28px; margin-right: 28px; } }
@media (max-width: 1100px) {
  .header { gap: 20px; padding: 12px 18px; } .section-nav { width: 345px; } .header-clock small { display: none; }
  .heading-actions { max-width: 250px; gap: 9px; } .panel { padding: 26px 25px 22px; }
  .bypass-layout { grid-template-columns: 300px minmax(0, 1fr); gap: 30px; }
  .bypass-group-grid { grid-template-columns: 1fr; }
  .collection-box { grid-template-columns: 1fr; gap: 20px; } .collection-progress { max-width: 430px; }
   
}
@media (max-width: 780px) {
  /* A filtered ancestor would trap the fixed dock inside the header. */
  .header { top: 0; min-height: 72px; margin: 0; border-radius: 0; border-width: 0 0 1px; padding: 13px 20px; background: #161619f5; -webkit-backdrop-filter: none; backdrop-filter: none; }
  .header-clock { font-size: .8125rem; } .header-clock small { display: block; font-size: .75rem; }
  .section-nav { position: fixed; z-index: 30; bottom: max(12px, env(safe-area-inset-bottom)); left: 50%; transform: translateX(-50%); width: min(430px, calc(100vw - 32px)); padding: 6px; border-radius: 28px; background: #28282ef2; border: 1px solid #ffffff18; box-shadow: 0 6px 28px #00000070, inset 0 1px #ffffff10; -webkit-backdrop-filter: blur(24px); backdrop-filter: blur(24px); }
  .section-nav::before { top: 6px; bottom: 6px; left: 6px; width: calc((100% - 12px)/3); border-radius: 22px; background: #51515b; }
  .section-nav a { flex-direction: column; gap: 3px; padding: 8px 10px; min-height: 57px; font-size: .8125rem; border-radius: 22px; }
  .section-nav svg { width: 21px; height: 21px; }
  html { scroll-padding-top: 92px; }
  main { padding: 27px 18px calc(115px + env(safe-area-inset-bottom)); }
  .page-heading { align-items: flex-start; flex-direction: column; gap: 18px; margin-bottom: 22px; }
  .page-heading .eyebrow { margin-bottom: 5px; } h1 { font-size: 1.9rem; }
  .heading-actions { width: 100%; max-width: none; justify-content: space-between; }
  .brand { font-size: 1.0625rem; } .brand-mark { width: 41px; height: 41px; font-size: 1.5rem; border-radius: 13px; }
  .panel { padding: 23px 20px 20px; border-radius: 25px; margin-bottom: 18px; }
  .panel-heading { gap: 14px; } .panel-heading .muted { font-size: .8125rem; }
  h2 { font-size: 1.3rem; } .section-label { font-size: .8125rem; gap: 7px; margin-bottom: 10px; }
  .section-icon { width: 26px; height: 26px; border-radius: 8px; } .section-icon svg { width: 16px; height: 16px; }
  .average { min-width: 140px; padding-left: 10px; padding-top: 4px; } .average strong { font-size: 2.7rem; } .average > span { font-size: .8125rem; }
  .online-summary { gap: 8px 12px; font-size: .8125rem; margin-top: 18px; } .online-summary > span:first-child { padding: 6px 9px; gap: 8px; } .online-summary strong { font-size: 1rem; }
  .online-chart { height: 240px; } .traffic-chart { height: 340px; } .difference-chart { height: 160px; }
  
  
    
   
  .legend { gap: 8px; margin-top: 20px; font-size: .8125rem; } .legend > span:not(.legend-unit) { padding: 6px 9px; } .legend .legend-unit { width: 100%; margin: 4px 0 0; }
  .difference-heading { gap: 8px; align-items: flex-start; flex-wrap: wrap; padding-top: 20px; margin-top: 18px; } .difference-heading h3 { font-size: 1rem; }
  .panel-bottom { gap: 7px; } .bypass-total strong { font-size: 2.1rem; }
  .bypass-layout { grid-template-columns: 1fr; padding: 28px 0; gap: 30px; }
  .group-row > div:first-child { font-size: .9375rem; } .group-row strong { font-size: 1.0625rem; }
  .subheading { align-items: flex-start; flex-direction: column; gap: 10px; margin-bottom: 18px; } .subheading-actions { justify-content: flex-start; gap: 16px; }
  .demo-note { padding: 14px 16px; } .collection-box { padding: 19px; border-radius: 18px; }
  .bypass-group-card { padding: 18px 12px 12px; border-radius: 18px; } .bypass-group-chart { height: 260px; }
  .tooltip { min-width: 190px; max-width: 270px; padding: 11px 13px; font-size: .8125rem; }
  footer { flex-direction: column; gap: 12px; padding: 8px 3px; } footer > div:last-child { justify-content: flex-start; text-align: left; }
}
@media (max-width: 430px) {
  main { padding-left: 12px; padding-right: 12px; } .header { padding-left: 16px; padding-right: 16px; }
  h1 { font-size: 1.7rem; } .panel { padding-left: 16px; padding-right: 16px; }
  .online-panel .panel-heading { flex-wrap: wrap; } .average { text-align: left; padding: 4px 0 0; } .average strong { font-size: 2.95rem; } .average small { display: none; }
  .online-summary { margin-top: 14px; } .status-pill { font-size: .8125rem; } .report-button { padding: 10px 13px; }
     
  .bypass-total { flex-direction: column; align-items: flex-end; gap: 0; } .bypass-total strong { font-size: 1.8rem; } .bypass-total > span { font-size: .8125rem; }
  .group-row > div:first-child { gap: 8px; font-size: .875rem; } .group-row strong { font-size: .9375rem; }
}
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { animation: none !important; transition: none !important; }
}
@media (prefers-reduced-transparency: reduce) {
  .header, .section-nav, .tooltip { -webkit-backdrop-filter: none; backdrop-filter: none; background: #28282e; }
}

/* Shared page navigation, distinct from filters within each page. */
.app-navigation { max-width:1432px; margin:24px auto 0; padding:0 24px; }
.app-segments { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); width:710px; max-width:100%; padding:5px; gap:4px; border:1px solid #ffffff0c; border-radius:19px; background:#1c1c20; box-shadow:inset 0 1px #ffffff05; }
.app-segments a { display:flex; align-items:center; justify-content:center; gap:9px; min-height:46px; padding:10px 14px; border-radius:14px; font-size:.9375rem; font-weight:600; color:#adb0bb; white-space:nowrap; transition:background 200ms,color 200ms,transform 180ms; }
.app-segments a[aria-current="page"] { background:#e9e9ee; color:#17171c; box-shadow:0 2px 8px #00000030,inset 0 1px #ffffff; }
.app-segments svg { width:20px; height:20px; flex-shrink:0; }
.app-segments a:active { transform:scale(.97); }
@media(hover:hover) { .app-segments a:not([aria-current]):hover { color:#fff; background:#ffffff08; } }
@media(max-width:780px) { .app-navigation { margin-top:20px; padding:0 18px; } .app-segments { width:100%; } }
@media(prefers-reduced-motion:reduce) { .app-segments a { transition:none; } }

.traffic-status{display:flex;align-items:center;justify-content:flex-end;gap:10px;position:relative}
.collector-sticker summary{list-style:none;display:grid;place-items:center;width:44px;height:44px;cursor:pointer;border-radius:50%}
.collector-sticker summary::-webkit-details-marker{display:none}
.collector-sticker summary span{display:grid;place-items:center;width:30px;height:30px;border-radius:50%;background:#65dca91c;border:1px solid #65dca94a;color:#65dca9;font-size:19px;font-weight:700;box-shadow:inset 0 1px #ffffff0a}
.collector-sticker.warning summary span{background:#ffb16b1c;border-color:#ffb16b4a;color:#ffb16b}
.collector-sticker.loading summary span{color:#adb0bb;background:#ffffff08;border-color:#ffffff18}
.collector-sticker summary:focus-visible{outline:2px solid #79afff;outline-offset:2px}
.collector-sticker p{position:absolute;right:0;top:100%;z-index:15;width:260px;max-width:calc(100vw - 64px);margin:5px 0 0;padding:14px 16px;border:1px solid #ffffff18;border-radius:14px;background:#28282e;box-shadow:0 10px 28px #0005;font-size:14px;line-height:1.5}
.collector-warning{color:#ffb16b;font-size:13px;max-width:170px;text-align:right}

.logout-form{margin:0;flex-shrink:0}
.logout-button{display:grid;place-items:center;width:44px;height:44px;padding:0;border:1px solid #ffffff0a;border-radius:14px;background:#ffffff05;color:#adb0bb;transition:background .2s,color .2s}
.logout-button svg{width:21px;height:21px}
.logout-button:hover{background:#ffffff0d;color:#f5f5f7}
@media(prefers-reduced-motion:reduce){.logout-button{transition:none}}

/* Center the two section titles independently of the status control. */
#traffic > .panel-heading,#bypass > .panel-heading{display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);align-items:center;gap:12px}
#traffic > .panel-heading > div:first-child,#bypass > .panel-heading > div:first-child{grid-column:2;text-align:center}
#traffic > .panel-heading > .traffic-status{grid-column:3;justify-self:end;min-width:0}
#traffic > .panel-heading .collector-warning{position:absolute;right:0;top:48px;width:170px;z-index:2}
@media(max-width:650px){#traffic > .panel-heading,#bypass > .panel-heading{grid-template-columns:minmax(44px,1fr) auto minmax(44px,1fr);gap:4px}#traffic > .panel-heading #traffic-freshness{position:absolute;right:0;top:48px;font-size:12px}}

.bypass-section-toggle{list-style:none;position:relative;display:grid;grid-template-columns:40px minmax(0,1fr) 40px;align-items:center;min-height:48px;cursor:pointer;border-radius:12px}
.bypass-section-toggle::-webkit-details-marker{display:none}
.bypass-section-toggle h2{grid-column:2;text-align:center;margin:0}
.bypass-section-toggle>svg{grid-column:3;justify-self:end;width:22px;height:22px;color:var(--muted);transition:transform .2s}
#bypass-details[open]>.bypass-section-toggle>svg{transform:rotate(180deg)}
.bypass-section-toggle:focus-visible{outline:2px solid var(--blue);outline-offset:5px}
.bypass-section-content{padding-top:24px}
@media(prefers-reduced-motion:reduce){.bypass-section-toggle>svg{transition:none}}

/* Keep online headings centered independently of the disclosure action. */
.online-toggle h2{display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);align-items:center;gap:8px;min-height:48px}
.online-toggle h2>span:first-child{grid-column:2;text-align:center}
.online-toggle h2>.bypass-groups-action{grid-column:3;justify-self:end;white-space:nowrap}
@media(max-width:780px){.online-toggle h2{grid-template-columns:28px minmax(0,1fr) 28px;gap:4px}.online-toggle .bypass-groups-action .when-closed,.online-toggle .bypass-groups-action .when-open{display:none}}

@media(max-width:650px){.app-segments a{flex-direction:column;gap:5px;padding:9px 4px;font-size:12px;white-space:normal;text-align:center;line-height:1.25;min-height:62px}.app-segments svg{width:19px;height:19px}.app-segments{border-radius:17px}.app-segments a{border-radius:12px}}

/* One shared panel for identity, page navigation and logout. */
.header.unified-header{display:grid;grid-template-columns:minmax(185px,1fr) minmax(0,710px) minmax(44px,1fr);gap:20px;min-height:76px;padding:12px 18px;border-radius:23px}
.unified-header .brand{gap:10px;font-size:16px;letter-spacing:-.3px;min-width:0}
.unified-header .brand-mark{width:36px;height:36px;border-radius:12px;font-size:22px;flex-shrink:0}
.unified-header .app-segments{width:100%;padding:4px;border-radius:15px;background:#12121566;border-color:#ffffff08;box-shadow:inset 0 1px 3px #0002}
.unified-header .app-segments a{min-height:44px;border-radius:11px;padding:9px 10px;font-size:14px;gap:8px}
.unified-header .app-segments a[aria-current="page"]{background:#36363f;color:#f5f5f7;box-shadow:0 2px 6px #0003,inset 0 1px #ffffff10}
.unified-header .app-segments svg{width:18px;height:18px}
.unified-header .logout-form{justify-self:end}
.unified-header .logout-button{border-radius:12px;background:transparent;border-color:#ffffff0c}
.statistics-navigation{display:flex;justify-content:center;margin:16px auto 0}
@media(max-width:1000px){
.header.unified-header{grid-template-columns:minmax(0,1fr) auto;gap:12px;padding:12px 16px}
.unified-header .brand{grid-column:1;grid-row:1}
.unified-header .logout-form{grid-column:2;grid-row:1}
.unified-header .app-segments{grid-column:1/-1;grid-row:2}
}
@media(max-width:650px){
.header.unified-header{margin:10px 12px 0;padding:10px;border:1px solid #ffffff10;border-radius:20px;gap:8px;min-height:0}
.unified-header .brand{font-size:15px;gap:9px;padding-left:3px}
.unified-header .brand-mark{width:32px;height:32px;border-radius:10px;font-size:20px}
.unified-header .app-segments a{flex-direction:column;gap:4px;min-height:54px;padding:7px 3px;font-size:12px;line-height:1.25}
.unified-header .app-segments{border-radius:14px}
.statistics-navigation{margin:0}
}

@media(max-width:1000px){html:has(#main){scroll-padding-top:175px}}

.public-view .logout-form{visibility:hidden;pointer-events:none}
.unified-header .brand-mark.brand-logo{display:block;width:44px;height:44px;object-fit:contain;border-radius:0;background:none;box-shadow:none}
@media(max-width:650px){.unified-header .brand-mark.brand-logo{width:36px;height:36px}}

@media(max-width:780px){main#main{padding-bottom:calc(48px + env(safe-area-inset-bottom))}}

@media(max-width:400px){.unified-header .app-segments a{font-size:10px;padding-left:2px;padding-right:2px}}

/* Shared layout and materials across the four pages. */
:root{--content-width:1280px;--page-gutter:24px;--surface:#1c1c1f;--raised:#2c2c30;--grid:#ffffff0d;--axis:#55555e;--card-radius:22px;--soft-border:#ffffff12}
.header.unified-header{width:calc(100% - 48px);max-width:1232px;margin:16px auto 0;border-radius:22px;border-color:var(--soft-border);box-shadow:0 6px 24px #0002;background:rgba(28,28,31,.94);grid-template-columns:minmax(170px,1fr) minmax(0,710px) 44px;gap:16px}
main#main{width:100%;max-width:var(--content-width);padding:32px var(--page-gutter) 56px}
.panel{border-radius:var(--card-radius);border-color:var(--soft-border);padding:24px;box-shadow:none;margin-bottom:20px}
.unified-header .app-segments{background:#11111380;border-radius:14px;box-shadow:none}
.unified-header .app-segments a{min-height:44px}
.unified-header .app-segments a[aria-current="page"]{background:#38383d;box-shadow:0 1px 4px #0003,inset 0 1px #ffffff0c}
.button,.logout-button{border-radius:12px}
.legend{gap:12px 22px;flex-wrap:wrap}
@media(max-width:1000px){.header.unified-header{grid-template-columns:minmax(0,1fr) 44px;gap:10px}}
@media(max-width:650px){
:root{--page-gutter:12px;--card-radius:20px}
.header.unified-header{width:calc(100% - 24px);margin:12px auto 0;padding:10px;border-radius:20px}
.unified-header .app-segments a{font-size:12px;white-space:normal;min-height:60px;line-height:1.25;padding:7px 3px}
.unified-header .app-segments a span{max-width:80px;text-wrap:balance}
main#main{padding:24px var(--page-gutter) 48px}
.panel{padding:20px 16px;margin-bottom:16px}
}

.statistics-date{display:flex;align-items:center;justify-content:center;gap:8px;flex-wrap:wrap;margin:0 0 20px;color:var(--muted);font-size:14px;font-variant-numeric:tabular-nums}.statistics-date time{color:var(--ink);font-weight:600}

/* Immediate actions with a restrained visual response. */
@media(prefers-reduced-motion:no-preference){
 body button,body .button,body .app-segments a,body .scoring-main .pill{transition:background-color 180ms ease,color 180ms ease,border-color 180ms ease,box-shadow 180ms ease,transform 200ms var(--ease),filter 180ms ease}
 body button:not(:disabled):active,body .button:active,body .app-segments a:active,body .scoring-main .pill:active{transform:scale(.98);filter:brightness(1.08)}
 body summary{transition:background-color 180ms ease}
 body summary:active{background-color:#ffffff05}
 details[open]>.route-body,details[open]>.provider-routes,details[open]>.bypass-section-content{animation:disclosure-in 200ms ease both}
 @supports(interpolate-size:allow-keywords){
  details:is(.provider,.route-row,#bypass-details,#bypass-groups,#traffic-difference-details,#online-details,#online-daily-details){interpolate-size:allow-keywords}
  details:is(.provider,.route-row,#bypass-details,#bypass-groups,#traffic-difference-details,#online-details,#online-daily-details)::details-content{block-size:0;opacity:0;overflow:clip;transition:block-size 220ms var(--ease),opacity 180ms ease,content-visibility 220ms;transition-behavior:allow-discrete}
  details:is(.provider,.route-row,#bypass-details,#bypass-groups,#traffic-difference-details,#online-details,#online-daily-details)[open]::details-content{block-size:auto;opacity:1}
 }
}
@keyframes disclosure-in{from{opacity:0;transform:translateY(-3px)}to{opacity:1;transform:translateY(0)}}
@media(prefers-reduced-motion:reduce){
 body button:not(:disabled):active,body .button:active,body .app-segments a:active,body .scoring-main .pill:active,body .provider-summary:active .routes-toggle{transform:none!important;filter:none!important}
}

/* Five primary sections share the same navigation. */
@media(min-width:1001px){.header.unified-header{grid-template-columns:minmax(150px,1fr) minmax(0,820px) 44px}.unified-header .app-segments a{font-size:13px;gap:6px;padding-left:6px;padding-right:6px}}
@media(max-width:650px){.unified-header .app-segments a{font-size:11px}.unified-header .app-segments a span{max-width:70px}}

/* Shared depth materials; colour-coded states retain their borders and text. */
:root{--depth-face:linear-gradient(155deg,#29292d 0%,#202023 42%,#1b1b1e 100%);--depth-shadow:inset 0 1px 0 #ffffff12,inset 0 -1px 0 #0005,0 3px 0 #101012,0 7px 14px #0003;--depth-inset:inset 0 2px 5px #0003,inset 0 -1px 0 #ffffff06;--depth-button:linear-gradient(180deg,#3b3b42,#2b2b31);--depth-button-shadow:inset 0 1px 0 #ffffff16,0 3px 0 #161619,0 5px 10px #0004}
.header.unified-header,.panel,.login-card{background:var(--depth-face);box-shadow:var(--depth-shadow)}
.unified-header .app-segments{box-shadow:var(--depth-inset);background:#141416}
.unified-header .app-segments a[aria-current="page"]{background:var(--depth-button);box-shadow:inset 0 1px #ffffff18,0 2px 4px #0005}
body .button,.logout-button{background:var(--depth-button);box-shadow:var(--depth-button-shadow)}
body .button:active,.logout-button:active{box-shadow:inset 0 2px 4px #0005,0 1px 0 #161619}
.login-card input{box-shadow:var(--depth-inset)}
@media(prefers-reduced-motion:no-preference){body .button:active,.logout-button:active{transform:translateY(2px) scale(.98)}}
@media(max-width:650px){:root{--depth-shadow:inset 0 1px 0 #ffffff12,0 2px 0 #101012,0 4px 9px #0003;--depth-button-shadow:inset 0 1px 0 #ffffff16,0 2px 0 #161619,0 3px 6px #0003}}

/* Current date is an informational badge, not an interactive control. */
.statistics-date{width:fit-content;max-width:100%;margin:0 auto 24px;padding:10px 14px;gap:9px;flex-wrap:nowrap;border:1px solid #ffffff12;border-radius:14px;background:var(--depth-face);box-shadow:inset 0 1px #ffffff12,0 2px 0 #101012,0 4px 10px #0003;cursor:default;line-height:1.4}
.statistics-date svg{flex:none;color:#aeb3bf}.statistics-date time{font-size:14px;font-weight:500;color:#e1e2e8}
@media(max-width:650px){.statistics-date{padding:9px 12px;margin-bottom:20px;box-shadow:inset 0 1px #ffffff12,0 2px 5px #0003}}

/* Сравнение VPN по баллам */
.vpn-scores-chart { height: 360px; }
.legend-swatch { display: inline-block; width: 12px; height: 12px; border-radius: 4px; }
.legend-unit { color: var(--muted); }
.vpn-table-wrap { overflow-x: auto; margin-top: 16px; }
.vpn-table { width: 100%; border-collapse: collapse; font-size: .875rem; }
.vpn-table th, .vpn-table td { padding: 9px 10px; text-align: left; border-bottom: 1px solid #ffffff0c; white-space: nowrap; }
.vpn-table th { color: var(--muted); font-weight: 500; }
.vpn-table th:not(:first-child), .vpn-table td:not(:first-child) { text-align: right; font-variant-numeric: tabular-nums; }
.vpn-table td a { text-decoration: none; font-weight: 600; }
.vpn-table td a:hover { text-decoration: underline; }
.vpn-table .provider-row td { padding-top: 16px; color: var(--muted); font-weight: 500; border-bottom: none; }
.vpn-table .provider-row td { display: table-cell; } .vpn-table .provider-mark { width: 20px; height: 20px; border-radius: 6px; vertical-align: middle; margin-right: 8px; object-fit: contain; }
.vpn-scores-chart .provider-logo { border-radius: 8px; }
.score-high { color: var(--green); } .score-mid { color: var(--blue); } .score-low { color: var(--orange); }
.score-bad { color: var(--red); } .score-off { color: var(--red); font-weight: 400; font-size: .8125rem; } .score-none { color: var(--muted); }
.vpn-scores-chart .bar-value { fill: var(--ink); font-size: 12px; font-weight: 600; }
.vpn-scores-chart .bar-count, .vpn-scores-chart .axis-label { fill: var(--muted); font-size: 11px; }
.vpn-scores-chart .group-label { fill: var(--ink); font-size: 13px; font-weight: 500; }
@media (max-width: 650px) { .vpn-scores-chart { height: 300px; } .vpn-scores-chart .group-label { font-size: 11px; } }
.mode-tabs { display: inline-flex; gap: 4px; padding: 5px; border: 1px solid #ffffff0c; border-radius: 16px; background: #1c1c22; }
.mode-tabs button { display: inline-flex; align-items: center; justify-content: center; gap: 8px; min-height: 42px; border: 0; border-radius: 11px; padding: 8px 16px; background: transparent; color: #adb0bb; font: inherit; font-size: .9375rem; font-weight: 600; white-space: nowrap; cursor: pointer; transition: background .2s, color .2s; }
.mode-tabs button[aria-pressed="true"] { background: #484851; color: #fff; box-shadow: 0 2px 6px #0003, inset 0 1px #ffffff12; }
.operator-tabs { margin-top: 24px; }
.vpn-week-note { margin-top: 14px; line-height: 1.5; }
#vpn-week-legend img { width: 20px; height: 20px; border-radius: 6px; object-fit: contain; }
@media (max-width: 650px) { .mode-tabs button { padding: 8px 12px; font-size: .875rem; } }


/* Логотипы операторов (18.09.2026) */
.operator-tabs .operator-logo { width: 22px; height: 22px; flex-shrink: 0; }

/* Трафик за сутки рядом с названием линии в легенде графика «Трафик VPN» (20.09.2026). */
.legend .legend-total { margin-left: 6px; font-weight: 600; font-variant-numeric: tabular-nums; }
.legend .legend-total:empty { display: none; }

/* Дата и время прогона под названием оператора на графике баллов (20.09.2026). */
.chart-shell text.group-run { font-size: 11px; fill: var(--muted, #6b7280); }
