/* Keep a stable cursor across controls, their artwork, and segmented gaps. */
a[href],button:not(:disabled),[role="button"]:not([aria-disabled="true"]),.view-toggle{cursor:pointer}
a[href] *,button *,[role="button"] *{cursor:inherit}
a[href] :is(svg,img),button :is(svg,img),[role="button"] :is(svg,img){pointer-events:none}

/* Filter geometry comes from the shared circular icon button. */
#filter-toggle{color:var(--color-muted)}
#filter-toggle .icon-filter{display:block;width:20px;height:20px;margin:0;transform:none}
#filter-toggle[aria-expanded="true"]{color:var(--color-accent-text)}

/* Display names never force their grid or flex cell wider. */
.entity-name{display:inline-block;max-width:100%;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;vertical-align:bottom}
.entity-copy strong{min-width:0;overflow-wrap:normal}
.entity-copy strong .entity-name{flex:0 1 auto}
.entity-copy .icon-verified{flex:none}
.hero-title-group,.hero-title-group>h1{min-width:0;max-width:100%}
.hero-title-group>h1{display:flex;align-items:center;gap:9px}
.hero-title-group>h1>.icon{flex:none}
.leader-name>.entity-name,.record-name>.entity-name{max-width:100%}
.comparison-legend>span{display:inline-flex;align-items:center;gap:var(--space-6);min-width:0}
.comparison-legend .entity-name{max-width:15em}
.bar-label .entity-name{max-width:100%}

/* Each fact has its own row; multiline values share the label's first baseline. */
.info-panel .facts{display:flex;flex-direction:column;gap:var(--space-16)}
.info-panel .facts>div{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));align-items:first baseline;gap:var(--space-12);margin:0}
.info-panel .facts :is(dt,dd){min-width:0}
.info-panel .facts dt{overflow-wrap:normal}
.info-panel .facts dd{overflow-wrap:anywhere}
.info-panel .facts dd{text-align:right;justify-content:flex-end}
.facts .os-icons{display:flex;align-items:center;justify-content:flex-end;flex-wrap:wrap;gap:var(--space-12)}
.os-badge{display:inline-flex;align-items:center;justify-content:center;min-width:18px;height:20px;color:var(--color-muted)}
.os-badge .icon{display:block;width:18px;height:18px;transform:none;margin:0}
.os-text{font-size:12px;line-height:20px}

/* Native fallback, also used for disabled fields and before enhancement. */
.filter-panel select,.project-dialog select{
  appearance:none;-webkit-appearance:none;box-sizing:border-box;
  min-height:44px;padding:var(--space-10) 42px var(--space-10) 14px;max-width:100%;
  border:1px solid var(--color-border);border-radius:var(--radius-control);
  color:var(--color-text);background-color:var(--color-surface);
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='20' height='20' viewBox='0 0 20 20'%3E%3Cpath d='m5.5 7.5 4.5 4.5 4.5-4.5' fill='none' stroke='%23bdb4ca' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
  background-repeat:no-repeat;background-position:right 12px center;background-size:20px;
  font:inherit;font-size:14px;line-height:1.4;
}
.filter-panel>label:not(.check){flex:0 1 190px;min-width:140px;font-size:12px;gap:var(--space-8)}
.select-control{position:relative;min-width:0;width:100%}
.select-control .select-native{position:absolute!important;width:1px!important;height:1px!important;min-height:0!important;overflow:hidden;clip-path:inset(50%);padding:0;border:0;pointer-events:none;opacity:0}
.select-trigger{display:flex;align-items:center;justify-content:space-between;gap:var(--space-16);width:100%;min-height:44px;padding:var(--space-10) var(--space-12) var(--space-10) 14px;border:1px solid var(--color-border);border-radius:var(--radius-control);background:var(--color-field);color:var(--color-text);font:inherit;font-size:var(--text-control);line-height:1.4;text-align:left;transition:border-color var(--motion-standard),background var(--motion-standard),box-shadow var(--motion-standard)}
.select-trigger:hover{background:var(--color-surface);border-color:color-mix(in srgb, var(--color-accent) 33.3%, transparent)}
.select-trigger[aria-expanded=true]{background:var(--color-surface);border-color:color-mix(in srgb, var(--color-accent) 66.7%, transparent);box-shadow:0 0 0 3px color-mix(in srgb, var(--color-accent) 7.1%, transparent)}
.select-value{display:flex;align-items:center;gap:9px;min-width:0;overflow:hidden;white-space:nowrap}
.select-value>span{min-width:0;overflow:hidden;text-overflow:ellipsis}
.select-flag{width:20px;height:15px;border-radius:2px;flex:none;object-fit:cover}
.select-trigger>svg{width:20px;height:20px;flex:none;color:var(--color-muted);transition:transform var(--motion-standard)}
.select-trigger[aria-expanded=true]>svg{transform:rotate(180deg);color:var(--color-accent-text)}
.select-trigger:disabled{opacity:.45;cursor:default}
.select-menu{position:fixed;z-index:160;box-sizing:border-box;padding:var(--space-6);border:1px solid color-mix(in srgb, var(--color-accent) 16.9%, transparent);border-radius:15px;background:var(--color-surface);box-shadow:0 16px 40px color-mix(in srgb, var(--color-bg) 46.7%, transparent),0 2px 6px color-mix(in srgb, var(--color-bg) 26.7%, transparent),inset 0 1px color-mix(in srgb, var(--color-text) 3.5%, transparent);overflow-x:hidden;overflow-y:auto;overscroll-behavior:contain;scrollbar-width:thin;scrollbar-color:var(--color-accent) transparent}
.select-menu[hidden]{display:none}
.select-option{display:flex;gap:14px;align-items:center;justify-content:space-between;min-height:42px;box-sizing:border-box;padding:var(--space-10) var(--space-12);border-radius:9px;font-size:14px;line-height:1.45;color:var(--color-text);cursor:pointer}
.select-option>span{display:flex;align-items:center;gap:var(--space-10);min-width:0;overflow-wrap:anywhere}
.select-option>svg{width:18px;height:18px;flex:none;color:var(--color-accent-text);visibility:hidden}
.select-option[aria-selected=true]{color:var(--color-accent-text);background:color-mix(in srgb, var(--color-accent) 7.1%, transparent)}
.select-option[aria-selected=true]>svg{visibility:visible}
.select-option.is-active{background:color-mix(in srgb, var(--color-accent) 14.1%, transparent);color:var(--color-text)}
.select-option[aria-disabled=true]{opacity:.4;cursor:default}

/* Spacious full-width footer, with working navigation and optional contacts. */
.site-footer{position:relative;display:block;margin-top:72px;padding:0;border-top:1px solid color-mix(in srgb, var(--color-accent) 7.5%, transparent);background:radial-gradient(ellipse at 25% 0,color-mix(in srgb, var(--color-accent) 6.3%, transparent),transparent 55%),var(--color-surface);isolation:isolate}
.site-footer::before{content:"";position:absolute;inset:0 0 auto;height:1px;background:linear-gradient(90deg,transparent,color-mix(in srgb, var(--color-accent) 31.4%, transparent) 40%,color-mix(in srgb, var(--color-accent) 9.4%, transparent),transparent);pointer-events:none}
.footer-inner{--footer-gap:32px;display:grid;grid-template-columns:minmax(200px,285px) max-content max-content max-content max-content;justify-content:space-between;gap:var(--footer-gap);padding-top:54px;padding-bottom:48px;align-items:start}
.footer-brand-block{min-width:0}
.footer-brand-block .brand{display:inline-flex;font-size:22px}
.footer-description{color:var(--color-muted);font-size:12px;line-height:1.65;max-width:285px;margin:var(--space-24) 0 0}
.footer-copyright{font-size:12px;color:var(--color-muted);margin:var(--space-24) 0 0}
.footer-navigation{display:grid;grid-column:span 3;grid-template-columns:subgrid;column-gap:normal;row-gap:var(--footer-gap);align-items:start}
.footer-column{display:flex;flex-direction:column;align-items:start;gap:15px;min-width:0}
.site-footer h2{font-size:13px;line-height:1.5;font-weight:500;margin:0 0 var(--space-4);color:var(--color-text);letter-spacing:0}
.footer-column>a,.footer-index-links>a{color:var(--color-muted);font-size:13px;line-height:1.5;transition:color var(--motion-standard);max-width:100%;overflow-wrap:anywhere}
.footer-column>a:hover,.footer-index-links>a:hover{color:var(--color-accent-text)}
.footer-indices{display:grid;grid-column:span 2;grid-template-columns:subgrid;column-gap:normal;row-gap:15px}
.footer-indices>h2{grid-column:1/-1}
.footer-index-links{display:grid;grid-column:1/-1;grid-template-columns:subgrid;column-gap:normal;row-gap:15px;width:100%;align-items:start}
.footer-contact{min-width:0}
.footer-email{display:inline-block;color:var(--color-accent-text);font-size:13px;margin-top:var(--space-6);text-decoration:underline;text-underline-offset:4px;overflow-wrap:anywhere}
.footer-email:hover{color:var(--color-accent-text)}
.footer-contact-placeholder{display:block;font-size:12px;color:var(--color-muted);margin-top:var(--space-8)}
.footer-socials{display:flex;align-items:center;flex-wrap:wrap;gap:var(--space-12);margin-top:26px}
.footer-social{display:grid;place-items:center;border:1px solid color-mix(in srgb, var(--color-text) 6.3%, transparent)}
.footer-social .icon{width:18px;height:18px;margin:0}
.social-links .icon{width:16px;height:16px;transform:none}
/* Every service starts neutral; emphasis belongs to the hovered/focused link. */
.footer-social,.social-links a{color:var(--color-muted);background:color-mix(in srgb, var(--color-text) 3.1%, transparent);border-color:color-mix(in srgb, var(--color-text) 6.3%, transparent);transition:background-color var(--motion-standard),color var(--motion-standard),border-color var(--motion-standard)}
@media(hover:hover){.footer-social:hover,.social-links a:hover{color:var(--color-text);background:var(--color-accent);border-color:color-mix(in srgb, var(--color-accent) 31.4%, transparent)}}
a.footer-social:focus-visible,.social-links a:focus-visible{color:var(--color-text);background:var(--color-accent);border-color:color-mix(in srgb, var(--color-accent) 31.4%, transparent);outline:2px solid var(--color-accent);outline-offset:3px}
@media(max-width:1100px){.footer-inner{grid-template-columns:minmax(0,1fr) minmax(0,1.3fr)}.footer-navigation{grid-column:1/-1;grid-template-columns:repeat(3,minmax(0,1fr));column-gap:var(--space-16)}.footer-main-links{grid-column:1}.footer-indices{grid-column:span 2}.footer-index-links{column-gap:var(--space-16)}.footer-contact{grid-column:1/-1}}
@media(max-width:700px){.footer-inner{grid-template-columns:minmax(0,1fr)}}
@media(max-width:520px){.site-footer{margin-top:var(--space-40)}.footer-inner{padding-top:34px;padding-bottom:var(--space-30)}.footer-description{max-width:100%;margin-top:18px}.footer-copyright{margin-top:18px}.footer-column{gap:var(--space-8)}.footer-column>a{display:flex;align-items:center;min-height:36px}.footer-column h2{margin-bottom:5px}.footer-contact h2{margin-bottom:var(--space-12)}.footer-socials{margin-top:var(--space-20)}.filter-panel>label:not(.check){flex:1 1 130px}.select-trigger{font-size:16px}.select-option{min-height:44px}}
@media(max-width:520px){.footer-index-links{row-gap:var(--space-8)}.footer-index-links>a{display:flex;align-items:center;min-height:36px}}
@media(prefers-reduced-motion:reduce){.select-trigger,.select-trigger>svg,.footer-column>a,.footer-index-links>a,.footer-social,.social-links a{transition:none}}

/* Ranking records use a viewport-level card, outside the scrolling chart. */
.bar-trigger{display:flex;flex-direction:column;justify-content:flex-end;align-items:center;gap:var(--space-8);flex:1;width:100%;min-height:0;padding:0;background:none;border:0;border-radius:12px;color:inherit}
.bar-trigger:disabled{opacity:1;cursor:default}
.bar-trigger .bar-shape{flex-shrink:0;transition:filter .15s}
.bar-item.is-records-open .bar-shape,.bar-trigger:focus-visible .bar-shape{filter:brightness(1.25)}
.bar-item .bar-label{flex:none;width:100%}
.bar-records-tooltip{position:fixed;z-index:70;width:252px;max-width:calc(100vw - 24px);padding:18px var(--space-20);pointer-events:auto;border-radius:20px;box-shadow:var(--glass-shadow),0 16px 48px color-mix(in srgb, var(--color-bg) 40%, transparent);line-height:1.5}
.bar-records-name{display:block;font-size:14px;font-weight:500;color:var(--text)}
.bar-records-caption{display:block;margin-top:3px;font-size:11px;color:var(--muted)}
.bar-records-values{display:grid;gap:var(--space-10);margin:var(--space-16) 0 0}
.bar-records-values>div{display:flex;align-items:center;justify-content:space-between;gap:22px}
.bar-records-values dt{font-size:12px;color:var(--muted)}
.bar-records-values dd{margin:0;color:var(--color-accent-text);font-size:16px;font-weight:500;font-variant-numeric:tabular-nums;white-space:nowrap}
.bar-records-note{display:block;border-top:1px solid var(--glass-border);padding-top:var(--space-10);margin-top:14px;font-size:10px;color:var(--subtle)}
@media(prefers-reduced-motion:reduce){.bar-trigger .bar-shape{transition:none}}
.chart-live-head{pointer-events:none}
.chart-live-halo{opacity:0}
.is-live-visible .chart-live-halo{animation:chart-live-pulse 2.2s ease-out infinite}
@keyframes chart-live-pulse{0%{r:5px;opacity:.45}85%,100%{r:15px;opacity:0}}
@media(prefers-reduced-motion:reduce){.is-live-visible .chart-live-halo{animation:none}}

/* Responsive text limits retain full names for search and accessible labels. */
.entity-name-mobile { display: none; }
@media (min-width: 801px) {
  .entity-copy strong .entity-name { white-space: normal; overflow-wrap: anywhere; }
}
@media (max-width: 800px) {
  .entity-name-desktop { display: none; }
  .entity-name-mobile { display: inline; }
}

/* Dates belong to the same observed record, in Moscow calendar days. */
.record-date{display:block;color:var(--muted,var(--color-accent-text));font-size:var(--text-small);line-height:var(--line-body);font-variant-numeric:tabular-nums;margin-top:var(--space-4);white-space:nowrap}
.record-date[hidden]{display:none}
.records-panel .record-copy{display:flex;flex:1;min-width:0;flex-direction:column;gap:2px}
.records-panel .record-copy .record-date{margin:0}

.peak-time-trigger{cursor:help;border-radius:4px}
.peak-time-trigger:focus-visible{outline:2px solid var(--color-accent);outline-offset:4px}
.peak-moment-tooltip{box-sizing:border-box;position:fixed;z-index:3000;pointer-events:none;max-width:min(280px,calc(100vw - 24px));padding:var(--space-10) 13px;border:1px solid color-mix(in srgb, var(--color-accent) 25.1%, transparent);border-radius:12px;background:color-mix(in srgb, var(--color-bg) 96.1%, transparent);color:var(--color-text);box-shadow:0 8px 28px color-mix(in srgb, var(--color-bg) 33.3%, transparent);font-size:12px;line-height:1.5;font-variant-numeric:tabular-nums;opacity:0;transform:translateY(3px);transition:opacity .14s ease,transform .14s ease}
.peak-moment-tooltip.is-open{opacity:1;transform:translateY(0)}
.peak-moment-tooltip[hidden]{display:none}
@media(prefers-reduced-motion:reduce){.peak-moment-tooltip{transition:none}}

