/* admin-traffic.css  (Oct 2026, v81)  The dashboard's Traffic tab
   (admin-traffic.js). Built on admin.html's --a-* tokens (both themes) and
   admin-comms' cm-* pieces, like the Play tab. */
.tr-ctl{margin:0;justify-content:flex-end;}
.tr-live{display:inline-flex;align-items:center;gap:7px;padding:6px 11px;border-radius:999px;background:var(--a-ok-bg);color:var(--a-ok-fg);font-size:.76rem;font-weight:800;white-space:nowrap;}
.tr-live i{width:8px;height:8px;border-radius:50%;background:currentColor;box-shadow:0 0 0 0 currentColor;animation:tr-pulse 2s infinite;}
@keyframes tr-pulse{0%{box-shadow:0 0 0 0 rgba(16,185,129,.45);}70%{box-shadow:0 0 0 7px rgba(16,185,129,0);}100%{box-shadow:0 0 0 0 rgba(16,185,129,0);}}
@media (prefers-reduced-motion:reduce){.tr-live i{animation:none;}}
.tr-kpis{display:grid;grid-template-columns:repeat(auto-fill,minmax(170px,1fr));gap:10px;margin:0 0 14px;}
.tr-kpi{background:var(--a-surface);border:1px solid var(--a-border);border-radius:14px;padding:12px 14px;box-shadow:var(--a-shadow-sm);min-width:0;}
.tr-kpi .k{display:block;font-size:.66rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:var(--a-muted);}
.tr-kpi b{display:block;font-size:1.35rem;font-weight:800;letter-spacing:-.02em;color:var(--a-text-strong);margin:4px 0 2px;line-height:1.15;font-variant-numeric:tabular-nums;}
.tr-kpi .s{display:block;font-size:.74rem;line-height:1.4;color:var(--a-muted);}
.tr-kpi.good{box-shadow:inset 3px 0 0 var(--a-ok-fg),var(--a-shadow-sm);}
.tr-two{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);gap:14px;}
.tr-three{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;}
.tr-two>.cm-card,.tr-three>.cm-card{margin-bottom:14px;}
@media(max-width:1200px){.tr-three{grid-template-columns:repeat(2,minmax(0,1fr));}}
@media(max-width:1000px){.tr-two{grid-template-columns:1fr;}}
@media(max-width:760px){.tr-three{grid-template-columns:1fr;}}
.tr-card .cm-h3 .ap-ic{flex:none;}
.tr-csub{margin:-6px 0 12px;}
.tr-empty{margin:4px 0;font-size:.8rem;color:var(--a-muted);}
.tr-foot{margin:12px 0 0;font-size:.72rem;line-height:1.5;color:var(--a-muted);}
.tr-k{margin:14px 0 6px;font-size:.66rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:var(--a-muted);}
.tr-first .cm-sub{max-width:72ch;}
/* charts */
.tr-chart{overflow-x:auto;}
.tr-chart svg{display:block;width:100%;min-width:320px;height:170px;}
.tr-chart.sm svg{min-width:300px;height:110px;}
.tr-chart text{font-size:9px;fill:var(--a-muted);font-family:inherit;}
.tr-chart .b-vis,.tr-legend .b-vis{fill:#6241C2;background:#6241C2;}
.tr-chart .b-new,.tr-legend .b-new{fill:#0C8CCE;background:#0C8CCE;}
.tr-chart .b-ord,.tr-legend .b-ord{fill:#0a7a2f;background:#0a7a2f;}
html.vp-dark .tr-chart .b-vis,html.vp-dark .tr-legend .b-vis{fill:#9C88E8;background:#9C88E8;}
html.vp-dark .tr-chart .b-new,html.vp-dark .tr-legend .b-new{fill:#38BDF8;background:#38BDF8;}
html.vp-dark .tr-chart .b-ord,html.vp-dark .tr-legend .b-ord{fill:#4ade80;background:#4ade80;}
.tr-legend{display:flex;align-items:center;flex-wrap:wrap;gap:6px 14px;margin:8px 0 0;font-size:.74rem;color:var(--a-muted);}
.tr-legend i{display:inline-block;width:10px;height:10px;border-radius:3px;margin-right:-8px;}
.tr-legend i.round{border-radius:50%;}
/* bars */
.tr-bar{display:block;height:6px;border-radius:999px;background:var(--a-surface-2);overflow:hidden;margin-top:6px;min-width:24px;}
.tr-bar i{display:block;height:100%;border-radius:999px;background:linear-gradient(90deg,#6241C2,#0C8CCE);}
html.vp-dark .tr-bar i{background:linear-gradient(90deg,#9C88E8,#38BDF8);}
/* funnel */
.tr-funnel{display:grid;gap:10px;}
.tr-fs{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,1fr) minmax(92px,auto);align-items:center;gap:10px;}
.tr-fs .tr-bar{margin-top:0;height:10px;}
.tr-fs-l b{display:block;font-size:.82rem;color:var(--a-text-strong);}
.tr-fs-l span{display:block;font-size:.68rem;color:var(--a-muted);}
.tr-fs-n{text-align:right;font-weight:800;font-size:.86rem;color:var(--a-text-strong);font-variant-numeric:tabular-nums;}
.tr-fs-n span{display:block;font-size:.66rem;font-weight:700;color:var(--a-muted);}
/* tables: the first column is the name, the rest share the width */
.tr-table{display:grid;border:1px solid var(--a-border);border-radius:12px;overflow:hidden;font-size:.8rem;}
.tr-tr{display:grid;grid-template-columns:minmax(0,2.2fr);grid-auto-flow:column;grid-auto-columns:minmax(0,1fr);align-items:center;gap:10px;padding:9px 12px;border-top:1px solid var(--a-border);color:var(--a-text);font-variant-numeric:tabular-nums;}
.tr-tr:first-child{border-top:0;}
.tr-th{background:var(--a-surface-2);font-size:.66rem;font-weight:800;letter-spacing:.06em;text-transform:uppercase;color:var(--a-muted);}
.tr-tr>span{min-width:0;overflow-wrap:anywhere;}
.tr-tr small{display:block;font-size:.68rem;color:var(--a-muted);font-weight:600;}
.tr-tr b{color:var(--a-text-strong);}
.tr-tr .cm-pill{margin-left:4px;}
.tr-path{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:.76rem;font-weight:700;}
.tr-ch .tr-name small{margin-top:1px;}
.tr-orders .tr-tr{grid-template-columns:minmax(0,1.3fr);}
/* location */
.tr-geo{display:grid;gap:6px;}
.tr-geo-row{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(0,1fr) 18px;align-items:center;gap:12px;width:100%;padding:9px 12px;border:1px solid var(--a-border);border-radius:11px;background:var(--a-surface);color:var(--a-text);cursor:pointer;text-align:left;font:inherit;}
.tr-geo-row:hover{border-color:var(--a-accent);}
.tr-geo-row:focus-visible{outline:2px solid var(--a-accent);outline-offset:2px;}
.tr-geo-row.on{background:var(--a-surface-2);}
.tr-geo-row .tr-bar{margin-top:0;}
.tr-geo-n b{display:block;font-size:.84rem;color:var(--a-text-strong);}
.tr-geo-n small{display:block;font-size:.7rem;color:var(--a-muted);}
.tr-geo-c{color:var(--a-muted);display:flex;justify-content:flex-end;}
.tr-geo-d{margin:-2px 0 6px;padding:2px 14px 12px;border:1px solid var(--a-border);border-top:0;border-radius:0 0 11px 11px;background:var(--a-surface-2);}
.tr-mini{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(0,1fr) auto;align-items:center;gap:10px;padding:5px 0;font-size:.8rem;color:var(--a-text);}
.tr-mini .tr-bar{margin-top:0;}
.tr-mini>span{min-width:0;overflow-wrap:anywhere;}
.tr-mini>span small{font-size:.66rem;color:var(--a-muted);font-weight:700;margin-left:3px;}
.tr-mini>b{font-weight:800;color:var(--a-text-strong);text-align:right;white-space:nowrap;font-variant-numeric:tabular-nums;}
.tr-mini>b small{font-size:.66rem;color:var(--a-muted);font-weight:700;}
/* live + this browser */
.tr-livebig{display:flex;align-items:baseline;gap:10px;flex-wrap:wrap;}
.tr-livebig b{font-size:2rem;font-weight:800;letter-spacing:-.02em;color:var(--a-text-strong);line-height:1;}
.tr-livebig span{font-size:.8rem;color:var(--a-muted);}
.tr-me{margin-top:0;}
/* phones: every table row becomes a labelled card */
@media(max-width:760px){
  .tr-ctl{justify-content:flex-start;}
  .tr-th{display:none;}
  .tr-tr,.tr-orders .tr-tr{grid-auto-flow:row;grid-template-columns:1fr 1fr;gap:6px 12px;}
  .tr-tr>span:first-child{grid-column:1/-1;}
  .tr-tr>span[data-l]:not(:first-child)::before{content:attr(data-l);display:block;font-size:.62rem;font-weight:800;letter-spacing:.06em;text-transform:uppercase;color:var(--a-muted);}
  .tr-fs{grid-template-columns:1fr auto;}
  .tr-fs .tr-bar{grid-column:1/-1;grid-row:2;}
  .tr-geo-row{grid-template-columns:minmax(0,1fr) 18px;}
  .tr-geo-row .tr-bar{grid-column:1/-1;grid-row:2;}
}
/* v81 polish: live pill under the title, day summary, show-all buttons */
.tr-livewrap{margin-top:10px;}
.tr-daysum{display:flex;flex-wrap:wrap;gap:6px 18px;margin-top:12px;padding-top:10px;border-top:1px solid var(--a-border);font-size:.76rem;color:var(--a-muted);}
.tr-daysum b{color:var(--a-text-strong);}
.tr-more{margin-top:10px;}
.tr-tr .cm-pill{font-style:normal;text-transform:capitalize;}
@media(max-width:520px){.tr-kpis{grid-template-columns:repeat(2,minmax(0,1fr));}.tr-kpi b{font-size:1.2rem;}}
@media(max-width:760px){.tr-chart svg{min-width:0!important;}}
/* bar charts as HTML columns (sharp labels at any width) */
.tr-bars{display:grid;grid-template-columns:repeat(var(--n),minmax(0,1fr));gap:clamp(1px,.6vw,6px);align-items:end;height:150px;padding-top:12px;border-bottom:1px solid var(--a-border);}
.tr-bars.sm{height:96px;}
.tr-col{display:flex;align-items:flex-end;justify-content:center;height:100%;min-width:0;}
.tr-colbar{position:relative;width:100%;max-width:44px;border-radius:4px 4px 0 0;background:#6241C2;}
.tr-colbar i{position:absolute;left:0;right:0;bottom:0;border-radius:inherit;background:#0C8CCE;}
.tr-colbar.solid{background:linear-gradient(180deg,#6241C2,#0C8CCE);}
.tr-dot{position:absolute;left:50%;top:-10px;width:7px;height:7px;margin-left:-3.5px;border-radius:50%;background:#0a7a2f;}
html.vp-dark .tr-colbar{background:#9C88E8;}
html.vp-dark .tr-colbar i{background:#38BDF8;}
html.vp-dark .tr-colbar.solid{background:linear-gradient(180deg,#9C88E8,#38BDF8);}
html.vp-dark .tr-dot{background:#4ade80;}
.tr-blabels{display:grid;grid-template-columns:repeat(var(--n),minmax(0,1fr));gap:clamp(1px,.6vw,6px);margin-top:5px;}
.tr-blabels span{font-size:.64rem;font-weight:700;color:var(--a-muted);text-align:center;white-space:nowrap;overflow:visible;min-width:0;}
@media(min-width:1001px){.cm-top>.tr-ctl{flex:none;flex-wrap:nowrap;}}
