.traffic-consent{position:fixed;z-index:70;left:1rem;bottom:1rem;width:min(410px,calc(100vw - 2rem));padding:1rem;background:#fff;border:1px solid #d6e2db;border-radius:14px;box-shadow:0 5px 25px #17372d22;font-size:.9rem}.traffic-consent[hidden]{display:none}.traffic-consent p{margin:0 0 .5rem}.traffic-consent-actions{display:flex;gap:.6rem;margin-top:.7rem}.traffic-consent-actions button{flex:1;min-height:44px}.traffic-preferences{padding:1rem 0}.traffic-preferences button{border:0;background:transparent;min-height:44px;text-decoration:underline;color:#275565;cursor:pointer}.traffic-filters{display:flex;align-items:end;flex-wrap:wrap;gap:1rem;margin:1rem 0}.traffic-filters input[type=checkbox]{width:auto;display:inline-block}.traffic-scroll{overflow:auto;margin:1rem 0}.traffic-scroll table{border-collapse:separate;border-spacing:3px;min-width:900px;width:100%;font-size:.8rem}.traffic-scroll td,.traffic-scroll th{text-align:center;padding:.5rem .25rem;min-width:30px}.traffic-map-layout{display:grid;grid-template-columns:minmax(200px,480px) 1fr;gap:2rem}.traffic-map-layout canvas{display:block;width:100%;height:auto;border:1px solid #dbe5df;border-radius:8px}.traffic-map-layout p{font-size:.9rem}#traffic-cells{max-height:400px;overflow:auto}@media(max-width:600px){.traffic-consent{bottom:5rem;left:.5rem;width:calc(100vw - 1rem)}.traffic-map-layout{grid-template-columns:1fr}.traffic-filters{align-items:stretch}}

.traffic-dashboard{background:#f3f6f3;color:#193c32}.traffic-dashboard main{max-width:1280px}.traffic-heading{display:flex;justify-content:space-between;gap:1rem;align-items:center;margin:1.5rem 0}.traffic-heading h1{font-size:clamp(1.8rem,4vw,2.8rem);margin:.3rem 0}.traffic-heading p{margin:.3rem 0}.traffic-private{font-size:.85rem;padding:.5rem .8rem;border:1px solid #c9d9ce;border-radius:24px;white-space:nowrap}.traffic-toolbar{padding:1rem 0;border-top:1px solid #cbdad0}.traffic-toolbar label{max-width:180px}.traffic-toolbar #traffic-updated{font-size:.85rem;color:#52685f;margin-left:auto;align-self:center}.traffic-metrics{display:grid;grid-template-columns:repeat(4,1fr);gap:1rem}.traffic-metrics article{padding:1.3rem;background:#153f34;color:#f5fbf6;border-radius:12px}.traffic-metrics span,.traffic-metrics small{display:block}.traffic-metrics strong{display:block;font-size:2.5rem;line-height:1.4;font-variant-numeric:tabular-nums}.traffic-metrics small{color:#c6ddd0;font-size:.8rem}.traffic-panel{padding:1.5rem;background:white;border:1px solid #dbe5dd;border-radius:14px;margin:1.2rem 0;min-width:0}.traffic-panel h2{font-size:1.3rem;margin:0 0 .6rem}.traffic-panel h3{font-size:1.05rem;margin-top:1.5rem}.traffic-note,.traffic-source{font-size:.85rem;line-height:1.6;color:#52685f}.traffic-grid{display:grid;grid-template-columns:1fr 1fr;gap:1.2rem}.traffic-grid .traffic-panel{margin:0}.traffic-daily{height:150px;display:flex;align-items:stretch;gap:3px;padding:.5rem 0 0;border-bottom:1px solid #cbdad0;margin:1rem 0}.traffic-day{flex:1;display:flex;align-items:end;min-width:0;position:relative}.traffic-day>span{display:block;background:#38866b;width:100%;border-radius:3px 3px 0 0}.traffic-day:hover>span,.traffic-day:focus>span{background:#193f33}.traffic-day:focus-visible{outline:2px solid #bc702f;outline-offset:2px}.traffic-bar-row{display:grid;grid-template-columns:1fr auto;gap:.3rem .8rem;margin:1rem 0;font-size:.9rem}.traffic-bar-row strong{font-weight:500;font-variant-numeric:tabular-nums}.traffic-bar-track{grid-column:1/-1;height:7px;border-radius:8px;background:#eef3ee;overflow:hidden}.traffic-bar-track span{display:block;height:100%;background:#438b70;border-radius:8px}#traffic-daily-values{max-height:250px;overflow:auto}.traffic-dashboard summary{cursor:pointer;font-weight:600}.traffic-dashboard select{min-height:44px}.traffic-dashboard details>summary{padding:.5rem 0}.traffic-dashboard .traffic-map-layout{grid-template-columns:minmax(200px,360px) 1fr}.traffic-dashboard .traffic-scroll table{font-size:.8rem}.traffic-dashboard #traffic-error:empty{display:none}@media(max-width:700px){.traffic-heading{align-items:start;flex-direction:column}.traffic-metrics{grid-template-columns:1fr 1fr;gap:.6rem}.traffic-metrics article{padding:1rem}.traffic-metrics strong{font-size:2rem}.traffic-grid{grid-template-columns:1fr}.traffic-panel{padding:1rem}.traffic-dashboard .traffic-map-layout{grid-template-columns:1fr}.traffic-toolbar #traffic-updated{margin-left:0}.traffic-daily{height:120px}.traffic-bar-row{font-size:.85rem}.traffic-private{font-size:.8rem}}
