    :root {
      --bg-a: #f3efe8;
      --bg-b: #f3efe8;
      --ink: #4f4a42;
      --muted: #7f786c;
      --stroke: #d8d1c6;
      --canton-boundary-stroke: rgba(66, 59, 49, .95);
      --base: #ece8e1;
      --de: #bfd2f4;
      --fr: #e4c9f2;
      --it: #f3d2bf;
      --bi: #c8e4bd;
      --panel-width-base: min(360px, 34vw);
      --panel-scale: 1;
      --mobile-sheet-peek: 96px;
      --map-ui-offset: 12px;
      --embed-map-aspect-ratio: 1000 / 700;
      --embed-map-aspect-multiplier: 1.4285714286;
      --embed-title-reserved-height: 0px;
    }

    * { box-sizing: border-box; }

    html.embed-prehide.embed-prehide-panel #taxPanel,
    html.embed-prehide.embed-prehide-guide #guideDrawer,
    html.embed-prehide.embed-prehide-guide #guideOpenBtn,
    html.embed-prehide.embed-prehide-visitors .visitor-counter,
    html.embed-prehide.embed-prehide-language-legend .legend-language-group,
    html.embed-prehide.embed-prehide-legend .legend,
    html.embed-prehide.embed-prehide-status #status,
    html.embed-prehide.embed-prehide-super-apps #superAppsShell,
    html.embed-prehide.embed-prehide-search #muniSearchInput,
    html.embed-prehide.embed-prehide-layer-row #layerRow {
      display: none !important;
      visibility: hidden !important;
      opacity: 0 !important;
      pointer-events: none !important;
    }

    body {
      margin: 0;
      min-height: 100vh;
      font-family: Inter, ui-sans-serif, system-ui, -apple-system, Segoe UI, Roboto, Arial, sans-serif;
      color: var(--ink);
      background: linear-gradient(160deg, var(--bg-a), var(--bg-b));
      overflow: hidden;
    }

    .sky {
      position: fixed;
      inset: -20vh -20vw;
      pointer-events: none;
      z-index: 0;
      filter: blur(42px) saturate(102%);
      opacity: .7;
      animation: skyDrift 36s ease-in-out infinite alternate;
      background:
        radial-gradient(45vw 18vh at 12% 35%, rgba(255,255,255,.9), transparent 62%),
        radial-gradient(36vw 14vh at 70% 30%, rgba(255,255,255,.62), transparent 60%),
        radial-gradient(40vw 16vh at 50% 72%, rgba(255,255,255,.54), transparent 60%),
        radial-gradient(28vw 12vh at 86% 64%, rgba(255,255,255,.5), transparent 60%);
    }

    .sky::after {
      content: "";
      position: absolute;
      inset: 0;
      background:
        radial-gradient(24vw 10vh at 25% 55%, rgba(255,255,255,.45), transparent 60%),
        radial-gradient(30vw 12vh at 80% 40%, rgba(255,255,255,.38), transparent 64%);
      animation: cloudFloat 26s ease-in-out infinite alternate;
    }

    body.is-zooming .sky,
    body.is-zooming .sky::after {
      animation: none !important;
      opacity: 0 !important;
    }

    body.is-zooming .sky {
      display: none !important;
      filter: none !important;
    }

    body.is-embed-mode.is-embed-custom-bg .sky,
    body.is-embed-mode.is-embed-custom-bg .sky::after {
      display: none !important;
      animation: none !important;
      filter: none !important;
      opacity: 0 !important;
    }

    body.is-large-viewport .sky,
    body.is-large-viewport .sky::after {
      display: none !important;
      animation: none !important;
      filter: none !important;
      opacity: 0 !important;
    }

    @keyframes skyDrift {
      0% { transform: translate3d(-1.5%, -1%, 0) scale(1); }
      100% { transform: translate3d(1.2%, 1.4%, 0) scale(1.03); }
    }

    @keyframes cloudFloat {
      0% { transform: translate3d(0%, 0%, 0); opacity: .62; }
      100% { transform: translate3d(2.2%, -1.8%, 0); opacity: .8; }
    }

    .wrap {
      position: relative;
      z-index: 1;
      height: 100vh;
      width: 100vw;
      padding: 0;
    }

    .stage {
      width: 100vw;
      height: 100vh;
      border-radius: 0;
      border: none;
      background: transparent;
      box-shadow: none;
      padding: 10px 14px 8px;
      display: grid;
      grid-template-rows: minmax(0, 1fr) auto;
      gap: 0;
    }

    body.is-embed-mode .stage {
      padding: 0;
    }

    body.is-embed-mode {
      min-height: 0;
      overflow: visible;
    }

    html.is-embed-standalone-dimensions body.is-embed-mode {
      overflow-x: auto;
    }

    body.is-embed-mode .wrap {
      width: 100%;
      height: auto;
      min-height: 0;
    }

    html.is-embed-standalone-dimensions body.is-embed-mode .wrap {
      width: var(--embed-standalone-width-percent, 100%);
      min-width: var(--embed-standalone-min-width, 280px);
      max-width: var(--embed-standalone-max-width, 720px);
      margin: 0 auto;
    }

    body.is-embed-mode .stage {
      width: 100%;
      height: auto;
      min-height: 0;
      display: grid;
      grid-template-rows: minmax(0, 1fr) auto;
    }

    html.is-embed-standalone-dimensions body.is-embed-mode .stage {
      width: 100%;
      max-width: 100%;
      min-width: 0;
    }

    body.is-embed-mode .map-shell {
      width: 100%;
      height: auto;
      min-height: var(--embed-map-min-height, 320px);
      aspect-ratio: var(--embed-map-aspect-ratio);
    }

    html.is-embed-standalone-dimensions body.is-embed-mode .map-shell,
    html.is-embed-standalone-dimensions body.is-embed-mode .map-shell.is-compact-embed {
      width: 100%;
      max-width: 100%;
      min-width: 0;
    }

    body.is-embed-mode.is-embed-height-fixed .wrap {
      height: 100dvh;
      min-height: 100dvh;
    }

    body.is-embed-mode.is-embed-height-fixed .stage {
      height: 100dvh;
      min-height: 100dvh;
      display: grid;
      grid-template-rows: minmax(0, 1fr) auto;
      align-items: stretch;
      justify-content: stretch;
    }

    body.is-embed-mode.is-embed-height-fixed .map-shell {
      width: min(100%, calc((100dvh - var(--embed-title-reserved-height)) * var(--embed-map-aspect-multiplier)));
      max-width: 100%;
      max-height: calc(100dvh - var(--embed-title-reserved-height));
      margin: 0 auto;
    }

    body.is-embed-mode.is-embed-height-fixed .map-shell.is-compact-embed {
      width: 100%;
      height: calc(100dvh - var(--embed-title-reserved-height));
      max-height: calc(100dvh - var(--embed-title-reserved-height));
      aspect-ratio: auto;
    }

    html.is-embed-standalone-dimensions[data-embed-standalone-height-mode="pixel"] body.is-embed-mode.is-embed-height-fixed .wrap,
    html.is-embed-standalone-dimensions[data-embed-standalone-height-mode="pixel"] body.is-embed-mode.is-embed-height-fixed .stage {
      height: auto;
      min-height: 0;
    }

    html.is-embed-standalone-dimensions[data-embed-standalone-height-mode="pixel"] body.is-embed-mode.is-embed-height-fixed .map-shell,
    html.is-embed-standalone-dimensions[data-embed-standalone-height-mode="pixel"] body.is-embed-mode.is-embed-height-fixed .map-shell.is-compact-embed {
      width: 100%;
      max-width: 100%;
      min-width: 0;
      height: var(--embed-standalone-height, 760px);
      max-height: var(--embed-standalone-height, 760px);
    }

    .embed-bottom-title {
      display: flex;
      justify-content: center;
      padding: 10px 12px 2px;
    }

    .embed-bottom-title.is-hidden {
      display: none;
    }

    .embed-bottom-title-text {
      max-width: min(920px, 100%);
      text-align: center;
      color: #5f584e;
      font-size: clamp(.88rem, 1.7vw, 1rem);
      line-height: 1.35;
      font-weight: 650;
      letter-spacing: .01em;
    }

    body.is-embed-mode .embed-bottom-title {
      padding: 10px 12px 4px;
    }

    body.is-embed-mode.is-embed-height-fixed .embed-bottom-title {
      padding: 8px 12px 10px;
    }

    .top {
      display: flex;
      justify-content: space-between;
      align-items: baseline;
      gap: 12px;
      padding: 2px 6px;
    }

    h1 {
      margin: 0;
      font-size: clamp(1.02rem, 1.6vw, 1.2rem);
      font-weight: 650;
      letter-spacing: .02em;
    }

    .sub {
      margin: 0;
      color: var(--muted);
      font-size: .9rem;
    }

    .legend {
      position: absolute;
      left: 12px;
      bottom: 12px;
      z-index: 14;
      display: flex;
      gap: 8px;
      flex-wrap: wrap;
      align-items: flex-start;
      justify-content: flex-start;
      max-width: min(72vw, 760px);
    }

    .muni-search-shell {
      position: absolute;
      left: var(--map-ui-offset);
      top: var(--map-ui-offset);
      z-index: 14;
      width: min(450px, calc(100% - (var(--map-ui-offset) * 2)));
      --super-apps-shift-y: 0px;
      --rent-diff-shift-y: 0px;
      overflow: visible;
      pointer-events: none;
    }

    .muni-search-shell > * {
      pointer-events: auto;
    }

    .muni-search-shell.is-search-hidden {
      width: fit-content;
      max-width: calc(100% - (var(--map-ui-offset) * 2));
    }

    .muni-search-shell.is-search-hidden .muni-tools-row {
      width: fit-content;
    }

    .muni-search-shell.is-embed-super-menu-open .muni-search-results {
      margin-top: calc(6px + var(--embed-super-menu-menu-height, 0px));
    }

    .muni-tools-row {
      display: flex;
      align-items: center;
      gap: 8px;
    }

    .muni-search-field {
      position: relative;
      flex: 1 1 auto;
      min-width: 0;
    }

    .compact-nav-controls {
      position: relative;
      z-index: 16;
      display: inline-flex;
      flex: 0 0 auto;
      align-items: center;
      justify-content: flex-end;
      gap: 6px;
      pointer-events: auto;
    }

    .compact-nav-btn {
      width: 34px;
      height: 34px;
      border: 1px solid rgba(205, 195, 182, .94);
      border-radius: 999px;
      background: rgba(255, 252, 247, .96);
      color: #5b5348;
      box-shadow: 0 10px 18px rgba(56, 48, 39, .14);
      font-size: .98rem;
      line-height: 1;
      display: inline-flex;
      align-items: center;
      justify-content: center;
      cursor: pointer;
      transition: transform .16s ease, border-color .16s ease, box-shadow .16s ease, opacity .16s ease;
      backdrop-filter: blur(4px);
    }

    .compact-nav-btn:hover,
    .compact-nav-btn:focus-visible {
      transform: translateY(-1px);
      border-color: rgba(170, 150, 126, .98);
      box-shadow: 0 12px 20px rgba(56, 48, 39, .18);
      outline: none;
    }

    .compact-nav-btn:disabled {
      opacity: .42;
      cursor: default;
      transform: none;
      box-shadow: 0 8px 14px rgba(56, 48, 39, .08);
    }

    .compact-nav-btn-reset {
      font-size: .86rem;
      font-weight: 700;
    }

    .super-apps-shell {
      position: relative;
      flex: 0 0 auto;
      --super-apps-collapsed-width: 84px;
      --super-apps-expanded-width: min(220px, 62vw);
    }

    .super-apps-toggle {
      height: 34px;
      width: var(--super-apps-collapsed-width);
      border: 1px solid #ded6ca;
      border-radius: 999px;
      padding: 0;
      display: inline-flex;
      align-items: center;
      justify-content: flex-start;
      gap: 8px;
      overflow: hidden;
      white-space: nowrap;
      color: #5f574b;
      background: #fff8;
      backdrop-filter: blur(2px);
      cursor: pointer;
      transition: width .24s cubic-bezier(.2,.7,.2,1), border-color .16s ease, box-shadow .16s ease, background-color .16s ease;
    }

    .super-apps-shell:hover .super-apps-toggle,
    .super-apps-shell.is-open .super-apps-toggle,
    .super-apps-toggle:focus-visible {
      width: var(--super-apps-expanded-width);
      border-color: #ccbfa8;
      box-shadow: 0 0 0 2px rgba(203, 192, 174, .28);
      background: #fff8;
      outline: none;
    }

    .super-apps-avatar {
      width: 34px;
      height: 34px;
      flex: 0 0 34px;
      display: block;
      border-radius: 999px;
      object-fit: cover;
    }

    .super-apps-label {
      font-size: .76rem;
      letter-spacing: .01em;
      color: #5a5145;
      white-space: nowrap;
    }

    .super-apps-label-full {
      display: none;
    }

    .super-apps-shell:hover .super-apps-label-short,
    .super-apps-shell.is-open .super-apps-label-short,
    .super-apps-toggle:focus-visible .super-apps-label-short {
      display: none;
    }

    .super-apps-shell:hover .super-apps-label-full,
    .super-apps-shell.is-open .super-apps-label-full,
    .super-apps-toggle:focus-visible .super-apps-label-full {
      display: inline;
    }

    .embed-super-menu-shell {
      position: relative;
      flex: 0 0 auto;
      align-self: stretch;
      display: flex;
      align-items: center;
      --embed-super-menu-collapsed-width: 72px;
      --embed-super-menu-expanded-width: min(300px, 66vw);
    }

    .embed-super-menu-shell::after {
      content: "";
      position: absolute;
      left: 0;
      right: 0;
      top: 100%;
      height: 8px;
    }

    .embed-super-menu-toggle {
      height: 100%;
      min-height: 34px;
      width: var(--embed-super-menu-collapsed-width);
      border: 1px solid #ded6ca;
      border-radius: 999px;
      padding: 0 12px 0 3px;
      display: inline-flex;
      align-items: center;
      justify-content: flex-start;
      gap: 8px;
      overflow: hidden;
      white-space: nowrap;
      color: #5f574b;
      background: #fff8;
      backdrop-filter: blur(2px);
      cursor: pointer;
      transition: width .24s cubic-bezier(.2,.7,.2,1), border-color .16s ease, box-shadow .16s ease, background-color .16s ease;
    }

    .embed-super-menu-shell:not(.is-locked-closed):hover .embed-super-menu-toggle,
    .embed-super-menu-shell.is-open .embed-super-menu-toggle,
    .embed-super-menu-shell.is-pinned .embed-super-menu-toggle,
    .embed-super-menu-toggle:focus-visible {
      width: var(--embed-super-menu-expanded-width);
      border-color: #ccbfa8;
      box-shadow: 0 0 0 2px rgba(203, 192, 174, .28);
      background: #fff8;
      outline: none;
    }

    .embed-super-menu-shell.is-pinned .embed-super-menu-toggle {
      border-color: #7ec4f2;
      box-shadow: 0 0 0 2px rgba(120, 195, 245, .55);
    }

    .embed-super-menu-shell.is-pinned:hover .embed-super-menu-toggle,
    .embed-super-menu-shell.is-pinned.is-open .embed-super-menu-toggle,
    .embed-super-menu-shell.is-pinned:focus-within .embed-super-menu-toggle {
      border-color: #7ec4f2;
      box-shadow: 0 0 0 2px rgba(120, 195, 245, .55);
    }

    .embed-super-menu-avatar {
      width: 34px;
      height: 34px;
      flex: 0 0 34px;
      border-radius: 999px;
      object-fit: cover;
      margin-left: -3px;
    }

    .embed-super-menu-icon {
      width: 16px;
      height: 12px;
      flex: 0 0 auto;
      fill: #7b7164;
      display: block;
    }

    .embed-super-menu-shell:not(.is-locked-closed):hover .embed-super-menu-icon,
    .embed-super-menu-shell.is-open .embed-super-menu-icon,
    .embed-super-menu-toggle:focus-visible .embed-super-menu-icon {
      display: none;
    }

    .embed-super-menu-label {
      font-size: .76rem;
      letter-spacing: .01em;
      color: #5a5145;
      white-space: nowrap;
    }

    .embed-super-menu-label-short {
      display: none;
    }

    .embed-super-menu-label-full {
      display: none;
    }

    .embed-super-menu-shell:not(.is-locked-closed):hover .embed-super-menu-label-full,
    .embed-super-menu-shell.is-open .embed-super-menu-label-full,
    .embed-super-menu-shell.is-pinned .embed-super-menu-label-full,
    .embed-super-menu-toggle:focus-visible .embed-super-menu-label-full {
      display: inline;
    }

    .embed-super-menu-menu {
      position: absolute;
      top: calc(100% + 2px);
      left: 0;
      width: var(--embed-super-menu-expanded-width);
      display: grid;
      gap: 6px;
      max-height: 0;
      opacity: 0;
      transform: translateY(-8px);
      overflow: hidden;
      pointer-events: none;
      transition: max-height .24s cubic-bezier(.2,.7,.2,1), opacity .2s ease, transform .2s ease;
      z-index: 2;
      background: transparent;
      box-shadow: none;
      backdrop-filter: none;
    }

    .embed-super-menu-menu.is-closing {
      transition: none;
    }

    .embed-super-menu-menu.is-empty {
      max-height: 0;
      opacity: 0;
      transform: translateY(-8px);
      pointer-events: none;
    }

    .embed-super-menu-shell.is-locked-closed .embed-super-menu-menu {
      max-height: 0;
      opacity: 0;
      transform: translateY(-8px);
      pointer-events: none;
      transition: none;
    }

    .embed-super-menu-shell:not(.is-locked-closed):hover .embed-super-menu-menu,
    .embed-super-menu-shell.is-open .embed-super-menu-menu,
    .embed-super-menu-shell.is-pinned .embed-super-menu-menu {
      max-height: 200px;
      opacity: 1;
      transform: translateY(0);
      pointer-events: auto;
    }

    .embed-super-menu-item {
      width: 100%;
      height: 34px;
      border: 1px solid #ded6ca;
      border-radius: 999px;
      padding: 0 12px;
      text-align: left;
      font-size: .74rem;
      color: #5c5347;
      background: rgba(255, 252, 246, .96);
      cursor: pointer;
      transition: border-color .16s ease, background-color .16s ease, transform .16s ease, opacity .16s ease;
      opacity: .5;
    }

    .embed-super-menu-item.is-active {
      opacity: .9;
      background: rgba(255, 252, 246, .98);
    }

    .embed-super-menu-item:first-child {
      margin-top: 4px;
    }

    .embed-super-menu-item:hover,
    .embed-super-menu-item:focus-visible {
      border-color: #cdbfa8;
      background: rgba(255, 255, 255, .98);
      transform: translateY(-1px);
      outline: none;
    }

    .embed-super-menu-item.is-active:hover,
    .embed-super-menu-item.is-active:focus-visible {
      opacity: .9;
    }

    .embed-menu-shell {
      position: absolute;
      right: var(--map-ui-offset);
      top: var(--embed-menu-top, var(--map-ui-offset));
      z-index: 15;
      display: flex;
      flex-direction: column;
      align-items: flex-end;
      gap: 6px;
      justify-content: flex-end;
      pointer-events: auto;
    }

    .embed-floating-shell {
      position: absolute;
      right: var(--map-ui-offset);
      top: var(--embed-float-top, calc(var(--map-ui-offset) - 6px));
      z-index: 15;
      pointer-events: auto;
      display: flex;
      flex-direction: column;
      gap: 6px;
      width: 288px;
      max-width: calc(100% - (var(--map-ui-offset) * 2));
    }

    .embed-floating-shell.is-left {
      left: var(--map-ui-offset);
      right: auto;
    }

    @keyframes compactEmbedResultsIn {
      from {
        opacity: 0;
        transform: translateY(18px);
      }

      to {
        opacity: 1;
        transform: translateY(0);
      }
    }

    .embed-side-swap-button {
      position: absolute;
      top: 0;
      left: 0;
      transform: translateX(calc(-100% - 8px));
      width: 34px;
      min-width: 34px;
      height: 34px;
      border: 1px solid #ded6ca;
      border-radius: 50%;
      padding: 0;
      display: inline-flex;
      align-items: center;
      justify-content: center;
      color: rgba(95, 87, 75, 0.4);
      background: rgba(255, 255, 255, 0);
      border-color: rgba(222, 214, 202, 0);
      backdrop-filter: blur(2px);
      box-shadow: 0 0 0 0 rgba(203, 192, 174, 0);
      opacity: 0;
      visibility: hidden;
      pointer-events: none;
      transition: opacity .18s ease, color .16s ease, border-color .16s ease, box-shadow .16s ease, background-color .16s ease;
      z-index: 2;
      font-size: 17px;
      line-height: 1;
      font-weight: 700;
      letter-spacing: -.02em;
    }

    .embed-side-swap-button.is-visible {
      opacity: 1;
      visibility: visible;
      pointer-events: auto;
    }

    .embed-side-swap-button:hover,
    .embed-side-swap-button:focus-visible {
      color: #5f574b;
      border-color: #ccbfa8;
      box-shadow: 0 0 0 2px rgba(203, 192, 174, .28);
      background: rgba(255, 255, 255, 1);
      outline: none;
    }

    .embed-wide-floating-shell {
      position: absolute;
      right: var(--map-ui-offset);
      top: var(--embed-float-top, calc(var(--map-ui-offset) - 6px));
      z-index: 13;
      pointer-events: auto;
      display: flex;
      flex-direction: column;
      gap: 6px;
      align-items: flex-end;
      width: min(760px, calc(100% - (var(--map-ui-offset) * 2)));
      max-width: calc(100% - (var(--map-ui-offset) * 2));
    }

    .embed-wide-floating-shell.is-left {
      left: var(--map-ui-offset);
      right: auto;
      align-items: flex-start;
    }

    body.is-embed-menu .embed-floating-shell {
      top: var(--embed-float-top, calc(var(--map-ui-offset) - 6px));
    }

    body.is-embed-menu .embed-wide-floating-shell {
      top: var(--embed-float-top, calc(var(--map-ui-offset) - 6px));
    }

    .embed-legend-shell {
      width: 100%;
      position: relative;
      overflow: visible;
    }

    .embed-legend-shell.embed-first-visible-offset {
      margin-top: 6px;
    }

    .embed-legend-shell.embed-first-visible-legend-gap {
      margin-top: 4px;
    }

    .embed-floating-shell.is-left .embed-side-swap-button {
      left: auto;
      right: 0;
      transform: translateX(calc(100% + 8px));
    }

    .embed-inputs-shell {
      margin-bottom: 4px;
    }

    .embed-population-shell,
    .embed-population-compact-shell,
    .embed-election-compact-shell,
    .embed-crime-shell,
    .embed-crime-category-shell,
    .embed-election-shell,
    .embed-population-trend-shell,
    .embed-population-pie-shell,
    .embed-popular-vote-shell,
    .embed-crime-results-shell,
    .embed-election-results-shell,
    .embed-popular-vote-results-shell {
      margin-bottom: 4px;
    }

    .embed-inputs-card {
      padding: 8px 10px;
      border: 1px solid #e7dfd2;
      border-radius: 10px;
      background: rgba(255,255,255,.72);
      font-size: .7rem;
      color: #6e665b;
      width: 100%;
    }

    .embed-population-card,
    .embed-crime-card,
    .embed-election-card,
    .embed-popular-vote-card {
      padding: 8px 10px;
      border: 1px solid #e7dfd2;
      border-radius: 10px;
      background: rgba(255,255,255,.72);
      font-size: .7rem;
      color: #6e665b;
      width: 100%;
    }

    .embed-population-results-card {
      display: grid;
      gap: 6px;
      margin-top: 6px;
    }

    .embed-population-results-head {
      align-items: center;
      margin: 0;
      padding: 0 0 6px;
      border-bottom: 1px dashed #d9cfbf;
    }

    .embed-population-results-head span {
      color: #4f473d;
      font-weight: 600;
    }

    .embed-population-results-head strong {
      color: #2f2821;
      font-weight: 700;
    }

    .embed-population-results-top,
    .embed-population-results-more {
      font-size: .72rem;
      color: #645c51;
    }

    .embed-population-results-top .row,
    .embed-population-results-more .row {
      display: flex;
      justify-content: space-between;
      gap: 10px;
      margin: 3px 0;
    }

    .embed-population-results-top .row strong,
    .embed-population-results-more .row strong {
      color: #4f473d;
      font-weight: 500;
    }

    .embed-population-results-top .sum {
      margin-top: 0;
      padding-top: 0;
      border-top: 0;
      color: #423a31;
    }

    .embed-population-results-top .sum strong {
      font-weight: 700;
      color: #2f2821;
    }

    .embed-popular-vote-grid {
      display: grid;
      grid-template-columns: 1fr 1fr;
      gap: 7px;
    }

    .embed-popular-vote-grid select {
      width: 100%;
      border: 1px solid #e1d9cc;
      border-radius: 9px;
      padding: 6px 8px;
      background: rgba(255,255,255,.88);
      color: #534d44;
      font-size: .78rem;
    }

    .embed-popular-vote-results-card {
      margin-top: 6px;
    }

    .embed-popular-vote-pie-layout {
      display: grid;
      grid-template-columns: 1fr;
      gap: 12px;
      align-items: stretch;
      margin-top: 7px;
    }

    .embed-popular-vote-pie {
      width: 152px;
      height: 152px;
      border-radius: 50%;
      overflow: hidden;
      background: transparent;
      margin: 0 auto;
    }

    .embed-popular-vote-list {
      max-height: none;
      overflow: visible;
      padding-right: 0;
    }

    .embed-popular-vote-row {
      display: flex;
      flex-direction: column;
      align-items: stretch;
      gap: 2px;
      margin: 4px 0;
      font-size: .72rem;
    }

    .embed-popular-vote-row-head {
      display: flex;
      justify-content: space-between;
      align-items: baseline;
      gap: 8px;
    }

    .embed-popular-vote-name {
      display: inline-flex;
      align-items: center;
      gap: 6px;
      color: #534b40;
      min-width: 0;
    }

    .embed-popular-vote-name strong {
      color: #4f473d;
      font-weight: 500;
    }

    .embed-popular-vote-row strong {
      color: #40382f;
      font-weight: 700;
      white-space: nowrap;
    }

    .embed-popular-vote-pct {
      display: block;
      padding-left: 15px;
      color: #8c8377;
      font-size: .67rem;
      line-height: 1.18;
      text-align: left;
    }

    .embed-popular-vote-count {
      white-space: nowrap;
    }

    .embed-popular-vote-dot {
      width: 9px;
      height: 9px;
      border-radius: 50%;
      background: var(--vote-color, #a89f92);
      border: 1px solid rgba(70, 62, 51, .24);
      box-shadow: 0 0 0 1px rgba(255,255,255,.62);
      flex: 0 0 auto;
    }

    .popular-vote-pie-svg {
      display: block;
      width: 100%;
      height: 100%;
      overflow: visible;
      shape-rendering: geometricPrecision;
    }

    .popular-vote-pie-separator {
      stroke: #ffffff;
      stroke-width: 3.2;
      stroke-linecap: butt;
      vector-effect: non-scaling-stroke;
    }

    .embed-popular-vote-absolute {
      margin-top: 8px;
      display: inline-flex;
      align-items: center;
      gap: 8px;
      color: #5f574c;
      font-size: .72rem;
      cursor: pointer;
    }

    .embed-popular-vote-absolute input {
      margin: 0;
    }

    .embed-popular-vote-meta {
      margin-top: 8px;
      font-size: .68rem;
      color: #857d72;
      line-height: 1.4;
    }

    .embed-population-results-top {
      max-height: 150px;
      overflow-y: auto;
      padding-right: 4px;
    }

    .embed-population-results-more {
      max-height: 132px;
      overflow-y: auto;
      padding-top: 6px;
      padding-right: 4px;
      border-top: 1px dashed #e2d6c6;
    }

    .embed-population-results-more.is-hidden {
      display: none;
    }

    .embed-population-results-empty {
      padding: 6px 0 2px;
      color: #8a8277;
    }

    .embed-results-card {
      padding: 8px 10px;
      border: 1px solid #e7dfd2;
      border-radius: 10px;
      background: rgba(255,255,255,.72);
      font-size: .7rem;
      color: #6e665b;
      width: 100%;
    }

    .embed-results-card .kpis {
      margin-top: 4px;
    }

    .embed-results-shell .embed-menu-kpis,
    .embed-menu-panel .embed-menu-kpis {
      grid-template-columns: minmax(0, 1.35fr) minmax(0, .85fr);
    }

    .embed-tax-results-kpi-total .v {
      font-size: clamp(.74rem, 2.5vw, .85rem);
      line-height: 1.02;
      letter-spacing: -.01em;
      font-variant-numeric: tabular-nums;
    }

    .embed-popular-vote-results-shell .embed-menu-kpis {
      grid-template-columns: repeat(3, minmax(0, 1fr));
    }

    .embed-popular-vote-results-shell {
      display: grid;
      gap: 6px;
      align-items: stretch;
    }

    .embed-popular-vote-results-shell > .embed-results-card,
    .embed-popular-vote-results-shell > .embed-popular-vote-results-card {
      min-width: 0;
    }

    .embed-popular-vote-results-shell > .embed-results-card {
      display: flex;
      flex-direction: column;
      height: 100%;
    }

    .embed-popular-vote-results-shell > .embed-popular-vote-results-card {
      display: flex;
      flex-direction: column;
      gap: 6px;
      height: 100%;
      margin-top: 0;
    }

    .embed-popular-vote-results-meta {
      margin-top: 7px;
      display: grid;
      gap: 4px;
    }

    .embed-popular-vote-results-meta .row {
      display: grid;
      grid-template-columns: max-content minmax(0, 1fr);
      align-items: start;
      column-gap: 10px;
      margin: 0;
    }

    .embed-popular-vote-results-meta .row strong {
      min-width: 0;
      color: #4f473d;
      font-weight: 500;
      text-align: right;
    }

    .embed-popular-vote-results-note {
      margin-top: 4px;
      color: #857d72;
      font-size: .68rem;
      line-height: 1.35;
    }

    .embed-popular-vote-results-card .embed-popular-vote-pie-layout {
      grid-template-columns: 108px minmax(0, 1fr);
      gap: 10px;
      align-items: start;
      margin-top: 0;
    }

    .embed-popular-vote-results-card .embed-popular-vote-pie {
      width: 108px;
      height: auto;
      aspect-ratio: 1 / 1;
      margin: 0;
      justify-self: start;
    }

    .embed-popular-vote-stats {
      display: grid;
      gap: 2px;
      min-width: 0;
      align-content: start;
    }

    .embed-popular-vote-stats .row {
      margin: 0;
      gap: 6px;
      align-items: baseline;
      font-size: .68rem;
      line-height: 1.05;
    }

    .embed-popular-vote-stats .row strong {
      white-space: nowrap;
      text-align: right;
      font-size: .74rem;
      line-height: 1.05;
    }

    .embed-popular-vote-results-card .embed-popular-vote-absolute {
      margin-top: 4px;
      font-size: .69rem;
      line-height: 1.15;
      align-self: flex-start;
    }

    @media (min-width: 561px) {
      .embed-popular-vote-results-shell {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 6px 8px;
      }

      .embed-popular-vote-results-shell > .embed-results-card,
      .embed-popular-vote-results-shell > .embed-popular-vote-results-card {
        height: 100%;
      }

      .embed-popular-vote-results-meta {
        margin-top: auto;
        padding-top: 8px;
      }

      .embed-popular-vote-results-card .embed-popular-vote-pie-layout {
        grid-template-columns: 108px minmax(0, 1fr);
        gap: 12px;
      }

      .embed-popular-vote-results-card .embed-popular-vote-absolute {
        margin-top: 2px;
      }
    }

    .embed-crime-results-shell .kpis.embed-menu-kpis {
      grid-template-columns: repeat(3, minmax(0, 1fr));
      gap: 5px;
    }

    .embed-crime-results-shell .kpi {
      min-width: 0;
      padding: 7px 6px;
    }

    .embed-crime-results-shell .kpi .l {
      font-size: .61rem;
      white-space: nowrap;
      overflow: hidden;
      text-overflow: ellipsis;
      margin-bottom: 2px;
    }

    .embed-crime-results-shell .kpi .v {
      font-size: .78rem;
      line-height: 1.08;
      white-space: nowrap;
      overflow: hidden;
      text-overflow: ellipsis;
    }

    .embed-election-results-shell .embed-menu-kpis {
      grid-template-columns: repeat(3, minmax(0, 1fr));
    }

    .embed-crime-results-meta,
    .embed-crime-results-cases,
    .embed-crime-results-profile,
    .embed-election-results-card {
      display: grid;
      gap: 6px;
    }

    .embed-crime-results-cases,
    .embed-crime-results-profile,
    .embed-election-results-card {
      margin-top: 6px;
    }

    .embed-crime-results-meta .row {
      display: grid;
      grid-template-columns: max-content minmax(0, 1fr);
      align-items: start;
      column-gap: 10px;
      margin: 3px 0;
    }

    .embed-crime-results-meta .kpis.embed-menu-kpis {
      margin-top: 0;
      margin-bottom: 8px;
    }

    .embed-crime-results-meta-rows {
      display: grid;
      gap: 0;
    }

    .embed-crime-gender-row {
      display: flex !important;
      flex-wrap: nowrap;
      align-items: center;
      justify-content: space-between;
      gap: 4px 10px;
      margin: 0 0 2px !important;
    }

    .embed-crime-gender-item {
      color: #4f473d;
      white-space: nowrap;
    }

    .embed-crime-gender-item strong {
      font-weight: 700;
      color: #3f372d;
    }

    .embed-crime-profile-pie-layout {
      display: grid;
      grid-template-columns: 104px minmax(0, 1fr);
      gap: 10px;
      align-items: center;
    }

    .embed-crime-profile-pie-chart {
      width: 104px;
      height: 104px;
      min-width: 104px;
      min-height: 104px;
      max-width: 104px;
      max-height: 104px;
      justify-self: start;
    }

    .embed-crime-profile-pie-chart .election-pie-svg {
      width: 100%;
      height: 100%;
      display: block;
    }

    .embed-crime-profile-pie-list {
      display: grid;
      gap: 4px;
      min-width: 0;
      align-content: start;
    }

    .embed-crime-profile-pie-side-title {
      color: #52493f;
      font-size: .68rem;
      font-weight: 700;
      line-height: 1.15;
      margin-bottom: 2px;
    }

    .crime-canton-list-wrap {
      display: grid;
      gap: 4px;
    }

    .crime-canton-list-title {
      color: #52493f;
      font-size: .68rem;
      font-weight: 700;
      line-height: 1.15;
    }

    .embed-crime-profile-pie-row {
      display: grid;
      grid-template-columns: minmax(0, 1fr) max-content;
      gap: 10px;
      align-items: center;
    }

    .embed-crime-profile-pie-row .party-name {
      min-width: 0;
      display: inline-flex;
      align-items: center;
      gap: 6px;
    }

    .embed-crime-profile-pie-row strong {
      color: #3f372d;
      font-weight: 700;
      white-space: nowrap;
    }

    .embed-crime-results-disclosures {
      margin-top: 6px;
      padding-top: 6px;
      border-top: 1px dashed #d9cfbf;
      display: grid;
      grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
      gap: 10px;
      align-items: center;
    }

    .embed-crime-disclosure-btn {
      display: inline-flex;
      align-items: center;
      justify-content: flex-start;
      gap: 6px;
      min-width: 0;
      padding: 4px 0;
      border: none;
      background: none;
      color: #6a6257;
      font-size: .72rem;
      font-weight: 600;
      cursor: pointer;
      text-align: left;
      transition: color .2s ease;
    }

    .embed-crime-disclosure-btn.is-right {
      justify-content: flex-end;
      text-align: right;
    }

    .embed-crime-disclosure-btn svg {
      flex: 0 0 auto;
      transition: transform .2s ease;
    }

    .embed-crime-disclosure-btn.is-right .embed-crime-disclosure-label {
      order: 1;
    }

    .embed-crime-disclosure-btn.is-right svg {
      order: 2;
    }

    .embed-crime-disclosure-btn:hover {
      color: #3f3730;
    }

    .embed-crime-disclosure-btn:focus-visible {
      outline: 2px solid #c9b7a1;
      outline-offset: 2px;
      border-radius: 6px;
    }

    .embed-crime-disclosure-btn.is-open svg {
      transform: rotate(180deg);
    }

    .embed-crime-results-detail-stack {
      display: grid;
      gap: 6px;
      margin-top: 6px;
    }

    .embed-crime-results-detail-stack.is-hidden,
    .embed-crime-results-detail-shell.is-hidden {
      display: none;
    }

    .embed-crime-results-detail-shell .embed-crime-results-cases,
    .embed-crime-results-detail-shell .embed-crime-results-profile {
      margin-top: 0;
    }

    .embed-crime-results-wide-shell {
      display: none;
    }

    .embed-crime-results-wide-card {
      display: grid;
      grid-template-rows: minmax(0, 1fr);
      gap: 0;
      min-width: 0;
      overflow: hidden;
      padding: 8px 10px;
    }

    .embed-crime-compact-carousel {
      overflow: hidden;
      touch-action: pan-y;
      user-select: none;
      -webkit-user-select: none;
      min-height: 0;
      height: 100%;
    }

    .embed-crime-compact-track {
      display: flex;
      width: 200%;
      min-height: 0;
      height: 100%;
      will-change: transform;
      transition: transform .28s cubic-bezier(.22,.89,.32,1.08);
    }

    .embed-crime-compact-panel {
      flex: 0 0 50%;
      min-width: 0;
      min-height: 0;
      height: 100%;
      display: grid;
      grid-template-rows: auto minmax(0, 1fr);
      gap: 8px;
    }

    .embed-crime-compact-panel-head {
      position: relative;
      min-height: 30px;
      display: flex;
      align-items: center;
      justify-content: center;
      padding: 0 28px;
      cursor: pointer;
    }

    .embed-crime-compact-panel-title-block {
      min-width: 0;
      display: grid;
      gap: 1px;
      justify-items: center;
      text-align: center;
    }

    .embed-crime-compact-panel-title {
      color: #3f372d;
      font-size: .73rem;
      font-weight: 700;
      line-height: 1.15;
      letter-spacing: .01em;
    }

    .embed-crime-compact-nav {
      position: absolute;
      top: 50%;
      transform: translateY(-50%);
      z-index: 2;
      width: 24px;
      height: 24px;
      border: 1px solid #d8cfbf;
      border-radius: 999px;
      padding: 0;
      display: inline-flex;
      align-items: center;
      justify-content: center;
      background: rgba(255,255,255,.8);
      color: #554d42;
      font-size: .85rem;
      line-height: 1;
      cursor: pointer;
      transition: border-color .16s ease, background-color .16s ease, color .16s ease;
    }

    .embed-crime-compact-nav:hover,
    .embed-crime-compact-nav:focus-visible {
      border-color: #cbbca4;
      background: #f4eadb;
      color: #3f372d;
      outline: none;
    }

    #embedCrimeResultsWidePrev {
      left: 0;
    }

    #embedCrimeResultsWideNext {
      right: 2px;
    }

    .embed-crime-compact-nav.is-hidden {
      display: none;
    }

    .embed-crime-compact-panel-body {
      min-height: 0;
      overflow: auto;
      padding-right: 2px;
    }

    .embed-crime-results-wide-content {
      min-height: 0;
    }

    .embed-crime-compact-panel-body .embed-crime-results-cases,
    .embed-crime-compact-panel-body .embed-crime-results-profile {
      margin-top: 0;
    }

    .embed-crime-compact-panel-body .embed-crime-results-wide-content.panel-breakdown {
      margin-top: 0;
      padding: 0;
      border: none;
      border-radius: 0;
      background: transparent;
      box-shadow: none;
    }

    .embed-crime-compact-panel[data-embed-crime-wide-panel="profile"] {
      gap: 6px;
    }

    .embed-crime-compact-panel[data-embed-crime-wide-panel="profile"] .embed-crime-compact-panel-head {
      min-height: 26px;
    }

    .embed-crime-compact-panel[data-embed-crime-wide-panel="profile"] .embed-crime-compact-panel-body {
      overflow: hidden;
      padding-right: 0;
    }

    .embed-crime-compact-panel[data-embed-crime-wide-panel="profile"] .embed-crime-results-wide-content {
      height: 100%;
      overflow: hidden;
    }

    .embed-crime-compact-panel[data-embed-crime-wide-panel="profile"] .embed-crime-results-profile {
      gap: 4px;
    }

    .embed-crime-compact-panel[data-embed-crime-wide-panel="profile"] .embed-crime-gender-row {
      gap: 2px 8px;
      margin: 0 !important;
      font-size: .7rem;
      line-height: 1.05;
    }

    .embed-crime-compact-panel[data-embed-crime-wide-panel="profile"] .embed-crime-profile-pie-layout {
      grid-template-columns: 74px minmax(0, 1fr);
      gap: 8px;
      align-items: start;
      margin-top: 0 !important;
    }

    .embed-crime-compact-panel[data-embed-crime-wide-panel="profile"] .embed-crime-profile-pie-chart {
      width: 74px;
      height: 74px;
      min-width: 74px;
      min-height: 74px;
      max-width: 74px;
      max-height: 74px;
    }

    .embed-crime-compact-panel[data-embed-crime-wide-panel="profile"] .embed-crime-profile-pie-side-title {
      font-size: .64rem;
      margin-bottom: 1px;
    }

    .embed-crime-compact-panel[data-embed-crime-wide-panel="profile"] .embed-crime-profile-pie-list {
      gap: 2px;
    }

    .embed-crime-compact-panel[data-embed-crime-wide-panel="profile"] .embed-crime-profile-pie-row {
      gap: 6px;
    }

    .embed-crime-compact-panel[data-embed-crime-wide-panel="profile"] .embed-crime-profile-pie-row .party-name {
      overflow: hidden;
      white-space: nowrap;
      text-overflow: ellipsis;
    }

    .embed-crime-results-meta .row span {
      white-space: nowrap;
    }

    .embed-crime-results-meta .row strong {
      min-width: 0;
      justify-self: end;
      text-align: right;
      color: #4f473d;
      font-weight: 500;
    }

    .embed-results-details-shell,
    .embed-results-wide-details-shell,
    .embed-menu-details-shell {
      width: 100%;
      max-height: 0;
      opacity: 0;
      transform: translateY(-6px);
      overflow: hidden;
      pointer-events: none;
      transition: max-height .25s ease, opacity .2s ease, transform .2s ease;
    }

    .embed-results-details-shell {
      margin-top: -6px;
    }

    .embed-results-details-shell.is-open,
    .embed-results-wide-details-shell.is-open,
    .embed-menu-details-shell.is-open {
      max-height: 900px;
      opacity: 1;
      transform: translateY(0);
      pointer-events: auto;
    }

    .embed-results-details-shell.is-open {
      margin-top: 0;
    }

    .embed-results-wide-details-shell {
      display: none;
      margin-top: 0;
      transform: translateY(10px);
    }

    .embed-menu-details-shell.is-open {
      margin-top: 6px;
    }

    .embed-results-wide-menu-card {
      display: none;
    }

    .map-shell.is-compact-embed #embedResultsDetailsShell:not(.is-tax-split-view) .embed-results-details-card {
      padding-top: 6px;
      padding-bottom: 6px;
    }

    .map-shell.is-compact-embed #embedResultsDetailsShell:not(.is-tax-split-view) .embed-details-rows .panel-opt {
      margin-top: 0;
      padding: 6px 0;
      border: 0;
      border-radius: 0;
      background: transparent;
      box-shadow: none;
    }

    .map-shell.is-compact-embed #embedResultsDetailsShell:not(.is-tax-split-view) .embed-details-rows .panel-opt + .panel-opt {
      border-top: 1px dashed #d9cfbf;
    }

    .map-shell.is-compact-embed #embedResultsDetailsShell:not(.is-tax-split-view) .embed-details-rows .panel-opt summary {
      display: flex;
      align-items: center;
      justify-content: space-between;
      gap: 10px;
      font-size: .74rem;
      color: #645c51;
      list-style: none;
    }

    .map-shell.is-compact-embed #embedResultsDetailsShell:not(.is-tax-split-view) .embed-details-rows .panel-opt summary::before {
      content: "";
      width: 7px;
      height: 7px;
      flex: 0 0 7px;
      border-right: 1.5px solid #8f7d61;
      border-bottom: 1.5px solid #8f7d61;
      transform: rotate(-45deg);
      transform-origin: 50% 50%;
      transition: transform .18s ease;
      margin-right: 2px;
      opacity: .9;
    }

    .map-shell.is-compact-embed #embedResultsDetailsShell:not(.is-tax-split-view) .embed-details-rows .panel-opt[open] summary::before {
      transform: rotate(45deg);
    }

    .map-shell.is-compact-embed #embedResultsDetailsShell:not(.is-tax-split-view) .embed-details-rows .panel-opt summary::-webkit-details-marker {
      display: none;
    }

    .map-shell.is-compact-embed #embedResultsDetailsShell:not(.is-tax-split-view) .embed-details-rows .panel-opt summary strong {
      color: #4f473d;
      font-weight: 600;
      margin-left: auto;
      text-align: right;
    }

    .map-shell.is-compact-embed #embedResultsDetailsShell:not(.is-tax-split-view) .embed-details-rows .panel-opt .panel-breakdown {
      margin-top: 8px !important;
      padding: 8px 0 2px;
    }

    .embed-tax-wide-menu-list {
      display: grid;
      gap: 6px;
    }

    .embed-tax-wide-menu-empty {
      color: #837b70;
      font-size: .72rem;
      padding: 4px 0;
    }

    .embed-tax-wide-menu-row {
      display: grid;
      grid-template-columns: minmax(0, 1fr) max-content max-content;
      align-items: center;
      gap: 10px;
      width: 100%;
      padding: 6px 0;
      border: none;
      background: none;
      color: #5f574c;
      cursor: pointer;
      text-align: left;
    }

    .embed-tax-wide-menu-row + .embed-tax-wide-menu-row {
      border-top: 1px dashed #ddd2c2;
    }

    .embed-tax-wide-menu-row svg {
      color: #7a7267;
      transition: transform .22s ease, color .2s ease;
      flex: 0 0 auto;
    }

    .embed-tax-wide-menu-row.is-open svg {
      transform: rotate(180deg);
      color: #433a31;
    }

    .embed-tax-wide-menu-row:hover .embed-tax-wide-menu-label,
    .embed-tax-wide-menu-row:hover .embed-tax-wide-menu-value {
      color: #3f372d;
    }

    .embed-tax-wide-menu-row:focus-visible {
      outline: 2px solid #c9b7a1;
      outline-offset: 2px;
      border-radius: 8px;
    }

    .embed-tax-wide-menu-label {
      min-width: 0;
      font-size: .74rem;
      color: inherit;
    }

    .embed-tax-wide-menu-value {
      color: #433a31;
      font-size: .78rem;
      font-weight: 700;
      white-space: nowrap;
    }

    .embed-tax-wide-detail-head {
      display: flex;
      align-items: center;
      justify-content: space-between;
      gap: 12px;
      margin-bottom: 8px;
    }

    .embed-tax-wide-detail-title {
      font-size: .8rem;
      font-weight: 700;
      color: #3f372d;
    }

    .embed-tax-wide-detail-body {
      display: grid;
      gap: 8px;
    }

    .embed-tax-wide-detail-block {
      display: grid;
      gap: 6px;
    }

    .embed-tax-wide-detail-subhead {
      font-size: .7rem;
      font-weight: 700;
      letter-spacing: .01em;
      color: #6b6257;
    }

    .embed-tax-wide-detail-body .panel-breakdown {
      margin-top: 0;
    }

    .panel-breakdown .embed-disclosure-row,
    .embed-results-rows .embed-disclosure-row {
      display: block;
    }

    .embed-results-rows {
      margin-top: 8px;
      font-size: .72rem;
      color: #645c51;
    }

    .embed-results-rows:empty {
      display: none;
    }

    .embed-results-rows .row {
      display: flex;
      justify-content: space-between;
      gap: 10px;
      margin: 3px 0;
    }

    .embed-results-rows .row strong {
      color: #4f473d;
      font-weight: 500;
    }

    .embed-results-rows .sum {
      margin-top: 6px;
      padding-top: 6px;
      border-top: 1px dashed #d9cfbf;
      color: #423a31;
    }

    .embed-results-rows .sum strong {
      font-weight: 700;
      color: #2f2821;
    }

    .embed-details-rows {
      margin-top: 8px;
      font-size: .72rem;
      color: #645c51;
    }

    .embed-details-rows:empty {
      display: none;
    }

    .embed-details-rows .row {
      display: flex;
      justify-content: space-between;
      gap: 10px;
      margin: 3px 0;
    }

    .embed-details-rows .row strong {
      color: #4f473d;
      font-weight: 500;
    }

    .embed-details-rows .sum {
      margin-top: 6px;
      padding-top: 6px;
      border-top: 1px dashed #d9cfbf;
      color: #423a31;
    }

    .embed-details-rows .sum strong {
      font-weight: 700;
      color: #2f2821;
    }

    .embed-disclosure-btn {
      display: flex;
      align-items: center;
      gap: 6px;
      padding: 4px 0;
      width: 100%;
      border: none;
      background: none;
      color: #6a6257;
      font-size: .72rem;
      font-weight: 600;
      cursor: pointer;
      transition: color .2s ease;
      text-align: left;
      justify-content: flex-start;
    }

    .embed-disclosure-btn:hover {
      color: #3f3730;
    }

    .embed-disclosure-btn:focus-visible {
      outline: 2px solid #c9b7a1;
      outline-offset: 2px;
      border-radius: 6px;
    }

    .embed-disclosure-btn svg {
      transition: transform .2s ease;
    }

    .embed-disclosure-btn.is-open svg {
      transform: rotate(180deg);
    }

    .embed-inputs-grid {
      display: grid;
      grid-template-columns: repeat(2, minmax(0, 1fr));
      gap: 8px;
    }

    .embed-inputs-grid .panel-opt {
      grid-column: 1 / -1;
    }

    .embed-population-grid {
      display: grid;
      grid-template-columns: repeat(2, minmax(0, 1fr));
      gap: 8px;
    }

    .embed-inputs-card label {
      display: block;
      font-size: .72rem;
      color: #6f675c;
      margin-bottom: 3px;
    }

    .embed-population-card label {
      display: block;
      font-size: .72rem;
      color: #6f675c;
      margin-bottom: 3px;
    }

    .embed-crime-card label {
      display: block;
      font-size: .72rem;
      color: #6f675c;
      margin-bottom: 3px;
    }

    .embed-inputs-card input {
      width: 100%;
      border: 1px solid #e1d9cc;
      border-radius: 9px;
      padding: 6px 8px;
      background: rgba(255,255,255,.9);
      color: #534d44;
      font-size: .77rem;
    }

    .embed-population-card input {
      width: 100%;
      border: 1px solid #e1d9cc;
      border-radius: 9px;
      padding: 6px 8px;
      background: rgba(255,255,255,.9);
      color: #534d44;
      font-size: .77rem;
    }

    .embed-crime-card input {
      width: 100%;
      border: 1px solid #e1d9cc;
      border-radius: 9px;
      padding: 6px 8px;
      background: rgba(255,255,255,.9);
      color: #534d44;
      font-size: .77rem;
    }

    .embed-inputs-card select {
      width: 140px;
      max-width: 100%;
      height: 26px;
      justify-self: start;
      border: 1px solid #e1d9cc;
      border-radius: 9px;
      padding: 2px 8px;
      background: rgba(255,255,255,.9);
      color: #534d44;
      font-size: .72rem;
      white-space: nowrap;
      overflow: hidden;
      text-overflow: ellipsis;
      box-sizing: border-box;
    }

    .embed-population-card select {
      width: 100%;
      min-width: 0;
      border: 1px solid #e1d9cc;
      border-radius: 9px;
      padding: 6px 8px;
      background: rgba(255,255,255,.9);
      color: #534d44;
      font-size: .74rem;
      box-sizing: border-box;
    }

    .embed-crime-card select {
      width: 100%;
      min-width: 0;
      border: 1px solid #e1d9cc;
      border-radius: 9px;
      padding: 6px 8px;
      background: rgba(255,255,255,.9);
      color: #534d44;
      font-size: .74rem;
      box-sizing: border-box;
    }

    .embed-crime-grid {
      display: grid;
      grid-template-columns: repeat(2, minmax(0, 1fr));
      gap: 8px;
    }

    .embed-crime-grid-single {
      grid-template-columns: 1fr;
    }

    .embed-crime-subpoint-tools {
      margin-top: 8px;
      display: flex;
      align-items: center;
      gap: 8px;
      flex-wrap: wrap;
    }

    .embed-crime-subpoint-picker {
      margin-top: 6px;
      display: grid;
      gap: 4px;
      border: 1px solid #e4dbcd;
      border-radius: 10px;
      padding: 6px 7px;
      max-height: 170px;
      overflow: auto;
      background: rgba(255,255,255,.62);
    }

    .embed-crime-subpoint-option {
      display: flex;
      align-items: center;
      gap: 6px;
      font-size: .68rem;
      line-height: 1.2;
      color: #5f574c;
      user-select: none;
    }

    .embed-crime-subpoint-option input {
      width: 13px;
      height: 13px;
      margin: 0;
      flex: 0 0 auto;
    }

    .embed-population-mode-row {
      margin-top: 8px;
      display: flex;
      align-items: center;
      gap: 6px;
      flex-wrap: wrap;
    }

    .embed-population-pill {
      border: 1px solid #d8cfbf;
      border-radius: 999px;
      padding: 4px 10px;
      font-size: .7rem;
      background: rgba(255,255,255,.72);
      color: #5b5348;
      cursor: pointer;
      transition: border-color .16s ease, background-color .16s ease, color .16s ease;
    }

    .embed-population-context-pill {
      flex: 0 0 12ch;
      width: 12ch;
      min-width: 12ch;
      max-width: 12ch;
      box-sizing: border-box;
      overflow: hidden;
      text-overflow: ellipsis;
      white-space: nowrap;
      text-align: center;
    }

    #embedPopulationModeCanton {
      flex: 0 0 7ch;
      width: 7ch;
      min-width: 7ch;
      max-width: 7ch;
      box-sizing: border-box;
      text-align: center;
    }

    .embed-population-pill.is-active {
      background: #efe5d6;
      border-color: #cbbca4;
      color: #433b31;
      font-weight: 600;
    }

    .embed-population-reset {
      margin-left: auto;
      width: 24px;
      height: 24px;
      min-width: 24px;
      padding: 0;
      border: 1px solid #d8cfbf;
      border-radius: 999px;
      background: rgba(255,255,255,.72);
      color: #5b5348;
      font-size: .95rem;
      line-height: 1;
      display: inline-flex;
      align-items: center;
      justify-content: center;
      text-align: center;
      transition: border-color .16s ease, background-color .16s ease, color .16s ease;
    }

    .embed-population-reset:hover,
    .embed-population-reset:focus-visible {
      border-color: #cbbca4;
      background: #efe5d6;
      color: #433b31;
      outline: none;
    }

    .embed-population-search,
    .embed-population-preset {
      margin-top: 6px;
    }

    .embed-population-search input,
    .embed-population-preset select {
      width: 100%;
    }

    .embed-population-picker {
      margin-top: 6px;
      display: grid;
      gap: 4px;
      border: 1px solid #e4dbcd;
      border-radius: 10px;
      padding: 6px 7px;
      max-height: 170px;
      overflow: auto;
      background: rgba(255,255,255,.62);
    }

    .embed-population-country-option {
      display: flex;
      align-items: center;
      gap: 6px;
      font-size: .68rem;
      line-height: 1.2;
      color: #5f574c;
      user-select: none;
    }

    .embed-population-country-option input {
      width: 13px;
      height: 13px;
      margin: 0;
      flex: 0 0 auto;
    }

    .embed-population-empty {
      padding: 6px 2px;
      font-size: .68rem;
      color: #6a6155;
    }

    .embed-population-compact-shell {
      position: relative;
      width: 100%;
      --embed-pop-compact-card-height: 184px;
      --embed-pop-compact-drawer-height: 250px;
      --embed-pop-country-visible-rows: 4;
      --embed-pop-country-row-height: 27px;
      --embed-pop-country-row-gap: 4px;
      --embed-pop-country-list-height: calc(
        (var(--embed-pop-country-visible-rows) * var(--embed-pop-country-row-height))
        + ((var(--embed-pop-country-visible-rows) - 1) * var(--embed-pop-country-row-gap))
        + 16px
        
      );
    }

    .embed-population-compact-drawer {
      position: absolute;
      left: 0;
      right: 0;
      bottom: calc(100% + 8px);
      display: grid;
      grid-template-rows: auto auto auto minmax(0, 1fr);
      gap: 10px;
      height: var(--embed-pop-compact-drawer-height);
      padding: 12px;
      border: 1px solid rgba(231, 223, 210, .92);
      border-radius: 14px;
      overflow: hidden;
      background: linear-gradient(180deg, rgba(255,255,255,.82), rgba(248, 241, 230, .76));
      box-shadow: 0 8px 18px rgba(92, 77, 58, .08);
      backdrop-filter: blur(6px);
      opacity: 0;
      visibility: hidden;
      transform: translateY(18px) scale(.98);
      transform-origin: bottom center;
      pointer-events: none;
      transition: opacity .22s ease, transform .26s cubic-bezier(.22,.89,.32,1.08);
      z-index: 3;
    }

    .embed-population-compact-drawer.is-open {
      opacity: 1;
      visibility: visible;
      transform: translateY(0) scale(1);
      pointer-events: auto;
    }

    .embed-population-compact-drawer-head {
      display: flex;
      align-items: flex-start;
      justify-content: space-between;
      gap: 10px;
      flex-wrap: wrap;
    }

    .embed-population-compact-drawer-title {
      font-size: .78rem;
      font-weight: 700;
      color: #3d352c;
      letter-spacing: .01em;
    }

    .embed-population-compact-drawer-actions {
      display: flex;
      align-items: center;
      gap: 6px;
      margin-left: auto;
      flex-wrap: wrap;
      justify-content: flex-end;
    }

    .embed-population-compact-drawer-reset,
    .embed-population-compact-drawer-close,
    .embed-population-compact-drawer-apply {
      border: 1px solid #d8cfbf;
      border-radius: 999px;
      min-height: 30px;
      padding: 6px 12px;
      font-size: .69rem;
      font-weight: 600;
      background: linear-gradient(180deg, rgba(255,255,255,.9), rgba(249, 243, 233, .84));
      color: #554d42;
      cursor: pointer;
      transition: border-color .16s ease, background-color .16s ease, color .16s ease;
    }

    .embed-population-compact-drawer-reset {
      color: #62594e;
    }

    .embed-population-compact-drawer-apply {
      background: #efe5d6;
      border-color: #cbbca4;
      color: #433b31;
      font-weight: 700;
    }

    .embed-population-compact-drawer-reset:hover,
    .embed-population-compact-drawer-reset:focus-visible,
    .embed-population-compact-drawer-close:hover,
    .embed-population-compact-drawer-close:focus-visible,
    .embed-population-compact-drawer-apply:hover,
    .embed-population-compact-drawer-apply:focus-visible,
    .embed-population-compact-nav:hover,
    .embed-population-compact-nav:focus-visible {
      border-color: #cbbca4;
      background: #f4eadb;
      color: #3f372d;
      outline: none;
    }

    .embed-population-compact-drawer-tools {
      display: grid;
      grid-template-columns: minmax(0, 1.25fr) minmax(0, .95fr);
      gap: 8px;
      align-items: end;
      min-width: 0;
    }

    .embed-population-compact-drawer .embed-population-search,
    .embed-population-compact-drawer .embed-population-preset {
      margin-top: 0;
      display: grid;
      gap: 4px;
      min-width: 0;
    }

    .embed-population-compact-drawer .embed-population-search input,
    .embed-population-compact-drawer .embed-population-preset select {
      width: 100%;
      min-width: 0;
      min-height: 34px;
      border: 1px solid #ddd2c3;
      border-radius: 10px;
      padding: 0 12px;
      background: linear-gradient(180deg, rgba(255,255,255,.94), rgba(247, 239, 228, .88));
      color: #4d453b;
      font-size: .72rem;
      font-weight: 500;
      box-sizing: border-box;
      box-shadow: inset 0 1px 0 rgba(255,255,255,.66);
    }

    .embed-population-compact-drawer .embed-population-search input:focus-visible,
    .embed-population-compact-drawer .embed-population-preset select:focus-visible {
      border-color: #cbbca4;
      box-shadow: 0 0 0 2px rgba(203, 188, 164, .2), inset 0 1px 0 rgba(255,255,255,.66);
      outline: none;
    }

    .embed-population-compact-drawer .embed-population-preset select {
      appearance: none;
      -webkit-appearance: none;
      padding-right: 34px;
      background-image:
        linear-gradient(45deg, transparent 50%, #8c8277 50%),
        linear-gradient(135deg, #8c8277 50%, transparent 50%),
        linear-gradient(180deg, rgba(255,255,255,.94), rgba(247, 239, 228, .88));
      background-position:
        calc(100% - 17px) calc(50% - 2px),
        calc(100% - 12px) calc(50% - 2px),
        0 0;
      background-size: 5px 5px, 5px 5px, 100% 100%;
      background-repeat: no-repeat;
    }

    .embed-population-compact-drawer .embed-population-picker {
      margin-top: 0;
      min-height: var(--embed-pop-country-list-height);
      max-height: var(--embed-pop-country-list-height);
      padding: 8px;
      gap: var(--embed-pop-country-row-gap);
      align-content: start;
      overscroll-behavior: contain;
    }

    .embed-population-compact-drawer .embed-population-empty {
      min-height: calc(var(--embed-pop-country-list-height) - 16px);
      display: flex;
      align-items: center;
      justify-content: center;
      text-align: center;
    }

    .embed-population-compact-narrow {
      display: block;
    }

    .embed-population-compact-wide {
      display: none;
      grid-template-columns: repeat(2, minmax(0, 1fr));
      gap: 8px;
    }

    .embed-population-compact-card,
    .embed-population-compact-wide-card {
      display: grid;
      grid-template-rows: auto minmax(0, 1fr);
      gap: 8px;
      align-content: stretch;
      min-width: 0;
      min-height: var(--embed-pop-compact-card-height);
      height: var(--embed-pop-compact-card-height);
      box-sizing: border-box;
      overflow: hidden;
      padding: 10px 11px;
      border-radius: 14px;
      background: linear-gradient(180deg, rgba(255,255,255,.82), rgba(248, 241, 230, .76));
      box-shadow: 0 8px 18px rgba(92, 77, 58, .08);
    }

    .embed-population-compact-wide-card {
      gap: 8px;
    }

    .embed-population-compact-mode-row {
      margin-top: 0;
      margin-bottom: 0;
      display: grid;
      grid-template-columns: repeat(3, minmax(0, 1fr));
      gap: 6px;
    }

    .embed-population-compact-mode-btn {
      min-width: 0;
      padding: 6px 8px;
      text-align: center;
    }

    .embed-population-compact-carousel {
      overflow: hidden;
      touch-action: pan-y;
      user-select: none;
      -webkit-user-select: none;
      min-height: 0;
      height: 100%;
    }

    .embed-population-compact-track {
      display: flex;
      width: 200%;
      min-height: 0;
      height: 100%;
      will-change: transform;
      transition: transform .28s cubic-bezier(.22,.89,.32,1.08);
    }

    .embed-population-compact-panel {
      flex: 0 0 50%;
      min-width: 0;
      display: grid;
      grid-template-rows: auto minmax(0, 1fr);
      gap: 8px;
      min-height: 0;
      height: 100%;
    }

    .embed-population-compact-panel-head {
      position: relative;
      min-height: 30px;
      display: flex;
      align-items: center;
      justify-content: center;
      padding: 0 28px;
      cursor: pointer;
    }

    .embed-population-compact-panel-head-static {
      min-height: auto;
      justify-content: flex-start;
      padding: 0;
      cursor: default;
    }

    .embed-population-compact-panel-head-static .embed-population-compact-panel-title-block {
      justify-items: start;
      text-align: left;
    }

    .embed-population-compact-panel-title-block {
      min-width: 0;
      display: grid;
      gap: 1px;
      justify-items: center;
      text-align: center;
    }

    .embed-population-compact-panel-title-block.is-results {
      display: inline-flex;
      align-items: center;
      justify-content: center;
      gap: 6px;
      max-width: 100%;
    }

    .embed-population-compact-panel-title {
      color: #3f372d;
      font-size: .73rem;
      font-weight: 700;
      line-height: 1.15;
      letter-spacing: .01em;
    }

    .embed-population-compact-panel-meta {
      display: block;
      max-width: 100%;
      overflow: hidden;
      text-overflow: ellipsis;
      white-space: nowrap;
      color: #7b7267;
      font-size: .65rem;
      font-weight: 600;
      line-height: 1.1;
    }

    .embed-population-compact-panel-title-block.is-results .embed-population-compact-panel-meta {
      max-width: none;
      flex: 0 0 auto;
    }

    .embed-population-compact-nav {
      position: absolute;
      top: 50%;
      transform: translateY(-50%);
      z-index: 2;
      width: 24px;
      height: 24px;
      border: 1px solid #d8cfbf;
      border-radius: 999px;
      padding: 0;
      display: inline-flex;
      align-items: center;
      justify-content: center;
      background: rgba(255,255,255,.8);
      color: #554d42;
      font-size: .85rem;
      line-height: 1;
      cursor: pointer;
      transition: border-color .16s ease, background-color .16s ease, color .16s ease;
    }

    #embedPopulationCompactPrev {
      left: 0;
    }

    #embedPopulationCompactNext {
      right: 0;
    }

    .embed-population-compact-pie-layout {
      grid-template-columns: 84px minmax(0, 1fr);
      gap: 8px;
      align-items: center;
      min-height: 0;
      height: 100%;
    }

    .embed-population-compact-shell .embed-population-pie-chart {
      width: 84px;
      height: 84px;
      justify-self: center;
    }

    .embed-population-compact-shell .embed-population-pie-hole {
      width: 44px;
      height: 44px;
    }

    .embed-population-compact-shell .embed-population-pie-hole strong {
      font-size: .58rem;
    }

    .embed-population-compact-shell .embed-population-pie-hole span {
      font-size: .52rem;
    }

    .embed-population-compact-shell .embed-population-pie-legend {
      gap: 3px;
      font-size: .66rem;
      min-height: 0;
    }

    .embed-population-compact-shell .embed-population-pie-row {
      gap: 5px;
    }

    .embed-population-compact-results-top {
      max-height: none;
      min-height: 0;
      height: 100%;
      margin-top: 0;
      padding-right: 1px;
      overflow: auto;
      overscroll-behavior: contain;
    }

    .embed-population-compact-wide .embed-population-compact-results-top {
      max-height: none;
    }

    .embed-population-compact-results-top .row {
      margin: 0;
      min-height: 22px;
      align-items: center;
    }

    .embed-population-compact-results-top .sum {
      margin-bottom: 4px;
      padding-bottom: 4px;
      border-bottom: 1px dashed #d8cebf;
    }

    .embed-population-compact-drawer .embed-population-country-option {
      min-height: var(--embed-pop-country-row-height);
      padding: 4px 7px;
      border: 1px solid transparent;
      border-radius: 9px;
      background: rgba(255,255,255,.28);
      transition: border-color .16s ease, background-color .16s ease, color .16s ease;
    }

    .embed-population-compact-drawer .embed-population-country-option:hover,
    .embed-population-compact-drawer .embed-population-country-option:focus-within {
      border-color: #d9ccba;
      background: rgba(255,255,255,.8);
      color: #4c4338;
    }

    .embed-population-compact-drawer .embed-population-country-option.is-selected {
      border-color: #d9c9b0;
      background: rgba(239, 229, 214, .74);
      color: #433b31;
    }

    .embed-population-compact-drawer .embed-population-country-divider {
      margin: 3px 2px;
      border-top: 1px dashed rgba(174, 153, 126, .82);
    }

    @media (max-width: 560px) {
      .embed-population-compact-drawer-title {
        display: none;
      }

      .embed-population-compact-drawer-head {
        display: block;
      }

      .embed-population-compact-drawer-actions {
        margin-left: 0;
        width: 100%;
        display: grid;
        grid-template-columns: repeat(3, minmax(0, 1fr));
      }

      .embed-population-compact-drawer-actions > button {
        width: 100%;
        padding-inline: 6px;
        justify-content: center;
      }

      .embed-population-compact-drawer-tools {
        grid-template-columns: minmax(0, 1.18fr) minmax(0, .92fr);
        gap: 6px;
      }
    }

    @media (min-width: 561px) {
      .embed-population-compact-shell {
        --embed-pop-compact-card-height: 192px;
        --embed-pop-compact-drawer-height: 250px;
      }
    }

    @media (min-width: 561px) {
      .embed-population-compact-narrow {
        display: none;
      }

      .embed-population-compact-wide {
        display: grid;
      }
    }

    @media (prefers-reduced-motion: reduce) {
      .embed-population-compact-drawer,
      .embed-population-compact-track {
        transition: none !important;
      }
    }

    .embed-election-compact-shell {
      width: 100%;
      --embed-election-compact-wide-card-height: 140px;
    }

    .embed-election-compact-layout {
      display: grid;
      gap: 8px;
    }

    .embed-election-compact-narrow {
      display: grid;
    }

    .embed-election-compact-wide {
      display: none;
      grid-template-columns: repeat(2, minmax(0, 1fr));
      gap: 8px;
      align-items: stretch;
    }

    .embed-election-compact-card {
      display: grid;
      gap: 8px;
      padding: 10px 11px;
      align-content: start;
      border-radius: 14px;
      background: linear-gradient(180deg, rgba(255,255,255,.82), rgba(248, 241, 230, .76));
      box-shadow: 0 8px 18px rgba(92, 77, 58, .08);
    }

    .embed-election-compact-wide-card {
      display: grid;
      gap: 8px;
      align-content: start;
      min-width: 0;
      min-height: var(--embed-election-compact-wide-card-height);
      height: var(--embed-election-compact-wide-card-height);
      max-height: var(--embed-election-compact-wide-card-height);
      box-sizing: border-box;
      overflow: hidden;
      padding: 10px;
      border-radius: 14px;
      background: linear-gradient(180deg, rgba(255,255,255,.82), rgba(248, 241, 230, .76));
      box-shadow: 0 8px 18px rgba(92, 77, 58, .08);
    }

    .embed-election-compact-wide-kpi-card {
      grid-template-rows: minmax(0, 1fr) auto;
      align-content: stretch;
    }

    .embed-election-compact-wide-pie-card {
      grid-template-rows: minmax(0, 1fr);
      align-content: stretch;
    }

    .embed-election-compact-kpis {
      margin-top: 0;
      grid-template-columns: repeat(var(--embed-election-kpi-columns, 2), minmax(0, 1fr));
      gap: 6px;
      align-content: start;
    }

    .embed-election-compact-narrow .embed-election-compact-kpis {
      margin-top: -1px;
    }

    .embed-election-compact-kpis .kpi {
      min-width: 0;
      padding: 7px;
    }

    .embed-election-compact-kpis .kpi.is-hidden {
      display: none;
    }

    .embed-election-compact-kpis .kpi .v {
      font-size: .78rem;
      line-height: 1.12;
      white-space: nowrap;
      overflow: hidden;
      text-overflow: ellipsis;
    }

    .embed-election-compact-shell .embed-election-compact-pie-layout {
      grid-template-columns: 94px minmax(0, 1fr);
      gap: 10px;
      align-items: center;
    }

    .embed-election-compact-shell .embed-election-compact-pie-chart {
      width: 94px;
      height: 94px;
      min-width: 94px;
      min-height: 94px;
      max-width: 94px;
      max-height: 94px;
      justify-self: start;
    }

    .embed-election-compact-shell .embed-election-compact-pie-list {
      max-height: none;
      min-height: 94px;
      padding-right: 0;
      overflow: visible;
      overflow-y: visible;
      display: flex;
      flex-direction: column;
      justify-content: space-between;
    }

    .embed-election-compact-wide-meta {
      margin-top: 0;
      align-self: end;
      justify-self: start;
    }

    .embed-election-compact-empty {
      display: flex;
      align-items: center;
      justify-content: center;
      min-height: 94px;
      color: #756c61;
      font-size: .7rem;
      text-align: center;
    }

    @media (min-width: 420px) and (max-width: 560px) {
      .embed-election-compact-kpis.is-narrow[data-active-kpis="3"] {
        grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
      }
    }

    @media (min-width: 480px) and (max-width: 560px) {
      .embed-election-compact-kpis.is-narrow[data-active-kpis="4"] {
        grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
      }
    }

    @media (min-width: 561px) {
      .embed-election-compact-narrow {
        display: none;
      }

      .embed-election-compact-wide {
        display: grid;
      }

      .embed-election-compact-kpis.is-wide {
        --embed-election-kpi-columns: 2;
        min-height: 0;
        height: auto;
        align-content: start;
        grid-auto-rows: auto;
        gap: 8px;
      }

      .embed-election-compact-kpis.is-wide .kpi {
        padding: 5px 6px;
      }

      .embed-election-compact-kpis.is-wide .kpi .l {
        margin-bottom: 2px;
      }

      .embed-election-compact-kpis.is-wide .kpi .v {
        font-size: .74rem;
        line-height: 1.06;
      }

      .embed-election-compact-wide-pie-card .embed-election-compact-pie-layout {
        grid-template-columns: 108px minmax(0, 1fr);
        gap: 12px;
        align-items: center;
        min-height: 100%;
        height: 100%;
      }

      .embed-election-compact-wide-pie-card .embed-election-compact-pie-chart {
        width: 108px;
        height: 108px;
        min-width: 108px;
        min-height: 108px;
        max-width: 108px;
        max-height: 108px;
      }

      .embed-election-compact-wide-pie-card .embed-election-compact-pie-list {
        min-height: 108px;
      }

      .embed-election-compact-kpis.is-wide[data-active-kpis="3"] > .kpi:nth-child(3) {
        grid-column: 1 / -1;
      }
    }

    .embed-population-trend-head {
      margin-bottom: 8px;
    }

    .embed-population-trend-scale {
      margin-top: 8px;
      font-size: .68rem;
      color: #6a6155;
    }

    .embed-population-trend-controls {
      margin-top: 8px;
      display: grid;
      grid-template-columns: repeat(5, minmax(0, 1fr));
      gap: 6px;
    }

    .embed-population-trend-controls button {
      border: 1px solid #d8cfbf;
      border-radius: 8px;
      padding: 6px 8px;
      font-size: .7rem;
      background: rgba(255,255,255,.82);
      color: #5b5348;
      cursor: pointer;
    }

    .embed-population-trend-controls button.is-active {
      background: #efe5d6;
      border-color: #cbbca4;
      color: #433b31;
      font-weight: 600;
    }

    .embed-population-trend-controls button:disabled {
      opacity: .48;
      cursor: default;
    }

    .embed-population-pie-head {
      margin-bottom: 8px;
    }

    .embed-population-pie-layout {
      display: grid;
      grid-template-columns: 110px minmax(0, 1fr);
      gap: 12px;
      align-items: center;
    }

    .embed-population-pie-chart {
      width: 110px;
      height: 110px;
      border-radius: 50%;
      position: relative;
      background: conic-gradient(#e6ddd0 0deg 360deg);
      box-shadow: inset 0 0 0 1px rgba(188, 175, 158, .32);
    }

    .embed-population-pie-hole {
      position: absolute;
      inset: 50%;
      width: 58px;
      height: 58px;
      transform: translate(-50%, -50%);
      border-radius: 50%;
      background: rgba(248, 243, 236, .96);
      box-shadow: inset 0 0 0 1px rgba(210, 199, 182, .72);
      display: flex;
      flex-direction: column;
      align-items: center;
      justify-content: center;
      text-align: center;
      gap: 2px;
      padding: 4px;
    }

    .embed-population-pie-hole strong {
      font-size: .66rem;
      color: #3d342b;
      line-height: 1.1;
    }

    .embed-population-pie-hole span {
      font-size: .58rem;
      color: #7b7267;
      line-height: 1;
    }

    .embed-population-pie-legend {
      min-width: 0;
      display: grid;
      gap: 5px;
      font-size: .7rem;
      color: #5f574c;
    }

    .embed-population-pie-row {
      display: grid;
      grid-template-columns: 10px minmax(0, 1fr) auto;
      gap: 7px;
      align-items: center;
      min-width: 0;
    }

    .embed-population-pie-swatch {
      width: 10px;
      height: 10px;
      border-radius: 999px;
      box-shadow: inset 0 0 0 1px rgba(255,255,255,.55), 0 0 0 1px rgba(126, 112, 93, .12);
    }

    .embed-population-pie-name {
      min-width: 0;
      overflow: hidden;
      text-overflow: ellipsis;
      white-space: nowrap;
    }

    .embed-population-pie-share {
      color: #403830;
      font-weight: 600;
      font-variant-numeric: tabular-nums;
    }

    .embed-population-pie-empty {
      color: #8a8277;
      padding: 4px 0;
    }

    .embed-menu-toggle {
      height: 34px;
      width: var(--embed-menu-collapsed-width, min(144px, 50vw));
      border: 1px solid #ded6ca;
      border-radius: 999px;
      padding: 0 44px 0 14px;
      display: inline-flex;
      align-items: center;
      justify-content: flex-start;
      gap: 6px;
      overflow: hidden;
      white-space: nowrap;
      color: #5f574b;
      background: #fff8;
      backdrop-filter: blur(2px);
      cursor: pointer;
      position: relative;
      transition: width .24s cubic-bezier(.2,.7,.2,1), border-color .16s ease, box-shadow .16s ease, background-color .16s ease;
    }

    .embed-menu-shell:hover .embed-menu-toggle,
    .embed-menu-shell.is-open .embed-menu-toggle,
    .embed-menu-toggle:focus-visible {
      width: var(--embed-menu-expanded-width, min(288px, 74vw));
      border-color: #ccbfa8;
      box-shadow: 0 0 0 2px rgba(203, 192, 174, .28);
      background: #fff8;
      outline: none;
    }

    .embed-menu-avatar {
      width: 34px;
      height: 34px;
      border-radius: 999px;
      object-fit: cover;
      position: absolute;
      right: 0;
      top: 50%;
      transform: translateY(-50%);
    }

    .embed-menu-label {
      font-size: .76rem;
      letter-spacing: .01em;
      color: #5a5145;
      white-space: nowrap;
    }

    .embed-menu-label-full {
      display: none;
    }

    .embed-menu-shell:hover .embed-menu-label-short,
    .embed-menu-shell.is-open .embed-menu-label-short,
    .embed-menu-toggle:focus-visible .embed-menu-label-short {
      display: none;
    }

    .embed-menu-shell:hover .embed-menu-label-full,
    .embed-menu-shell.is-open .embed-menu-label-full,
    .embed-menu-toggle:focus-visible .embed-menu-label-full {
      display: inline;
    }

    .embed-menu-tabs {
      display: flex;
      align-items: flex-end;
      gap: 4px;
      padding: 7px 10px 0;
      margin: 8px -10px 10px;
      border-radius: 12px 12px 0 0;
      border-bottom: 1px solid #d6c8b3;
      background: linear-gradient(180deg, rgba(244, 239, 230, .98), rgba(250, 246, 238, .94));
      justify-content: flex-start;
    }

    .embed-menu-legend-shell {
      width: 100%;
    }

    .embed-menu-tab {
      height: 30px;
      border: 1px solid transparent;
      border-bottom: none;
      border-radius: 10px 10px 0 0;
      padding: 0 14px;
      text-align: center;
      font-size: .72rem;
      color: #6b6256;
      background: transparent;
      cursor: pointer;
      transition: border-color .16s ease, background-color .16s ease, color .16s ease, transform .16s ease;
      white-space: nowrap;
      position: relative;
    }

    .embed-menu-tab:hover,
    .embed-menu-tab:focus-visible {
      color: #3f372d;
      background: rgba(255, 255, 255, .72);
      border-color: #d9cbb6;
      transform: translateY(-1px);
      outline: none;
    }

    .embed-menu-tab.is-active {
      border-color: #d3c5b2;
      background: rgba(255, 253, 248, .98);
      color: #2f281f;
      font-weight: 600;
      box-shadow: 0 -1px 0 rgba(255, 255, 255, .8);
      transform: translateY(-1px);
      margin-bottom: -1px;
      z-index: 2;
    }

    .embed-menu-panel {
      width: var(--embed-menu-expanded-width, min(288px, 74vw));
      border: 1px solid transparent;
      border-radius: 14px;
      background: linear-gradient(180deg, rgba(255, 252, 246, .95), rgba(252, 246, 236, .96));
      box-shadow: none;
      backdrop-filter: blur(4px);
      padding: 0;
      max-height: 0;
      overflow: hidden;
      opacity: 0;
      transform: translateY(-8px) scale(.98);
      transform-origin: top right;
      pointer-events: none;
      transition: max-height .28s cubic-bezier(.2,.7,.2,1), opacity .22s ease, transform .22s ease, padding .22s ease, border-color .22s ease, box-shadow .22s ease;
    }

    .embed-menu-panel.is-open {
      border-color: #ded6ca;
      box-shadow: 0 12px 24px rgba(68, 58, 45, .16);
      padding: 10px;
      max-height: min(72vh, 640px);
      overflow: auto;
      opacity: 1;
      transform: translateY(0) scale(1);
      pointer-events: auto;
    }

    .embed-menu-section {
      width: 100%;
    }

    .embed-menu-section.is-active {
      animation: embedMenuSectionIn .22s ease;
    }

    @keyframes embedMenuSectionIn {
      from {
        opacity: 0;
        transform: translateY(6px);
      }
      to {
        opacity: 1;
        transform: translateY(0);
      }
    }

    @media (prefers-reduced-motion: reduce) {
      .embed-menu-panel,
      .embed-menu-tab,
      .embed-menu-section.is-active {
        transition: none;
        animation: none;
      }
    }

    .embed-menu-panel label {
      display: block;
      font-size: .72rem;
      color: #6f675c;
      margin-bottom: 3px;
    }

    .embed-menu-panel input,
    .embed-menu-panel select {
      width: 100%;
      border: 1px solid #e1d9cc;
      border-radius: 9px;
      padding: 6px 8px;
      background: rgba(255,255,255,.9);
      color: #534d44;
      font-size: .77rem;
    }

    .embed-menu-kpis {
      margin-top: 0;
      grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .embed-menu-panel .kpis {
      margin-top: 4px;
    }
    .embed-menu-heat-legend {
      margin: 0;
      background: rgba(255,255,255,.72);
      position: relative;
      overflow: visible;
    }

    .embed-menu-heat-legend .rank-filter {
      margin-top: 6px;
      flex-wrap: nowrap;
      font-size: .72rem;
    }

    .embed-menu-heat-legend .embed-menu-rank-mode-shell {
      position: relative;
      flex: 1 1 auto;
      min-width: 0;
      z-index: 1;
    }

    .embed-menu-heat-legend .rank-filter #embedMenuRankMode {
      flex: 1 1 auto;
      min-width: 0;
      width: 100%;
    }

    .embed-menu-heat-legend .rank-filter #embedMenuRankN {
      width: 84px;
      flex: 0 0 84px;
    }

    .embed-menu-heat-legend .rank-filter #embedMenuRankWinnerParty {
      flex: 1 1 auto;
      min-width: 0;
    }

    .embed-menu-heat-legend .rank-filter input,
    .embed-menu-heat-legend .rank-filter select {
      font-size: .72rem;
      padding: 2px 8px;
      height: 26px;
      min-width: 0;
      max-width: 100%;
    }

    .embed-menu-rank-mode-compact-toggle {
      display: none;
      width: 100%;
      min-height: 28px;
      border: 1px solid rgba(215, 205, 190, .95);
      border-radius: 10px;
      padding: 4px 10px;
      background: rgba(255, 251, 245, .92);
      color: #4a4035;
      font: inherit;
      align-items: center;
      justify-content: space-between;
      gap: 10px;
      cursor: pointer;
      transition: border-color .16s ease, box-shadow .16s ease, background-color .16s ease, transform .16s ease;
    }

    .embed-menu-rank-mode-compact-toggle:hover,
    .embed-menu-rank-mode-compact-toggle:focus-visible {
      outline: none;
      border-color: rgba(191, 170, 139, .98);
      background: rgba(255, 254, 250, .98);
      box-shadow: 0 0 0 3px rgba(198, 180, 151, .18);
      transform: translateY(-1px);
    }

    .embed-menu-rank-mode-compact-chevron {
      font-size: .62rem;
      color: rgba(96, 82, 63, .82);
      transition: transform .18s ease;
    }

    .embed-menu-rank-mode-shell.is-open .embed-menu-rank-mode-compact-chevron {
      transform: rotate(180deg);
    }

    .embed-menu-rank-mode-compact-menu {
      position: absolute;
      left: 0;
      right: 0;
      bottom: calc(100% + 8px);
      display: grid;
      gap: 6px;
      padding: 8px;
      border: 1px solid rgba(226, 214, 197, .96);
      border-radius: 12px;
      background: linear-gradient(180deg, rgba(255, 253, 248, .97), rgba(249, 242, 232, .95));
      box-shadow: 0 12px 26px rgba(75, 61, 43, .18);
      backdrop-filter: blur(8px);
      z-index: 4;
    }

    .embed-legend-shell.is-dropup-open {
      z-index: 48;
    }

    .embed-menu-heat-legend.is-dropup-open {
      z-index: 2;
    }

    .embed-menu-rank-mode-option {
      width: 100%;
      border: 1px solid rgba(220, 209, 193, .94);
      border-radius: 10px;
      padding: 6px 10px;
      background: rgba(255, 255, 255, .82);
      color: #473c31;
      font: inherit;
      text-align: left;
      cursor: pointer;
      transition: border-color .16s ease, background-color .16s ease, transform .16s ease;
    }

    .embed-menu-rank-mode-option:hover,
    .embed-menu-rank-mode-option:focus-visible {
      outline: none;
      border-color: rgba(190, 168, 136, .98);
      background: rgba(255, 252, 246, .98);
      transform: translateY(-1px);
    }

    .embed-menu-rank-mode-option.is-active {
      border-color: rgba(172, 147, 111, .98);
      background: rgba(244, 234, 218, .98);
      color: #2f261d;
      font-weight: 600;
    }

    .embed-menu-heat-legend .filter-note {
      margin-top: 4px;
      font-size: .68rem;
    }

    .super-apps-menu {
      position: absolute;
      top: calc(100% + 6px);
      left: 0;
      width: var(--super-apps-expanded-width);
      display: grid;
      gap: 6px;
      max-height: 0;
      opacity: 0;
      transform: translateY(-8px);
      overflow: hidden;
      pointer-events: none;
      transition: max-height .24s cubic-bezier(.2,.7,.2,1), opacity .2s ease, transform .2s ease;
      z-index: 2;
      background: transparent;
      box-shadow: none;
      backdrop-filter: none;
    }

    .super-apps-shell.is-open .super-apps-menu {
      max-height: 200px;
      opacity: 1;
      transform: translateY(0);
      pointer-events: auto;
    }

    .super-apps-item {
      width: 100%;
      height: 34px;
      border: 1px solid #ded6ca;
      border-radius: 999px;
      padding: 0 12px;
      text-align: left;
      font-size: .74rem;
      color: #5c5347;
      background: rgba(255, 252, 246, .94);
      backdrop-filter: none;
      cursor: pointer;
      box-shadow: none;
      transition: border-color .16s ease, background-color .16s ease, transform .16s ease;
    }

    .super-apps-item:hover,
    .super-apps-item:focus-visible {
      border-color: #cdbfa8;
      background: rgba(255, 255, 255, .98);
      transform: translateX(2px);
      outline: none;
    }

    .rent-tax-panel {
      margin-top: 8px;
      border: 1px solid #ded6ca;
      border-radius: 14px;
      background: rgba(255, 252, 246, .95);
      box-shadow: 0 10px 22px rgba(68, 58, 45, .14);
      backdrop-filter: blur(4px);
      padding: 10px;
      max-height: min(72vh, 640px);
      overflow: auto;
      transform: translateY(var(--super-apps-shift-y));
      transition: transform .26s cubic-bezier(.2,.7,.2,1);
    }

    .rent-tax-title {
      font-size: .82rem;
      color: #52493e;
      font-weight: 650;
      margin-bottom: 0;
    }

    .rent-tax-head {
      display: flex;
      align-items: center;
      justify-content: space-between;
      gap: 8px;
      margin-bottom: 8px;
    }

    .rent-tax-panel .panel-grid {
      grid-template-columns: 1fr 1fr;
    }

    .rent-tax-panel label {
      display: block;
      font-size: .72rem;
      color: #6f675c;
      margin-bottom: 3px;
    }

    .rent-tax-panel input,
    .rent-tax-panel select {
      width: 100%;
      border: 1px solid #e1d9cc;
      border-radius: 9px;
      padding: 6px 8px;
      background: rgba(255,255,255,.9);
      color: #534d44;
      font-size: .77rem;
    }

    .rent-tax-panel .panel-opt {
      margin-top: 8px;
    }

    .rent-tax-panel .panel-opt summary {
      cursor: pointer;
      color: #5f574c;
      font-size: .74rem;
      font-weight: 610;
    }

    .real-estate-main-grid {
      display: grid;
      grid-template-columns: 1fr 1fr 1fr;
      gap: 8px;
    }

    .real-estate-advanced-grid {
      display: grid;
      grid-template-columns: 1fr 1fr;
      gap: 8px;
    }

    .real-estate-main-grid .full,
    .real-estate-advanced-grid .full {
      grid-column: 1 / -1;
    }

    .real-estate-actions {
      margin-top: 8px;
      display: grid;
      grid-template-columns: 1fr 1fr;
      gap: 8px;
    }

    .real-estate-more-btn {
      width: 100%;
      justify-content: center;
    }

    .real-estate-limit-check {
      margin-top: 6px;
      display: inline-flex;
      align-items: center;
      gap: 7px;
      font-size: .7rem;
      color: #6b6256;
      user-select: none;
    }

    .real-estate-limit-check input {
      width: 14px;
      height: 14px;
      margin: 0;
      accent-color: #3a8f47;
      pointer-events: none;
    }

    .real-estate-limit-check.is-invalid {
      color: #9b3e3e;
    }

    .real-estate-limit-check.is-invalid input {
      accent-color: #b24a4a;
    }

    .real-estate-advanced-panel {
      margin-top: 8px;
      border: 1px solid #ded6ca;
      border-radius: 12px;
      background: rgba(255, 252, 246, .96);
      box-shadow: 0 8px 16px rgba(68, 58, 45, .1);
      padding: 0 10px;
      border-width: 0;
      max-height: 0;
      opacity: 0;
      overflow: hidden;
      transform: translateX(16px);
      pointer-events: none;
      transition: max-height .28s cubic-bezier(.2,.7,.2,1), padding .24s ease, border-width .2s ease, opacity .2s ease, transform .24s ease;
    }

    .real-estate-advanced-panel.is-open {
      padding: 10px;
      border-width: 1px;
      max-height: 980px;
      opacity: 1;
      transform: translateX(0);
      pointer-events: auto;
    }

    .real-estate-checkbox-row {
      display: flex;
      align-items: center;
      min-height: 32px;
    }

    .real-estate-check {
      display: inline-flex;
      align-items: center;
      gap: 8px;
      color: #544d43;
      font-size: .74rem;
      cursor: pointer;
      user-select: none;
    }

    .real-estate-check input {
      width: 15px;
      height: 15px;
      margin: 0;
      accent-color: #4f8db8;
    }

    .real-estate-multiselect > summary {
      list-style: none;
      border: 1px solid #e1d9cc;
      border-radius: 9px;
      padding: 6px 8px;
      background: rgba(255,255,255,.9);
      color: #534d44;
      font-size: .77rem;
      cursor: pointer;
      user-select: none;
    }

    .real-estate-multiselect > summary::-webkit-details-marker {
      display: none;
    }

    .real-estate-multiselect-list {
      margin-top: 6px;
      border: 1px solid #ded6ca;
      border-radius: 10px;
      padding: 6px 8px;
      background: rgba(255, 252, 246, .97);
      max-height: 186px;
      overflow-y: auto;
      display: grid;
      gap: 4px;
    }

    .real-estate-multiselect-item {
      display: inline-flex;
      align-items: center;
      gap: 8px;
      font-size: .74rem;
      color: #544d43;
      cursor: pointer;
      user-select: none;
    }

    .real-estate-multiselect-item input {
      width: 14px;
      height: 14px;
      margin: 0;
      accent-color: #4f8db8;
    }

    .real-estate-buy-only.is-hidden {
      display: none;
    }

    .rent-compare-wrap {
      margin-top: 10px;
    }

    .rent-compare-top {
      display: grid;
      grid-template-columns: minmax(0, 1fr) minmax(120px, 0.7fr);
      gap: 8px;
      align-items: end;
    }

    .rent-compare-results {
      margin-top: 6px;
      border: 1px solid #ded6ca;
      border-radius: 11px;
      background: rgba(255, 252, 246, .96);
      max-height: min(24vh, 180px);
      overflow-y: auto;
    }

    .rent-compare-result {
      width: 100%;
      border: none;
      border-bottom: 1px solid #ebe2d6;
      background: transparent;
      color: #574f44;
      padding: 7px 9px;
      text-align: left;
      cursor: pointer;
      font-size: .74rem;
      line-height: 1.28;
    }

    .rent-compare-result:last-child {
      border-bottom: none;
    }

    .rent-compare-result:hover,
    .rent-compare-result:focus-visible {
      background: rgba(255,255,255,.75);
      outline: none;
    }

    .rent-compare-result .meta {
      color: #7a7164;
      font-size: .68rem;
      margin-top: 1px;
    }

    .rent-compare-meta {
      margin-top: 6px;
      font-size: .7rem;
      color: #6a6155;
    }

    .rent-tax-actions {
      margin-top: 10px;
      display: grid;
      grid-template-columns: 1fr 1fr;
      gap: 8px;
    }

    .rent-tax-action-btn {
      min-height: 34px;
      border: 1px solid #b8d8f2;
      border-radius: 999px;
      padding: 0 12px;
      font-size: .74rem;
      color: #2f5e87;
      background: rgba(220, 239, 255, .96);
      cursor: pointer;
      transition: border-color .16s ease, background-color .16s ease, transform .16s ease;
      text-align: center;
    }

    .rent-tax-action-btn:hover,
    .rent-tax-action-btn:focus-visible {
      border-color: #8dc2e9;
      background: rgba(234, 246, 255, .99);
      transform: translateY(-1px);
      outline: none;
    }

    .rent-tax-action-btn:disabled {
      border-color: #cfd9e3;
      background: rgba(233, 237, 241, .8);
      color: #7c8a97;
      cursor: not-allowed;
      transform: none;
      box-shadow: none;
    }

    .rent-tax-status {
      margin-top: 8px;
      min-height: 1.1em;
      font-size: .7rem;
      color: #6b6256;
    }

    .rent-tax-status.is-error {
      color: #9b3e3e;
    }

    #realEstateStatus {
      margin-top: 0;
      min-height: 0;
    }

    #realEstateStatus:not(:empty) {
      margin-top: 8px;
      min-height: 1.1em;
    }

    .heat-agg-panel {
      border: 1px solid #d8e5f2;
      background: rgba(248, 252, 255, .95);
      box-shadow: 0 10px 22px rgba(68, 58, 45, .12);
    }

    .heat-agg-config-grid {
      margin-top: 8px;
      display: grid;
      gap: 8px;
      grid-template-columns: 1fr 1fr;
    }

    .heat-agg-config-grid .full {
      grid-column: 1 / -1;
    }

    .heat-agg-config-grid label {
      display: block;
      font-size: .72rem;
      color: #5f6f81;
      margin-bottom: 3px;
    }

    .heat-agg-config-grid input,
    .heat-agg-config-grid select {
      width: 100%;
      border: 1px solid #d2deea;
      border-radius: 9px;
      min-height: 32px;
      padding: 0 9px;
      font-size: .74rem;
      color: #425463;
      background: rgba(255, 255, 255, .94);
    }

    .heat-agg-config-note {
      font-size: .68rem;
      color: #687b8f;
      line-height: 1.35;
      margin-top: 2px;
    }

    .heat-agg-weight-row {
      display: grid;
      gap: 8px;
      grid-template-columns: minmax(0, 1fr) auto;
      align-items: center;
    }

    .heat-agg-weight-row input[type="range"] {
      width: 100%;
      accent-color: #4f8db8;
    }

    .heat-agg-weight-value {
      font-size: .72rem;
      color: #486884;
      font-weight: 650;
      min-width: 44px;
      text-align: right;
    }

    .heat-agg-config-block.is-hidden {
      display: none;
    }

    .heat-agg-config-block .panel-opt {
      margin-top: 8px;
    }

    .heat-agg-config-block .panel-opt summary {
      cursor: pointer;
      color: #4f6378;
      font-size: .74rem;
      font-weight: 610;
    }

    .heat-agg-country-head {
      margin-top: 2px;
      margin-bottom: 6px;
    }

    .heat-agg-country-picker {
      max-height: 180px;
    }

    .heat-agg-criteria-picker {
      border: 1px solid #d6e1ec;
      border-radius: 10px;
      background: rgba(255, 255, 255, .88);
      padding: 6px;
      max-height: 132px;
      overflow-y: auto;
      display: grid;
      gap: 4px;
      margin-top: 4px;
    }

    .heat-agg-list {
      margin-top: 8px;
      display: grid;
      gap: 8px;
    }

    .heat-legend.heat-agg-filter-card {
      margin-top: 0;
      padding: 0 10px;
      border-width: 0;
      max-height: 0;
      overflow: hidden;
      opacity: 0;
      transform: translateY(calc(var(--rent-diff-shift-y) + 8px));
      pointer-events: none;
      transition: max-height .24s cubic-bezier(.2,.7,.2,1), margin-top .24s cubic-bezier(.2,.7,.2,1), padding .24s cubic-bezier(.2,.7,.2,1), border-width .2s ease, opacity .2s ease, transform .22s ease;
    }

    .heat-legend.heat-agg-filter-card.is-open {
      margin-top: 0;
      padding: 8px 10px;
      border-width: 1px;
      max-height: 420px;
      overflow: visible;
      opacity: 1;
      transform: translateY(var(--rent-diff-shift-y));
      pointer-events: auto;
    }

    .heat-agg-filter-head {
      display: flex;
      align-items: center;
      justify-content: space-between;
      gap: 8px;
      margin-bottom: 6px;
    }

    .heat-agg-filter-title {
      font-size: .73rem;
      color: #3f5669;
      font-weight: 640;
      line-height: 1.35;
    }

    .heat-agg-remove-btn {
      width: 24px;
      height: 24px;
      border: 1px solid #b8d8f2;
      border-radius: 8px;
      background: rgba(220, 239, 255, .96);
      color: #2f5e87;
      font-size: .8rem;
      line-height: 1;
      display: inline-flex;
      align-items: center;
      justify-content: center;
      cursor: pointer;
      transition: border-color .16s ease, background-color .16s ease;
      padding: 0;
    }

    .heat-agg-remove-btn:hover,
    .heat-agg-remove-btn:focus-visible {
      border-color: #8dc2e9;
      background: rgba(234, 246, 255, .99);
      outline: none;
    }

    .heat-agg-filter-meta {
      font-size: .67rem;
      color: #5e7182;
      line-height: 1.35;
      margin-bottom: 2px;
    }

    .rent-diff-legend {
      margin-top: 8px;
      padding: 8px 10px;
      border: 1px solid #d8e5f2;
      border-radius: 12px;
      background: rgba(248, 252, 255, .94);
      box-shadow: 0 10px 22px rgba(68, 58, 45, .12);
      backdrop-filter: blur(4px);
      font-size: .7rem;
      color: #5e5a53;
      transform: translateY(var(--rent-diff-shift-y));
      transition: transform .26s cubic-bezier(.2,.7,.2,1);
    }

    .muni-search-shell.is-super-apps-open {
      --super-apps-shift-y: 124px;
      --rent-diff-shift-y: 124px;
    }

    .rent-diff-head {
      display: flex;
      align-items: center;
      justify-content: space-between;
      gap: 8px;
      margin-bottom: 6px;
    }

    .rent-diff-title {
      font-size: .75rem;
      color: #4c4f54;
      font-weight: 640;
    }

    .rent-diff-nav {
      display: inline-flex;
      gap: 6px;
      align-items: center;
    }

    .rent-diff-nav-btn {
      width: 24px;
      height: 24px;
      border: 1px solid #b8d8f2;
      border-radius: 8px;
      background: rgba(220, 239, 255, .96);
      color: #2f5e87;
      font-size: .83rem;
      line-height: 1;
      display: inline-flex;
      align-items: center;
      justify-content: center;
      cursor: pointer;
      transition: border-color .16s ease, background-color .16s ease;
    }

    .rent-diff-nav-btn:hover,
    .rent-diff-nav-btn:focus-visible {
      border-color: #8dc2e9;
      background: rgba(234, 246, 255, .99);
      outline: none;
    }

    .rent-diff-reference-add-btn {
      border: 1px solid #b8d8f2;
      border-radius: 999px;
      background: rgba(220, 239, 255, .96);
      color: #2f5e87;
      font-size: .68rem;
      line-height: 1.1;
      min-height: 24px;
      padding: 0 9px;
      cursor: pointer;
      transition: border-color .16s ease, background-color .16s ease;
    }

    .rent-diff-reference-add-btn:hover,
    .rent-diff-reference-add-btn:focus-visible {
      border-color: #8dc2e9;
      background: rgba(234, 246, 255, .99);
      outline: none;
    }

    .rent-diff-reference-add-btn:disabled {
      opacity: .56;
      cursor: not-allowed;
      border-color: #c8d9e8;
      background: rgba(232, 240, 248, .9);
      color: #66809a;
    }

    .rent-diff-compare-list {
      margin-top: 8px;
      display: grid;
      gap: 8px;
    }

    .heat-legend.rent-diff-compare-card {
      margin-top: 0;
      padding: 0 10px;
      border-width: 0;
      max-height: 0;
      overflow: hidden;
      opacity: 0;
      transform: translateY(calc(var(--rent-diff-shift-y) + 8px));
      pointer-events: none;
      transition: max-height .24s cubic-bezier(.2,.7,.2,1), margin-top .24s cubic-bezier(.2,.7,.2,1), padding .24s cubic-bezier(.2,.7,.2,1), border-width .2s ease, opacity .2s ease, transform .22s ease;
    }

    .heat-legend.rent-diff-compare-card.is-open {
      margin-top: 0;
      padding: 8px 10px;
      border-width: 1px;
      max-height: 280px;
      overflow: visible;
      opacity: 1;
      transform: translateY(var(--rent-diff-shift-y));
      pointer-events: auto;
    }

    .rent-diff-compare-row {
      display: grid;
      grid-template-columns: minmax(0, 1.35fr) minmax(0, .82fr) minmax(0, .82fr) auto auto;
      align-items: center;
      gap: 6px;
    }

    .rent-diff-compare-row > * {
      min-width: 0;
    }

    .rent-diff-compare-input {
      width: 100%;
      border: 1px solid #d2dcea;
      border-radius: 9px;
      min-height: 30px;
      padding: 0 9px;
      font-size: .7rem;
      color: #455364;
      background: rgba(255, 255, 255, .92);
      outline: none;
      transition: border-color .16s ease, box-shadow .16s ease;
    }

    .rent-diff-compare-input:focus {
      border-color: #9fc5e5;
      box-shadow: 0 0 0 2px rgba(159, 197, 229, .25);
    }

    .rent-diff-compare-input[readonly] {
      background: rgba(240, 244, 249, .92);
      color: #697687;
    }

    .rent-diff-compare-results {
      margin-top: 6px;
      max-height: min(22vh, 160px);
    }

    .rent-diff-compare-delta {
      border-color: #cfd9e6 !important;
    }

    .rent-diff-compare-delta.is-positive {
      border-color: rgba(62, 165, 97, .9) !important;
      color: #267241 !important;
      background: rgba(232, 251, 238, .92) !important;
    }

    .rent-diff-compare-delta.is-negative {
      border-color: rgba(205, 87, 87, .9) !important;
      color: #9a3c3c !important;
      background: rgba(255, 236, 236, .94) !important;
    }

    .rent-diff-compare-help-wrap {
      display: flex;
      justify-content: center;
    }

    .rent-diff-help {
      position: relative;
      display: inline-flex;
      align-items: center;
      gap: 6px;
    }

    .rent-diff-help-btn {
      width: 22px;
      height: 22px;
      border-radius: 999px;
      border: 1px solid #c2d4e8;
      background: rgba(234, 244, 252, .94);
      color: #3f6487;
      font-size: .72rem;
      font-weight: 700;
      display: inline-flex;
      align-items: center;
      justify-content: center;
      cursor: help;
      line-height: 1;
      padding: 0;
    }

    .rent-diff-help-tip {
      position: absolute;
      left: 50%;
      right: auto;
      top: auto;
      bottom: calc(100% + 8px);
      transform: translate(-50%, 8px) scale(.98);
      transform-origin: center bottom;
      min-width: 0;
      width: min(320px, calc(100vw - 64px));
      padding: 6px 8px;
      border-radius: 10px;
      border: 1px solid rgba(189, 207, 226, .95);
      background: rgba(249, 252, 255, .98);
      color: #536474;
      font-size: .64rem;
      line-height: 1.3;
      box-shadow: 0 9px 20px rgba(60, 83, 104, .18);
      opacity: 0;
      pointer-events: none;
      transition: opacity .16s ease, transform .16s ease;
      z-index: 2;
    }

    .rent-diff-help:hover .rent-diff-help-tip,
    .rent-diff-help:focus-within .rent-diff-help-tip {
      opacity: 1;
      transform: translate(-50%, 0) scale(1);
    }

    .muni-search-input {
      width: 100%;
      flex: 1 1 auto;
      min-width: 0;
      height: 34px;
      border: 1px solid #ded6ca;
      border-radius: 999px;
      padding: 8px 12px 8px 12px;
      color: #4f4a42;
      background: #fff8;
      backdrop-filter: blur(2px);
      font-size: .8rem;
      outline: none;
      transition: border-color .16s ease, box-shadow .16s ease;
    }

    .muni-search-field.has-visible-clear .muni-search-input {
      padding-right: 34px;
    }

    .muni-search-input::-webkit-search-decoration,
    .muni-search-input::-webkit-search-cancel-button,
    .muni-search-input::-webkit-search-results-button,
    .muni-search-input::-webkit-search-results-decoration {
      -webkit-appearance: none;
      appearance: none;
      display: none;
    }

    .muni-search-input::-ms-clear,
    .muni-search-input::-ms-reveal {
      display: none;
      width: 0;
      height: 0;
    }

    .muni-search-clear {
      position: absolute;
      top: 50%;
      right: 3px;
      transform: translateY(-50%);
      width: 32px;
      height: 32px;
      border-radius: 0;
      border: none;
      background: transparent;
      color: #6f675c;
      font-size: 1.35rem;
      line-height: 1;
      display: inline-flex;
      align-items: center;
      justify-content: center;
      cursor: pointer;
      opacity: 0;
      pointer-events: none;
      transition: opacity .16s ease, color .16s ease, transform .16s ease;
    }

    .muni-search-clear.is-visible {
      opacity: 1;
      pointer-events: auto;
    }

    .muni-search-clear:hover,
    .muni-search-clear:focus-visible {
      color: #3f3730;
      transform: translateY(calc(-50% + 2px)) scale(1.06);
      outline: none;
    }

    .muni-search-input::placeholder {
      color: #91887d;
    }

    .muni-search-input:focus {
      border-color: #ccbfa8;
      box-shadow: 0 0 0 2px rgba(203, 192, 174, .34);
    }

    .muni-search-results {
      position: absolute;
      top: calc(100% + 6px);
      left: 0;
      right: 0;
      z-index: 1;
      margin-top: 0;
      border: 1px solid #ded6ca;
      border-radius: 14px;
      background: rgba(255, 252, 246, .94);
      backdrop-filter: blur(3px);
      box-shadow: 0 8px 20px rgba(68, 58, 45, .12);
      overflow: hidden;
      max-height: min(44vh, 320px);
      overflow-y: auto;
    }

    .muni-search-result-btn {
      width: 100%;
      border: none;
      border-bottom: 1px solid #ebe2d6;
      background: transparent;
      color: #574f44;
      padding: 8px 10px;
      text-align: left;
      cursor: pointer;
      font-size: .77rem;
      line-height: 1.3;
    }

    .muni-search-result-btn:last-child {
      border-bottom: none;
    }

    .muni-search-result-btn:hover,
    .muni-search-result-btn:focus-visible {
      background: rgba(255, 255, 255, .75);
      outline: none;
    }

    .muni-search-result-title {
      color: #4f473d;
      font-weight: 620;
    }

    .muni-search-result-meta {
      color: #7a7164;
      font-size: .7rem;
      margin-top: 2px;
    }

    .pill {
      border: 1px solid #ded6ca;
      border-radius: 999px;
      padding: 6px 11px;
      font-size: .78rem;
      color: #655f56;
      background: #fff8;
      display: inline-flex;
      align-items: center;
      gap: 7px;
      backdrop-filter: blur(2px);
    }

    .legend-language-group {
      display: inline-flex;
      align-items: flex-start;
      flex-wrap: wrap;
      gap: 8px;
      transition: opacity .36s ease;
    }

    .legend.hide-language-pills .legend-language-group {
      opacity: 0;
      pointer-events: none;
    }

    .legend-tools {
      display: inline-flex;
      align-items: center;
      gap: 8px;
      flex-wrap: wrap;
    }

    .visitor-counter {
      border: 1px solid #ded6ca;
      border-radius: 14px;
      padding: 7px 11px;
      color: #655f56;
      background: #fff8;
      display: inline-flex;
      align-items: baseline;
      gap: 6px;
      backdrop-filter: blur(2px);
      white-space: nowrap;
      font-size: .78rem;
    }

    .visitor-counter-label {
      color: #6d655a;
      font-weight: 400;
    }

    .visitor-counter-active-wrap {
      color: #786f64;
      font-size: .74rem;
    }

    .visitor-counter-value {
      font-size: .86rem;
      font-weight: 400;
      color: #4f4a42;
      font-variant-numeric: tabular-nums;
    }

    .guide-open-btn {
      border: 1px solid #d8cebf;
      border-radius: 14px;
      padding: 7px 12px;
      color: #584f44;
      background: rgba(255, 251, 243, .82);
      display: inline-flex;
      align-items: center;
      justify-content: center;
      gap: 6px;
      backdrop-filter: blur(2px);
      white-space: nowrap;
      font-size: .78rem;
      line-height: 1;
      cursor: pointer;
      transition: border-color .16s ease, background .16s ease, color .16s ease;
    }

    .guide-open-btn:hover,
    .guide-open-btn:focus-visible {
      border-color: #c5b6a1;
      background: rgba(249, 242, 229, .92);
      color: #463f35;
      outline: none;
    }

    .guide-open-btn[aria-expanded="true"] {
      border-color: #bfa98f;
      background: #efe2cf;
      color: #3f372d;
      font-weight: 620;
    }

    .playback-year-badge {
      position: absolute;
      left: 50%;
      top: auto;
      bottom: 18%;
      transform: translate(-50%, 0);
      border: 1px solid #ddd4c7;
      border-radius: 14px;
      padding: 7px 12px;
      color: #5f574b;
      background: rgba(255, 251, 243, .86);
      backdrop-filter: blur(3px);
      box-shadow: 0 8px 22px rgba(73, 63, 49, .14);
      font-size: .78rem;
      font-weight: 600;
      letter-spacing: .01em;
      white-space: nowrap;
      pointer-events: none;
      z-index: 11;
      transition: opacity .26s ease, transform .26s ease;
    }

    .playback-year-badge.is-hidden {
      opacity: 0;
      transform: translate(-50%, 10px);
      visibility: hidden;
    }

    .dot { width: 9px; height: 9px; border-radius: 50%; display: inline-block; }

    .map-shell {
      position: relative;
      width: 100%;
      height: 100%;
      overflow: hidden;
      border-radius: 0;
      border: none;
      background: transparent;
    }

    .map-shell.is-compact-embed {
      --map-ui-offset: 10px;
    }

    .map-shell.is-compact-embed #map {
      touch-action: none;
    }

    .map-shell.is-compact-embed .muni-search-shell {
      width: calc(100% - (var(--map-ui-offset) * 2));
      max-width: none;
    }

    .map-shell.is-compact-embed .muni-tools-row {
      gap: 6px;
      align-items: center;
    }

    .map-shell.is-compact-embed .muni-search-field {
      width: 100%;
      flex: 1 1 auto;
    }

    .map-shell.is-compact-embed #compactNavControls {
      flex: 0 0 auto;
      margin-left: auto;
    }

    .map-shell.is-compact-embed #superAppsShell,
    .map-shell.is-compact-embed #embedMenuShell,
    .map-shell.is-compact-embed #embedWideFloatingShell,
    .map-shell.is-compact-embed #taxPanel,
    .map-shell.is-compact-embed #status,
    .map-shell.is-compact-embed #floatingTitle {
      display: none !important;
    }

    .map-shell.is-compact-embed #embedFloatingShell {
      left: var(--map-ui-offset);
      right: var(--map-ui-offset);
      top: auto !important;
      bottom: var(--map-ui-offset);
      width: auto;
      max-width: none;
      gap: 6px;
      align-items: stretch;
      z-index: 14;
      pointer-events: none;
    }

    .map-shell.is-compact-embed #embedFloatingShell > * {
      pointer-events: auto;
    }

    .map-shell.is-compact-embed #embedFloatingShell > :not(#embedLegendShell):not(.compact-embed-results-shell):not(.embed-population-shell):not(.embed-population-compact-shell):not(.embed-election-compact-shell):not(#embedSideSwapButton) {
      display: none !important;
    }

    .map-shell.is-compact-embed #embedSideSwapButton {
      display: none !important;
    }

    .map-shell.is-compact-embed .compact-embed-results-shell {
      width: 100%;
      max-width: none;
      margin: 0;
      order: 20;
      transform-origin: center bottom;
    }

    .map-shell.is-compact-embed .embed-population-shell {
      width: 100%;
      max-width: none;
      margin: 0;
      order: 12;
    }

    .map-shell.is-compact-embed .embed-population-compact-shell {
      width: 100%;
      max-width: none;
      margin: 0;
      order: 12;
    }

    .map-shell.is-compact-embed .embed-election-compact-shell {
      width: 100%;
      max-width: none;
      margin: 0;
      order: 12;
    }

    .map-shell.is-compact-embed .embed-crime-results-wide-shell {
      width: 100%;
      max-width: none;
      margin: 0;
      order: 21;
    }

    .map-shell.is-compact-embed .compact-embed-results-shell.compact-results-enter {
      animation: compactEmbedResultsIn .28s cubic-bezier(.22,.89,.32,1.08);
    }

    @media (min-width: 561px) {
      .map-shell.is-compact-embed #embedFloatingShell.is-crime-results-split {
        display: grid;
        grid-template-columns: repeat(2, minmax(0, 1fr));
        grid-template-areas:
          "crime-inputs crime-inputs"
          "crime-category crime-category"
          "crime-main crime-detail"
          "legend legend";
        gap: 6px 8px;
        align-items: end;
      }

      .map-shell.is-compact-embed #embedFloatingShell.is-crime-results-split #embedCrimeInputsShell {
        grid-area: crime-inputs;
      }

      .map-shell.is-compact-embed #embedFloatingShell.is-crime-results-split #embedCrimeCategoryShell {
        grid-area: crime-category;
      }

      .map-shell.is-compact-embed #embedFloatingShell.is-crime-results-split #embedCrimeResultsShell {
        grid-area: crime-main;
      }

      .map-shell.is-compact-embed #embedFloatingShell.is-crime-results-split #embedCrimeResultsWideShell {
        display: block;
        grid-area: crime-detail;
      }

      .map-shell.is-compact-embed #embedFloatingShell.is-crime-results-split #embedLegendShell {
        grid-column: 1 / -1;
        grid-area: legend;
      }

      .map-shell.is-compact-embed #embedFloatingShell.is-crime-results-split #embedCrimeResultsShell,
      .map-shell.is-compact-embed #embedFloatingShell.is-crime-results-split #embedCrimeResultsWideShell {
        width: auto;
        max-width: none;
        align-self: stretch;
      }

      .map-shell.is-compact-embed #embedFloatingShell.is-crime-results-split #embedCrimeResultsShell .embed-crime-results-meta,
      .map-shell.is-compact-embed #embedFloatingShell.is-crime-results-split #embedCrimeResultsWideShell .embed-crime-results-wide-card {
        min-height: 186px;
        height: 186px;
      }

      .map-shell.is-compact-embed #embedFloatingShell.is-crime-results-split #embedCrimeResultsShell .embed-crime-results-disclosures,
      .map-shell.is-compact-embed #embedFloatingShell.is-crime-results-split #embedCrimeResultsShell .embed-crime-results-detail-stack {
        display: none;
      }

      .map-shell.is-compact-embed #embedFloatingShell.is-tax-results-split {
        display: grid;
        grid-template-columns: repeat(2, minmax(0, 1fr));
        grid-template-areas:
          ". tax-detail"
          "tax-main tax-menu"
          "legend legend";
        gap: 6px 8px;
        align-items: end;
      }

      .map-shell.is-compact-embed #embedFloatingShell.is-tax-results-split #embedLegendShell {
        grid-column: 1 / -1;
        grid-area: legend;
      }

      .map-shell.is-compact-embed #embedFloatingShell.is-tax-results-split #embedResultsShell,
      .map-shell.is-compact-embed #embedFloatingShell.is-tax-results-split #embedResultsDetailsShell,
      .map-shell.is-compact-embed #embedFloatingShell.is-tax-results-split #embedResultsWideDetailsShell {
        width: auto;
        max-width: none;
        align-self: end;
      }

      .map-shell.is-compact-embed #embedFloatingShell.is-tax-results-split #embedResultsShell {
        grid-area: tax-main;
      }

      .map-shell.is-compact-embed #embedFloatingShell.is-tax-results-split #embedResultsDetailsShell {
        grid-area: tax-menu;
      }

      .map-shell.is-compact-embed #embedFloatingShell.is-tax-results-split #embedResultsWideDetailsShell {
        display: block;
        grid-area: tax-detail;
      }

      .map-shell.is-compact-embed #embedFloatingShell.is-tax-results-split #embedResultsShell .embed-results-card,
      .map-shell.is-compact-embed #embedFloatingShell.is-tax-results-split #embedResultsDetailsShell .embed-results-card {
        min-height: 184px;
      }

      .map-shell.is-compact-embed #embedFloatingShell.is-tax-results-split #embedResultsDetailsShell.is-tax-split-view {
        margin-top: 0;
        transform: none;
      }

      .map-shell.is-compact-embed #embedFloatingShell.is-tax-results-split #embedResultsDetailsShell .embed-results-details-card {
        display: none;
      }

      .map-shell.is-compact-embed #embedFloatingShell.is-tax-results-split #embedResultsDetailsShell .embed-results-wide-menu-card {
        display: block;
      }

      .map-shell.is-compact-embed #embedResultsShell.is-tax-split-view .embed-disclosure-row {
        display: none !important;
      }
    }

    .map-shell.is-compact-nav-animating .canton,
    .map-shell.is-compact-nav-animating .selected-muni-outline,
    .map-shell.is-compact-nav-animating .hover-muni-outline,
    .map-shell.is-compact-nav-animating .fine-boundary-muni,
    .map-shell.is-compact-nav-animating .fine-boundary-canton,
    .map-shell.is-compact-nav-animating .hover-canton-overlay {
      shape-rendering: optimizeSpeed !important;
      filter: none !important;
    }

    .map-shell.is-compact-nav-animating .embed-legend-shell,
    .map-shell.is-compact-nav-animating .embed-menu-heat-legend,
    .map-shell.is-compact-nav-animating .muni-tooltip,
    .map-shell.is-compact-nav-animating .canton-tooltip {
      backdrop-filter: none !important;
      filter: none !important;
    }

    .map-shell.is-compact-nav-dragging #muniSearchShell,
    .map-shell.is-compact-nav-dragging #compactNavControls,
    .map-shell.is-compact-nav-dragging #taxPanel,
    .map-shell.is-compact-nav-dragging #embedMenuShell,
    .map-shell.is-compact-nav-dragging #embedFloatingShell,
    .map-shell.is-compact-nav-dragging #embedWideFloatingShell,
    .map-shell.is-compact-nav-dragging #embedLegendShell,
    .map-shell.is-compact-nav-dragging #guideDrawer,
    .map-shell.is-compact-nav-dragging #newsDrawer,
    .map-shell.is-compact-nav-dragging #electionHistoryDrawer,
    .map-shell.is-compact-nav-dragging #rentTaxPanel,
    .map-shell.is-compact-nav-dragging #superAppsShell,
    .map-shell.is-compact-nav-dragging #muniTooltip,
    .map-shell.is-compact-nav-dragging #cantonTooltip {
      pointer-events: none !important;
    }

    .map-shell.is-compact-embed #embedLegendShell {
      width: 100%;
      max-width: none;
      margin: 0;
      order: 40;
      z-index: 18;
      overflow: visible;
    }

    .map-shell.is-compact-embed #embedLegendShell.is-dropup-open {
      z-index: 52;
    }

    .map-shell.is-compact-embed #embedLegendShell .embed-menu-heat-legend,
    .map-shell.is-compact-embed #embedLegendShell .embed-menu-rank-filter,
    .map-shell.is-compact-embed #embedLegendShell .embed-menu-rank-mode-shell {
      overflow: visible;
    }

    .map-shell.is-compact-embed .embed-menu-heat-legend {
      border: 1px solid rgba(231, 223, 210, .92);
      border-radius: 16px;
      background: linear-gradient(180deg, rgba(255,255,255,.82), rgba(248, 241, 230, .76));
      box-shadow: 0 8px 18px rgba(92, 77, 58, .08);
      backdrop-filter: blur(6px);
    }

    .map-shell.is-compact-embed #embedElectionResultsSummary[hidden] + .embed-election-results-card,
    .map-shell.is-compact-embed #embedElectionResultsSummary.is-hidden + .embed-election-results-card {
      margin-top: 0;
    }

    .map-shell.is-compact-embed .embed-menu-rank-mode-compact-toggle {
      display: inline-flex;
    }

    .map-shell.is-compact-embed .embed-menu-heat-legend .rank-filter #embedMenuRankMode {
      display: none;
    }

    .map-shell.is-exporting .tax-panel,
    .map-shell.is-exporting .legend,
    .map-shell.is-exporting .muni-search-shell,
    .map-shell.is-exporting #status,
    .map-shell.is-exporting #floatingTitle,
    .map-shell.is-exporting #muniTooltip,
    .map-shell.is-exporting #cantonTooltip {
      opacity: 0 !important;
      visibility: hidden !important;
      pointer-events: none !important;
    }

    .mobile-panel-scrim {
      position: absolute;
      inset: 0;
      background: rgba(34, 29, 23, .24);
      display: none;
      opacity: 0;
      pointer-events: none;
      transition: opacity .22s ease;
      z-index: 10;
    }

    .tax-panel {
      position: absolute;
      top: 12px;
      right: 12px;
      width: var(--panel-width-base);
      max-height: calc((100% - 24px) / var(--panel-scale));
      overflow: auto;
      z-index: 15;
      border: 1px solid rgba(220, 212, 199, .92);
      border-radius: 16px;
      background: rgba(255, 252, 246, .86);
      box-shadow: 0 18px 34px rgba(66, 57, 44, .16);
      backdrop-filter: blur(6px);
      padding: 12px;
      opacity: 0;
      transform: translateX(18px) scale(var(--panel-scale));
      transform-origin: top right;
      pointer-events: none;
      transition: opacity .22s ease, transform .22s ease;
    }

    .mobile-panel-handle {
      display: none;
      width: 100%;
      border: none;
      background: transparent;
      color: #5e564a;
      padding: 2px 0 10px;
      cursor: grab;
      touch-action: none;
    }

    .mobile-panel-handle .bar {
      display: block;
      width: 44px;
      height: 5px;
      border-radius: 999px;
      margin: 0 auto 6px;
      background: rgba(141, 130, 115, .58);
    }

    .mobile-panel-handle .label {
      display: block;
      text-align: center;
      font-size: .7rem;
      letter-spacing: .01em;
      color: #6a6257;
    }

    .tax-panel.show {
      opacity: 1;
      transform: translateX(0) scale(var(--panel-scale));
      pointer-events: auto;
    }

    .tax-panel h3 {
      margin: 0;
      font-size: .95rem;
      color: #4d473f;
    }

    .panel-title-row {
      display: flex;
      align-items: center;
      justify-content: space-between;
      gap: 8px;
    }

    .panel-size-controls {
      display: inline-flex;
      align-items: center;
      gap: 4px;
    }

    .panel-size-btn {
      width: 22px;
      height: 22px;
      border: 1px solid #dfd5c6;
      border-radius: 6px;
      background: rgba(255,255,255,.9);
      color: #5e564a;
      font-size: .78rem;
      line-height: 1;
      cursor: pointer;
      display: inline-flex;
      align-items: center;
      justify-content: center;
      padding: 0;
    }

    .panel-size-btn:disabled {
      opacity: .45;
      cursor: default;
    }

    .panel-collapse-btn {
      font-size: .88rem;
      font-weight: 600;
      line-height: 1;
    }

    .panel-body {
      margin-top: 2px;
      overflow: hidden;
      max-height: 2000px;
      opacity: 1;
      transform: translateY(0);
      transition: max-height .28s cubic-bezier(.2,.7,.2,1), opacity .22s ease, transform .22s ease, margin-top .22s ease;
    }

    .tax-panel.is-collapsed {
      overflow: hidden;
    }

    .tax-panel.is-collapsed .panel-body {
      max-height: 0;
      opacity: 0;
      transform: translateY(-10px);
      margin-top: 0;
      pointer-events: none;
    }

    .news-pill {
      border: 1px solid #ded6ca;
      border-radius: 999px;
      padding: 2px 8px;
      font-size: .68rem;
      background: rgba(255,255,255,.9);
      color: #5f584e;
      cursor: pointer;
      display: inline-flex;
      align-items: center;
      gap: 6px;
    }

    .news-pill .dot {
      width: 8px;
      height: 8px;
      border-radius: 50%;
      background: #2ea043;
      box-shadow: 0 0 0 1px rgba(255,255,255,.85);
    }

    .news-pill.is-hidden { display: none; }

    .news-drawer {
      position: absolute;
      top: 12px;
      right: calc(calc(var(--panel-width-base) * var(--panel-scale)) + 24px);
      width: min(520px, 48vw);
      max-height: calc((100% - 24px) / var(--panel-scale));
      overflow: auto;
      z-index: 14;
      border: 1px solid rgba(220, 212, 199, .92);
      border-radius: 16px;
      background: rgba(255, 252, 246, .9);
      box-shadow: 0 18px 34px rgba(66, 57, 44, .13);
      backdrop-filter: blur(6px);
      padding: 10px;
      opacity: 0;
      transform: translateX(12px) scale(var(--panel-scale));
      transform-origin: top right;
      pointer-events: none;
      transition: opacity .2s ease, transform .2s ease;
    }

    .news-drawer.show {
      opacity: 1;
      transform: translateX(0) scale(var(--panel-scale));
      pointer-events: auto;
    }

    .news-head {
      display: flex;
      align-items: center;
      justify-content: space-between;
      margin-bottom: 6px;
      color: #4d473f;
      font-size: .82rem;
      font-weight: 650;
    }

    .news-close {
      border: 1px solid #dfd5c6;
      border-radius: 8px;
      padding: 2px 6px;
      background: rgba(255,255,255,.9);
      cursor: pointer;
      color: #5e564a;
      font-size: .74rem;
    }

    .news-item {
      border: 1px solid #e5dccf;
      border-radius: 11px;
      padding: 7px 8px;
      background: rgba(255,255,255,.72);
      margin-bottom: 7px;
    }

    .news-item .meta {
      font-size: .64rem;
      color: #7a7267;
      margin-bottom: 2px;
    }

    .news-item .title {
      font-size: .95rem;
      color: #514a40;
      font-weight: 640;
      margin-bottom: 4px;
    }

    .news-item .sum {
      font-size: .77rem;
      color: #635b4f;
      line-height: 1.42;
      white-space: pre-wrap;
    }

    .election-history-btn-row {
      margin-top: 8px;
      display: flex;
      justify-content: flex-end;
    }

    .election-history-btn {
      border: 1px solid #d8cfbf;
      border-radius: 10px;
      padding: 5px 10px;
      font-size: .72rem;
      background: rgba(255,255,255,.82);
      color: #5b5348;
      cursor: pointer;
      transition: background .16s ease, border-color .16s ease, color .16s ease;
    }

    .election-history-btn.is-active {
      background: #efe5d6;
      border-color: #cbbca4;
      color: #433b31;
      font-weight: 620;
    }

    .election-history-drawer {
      position: absolute;
      top: 12px;
      right: calc(calc(var(--panel-width-base) * var(--panel-scale)) + 24px);
      width: min(936px, 79vw);
      max-height: calc((100% - 24px) / var(--panel-scale));
      overflow: auto;
      z-index: 15;
      border: 1px solid rgba(220, 212, 199, .94);
      border-radius: 16px;
      background: rgba(255, 252, 246, .92);
      box-shadow: 0 18px 34px rgba(66, 57, 44, .13);
      backdrop-filter: blur(6px);
      padding: 10px;
      opacity: 0;
      transform: translateX(12px) scale(var(--panel-scale));
      transform-origin: top right;
      pointer-events: none;
      transition: opacity .2s ease, transform .2s ease;
    }

    .election-history-drawer.show {
      opacity: 1;
      transform: translateX(0) scale(var(--panel-scale));
      pointer-events: auto;
    }

    .demografie-drawer {
      position: absolute;
      top: 12px;
      right: calc(calc(var(--panel-width-base) * var(--panel-scale)) + 24px);
      width: min(620px, 58vw);
      max-height: calc((100% - 24px) / var(--panel-scale));
      overflow: auto;
      z-index: 15;
      border: 1px solid rgba(220, 212, 199, .94);
      border-radius: 16px;
      background: rgba(255, 252, 246, .92);
      box-shadow: 0 18px 34px rgba(66, 57, 44, .13);
      backdrop-filter: blur(6px);
      padding: 10px;
      opacity: 0;
      transform: translateX(12px) scale(var(--panel-scale));
      transform-origin: top right;
      pointer-events: none;
      transition: opacity .2s ease, transform .2s ease;
    }

    .demografie-drawer.show {
      opacity: 1;
      transform: translateX(0) scale(var(--panel-scale));
      pointer-events: auto;
    }

    .guide-drawer {
      position: absolute;
      top: 12px;
      right: calc(calc(var(--panel-width-base) * var(--panel-scale)) + 24px);
      width: min(680px, 64vw);
      max-height: calc((100% - 24px) / var(--panel-scale));
      overflow: auto;
      z-index: 16;
      border: 1px solid rgba(220, 212, 199, .94);
      border-radius: 16px;
      background: rgba(255, 252, 246, .93);
      box-shadow: 0 18px 34px rgba(66, 57, 44, .13);
      backdrop-filter: blur(6px);
      padding: 10px;
      opacity: 0;
      transform: translateX(12px) scale(var(--panel-scale));
      transform-origin: top right;
      pointer-events: none;
      transition: opacity .2s ease, transform .2s ease;
    }

    .guide-drawer.show {
      opacity: 1;
      transform: translateX(0) scale(var(--panel-scale));
      pointer-events: auto;
    }

    .guide-drawer-content {
      display: grid;
      grid-template-columns: minmax(200px, 230px) 1fr;
      gap: 10px;
      align-items: start;
    }

    .guide-sections {
      min-width: 0;
    }

    .guide-toc {
      position: sticky;
      top: 0;
      align-self: start;
      border: 1px solid #e3d9ca;
      border-radius: 10px;
      background: rgba(255, 255, 255, .72);
      padding: 7px;
      max-height: min(68vh, 520px);
      overflow: auto;
      display: flex;
      flex-direction: column;
      gap: 5px;
    }

    .guide-toc-link {
      display: block;
      border: 1px solid transparent;
      border-radius: 8px;
      padding: 5px 7px;
      font-size: .71rem;
      color: #5c5348;
      text-decoration: none;
      background: transparent;
      transition: background .16s ease, border-color .16s ease, color .16s ease;
    }

    .guide-toc-link:hover,
    .guide-toc-link:focus-visible {
      background: rgba(248, 241, 231, .88);
      border-color: rgba(209, 196, 176, .76);
      color: #4b4338;
      outline: none;
    }

    .guide-toc-link.is-active {
      background: rgba(239, 227, 210, .82);
      border-color: rgba(184, 165, 136, .8);
      color: #41382d;
      font-weight: 620;
    }

    .guide-section {
      border: 1px solid #e3d9cb;
      border-radius: 11px;
      padding: 8px 9px;
      background: rgba(255, 255, 255, .7);
      margin-bottom: 7px;
      scroll-margin-top: 8px;
      transition: border-color .2s ease, box-shadow .2s ease, background .2s ease;
    }

    .guide-section:last-child {
      margin-bottom: 0;
    }

    .guide-section h3 {
      margin: 0 0 5px;
      font-size: .88rem;
      color: #4b4338;
      font-weight: 650;
    }

    .guide-section p {
      margin: 0 0 6px;
      font-size: .74rem;
      color: #60574b;
      line-height: 1.4;
    }

    .guide-figure {
      margin: 6px 0 0;
      border: 1px solid #e1d6c7;
      border-radius: 10px;
      padding: 6px;
      background: rgba(255, 255, 255, .78);
    }

    .guide-image {
      display: block;
      width: 100%;
      height: auto;
      border-radius: 8px;
      border: 1px solid rgba(219, 208, 190, .9);
    }

    .guide-figure figcaption {
      margin-top: 5px;
      font-size: .68rem;
      color: #6e6456;
      line-height: 1.35;
    }

    .guide-section ol {
      margin: 0;
      padding-left: 16px;
      color: #574f43;
      font-size: .74rem;
      line-height: 1.45;
    }

    .guide-section li + li {
      margin-top: 3px;
    }

    .guide-section.is-target {
      border-color: rgba(176, 149, 102, .92);
      background: rgba(255, 245, 223, .86);
      box-shadow: 0 0 0 2px rgba(198, 169, 115, .2);
    }

    .election-history-meta {
      color: #61584d;
      font-size: .72rem;
      margin-bottom: 7px;
      line-height: 1.34;
    }

    .election-history-layout {
      display: grid;
      grid-template-columns: minmax(210px, 240px) 1fr;
      gap: 10px;
      align-items: start;
    }

    .election-history-party-list {
      border: 1px solid #e5dccf;
      border-radius: 10px;
      background: rgba(255,255,255,.66);
      padding: 7px;
      max-height: 382px;
      overflow: auto;
    }

    .election-history-party-head {
      font-size: .66rem;
      color: #746b5f;
      margin-bottom: 6px;
      font-weight: 620;
    }

    .election-history-party-btn {
      width: 100%;
      display: flex;
      align-items: baseline;
      justify-content: space-between;
      gap: 8px;
      border: 1px solid transparent;
      border-radius: 8px;
      background: transparent;
      padding: 5px 7px;
      cursor: pointer;
      font-size: .78rem;
      text-align: left;
    }

    .election-history-party-btn:hover {
      background: rgba(248, 242, 233, .9);
      border-color: rgba(208, 198, 181, .62);
    }

    .election-history-party-btn.is-focused {
      background: rgba(239, 229, 214, .92);
      border-color: rgba(167, 146, 112, .92);
      box-shadow: inset 0 0 0 1px rgba(255,255,255,.76), 0 0 0 1px rgba(178, 154, 118, .12);
      transform: translateY(-1px);
    }

    .election-history-party-btn .name {
      color: var(--party-color, #5a5246);
      font-weight: 620;
    }

    .election-history-party-btn.is-focused .name,
    .election-history-party-btn.is-focused .pct {
      font-weight: 700;
    }

    .election-history-party-btn .pct {
      color: #4c4439;
      font-weight: 620;
      font-size: .84rem;
      flex: 0 0 auto;
    }

    .election-history-chart-wrap {
      border: 1px solid #e5dccf;
      border-radius: 10px;
      background: rgba(255,255,255,.66);
      padding: 6px 7px 7px;
    }

    .election-history-chart {
      width: 100%;
      height: 384px;
      display: block;
      border-radius: 8px;
      background: rgba(255,255,255,.84);
    }

    .election-history-year-note {
      margin-top: 4px;
      font-size: .68rem;
      color: #655c50;
      line-height: 1.3;
      min-height: 1.2em;
    }

    .tax-panel.is-home .kpis { display: none; }
    .tax-panel.is-home .panel-section {
      border-top: none;
      padding-top: 0;
      margin-top: 6px;
    }

    .home-feed { margin-top: 10px; }
    .home-feed.is-hidden { display: none; }
    .home-block {
      border: 1px solid #e0d8cb;
      border-radius: 11px;
      padding: 8px;
      background: rgba(255,255,255,.72);
      margin-bottom: 8px;
    }
    .home-block-title {
      font-size: .92rem;
      font-weight: 650;
      color: #4d473f;
      margin-bottom: 6px;
    }
    .home-list {
      max-height: 172px;
      overflow-y: auto;
      overflow-x: hidden;
      display: block;
    }

    .tax-panel.is-home .home-block {
      margin-bottom: 0;
    }

    .tax-panel.is-home .home-list {
      max-height: min(62vh, 560px);
    }
    .home-entry {
      border: none;
      border-bottom: 1px solid #e8dfd2;
      border-radius: 0;
      padding: 7px 2px;
      background: transparent;
      cursor: pointer;
      transition: background-color .16s ease, transform .16s ease;
    }
    .home-entry:hover {
      background: rgba(255,255,255,.55);
      transform: translateX(2px);
    }
    .home-entry:last-child { border-bottom: none; }
    .home-entry .h { display:flex; align-items:baseline; gap:8px; }
    .home-entry .d { font-size: .66rem; color: #8a8176; white-space: nowrap; }
    .home-entry .t { font-size: .9rem; color: #4f473d; font-weight: 640; }
    .home-entry .s { font-size: .77rem; color: #6f675c; margin-top: 2px; }

    .tax-panel .ctx {
      margin-top: 2px;
      color: #6f675c;
      font-size: .77rem;
    }

    .tax-panel .ctx strong {
      font-weight: 700;
      color: #4c443a;
    }

    .kpis {
      display: grid;
      grid-template-columns: repeat(3, minmax(0, 1fr));
      gap: 7px;
      margin-top: 10px;
    }
    .kpis.embed-menu-kpis {
      grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .embed-popular-vote-results-shell .kpis.embed-menu-kpis {
      grid-template-columns: repeat(3, minmax(0, 1fr));
    }

    .kpi {
      border: 1px solid #e0d8cb;
      border-radius: 11px;
      padding: 8px;
      background: rgba(255,255,255,.72);
    }

    .kpi .l {
      font-size: .66rem;
      color: #7a7267;
      margin-bottom: 3px;
    }

    .kpi .v {
      font-size: .85rem;
      font-weight: 700;
      color: #504a41;
    }

    .panel-section {
      margin-top: 10px;
      border-top: 1px dashed #ded4c5;
      padding-top: 10px;
    }

    .panel-section label {
      display: block;
      font-size: .73rem;
      color: #6f675c;
      margin-bottom: 3px;
    }

    .panel-grid {
      display: grid;
      grid-template-columns: 1fr 1fr;
      gap: 7px;
    }

    .panel-grid input, .panel-grid select {
      width: 100%;
      border: 1px solid #e1d9cc;
      border-radius: 9px;
      padding: 6px 8px;
      background: rgba(255,255,255,.88);
      color: #534d44;
      font-size: .78rem;
    }

    #inPopularVoteEvent {
      max-width: calc(var(--panel-width-base) * 2);
      text-overflow: ellipsis;
      white-space: nowrap;
      overflow: hidden;
    }

    .panel-note {
      margin-top: 8px;
      font-size: .7rem;
      color: #857d72;
    }

    .panel-badge {
      display: inline-flex;
      align-items: center;
      gap: 7px;
      margin-top: 6px;
      padding: 2px 8px;
      border: 1px solid #d9cfbf;
      border-radius: 999px;
      font-size: .66rem;
      color: #6a6257;
      background: rgba(255,255,255,.72);
    }

    .panel-badge-btn {
      border: 1px solid #cfbfa8;
      border-radius: 999px;
      padding: 2px 8px;
      background: rgba(255,255,255,.86);
      color: #5f564b;
      font-size: .66rem;
      cursor: pointer;
      line-height: 1.2;
    }

    .panel-badge-btn:hover {
      background: rgba(255,255,255,.98);
    }

    .panel-breakdown {
      margin-top: 8px;
      padding: 8px 10px;
      border: 1px solid #e8dfd1;
      border-radius: 10px;
      background: rgba(255,255,255,.72);
      font-size: .72rem;
      color: #645c51;
    }

    .panel-breakdown:empty {
      display: none;
    }

    .panel-breakdown .row {
      display: flex;
      justify-content: space-between;
      gap: 10px;
      margin: 3px 0;
    }

    .panel-breakdown .row strong {
      color: #4f473d;
      font-weight: 500;
    }

    .panel-breakdown .sum {
      margin-top: 6px;
      padding-top: 6px;
      border-top: 1px dashed #d9cfbf;
      color: #423a31;
    }

    .panel-breakdown .sum strong {
      font-weight: 700;
      color: #2f2821;
    }

    .demography-playback {
      margin-top: 10px;
      padding-top: 8px;
      border-top: 1px dashed #d9cfbf;
    }

    .demography-playback-scale {
      margin-top: 6px;
      font-size: .68rem;
      color: #746b60;
      min-height: 1.1em;
    }

    .demography-playback-controls {
      margin-top: 7px;
      display: grid;
      grid-template-columns: repeat(6, minmax(0, 1fr));
      gap: 6px;
    }

    .demography-playback-controls button {
      border: 1px solid #d8cfbf;
      border-radius: 999px;
      padding: 5px 6px;
      font-size: .69rem;
      background: rgba(255,255,255,.78);
      color: #5b5348;
      cursor: pointer;
      transition: background .16s ease, border-color .16s ease, color .16s ease;
    }

    .demography-playback-controls button:hover:not(:disabled) {
      background: #f3e8d8;
      border-color: #c9b89d;
      color: #433b31;
    }

    .demography-playback-controls button.is-active {
      background: #efe5d6;
      border-color: #cbbca4;
      color: #433b31;
      font-weight: 600;
    }

    .demography-playback-controls button:disabled {
      opacity: .48;
      cursor: default;
    }

    .country-mode {
      margin-top: 8px;
      display: flex;
      gap: 6px;
      align-items: center;
      flex-wrap: wrap;
    }

    .country-mode button {
      border: 1px solid #d8cfbf;
      border-radius: 999px;
      padding: 4px 10px;
      font-size: .7rem;
      background: rgba(255,255,255,.72);
      color: #5b5348;
      cursor: pointer;
    }

    .country-mode button.is-active {
      background: #efe5d6;
      border-color: #cbbca4;
      color: #433b31;
      font-weight: 600;
    }

    .country-mode button.country-reset {
      margin-left: auto;
      background: rgba(255,255,255,.78);
    }

    .country-mode button.country-reset:disabled {
      opacity: .5;
      cursor: default;
    }

    .country-search {
      margin-top: 6px;
    }

    .country-search input {
      width: 100%;
      border: 1px solid #d9cfbf;
      border-radius: 8px;
      padding: 4px 8px;
      font-size: .72rem;
      color: #4f473d;
      background: rgba(255,255,255,.88);
    }

    .country-preset {
      margin-top: 6px;
    }

    .country-preset select {
      width: 100%;
      border: 1px solid #d9cfbf;
      border-radius: 8px;
      padding: 4px 8px;
      font-size: .72rem;
      color: #4f473d;
      background: rgba(255,255,255,.88);
    }

    .country-picker {
      margin-top: 6px;
      border: 1px solid #e4dbcd;
      border-radius: 10px;
      padding: 7px 8px;
      max-height: 150px;
      overflow: auto;
      background: rgba(255,255,255,.62);
    }

    .country-option {
      display: flex;
      align-items: center;
      gap: 6px;
      font-size: .7rem;
      color: #5f574c;
      margin-bottom: 4px;
      user-select: none;
    }

    .country-option input:disabled {
      opacity: .45;
      cursor: not-allowed;
    }

    .country-option.is-disabled {
      opacity: .62;
    }

    .crime-subpoint-summary {
      font-size: .7rem;
      color: #5f574c;
      font-weight: 600;
    }

    .crime-subpoint-picker {
      margin-top: 4px;
      max-height: 126px;
    }

    .crime-subpoint-actions {
      margin-left: auto;
      display: inline-flex;
      align-items: center;
      gap: 6px;
    }

    .crime-subpoint-actions .country-reset {
      margin-left: 0;
    }

    .inline-toggle-btn {
      border: 0;
      background: transparent;
      color: #6a6155;
      font-size: .7rem;
      padding: 0;
      cursor: pointer;
      text-decoration: underline dotted;
      text-underline-offset: 1px;
    }

    .inline-toggle-btn:hover,
    .inline-toggle-btn:focus-visible {
      color: #3f372d;
      outline: none;
    }

    .crime-canton-list {
      margin-top: 4px;
      max-height: 104px;
      overflow: auto;
      padding-right: 3px;
    }

    .crime-canton-list-compact {
      max-height: 83px;
    }

    .migration-flow-card {
      margin-top: 8px;
      padding: 8px;
      border: 1px dashed #d8cfbf;
      border-radius: 10px;
      background: rgba(255,255,255,.64);
    }

    .migration-flow-title {
      font-size: .69rem;
      font-weight: 700;
      color: #4d453a;
      margin-bottom: 4px;
    }

    .migration-flow-row {
      margin-top: 6px;
    }

    .migration-flow-head {
      display: flex;
      justify-content: space-between;
      align-items: baseline;
      gap: 8px;
      font-size: .68rem;
      color: #5a5247;
      margin-bottom: 3px;
    }

    .migration-flow-head strong {
      color: #443c31;
      font-weight: 600;
    }

    .migration-flow-track {
      width: 100%;
      height: 8px;
      border-radius: 999px;
      background: rgba(210, 201, 188, .56);
      overflow: hidden;
    }

    .migration-flow-fill {
      height: 100%;
      border-radius: 999px;
      min-width: 1px;
    }

    .migration-flow-fill.is-inflow {
      background: #66d98f;
    }

    .migration-flow-fill.is-outflow {
      background: #ef6a5a;
    }

    .migration-flow-fill.is-positive {
      background: #99e8b1;
    }

    .migration-flow-fill.is-negative {
      background: #f2a44f;
    }

    .migration-flow-fill.is-neutral {
      background: #c8bfaf;
    }

    .migration-trend-card {
      margin-top: 2px;
    }

    .migration-trend-title {
      font-size: .69rem;
      font-weight: 700;
      color: #4d453a;
      margin-bottom: 5px;
    }

    .migration-trend-chart {
      width: 100%;
      height: 142px;
      display: block;
      border-radius: 8px;
      background: rgba(255,255,255,.82);
      border: 1px solid rgba(214, 203, 187, .72);
    }

    .migration-trend-axis-line {
      stroke: rgba(115, 104, 90, .62);
      stroke-width: 1;
    }

    .migration-trend-grid {
      stroke: rgba(184, 170, 148, .38);
      stroke-width: 1;
    }

    .migration-trend-zero {
      stroke: rgba(95, 86, 74, .45);
      stroke-width: 1.1;
      stroke-dasharray: 4 3;
    }

    .migration-trend-line {
      fill: none;
      stroke: #5f7ca0;
      stroke-width: 2.1;
      stroke-linecap: round;
      stroke-linejoin: round;
    }

    .migration-trend-point {
      fill: #f9f5ef;
      stroke: #5f7ca0;
      stroke-width: 1.3;
    }

    .migration-trend-point.is-selected {
      fill: #2f2821;
      stroke: #2f2821;
      stroke-width: 1.2;
    }

    .migration-trend-x-label,
    .migration-trend-y-label {
      fill: #72695d;
      font-size: .72rem;
      font-weight: 500;
    }

    .migration-trend-x-label {
      text-anchor: middle;
    }

    .migration-trend-y-label {
      text-anchor: end;
    }

    .migration-trend-y-title {
      fill: #5b5348;
      font-size: 8px;
      font-weight: 650;
      text-anchor: middle;
    }

    .migration-trend-x-title {
      fill: #5b5348;
      font-size: 8px;
      font-weight: 650;
      text-anchor: middle;
    }

    .wirtschaft-highlight {
      --wirtschaft-highlight-border: rgba(205, 181, 128, .45);
      --wirtschaft-highlight-bg:
        radial-gradient(circle at 18% 16%, rgba(246, 226, 176, .45), transparent 44%),
        linear-gradient(145deg, rgba(255, 248, 235, .96), rgba(247, 237, 217, .94));
      border: 1px solid var(--wirtschaft-highlight-border);
      background: var(--wirtschaft-highlight-bg);
      border-radius: 12px;
      padding: 10px 12px;
      margin: 8px 0 10px;
      box-shadow: 0 10px 22px rgba(77, 66, 36, .08);
    }

    .wirtschaft-highlight .headline {
      font-size: .78rem;
      color: #5d4a1f;
      font-weight: 700;
      letter-spacing: .01em;
      margin-bottom: 6px;
    }

    .wirtschaft-highlight .meta {
      font-size: .7rem;
      color: #5b4c2b;
      line-height: 1.35;
    }

    .wirtschaft-signal-controls {
      display: grid;
      grid-template-columns: repeat(2, minmax(0, 1fr));
      gap: 8px;
      margin-bottom: 8px;
    }

    .wirtschaft-signal-panel-title {
      font-size: .74rem;
      font-weight: 700;
      color: #5d4a1f;
      margin-bottom: 8px;
      letter-spacing: .01em;
    }

    .wirtschaft-signal-control label {
      display: block;
      margin-bottom: 3px;
      font-size: .62rem;
      font-weight: 700;
      color: #604f2f;
    }

    .wirtschaft-signal-select {
      width: 100%;
      min-height: 30px;
      border-radius: 8px;
      border: 1px solid var(--wirtschaft-highlight-border, rgba(205, 181, 128, .6));
      background: var(--wirtschaft-highlight-bg,
        radial-gradient(circle at 18% 16%, rgba(246, 226, 176, .45), transparent 44%),
        linear-gradient(145deg, rgba(255, 248, 235, .96), rgba(247, 237, 217, .94)));
      color: #483a21;
      font-size: .73rem;
      line-height: 1.2;
      padding: 5px 8px;
    }

    .wirtschaft-signal-select:focus {
      outline: none;
      border-color: rgba(176, 149, 89, .75);
      box-shadow: 0 0 0 2px rgba(198, 168, 105, .18);
    }

    #wirtschaftControls #inWirtschaftGroup {
      border-color: rgba(216, 198, 163, .9);
      background:
        radial-gradient(circle at 12% 16%, rgba(255, 249, 236, .55), transparent 48%),
        linear-gradient(145deg, rgba(255, 252, 246, .99), rgba(250, 244, 231, .97));
      color: #4f452f;
    }

    #wirtschaftSignalPanel {
      border-color: rgba(220, 206, 176, .9);
      background:
        radial-gradient(circle at 10% 12%, rgba(248, 236, 209, .36), transparent 54%),
        linear-gradient(140deg, rgba(255, 252, 246, .95), rgba(250, 242, 226, .88));
    }

    .wirtschaft-signal-summary .row {
      background: rgba(255, 255, 255, .58);
    }

    .wirtschaft-metric-label-row {
      display: inline-flex !important;
      align-items: center;
      gap: 6px;
    }

    .wirtschaft-metric-help {
      position: relative;
      display: inline-flex;
      align-items: center;
    }

    .wirtschaft-metric-help-btn {
      width: 18px;
      height: 18px;
      border-radius: 999px;
      border: 1px solid rgba(189, 166, 118, .85);
      background:
        radial-gradient(circle at 30% 26%, rgba(255, 249, 235, .94), rgba(247, 235, 209, .94));
      color: #675027;
      font-size: .62rem;
      font-weight: 700;
      line-height: 1;
      display: inline-flex;
      align-items: center;
      justify-content: center;
      cursor: help;
      padding: 0;
    }

    .wirtschaft-metric-help-tip {
      display: none;
      position: absolute;
      right: 0;
      left: auto;
      top: calc(100% + 8px);
      width: min(430px, calc(100vw - 66px));
      max-height: none;
      overflow: visible;
      padding: 8px 9px;
      border-radius: 10px;
      border: 1px solid rgba(198, 172, 120, .78);
      background:
        radial-gradient(circle at 16% 14%, rgba(252, 240, 214, .92), transparent 45%),
        linear-gradient(148deg, rgba(255, 252, 246, .98), rgba(248, 239, 222, .96));
      color: #5a4a2b;
      font-size: .64rem;
      line-height: 1.33;
      box-shadow: 0 11px 24px rgba(84, 67, 32, .2);
      opacity: 0;
      pointer-events: none;
      transform: translateY(6px);
      transform-origin: top right;
      transition: opacity .16s ease, transform .16s ease;
      z-index: 20;
    }

    .wirtschaft-metric-help-overlay {
      position: absolute;
      left: 0;
      top: 0;
      width: min(430px, calc(100vw - 66px));
      max-height: none;
      overflow: visible;
      padding: 8px 9px;
      border-radius: 10px;
      border: 1px solid rgba(198, 172, 120, .78);
      background:
        radial-gradient(circle at 16% 14%, rgba(252, 240, 214, .92), transparent 45%),
        linear-gradient(148deg, rgba(255, 252, 246, .98), rgba(248, 239, 222, .96));
      color: #5a4a2b;
      font-size: .64rem;
      line-height: 1.33;
      box-shadow: 0 11px 24px rgba(84, 67, 32, .2);
      opacity: 0;
      pointer-events: none;
      transform: translateY(6px);
      transform-origin: top right;
      transition: opacity .16s ease, transform .16s ease;
      z-index: 32;
      white-space: normal;
      overflow-wrap: anywhere;
      word-break: break-word;
    }

    .wirtschaft-metric-help-overlay.show {
      opacity: 1;
      transform: translateY(0);
    }

    .wirtschaft-metric-help-intro {
      margin-bottom: 6px;
      font-weight: 600;
      color: #5d4a1f;
    }

    .wirtschaft-metric-help-entry {
      margin-top: 6px;
      padding-top: 6px;
      border-top: 1px solid rgba(205, 183, 137, .46);
    }

    .wirtschaft-metric-help-entry:first-of-type {
      margin-top: 0;
      padding-top: 0;
      border-top: 0;
    }

    .wirtschaft-metric-help-entry strong {
      color: #4d3d21;
      font-weight: 700;
    }

    .wirtschaft-metric-help-level {
      display: inline-flex;
      align-items: center;
      margin-left: 4px;
      padding: 1px 5px;
      border-radius: 999px;
      border: 1px solid rgba(187, 163, 115, .72);
      background: rgba(250, 240, 219, .7);
      color: #6a5327;
      font-size: .58rem;
      font-weight: 700;
      letter-spacing: .01em;
    }

    .wirtschaft-metric-help-note {
      margin-top: 8px;
      padding-top: 7px;
      border-top: 1px dashed rgba(193, 170, 123, .58);
      color: #665435;
    }

    .wirtschaft-metric-grid {
      display: grid;
      grid-template-columns: repeat(2, minmax(0, 1fr));
      gap: 8px;
      margin: 8px 0 10px;
    }

    .wirtschaft-metric {
      border: 1px solid rgba(215, 205, 185, .9);
      background: rgba(255, 255, 255, .74);
      border-radius: 10px;
      padding: 7px 8px;
    }

    .wirtschaft-metric .k {
      font-size: .64rem;
      color: #786e60;
      margin-bottom: 3px;
    }

    .wirtschaft-metric .v {
      font-size: .84rem;
      font-weight: 700;
      color: #352f26;
    }

    .wirtschaft-note {
      margin-top: 7px;
      font-size: .68rem;
      color: #6f6556;
      line-height: 1.35;
    }

    .gehalt-highlight {
      --gehalt-highlight-border: rgba(142, 181, 132, .46);
      --gehalt-highlight-bg:
        linear-gradient(162deg, rgba(253, 247, 232, .94) 0%, rgba(244, 252, 240, .92) 46%, rgba(235, 248, 232, .88) 100%);
      border: 1px solid var(--gehalt-highlight-border);
      background: var(--gehalt-highlight-bg);
      border-radius: 12px;
      padding: 11px 12px;
      margin-bottom: 10px;
      box-shadow: 0 8px 17px rgba(90, 111, 67, .13);
    }

    .gehalt-highlight .headline {
      font-size: .78rem;
      font-weight: 600;
      letter-spacing: .01em;
      color: #34472c;
      margin-bottom: 4px;
    }

    .gehalt-highlight .meta {
      font-size: .66rem;
      color: #55664b;
      line-height: 1.4;
      margin-bottom: 8px;
    }

    .gehalt-metric-grid {
      display: grid;
      grid-template-columns: repeat(3, minmax(0, 1fr));
      gap: 7px;
    }

    .gehalt-metric {
      border: 1px solid rgba(194, 212, 173, .85);
      background: rgba(255, 255, 255, .74);
      border-radius: 10px;
      padding: 7px 8px;
    }

    .gehalt-metric .k {
      font-size: .62rem;
      color: #65795a;
      margin-bottom: 3px;
    }

    .gehalt-metric .v {
      font-size: .82rem;
      font-weight: 700;
      color: #294127;
      line-height: 1.2;
    }

    .gehalt-trend-card {
      margin-top: 9px;
      border: 1px solid rgba(201, 215, 190, .9);
      border-radius: 10px;
      background: rgba(255, 255, 255, .7);
      padding: 8px;
    }

    .gehalt-trend-title {
      font-size: .66rem;
      color: #5c704f;
      margin-bottom: 7px;
    }

    .gehalt-trend-chart {
      display: grid;
      grid-template-columns: repeat(auto-fit, minmax(44px, 1fr));
      gap: 5px;
      align-items: stretch;
    }

    .gehalt-trend-col {
      display: grid;
      grid-template-rows: auto 1fr auto;
      gap: 4px;
      justify-items: center;
      min-height: 108px;
    }

    .gehalt-trend-track {
      width: 100%;
      max-width: 24px;
      min-height: 74px;
      display: flex;
      align-items: flex-end;
      justify-content: center;
    }

    .gehalt-trend-bar {
      width: 100%;
      max-width: 24px;
      border-radius: 5px 5px 3px 3px;
      background: linear-gradient(180deg, rgba(86, 154, 80, .95) 0%, rgba(116, 176, 108, .95) 100%);
      box-shadow: 0 3px 7px rgba(84, 131, 71, .16);
      min-height: 4px;
    }

    .gehalt-trend-year {
      font-size: .58rem;
      color: #6f8164;
      line-height: 1;
    }

    .gehalt-trend-value {
      font-size: .56rem;
      color: #48613f;
      line-height: 1;
    }

    .gehalt-note {
      margin-top: 8px;
      font-size: .68rem;
      color: #627057;
      line-height: 1.35;
    }

    .demografie-pyramid {
      margin-top: 8px;
      border: 1px solid #e3dacd;
      border-radius: 10px;
      background: rgba(255,255,255,.7);
      padding: 8px;
      min-height: 140px;
      font-size: .72rem;
      color: #645c51;
    }

    .demografie-pyramid .title {
      font-size: .72rem;
      font-weight: 400;
      color: #645c51;
      margin-bottom: 6px;
    }

    .demografie-pyramid .meta {
      margin-top: 4px;
      font-size: .68rem;
      color: #6d6458;
      display: flex;
      justify-content: flex-start;
      gap: 8px;
      align-items: center;
    }

    .demografie-pyramid .meta.sex-row {
      margin-top: 2px;
      justify-content: space-between;
      gap: 16px;
    }

    .demografie-pyramid .meta.sex-row span {
      flex: 1 1 0;
    }

    .demografie-pyramid .meta.sex-row span:last-child {
      text-align: right;
    }

    .demografie-pyramid svg {
      width: 100%;
      height: 240px;
      display: block;
      border: 1px solid rgba(216, 206, 190, .68);
      border-radius: 8px;
      background: rgba(255,255,255,.82);
    }

    .demografie-drawer-content {
      display: grid;
      gap: 8px;
    }

    .demografie-year-list {
      max-height: 278px;
      overflow: auto;
      padding-right: 2px;
    }

    .crime-age-list {
      margin-top: 4px;
      max-height: 62px;
      overflow: auto;
      padding-right: 3px;
    }

    .nowrap {
      white-space: nowrap;
    }

    .ranking-criteria-summary {
      margin-top: 6px;
      font-size: .69rem;
      color: #6b6358;
      line-height: 1.34;
    }

    .ranking-criteria-picker {
      margin-top: 6px;
      max-height: 170px;
    }

    .ranking-result-list {
      margin-top: 6px;
      max-height: 190px;
      overflow: auto;
      padding-right: 2px;
    }

    .election-pie-layout {
      display: grid;
      grid-template-columns: auto 1fr;
      gap: 10px;
      align-items: start;
    }

    .election-pie {
      width: 118px;
      height: 118px;
      border-radius: 50%;
      overflow: hidden;
      background: transparent;
      display: grid;
      place-items: center;
    }

    .election-pie-svg {
      display: block;
      width: 100%;
      height: 100%;
      overflow: visible;
      shape-rendering: geometricPrecision;
      transform: translateZ(0);
    }

    .election-pie-separator {
      stroke: #ffffff;
      stroke-width: 2.1;
      stroke-linecap: round;
      vector-effect: non-scaling-stroke;
    }

    .election-pie-list {
      max-height: 178px;
      overflow: auto;
      padding-right: 2px;
    }

    .election-party-row {
      display: flex;
      flex-direction: column;
      align-items: stretch;
      gap: 2px;
      margin: 4px 0;
      font-size: .72rem;
    }

    .election-party-row-head {
      display: flex;
      justify-content: space-between;
      align-items: baseline;
      gap: 8px;
    }

    .election-party-row .party-name {
      display: inline-flex;
      align-items: center;
      gap: 6px;
      color: #534b40;
    }

    .election-party-row strong {
      color: #40382f;
      font-weight: 700;
      white-space: nowrap;
    }

    .election-party-pct {
      display: block;
      padding-left: 15px;
      color: #8c8377;
      font-size: .67rem;
      line-height: 1.18;
      text-align: left;
    }

    .election-party-count {
      white-space: nowrap;
    }

    .election-party-row.is-compact {
      display: grid;
      grid-template-columns: minmax(0, 1fr) auto;
      align-items: center;
      gap: 10px;
      margin: 0;
    }

    .election-party-row.is-compact .party-name {
      min-width: 0;
      overflow: hidden;
      text-overflow: ellipsis;
      white-space: nowrap;
      line-height: 1.08;
    }

    .election-party-row.is-compact .election-party-pct {
      padding-left: 0;
      color: #40382f;
      font-size: .7rem;
      font-weight: 700;
      text-align: right;
      white-space: nowrap;
      line-height: 1.08;
    }

    .election-meta-compact {
      margin-top: 0;
    }

    .election-party-dot {
      width: 9px;
      height: 9px;
      border-radius: 50%;
      background: var(--party-color, #a89f92);
      border: 1px solid rgba(70, 62, 51, .24);
      box-shadow: 0 0 0 1px rgba(255,255,255,.62);
      flex: 0 0 auto;
    }

    .popular-vote-pie-layout {
      grid-template-columns: 1fr;
      gap: 12px;
      align-items: stretch;
    }

    .popular-vote-pie {
      width: 152px;
      height: 152px;
      margin: 0 auto;
    }

    .popular-vote-pie-list {
      max-height: none;
      overflow: visible;
      padding-right: 0;
    }

    .election-meta {
      margin-top: 6px;
      color: #61594e;
      line-height: 1.36;
    }

    .panel-opt {
      margin-top: 8px;
      border: 1px solid #e7dfd2;
      border-radius: 10px;
      padding: 6px 9px;
      background: rgba(255,255,255,.62);
    }

    .panel-opt summary {
      cursor: pointer;
      font-size: .76rem;
      color: #6e665b;
      user-select: none;
    }

    .heat-toggle-row {
      margin-top: 8px;
      padding: 8px 10px;
      border: 1px solid #e7dfd2;
      border-radius: 10px;
      background: rgba(255,255,255,.62);
      display: flex;
      align-items: center;
      justify-content: space-between;
      gap: 10px;
      font-size: .76rem;
      color: #6e665b;
    }

    .heat-controls {
      display: inline-flex;
      align-items: center;
      gap: 8px;
    }

    .heat-toggle-row select,
    .child-age-select {
      border: 1px solid #d9cfbf;
      border-radius: 8px;
      padding: 3px 8px;
      font-size: .74rem;
      color: #4f473d;
      background: rgba(255,255,255,.88);
    }

    #layerRow {
      justify-content: flex-start;
      margin-top: 6px;
      padding: 0;
      border: none;
      background: transparent;
    }

    #layerRow #inLayer {
      width: 100%;
      font-size: .82rem;
      padding: 7px 10px;
      background: rgba(255,255,255,.9);
    }

    .heat-legend-top-row {
      display: flex;
      align-items: flex-start;
      gap: 10px;
    }

    .heat-legend-scale-wrap {
      flex: 1 1 auto;
      min-width: 0;
    }

    .heat-legend-top-row .scale {
      margin-top: 0;
    }

    #heatAggAbsoluteWrap {
      margin: 0;
      margin-left: 4px;
      white-space: nowrap;
      display: inline-flex;
      align-items: center;
      gap: 5px;
      flex: 0 0 auto;
      align-self: center;
      font-size: .7rem;
      margin-bottom: 0;
    }

    #heatAggAbsoluteWrap input {
      appearance: auto;
      opacity: 1;
      width: 14px;
      height: 14px;
      margin: 0;
      flex: 0 0 auto;
      accent-color: #3b7ed0;
    }

    .heat-legend {
      margin-top: 6px;
      padding: 8px 10px;
      border: 1px solid #e7dfd2;
      border-radius: 10px;
      background: rgba(255,255,255,.58);
      font-size: .7rem;
      color: #6e665b;
    }

    .heat-legend.is-hidden {
      display: none !important;
    }

    .heat-legend .scale {
      position: relative;
      margin-top: 5px;
      height: 8px;
      border-radius: 999px;
      background: linear-gradient(90deg, #66d98f 0%, #ffd58a 50%, #ef6a5a 100%);
      border: 1px solid rgba(129, 119, 104, .22);
      overflow: visible;
    }

    .heat-legend .marker {
      position: absolute;
      top: -2px;
      width: 3px;
      height: 10px;
      background: #ffffff;
      border-radius: 2px;
      box-shadow: 0 0 0 1px rgba(62, 54, 45, 0.6);
      transform: translateX(-1.5px);
      opacity: .95;
      pointer-events: none;
      transition: left .22s cubic-bezier(.2,.7,.2,1), opacity .16s ease;
      will-change: left;
    }

    .heat-legend .marker.is-hidden {
      display: none;
    }

    .heat-legend .marker.cutoff {
      width: 3px;
      height: 12px;
      top: -2px;
      transform: translateX(-1.5px);
      box-shadow: 0 0 0 1px rgba(255,255,255,.9);
    }

    .heat-legend .marker.focus-marker {
      background: #cfc8be;
      box-shadow: 0 0 0 1px rgba(62, 54, 45, 0.6);
      z-index: 2;
    }

    .heat-legend .rank-filter {
      margin-top: 8px;
      display: flex;
      align-items: center;
      gap: 6px;
      flex-wrap: nowrap;
    }

    .heat-legend .rank-filter > span {
      flex: 0 0 auto;
      white-space: nowrap;
    }

    .heat-legend .rank-filter #inHeatRankMode {
      flex: 0 0 auto;
    }

    .heat-legend .rank-filter #inHeatRankWinnerParty {
      width: 128px;
      flex: 0 0 128px;
    }

    .heat-legend .rank-filter input,
    .heat-legend .rank-filter select {
      border: 1px solid #d9cfbf;
      border-radius: 8px;
      padding: 2px 8px;
      font-size: .72rem;
      color: #4f473d;
      background: rgba(255,255,255,.9);
    }

    .heat-legend .rank-filter input {
      width: 84px;
      flex: 0 0 84px;
    }

    .heat-legend .filter-note {
      margin-top: 4px;
      color: #6a6155;
      font-size: .68rem;
    }

    .heat-legend .labels {
      margin-top: 5px;
      display: flex;
      justify-content: space-between;
      gap: 8px;
    }

    .heat-legend .current {
      margin-top: 5px;
      color: #5e554a;
    }

    .start-weather-legend {
      margin-top: 8px;
      border-color: #ded8cf;
      background: linear-gradient(180deg, rgba(255,255,255,.84) 0%, rgba(255,255,255,.68) 100%);
    }

    .start-weather-legend .home-block-title {
      margin-bottom: 7px;
    }

    .start-weather-legend .scale {
      margin-top: 0;
      background: linear-gradient(90deg, #0a2f86 0%, #1d66d8 22%, #57b6ff 42%, #ffe079 65%, #ff964e 82%, #d7301f 100%);
    }

    .start-weather-legend .labels {
      font-weight: 620;
      color: #574f44;
    }

    .start-weather-legend .current {
      font-size: .72rem;
      color: #5a5247;
    }

    .switch {
      position: relative;
      display: inline-block;
      width: 42px;
      height: 24px;
    }

    .switch input {
      opacity: 0;
      width: 0;
      height: 0;
    }

    .slider {
      position: absolute;
      cursor: pointer;
      inset: 0;
      background-color: #d8cec0;
      transition: .2s;
      border-radius: 999px;
      border: 1px solid #cfc3b2;
    }

    .slider:before {
      position: absolute;
      content: "";
      height: 18px;
      width: 18px;
      left: 2px;
      top: 2px;
      background-color: #fff;
      transition: .2s;
      border-radius: 50%;
      box-shadow: 0 1px 4px rgba(0,0,0,.2);
    }

    .switch input:checked + .slider {
      background-color: #8dd7a6;
      border-color: #69c28a;
    }

    .switch input:checked + .slider:before {
      transform: translateX(18px);
    }

    .is-hidden {
      display: none !important;
    }

    .map-shell.is-zoomed .canton:hover {
      transform: none;
      filter: none;
    }

    .map-shell.is-zooming #hover-overlay,
    .map-shell.is-zooming #hover-municipalities,
    .map-shell.is-zooming .hover-municipality,
    .map-shell.is-zooming .floating-title,
    .map-shell.is-zooming .canton,
    .map-shell.is-zooming .label,
    .map-shell.is-zooming .municipality,
    .map-shell.is-zooming .zoom-lake,
    .map-shell.is-zooming .muni-tooltip,
    .map-shell.is-zooming .canton-tooltip {
      transition: none !important;
      animation: none !important;
    }

    .map-shell.is-zooming .label,
    .map-shell.is-zooming .label-value {
      opacity: 0 !important;
      text-rendering: optimizeSpeed !important;
    }

    .map-shell.is-zooming .canton,
    .map-shell.is-zooming .municipality,
    .map-shell.is-zooming .hover-municipality,
    .map-shell.is-zooming .zoom-lake,
    .map-shell.is-zooming .hover-canton-overlay {
      stroke: none !important;
      stroke-width: 0 !important;
      vector-effect: none !important;
      shape-rendering: optimizeSpeed !important;
      filter: none !important;
    }

    .map-shell.is-zooming .floating-title,
    .map-shell.is-zooming .muni-tooltip,
    .map-shell.is-zooming .canton-tooltip {
      backdrop-filter: none !important;
      filter: none !important;
    }

    .map-shell.is-zooming .tax-panel,
    .map-shell.is-zooming .rent-tax-panel,
    .map-shell.is-zooming .heat-agg-panel,
    .map-shell.is-zooming .rent-diff-legend,
    .map-shell.is-zooming .legend,
    .map-shell.is-zooming .status {
      backdrop-filter: none !important;
      filter: none !important;
    }

    #hover-overlay {
      pointer-events: none;
      transition: opacity .14s ease;
      transform: none;
      opacity: 0;
    }

    .map-shell:not(.is-zoomed) #hover-overlay {
      transition: none;
    }

    #hover-municipalities {
      transition: opacity .14s ease;
      opacity: 1;
    }

    #hover-overlay.active-preview {
      transform: none;
      opacity: 1;
    }

    .hover-canton-overlay {
      opacity: 1;
      pointer-events: none;
      stroke: #c8c1b4;
      stroke-width: 1.35;
      filter: none;
    }

    .map-shell:not(.is-zoomed) .hover-canton-overlay {
      stroke: var(--canton-boundary-stroke);
      stroke-width: .42;
      shape-rendering: geometricPrecision;
    }

    .hover-municipality {
      fill: none;
      stroke: rgba(110, 101, 87, .42);
      stroke-width: .65;
      vector-effect: non-scaling-stroke;
      opacity: 0;
      transition: opacity .16s ease;
    }

    #map {
      width: 100%;
      height: 100%;
      display: block;
      overflow: hidden;
    }

    #fine-heat-canvas-host {
      pointer-events: none;
    }

    .fine-heat-canvas {
      width: 100%;
      height: 100%;
      display: block;
      pointer-events: none;
    }

    .floating-title {
      position: absolute;
      top: var(--map-ui-offset);
      left: 50%;
      transform: translateX(-50%);
      z-index: 6;
      height: 34px;
      padding: 0 14px;
      border-radius: 999px;
      background: rgba(255,255,255,.82);
      border: 1px solid #dfd8cc;
      color: #5f584e;
      font-size: .86rem;
      font-weight: 600;
      display: inline-flex;
      align-items: center;
      justify-content: center;
      opacity: 0;
      transition: opacity .35s ease;
      pointer-events: none;
      backdrop-filter: blur(3px);
    }

    .floating-title.show { opacity: 1; }

    .map-shell.is-embed-title-bottom .floating-title {
      top: auto;
      bottom: var(--map-ui-offset);
    }

    .canton {
      cursor: pointer;
      transform-box: fill-box;
      transform-origin: center;
      transition: fill .2s ease, stroke .2s ease;
      stroke: var(--stroke);
      stroke-width: 1.2;
      fill: var(--base);
      filter: none;
      outline: none;
      -webkit-tap-highlight-color: transparent;
    }

    .map-shell:not(.is-zoomed) .canton {
      transition: none;
      stroke: var(--canton-boundary-stroke);
      stroke-width: .42;
      vector-effect: non-scaling-stroke;
      shape-rendering: geometricPrecision;
    }

    .canton:focus,
    .canton:focus-visible { outline: none; }

    .canton:hover {
      transform: none;
      filter: none;
    }

    .canton.active {
      transform: none;
      filter: none;
      stroke: #c8c1b4;
      stroke-width: 1.5;
    }

    .canton.is-compact-selected {
      stroke: var(--canton-boundary-stroke);
      stroke-width: 1.25;
      stroke-linejoin: round;
      vector-effect: non-scaling-stroke;
      filter: brightness(1.24) drop-shadow(0 0 6px rgba(255, 247, 225, .96));
    }

    .label {
      font-size: 10px;
      font-weight: 600;
      fill: #655d53;
      text-anchor: middle;
      dominant-baseline: middle;
      pointer-events: none;
      user-select: none;
      paint-order: stroke;
      stroke: rgba(255,255,255,.7);
      stroke-width: 2;
      transition: opacity .2s ease;
    }

    .label-value {
      font-size: 8px;
      font-weight: 600;
      fill: #564f45;
      stroke: rgba(255,255,255,.82);
      stroke-width: 2.2;
    }

    #municipalities {
      transition: none;
    }

    #municipalities.active-overlay {
      transform: none;
    }

    #active-overlay {
      pointer-events: auto;
      transform: none;
    }

    .active-canton-overlay {
      stroke: #c8c1b4;
      stroke-width: 1.5;
      filter: none;
      pointer-events: none;
    }

    #compact-focus-hit-layer {
      pointer-events: none;
    }

    .compact-focus-hit-target {
      fill: rgba(0, 0, 0, 0.001);
      stroke: rgba(0, 0, 0, 0);
      opacity: 0;
      pointer-events: all;
      vector-effect: non-scaling-stroke;
    }

    .compact-focus-canton-hit {
      stroke-width: 8;
    }

    .compact-focus-municipality-hit {
      stroke-width: 6;
    }

    .municipality {
      fill: rgba(236, 232, 225, .01);
      stroke: rgba(110, 101, 87, .48);
      stroke-width: .7;
      vector-effect: non-scaling-stroke;
      pointer-events: auto;
      cursor: pointer;
      opacity: 0;
      transition: opacity .22s ease, fill .28s cubic-bezier(.2,.7,.2,1), stroke .22s ease, stroke-width .22s ease, filter .22s ease;
    }

    .municipality.is-hovered {
      fill: rgba(255, 244, 204, .52);
      stroke: rgba(58, 42, 16, .98);
      stroke-width: 2.1;
      filter: none;
    }

    .municipality.is-selected {
      fill: rgba(255, 241, 186, .62);
      stroke: rgba(95, 70, 28, .98);
      stroke-width: 1.35;
      filter: none;
    }

    .fine-boundary-muni {
      fill: none;
      stroke: rgba(92, 84, 72, .78);
      stroke-width: .14;
      vector-effect: non-scaling-stroke;
      pointer-events: none;
      shape-rendering: geometricPrecision;
    }

    .fine-boundary-canton {
      fill: none;
      stroke: rgba(66, 59, 49, .95);
      stroke-width: .42;
      vector-effect: non-scaling-stroke;
      pointer-events: none;
      shape-rendering: geometricPrecision;
    }

    .selected-muni-outline {
      fill: none;
      stroke: rgba(95, 70, 28, .98);
      stroke-width: 2.2;
      vector-effect: non-scaling-stroke;
      pointer-events: none;
      filter: drop-shadow(0 0 1px rgba(255, 247, 226, .9));
    }

    .hover-muni-outline {
      fill: none;
      stroke: rgba(28, 22, 14, .98);
      stroke-width: 1.6;
      vector-effect: non-scaling-stroke;
      pointer-events: none;
      filter: none;
    }

    .muni-tooltip {
      position: absolute;
      z-index: 12;
      min-width: 0;
      width: max-content;
      max-width: min(420px, calc(100vw - 24px));
      padding: 8px 10px;
      border-radius: 12px;
      border: 1px solid rgba(219, 210, 197, .92);
      background: rgba(255, 252, 247, .95);
      color: #544d43;
      box-shadow: 0 10px 22px rgba(68, 59, 46, .16);
      backdrop-filter: blur(4px);
      pointer-events: none;
      opacity: 0;
      transform: translate(-50%, calc(-100% - 12px)) scale(.98);
      transition: opacity .14s ease, transform .14s ease;
      white-space: normal;
      overflow-wrap: anywhere;
      word-break: break-word;
    }

    .muni-tooltip.show {
      opacity: 1;
      transform: translate(-50%, calc(-100% - 12px)) scale(1);
    }

    .muni-tooltip.flip {
      transform: translate(-50%, 12px) scale(.98);
    }

    .muni-tooltip.show.flip {
      transform: translate(-50%, 12px) scale(1);
    }

    .muni-tooltip .name {
      font-size: .86rem;
      font-weight: 650;
      margin-bottom: 2px;
    }

    .muni-tooltip .meta {
      font-size: .76rem;
      color: #70685d;
      line-height: 1.35;
      white-space: normal;
    }

    .muni-tooltip .rent-diff-positive {
      color: #2f8f4b;
      font-weight: 650;
    }

    .muni-tooltip .rent-diff-negative {
      color: #be4a4a;
      font-weight: 650;
    }

    .canton-tooltip {
      position: absolute;
      z-index: 12;
      min-width: 0;
      width: max-content;
      max-width: min(420px, calc(100vw - 24px));
      padding: 8px 10px;
      border-radius: 12px;
      border: 1px solid rgba(219, 210, 197, .92);
      background: rgba(255, 252, 247, .95);
      color: #544d43;
      box-shadow: 0 10px 22px rgba(68, 59, 46, .16);
      backdrop-filter: blur(4px);
      pointer-events: none;
      opacity: 0;
      transform: translate(-50%, calc(-100% - 12px)) scale(.98);
      transition: opacity .14s ease, transform .14s ease;
      white-space: normal;
      overflow-wrap: anywhere;
      word-break: break-word;
    }

    .canton-tooltip.show {
      opacity: 1;
      transform: translate(-50%, calc(-100% - 12px)) scale(1);
    }

    .canton-tooltip.flip {
      transform: translate(-50%, 12px) scale(.98);
    }

    .canton-tooltip.show.flip {
      transform: translate(-50%, 12px) scale(1);
    }

    .canton-tooltip .name {
      font-size: .86rem;
      font-weight: 650;
      margin-bottom: 2px;
    }

    .canton-tooltip .meta {
      font-size: .76rem;
      color: #70685d;
      line-height: 1.35;
      white-space: normal;
    }

    .zoom-lake {
      fill: rgba(94, 185, 255, .86);
      stroke: rgba(31, 133, 223, .98);
      stroke-width: .95;
      vector-effect: non-scaling-stroke;
      pointer-events: none;
      opacity: 0;
      transition: opacity .2s ease, fill .22s ease, stroke .22s ease;
    }

    .overview-lake-hit {
      fill: #ffffff;
      stroke: rgba(215, 209, 198, .95);
      stroke-width: .95;
      vector-effect: non-scaling-stroke;
      shape-rendering: geometricPrecision;
      paint-order: stroke fill;
      transition: fill .22s ease, stroke .22s ease, stroke-width .18s ease;
    }

    .status {
      position: absolute;
      right: 12px;
      bottom: 12px;
      z-index: 13;
      font-size: .8rem;
      color: #6f675c;
      padding: 5px 9px;
      border: 1px solid rgba(220, 212, 199, .88);
      border-radius: 999px;
      background: rgba(255,252,247,.72);
      backdrop-filter: blur(3px);
      min-height: 1.2em;
      pointer-events: none;
      display: none !important;
    }

    .loading,
    .error {
      margin: auto;
      text-align: center;
      color: #7c7468;
    }

    .error { color: #7d5e5e; }

    @media (max-width: 920px), (pointer: coarse) {
      .stage {
        padding: env(safe-area-inset-top, 0px) 0 0 0;
      }

      .mobile-panel-scrim {
        display: block;
      }

      body.mobile-panel-open .mobile-panel-scrim {
        opacity: 1;
        pointer-events: auto;
      }

      .tax-panel {
        left: 0;
        right: 0;
        bottom: 0;
        top: auto;
        width: 100%;
        max-height: min(84vh, 760px);
        border-radius: 18px 18px 0 0;
        border-left: none;
        border-right: none;
        border-bottom: none;
        box-shadow: 0 -10px 28px rgba(66, 57, 44, .22);
        padding: 8px 10px calc(12px + env(safe-area-inset-bottom, 0px));
        transform: translateY(calc(100% - var(--mobile-sheet-peek))) !important;
        transform-origin: bottom center;
        opacity: 1;
        pointer-events: auto;
        overscroll-behavior: contain;
      }

      body.mobile-panel-open .tax-panel {
        transform: translateY(0) !important;
      }

      .mobile-panel-handle {
        display: block;
      }

      .panel-size-controls {
        display: none;
      }

      .tax-panel .ctx {
        margin-top: 0;
        font-size: .72rem;
      }

      .kpis {
        gap: 6px;
      }

      .kpi {
        padding: 7px;
      }

      .panel-grid {
        grid-template-columns: 1fr;
      }

      .rent-tax-panel .panel-grid {
        grid-template-columns: 1fr;
      }

      .real-estate-main-grid,
      .real-estate-advanced-grid,
      .real-estate-actions {
        grid-template-columns: 1fr;
      }

      .heat-agg-config-grid {
        grid-template-columns: 1fr;
      }

      .rent-compare-top {
        grid-template-columns: 1fr;
      }

      .heat-toggle-row {
        align-items: flex-start;
        flex-direction: column;
      }

      .heat-controls {
        width: 100%;
        justify-content: space-between;
      }

      .election-pie-layout {
        grid-template-columns: 1fr;
      }

      .election-pie {
        width: 104px;
        height: 104px;
        margin: 0 auto;
      }

      .embed-election-compact-shell .embed-election-compact-pie-layout {
        grid-template-columns: 94px minmax(0, 1fr);
      }

      .embed-election-compact-shell .embed-election-compact-pie-chart {
        width: 94px;
        height: 94px;
        margin: 0;
        justify-self: start;
      }

      .embed-election-compact-wide-pie-card .embed-election-compact-pie-layout {
        grid-template-columns: 108px minmax(0, 1fr);
        gap: 12px;
      }

      .embed-election-compact-wide-pie-card .embed-election-compact-pie-chart {
        width: 108px;
        height: 108px;
        min-width: 108px;
        min-height: 108px;
        max-width: 108px;
        max-height: 108px;
      }

      .embed-election-compact-wide-pie-card .embed-election-compact-pie-list {
        min-height: 108px;
      }

      .news-drawer {
        top: 10px;
        left: 10px;
        right: 10px;
        width: auto;
        max-height: 42vh;
        z-index: 16;
        transform: translateY(-8px);
        transform-origin: top center;
      }

      .news-drawer.show {
        transform: translateY(0);
      }

      .election-history-drawer {
        top: 10px;
        left: 10px;
        right: 10px;
        width: auto;
        max-height: 64vh;
        z-index: 17;
        transform: translateY(-8px);
        transform-origin: top center;
      }

      .election-history-drawer.show {
        transform: translateY(0);
      }

      .demografie-drawer {
        top: 10px;
        left: 10px;
        right: 10px;
        width: auto;
        max-height: 62vh;
        z-index: 17;
        transform: translateY(-8px);
        transform-origin: top center;
      }

      .demografie-drawer.show {
        transform: translateY(0);
      }

      .guide-drawer {
        top: 10px;
        left: 10px;
        right: 10px;
        width: auto;
        max-height: 72vh;
        z-index: 18;
        transform: translateY(-8px);
        transform-origin: top center;
      }

      .guide-drawer.show {
        transform: translateY(0);
      }

      .guide-drawer-content {
        grid-template-columns: 1fr;
      }

      .guide-toc {
        position: static;
        max-height: 148px;
      }

      .election-history-layout {
        grid-template-columns: 1fr;
      }

      .election-history-party-list {
        max-height: 204px;
      }

      .election-history-chart {
        height: 302px;
      }

      .legend {
        left: var(--map-ui-offset);
        bottom: calc(74px + env(safe-area-inset-bottom, 0px));
        max-width: min(92vw, 780px);
      }

      .legend-tools {
        width: 100%;
      }

      .map-shell {
        --map-ui-offset: 12px;
      }

      .muni-search-shell {
        width: min(450px, calc(100% - (var(--map-ui-offset) * 2)));
      }

      body.is-embed-mode .muni-search-shell {
        width: min(450px, calc(100% - (var(--map-ui-offset) * 2)));
      }

      .muni-search-shell.is-super-apps-open {
        --super-apps-shift-y: 118px;
        --rent-diff-shift-y: 118px;
      }

      .status {
        right: var(--map-ui-offset);
        bottom: calc(74px + env(safe-area-inset-bottom, 0px));
      }
    }
