.imap:not(.active) { display: none !important; }
.imap { display: grid; margin: calc(-1 * var(--space-8)) calc(-1 * var(--space-gutter)) 0; min-block-size: max(32rem,calc(100svh - var(--header-height))); --imap-tools-width: min(18rem, 34vw); }
.imap.is-fullscreen { position: fixed; inset: 0px; z-index: var(--z-modal); margin: 0px; min-block-size: 100svh; background: var(--surface-0); }
.imap.is-fullscreen .imap__app { block-size: max(32rem, 100svh); min-block-size: max(32rem, 100svh); }
html.imap-scroll-lock, html.imap-scroll-lock body { overflow: hidden; }
.imap__app { position: relative; block-size: max(32rem,calc(100svh - var(--header-height))); min-block-size: 32rem; overflow: hidden; background: rgb(21, 66, 98); }
.imap__sidebar, .imap__panel { min-block-size: 0px; background: var(--surface-1); }
.imap__sidebar { position: absolute; z-index: 5; inset-block: var(--space-3); inset-inline-start: var(--space-3); inline-size: var(--imap-tools-width); max-block-size: calc(100% - 2 * var(--space-3)); display: grid; align-content: start; gap: var(--space-4); padding: var(--space-4); border: var(--border-width) solid var(--border); border-radius: var(--radius-lg); box-shadow: var(--shadow-2); overflow-y: auto; overscroll-behavior: contain; }
.imap__brand h1, .imap__brand h2 { font-size: var(--text-lg); margin-block: var(--space-1); }
.imap__brand p { color: var(--ink-soft); font-size: var(--text-sm); }
.imap__kicker { font-family: var(--font-sans); font-size: var(--text-xs); font-weight: 700; letter-spacing: var(--tracking-wide); text-transform: uppercase; color: var(--lumin-bright); }
.imap__regions { display: flex; flex-wrap: wrap; gap: var(--space-1); margin-block: var(--space-2) var(--space-1); padding: 0.2rem; background: var(--surface-2); border: var(--border-width) solid var(--border); border-radius: var(--radius-pill); }
.imap__region-tab { flex: 1 1 0%; text-align: center; padding: .3rem var(--space-2); border-radius: var(--radius-pill); font-family: var(--font-sans); font-size: var(--text-xs); font-weight: 700; color: var(--ink-soft); text-decoration: none; white-space: nowrap; transition: color var(--dur-fast) var(--ease),background var(--dur-fast) var(--ease); }
.imap__region-tab:hover { color: var(--ink); background: color-mix(in oklch,var(--ink) 8%,transparent); }
.imap__region-tab.is-current { color: var(--surface-0); background: var(--accent-strong); }
.imap__group { display: grid; gap: var(--space-2); }
.imap__group-head { display: flex; align-items: center; justify-content: space-between; gap: var(--space-2); color: var(--ink); font-family: var(--font-sans); font-weight: 800; font-size: var(--text-sm); }
.imap__layers { display: grid; gap: var(--space-2); }
.imap__layer-group { display: grid; gap: var(--space-1); min-inline-size: 0px; }
.imap__cat-row { display: flex; align-items: stretch; overflow: hidden; border: var(--border-width) solid color-mix(in oklch,var(--cat-color, var(--accent-strong)) 34%,var(--border)); border-radius: var(--radius-md); background: color-mix(in oklch,var(--cat-color, var(--accent-strong)) 13%,var(--surface-1)); transition: border-color var(--dur-fast) var(--ease),background var(--dur-fast) var(--ease); }
.imap__cat-row:has(.imap__layer.is-active) { border-color: color-mix(in oklch,var(--cat-color, var(--accent-strong)) 68%,transparent); background: color-mix(in oklch,var(--cat-color, var(--accent-strong)) 26%,var(--surface-1)); }
.imap__cat-row .imap__layer { flex: 1 1 0%; min-inline-size: 0px; border: 0px; border-radius: 0px; background: transparent; }
.imap__cat-row .imap__layer:hover { background: color-mix(in oklch,var(--cat-color, var(--ink)) 10%,transparent); }
.imap__cat-row .imap__layer.is-active { color: var(--ink); background: transparent; }
.imap__cat-expand { flex-shrink: 0; display: grid; place-items: center; inline-size: 2.1rem; border: 0px; border-inline-start: var(--border-width) solid color-mix(in oklch,var(--cat-color, var(--border)) 24%,var(--border)); background: color-mix(in oklch,var(--cat-color, var(--accent-strong)) 6%,transparent); color: var(--ink-soft); cursor: pointer; transition: color var(--dur-fast) var(--ease),background var(--dur-fast) var(--ease); }
.imap__cat-expand:hover { color: var(--ink); background: color-mix(in oklch,var(--cat-color, var(--accent-strong)) 16%,transparent); }
.imap__cat-expand svg { transition: transform var(--dur-fast) var(--ease); }
.imap__cat-expand.is-open { color: var(--ink); background: color-mix(in oklch,var(--cat-color, var(--accent-strong)) 18%,transparent); }
.imap__cat-expand.is-open svg { transform: rotate(180deg); }
.imap__cat-body { display: grid; gap: var(--space-1); padding: var(--space-1) 0 var(--space-2); max-block-size: 20rem; overflow-y: auto; overscroll-behavior: contain; }
.imap__cat-body[hidden] { display: none; }
.imap__layer-group.is-layer-hidden .imap__cat-body { opacity: 0.55; }
@media (prefers-reduced-motion: no-preference) {
  .imap__layer-group .imap__cat-body { transition: opacity var(--dur-fast) var(--ease); }
}
.imap__aniimo-filter { display: grid; gap: var(--space-1); max-block-size: none; overflow-y: visible; }
.imap.is-loading-spawns [data-map-layer-group="creatures"] .imap__layer-count { animation: 1s ease-in-out 0s infinite normal none running imap-pulse; }
@keyframes imap-pulse { 
  50% { opacity: 0.35; }
}
@media (prefers-reduced-motion: reduce) {
  .imap.is-loading-spawns [data-map-layer-group="creatures"] .imap__layer-count { animation: auto ease 0s 1 normal none running none; opacity: 0.5; }
}
.imap__loading-bar { position: absolute; inset-block-start: 0px; inset-inline: 0px; block-size: 0.2rem; z-index: 30; background: var(--accent-strong); transform-origin: 0px 50%; transform: scaleX(0); opacity: 0; pointer-events: none; }
.imap.is-loading-pois .imap__loading-bar, .imap.is-loading-spawns .imap__loading-bar { opacity: 1; animation: 1.1s ease-in-out 0s infinite normal none running imap-loading-sweep; }
@keyframes imap-loading-sweep { 
  0% { transform: scaleX(0); transform-origin: 0px 50%; }
  45% { transform: scaleX(0.6); transform-origin: 0px 50%; }
  55% { transform-origin: 100% 50%; }
  100% { transform: scaleX(0); transform-origin: 100% 50%; }
}
@media (prefers-reduced-motion: reduce) {
  .imap.is-loading-pois .imap__loading-bar, .imap.is-loading-spawns .imap__loading-bar { animation: auto ease 0s 1 normal none running none; opacity: 1; transform: scaleX(1); }
}
.imap__error { position: absolute; z-index: 30; inset-block-start: 50%; inset-inline-start: 50%; transform: translate(-50%, -50%); display: grid; justify-items: center; gap: var(--space-3); max-inline-size: 22rem; padding: var(--space-4); border: var(--border-width) solid var(--border); border-radius: var(--radius-lg); background: var(--surface-1); box-shadow: var(--shadow-2); text-align: center; color: var(--ink-soft); }
.imap__error[hidden] { display: none; }
.imap__subfilters { display: grid; grid-template-columns: 1fr; gap: var(--space-1); }
.imap__subfilter { display: grid; grid-template-columns: 1.15rem minmax(0px, 1fr) auto; align-items: center; gap: var(--space-2); min-block-size: 2.5rem; inline-size: 100%; padding: .24rem var(--space-2); border: var(--border-width) solid var(--border); border-radius: var(--radius-sm); background: var(--surface-1); color: var(--ink-soft); font-style: inherit; font-variant: inherit; font-stretch: inherit; line-height: inherit; font-family: inherit; font-optical-sizing: inherit; font-size-adjust: inherit; font-kerning: inherit; font-feature-settings: inherit; font-variation-settings: inherit; font-language-override: inherit; font-size: var(--text-xs); font-weight: 800; cursor: pointer; text-align: start; transition: border-color var(--dur-fast) var(--ease),background var(--dur-fast) var(--ease); }
.imap__subfilter-check { inline-size: 1.15rem; block-size: 1.15rem; border: 1.5px solid var(--border-strong); border-radius: 0.34rem; background: color-mix(in oklch,var(--surface-3) 70%,transparent); position: relative; transition: background var(--dur-fast) var(--ease),border-color var(--dur-fast) var(--ease); }
.imap__subfilter.is-active .imap__subfilter-check, .imap__aniimo-item.is-active .imap__subfilter-check { background: var(--accent-strong); border-color: var(--accent-strong); }
.imap__subfilter.is-active .imap__subfilter-check::after, .imap__aniimo-item.is-active .imap__subfilter-check::after { content: ""; position: absolute; inset-block-start: 0.14rem; inset-inline-start: 0.35rem; inline-size: 0.3rem; block-size: 0.56rem; border-top-color: ; border-top-style: ; border-right-color: ; border-right-style: ; border-bottom-color: ; border-bottom-style: ; border-left-color: ; border-left-style: ; border-image-source: ; border-image-slice: ; border-image-width: ; border-image-outset: ; border-image-repeat: ; border-width: 0px 2px 2px 0px; transform: rotate(45deg); }
.imap__subfilter img { display: block; inline-size: 1.3rem; block-size: 1.3rem; object-fit: contain; flex: 0 0 auto; filter: drop-shadow(rgba(0, 0, 0, 0.38) 0px 0.04rem 0.1rem); pointer-events: none; user-select: none; }
.imap__subfilter.has-custom-icon { padding-inline-start: 0.22rem; }
.imap__subfilter-label { min-inline-size: 0px; display: -webkit-box; overflow: hidden; -webkit-box-orient: vertical; -webkit-line-clamp: 2; line-height: 1.12; }
.imap__subfilter-count { min-inline-size: 1.35rem; color: var(--ink-muted); text-align: end; }
.imap__subfilter:hover:not(:disabled) { color: var(--ink); border-color: var(--border-strong); background: var(--surface-3); }
.imap__subfilter.is-active { color: var(--ink); border-color: color-mix(in oklch,var(--accent-strong) 60%,var(--border)); background: color-mix(in oklch,var(--accent-strong) 12%,var(--surface-1)); }
.imap__subfilter.is-active .imap__subfilter-count { color: var(--ink-soft); }
.imap__subfilter:disabled { opacity: 0.42; cursor: not-allowed; }
.imap__layer, .imap__tiny { display: inline-flex; align-items: center; gap: var(--space-2); min-block-size: 2.35rem; padding: 0 var(--space-3); border: var(--border-width) solid var(--border); border-radius: var(--radius-md); color: var(--ink-soft); font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: inherit; font-family: inherit; font-optical-sizing: inherit; font-size-adjust: inherit; font-kerning: inherit; font-feature-settings: inherit; font-variation-settings: inherit; font-language-override: inherit; font-size: var(--text-sm); cursor: pointer; }
.imap__layer { inline-size: 100%; justify-content: start; gap: var(--space-2); padding-inline: var(--space-2); }
.imap__layer:hover, .imap__tiny:hover { color: var(--ink); border-color: var(--border-strong); }
.imap__tiny[data-map-reset-feedback="true"] { color: var(--on-lumin); border-color: var(--role-positive); background: var(--role-positive); }
.imap__layer.is-active { color: var(--on-lumin); border-color: var(--accent-strong); background: var(--accent-strong); }
.imap__saved-badge { min-inline-size: 1.5rem; padding: 0.1rem 0.5rem; border-radius: 999px; background: color-mix(in oklch,var(--accent-strong) 16%,transparent); color: var(--ink-soft); font-size: var(--text-xs); font-weight: 800; text-align: center; }
.imap__tools { display: grid; gap: var(--space-2); }
.imap__tool-toggle { display: inline-flex; align-items: center; gap: var(--space-2); inline-size: 100%; min-block-size: 2.35rem; padding-inline: var(--space-2); border: var(--border-width) solid var(--border); border-radius: var(--radius-md); background: var(--surface-1); color: var(--ink-soft); font-style: inherit; font-variant: inherit; font-stretch: inherit; line-height: inherit; font-family: inherit; font-optical-sizing: inherit; font-size-adjust: inherit; font-kerning: inherit; font-feature-settings: inherit; font-variation-settings: inherit; font-language-override: inherit; font-size: var(--text-sm); font-weight: 700; cursor: pointer; transition: border-color var(--dur-fast) var(--ease),background var(--dur-fast) var(--ease); }
.imap__tool-toggle:hover { color: var(--ink); border-color: var(--border-strong); }
.imap__tool-toggle.is-active { color: var(--on-lumin); border-color: var(--accent-strong); background: var(--accent-strong); }
.imap__tool-row { display: flex; gap: var(--space-2); }
.imap__tool-row .imap__tiny { flex: 1 1 0px; justify-content: center; }
.imap__tiny--file { cursor: pointer; }
.imap__stats { display: grid; gap: var(--space-2); margin-block-start: var(--space-2); }
.imap__stat { display: grid; gap: 0.25rem; }
.imap__stat-head { display: flex; justify-content: space-between; font-size: var(--text-xs); font-weight: 800; color: var(--ink-soft); }
.imap__stat-n { color: var(--ink-muted); }
.imap__stat-bar { block-size: 0.4rem; border-radius: 999px; background: color-mix(in oklch,var(--surface-3) 80%,transparent); overflow: hidden; }
.imap__stat-bar span { display: block; block-size: 100%; border-radius: 999px; background: var(--role-positive); transition: inline-size var(--dur) var(--ease); }
.imap__detail-head { display: flex; align-items: center; gap: var(--space-3); margin-block-end: var(--space-2); padding-inline-end: 2.4rem; }
.imap__detail-ic { display: grid; place-items: center; flex: 0 0 auto; inline-size: 2.6rem; block-size: 2.6rem; border: var(--border-width) solid var(--border); border-radius: 50%; background: var(--surface-2); overflow: hidden; }
.imap__detail-ic img { inline-size: 2rem; block-size: 2rem; object-fit: contain; }
.imap__detail-ic[hidden] { display: none; }
.imap__detail-headings { min-inline-size: 0px; }
.imap__detail-headings h3 { margin-block: 0px 0.15rem; }
.imap__detail-headings p { margin-block: 0px; }
.imap__detail-pets { display: flex; flex-direction: column; align-items: stretch; gap: var(--space-2); margin-block: var(--space-2); }
.imap__detail-pets[hidden] { display: none; }
.imap__detail-pets-label { font-size: var(--text-2xs, var(--text-xs)); font-weight: 700; text-transform: uppercase; letter-spacing: 0.04em; color: var(--ink-muted); }
.imap__detail-pets-list { display: grid; grid-template-columns: repeat(auto-fill, minmax(68px, 1fr)); gap: var(--space-2) 2px; }
.imap__detail-pets-list:has(.imap__zone-row) { display: flex; flex-direction: column; gap: 4px; }
.imap__roster-tile { display: flex; flex-direction: column; align-items: center; gap: 0.3rem; text-decoration: none; color: var(--ink-soft); border-radius: var(--radius-sm); padding-block: 0.25rem; transition: background var(--dur-fast) var(--ease),transform var(--dur-fast) var(--ease); }
a.imap__roster-tile:hover { background: color-mix(in oklch,var(--lumin-bright) 12%,transparent); transform: translateY(-1px); }
.imap__roster-face { inline-size: 46px; block-size: 46px; border-radius: 34%; object-fit: cover; background: color-mix(in oklch,var(--ink) 6%,transparent); box-shadow: inset 0 0 0 1px var(--line); }
.imap__roster-face--none { display: flex; align-items: center; justify-content: center; font-weight: 800; font-size: var(--text-lg); color: var(--ink-muted); text-transform: uppercase; }
.imap__roster-name { font-size: var(--text-2xs, var(--text-xs)); line-height: 1.15; letter-spacing: -0.02em; text-align: center; max-inline-size: 100%; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; overflow-wrap: anywhere; }
a.imap__roster-tile:hover .imap__roster-name { color: var(--ink); }
.imap__detail-weather { display: flex; flex-direction: column; gap: var(--space-1); margin-block: var(--space-2); }
.imap__detail-weather[hidden] { display: none; }
.imap__detail-weather .imap__detail-pets-label { margin-block-end: 0.15rem; }
.imap__wx-row { display: flex; align-items: center; gap: 0.45rem; font-size: var(--text-sm); line-height: var(--leading-snug); color: var(--ink-soft); }
.imap__wx-row img { flex-shrink: 0; inline-size: 0.95rem; block-size: 0.95rem; object-fit: contain; }
.imap__wx-name { flex-shrink: 0; min-inline-size: 5.5rem; font-weight: 700; color: var(--ink); }
.imap__detail-facts { display: flex; flex-direction: column; gap: 0.3rem; margin-block: var(--space-2); }
.imap__detail-facts[hidden] { display: none; }
.imap__fact { display: inline-flex; align-items: center; gap: 0.4rem; font-size: var(--text-sm); color: var(--ink-soft); }
.imap__fact img { flex-shrink: 0; inline-size: 0.95rem; block-size: 0.95rem; object-fit: contain; }
.imap__fact--zone { color: var(--ink-muted); }
.imap__detail-actions { display: flex; gap: var(--space-2); margin-block: var(--space-2); }
.imap__detail-actions[hidden] { display: none; }
.imap__detail-act { display: inline-flex; align-items: center; gap: var(--space-2); flex: 1 1 0px; justify-content: center; min-block-size: 2.35rem; padding-inline: var(--space-2); border: var(--border-width) solid var(--border); border-radius: var(--radius-md); background: var(--surface-1); color: var(--ink-soft); font-style: inherit; font-variant: inherit; font-stretch: inherit; line-height: inherit; font-family: inherit; font-optical-sizing: inherit; font-size-adjust: inherit; font-kerning: inherit; font-feature-settings: inherit; font-variation-settings: inherit; font-language-override: inherit; font-size: var(--text-xs); font-weight: 800; cursor: pointer; transition: border-color var(--dur-fast) var(--ease),background var(--dur-fast) var(--ease); }
.imap__detail-act:hover { color: var(--ink); border-color: var(--border-strong); }
.imap__detail-act.is-active { color: var(--on-lumin); border-color: var(--role-positive); background: var(--role-positive); }
.imap__detail-act--found { flex: 1 1 100%; min-block-size: 2.9rem; font-size: var(--text-sm); border-color: color-mix(in oklch,var(--role-positive) 55%,var(--border)); color: var(--ink); }
.imap__detail-act--found:hover { border-color: var(--role-positive); background: color-mix(in oklch,var(--role-positive) 12%,var(--surface-1)); }
.imap__detail-actions { flex-wrap: wrap; }
.imap__chip--kbd { padding-inline: var(--space-2); gap: var(--space-1); }
.imap__kbd { font-size: var(--text-xs); font-weight: 800; padding: 0.05rem 0.35rem; border-radius: var(--radius-xs, .35rem); background: color-mix(in oklch,var(--ink) 10%,transparent); }
.imap__palette { position: absolute; inset: 0px; z-index: 40; display: grid; justify-items: center; align-content: start; padding-block-start: 12vh; background: rgba(0, 0, 0, 0.42); backdrop-filter: blur(2px); }
.imap__palette[hidden] { display: none; }
.imap__palette-box { inline-size: min(34rem, 92%); max-block-size: 62vh; display: flex; flex-direction: column; border: var(--border-width) solid var(--border-strong); border-radius: var(--radius-lg, 1rem); background: var(--surface-1); box-shadow: rgba(0, 0, 0, 0.28) 0px 1.5rem 3rem; overflow: hidden; }
.imap__palette-search { display: flex; align-items: center; gap: var(--space-2); padding: var(--space-3); border-block-end: var(--border-width) solid var(--border); color: var(--ink-soft); }
.imap__palette-search input { flex: 1 1 auto; border: 0px; background: transparent; color: var(--ink); font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: inherit; font-family: inherit; font-optical-sizing: inherit; font-size-adjust: inherit; font-kerning: inherit; font-feature-settings: inherit; font-variation-settings: inherit; font-language-override: inherit; font-size: var(--text-md, 1rem); outline: none; }
.imap__palette-list { margin: 0px; padding: var(--space-1); list-style: none; overflow-y: auto; }
.imap__palette-item { display: flex; align-items: baseline; justify-content: space-between; gap: var(--space-3); inline-size: 100%; padding: var(--space-2) var(--space-3); border: 0px; border-radius: var(--radius-sm); background: transparent; color: var(--ink); font: inherit; text-align: start; cursor: pointer; }
.imap__palette-item:hover, .imap__palette-item.is-active { background: color-mix(in oklch,var(--accent-strong) 14%,transparent); }
.imap__palette-title { font-weight: 700; }
.imap__palette-meta { color: var(--ink-muted); font-size: var(--text-xs); font-weight: 700; }
.imap__palette-empty { padding: var(--space-4) var(--space-3); color: var(--ink-muted); font-size: var(--text-sm); text-align: center; }
.imap__aniimo-empty { padding: var(--space-3); color: var(--ink-muted); font-size: var(--text-xs); text-align: center; }
.imap__layer-glyph { display: grid; place-items: center; inline-size: 1.65rem; block-size: 1.65rem; border-radius: var(--radius-md); background: color-mix(in oklch,var(--accent-sky) 14%,var(--surface-2)); flex-shrink: 0; }
.imap--v2 .imap__layer-glyph { border-radius: 50%; background: var(--cat-color, var(--accent-strong)); box-shadow: rgba(255, 255, 255, 0.85) 0px 0px 0px 1.5px inset; }
.imap__layer-glyph.has-custom-icon { background: transparent; }
.imap--v2 .imap__layer-glyph.has-custom-icon { background: var(--cat-color, var(--accent-strong)); }
.imap__layer-glyph img { display: block; inline-size: 1.45rem; block-size: 1.45rem; object-fit: contain; filter: drop-shadow(rgba(0, 0, 0, 0.42) 0px 0.05rem 0.12rem); pointer-events: none; user-select: none; }
.imap--v2 .imap__layer-glyph img { inline-size: 1.15rem; block-size: 1.15rem; }
.imap__layer-label { display: block; min-inline-size: 0px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; text-align: start; }
.imap__layer-text { display: grid; gap: 0.05rem; min-inline-size: 0px; flex: 1 1 0%; text-align: start; }
.imap__layer-count { color: inherit; opacity: 0.78; }
.imap__eye { display: grid; place-items: center; inline-size: 1.85rem; block-size: 1.85rem; border-radius: var(--radius-sm); color: var(--ink-muted); opacity: 0.8; flex-shrink: 0; transition: color var(--dur-fast) var(--ease),opacity var(--dur-fast) var(--ease); }
.imap__eye .imap__eye-off { display: block; }
.imap__eye .imap__eye-on { display: none; }
.imap__layer:hover .imap__eye { color: var(--ink); opacity: 1; }
.imap__layer.is-active .imap__eye { color: color-mix(in oklch,var(--cat-color, var(--accent-strong)) 70%,var(--ink)); opacity: 1; }
.imap__layer.is-active .imap__eye .imap__eye-on { display: block; }
.imap__layer.is-active .imap__eye .imap__eye-off { display: none; }
.imap__map-shell { position: relative; inline-size: 100%; block-size: 100%; min-inline-size: 0px; min-block-size: 0px; background-image: ; background-position-x: ; background-position-y: ; background-repeat: ; background-attachment: ; background-origin: ; background-clip: ; background-color: ; background-size: 4rem 4rem; }
.imap__topbar { position: absolute; inset-block-start: var(--space-3); inset-inline: calc(var(--imap-tools-width) + var(--space-5)) var(--space-3); z-index: 3; display: flex; align-items: center; justify-content: space-between; gap: var(--space-3); pointer-events: none; }
.imap__zoom { pointer-events: auto; touch-action: none; overscroll-behavior: none; display: inline-flex; align-items: center; min-block-size: 2.35rem; border: var(--border-width) solid var(--border); border-radius: var(--radius-pill); background: color-mix(in oklch,var(--surface-1) 94%,transparent); box-shadow: var(--shadow-1); }
.imap__zoom { overflow: hidden; }
.imap__zoom button { touch-action: none; min-inline-size: 2.4rem; min-block-size: 2.35rem; padding-inline: var(--space-2); border: 0px; border-inline-start: var(--border-width) solid var(--border); color: var(--ink-soft); font-style: inherit; font-variant: inherit; font-stretch: inherit; font-size: inherit; line-height: inherit; font-family: inherit; font-optical-sizing: inherit; font-size-adjust: inherit; font-kerning: inherit; font-feature-settings: inherit; font-variation-settings: inherit; font-language-override: inherit; font-weight: 800; cursor: pointer; }
.imap__zoom button:first-child { border-inline-start: 0px; }
.imap__canvas { position: relative; overflow: hidden; overscroll-behavior: none; inline-size: 100%; block-size: 100%; min-block-size: 100%; cursor: grab; touch-action: none; user-select: none; contain: strict; background: rgb(21, 66, 98); }
.imap__canvas .imap__topbar, .imap__canvas .imap__topbar input { user-select: text; }
.imap__canvas:active { cursor: grabbing; }
.imap__canvas:focus-visible { outline: none; box-shadow: var(--ring-inset); }
.imap__stage { position: absolute; inset-block-start: 0px; inset-inline-start: 0px; inline-size: var(--map-width, 100%); block-size: var(--map-height, 100%); transform-origin: 0px 0px; will-change: transform; clip-path: inset(0 var(--map-clip-right, 0px) var(--map-clip-bottom, 0px) 0); contain: layout style paint; backface-visibility: hidden; --imap-marker-scale: 1; transition: transform 90ms var(--ease); }
.imap.is-dragging .imap__stage, .imap.is-map-interacting .imap__stage, .imap--v2 .imap__stage { transition: none; }
.imap__markers-canvas { position: absolute; inset: 0px; z-index: 2; pointer-events: none; }
.imap__tip { position: absolute; inset-block-start: 0px; inset-inline-start: 0px; z-index: 16; display: grid; justify-items: center; gap: 0.05rem; max-inline-size: 16rem; padding: 0.32rem 0.6rem; border: var(--border-width) solid var(--border); border-radius: var(--radius-md); background: var(--surface-1); box-shadow: var(--shadow-2); pointer-events: none; text-align: center; }
.imap__tip[hidden] { display: none; }
.imap__tip-label { font-size: var(--text-sm); font-weight: 800; color: var(--ink); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; max-inline-size: 15rem; }
.imap__tip-meta { font-size: var(--text-xs); font-weight: 700; color: var(--ink-muted); }
.imap__image, .imap__tile-grid { position: absolute; inset: 0px; inline-size: 100%; block-size: 100%; user-select: none; }
.imap__image { object-fit: cover; }
.imap__image--preview { display: block; z-index: 0; pointer-events: none; }
.imap__tile-grid { background: transparent; overflow: hidden; contain: paint; z-index: 1; pointer-events: none; }
.imap__tile { position: absolute; inset-inline-start: calc(var(--tx) * var(--tile-size)); inset-block-start: calc(var(--ty) * var(--tile-size)); inline-size: calc(var(--tile-size) + 1px); block-size: calc(var(--tile-size) + 1px); object-fit: cover; user-select: none; pointer-events: none; opacity: 0; transition: opacity 0.18s ease-out; }
.imap__tile.is-loaded { opacity: 1; }
@media (prefers-reduced-motion: reduce) {
  .imap__tile { transition: none; }
}
.imap__marker { position: absolute; z-index: 7; inset-inline-start: var(--x); inset-block-start: var(--y); display: inline-flex; align-items: center; gap: 0.38rem; max-inline-size: min(11rem, 34vw); min-block-size: 1.5rem; padding: 0.08rem 0.38rem 0.08rem 0.12rem; border: 0px; border-radius: var(--radius-pill); background: color-mix(in oklch,var(--surface-1) 86%,transparent); color: var(--ink); font-family: var(--font-sans); font-size: 0.72rem; font-weight: 800; cursor: pointer; transform: translate3d(-50%,-50%,0) scale(var(--imap-marker-scale)); transform-origin: 50% 50%; backface-visibility: hidden; -webkit-font-smoothing: antialiased; transition: opacity var(--dur-fast) var(--ease),transform var(--dur-fast) var(--ease); box-shadow: rgba(0, 0, 0, 0.48) 0px 0px 0px 1px, rgba(0, 0, 0, 0.26) 0px 0.12rem 0.32rem; opacity: 0.86; isolation: isolate; }
.imap__marker::before { content: ""; position: absolute; inset: -0.42rem; z-index: 0; border-radius: var(--radius-pill); background: rgba(0, 0, 0, 0); }
.imap.is-dragging .imap__marker, .imap.is-map-interacting .imap__marker { transition: none; }
.imap.is-map-interacting .imap__marker { box-shadow: none; pointer-events: none; }
.imap__marker[hidden] { display: none; }
.imap--dense .imap__marker { max-inline-size: none; padding: 0.1rem; gap: 0px; }
.imap__pin { position: absolute; z-index: 7; inline-size: 1.72rem; block-size: 1.72rem; padding: 0px; border: 0px; background-color: transparent; background-repeat: no-repeat; background-position: center center; background-size: contain; cursor: pointer; transform: translate3d(-50%,-50%,0) scale(var(--imap-marker-scale)); transform-origin: 50% 50%; backface-visibility: hidden; filter: drop-shadow(rgba(0, 0, 0, 0.55) 0px 1px 1.5px) drop-shadow(rgba(0, 0, 0, 0.35) 0px 0px 1px); }
.imap__pin[hidden] { display: none; }
@media (pointer: coarse) {
  .imap__pin::before, .imap__marker.imap__cluster::before { content: ""; position: absolute; inset: -0.85rem; }
}
.imap__pin--avatar { inline-size: 1.16rem; block-size: 1.16rem; border-radius: 50%; background-size: cover; box-shadow: rgba(255, 255, 255, 0.9) 0px 0px 0px 1px, rgba(0, 0, 0, 0.5) 0px 1px 2px; filter: none; }
.imap__pin--stack { filter: drop-shadow(rgba(255, 255, 255, 0.92) 2.5px 2.5px 0px) drop-shadow(rgba(0, 0, 0, 0.3) 3.5px 3.5px 0.5px) drop-shadow(rgba(0, 0, 0, 0.5) 0px 1px 1.5px); }
.imap__pin--avatar.imap__pin--stack { filter: none; box-shadow: rgba(255, 255, 255, 0.9) 0px 0px 0px 1px, rgba(255, 255, 255, 0.85) 2.5px 2.5px 0px -1px, rgba(0, 0, 0, 0.5) 0px 1px 2px; }
.imap__pin:hover { z-index: 12; transform: translate3d(-50%,-50%,0) scale(calc(var(--imap-marker-scale) * 1.18)); }
.imap__pin:focus-visible { outline: 2px solid var(--lumin-bright); outline-offset: 2px; border-radius: var(--radius-sm); }
.imap__pin.is-selected { z-index: 18; outline: 2px solid var(--lumin-bright); outline-offset: 2px; }
.imap__pin.is-saved { box-shadow: 0 0 0 2px var(--role-positive); border-radius: 50%; }
.imap__pin.is-complete { opacity: 0.5; }
.imap.is-dragging .imap__pin, .imap.is-map-interacting .imap__pin { pointer-events: none; }
.imap__cluster { justify-content: center; inline-size: 1.7rem; block-size: 1.7rem; min-inline-size: 0px; max-inline-size: none; padding: 0px; border-radius: 50%; background: var(--marker-color); color: rgb(255, 255, 255); opacity: 0.96; border: 2px solid rgb(255, 255, 255); box-shadow: rgba(0, 0, 0, 0.4) 0px 1px 5px; }
.imap__marker.imap__cluster:hover { opacity: 1; transform: translate3d(-50%,-50%,0) scale(calc(var(--imap-marker-scale) * 1.12)); }
.imap__cluster-count { font-size: 0.72rem; font-weight: 800; line-height: 1; }
.imap__aniimo-list { display: flex; flex-direction: column; gap: 2px; max-block-size: 11rem; overflow-y: auto; scrollbar-width: thin; scrollbar-color: var(--border-strong) transparent; }
.imap__aniimo-item { display: grid; grid-template-columns: 1.15rem 1.55rem minmax(0px, 1fr) 1.1rem auto; align-items: center; column-gap: 0.5rem; inline-size: 100%; padding: 0.26rem 0.4rem; border: var(--border-width) solid transparent; background: transparent; border-radius: var(--radius-sm); cursor: pointer; color: var(--ink-soft); text-align: left; transition: background var(--dur-fast) var(--ease),border-color var(--dur-fast) var(--ease); }
.imap__aniimo-el { display: grid; place-items: center; }
.imap__aniimo-el img { inline-size: 1rem; block-size: 1rem; object-fit: contain; }
.imap__aniimo-item:hover { background: color-mix(in oklch,var(--ink) 7%,transparent); }
.imap__aniimo-item.is-active { color: var(--ink); border-color: color-mix(in oklch,var(--accent-strong) 55%,var(--border)); background: color-mix(in oklch,var(--accent-strong) 12%,var(--surface-1)); }
.imap__aniimo-group { display: flex; flex-direction: column; }
.imap__aniimo-group-head { display: flex; align-items: center; gap: 0.25rem; }
.imap__aniimo-group-collapse { display: flex; align-items: center; gap: 0.4rem; flex: 1 1 0%; min-inline-size: 0px; padding: 0.3rem 0.25rem; border: 0px; background: transparent; cursor: pointer; color: var(--ink-soft); font: inherit; text-align: left; }
.imap__aniimo-group-collapse:hover { color: var(--ink); }
.imap__aniimo-group-chev { flex-shrink: 0; transition: transform var(--dur-fast) var(--ease); }
.imap__aniimo-group.is-collapsed .imap__aniimo-group-chev { transform: rotate(-90deg); }
.imap__aniimo-group-label { font-size: 0.72rem; font-weight: 700; text-transform: uppercase; letter-spacing: 0.03em; }
.imap__aniimo-group-count { margin-inline-start: auto; font-size: 0.72rem; color: var(--ink-muted); }
.imap__aniimo-group-eye { display: grid; place-items: center; padding: 0px; border: 0px; background: transparent; cursor: pointer; flex-shrink: 0; }
.imap__aniimo-group-eye:hover .imap__eye { color: var(--ink); opacity: 1; }
.imap__aniimo-group-eye.is-active .imap__eye { color: color-mix(in oklch,var(--accent-strong) 70%,var(--ink)); opacity: 1; }
.imap__aniimo-group-eye.is-active .imap__eye .imap__eye-on { display: block; }
.imap__aniimo-group-eye.is-active .imap__eye .imap__eye-off { display: none; }
.imap__aniimo-group-body { display: flex; flex-direction: column; gap: 2px; }
.imap__aniimo-group-body[hidden] { display: none; }
.imap__element-filter { display: flex; flex-wrap: wrap; gap: 0.28rem; margin-block: 0.4rem 0.15rem; }
.imap__element-filter[hidden] { display: none; }
.imap__element-chip { display: grid; place-items: center; inline-size: 1.9rem; block-size: 1.9rem; padding: 0px; border: var(--border-width) solid var(--border); border-radius: 50%; background: var(--surface-0); cursor: pointer; opacity: 0.4; filter: grayscale(0.7); transition: opacity var(--dur-fast) var(--ease),filter var(--dur-fast) var(--ease),border-color var(--dur-fast) var(--ease); }
.imap__element-chip img { inline-size: 1.25rem; block-size: 1.25rem; object-fit: contain; }
.imap__element-chip:hover { opacity: 0.85; }
.imap__element-chip.is-active { opacity: 1; filter: none; border-color: color-mix(in oklch,var(--accent-strong) 45%,var(--border)); }
.imap__form-filter { display: flex; flex-wrap: wrap; gap: 0.28rem; margin-block: 0.4rem 0.15rem; }
.imap__form-filter[hidden] { display: none; }
.imap__form-chip { display: inline-flex; align-items: center; gap: 0.3rem; padding: 0.18rem 0.5rem; border: var(--border-width) solid var(--border); border-radius: 999px; background: var(--surface-0); cursor: pointer; font-size: 0.7rem; font-weight: 600; line-height: 1.3; color: var(--ink-muted); opacity: 0.55; transition: opacity var(--dur-fast) var(--ease),border-color var(--dur-fast) var(--ease),color var(--dur-fast) var(--ease); }
.imap__form-chip:hover { opacity: 0.85; }
.imap__form-chip.is-active { opacity: 1; color: var(--ink); border-color: color-mix(in oklch,var(--accent-strong) 45%,var(--border)); }
.imap__form-chip-n { font-size: 0.62rem; color: var(--ink-muted); }
.imap__mode { display: inline-flex; gap: 2px; margin-block: 0.15rem 0.3rem; padding: 2px; border: var(--border-width) solid var(--border); border-radius: 999px; background: var(--surface-0); }
.imap__mode-tab { border: 0px; background: transparent; padding: 0.16rem 0.65rem; border-radius: 999px; font-size: 0.7rem; font-weight: 700; color: var(--ink-muted); cursor: pointer; transition: background var(--dur-fast) var(--ease),color var(--dur-fast) var(--ease); }
.imap__mode-tab:hover { color: var(--ink); }
.imap__mode-tab.is-active { background: color-mix(in oklch,var(--accent-strong) 14%,var(--surface-0)); color: var(--ink); }
.imap__zone-row { display: flex; justify-content: space-between; align-items: center; gap: 0.5rem; inline-size: 100%; padding: 0.3rem 0.5rem; border: var(--border-width) solid var(--border); border-radius: 0.5rem; background: var(--surface-0); cursor: pointer; font-size: 0.75rem; font-weight: 600; color: var(--ink); transition: border-color var(--dur-fast) var(--ease); }
.imap__zone-row:hover { border-color: color-mix(in oklch,var(--accent-strong) 45%,var(--border)); }
.imap__zone-row-n { color: var(--ink-muted); font-size: 0.68rem; }
.imap__aniimo-ic { inline-size: 1.55rem; block-size: 1.55rem; display: grid; place-items: center; border-radius: 50%; overflow: hidden; background: color-mix(in oklch,var(--ink) 8%,transparent); box-shadow: inset 0 0 0 1px color-mix(in oklch,var(--ink) 10%,transparent); }
.imap__aniimo-ic img { inline-size: 100%; block-size: 100%; object-fit: cover; }
.imap__aniimo-name { min-inline-size: 0px; display: inline-flex; align-items: baseline; gap: 0.34rem; font-size: 0.8rem; font-weight: 600; line-height: 1.25; }
.imap__aniimo-name > span:first-child, .imap__aniimo-name { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.imap__aniimo-dex { flex-shrink: 0; font-size: 0.6rem; font-weight: 700; letter-spacing: 0.02em; color: var(--ink-muted); }
.imap__aniimo-n { justify-self: end; font-size: 0.72rem; font-weight: 600; font-variant-numeric: tabular-nums; color: var(--ink-muted); }
.imap__marker:hover, .imap__marker:focus-visible { outline: none; box-shadow: var(--ring); transform: translate3d(-50%,-50%,0) scale(var(--imap-marker-scale)); opacity: 1; z-index: 12; }
.imap__marker.is-selected { opacity: 1; z-index: 18; }
.imap__marker.is-complete { opacity: 0.72; }
.imap__panel { position: absolute; z-index: 34; inset-block: var(--space-3); inset-inline-end: var(--space-3); inline-size: min(20rem,calc(100% - 2 * var(--space-3))); padding: var(--space-4); border: var(--border-width) solid var(--border); border-radius: var(--radius-lg); box-shadow: var(--shadow-2); overflow: auto; overscroll-behavior: contain; }
.imap__panel[hidden] { display: none; }
.imap__panel h3 { font-size: var(--text-lg); margin-block: var(--space-1) var(--space-2); }
.imap__panel p { color: var(--ink-soft); }
.imap.is-route-building .imap__canvas { cursor: crosshair; }
@media (max-width: 640px) {
  .imap { --imap-tools-width: min(20rem, calc(100vw - 2 * var(--space-3))); min-block-size: min(76svh,max(28rem,calc(100svh - var(--header-height)))); }
  .imap__app { block-size: min(76svh,max(28rem,calc(100svh - var(--header-height)))); min-block-size: min(76svh,max(28rem,calc(100svh - var(--header-height)))); }
  .imap__sidebar, .imap__panel { border: var(--border-width) solid var(--border); }
  .imap__canvas { min-block-size: 100%; }
  .imap__layers { grid-template-columns: minmax(0px, 1fr); }
  .imap__subfilters { grid-template-columns: repeat(2, minmax(0px, 1fr)); }
  .imap__panel { inset-block: auto var(--space-3); inset-inline: var(--space-3); inline-size: auto; max-block-size: 42vh; }
  .imap__topbar { inset-inline: var(--space-3); inset-block-start: auto; inset-block-end: var(--space-3); }
}
@media (min-width: 1024px) {
  .imap { margin-top: calc(-1 * var(--space-12)); }
}
@media (max-width: 640px) {
  .imap:not(.imap--dense) .imap__marker { min-inline-size: 2.15rem; min-block-size: 2.15rem; justify-content: center; padding: 0px; background: transparent; box-shadow: none; pointer-events: none; }
  .imap:not(.imap--dense) .imap__marker::before { display: none; }
}
@media (prefers-reduced-motion: reduce) {
  .imap__marker { transition: none; }
}
.imap { --imap-tools-width: min(20rem, 36vw); --imap-chrome-bg: color-mix(in oklch, var(--surface-1) 96%, transparent); --imap-chrome-border: color-mix(in oklch, var(--border) 82%, transparent); }
.imap__topbar { inset-block-start: var(--space-3); inset-block-end: auto; inset-inline: var(--space-3); z-index: 18; display: grid; grid-template-columns: auto minmax(10rem, 1fr) auto auto auto; align-items: center; gap: var(--space-2); }
.imap__chip, .imap__command-search, .imap__icon-btn { border: var(--border-width) solid var(--imap-chrome-border); background: var(--imap-chrome-bg); color: var(--ink-soft); box-shadow: var(--shadow-1); }
.imap__chip { pointer-events: auto; touch-action: none; overscroll-behavior: none; display: inline-flex; align-items: center; gap: var(--space-2); min-block-size: 2.45rem; padding-inline: var(--space-3); border-radius: var(--radius-pill); font-style: inherit; font-variant: inherit; font-stretch: inherit; line-height: inherit; font-optical-sizing: inherit; font-size-adjust: inherit; font-kerning: inherit; font-feature-settings: inherit; font-variation-settings: inherit; font-language-override: inherit; font-family: var(--font-sans); font-size: var(--text-sm); font-weight: 800; cursor: pointer; }
.imap__command-search { pointer-events: auto; touch-action: none; overscroll-behavior: none; display: flex; align-items: center; gap: var(--space-2); min-block-size: 2.45rem; min-inline-size: 0px; padding-inline: var(--space-3); border-radius: var(--radius-pill); }
.imap__command-search input { touch-action: manipulation; inline-size: 100%; min-inline-size: 0px; border: 0px; outline: 0px; color: var(--ink); background: transparent; font: inherit; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.imap__search-count { flex: 0 0 auto; padding-inline: var(--space-2); border-radius: var(--radius-pill); background: color-mix(in oklch,var(--ink) 8%,transparent); color: var(--ink-muted); font-size: var(--text-xs); font-weight: 700; white-space: nowrap; }
.imap__search-count[hidden] { display: none; }
.imap__chip[aria-pressed="true"] { color: var(--on-lumin); border-color: var(--accent-strong); background: var(--accent-strong); }
.imap__sidebar { z-index: 32; inset-block-start: calc(var(--space-3) + 5.9rem); inset-block-end: var(--space-3); max-block-size: calc(100% - 7.1rem); border-radius: var(--radius-lg); transition: transform var(--dur-fast) var(--ease),opacity var(--dur-fast) var(--ease); }
.imap.is-panel-closed .imap__sidebar { display: none; }
@media (max-width: 900px) {
  .imap:not(.is-filters-open) .imap__sidebar { display: none; }
}
.imap.is-filters-open .imap__sidebar { z-index: 42; }
.imap.is-filters-open .imap__panel { z-index: 30; }
.imap__panel-head { display: flex; align-items: start; justify-content: space-between; gap: var(--space-3); }
.imap__icon-btn { display: grid; place-items: center; inline-size: 2rem; block-size: 2rem; border-radius: var(--radius-md); color: var(--ink-soft); cursor: pointer; flex-shrink: 0; }
.imap__icon-btn--toggle.is-active { color: var(--lumin-bright); background: color-mix(in oklch,var(--lumin-bright) 16%,transparent); }
.imap__panel-head .imap__icon-btn, .imap__sidebar .imap__icon-btn { border-color: var(--border); background: var(--surface-2); color: var(--ink-soft); box-shadow: none; }
.imap__panel-head .imap__icon-btn:hover, .imap__panel-head .imap__icon-btn:focus-visible, .imap__sidebar .imap__icon-btn:hover, .imap__sidebar .imap__icon-btn:focus-visible { outline: none; color: var(--ink); border-color: var(--border-strong); box-shadow: var(--ring); }
.imap__tool-row { display: grid; grid-template-columns: repeat(2, minmax(0px, 1fr)); gap: var(--space-2); }
.imap.is-labels-off .imap__marker { min-inline-size: 2.15rem; min-block-size: 2.15rem; justify-content: center; padding: 0px; background: transparent; box-shadow: none; pointer-events: none; }
.imap.is-labels-off .imap__marker::before { display: none; }
.imap__panel { inset-block-start: calc(var(--space-3) + 3rem); max-block-size: calc(100% - 4.5rem); }
@media (min-width: 1280px) {
  .imap:not(.imap--v2) .imap__topbar { inset-inline-end: calc(var(--space-3) + 10.8rem); }
}
@media (max-width: 760px) {
  .imap { --imap-tools-width: min(22rem, calc(100vw - 2 * var(--space-3))); }
  .imap__topbar { grid-template-columns: auto minmax(0px, 1fr) auto auto; inset-inline: var(--space-2); inset-block-start: var(--space-2); inset-block-end: auto; }
  .imap__chip--kbd { display: none; }
  .imap__zoom { display: inline-flex; justify-self: end; }
  .imap__zoom button { min-inline-size: 2rem; padding-inline: var(--space-1); }
  .imap__command-search input { min-inline-size: 2.5rem; }
  .imap__sidebar { inset-inline: var(--space-2); inline-size: auto; inset-block-start: calc(var(--space-2) + 5.8rem); max-block-size: min(52vh, 100% - 7rem); }
  .imap__panel { inset-block: auto calc(var(--space-2) + 3.5rem); inset-inline: var(--space-2); inline-size: auto; max-block-size: min(68vh, 100% - 9.5rem); padding: var(--space-3); }
  .imap.is-filters-open .imap__panel, .imap[data-map-current-mode="routes"] .imap__panel[data-map-detail-view="route-overview"] { display: none; }
  .imap__panel h3 { font-size: var(--text-md); margin-block-end: var(--space-1); }
}
body.is-app-page .imap:not(.is-fullscreen) { position: fixed; inset: var(--header-height) 0 0 0; margin: 0px; min-block-size: 0px; block-size: auto; }
body.is-app-page .imap:not(.is-fullscreen) .imap__app { margin-block: 0px; min-block-size: 0px; block-size: 100%; }
.imap-comm { margin-block-start: var(--space-4); padding-block-start: var(--space-4); border-block-start: var(--border-width) solid var(--border); display: flex; flex-direction: column; gap: var(--space-3); }
.imap-comm__title { margin: 0px; font-size: var(--text-sm); font-weight: 800; letter-spacing: var(--tracking-wide); text-transform: uppercase; color: var(--ink-soft); }
.imap-comm__status, .imap-comm__empty { margin: 0px; font-size: var(--text-sm); color: var(--ink-muted); }
.imap-comm__list { display: flex; flex-direction: column; gap: var(--space-3); }
.imap-comm__item { display: flex; flex-direction: column; gap: var(--space-1); padding: var(--space-3); border-radius: var(--radius-md); background: var(--surface-1); border: var(--border-width) solid var(--border); }
.imap-comm__head { display: flex; align-items: center; gap: var(--space-2); }
.imap-comm__avatar { display: grid; place-items: center; flex-shrink: 0; overflow: hidden; inline-size: 1.75rem; block-size: 1.75rem; border-radius: var(--radius-pill); background: var(--accent-sky); color: var(--on-sky); font-weight: 700; font-size: var(--text-xs); }
.imap-comm__avatar img { inline-size: 100%; block-size: 100%; object-fit: cover; }
.imap-comm__author { font-size: var(--text-sm); color: var(--ink); }
.imap-comm__date { margin-inline-start: auto; font-size: var(--text-xs); color: var(--ink-muted); }
.imap-comm__body { margin: 0px; font-size: var(--text-sm); color: var(--ink-soft); text-wrap: pretty; overflow-wrap: anywhere; }
.imap-comm__shot { display: block; border-radius: var(--radius-sm); overflow: hidden; }
.imap-comm__shot img { display: block; inline-size: 100%; max-block-size: 220px; object-fit: cover; }
.imap-comm__foot { display: flex; align-items: center; gap: var(--space-2); margin-block-start: 2px; }
.imap-comm__like { padding: .15rem var(--space-2); border: var(--border-width) solid var(--border); border-radius: var(--radius-pill); background: transparent; color: var(--ink-muted); font-size: var(--text-xs); font-weight: 700; cursor: pointer; }
.imap-comm__like[aria-pressed="true"] { color: var(--role-negative); border-color: color-mix(in oklch,var(--role-negative) 40%,transparent); }
.imap-comm__reply-btn { padding: .15rem var(--space-2); border: 0px; background: transparent; color: var(--ink-muted); font-size: var(--text-xs); font-weight: 700; cursor: pointer; }
.imap-comm__reply-btn:hover { color: var(--accent-strong); }
.imap-comm__report { margin-inline-start: auto; padding: .15rem var(--space-2); border: 0px; background: transparent; color: var(--ink-muted); font-size: var(--text-xs); cursor: pointer; }
.imap-comm__report:hover { color: var(--role-negative); }
.imap-comm__report:disabled { color: var(--role-positive, #2e9e5b); cursor: default; }
.imap-comm__thread { display: flex; flex-direction: column; gap: var(--space-2); }
.imap-comm__replies { display: flex; flex-direction: column; gap: var(--space-2); margin-inline-start: var(--space-5); }
.imap-comm__replies:empty { display: none; }
.imap-comm__item--reply { padding: var(--space-2) var(--space-3); background: var(--surface-0); border-inline-start: 2px solid var(--border-strong); }
.imap-comm__item--reply .imap-comm__avatar { inline-size: 1.4rem; block-size: 1.4rem; font-size: 0.6rem; }
.imap-comm__form--reply { margin-inline-start: var(--space-5); margin-block-start: var(--space-1); }
.imap-comm__form--reply .imap-comm__note { }
.imap-comm__signin { align-self: flex-start; padding: .4rem var(--space-4); border-radius: var(--radius-pill); background: var(--accent-strong); color: var(--on-lumin); font-weight: 700; font-size: var(--text-sm); text-decoration: none; }
.imap-comm__form { display: flex; flex-direction: column; gap: var(--space-2); }
.imap-comm__note { inline-size: 100%; resize: vertical; padding: var(--space-2) var(--space-3); border: var(--border-width) solid var(--border-strong); border-radius: var(--radius-md); font-family: var(--font-sans); font-size: var(--text-sm); color: var(--ink); background: var(--surface-0); }
.imap-comm__file { display: inline-flex; align-items: center; gap: var(--space-2); cursor: pointer; font-size: var(--text-sm); color: var(--ink-soft); }
.imap-comm__file input { position: absolute; inline-size: 1px; block-size: 1px; opacity: 0; pointer-events: none; }
.imap-comm__submit { align-self: flex-start; padding: .4rem var(--space-5); border: 0px; border-radius: var(--radius-pill); background: var(--accent-strong); color: var(--on-lumin); font-weight: 700; font-size: var(--text-sm); cursor: pointer; }
.imap-comm__submit:disabled { opacity: 0.6; cursor: default; }
.imap-comm__err { margin: 0px; font-size: var(--text-xs); color: var(--role-negative); }
.imap-comm__preview { position: relative; align-self: flex-start; border-radius: var(--radius-sm); overflow: hidden; border: var(--border-width) solid var(--border); }
.imap-comm__preview img { display: block; max-inline-size: 160px; max-block-size: 120px; object-fit: cover; }
.imap-comm__preview-x { position: absolute; inset-block-start: 3px; inset-inline-end: 3px; inline-size: 1.3rem; block-size: 1.3rem; border-radius: 50%; border: 0px; cursor: pointer; background: color-mix(in oklch, rgb(0, 0, 0) 55%, transparent 45%); color: rgb(255, 255, 255); font-size: 0.9rem; line-height: 1; display: grid; place-items: center; }
.imap__sync { align-self: center; flex-shrink: 0; inline-size: 0.7rem; block-size: 0.7rem; border-radius: 50%; margin-inline-start: var(--space-1); background: var(--ink-muted); box-shadow: 0 0 0 3px color-mix(in oklch,var(--ink-muted) 18%,transparent); }
.imap__sync[data-state="synced"] { background: var(--role-positive, #2e9e5b); box-shadow: 0 0 0 3px color-mix(in oklch,var(--role-positive, #2e9e5b) 22%,transparent); }
.imap__sync[data-state="syncing"] { background: var(--accent-strong); animation: 1s ease-in-out 0s infinite normal none running imap-sync-pulse; }
.imap__sync[data-state="offline"] { background: var(--role-warning, #b5771f); }
@keyframes imap-sync-pulse { 
  50% { opacity: 0.35; }
}
.imap__detail .pslot.imap__detail-ad { margin-inline: calc(-1 * var(--space-4)); margin-block: var(--space-3) 0; }
.imap__detail .pslot.imap__detail-ad.is-empty:not(.has-note) { min-block-size: 1px; margin-block: 0px; }
.imap__detail .pslot.imap__detail-ad.is-empty:not(.has-note) .pslot__mount { min-height: 1px !important; }
.imap__tile.is-instant { transition: none; }
.imap__tool-msg { margin: var(--space-1) 0 0; font-size: var(--text-xs); color: var(--ink-soft); }
.imap__tool-msg[hidden] { display: none; }
.imap__detail-pets-label:empty { display: none; }
.imap__stack-row { justify-content: flex-start; text-align: start; }
.imap__stack-row img { inline-size: 22px; block-size: 22px; object-fit: contain; flex: 0 0 auto; }
.imap__stack-row .imap__zone-row-name { flex: 1 1 auto; min-inline-size: 0px; }
@media (max-width: 760px) {
  .imap__topbar { grid-template-columns: auto minmax(0px, 1fr) auto; }
  .imap__zoom { position: absolute; inset-block-start: calc(100% + var(--space-2)); inset-inline-end: 0px; flex-direction: column; border-radius: var(--radius-md); }
  .imap__zoom button { min-inline-size: 2.75rem; min-block-size: 2.75rem; border-inline-start: 0px; border-block-start: var(--border-width) solid var(--border); }
  .imap__zoom button:first-child { border-block-start: 0px; }
}
@media (pointer: coarse) {
  .imap .imap__icon-btn, .imap [data-map-detail-close] { inline-size: 2.75rem; block-size: 2.75rem; }
  .imap .imap__command-search input { min-block-size: 2.5rem; }
}
.imap__detail-more { margin-block: var(--space-1) var(--space-2); }
.imap__detail-more[hidden] { display: none; }
.imap__detail-more > summary { display: inline-flex; align-items: center; gap: 0.4rem; cursor: pointer; list-style: none; font-size: var(--text-xs); font-weight: 700; color: var(--ink-soft); }
.imap__detail-more > summary::-webkit-details-marker { display: none; }
.imap__detail-more > summary::before { content: ""; inline-size: 0.38rem; block-size: 0.38rem; border-style: solid; border-color: currentcolor; border-image: none; border-width: 0px 2px 2px 0px; transform: rotate(-45deg); transition: transform var(--dur-fast) var(--ease); }
.imap__detail-more[open] > summary::before { transform: rotate(45deg); }
.imap__detail-more > summary:hover { color: var(--ink); }
.imap__detail-more > summary:focus-visible { outline: 2px solid var(--accent-strong); outline-offset: 2px; border-radius: 4px; }
.imap__detail-more .imap__detail-summary { margin-block: var(--space-1) 0; }
@media (prefers-reduced-motion: reduce) {
  .imap__detail-more > summary::before { transition: none; }
}
.imap__detail .pslot.imap__detail-ad.has-note { flex-direction: column; min-block-size: 0px; }
.imap__detail .pslot.imap__detail-ad.has-note .pslot__mount { min-height: 1px !important; }
.imap__detail .pslot.imap__detail-ad.has-note .pslot__note { position: static; }
