/* One timing and focus vocabulary; selected states retain their meaning. */
:root{--ui-ease:cubic-bezier(.2,.75,.25,1);--ui-time:190ms;--ui-hover:#f0f4ff;--ui-press:#e2eaff;--ui-ring:#5875df;--ui-ring-soft:#dce5ff}
button,a,input,summary,[role=option],.bar-row,.chart-plot{transition-property:background-color,border-color,color,box-shadow,outline-color,opacity,text-decoration-color;transition-duration:var(--ui-time);transition-timing-function:var(--ui-ease)}
button,a,input,summary,[tabindex]{outline:2px solid transparent;outline-offset:3px}
button:focus-visible,a:focus-visible,input:focus-visible,summary:focus-visible,[tabindex]:focus-visible{outline:2px solid var(--ui-ring);outline-offset:3px}
button:disabled,button[aria-disabled=true]{cursor:default;box-shadow:none;filter:none;pointer-events:none}

/* Small controls and floating map tools. No movement of their layout anchors. */
.icon-button:hover,.close:hover,.globe-controls button:hover,.rail button:hover{background:var(--ui-hover);color:#3457ce}
.icon-button:active,.close:active,.globe-controls button:active,.rail button:active{background:var(--ui-press);color:#2444b4;box-shadow:inset 0 1px 3px #24448b12}
.close:hover{border-color:#c4d0ef}.close:focus-visible{outline-offset:2px}
.close,.picker-trigger{outline-offset:2px}
.rail button[aria-current=page]:hover{background:#e1e9ff;color:#294bce}
.rail button[aria-current=page]:active{background:#d6e1ff}
.tip{transition:opacity 150ms var(--ui-ease);transition-delay:90ms}
.search-launch:hover{border-color:#c8d3e8;background:#f0f4fc;color:#465a80}
.search-launch:active{border-color:#adbfeb;background:#eaf0fe}
.header>.mic:hover{background:#e7edfb}.header>.mic:active{background:#dce6fb}
.segmented button:hover,.category-dock button:hover{background:#f0f3fa;color:#3e527b}
.segmented button.active:hover,.category-dock button.active:hover{background:#e2e9ff;color:#2c4ccd}
.segmented button:active,.category-dock button:active{background:#dce6ff}
.segmented button:focus-visible,.category-dock button:focus-visible{outline-offset:-2px}
.segmented button,.category-dock button,.chapter-list button,.country-result,.source-link{outline-offset:-2px}.tabs button{outline-offset:1px}
.country-marker:hover,.country-marker:active{background:transparent}
.country-marker>b{outline:2px solid transparent;outline-offset:2px;transition:background-color var(--ui-time) var(--ui-ease),border-color var(--ui-time) var(--ui-ease),color var(--ui-time) var(--ui-ease),box-shadow var(--ui-time) var(--ui-ease),outline-color var(--ui-time) var(--ui-ease)}
.country-marker:hover>b{background:#f4f7ff;border-color:#b4c4ed;color:#2c4eae;box-shadow:0 2px 9px #294c9710}
.country-marker:active>b{background:#e8efff;border-color:#93abe6}
.country-marker:focus-visible{outline:none}.country-marker:focus-visible>b{outline:2px solid var(--ui-ring);outline-offset:2px}
#globe:focus-visible{outline-offset:-4px;border-radius:16px}
.sheet-handle:hover{background:#edf2fc80}.sheet-handle:active{background:#e1e9f680}.sheet-handle>span{transition:background-color var(--ui-time) var(--ui-ease)}
.sheet-handle:hover>span,.sheet-handle:focus-visible>span{background:#8fa4d5}.sheet-handle:focus-visible{outline-offset:-4px}

/* Actions share geometry and timing whether rendered as buttons or links. */
.primary:hover{background:#2b4edb;box-shadow:0 3px 10px #3457ec14}.primary:active{background:#2342bb;box-shadow:inset 0 2px 4px #142b6e22}
.secondary,a.secondary,.source-section a.secondary{display:inline-flex;align-items:center;justify-content:center;min-height:40px;gap:7px;text-decoration:none;background:#fff;color:#46546a;border-color:#dfe5ee}
.secondary:hover,a.secondary:hover,.source-section a.secondary:hover{background:#f1f5ff;border-color:#bdcbed;color:#3053b6;box-shadow:0 2px 7px #3457ec08}
.secondary:active,a.secondary:active,.source-section a.secondary:active{background:#e4ecff;border-color:#a8bce9;box-shadow:inset 0 1px 3px #3457ec0c}
.country-head>button:hover{background:#edf2ff;border-color:#c3d0f0;color:#2b4cce}.country-head>button:active{background:#dfe8ff;border-color:#acbeec}
.text-button{border-radius:5px}.text-button:hover{background:transparent;color:#2645ba;text-decoration:underline;text-decoration-color:#b2c1f1;text-underline-offset:4px}.text-button:active{color:#1e3794}
.source-link{border-radius:7px}.source-link:hover{background:#f3f6fc;color:#385582}.source-link:active{background:#eaf0fd;color:#2b4798}
.source-link:focus-visible{outline-offset:-2px}
.inline-info:hover{background:#eaf0ff;color:#3457ce}.inline-info:active{background:#dce6ff}.inline-info:focus-visible{outline-offset:1px}
footer button{border-radius:5px;padding-inline:4px}footer button:hover{background:#f0f4fc;color:#36538e}footer button:active{background:#e4ecfb}
a:not(.brand-icon):not(.secondary):not(.skip){border-radius:3px;text-decoration-thickness:1px;text-decoration-color:#b6c2dc;box-decoration-break:clone;-webkit-box-decoration-break:clone}
a:not(.brand-icon):not(.secondary):not(.skip):hover{color:#264bc6;text-decoration-color:#7895e7;background-color:#3457ec05}
a:not(.brand-icon):not(.secondary):not(.skip):active{color:#203b97;text-decoration-color:currentColor;background-color:#3457ec0c}
a:not(.brand-icon):not(.secondary):not(.skip):focus-visible{background:#edf2ff;text-decoration:underline;text-decoration-color:#4c69ce;outline-offset:2px}
.brand-icon{border-radius:12px}.brand-icon:hover{background:#f2f5fd}.brand-icon:active{background:#e7eefd}

/* Full-row feedback keeps labels, numbers and proportional bars aligned. */
.bar-row{position:relative;border-radius:7px;background:transparent;outline-offset:-2px}
.bar-row:hover,.bar-row:focus{background:#f1f5fe;color:#3d568a;box-shadow:0 0 0 4px #f1f5fe}
.bar-row.selected:hover,.bar-row.selected:focus{background:#edf2ff;color:#294bc8;box-shadow:0 0 0 4px #edf2ff}
.bar-row:focus-visible{outline-offset:-2px;box-shadow:0 0 0 4px #f0f4ff}
button.bar-row:active{background:#e1eaff;box-shadow:0 0 0 4px #e1eaff}
.bar-track{transition:background-color var(--ui-time) var(--ui-ease)}
.bar-fill{transition:width .55s var(--ui-ease),background-color var(--ui-time) var(--ui-ease)}
.bar-row:hover .bar-track,.bar-row:focus .bar-track{background:#e7edf8}
.bar-row:hover .bar-fill,.bar-row:focus .bar-fill{background:#6b84b4}
.bar-row.selected:hover .bar-fill,.bar-row.selected:focus .bar-fill{background:#2c4dd9}
div.bar-row{cursor:default}
.compare-bars button.bar-row{cursor:pointer}
.bars{padding:4px;margin:-4px}

/* Tables are inspection surfaces, not fake navigation buttons. One tab stop per table. */
table{border-collapse:separate;border-spacing:0}
tbody tr{cursor:default;border-radius:8px;outline:2px solid transparent;outline-offset:-2px;transition:background-color 180ms var(--ui-ease),outline-color 180ms var(--ui-ease),color 180ms var(--ui-ease)}
tbody tr[tabindex]{outline-offset:-2px}
tbody tr>td{transition:background-color 180ms var(--ui-ease),border-color 180ms var(--ui-ease),color 180ms var(--ui-ease)}
tbody tr:hover>td,tbody tr:focus>td{background:#f1f5fe;border-bottom-color:#d8e2f4;color:#3a527f}
tbody tr>td:first-child{border-radius:7px 0 0 7px}tbody tr>td:last-child{border-radius:0 7px 7px 0}
tbody tr[tabindex]:focus-visible{outline-offset:-2px;outline-color:var(--ui-ring)}
tbody tr:focus-visible>td{background:#eaf0ff;color:#2e4780}
.observations>summary{border-radius:11px}.observations>summary:hover{background:#f0f4fe}.observations>summary:active{background:#e5edfc}
.observations>summary:focus-visible{outline-offset:-2px;background:#edf3ff;border-radius:11px}
.observation-icon{transition:background-color var(--ui-time) var(--ui-ease),color var(--ui-time) var(--ui-ease)}
.observations>summary:is(:hover,:focus-visible) .observation-icon{background:#dfe9ff;color:#4669b3}
.chart-plot:hover{background:#f8faff;box-shadow:inset 0 0 0 1px #edf2fb}.chart-plot:focus-visible{background:#f7f9ff;outline-offset:2px}
.chart-plot{outline-offset:2px}.observations>summary{outline-offset:-2px}
#measure:focus-visible{border-radius:10px;outline-offset:-2px;outline-color:#9baded}
.inspector:focus-visible{outline:none;box-shadow:inset 2px 0 #91a7e9}

.country-result:hover{background:#f0f4fd;box-shadow:inset 0 0 0 1px #e4eaf7}
.country-result:hover strong{color:#3457b8}.country-result:active{background:#e4edff;box-shadow:inset 0 0 0 1px #cddcf8}
.country-result:focus-visible{outline-offset:-2px;background:#edf3ff}
.chapter-list button:hover{background:#f2f6ff;border-color:#c4d1ed;color:#3d5b94}.chapter-list button.active:hover{background:#e4ecff;border-color:#a9bdec;color:#2d4ec6}
.chapter-list button:active{background:#dfe9ff;border-color:#9fb5e8}.chapter-list button:focus-visible{outline-offset:-2px}
.picker-trigger:hover{background:#f5f8ff;border-color:#b8c8e9;box-shadow:0 2px 7px #3457ec08}.picker-trigger:active{background:#eaf0ff;border-color:#9eb5ec;box-shadow:inset 0 1px 3px #3457ec0a}
.picker-trigger[aria-expanded=true]:hover{background:#f7f9ff;border-color:#91a8e8}
.picker-trigger:focus-visible{outline-offset:2px}
.picker-option:hover{background:#f0f4fc;box-shadow:inset 0 0 0 1px #e4eaf6;color:#3e5484}
.picker-option[aria-selected=true]:hover{background:#e2eaff;box-shadow:inset 0 0 0 1px #d2defa;color:#2f4fc9}
.picker-option:active{background:#dce7ff;color:#294ac0}
.picker-option.highlighted{background:#eef3ff;box-shadow:inset 0 0 0 2px #7892df;color:#34518b}
.picker-option[aria-selected=true].highlighted{background:#e7edff;box-shadow:inset 0 0 0 2px #7892df}
.picker-option[aria-disabled=true]:hover{background:transparent;box-shadow:none;color:inherit}
.toggle-row{border-radius:10px;transition:background-color var(--ui-time) var(--ui-ease)}.toggle-row:hover{background:#f7f9fd}.toggle-row:focus-within{background:#f1f5fe}
.toggle-row input{cursor:pointer;border-radius:4px}.toggle-row input:focus-visible{outline-offset:3px}
input[type=search]:hover{border-color:#bdcbe5;background:#fcfdff}input[type=search]:focus-visible{border-color:#8ca7e6;box-shadow:0 0 0 3px #3457ec09;outline-offset:2px}
.tabs button,.segmented button,.category-dock button,.picker-trigger,.text-button,.source-link,.country-head>button,.primary,.secondary,.icon-button,.close,.rail button,.globe-controls button,.chapter-list button,.country-result,.picker-option,.observations>summary{transition-duration:var(--ui-time);transition-timing-function:var(--ui-ease)}
:is(button,a,summary):active{transition-duration:100ms}

/* Hover is not a persistent selected state on touchscreens. */
@media(hover:none){.country-marker:hover>b{background:#fff;border-color:#dde4f0;box-shadow:none}.bar-row:hover{background:transparent;box-shadow:none}.bar-row.selected:hover{background:transparent;box-shadow:none}.bar-row:hover .bar-fill{background:#8191a6}.bar-row.selected:hover .bar-fill{background:var(--accent)}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{transition-duration:.001ms!important;animation-duration:.001ms!important}}
html.reduced *,html.reduced *:before,html.reduced *:after{transition-duration:.001ms!important;animation-duration:.001ms!important}

/* Searchable country pickers keep the input separate from the semantic listbox. */
.searchable-picker{padding:8px;overflow:hidden;display:flex;flex-direction:column;gap:6px}
.picker-search{display:flex;align-items:center;gap:8px;padding:0 9px;border:1px solid #dce5f3;border-radius:10px;background:#f8faff;flex:none}
.picker-search>.ui-icon{width:16px;height:16px;color:#7185a8}
.picker-search input{border:0;background:transparent;box-shadow:none!important;min-width:0;min-height:40px;padding:8px 0;font-size:13px;outline:none!important}
.picker-search:focus-within{border-color:#89a1e1;box-shadow:0 0 0 2px #3457ec0b}
.picker-results{overflow-y:auto;overscroll-behavior:contain;scrollbar-width:thin;min-height:0;flex:1}
.picker-search-status{padding:3px 8px 4px;font-size:11px;line-height:1.6;color:#6b7890;flex:none}
.picker-country-code{margin-left:auto;font-size:10px;color:#8a96aa;letter-spacing:.4px;flex:none}
.searchable-picker .picker-option{gap:8px;min-height:40px}.searchable-picker .picker-option-label{min-width:0;overflow-wrap:anywhere}
.searchable-picker .picker-option>.ui-icon{width:15px;height:15px;margin-left:0;flex:none}
@media(max-width:760px){.picker-search input{font-size:16px;min-height:44px}.searchable-picker .picker-option{min-height:44px}}
