*{box-sizing:border-box}html{color-scheme:dark;background:#1e1e1e}body{margin:0;font-family:Arial,Helvetica,sans-serif;color:#f4f4f4}button,select{font:inherit}button{cursor:pointer;color:inherit}button:focus-visible,select:focus-visible,[tabindex]:focus-visible{outline:3px solid #bd88f5;outline-offset:3px}button{border:1px solid #525252;border-radius:5px;background:#353535;padding:5px 10px}button:hover{background:#454545}main{max-width:1428px;padding:14px;margin:auto}.masthead{display:flex;align-items:center;justify-content:center;position:relative;gap:18px}.masthead h1{font-family:Menlo,Consolas,monospace;font-size:30px;letter-spacing:.02em;margin:0 0 10px}.masthead>span{font-size:12px;font-style:italic;position:absolute;right:8px}.context{display:flex;align-items:center;justify-content:space-between;gap:10px;margin:0 4px 12px;color:#bdbdbd;font-size:12px}.context button{white-space:nowrap}.card{background:#2c2c2c;border-radius:10px}.selectors{display:grid;grid-template-columns:1.45fr 1fr;gap:18px}.selector{padding:10px 14px}.section-heading{display:flex;align-items:center;justify-content:space-between;gap:12px}.section-heading h2,h2{font-size:19px;margin:0;font-weight:700}.selector .section-heading{justify-content:center;position:relative}.clear-filter{font-size:11px;background:transparent;padding:3px 6px}.selector .clear-filter{position:absolute;right:0}.selection-hint{font-size:11px;color:#bdbdbd;text-align:center;margin:5px 0}.country-grid{display:grid;grid-template-columns:repeat(8,minmax(0,1fr));gap:4px}.country-button{padding:3px 2px;border:1px solid transparent;border-radius:5px;background:transparent;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;min-width:0;font-size:10px;line-height:1.1}.country-button svg{height:45px;width:100%;max-width:75px;overflow:visible}.country-button path{fill:#5b2c8d;transition:fill .12s}.country-button[aria-pressed=false].filtered path{fill:#555}.country-button[aria-pressed=true]{background:#392747;border-color:#a476ce}.country-button:hover{background:#37303e}.country-button span{overflow-wrap:anywhere}.product-card{margin-top:18px;padding:9px 22px;position:relative}.product-card>.clear-filter{position:absolute;right:7px;top:5px}.product-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:8px}.product-button{background:transparent;border:1px solid transparent;padding:4px 6px 7px;display:grid;gap:5px;justify-items:center;font-size:12px;font-weight:bold;min-width:0}.product-icon{width:45px;height:45px;background:var(--line-color);mask:var(--shape) center/contain no-repeat;-webkit-mask:var(--shape) center/contain no-repeat}.product-button.filtered .product-icon{background:#666}.product-button[aria-pressed=true]{border-color:var(--line-color);background:#20343d}.kpis{margin-top:18px;display:grid;grid-template-columns:repeat(4,1fr);gap:18px}.kpi{min-height:83px;text-align:center;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:9px;border:0;padding:8px 12px}.kpi strong{font-size:34px;line-height:1;white-space:nowrap}.kpi span{font-size:12px;color:#d5d5d5}.kpi:hover{background:#343434}.mix svg{height:48px;width:80px}.mix{gap:3px}.visuals{display:grid;grid-template-columns:1.58fr 1fr;gap:18px;margin-top:18px}.map-card{padding:8px}.map-card h2{font-size:16px}.map-card .section-heading{padding:4px 5px 6px}.subtle{font-size:11px;color:#bbb}.map-card svg{width:100%;display:block;background:#525252;border:1px solid #888;border-radius:2px;touch-action:pan-y}.map-land{fill:#363636;stroke:#474747;stroke-width:.45}.map-route{fill:none;stroke:#fff;stroke-opacity:.3;cursor:pointer;pointer-events:stroke}.map-route:hover,.map-route:focus{stroke-opacity:1;stroke:#e5bcff}.route-hit{fill:none;stroke:transparent;stroke-width:9;cursor:pointer;pointer-events:stroke}.map-node{fill:#9736a6;stroke:#2d192e;stroke-width:.8;cursor:pointer}.map-node.destination{fill:#d28de1}.map-node:hover{r:7}.map-node:focus{stroke:#fff;stroke-width:3}.chart-note{font-size:10px;color:#aaa;margin:6px 3px 0}.bubbles-card{padding:12px 10px}.bubble-heading{display:grid;grid-template-columns:1fr auto;gap:9px;align-items:start}.bubble-heading h2{font-size:19px;line-height:1.25;max-width:235px}.controls{display:flex;gap:12px;font-size:11px}.controls fieldset{border:0;padding:0;margin:0;display:grid;gap:3px}.controls legend{font-weight:bold;padding:0 0 5px}.controls label{display:flex;align-items:center;gap:3px;white-space:nowrap}.controls input{margin:0;accent-color:#dedede}.bubbles-card svg{width:100%;max-height:460px;display:block;margin-top:5px}.bubble-circle{stroke:#2c2c2c;stroke-width:2;cursor:pointer}.bubble-circle:hover{stroke:#fff;stroke-width:2.5}.bubble-label{font-size:11px;font-weight:bold;fill:#fff;text-anchor:middle;pointer-events:none}.bubble-mark.dim,.timeline-band.dim{opacity:.2}.color-legend{font-size:10px;color:#ccc;display:flex;justify-content:space-between;align-items:center;gap:8px}.gradient-key{height:7px;flex:1;max-width:140px;border-radius:4px;background:linear-gradient(90deg,#59a14f,#f4d166,#fc964e,#cf4244,#b71d3e,#8b0033)}.timeline-card{padding:10px 12px;margin-top:14px}.timeline-card>.section-heading{justify-content:center}.grain-label{font-size:11px;color:#ddd}.grain-label select{background:#292929;color:#fff;border:1px solid #555;padding:4px 7px;border-radius:4px}.timeline-card svg{width:100%;display:block;overflow:visible}.timeline-grid{stroke:#575757;stroke-width:.6}.axis-label{fill:#bfbfbf;font-size:11px}.timeline-band{stroke:none;cursor:pointer;transition:opacity .12s}.timeline-legend{display:flex;flex-wrap:wrap;justify-content:center;gap:4px 10px;padding-top:2px;font-size:10px}.legend-item{border:0;background:transparent;padding:3px;color:#ccc;display:flex;align-items:center;gap:4px}.legend-item i{width:8px;height:8px;border-radius:2px;display:inline-block}.selection-summary{font-size:12px;color:#c2c2c2;line-height:1.6;margin:10px 4px}.details{padding:14px;margin:14px 0}.details h2{font-size:18px}.details .section-heading{margin-bottom:10px}.details .section-heading button{font-size:12px}.detail-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.detail-section h3{font-size:14px;margin:8px 0}.detail-section p{font-size:12px;line-height:1.6;margin:5px 0}.stat-table{width:100%;border-collapse:collapse;font-size:12px}.stat-table th,.stat-table td{padding:4px 5px;text-align:left;vertical-align:top}.stat-table th{font-weight:normal;color:#bbb}.stat-table td{text-align:right;font-variant-numeric:tabular-nums}.rank-row{display:grid;grid-template-columns:minmax(80px,1fr) 2fr 80px;align-items:center;gap:7px;margin:6px 0;font-size:11px}.rank-row>span:first-child{overflow-wrap:anywhere}.rank-bar{height:10px;background:#3d3d3d;display:flex;border-radius:2px;overflow:hidden}.rank-bar>i{height:100%;display:block}.rank-value{text-align:right;font-variant-numeric:tabular-nums}.small-shape{width:18px;height:18px;vertical-align:middle}.tooltip-ranks{margin-top:7px}.tooltip-ranks h4{font-size:12px;margin:5px 0}.tooltip-title{font-size:15px;margin:0 0 5px}.tooltip-note{color:#aaa;font-size:10px;line-height:1.4;margin:6px 0 0}#tooltip{position:fixed;z-index:20;background:#181818;border:1px solid #707070;box-shadow:0 6px 22px #0008;border-radius:7px;padding:12px;max-width:min(420px,calc(100vw - 24px));max-height:70vh;overflow:hidden;font-size:12px;pointer-events:none}#tooltip.pinned{pointer-events:auto}#tooltip .rank-row{grid-template-columns:1fr 1fr 70px}#tooltip .stat-table{font-size:11px}footer{margin:14px 4px 20px;font-size:11px;line-height:1.6;color:#aaa}footer p{margin:7px 0}footer summary{cursor:pointer;color:#ccc}footer a{color:#c49de8}.empty-chart{fill:#ccc;font-size:15px;text-anchor:middle}.legend-empty{color:#bbb}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
@media(min-width:1150px){.visuals{min-height:515px}.map-card{display:flex;flex-direction:column}.map-card svg{flex:1;min-height:420px}.bubbles-card{display:flex;flex-direction:column}.bubbles-card svg{flex:1;min-height:405px}.timeline-card{min-height:200px}}
@media(max-width:1100px){main{padding:12px}.masthead h1{font-size:24px}.masthead>span{position:static}.country-grid{grid-template-columns:repeat(6,minmax(0,1fr))}.selectors{grid-template-columns:1fr 1fr}.visuals{grid-template-columns:1.2fr 1fr}.kpi strong{font-size:27px}.bubble-heading{grid-template-columns:1fr}.controls{margin-top:4px;justify-content:center}.controls fieldset{display:flex;flex-wrap:wrap;gap:8px}.controls legend{float:left;margin-right:6px}.bubbles-card h2{max-width:none;text-align:center}.bubbles-card svg{max-height:350px}}
@media(max-width:700px){main{padding:9px}.masthead{display:block;text-align:center}.masthead h1{font-size:20px;margin:3px 0 5px}.masthead>span{font-size:10px}.context{font-size:10px;margin-top:10px}.selectors{grid-template-columns:1fr;gap:10px}.selector{padding:9px 10px}.country-grid{grid-template-columns:repeat(8,minmax(0,1fr))}.country-button svg{height:36px}.country-button{font-size:9px}.section-heading h2,h2{font-size:16px}.product-card{margin-top:10px;padding:9px 7px}.product-grid{grid-template-columns:repeat(4,1fr);gap:3px}.product-button{font-size:10px;padding:4px}.product-icon{width:35px;height:35px}.kpis{margin-top:10px;gap:9px;grid-template-columns:1fr 1fr}.kpi strong{font-size:28px}.kpi{min-height:75px}.visuals{margin-top:10px;gap:10px;grid-template-columns:1fr}.map-card svg{min-height:260px}.bubbles-card svg{max-height:380px}.bubble-heading{grid-template-columns:1fr auto}.controls{display:flex;justify-content:flex-start}.controls fieldset{display:grid;gap:3px}.controls legend{float:none}.bubbles-card h2{text-align:left;font-size:17px;max-width:230px}.timeline-card{padding:9px 7px;margin-top:10px}.timeline-card svg{height:170px}.timeline-card>.section-heading{justify-content:space-between}.axis-label{font-size:18px}.detail-grid{grid-template-columns:1fr}.rank-row{grid-template-columns:1fr 1fr 75px}.timeline-legend{font-size:10px}.selection-summary{font-size:11px}.country-grid{grid-template-columns:repeat(6,minmax(0,1fr))}}
@media(prefers-reduced-motion:reduce){*{transition:none!important;scroll-behavior:auto!important}}
@media(max-width:700px){.product-card>.clear-filter{top:auto;bottom:10px;right:10px}}
/* Embedded frames use their own viewport width, which is narrower than the host page. */
@media(max-width:359px){.kpis,.visuals,.bubble-heading{grid-template-columns:minmax(0,1fr)}.controls{flex-wrap:wrap}}
