.TrafficDashboard_page__Cmxed{max-width:1200px;margin:0 auto;padding:40px 24px 56px}.TrafficDashboard_heading__x_KD3{max-width:780px;margin-bottom:32px}.TrafficDashboard_heading__x_KD3>span{display:flex;gap:8px;align-items:center;color:var(--color-primary);font-size:var(--text-meta);font-weight:600}.TrafficDashboard_heading__x_KD3 h1{font-family:var(--font-display);font-size:clamp(2rem,4vw,3rem);font-weight:600;line-height:1.22;letter-spacing:-.01em;margin:12px 0 16px}.TrafficDashboard_heading__x_KD3 p{color:var(--color-muted);line-height:1.7}.TrafficDashboard_login__aZBmV,.TrafficDashboard_notice__BYtJJ{max-width:620px;padding:32px;border:1px solid var(--color-line);border-radius:10px;background:var(--color-card)}.TrafficDashboard_login__aZBmV>svg,.TrafficDashboard_notice__BYtJJ>svg{color:var(--color-primary);margin-bottom:16px}.TrafficDashboard_login__aZBmV form{display:grid;gap:12px}.TrafficDashboard_login__aZBmV label{font-weight:600}.TrafficDashboard_login__aZBmV p,.TrafficDashboard_notice__BYtJJ p{font-size:var(--text-meta);line-height:1.7;color:var(--color-muted)}.TrafficDashboard_notice__BYtJJ h2{font-size:1.4rem;margin-bottom:12px}.TrafficDashboard_login__aZBmV button{justify-self:start}.TrafficDashboard_error__TU6Hp{color:var(--color-danger)!important}.TrafficDashboard_dashboard___ukMw{display:grid;gap:24px}.TrafficDashboard_session__AvS_V{display:flex;align-items:center;flex-wrap:wrap;gap:12px 24px;font-size:var(--text-meta);color:var(--color-muted)}.TrafficDashboard_session__AvS_V>button{margin-left:auto}.TrafficDashboard_status__yvLTP{display:flex;align-items:center;gap:8px;color:var(--color-primary);font-weight:600}.TrafficDashboard_dot__8SDC7,.TrafficDashboard_pausedDot__RTpnO{width:8px;height:8px;border-radius:50%;background:var(--color-success)}.TrafficDashboard_pausedDot__RTpnO{background:var(--color-warning)}.TrafficDashboard_metrics__cSAVS{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));border-block:1px solid var(--color-line);margin:0}.TrafficDashboard_metrics__cSAVS>div{padding:24px 16px}.TrafficDashboard_metrics__cSAVS>div+div{border-left:1px solid var(--color-line)}.TrafficDashboard_metrics__cSAVS dt{display:flex;gap:8px;font-size:var(--text-meta);color:var(--color-muted);line-height:1.6}.TrafficDashboard_metrics__cSAVS svg{flex-shrink:0;margin-top:3px}.TrafficDashboard_metrics__cSAVS dd{font-size:clamp(1.7rem,3vw,2.25rem);font-weight:600;color:var(--color-primary);font-feature-settings:"tnum";font-variant-numeric:tabular-nums;line-height:1.3;margin:12px 0 0}.TrafficDashboard_meaning__mQcp_{font-size:var(--text-meta);color:var(--color-muted);line-height:1.75;max-width:90ch}.TrafficDashboard_panel__Z_YdB{border:1px solid var(--color-line);border-radius:10px;background:var(--color-card);padding:24px;min-width:0}.TrafficDashboard_panelHeader__mup4L{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap;margin-bottom:24px}.TrafficDashboard_panel__Z_YdB h2{font-family:var(--font-display);font-weight:600;font-size:1.65rem;line-height:1.35}.TrafficDashboard_legend__VGYCE{display:flex;gap:16px;flex-wrap:wrap;font-size:var(--text-meta)}.TrafficDashboard_legend__VGYCE span{display:flex;align-items:center;gap:8px}.TrafficDashboard_ipKey__NjbnE,.TrafficDashboard_viewsKey__G1dog{width:12px;height:12px;background:var(--color-primary);border-radius:2px}.TrafficDashboard_viewsKey__G1dog{background:var(--color-zalo)}.TrafficDashboard_chart__Phl7l{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:12px;padding:0 8px}.TrafficDashboard_chartDay__rn0pN{min-width:0;text-align:center;font-size:13px;color:var(--color-muted);font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.TrafficDashboard_bars__5hojk{display:flex;justify-content:center;align-items:flex-end;gap:4px;height:168px;border-bottom:1px solid var(--color-line);margin-bottom:8px}.TrafficDashboard_ipBar__mSyzW,.TrafficDashboard_viewBar__asmtX{display:block;width:22px;max-width:35%;background:var(--color-primary);border-radius:3px 3px 0 0}.TrafficDashboard_viewBar__asmtX{background:var(--color-zalo)}.TrafficDashboard_controls__sWc_N{display:flex;align-items:end;gap:12px;flex-wrap:wrap}.TrafficDashboard_controls__sWc_N label{display:grid;gap:8px;font-size:var(--text-meta)}.TrafficDashboard_controls__sWc_N select{min-height:44px}.TrafficDashboard_controls__sWc_N button,.TrafficDashboard_session__AvS_V button{min-height:44px;font-size:var(--text-meta)}.TrafficDashboard_total__CU_3Z{font-size:var(--text-meta);margin-bottom:20px;color:var(--color-muted)}.TrafficDashboard_table__5KIRH{width:100%;border-collapse:collapse;font-size:var(--text-table);font-feature-settings:"tnum";font-variant-numeric:tabular-nums;table-layout:fixed}.TrafficDashboard_table__5KIRH caption{text-align:left;font-size:13px;color:var(--color-muted);caption-side:bottom;padding-top:12px;line-height:1.7}.TrafficDashboard_table__5KIRH td,.TrafficDashboard_table__5KIRH th{padding:12px 8px;border-bottom:1px solid var(--color-line);text-align:right;overflow-wrap:anywhere}.TrafficDashboard_table__5KIRH thead th{font-weight:600;color:var(--color-primary);border-block:1px solid var(--color-line-strong);background:transparent}.TrafficDashboard_table__5KIRH tr>th:first-child{text-align:left;width:40%}.TrafficDashboard_table__5KIRH tbody th{font-weight:400}.TrafficDashboard_table__5KIRH tbody tr:last-child>*{border-bottom-color:var(--color-line-strong)}.TrafficDashboard_updated__x1qR2{font-size:13px;color:var(--color-muted);margin-top:20px}.TrafficDashboard_warning___eKK9{padding:12px 16px;border:1px solid var(--color-line);background:var(--color-accent-soft);color:var(--color-warning);font-size:var(--text-meta);line-height:1.7;margin-top:20px}.TrafficDashboard_privacy__fH5kN{max-width:72ch}.TrafficDashboard_privacy__fH5kN p{line-height:1.75;margin-bottom:20px}.TrafficDashboard_privacy__fH5kN a{display:inline-flex;min-height:44px;align-items:center}.TrafficDashboard_page__Cmxed :is(a,button,input,select):focus-visible{outline:3px solid var(--color-primary);outline-offset:4px}@media(max-width:800px){.TrafficDashboard_metrics__cSAVS{grid-template-columns:repeat(2,minmax(0,1fr))}.TrafficDashboard_metrics__cSAVS>div:nth-child(3){border-left:0}.TrafficDashboard_metrics__cSAVS>div:nth-child(n+3){border-top:1px solid var(--color-line)}.TrafficDashboard_panelHeader__mup4L{align-items:flex-start}.TrafficDashboard_controls__sWc_N{width:100%}}@media(max-width:480px){.TrafficDashboard_page__Cmxed{padding:28px 16px 40px}.TrafficDashboard_heading__x_KD3{margin-bottom:24px}.TrafficDashboard_login__aZBmV,.TrafficDashboard_notice__BYtJJ,.TrafficDashboard_panel__Z_YdB{padding:20px 16px}.TrafficDashboard_metrics__cSAVS>div{padding:20px 12px}.TrafficDashboard_metrics__cSAVS dt{font-size:13px}.TrafficDashboard_session__AvS_V{gap:12px}.TrafficDashboard_session__AvS_V>button{margin-left:0}.TrafficDashboard_chart__Phl7l{gap:4px;padding:0}.TrafficDashboard_bars__5hojk{gap:3px;height:140px}.TrafficDashboard_chartDay__rn0pN{font-size:13px}.TrafficDashboard_controls__sWc_N{gap:12px}.TrafficDashboard_controls__sWc_N label{width:100%}.TrafficDashboard_controls__sWc_N button{max-width:100%;white-space:normal;text-align:left}.TrafficDashboard_table__5KIRH td,.TrafficDashboard_table__5KIRH th{padding:12px 4px}.TrafficDashboard_table__5KIRH tr>th:first-child{width:42%}}