/* Estilos públicos de Mapa Arauco.
 * Orden de cascada conservado al consolidar la versión 0.31.1.
 * Editar la sección y regla existentes; no añadir hojas por número de entrega.
 * No reordenar bloques sin comprobar mapa, lista, ficha y tamaños de pantalla.
 */
/* === Variables de diseño === */
:root {
  color-scheme: light;

  --green-700: #1f4e5f;
  --green-800: #163d4b;
  --green-050: #e7f2ee;
  --ink-900: #17353d;
  --ink-700: #405c64;
  --ink-600: #62777d;
  --ocean-600: #19766f;
  --ocean-050: #dcebef;
  --coral-600: #bc5f22;
  --coral-700: #963f16;
  --coral-050: #fae7d9;
  --sand-200: #d1ddc8;
  --sand-100: #dcebd2;
  --sand-050: #eef3e9;
  --offwhite: #fbfaf6;
  --white: #fffefa;
  --border: #c4d2ce;
  --border-strong: #6f8783;
  --focus: #075fff;
  --overlay: rgb(8 31 26 / 62%);
  --shadow-low: 0 2px 8px rgb(15 42 53 / 9%);
  --shadow-mid: 0 12px 30px rgb(15 42 53 / 18%);

  --font-sans: "Segoe UI Variable Text", "Segoe UI", system-ui, -apple-system, BlinkMacSystemFont, sans-serif;
  --text-xs: 0.8125rem;
  --text-sm: 0.875rem;
  --text-base: 1rem;
  --text-md: 1.125rem;
  --text-lg: 1.375rem;
  --text-xl: clamp(1.75rem, 4vw, 2.5rem);
  --leading-tight: 1.2;
  --leading-base: 1.5;
  --reading-width: 68ch;

  --space-1: 0.25rem;
  --space-2: 0.5rem;
  --space-3: 0.75rem;
  --space-4: 1rem;
  --space-5: 1.5rem;
  --space-6: 2rem;
  --space-8: 3rem;

  --radius-sm: 0.5rem;
  --radius-md: 0.75rem;
  --radius-lg: 1rem;
  --radius-xl: 1.5rem;
  --radius-pill: 999px;
  --target: 3rem;
  --ribbon-height: 1.875rem;
  --header-height: 4rem;
  --nav-height: 4.75rem;
  --content-max: 100rem;
  --transition: 140ms ease;

  --paper: #fbfaf6;
  --prototype-note-start: #8f3b13;
  --prototype-note-end: #a34a18;
  --context-height: 2.125rem;
  --topic-home: #087f6f;
  --topic-professional: #2463a6;
  --topic-commerce: #c26024;
  --topic-mobility: #6f4aa8;
  --topic-other: #56656c;
  --topic-now: #b64720;
  --active-topic-color: var(--topic-home);
  --health-700: #a92e2a;
  --health-600: #c54037;
  --health-100: #fff0ed;
  --health-050: #fff9f7;
  --emergency-700: #9f2f24;
  --emergency-600: #c94732;
  --emergency-100: #fff0ec;
  --citizen-700: #28569a;
  --citizen-600: #3974c4;
  --citizen-100: #edf5ff;
  --safety-700: #374183;
  --safety-600: #5362aa;
  --safety-100: #eef0ff;
  --pharmacy-700: #17624f;
  --pharmacy-600: #21836a;
  --pharmacy-100: #eaf8f3;
}

html[data-simple-mode="true"] {
  --target: 3.5rem;
  --reading-width: 54ch;
  font-size: 112.5%;
}

/* === Base y accesibilidad === */
*,
*::before,
*::after {
  box-sizing: border-box;
}

html {
  min-width: 0;
  background: var(--sand-050);
  color: var(--ink-900);
  font-family: var(--font-sans);
  font-size: 100%;
  -webkit-text-size-adjust: 100%;
  text-size-adjust: 100%;
}

body {
  min-width: 0;
  min-height: 100vh;
  min-height: 100dvh;
  margin: 0;
  background: var(--sand-050);
  color: var(--ink-900);
  font-size: var(--text-base);
  line-height: var(--leading-base);
  overflow-wrap: anywhere;
}

body:has(dialog[open]) {
  overflow: hidden;
}

.goo-filter-defs {
  position: absolute;
  width: 0;
  height: 0;
  overflow: hidden;
  pointer-events: none;
}

button,
input,
select,
textarea {
  color: inherit;
  font: inherit;
}

button,
select,
input[type="checkbox"],
input[type="radio"] {
  cursor: pointer;
}

button:disabled,
input:disabled,
select:disabled,
textarea:disabled {
  cursor: not-allowed;
  opacity: 0.58;
}

button,
a,
input,
select,
textarea,
[tabindex]:not([tabindex="-1"]) {
  -webkit-tap-highlight-color: transparent;
}

:focus-visible {
  outline: 0.1875rem solid var(--focus);
  outline-offset: 0.1875rem;
}

a {
  color: var(--green-700);
  text-decoration-thickness: 0.1em;
  text-underline-offset: 0.16em;
}

img,
svg {
  display: block;
  max-width: 100%;
}

h1,
h2,
h3,
p,
ul,
ol,
dl {
  margin-block-start: 0;
}

h1,
h2,
h3 {
  color: var(--ink-900);
  font-weight: 800;
  line-height: var(--leading-tight);
  text-wrap: balance;
}

h1 {
  margin-block-end: var(--space-3);
  font-size: var(--text-xl);
}

h2 {
  margin-block-end: var(--space-3);
  font-size: var(--text-lg);
}

h3 {
  margin-block-end: var(--space-2);
  font-size: var(--text-md);
}

[hidden] {
  display: none !important;
}

.icon {
  width: 1.5rem;
  height: 1.5rem;
  flex: 0 0 1.5rem;
  fill: none;
  stroke: currentColor;
  stroke-linecap: round;
  stroke-linejoin: round;
  stroke-width: 1.8;
}

.visually-hidden {
  position: absolute !important;
  width: 1px !important;
  height: 1px !important;
  padding: 0 !important;
  overflow: hidden !important;
  clip: rect(0 0 0 0) !important;
  clip-path: inset(50%) !important;
  border: 0 !important;
  margin: -1px !important;
  white-space: nowrap !important;
}

.skip-link {
  position: fixed;
  inset-block-start: var(--space-2);
  inset-inline-start: var(--space-2);
  z-index: 1000;
  padding: var(--space-3) var(--space-4);
  border-radius: var(--radius-sm);
  background: var(--white);
  color: var(--ink-900);
  font-weight: 800;
  transform: translateY(calc(-100% - 1rem));
}

.skip-link:focus {
  transform: none;
}

.app-shell {
  min-width: 0;
  min-height: 100vh;
  min-height: 100dvh;
  padding-block-end: calc(var(--nav-height) + env(safe-area-inset-bottom));
}

main {
  min-width: 0;
}

.view {
  min-width: 0;
}

.eyebrow {
  margin-block-end: var(--space-1);
  color: var(--green-700);
  font-size: var(--text-xs);
  font-weight: 850;
  letter-spacing: 0.055em;
  text-transform: uppercase;
}

@media (prefers-reduced-motion: reduce) {
  *,
  *::before,
  *::after {
    scroll-behavior: auto !important;
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
  }
}

@media (forced-colors: active) {
  .legend-dot,
  .brand__mark,
  .publish-glyph,
  .dialog-icon,
  .space-card__icon,
  .utility-icon {
    border: 1px solid ButtonText;
  }

  .goo-fx {
    display: none !important;
  }

  .layer-tabs button[aria-pressed="true"],
  .bottom-nav button[aria-current="page"] {
    background: Highlight;
    color: HighlightText;
  }
}

/* === Componentes comunes === */
/* Global chrome */
.demo-ribbon {
  position: relative;
  z-index: 60;
  display: flex;
  min-height: var(--ribbon-height);
  align-items: center;
  justify-content: center;
  padding: var(--space-1) var(--space-3);
  gap: var(--space-2);
  border-block-end: 1px solid #d8c69f;
  background: var(--sand-100);
  color: var(--ink-900);
  font-size: var(--text-xs);
  line-height: 1.15;
  text-align: center;
}

.demo-ribbon .icon {
  width: 1.125rem;
  height: 1.125rem;
  flex-basis: 1.125rem;
  color: var(--green-700);
}

.topbar {
  position: sticky;
  inset-block-start: 0;
  z-index: 50;
  display: flex;
  min-height: var(--header-height);
  align-items: center;
  justify-content: space-between;
  padding: var(--space-2) var(--space-3);
  gap: var(--space-2);
  border-block-end: 1px solid var(--border);
  background: var(--offwhite);
}

.brand {
  display: inline-flex;
  min-width: 0;
  min-height: var(--target);
  align-items: center;
  gap: var(--space-2);
  color: var(--ink-900);
  line-height: 1.1;
  text-decoration: none;
}

.brand__mark {
  display: grid;
  width: 2.75rem;
  height: 2.75rem;
  flex: 0 0 2.75rem;
  place-items: center;
  border-radius: var(--radius-md);
  background: var(--green-700);
  color: var(--white);
}

.brand__copy {
  display: block;
  min-width: 0;
}

.brand__copy strong,
.brand__copy small {
  display: block;
}

.brand__copy strong {
  font-size: 0.9375rem;
  font-weight: 850;
}

.brand__copy small {
  margin-block-start: 0.125rem;
  color: var(--ink-600);
  font-size: var(--text-xs);
  font-weight: 600;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.topbar__actions {
  display: flex;
  flex: 0 0 auto;
  align-items: center;
  gap: var(--space-2);
}

.network-banner {
  display: flex;
  min-height: var(--target);
  align-items: center;
  justify-content: center;
  padding: var(--space-2) var(--space-4);
  gap: var(--space-2);
  border-block-end: 1px solid #c99f92;
  background: var(--coral-050);
  color: var(--coral-700);
  font-size: var(--text-sm);
  font-weight: 750;
  text-align: center;
}

/* Buttons */
.primary-button,
.secondary-button,
.danger-button,
.text-link,
.icon-button,
.simple-toggle,
.map-tool-button,
.sos-button,
.map-fallback button,
.button {
  display: inline-flex;
  min-height: var(--target);
  align-items: center;
  justify-content: center;
  padding: var(--space-2) var(--space-4);
  gap: var(--space-2);
  border: 0.125rem solid transparent;
  border-radius: var(--radius-md);
  font-weight: 800;
  line-height: 1.2;
  text-align: center;
  text-decoration: none;
  transition: background-color var(--transition), border-color var(--transition), color var(--transition);
}

.primary-button,
.button--primary {
  background: var(--green-700);
  color: var(--white);
}

.primary-button:hover,
.button--primary:hover {
  background: var(--green-800);
}

.secondary-button,
.button--secondary,
.map-fallback button {
  border-color: var(--border-strong);
  background: var(--white);
  color: var(--ink-900);
}

.secondary-button:hover,
.button--secondary:hover,
.map-fallback button:hover {
  border-color: var(--green-700);
  background: var(--green-050);
}

.danger-button,
.button--danger {
  background: var(--coral-700);
  color: var(--white);
}

.text-link,
.button--text {
  min-height: var(--target);
  padding-inline: var(--space-2);
  border: 0;
  background: transparent;
  color: var(--green-700);
  text-align: start;
}

.text-link:hover,
.button--text:hover {
  text-decoration: underline;
  text-underline-offset: 0.2em;
}

.text-link--danger {
  color: var(--coral-700);
}

.icon-button {
  width: var(--target);
  min-width: var(--target);
  padding: 0;
  border-color: var(--border);
  background: var(--white);
  color: var(--ink-900);
}

.icon-button:hover {
  border-color: var(--green-700);
  background: var(--green-050);
}

.read-button {
  color: var(--ocean-600);
}

.simple-toggle {
  padding-inline: var(--space-3);
  border-color: var(--border);
  background: var(--white);
  color: var(--ink-900);
  font-size: var(--text-sm);
  white-space: nowrap;
}

.simple-toggle[aria-pressed="true"] {
  border-color: var(--green-700);
  background: var(--green-050);
  color: var(--green-800);
}

.simple-toggle__glyph {
  font-size: var(--text-base);
  font-weight: 900;
}

/* Map */
.map-stage {
  position: relative;
  min-width: 0;
  height: 49dvh;
  overflow: hidden;
  background: var(--ocean-050);
  isolation: isolate;
}

.map-canvas,
#map {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  min-height: 0;
  background: var(--ocean-050);
}

.map-loading {
  position: absolute;
  inset: 0;
  z-index: 2;
  display: grid;
  place-content: center;
  justify-items: center;
  gap: var(--space-3);
  background: var(--ocean-050);
  color: var(--ink-700);
  font-size: var(--text-sm);
  font-weight: 750;
  text-align: center;
}

.map-loading__pulse {
  width: 2rem;
  height: 2rem;
  border: 0.25rem solid rgb(22 124 128 / 24%);
  border-block-start-color: var(--ocean-600);
  border-radius: 50%;
  animation: map-spin 800ms linear infinite;
}

@keyframes map-spin {
  to { transform: rotate(360deg); }
}

.map-controls {
  position: absolute;
  inset: var(--space-3);
  z-index: 500;
  pointer-events: none;
}

.map-controls > * {
  pointer-events: auto;
}

.map-search {
  display: flex;
  min-width: 0;
  min-height: 3rem;
  align-items: center;
  padding-inline: var(--space-3) var(--space-1);
  gap: var(--space-2);
  border: 1px solid var(--border-strong);
  border-radius: var(--radius-pill);
  background: var(--white);
  box-shadow: var(--shadow-mid);
}

.map-search > .icon {
  color: var(--green-700);
}

.map-search input,
.directory-search input {
  width: 100%;
  min-width: 0;
  min-height: var(--target);
  padding: 0;
  border: 0;
  outline: 0;
  background: transparent;
  color: var(--ink-900);
}

.map-search input::placeholder,
.directory-search input::placeholder,
.form-field input::placeholder,
.form-field textarea::placeholder {
  color: var(--ink-600);
  opacity: 1;
}

.map-search__clear {
  display: grid;
  width: var(--target);
  height: var(--target);
  flex: 0 0 var(--target);
  place-items: center;
  padding: 0;
  border: 0;
  border-radius: 50%;
  background: var(--sand-050);
  color: var(--ink-700);
}

.map-tools {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto auto;
  min-width: 0;
  margin-block-start: var(--space-2);
  gap: var(--space-2);
}

.sector-control,
.map-tool-button,
.sos-button {
  min-height: var(--target);
  box-shadow: var(--shadow-low);
}

.sector-control {
  display: flex;
  min-width: 0;
  align-items: center;
  padding-inline: var(--space-3);
  gap: var(--space-2);
  border: 1px solid var(--border-strong);
  border-radius: var(--radius-md);
  background: var(--white);
  color: var(--ink-900);
}

.sector-control .icon {
  color: var(--green-700);
}

.sector-control select {
  width: 100%;
  min-width: var(--target);
  min-height: var(--target);
  overflow: hidden;
  border: 0;
  outline: 0;
  background: transparent;
  font-weight: 750;
  text-overflow: ellipsis;
}

.map-tool-button {
  padding-inline: var(--space-3);
  border-color: var(--border-strong);
  background: var(--white);
  color: var(--ink-900);
  font-size: var(--text-sm);
}

.sos-button {
  padding-inline: var(--space-3);
  background: var(--coral-700);
  color: var(--white);
}

.layer-tabs {
  position: absolute;
  display: flex;
  min-width: 0;
  overflow-x: auto;
  overscroll-behavior-inline: contain;
  scrollbar-width: none;
  isolation: isolate;
}

.layer-tabs::-webkit-scrollbar {
  display: none;
}

.layer-tabs button {
  position: relative;
  z-index: 1;
  display: inline-flex;
  flex: 0 0 auto;
  align-items: center;
  border: 1px solid var(--border-strong);
  border-radius: var(--radius-pill);
  font-weight: 800;
}

/* Liquid selection is progressive decoration. Buttons remain the state truth. */
.goo-fx {
  --goo-x: 0px;
  --goo-y: 0px;
  --goo-width: 0px;
  --goo-height: 0px;
  --goo-color: var(--green-700);
  --goo-shadow: rgb(6 77 57 / 18%);
  position: absolute;
  inset-block-start: 0;
  inset-inline-start: 0;
  z-index: 0;
  width: var(--goo-width);
  height: var(--goo-height);
  opacity: 0;
  pointer-events: none;
  transform: translate3d(var(--goo-x), var(--goo-y), 0);
}

.goo-blob {
  position: absolute;
  display: block;
  border-radius: var(--radius-pill);
  background: var(--goo-color);
}

.goo-blob--core {
  inset: 0;
  box-shadow: 0 1px 2px var(--goo-shadow), 0 5px 14px rgb(22 51 45 / 8%);
}

.goo-blob--trail {
  inset-block-start: 19%;
  inset-inline-start: 32%;
  width: 36%;
  height: 62%;
  opacity: 0;
}

html[data-gooey="on"] [data-gooey-ready="true"] > .goo-fx {
  filter: url("#arauco-goo");
  opacity: 1;
  transition: transform 220ms cubic-bezier(0.22, 1.08, 0.36, 1), opacity 100ms ease;
}

html[data-gooey="on"] [data-gooey-ready="true"] > .goo-fx[data-moving="true"] {
  will-change: transform;
}

html[data-gooey="on"] .layer-tabs[data-gooey-ready="true"] button[aria-pressed="true"] {
  background: transparent;
}

.map-legend {
  position: absolute;
  display: flex;
  max-width: calc(100% - var(--space-6));
  flex-wrap: wrap;
  gap: var(--space-2);
  border-radius: var(--radius-sm);
  color: var(--ink-700);
  font-weight: 700;
}

.map-legend span {
  display: inline-flex;
  align-items: center;
  gap: var(--space-1);
}
/* El atributo hidden debe ganar al inline-flex de arriba: la entrada «Ejemplo»
 * se oculta cuando ninguna ficha visible es de muestra (map-controller). */
.map-legend span[hidden] {
  display: none;
}

.legend-dot {
  width: 0.625rem;
  height: 0.625rem;
  border-radius: 50%;
  background: var(--ocean-600);
}

.legend-dot--official {
  background: var(--ocean-600);
}

.legend-dot--sample {
  background: var(--coral-600);
}

.map-fallback {
  position: absolute;
  display: grid;
  align-items: center;
  border: 1px solid var(--border-strong);
  border-radius: var(--radius-md);
  box-shadow: var(--shadow-mid);
}

.map-fallback div span,
.map-fallback div strong {
  display: block;
}

.map-fallback div span {
  color: var(--ink-600);
  font-size: var(--text-sm);
}

/* Marker styles cover the DOM emitted by the map module. */
.leaflet-div-icon,
.map-marker,
.catalog-marker {
  border: 0;
  background: transparent;
}

.marker-pin,
.map-pin {
  display: grid;
  width: 2.75rem;
  height: 2.75rem;
  place-items: center;
  border: 0.1875rem solid var(--white);
  border-radius: 50% 50% 50% 0.375rem;
  background: var(--green-700);
  color: var(--white);
  box-shadow: 0 4px 12px rgb(22 51 45 / 28%);
  transform: rotate(-45deg);
}

.marker-pin > *,
.map-pin > * {
  transform: rotate(45deg);
}

.marker-pin--business,
.map-pin--business { background: var(--ocean-600); }
.marker-pin--community,
.map-pin--community { background: var(--coral-600); }
.marker-pin--sample,
.map-pin--sample { background: var(--coral-600); }

.map-marker--today,
.map-marker--services,
.map-marker--business,
.map-marker--places,
.map-marker--community {
  display: grid;
  width: 3rem !important;
  height: 3rem !important;
  place-items: center;
  border: 0 !important;
  background: transparent !important;
  color: var(--white);
}

.map-marker__pin {
  display: grid;
  width: 2.75rem;
  height: 2.75rem;
  place-items: center;
  border: 0.1875rem solid var(--white);
  border-radius: 50% 50% 50% 0.375rem;
  background: var(--green-700);
  box-shadow: 0 4px 12px rgb(22 51 45 / 28%);
  transform: rotate(-45deg);
}

.map-marker__pin > .icon {
  width: 1.25rem;
  height: 1.25rem;
  transform: rotate(45deg);
}

.map-marker--services .map-marker__pin { background: var(--ocean-600); }
.map-marker--business .map-marker__pin { background: var(--ocean-600); }
.map-marker--places .map-marker__pin { background: #846228; }
.map-marker--community .map-marker__pin { background: var(--coral-600); }

.map-marker--cluster {
  display: grid;
  width: 3rem !important;
  height: 3rem !important;
  place-items: center;
  border: 0 !important;
  background: transparent !important;
  color: var(--white);
  font-size: var(--text-sm);
  font-weight: 850;
  line-height: 1;
}

.map-marker__cluster {
  position: relative;
  display: grid;
  width: 3rem;
  height: 3rem;
  place-items: center;
  border: 0.1875rem solid var(--white);
  border-radius: 50%;
  background: var(--ink-900);
  box-shadow: 0 4px 14px rgb(22 51 45 / 32%);
}

.map-marker__cluster > .icon {
  width: 1.3rem;
  height: 1.3rem;
}

.map-cluster-count {
  display: grid;
  position: absolute;
  right: -0.3rem;
  bottom: -0.2rem;
  min-width: 1.35rem;
  min-height: 1.35rem;
  place-items: center;
  padding: 0.15rem;
  border: 0.125rem solid var(--white);
  border-radius: var(--radius-pill);
  background: var(--ink-900);
  color: var(--white);
  font-size: 0.72rem;
  line-height: 1;
}

.leaflet-popup-content-wrapper {
  border-radius: var(--radius-md);
  color: var(--ink-900);
  box-shadow: var(--shadow-mid);
}

.leaflet-popup-content {
  min-width: min(11rem, calc(100vw - var(--space-8)));
  margin: var(--space-3);
  font-family: var(--font-sans);
  font-size: var(--text-sm);
  line-height: 1.4;
  overflow-wrap: anywhere;
}

.leaflet-popup-content:has(.map-cluster-list) {
  width: min(19rem, calc(100vw - var(--space-8))) !important;
}

.leaflet-popup-close-button {
  display: grid !important;
  width: var(--target) !important;
  height: var(--target) !important;
  place-items: center;
  padding: 0 !important;
  color: var(--ink-700) !important;
  font-size: 1.5rem !important;
}

.map-cluster-list {
  display: grid;
  margin: 0;
  padding: 0;
  gap: 0;
  list-style: none;
}

.map-cluster-popup {
  min-width: 0;
}

.map-cluster-popup > strong,
.map-cluster-popup > p {
  display: block;
  margin-block-end: var(--space-2);
}

.map-cluster-popup > p {
  color: var(--ink-600);
  font-size: var(--text-xs);
}

.map-cluster-list > li {
  min-width: 0;
  border-block-end: 1px solid var(--border);
}

.map-cluster-list > li:last-child {
  border-block-end: 0;
}

.map-cluster-list a,
.map-cluster-list button {
  display: grid;
  width: 100%;
  min-height: var(--target);
  align-content: center;
  padding: var(--space-2) var(--space-1);
  gap: var(--space-1);
  border: 0;
  background: transparent;
  color: var(--ink-900);
  font: inherit;
  text-align: start;
  text-decoration: none;
}

.map-cluster-list button.secondary-button {
  justify-content: start;
  border: 0;
  border-radius: var(--radius-sm);
}

.map-cluster-list a:hover,
.map-cluster-list button:hover {
  background: var(--green-050);
  color: var(--green-800);
}

.map-cluster-list a:focus-visible,
.map-cluster-list button:focus-visible {
  position: relative;
  z-index: 1;
}

.map-cluster-list strong,
.map-cluster-list small {
  display: block;
}

.map-cluster-list small {
  color: var(--ink-600);
  font-size: var(--text-xs);
}

/* Keep Leaflet chrome clear of the search, action row and layer switcher. */
.leaflet-control-zoom {
  margin-block-start: 7.75rem !important;
}

.leaflet-control-attribution {
  margin-block-end: 4rem !important;
  font-size: 0.625rem !important;
}

.leaflet-control-zoom a {
  width: var(--target) !important;
  height: var(--target) !important;
  line-height: var(--target) !important;
}

/* Compact utility and result components */
.panel-heading,
.content-heading,
.section-row,
.sheet-header,
.dialog-header {
  display: flex;
  min-width: 0;
  align-items: flex-start;
  justify-content: space-between;
  gap: var(--space-3);
}

.panel-heading h2,
.section-row h2,
.sheet-header h2,
.dialog-header h2 {
  margin-block-end: 0;
}

.view-switch {
  display: inline-grid;
  grid-template-columns: repeat(2, var(--target));
  padding: var(--space-1);
  border: 1px solid var(--border);
  border-radius: var(--radius-md);
  background: var(--sand-050);
}

.view-switch button {
  display: grid;
  width: var(--target);
  height: var(--target);
  place-items: center;
  padding: 0;
  border: 0;
  border-radius: var(--radius-sm);
  background: transparent;
  color: var(--ink-600);
}

.view-switch button[aria-pressed="true"] {
  background: var(--white);
  color: var(--green-700);
  box-shadow: var(--shadow-low);
}

.utility-strip {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: var(--space-2);
}

.utility-strip > button {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) auto;
  min-height: 4.25rem;
  align-items: center;
  padding: var(--space-2) var(--space-3);
  gap: var(--space-3);
  border: 1px solid var(--border);
  border-radius: var(--radius-md);
  background: var(--white);
  color: var(--ink-900);
  text-align: start;
}

.utility-strip > button:hover {
  border-color: var(--green-700);
  background: var(--green-050);
}

.utility-strip small,
.utility-strip strong {
  display: block;
}

.utility-strip small {
  color: var(--ink-600);
  font-size: var(--text-xs);
  font-weight: 700;
}

.utility-strip strong {
  margin-block-start: 0.125rem;
  font-size: var(--text-sm);
}

.utility-icon,
.space-card__icon,
.dialog-icon {
  display: grid;
  width: 2.75rem;
  height: 2.75rem;
  flex: 0 0 2.75rem;
  place-items: center;
  border-radius: var(--radius-md);
  background: var(--green-050);
  color: var(--green-700);
}

.utility-icon--weather {
  background: var(--ocean-050);
  color: var(--ocean-600);
}

.utility-icon--health {
  background: var(--green-050);
  color: var(--green-700);
}

.utility-chevron {
  color: var(--ink-600);
}

.result-summary {
  min-height: 1.5rem;
  color: var(--ink-600);
  font-size: var(--text-sm);
  font-weight: 700;
}

.catalog-results,
.directory-results,
.agenda-results,
.drafts-list {
  display: grid;
  min-width: 0;
  gap: var(--space-3);
}

#today-anchor,
.result-summary,
.catalog-card,
.directory-card,
.agenda-card,
.draft-card,
.result-card {
  scroll-margin-block-start: calc(var(--header-height) + var(--space-3));
}

.catalog-card,
.directory-card,
.agenda-card,
.draft-card,
.result-card,
.place-card,
.business-card,
.event-card,
.notice-card,
.detail-card,
.empty-state,
.state-panel {
  min-width: 0;
  padding: var(--space-4);
  border: 1px solid var(--border);
  border-radius: var(--radius-md);
  background: var(--white);
  box-shadow: var(--shadow-low);
}

.catalog-card,
.directory-card,
.agenda-card,
.result-card,
.place-card,
.business-card,
.event-card,
.notice-card {
  display: grid;
  gap: var(--space-3);
}

.catalog-card__header,
.catalog-card__meta,
.catalog-card__footer,
.directory-card__header,
.directory-card__meta,
.agenda-card__header,
.agenda-card__meta,
.draft-card__header,
.card__topline,
.card__meta,
.result-meta,
.source-row,
.status-row {
  display: flex;
  min-width: 0;
  flex-wrap: wrap;
  align-items: center;
  gap: var(--space-2);
}

.catalog-card__header,
.directory-card__header,
.agenda-card__header,
.draft-card__header,
.card__topline {
  justify-content: space-between;
}

.catalog-card h3,
.directory-card h3,
.agenda-card h3,
.draft-card h3,
.result-card h3 {
  margin-block-end: 0;
}

.catalog-card p,
.directory-card p,
.agenda-card p,
.draft-card p,
.result-card p,
.state-panel p,
.empty-state p {
  margin-block-end: 0;
}

.catalog-card__meta,
.directory-card__meta,
.agenda-card__meta,
.draft-card__meta,
.card__meta,
.result-meta {
  color: var(--ink-600);
  font-size: var(--text-sm);
}

.catalog-card button,
.directory-card button,
.agenda-card button,
.draft-card button,
.result-card button {
  min-height: var(--target);
}

.catalog-card__button {
  display: grid;
  width: 100%;
  min-height: var(--target);
  grid-template-columns: auto minmax(0, 1fr) auto;
  align-items: center;
  padding: 0;
  gap: var(--space-3);
  border: 0;
  background: transparent;
  color: inherit;
  text-align: start;
}

.catalog-card__image,
.directory-card__image,
.detail-hero {
  width: 100%;
  aspect-ratio: 4 / 3;
  object-fit: cover;
  border-radius: var(--radius-md);
  background: var(--sand-100);
}

.local-visual {
  position: relative;
  display: grid;
  width: 100%;
  min-height: 8.5rem;
  overflow: hidden;
  place-content: center;
  padding: var(--space-4);
  border-radius: var(--radius-md);
  background: var(--green-050);
  color: var(--green-700);
}

.local-visual--business {
  margin: 0;
  padding: 0;
  background: var(--ocean-050);
  color: var(--ocean-600);
}

.local-visual--business::before,
.local-visual--business::after {
  display: none;
}

.local-visual img {
  width: 100%;
  height: 100%;
  min-height: inherit;
  object-fit: cover;
}

.local-visual::before,
.local-visual::after {
  position: absolute;
  border: 1px solid currentColor;
  border-radius: 50%;
  content: "";
  opacity: 0.14;
}

.local-visual::before {
  width: 9rem;
  height: 9rem;
  inset: -4rem auto auto -3rem;
}

.local-visual::after {
  width: 7rem;
  height: 7rem;
  inset: auto -2.5rem -3.5rem auto;
}

.local-visual > .icon,
.local-visual > span > .icon {
  width: 2.75rem;
  height: 2.75rem;
}

.local-visual > span {
  position: relative;
  z-index: 1;
  display: grid;
  place-items: center;
}

.local-visual--place { background: var(--sand-100); color: #705020; }
.local-visual--event { background: var(--coral-050); color: var(--coral-700); }
.local-visual--detail { min-height: 11rem; border-radius: var(--radius-lg); }

.detail-hero {
  aspect-ratio: 3 / 2;
}

.catalog-card__button:focus-visible {
  border-radius: var(--radius-sm);
}

.catalog-card__icon {
  display: grid;
  width: 2.75rem;
  height: 2.75rem;
  flex: 0 0 2.75rem;
  place-items: center;
  border-radius: var(--radius-md);
  background: var(--green-050);
  color: var(--green-700);
}

.catalog-card__icon--business {
  background: var(--ocean-050);
  color: var(--ocean-600);
}

.catalog-card__icon--community {
  background: var(--coral-050);
  color: var(--coral-700);
}

.catalog-card__icon--places,
.catalog-card__icon--events {
  background: var(--sand-100);
  color: #705020;
}

.catalog-card__body {
  min-width: 0;
}

.catalog-card__badges,
.review-card__badges,
.detail-status-row {
  display: flex;
  min-width: 0;
  flex-wrap: wrap;
  align-items: center;
  gap: var(--space-2);
}

.catalog-card__title {
  margin-block: var(--space-2) var(--space-1);
  font-size: var(--text-md);
}

.catalog-card__summary {
  margin-block-end: var(--space-2) !important;
  color: var(--ink-700);
}

.catalog-card__meta {
  color: var(--ink-600);
  font-size: var(--text-sm);
}

.catalog-card__chevron {
  color: var(--ink-600);
}

.catalog-card--compact {
  padding: var(--space-3);
}

.catalog-card--compact .catalog-card__summary {
  display: none;
}

.state-badge {
  display: inline-flex;
  min-height: 1.75rem;
  align-items: center;
  padding: var(--space-1) var(--space-2);
  border-radius: var(--radius-pill);
  background: var(--sand-100);
  color: var(--ink-700);
  font-size: var(--text-xs);
  font-weight: 800;
  line-height: 1.2;
}

.state-badge--current,
.state-badge--open,
.state-badge--verified,
.state-badge--available {
  background: var(--green-050);
  color: var(--green-800);
}

.state-badge--sample,
.state-badge--unverified,
.state-badge--pending,
.state-badge--unknown {
  background: var(--sand-100);
  color: #684d1f;
}

.state-badge--closed,
.state-badge--expired,
.state-badge--alert {
  background: var(--coral-050);
  color: var(--coral-700);
}

.results-reveal {
  width: 100%;
  min-height: var(--target);
  padding: var(--space-2) var(--space-4);
  border: 1px solid var(--border-strong);
  border-radius: var(--radius-md);
  background: var(--white);
  color: var(--green-700);
  font-weight: 800;
}

.empty-state {
  display: grid;
  justify-items: start;
  gap: var(--space-3);
}

.empty-state--error {
  border-color: #d5a294;
  background: var(--coral-050);
}

.empty-state__actions,
.detail-actions {
  display: flex;
  flex-wrap: wrap;
  gap: var(--space-2);
}

.catalog-loading {
  display: grid;
  min-height: 8rem;
  place-content: center;
  justify-items: center;
  padding: var(--space-5);
  gap: var(--space-3);
  color: var(--ink-600);
  font-size: var(--text-sm);
  font-weight: 750;
  text-align: center;
}

.catalog-loading::before {
  width: 1.75rem;
  height: 1.75rem;
  border: 0.1875rem solid var(--border);
  border-block-start-color: var(--green-700);
  border-radius: 50%;
  content: "";
  animation: map-spin 800ms linear infinite;
}

.source-badge,
.status-badge,
.freshness,
.tag,
.category-badge {
  display: inline-flex;
  min-height: 1.75rem;
  align-items: center;
  padding: var(--space-1) var(--space-2);
  border-radius: var(--radius-pill);
  background: var(--sand-100);
  color: var(--ink-700);
  font-size: var(--text-xs);
  font-weight: 800;
  line-height: 1.2;
}

.source-badge--official,
.source-badge--institution,
.status-badge--official {
  background: var(--ocean-050);
  color: #0d6266;
}

.source-badge--business,
.status-badge--business {
  background: var(--green-050);
  color: var(--green-800);
}

.source-badge--community,
.status-badge--community {
  background: var(--coral-050);
  color: var(--coral-700);
}

.source-badge--sample,
.source-badge--draft,
.freshness--stale,
.status-badge--sample {
  background: var(--sand-100);
  color: #684d1f;
}

.sample-note,
.honest-state,
.agenda-note,
.dialog-note {
  padding: var(--space-3);
  border-inline-start: 0.25rem solid var(--coral-600);
  background: var(--coral-050);
  color: var(--ink-700);
  font-size: var(--text-sm);
}

.detail-summary {
  color: var(--ink-700);
  font-size: var(--text-md);
}

.detail-data,
.detail-section {
  padding: var(--space-4);
  border: 1px solid var(--border);
  border-radius: var(--radius-md);
  background: var(--white);
}

.detail-data {
  display: grid;
  margin-block: 0;
}

.detail-data > div {
  display: grid;
  grid-template-columns: minmax(7rem, 0.8fr) minmax(0, 1.2fr);
  padding-block: var(--space-2);
  gap: var(--space-3);
  border-block-end: 1px solid var(--border);
}

.detail-data > div:first-child {
  padding-block-start: 0;
}

.detail-data > div:last-child {
  padding-block-end: 0;
  border-block-end: 0;
}

.detail-data dt {
  color: var(--ink-600);
  font-size: var(--text-sm);
  font-weight: 750;
}

.detail-data dd {
  min-width: 0;
  margin: 0;
  overflow-wrap: anywhere;
}

.detail-section h3,
.detail-data h3 {
  margin-block-end: var(--space-3);
}

.fact-list {
  display: grid;
  margin-block-end: 0;
  padding-inline-start: 0;
  gap: var(--space-2);
  list-style: none;
}

.fact-list > li {
  display: grid;
  grid-template-columns: minmax(7rem, 0.8fr) minmax(0, 1.2fr);
  padding-block-end: var(--space-2);
  gap: var(--space-3);
  border-block-end: 1px solid var(--border);
}

.fact-list > li:last-child {
  padding-block-end: 0;
  border-block-end: 0;
}

.fact-list > li > span {
  color: var(--ink-600);
  font-size: var(--text-sm);
  font-weight: 750;
}

.fact-list > li > strong,
.fact-list > li:not(:has(> span)) {
  overflow-wrap: anywhere;
}

.detail-action {
  gap: var(--space-2);
  border: 0.125rem solid var(--green-700);
}

.detail-action--secondary,
.detail-action--external {
  background: var(--white);
  color: var(--green-700);
}

.detail-action--danger,
.detail-action--phone {
  border-color: var(--coral-700);
  background: var(--coral-700);
  color: var(--white);
}

.product-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: var(--space-3);
}

.product-card {
  display: grid;
  min-width: 0;
  overflow: hidden;
  border: 1px solid var(--border);
  border-radius: var(--radius-md);
  background: var(--white);
}

.product-card img {
  width: 100%;
  aspect-ratio: 4 / 3;
  object-fit: cover;
  background: var(--sand-100);
}

.product-card > :not(img) {
  margin-inline: var(--space-3);
}

.product-card > :first-child:not(img) {
  margin-block-start: var(--space-3);
}

.product-card > :last-child {
  margin-block-end: var(--space-3);
}

.product-card__price,
.product-card > span,
.offer-card__price {
  color: var(--green-800);
  font-weight: 850;
}

.offer-card {
  padding: var(--space-4);
  border: 0.125rem solid var(--sand-200);
  border-radius: var(--radius-md);
  background: var(--sand-050);
}

.amenity-list {
  display: flex;
  flex-wrap: wrap;
  margin-block-end: 0;
  padding: 0;
  gap: var(--space-2);
  list-style: none;
}

.amenity-list li {
  padding: var(--space-1) var(--space-2);
  border-radius: var(--radius-pill);
  background: var(--green-050);
  color: var(--green-800);
  font-size: var(--text-sm);
  font-weight: 700;
}

.sample-disclaimer {
  padding: var(--space-3);
  border: 1px solid var(--sand-200);
  border-radius: var(--radius-md);
  background: var(--sand-100);
  color: #5f481f;
  font-size: var(--text-sm);
  font-weight: 700;
}

.honest-state,
.agenda-note {
  display: flex;
  align-items: flex-start;
  gap: var(--space-2);
}

.meta-list {
  display: grid;
  grid-template-columns: minmax(6.5rem, auto) minmax(0, 1fr);
  margin-block-end: 0;
  gap: var(--space-2) var(--space-3);
}

.meta-list > div {
  display: contents;
}

.meta-list dt {
  color: var(--ink-600);
  font-size: var(--text-sm);
  font-weight: 750;
}

.meta-list dd {
  min-width: 0;
  margin: 0;
}

.state-panel,
.empty-state {
  text-align: start;
}

/* Search, categories and tabs */
.directory-search {
  display: flex;
  min-height: 3.25rem;
  align-items: center;
  padding-inline: var(--space-4);
  gap: var(--space-3);
  border: 0.125rem solid var(--border-strong);
  border-radius: var(--radius-md);
  background: var(--white);
}

.directory-search:focus-within {
  border-color: var(--focus);
  outline: 0.125rem solid rgb(0 95 204 / 24%);
}

.directory-categories,
.agenda-tabs {
  display: flex;
  min-width: 0;
  gap: var(--space-2);
  overflow-x: auto;
  overscroll-behavior-inline: contain;
  scrollbar-width: none;
}

.directory-categories::-webkit-scrollbar,
.agenda-tabs::-webkit-scrollbar {
  display: none;
}

.directory-categories button,
.agenda-tabs button {
  min-height: var(--target);
  flex: 0 0 auto;
  padding: var(--space-2) var(--space-3);
  border: 1px solid var(--border-strong);
  border-radius: var(--radius-pill);
  background: var(--white);
  color: var(--ink-700);
  font-weight: 800;
}

.directory-categories button[aria-pressed="true"],
.agenda-tabs button[aria-selected="true"] {
  border-color: var(--green-700);
  background: var(--green-700);
  color: var(--white);
}

/* Forms */
.publish-flow,
.business-form {
  display: grid;
  min-width: 0;
  gap: var(--space-5);
}

.progress-steps {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  margin: 0;
  padding: 0;
  gap: var(--space-2);
  list-style: none;
}

.progress-steps li {
  display: flex;
  min-width: 0;
  align-items: center;
  padding: var(--space-2);
  gap: var(--space-2);
  border-block-end: 0.1875rem solid var(--border);
  color: var(--ink-600);
  font-size: var(--text-sm);
  font-weight: 750;
}

.progress-steps li > span {
  display: grid;
  width: 1.75rem;
  height: 1.75rem;
  flex: 0 0 1.75rem;
  place-items: center;
  border-radius: 50%;
  background: var(--sand-100);
}

.progress-steps li[aria-current="step"] {
  border-block-end-color: var(--green-700);
  color: var(--green-800);
}

.progress-steps li[aria-current="step"] > span {
  background: var(--green-700);
  color: var(--white);
}

.publish-step {
  min-width: 0;
  margin: 0;
  padding: var(--space-5);
  border: 1px solid var(--border);
  border-radius: var(--radius-lg);
  background: var(--white);
  box-shadow: var(--shadow-low);
}

.publish-step legend {
  padding-inline: 0;
  font-size: var(--text-lg);
  font-weight: 800;
  line-height: var(--leading-tight);
}

.field-help,
.form-field small {
  color: var(--ink-600);
  font-size: var(--text-sm);
}

.publication-categories {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  margin-block-start: var(--space-4);
  gap: var(--space-3);
}

.publication-categories button,
.publication-category,
.category-option {
  display: flex;
  width: 100%;
  min-height: 4.25rem;
  align-items: flex-start;
  padding: var(--space-3);
  gap: var(--space-3);
  border: 1px solid var(--border);
  border-radius: var(--radius-md);
  background: var(--white);
  color: var(--ink-900);
  font-weight: 750;
  text-align: start;
}

.publication-option {
  display: grid;
  width: 100%;
  min-height: 4.25rem;
  grid-template-columns: auto minmax(0, 1fr);
  align-items: center;
  padding: var(--space-3);
  gap: var(--space-3);
  border: 1px solid var(--border);
  border-radius: var(--radius-md);
  background: var(--white);
  color: var(--ink-900);
  font-weight: 750;
  text-align: start;
}

.publication-option:hover,
.publication-option--selected,
.publication-option[aria-pressed="true"] {
  border-color: var(--green-700);
  background: var(--green-050);
}

.publication-option__icon {
  display: grid;
  width: 2.75rem;
  height: 2.75rem;
  place-items: center;
  border-radius: var(--radius-md);
  background: var(--green-050);
  color: var(--green-700);
}

.publication-option--selected .publication-option__icon,
.publication-option[aria-pressed="true"] .publication-option__icon {
  background: var(--green-700);
  color: var(--white);
}

.publication-option strong,
.publication-option small {
  display: block;
}

.publication-option small {
  margin-block-start: var(--space-1);
  color: var(--ink-600);
  font-size: var(--text-sm);
  font-weight: 600;
}

.publication-categories button:hover,
.publication-category:hover,
.category-option:hover,
.publication-categories button[aria-pressed="true"],
.publication-category[aria-pressed="true"],
.category-option[aria-pressed="true"] {
  border-color: var(--green-700);
  background: var(--green-050);
}

.publication-categories button > .icon,
.publication-category > .icon,
.category-option > .icon {
  color: var(--green-700);
}

.publication-categories small,
.publication-category small,
.category-option small {
  display: block;
  margin-block-start: var(--space-1);
  color: var(--ink-600);
  font-size: var(--text-sm);
  font-weight: 600;
}

.form-field {
  display: grid;
  min-width: 0;
  margin-block-start: var(--space-4);
  gap: var(--space-2);
  color: var(--ink-900);
  font-weight: 800;
}

.form-field input,
.form-field select,
.form-field textarea {
  width: 100%;
  min-height: var(--target);
  padding: var(--space-3);
  border: 0.125rem solid var(--border-strong);
  border-radius: var(--radius-sm);
  background: var(--white);
  font-weight: 500;
}

.form-field textarea {
  min-height: 8rem;
  resize: vertical;
}

.form-field input:focus,
.form-field select:focus,
.form-field textarea:focus {
  border-color: var(--focus);
}

.check-field {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  min-height: var(--target);
  align-items: flex-start;
  margin-block-start: var(--space-4);
  gap: var(--space-3);
  font-weight: 700;
}

.check-field input {
  width: 1.5rem;
  height: 1.5rem;
  margin: 0.125rem 0 0;
  accent-color: var(--green-700);
}

.field-error {
  min-height: 1.25rem;
  margin-block-end: 0;
  color: var(--coral-700);
  font-size: var(--text-sm);
  font-weight: 750;
}

.field-error:empty {
  display: none;
}

.flow-actions {
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-end;
  gap: var(--space-3);
}

.review-card {
  margin-block: var(--space-4);
  padding: var(--space-4);
  border: 1px solid var(--border);
  border-radius: var(--radius-md);
  background: var(--sand-050);
}

.review-step {
  align-content: start;
}

.review-card__badges {
  margin-block-end: var(--space-3);
}

.agenda-card {
  grid-template-columns: auto minmax(0, 1fr);
  align-items: start;
}

.agenda-card__date {
  display: grid;
  width: 3.5rem;
  min-height: 4rem;
  place-content: center;
  justify-items: center;
  padding: var(--space-2);
  border-radius: var(--radius-md);
  background: var(--green-700);
  color: var(--white);
  font-size: var(--text-xs);
  font-weight: 800;
  line-height: 1.1;
  text-align: center;
  text-transform: uppercase;
}

.agenda-card__date strong {
  font-size: var(--text-lg);
}

.agenda-card__body {
  min-width: 0;
}

.draft-card {
  display: grid;
  gap: var(--space-3);
}

/* Dialogs */
dialog {
  max-width: none;
  max-height: none;
  border: 0;
  color: var(--ink-900);
}

dialog::backdrop {
  background: var(--overlay);
}

.detail-sheet,
.action-dialog {
  width: 100%;
  max-height: min(82dvh, 48rem);
  margin: auto 0 0;
  padding: var(--space-4);
  overflow-y: auto;
  border-radius: var(--radius-xl) var(--radius-xl) 0 0;
  background: var(--offwhite);
  box-shadow: var(--shadow-mid);
}

.detail-sheet[open],
.action-dialog[open] {
  animation: sheet-in 180ms ease-out;
}

@keyframes sheet-in {
  from { opacity: 0; transform: translateY(1rem); }
}

.sheet-handle {
  width: 2.75rem;
  height: 0.25rem;
  margin: 0 auto var(--space-3);
  border-radius: var(--radius-pill);
  background: var(--border);
}

.sheet-content {
  display: grid;
  margin-block-start: var(--space-4);
  gap: var(--space-3);
}

.dialog-header {
  align-items: center;
  margin-block-end: var(--space-4);
}

.dialog-header > div {
  min-width: 0;
  flex: 1 1 auto;
}

.dialog-icon--danger {
  background: var(--coral-050);
  color: var(--coral-700);
}

.emergency-grid,
.plan-comparison {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: var(--space-3);
}

.emergency-grid a {
  display: grid;
  min-height: 4.25rem;
  align-content: center;
  padding: var(--space-3) var(--space-4);
  border: 0.125rem solid var(--coral-600);
  border-radius: var(--radius-md);
  background: var(--white);
  color: var(--coral-700);
  text-decoration: none;
}

.emergency-grid a strong {
  font-size: var(--text-lg);
}

.emergency-grid a span {
  color: var(--ink-700);
  font-size: var(--text-sm);
}

.plan-comparison article {
  padding: var(--space-4);
  border: 1px solid var(--border);
  border-radius: var(--radius-md);
  background: var(--white);
}

.plan-comparison article > span,
.plan-comparison article > strong {
  display: block;
}

.plan-comparison article > strong {
  margin-block: var(--space-1) var(--space-3);
  font-size: var(--text-lg);
}

.plan-comparison ul {
  margin-block-end: 0;
  padding-inline-start: var(--space-5);
}

.plan-comparison__featured {
  border-color: var(--green-700) !important;
  background: var(--green-050) !important;
}

.business-request-card {
  display: grid;
  min-width: 0;
  padding: var(--space-4);
  gap: var(--space-3);
  border: 1px solid #8fb9aa;
  border-radius: var(--radius-md);
  background: var(--green-050);
  color: var(--ink-900);
}

.business-request-card p {
  margin-block-end: 0;
  color: var(--ink-700);
}

.toast {
  position: fixed;
  inset-inline: var(--space-3);
  inset-block-end: calc(var(--nav-height) + env(safe-area-inset-bottom) + var(--space-3));
  z-index: 100;
  width: fit-content;
  max-width: min(34rem, calc(100% - var(--space-6)));
  min-height: var(--target);
  margin-inline: auto;
  padding: var(--space-3) var(--space-4);
  border-radius: var(--radius-md);
  background: var(--ink-900);
  color: var(--white);
  font-size: var(--text-sm);
  font-weight: 750;
  opacity: 0;
  pointer-events: none;
  transform: translateY(var(--space-2));
  transition: opacity var(--transition), transform var(--transition);
}

.toast--visible,
.toast.is-visible {
  opacity: 1;
  transform: none;
}

/* Persistent mobile navigation */
.bottom-nav {
  position: fixed;
  inset-inline: 0;
  inset-block-end: 0;
  z-index: 70;
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  min-height: calc(var(--nav-height) + env(safe-area-inset-bottom));
  padding: var(--space-1) max(var(--space-1), env(safe-area-inset-left)) env(safe-area-inset-bottom) max(var(--space-1), env(safe-area-inset-right));
  border-block-start: 1px solid var(--border);
  background: var(--offwhite);
  isolation: isolate;
}

.bottom-nav button {
  position: relative;
  z-index: 1;
  display: flex;
  min-width: 0;
  min-height: 4rem;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  padding: var(--space-1);
  gap: 0.125rem;
  border: 0;
  border-radius: var(--radius-sm);
  background: transparent;
  color: var(--ink-600);
  font-size: var(--text-xs);
  font-weight: 800;
  line-height: 1.1;
}

.bottom-nav button[aria-current="page"] {
  background: var(--green-050);
  color: var(--green-800);
}

.goo-fx--navigation {
  --goo-color: var(--green-050);
  --goo-shadow: rgb(7 95 69 / 12%);
}

.goo-fx--navigation .goo-blob {
  border-radius: var(--radius-sm);
}

html[data-gooey="on"] .bottom-nav[data-gooey-ready="true"] button[aria-current="page"] {
  background: transparent;
}

@media (prefers-reduced-motion: reduce) {
  .goo-fx {
    display: none !important;
  }
}

@media (max-width: 22rem) {
  .bottom-nav button > span:last-child {
    font-size: 0.6875rem;
    letter-spacing: -0.01em;
    white-space: nowrap;
  }
}

.bottom-nav__publish {
  color: var(--green-800) !important;
}

.publish-glyph {
  display: grid;
  width: 2.25rem;
  height: 2.25rem;
  place-items: center;
  border-radius: 50%;
  background: var(--green-700);
  color: var(--white);
}

.publish-glyph .icon {
  width: 1.25rem;
  height: 1.25rem;
}

/* === Vistas y distribución === */
/* Home map workspace */
.view--home {
  width: 100%;
}

.discovery-panel {
  display: grid;
  min-width: 0;
  padding: var(--space-4) var(--space-4) var(--space-6);
  gap: var(--space-4);
  background: var(--sand-050);
}

.community-story {
  display: grid;
  min-width: 0;
  overflow: hidden;
  border: 1px solid var(--border);
  border-radius: var(--radius-lg);
  background: var(--white);
  box-shadow: var(--shadow-low);
}

.community-story img {
  width: 100%;
  aspect-ratio: 3 / 2;
  object-fit: cover;
  background: var(--ocean-050);
}

.community-story > div {
  padding: var(--space-4);
}

.community-story p:not(.eyebrow) {
  color: var(--ink-700);
}

.community-story .text-link {
  margin-inline-start: calc(-1 * var(--space-2));
}

/* Simple home intentionally precedes the map in reading and visual order. */
.simple-home {
  max-width: var(--content-max);
  margin-inline: auto;
  padding: var(--space-4);
  background: var(--sand-050);
}

.simple-actions {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: var(--space-3);
}

.simple-actions button {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  min-height: 4.75rem;
  align-items: center;
  padding: var(--space-3) var(--space-4);
  gap: var(--space-4);
  border: 0.125rem solid var(--border);
  border-radius: var(--radius-md);
  background: var(--white);
  color: var(--ink-900);
  text-align: start;
}

.simple-actions button:hover {
  border-color: var(--green-700);
  background: var(--green-050);
}

.simple-actions button > .icon {
  width: 2rem;
  height: 2rem;
  color: var(--green-700);
}

.simple-actions strong,
.simple-actions small {
  display: block;
}

.simple-actions strong {
  font-size: var(--text-md);
}

.simple-actions small {
  margin-block-start: var(--space-1);
  color: var(--ink-600);
  font-size: var(--text-sm);
}

html[data-simple-mode="true"] .map-workspace {
  display: flex;
}

html[data-simple-mode="true"] .discovery-panel {
  order: -1;
}

html[data-simple-mode="true"] .view-switch,
html[data-simple-mode="true"] .map-legend {
  display: none;
}

html[data-simple-mode="true"] .layer-tabs button:not([aria-pressed="true"]) {
  display: none;
}

html[data-simple-mode="true"] .goo-fx {
  display: none !important;
}

html[data-simple-mode="true"] .catalog-results,
html[data-simple-mode="true"] .directory-results,
html[data-simple-mode="true"] .agenda-results,
html[data-simple-mode="true"] .drafts-list {
  gap: var(--space-4);
}

html[data-simple-mode="true"] .catalog-card,
html[data-simple-mode="true"] .directory-card,
html[data-simple-mode="true"] .agenda-card,
html[data-simple-mode="true"] .draft-card,
html[data-simple-mode="true"] .result-card,
html[data-simple-mode="true"] .publish-step,
html[data-simple-mode="true"] .space-card {
  padding: var(--space-5);
}

@media (max-width: 47.99rem) {
  html[data-simple-mode="true"] .demo-ribbon {
    padding-block: 0.125rem;
    font-size: 0.75rem;
  }

  html[data-simple-mode="true"] .topbar {
    padding-block: var(--space-1);
  }

  html[data-simple-mode="true"] .brand {
    flex: 0 0 auto;
  }

  html[data-simple-mode="true"] .brand__copy {
    display: none;
  }

  html[data-simple-mode="true"] .topbar__actions {
    min-width: 0;
    flex: 1;
    justify-content: flex-end;
  }

  html[data-simple-mode="true"] .simple-toggle {
    max-width: 100%;
  }
}

/* Secondary views */
.content-view {
  width: min(100%, var(--content-max));
  margin-inline: auto;
  padding: var(--space-5) var(--space-4) var(--space-8);
}

.content-heading {
  margin-block-end: var(--space-5);
}

.content-heading > div {
  min-width: 0;
  max-width: var(--reading-width);
}

.content-heading p:not(.eyebrow) {
  margin-block-end: 0;
  color: var(--ink-700);
}

.content-heading--narrow {
  max-width: 48rem;
  margin-inline: auto;
}

.directory-search,
.directory-categories,
.agenda-tabs,
.agenda-note {
  margin-block-end: var(--space-4);
}

.publish-flow {
  width: min(100%, 48rem);
  margin-inline: auto;
}

.space-grid {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: var(--space-4);
}

.space-card {
  display: grid;
  min-width: 0;
  align-content: start;
  padding: var(--space-5);
  gap: var(--space-4);
  border: 1px solid var(--border);
  border-radius: var(--radius-lg);
  background: var(--white);
  box-shadow: var(--shadow-low);
}

.space-card p:not(.eyebrow) {
  margin-block-end: 0;
  color: var(--ink-700);
}

.space-card--business {
  border-color: #8fb9aa;
  background: var(--green-050);
}

.drafts-section {
  margin-block-start: var(--space-6);
}

.section-row {
  align-items: flex-end;
  margin-block-end: var(--space-4);
}

/* Compact list mode emitted by the controller. */
.catalog-results.is-compact .catalog-card,
.catalog-results[data-view="compact"] .catalog-card,
.catalog-results--compact .catalog-card {
  grid-template-columns: auto minmax(0, 1fr) auto;
  align-items: center;
  padding: var(--space-3);
}

.catalog-results.is-compact .catalog-card p,
.catalog-results[data-view="compact"] .catalog-card p,
.catalog-results--compact .catalog-card p {
  display: none;
}

/* Responsive safeguards */
@media (max-width: 23.99rem) {
  .brand__copy small {
    display: none;
  }

  .brand__copy strong {
    font-size: var(--text-sm);
  }

  .topbar {
    padding-inline: var(--space-2);
  }

  .simple-toggle > span:last-child,
  .map-tool-button > span {
    position: absolute;
    width: 1px;
    height: 1px;
    overflow: hidden;
    clip-path: inset(50%);
  }

  .simple-toggle {
    width: var(--target);
    padding: 0;
  }

  .map-tools {
    grid-template-columns: minmax(0, 1fr) var(--target) var(--target);
  }

  .map-tool-button,
  .sos-button {
    width: var(--target);
    padding: 0;
  }

  .sos-button span {
    display: none;
  }

  .map-stage {
    height: 47dvh;
  }

  .meta-list {
    grid-template-columns: minmax(0, 1fr);
    gap: var(--space-1);
  }

  .meta-list > div {
    display: grid;
    gap: var(--space-1);
  }

  .flow-actions > *,
  .content-heading > button {
    width: 100%;
  }

  .bottom-nav button {
    font-size: var(--text-xs);
  }
}

@media (min-width: 40rem) {
  .simple-actions,
  .publication-categories,
  .space-grid,
  .emergency-grid,
  .plan-comparison {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .utility-strip {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .directory-results,
  .agenda-results {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .community-story {
    grid-template-columns: minmax(12rem, 0.9fr) minmax(0, 1.1fr);
    align-items: stretch;
  }

  .community-story img {
    height: 100%;
    aspect-ratio: auto;
  }

  .action-dialog,
  .detail-sheet {
    width: min(92%, 40rem);
    margin: auto;
    border-radius: var(--radius-xl);
  }

  .flow-actions > * {
    min-width: 9rem;
  }
}

@media (min-width: 64rem) {
  .app-shell {
    height: 100dvh;
    overflow: hidden;
  }

  .topbar {
    padding-inline: max(var(--space-5), calc((100% - var(--content-max)) / 2 + var(--space-4)));
  }

  main {
    height: calc(100dvh - var(--ribbon-height) - var(--header-height) - var(--nav-height));
    overflow: auto;
  }

  .view--home,
  .view--home .map-workspace {
    height: 100%;
  }

  .map-workspace {
    display: grid;
    grid-template-columns: minmax(0, 64fr) minmax(21rem, 36fr);
  }

  .map-stage {
    height: 100%;
    min-height: 0;
    border-inline-end: 1px solid var(--border);
  }

  .discovery-panel {
    height: 100%;
    overflow-y: auto;
    overscroll-behavior: contain;
    padding: var(--space-4);
  }

  html[data-simple-mode="true"] .map-workspace {
    display: grid;
    grid-template-columns: minmax(23rem, 40fr) minmax(0, 60fr);
  }

  html[data-simple-mode="true"] .discovery-panel {
    grid-column: 1;
    grid-row: 1;
  }

  html[data-simple-mode="true"] .map-stage {
    grid-column: 2;
    grid-row: 1;
  }

  .map-controls {
    inset: var(--space-4);
    display: grid;
    grid-template-columns: minmax(18rem, 32rem) minmax(20rem, 1fr);
    align-content: start;
    align-items: start;
    gap: var(--space-4);
  }

  .map-tools {
    grid-column: 2;
    margin-block-start: 0;
  }

  .map-search {
    grid-column: 1;
  }

  .layer-tabs {
    inset-inline: 0;
    inset-block-end: 0;
  }

  .map-legend {
    inset-inline-start: var(--space-4);
    inset-block-end: calc(var(--target) + var(--space-8));
  }

  .community-story {
    grid-template-columns: minmax(0, 1fr);
  }

  .community-story img {
    height: auto;
    aspect-ratio: 3 / 2;
  }

  .content-view {
    min-height: 100%;
    padding-block: var(--space-6) var(--space-8);
  }

  .content-heading {
    align-items: flex-end;
  }

  .directory-results,
  .agenda-results {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }

  .bottom-nav {
    width: min(100% - var(--space-6), 42rem);
    min-height: var(--nav-height);
    margin-inline: auto;
    padding: var(--space-1);
    border: 1px solid var(--border);
    border-block-end: 0;
    border-radius: var(--radius-lg) var(--radius-lg) 0 0;
    box-shadow: var(--shadow-mid);
  }

  .detail-sheet,
  .action-dialog {
    width: min(32rem, 42vw);
    height: 100dvh;
    max-height: none;
    margin: 0 0 0 auto;
    padding: var(--space-5);
    border-radius: var(--radius-xl) 0 0 var(--radius-xl);
  }

  .action-dialog--small {
    width: min(28rem, 40vw);
  }

  .sheet-handle {
    display: none;
  }
}

@media (min-width: 64rem) and (max-width: 74.99rem) {
  .map-controls {
    grid-template-columns: minmax(0, 1fr);
    gap: var(--space-2);
  }

  .map-search,
  .map-tools {
    grid-column: 1;
    width: min(100%, 42rem);
  }

  .map-search {
    width: min(100%, 32rem);
  }

  .map-tools {
    grid-template-columns: minmax(11rem, 1fr) auto auto;
  }

  .leaflet-control-zoom {
    margin-block-start: 10.25rem !important;
  }
}

@media (min-width: 75rem) {
  .map-controls {
    grid-template-columns: minmax(17rem, 1fr) minmax(27rem, 1.25fr);
  }

  .map-tools {
    grid-template-columns: minmax(11rem, 1fr) auto auto;
  }

  .sector-control {
    min-width: 11rem;
  }

  .map-tool-button,
  .sos-button {
    white-space: nowrap;
  }
}

@media (min-width: 80rem) {
  .discovery-panel {
    padding: var(--space-5);
  }

  .catalog-results {
    gap: var(--space-4);
  }
}

@media print {
  .demo-ribbon,
  .topbar__actions,
  .map-controls,
  .bottom-nav,
  .toast,
  dialog {
    display: none !important;
  }

  .app-shell,
  main,
  .map-workspace,
  .discovery-panel {
    height: auto;
    overflow: visible;
  }
}

/* === Estructura del mapa y paneles === */
/* UX-005 — recuperación fiel del concepto “Mapa Vivo”.
   El mapa vuelve a ser la superficie principal; los resultados permanecen
   disponibles en la misma pantalla y ninguna acción futura se simula. */

html,
body {
  background: #dfe5e8;
}

body {
  overflow-x: hidden;
}

.app-shell {
  width: 100%;
  background: var(--offwhite);
}

.demo-ribbon {
  min-height: var(--ribbon-height);
  padding-block: 0.25rem;
  border-color: #c99e43;
  background: #e8a33d;
  color: #3d2800;
  font-size: 0.72rem;
  font-weight: 750;
}

.demo-ribbon .icon {
  width: 1rem;
  height: 1rem;
  flex-basis: 1rem;
  color: currentColor;
}

.topbar {
  min-height: var(--header-height);
  padding: 0.55rem 0.85rem;
  border: 0;
  background: linear-gradient(145deg, #163d4b 0%, #1f4e5f 58%, #23636e 100%);
  color: var(--white);
  box-shadow: 0 2px 12px rgb(15 42 53 / 20%);
}

.brand {
  color: var(--white);
}

.brand__mark {
  width: 2.55rem;
  height: 2.55rem;
  flex-basis: 2.55rem;
  border: 1px solid rgb(255 255 255 / 24%);
  background: rgb(255 255 255 / 12%);
  color: #7ed6c0;
}

.brand__copy strong {
  font-size: 0.96rem;
  letter-spacing: 0.055em;
  text-transform: uppercase;
}

.brand__copy strong span {
  color: #7ed6c0;
}

.brand__copy small {
  color: rgb(255 255 255 / 76%);
  font-size: 0.7rem;
  letter-spacing: 0.015em;
}

.topbar .simple-toggle {
  min-height: 3rem;
  padding-inline: 0.75rem;
  border-color: rgb(255 255 255 / 32%);
  background: rgb(255 255 255 / 10%);
  color: var(--white);
  font-size: 0.78rem;
}

.topbar .simple-toggle:hover,
.topbar .simple-toggle[aria-pressed="true"] {
  border-color: #7ed6c0;
  background: rgb(126 214 192 / 17%);
  color: var(--white);
}

.context-strip {
  position: relative;
  z-index: 45;
  display: flex;
  min-height: var(--context-height);
  align-items: center;
  justify-content: center;
  padding: 0.42rem 0.8rem;
  gap: 0.45rem;
  background: linear-gradient(90deg, var(--prototype-note-start), var(--prototype-note-end));
  color: var(--white);
  font-size: 0.73rem;
  font-weight: 750;
  line-height: 1.2;
  text-align: center;
}

.context-strip .icon {
  width: 1rem;
  height: 1rem;
  flex-basis: 1rem;
}

.network-banner {
  position: relative;
  z-index: 44;
}

.view--home,
.map-workspace {
  width: 100%;
}

.map-workspace {
  display: flex;
  min-width: 0;
  flex-direction: column;
}

.map-stage {
  position: relative;
  height: clamp(19rem, 53dvh, 31rem);
  min-height: 19rem;
  flex: 0 0 auto;
  overflow: hidden;
  background: #cfe4ea;
  isolation: isolate;
}

.map-stage::after {
  position: absolute;
  inset: auto 0 0;
  z-index: 440;
  height: 5.5rem;
  background: linear-gradient(transparent, rgb(15 42 53 / 17%));
  content: "";
  pointer-events: none;
}

.map-controls {
  inset: 0.65rem;
}

.map-search {
  min-height: 3.2rem;
  padding-inline: 0.9rem 0.3rem;
  border-color: rgb(22 61 75 / 18%);
  background: var(--white);
  box-shadow: 0 2px 7px rgb(15 42 53 / 13%), 0 9px 24px rgb(15 42 53 / 14%);
  backdrop-filter: blur(12px);
}

.map-search input {
  font-size: 0.91rem;
}

.map-search__clear,
.map-search__submit {
  display: grid;
  width: 3rem;
  height: 3rem;
  flex: 0 0 3rem;
  place-items: center;
  padding: 0;
  border: 0;
  border-radius: 50%;
}

.map-search__clear {
  background: #edf2ef;
  color: var(--ink-700);
}

.map-search__submit {
  background: var(--green-800);
  color: var(--white);
}

.map-search__clear .icon,
.map-search__submit .icon {
  width: 1.15rem;
  height: 1.15rem;
}

.map-tools {
  grid-template-columns: minmax(0, 1fr) auto;
  margin-block-start: 0.5rem;
  gap: 0.5rem;
}

.sector-control,
.map-tool-button {
  min-height: 3rem;
  border-color: rgb(22 61 75 / 28%);
  border-radius: 0.8rem;
  background: rgb(255 255 255 / 95%);
  box-shadow: 0 2px 9px rgb(15 42 53 / 15%);
  backdrop-filter: blur(10px);
}

.sector-control {
  padding-inline: 0.8rem;
}

.sector-control select {
  min-height: 3rem;
  font-size: 0.84rem;
}

.map-tool-button {
  padding-inline: 0.75rem;
  font-size: 0.78rem;
}

.layer-tabs {
  inset-inline: 0;
  inset-block-end: 0;
  z-index: 470;
  gap: 0.4rem;
  padding: 0.1rem 0 0.1rem;
}

.layer-tabs button {
  min-height: 3rem;
  padding: 0.55rem 0.75rem;
  gap: 0.35rem;
  border-color: rgb(22 61 75 / 19%);
  background: rgb(255 255 255 / 92%);
  color: #405b64;
  box-shadow: 0 2px 9px rgb(15 42 53 / 15%);
  backdrop-filter: blur(9px);
  font-size: 0.74rem;
}

.layer-tabs button .icon {
  width: 1rem;
  height: 1rem;
  flex-basis: 1rem;
}

.layer-tabs button[aria-pressed="true"] {
  border-color: var(--green-800);
  background: var(--green-800);
  color: var(--white);
  box-shadow: 0 4px 13px rgb(22 61 75 / 35%);
}

.map-legend {
  inset-inline-start: 0.65rem;
  inset-block-end: 4.35rem;
  z-index: 465;
  padding: 0.28rem 0.55rem;
  border: 1px solid rgb(22 61 75 / 13%);
  background: rgb(255 255 255 / 91%);
  box-shadow: 0 2px 8px rgb(15 42 53 / 10%);
  font-size: 0.67rem;
  backdrop-filter: blur(8px);
}

.map-fallback {
  inset: auto 0.65rem 7.2rem;
  z-index: 520;
  grid-template-columns: auto minmax(0, 1fr) auto;
  padding: 0.7rem;
  gap: 0.65rem;
  border-color: rgb(22 61 75 / 35%);
  background: rgb(255 255 255 / 96%);
}

.map-fallback > .icon {
  color: var(--green-700);
}

.map-fallback button {
  grid-column: auto;
  min-height: 3rem;
  padding-inline: 0.75rem;
}

.leaflet-control-zoom {
  margin-block-start: 7.4rem !important;
}

.leaflet-control-attribution {
  max-width: 74%;
  margin-block-end: 3.65rem !important;
  background: rgb(255 255 255 / 78%) !important;
  font-size: 0.58rem !important;
}

.map-marker__pin,
.map-marker__cluster {
  box-shadow: 0 3px 5px rgb(15 42 53 / 18%), 0 8px 18px rgb(15 42 53 / 23%);
}

.map-marker--selected .map-marker__pin,
.map-marker--selected .map-marker__cluster {
  box-shadow: 0 0 0 0.25rem rgb(126 214 192 / 72%), 0 8px 20px rgb(15 42 53 / 32%);
}

.discovery-panel {
  display: grid;
  min-width: 0;
  padding: 1rem 0.9rem calc(var(--nav-height) + 1.5rem);
  gap: 0.75rem;
  background: linear-gradient(180deg, #dcebd2 0%, #edf3e9 17rem, #f7f8f4 100%);
  box-shadow: inset 0 10px 18px -16px rgb(15 42 53 / 45%);
}

.panel-heading {
  align-items: center;
}

.panel-heading .eyebrow {
  margin-block-end: 0.1rem;
  color: #5d7263;
  letter-spacing: 0.11em;
}

.panel-heading h2 {
  color: var(--green-800);
  font-size: 1.15rem;
}

.trust-cue {
  display: inline-flex;
  min-height: 2rem;
  align-items: center;
  padding: 0.25rem 0.55rem;
  gap: 0.3rem;
  border: 1px solid rgb(31 78 95 / 14%);
  border-radius: var(--radius-pill);
  background: rgb(255 255 255 / 72%);
  color: var(--green-800);
  font-size: 0.7rem;
  font-weight: 800;
  white-space: nowrap;
}

.trust-cue .icon {
  width: 0.95rem;
  height: 0.95rem;
  flex-basis: 0.95rem;
}

.results-intro {
  max-width: 55ch;
  margin: 0;
  color: var(--ink-700);
  font-size: 0.83rem;
}

.result-summary {
  margin: 0;
  color: var(--green-800);
  font-size: 0.8rem;
}

.catalog-results {
  display: flex;
  min-width: 0;
  gap: 0.7rem;
  overflow-x: auto;
  overscroll-behavior-inline: contain;
  padding: 0.1rem 0.1rem 0.65rem;
  scroll-snap-type: inline proximity;
  scrollbar-width: thin;
}

.catalog-card,
.empty-state,
.catalog-loading,
.results-reveal {
  flex: 0 0 min(84vw, 22rem);
  scroll-snap-align: start;
}

.catalog-card {
  padding: 0;
  overflow: hidden;
  border-color: rgb(31 78 95 / 12%);
  border-radius: 0.9rem;
  background: var(--white);
  box-shadow: 0 2px 10px rgb(15 42 53 / 10%);
}

.catalog-card:hover {
  border-color: var(--border-strong);
  box-shadow: 0 8px 24px rgb(15 42 53 / 13%);
}

.catalog-card--selected {
  border-color: var(--ocean-600);
  box-shadow: 0 0 0 0.18rem rgb(25 118 111 / 20%);
}

.catalog-card__button {
  min-height: 7rem;
  grid-template-columns: 3rem minmax(0, 1fr) auto;
  align-items: start;
  padding: 0.85rem;
  gap: 0.7rem;
}

.catalog-card__icon {
  width: 3rem;
  height: 3rem;
  border-radius: 0.9rem;
}

.catalog-card__body {
  display: grid;
  gap: 0.25rem;
}

.source-badge,
.state-badge {
  min-height: 1.55rem;
  padding: 0.18rem 0.46rem;
  font-size: 0.67rem;
}

.catalog-card__title {
  margin: 0.2rem 0 0;
  font-size: 0.98rem;
  line-height: 1.25;
}

.catalog-card__summary {
  display: -webkit-box;
  margin: 0 !important;
  overflow: hidden;
  color: var(--ink-700);
  font-size: 0.82rem;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
}

.catalog-card__meta {
  gap: 0.25rem 0.55rem;
  font-size: 0.72rem;
}

.catalog-card__meta span:first-child::before {
  content: "Sector: ";
  font-weight: 750;
}

.catalog-card__contact {
  color: var(--coral-700);
  font-size: 0.7rem;
  font-weight: 800;
}

.catalog-card__cta {
  align-self: center;
  color: var(--green-700);
  font-size: 0.7rem;
  font-weight: 850;
  white-space: nowrap;
}

.catalog-loading {
  min-height: 7rem;
  background: rgb(255 255 255 / 72%);
}

.results-provenance {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  align-items: start;
  padding: 0.75rem;
  gap: 0.55rem;
  border: 1px solid rgb(31 78 95 / 12%);
  border-radius: 0.8rem;
  background: rgb(255 255 255 / 58%);
  color: var(--ink-700);
  font-size: 0.76rem;
}

.results-provenance .icon {
  width: 1.1rem;
  height: 1.1rem;
  color: var(--green-700);
}

.results-provenance p,
.site-footer p {
  margin: 0;
}

.site-footer {
  display: grid;
  padding: 0.85rem 0 0;
  gap: 0.15rem;
  border-block-start: 1px solid rgb(31 78 95 / 12%);
  background: transparent;
  color: var(--ink-600);
  font-size: 0.7rem;
  text-align: start;
}

.mobile-dock {
  position: fixed;
  inset-inline: 0.65rem;
  inset-block-end: max(0.45rem, env(safe-area-inset-bottom));
  z-index: 900;
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  width: min(calc(100% - 1.3rem), 29rem);
  min-height: 4.1rem;
  margin-inline: auto;
  padding: 0.25rem;
  border: 1px solid rgb(31 78 95 / 19%);
  border-radius: 1.25rem;
  background: rgb(255 255 255 / 93%);
  box-shadow: 0 7px 26px rgb(15 42 53 / 22%);
  backdrop-filter: blur(14px);
}

.mobile-dock a,
.mobile-dock button {
  display: flex;
  min-width: 0;
  min-height: 3.55rem;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  padding: 0.25rem;
  gap: 0.1rem;
  border: 0;
  border-radius: 0.95rem;
  background: transparent;
  color: var(--ink-600);
  font-size: 0.7rem;
  font-weight: 800;
  line-height: 1;
  text-decoration: none;
}

.mobile-dock button[aria-pressed="true"] {
  background: rgb(31 78 95 / 9%);
  color: var(--green-800);
}

.mobile-dock .icon {
  width: 1.35rem;
  height: 1.35rem;
}

.mobile-dock__search {
  color: var(--green-800) !important;
}

.mobile-dock__search-icon {
  display: grid;
  width: 2.65rem;
  height: 2.65rem;
  place-items: center;
  margin-block-start: -1.35rem;
  margin-block-end: 0.15rem;
  border: 0.18rem solid var(--white);
  border-radius: 50%;
  background: linear-gradient(150deg, #19766f, #1f4e5f);
  color: var(--white);
  box-shadow: 0 4px 12px rgb(25 118 111 / 33%);
}

.detail-sheet {
  padding: 0;
  background: var(--offwhite);
}

.sheet-header {
  position: sticky;
  inset-block-start: 0;
  z-index: 5;
  padding: 1rem;
  border-block-end: 1px solid var(--border);
  background: rgb(251 250 246 / 96%);
}

.sheet-content {
  padding: 0 1rem calc(1.25rem + env(safe-area-inset-bottom));
}

.detail-status-row {
  margin-block-end: 0.75rem;
}

.detail-summary {
  color: var(--ink-700);
}

.detail-data {
  display: grid;
  margin: 0;
  border-block: 1px solid var(--border);
}

.detail-data > div {
  display: grid;
  grid-template-columns: minmax(7rem, 0.72fr) minmax(0, 1.28fr);
  padding-block: 0.7rem;
  gap: 0.65rem;
  border-block-end: 1px solid var(--border);
}

.detail-data > div:last-child {
  border-block-end: 0;
}

.detail-data dt {
  color: var(--ink-600);
  font-size: 0.75rem;
  font-weight: 750;
}

.detail-data dd {
  margin: 0;
  font-weight: 700;
}

.detail-section {
  margin-block-start: 1rem;
}

.fact-list {
  display: grid;
  padding: 0;
  gap: 0.5rem;
  list-style: none;
}

.fact-list li,
.contact-unavailable,
.sample-disclaimer {
  padding: 0.75rem;
  border-radius: var(--radius-md);
  background: var(--sand-050);
}

.detail-actions {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(10rem, 1fr));
  gap: 0.55rem;
}

.detail-action {
  display: inline-flex;
  min-height: var(--target);
  align-items: center;
  justify-content: center;
  padding: 0.65rem;
  border-radius: var(--radius-md);
  background: var(--green-800);
  color: var(--white);
  font-weight: 800;
  text-align: center;
  text-decoration: none;
}

.detail-report {
  width: 100%;
  min-height: var(--target);
  padding: 0.65rem;
  border: 1px solid var(--border-strong);
  border-radius: var(--radius-md);
  background: var(--white);
  color: var(--green-800);
  font-weight: 800;
}

.report-dialog {
  width: min(calc(100% - 1.5rem), 36rem);
  max-height: 88dvh;
  margin: auto;
  padding: 0;
  overflow: auto;
  border-radius: var(--radius-xl);
  background: var(--offwhite);
  box-shadow: var(--shadow-mid);
}

.report-dialog > p,
.report-field,
.dialog-actions {
  margin-inline: 1rem;
}

.report-field {
  display: grid;
  gap: 0.35rem;
  font-weight: 800;
}

.report-field textarea {
  width: 100%;
  padding: 0.75rem;
  resize: vertical;
  border: 1px solid var(--border-strong);
  border-radius: var(--radius-md);
  background: var(--white);
  font-weight: 400;
}

.dialog-actions {
  display: flex;
  justify-content: flex-end;
  padding-block: 1rem;
  gap: 0.55rem;
}

.toast {
  inset-block-end: calc(var(--nav-height) + env(safe-area-inset-bottom) + 0.65rem);
  z-index: 2200;
}

html[data-simple-mode="true"] .layer-tabs button:not([data-category=""]),
html[data-simple-mode="true"] .map-legend,
html[data-simple-mode="true"] .trust-cue,
html[data-simple-mode="true"] .site-footer p:last-child {
  display: none;
}

html[data-simple-mode="true"] .map-search,
html[data-simple-mode="true"] .sector-control,
html[data-simple-mode="true"] .map-tool-button,
html[data-simple-mode="true"] .topbar .simple-toggle,
html[data-simple-mode="true"] .catalog-card__button {
  min-height: 3.5rem;
}

html[data-simple-mode="true"] .brand {
  min-width: var(--target);
  min-height: var(--target);
}

html[data-simple-mode="true"] .catalog-card__summary,
html[data-simple-mode="true"] .catalog-card__meta span:last-child {
  display: none;
}

@media (max-width: 23.99rem) {
  .brand__mark {
    width: 2.35rem;
    height: 2.35rem;
    flex-basis: 2.35rem;
  }

  .brand__copy small {
    display: block;
    max-width: 10.5rem;
  }

  .topbar .simple-toggle > span:last-child,
  .map-tool-button > span {
    position: absolute;
    width: 1px;
    height: 1px;
    overflow: hidden;
    clip-path: inset(50%);
  }

  .topbar .simple-toggle,
  .map-tool-button {
    width: 3rem;
    padding: 0;
  }

  .map-tools {
    grid-template-columns: minmax(0, 1fr) 3rem;
  }

  .map-stage {
    height: clamp(18rem, 52dvh, 22rem);
    min-height: 18rem;
  }

  .map-fallback {
    grid-template-columns: auto minmax(0, 1fr);
  }

  .map-fallback button {
    grid-column: 1 / -1;
  }

  .catalog-card__button {
    grid-template-columns: 2.8rem minmax(0, 1fr);
  }

  .catalog-card__cta {
    display: none;
  }

  .trust-cue span {
    position: absolute;
    width: 1px;
    height: 1px;
    overflow: hidden;
    clip-path: inset(50%);
  }

  .trust-cue {
    width: 2.5rem;
    justify-content: center;
    padding: 0;
  }
}

@media (min-width: 48rem) {
  .topbar {
    padding-inline: 1.25rem;
  }

  .map-controls {
    inset: 1rem;
  }

  .map-search,
  .map-tools {
    max-width: 44rem;
  }

  .map-legend {
    inset-inline-start: 1rem;
  }

  .discovery-panel {
    padding-inline: 1.25rem;
  }

  .catalog-card,
  .empty-state,
  .catalog-loading,
  .results-reveal {
    flex-basis: min(52vw, 24rem);
  }
}

@media (min-width: 64rem) {
  .app-shell {
    height: 100dvh;
    padding-block-end: 0;
    overflow: hidden;
  }

  .topbar {
    padding-inline: max(1.4rem, calc((100% - var(--content-max)) / 2 + 1rem));
  }

  main {
    height: calc(100dvh - var(--ribbon-height) - var(--header-height) - var(--context-height) - var(--nav-height));
    overflow: hidden;
  }

  .view--home,
  .map-workspace {
    height: 100%;
  }

  .map-workspace {
    display: grid;
    grid-template-columns: minmax(0, 65fr) minmax(21rem, 35fr);
  }

  .map-stage {
    height: 100%;
    min-height: 0;
    border-inline-end: 1px solid var(--border);
  }

  .discovery-panel {
    height: 100%;
    padding: 1.1rem;
    overflow-y: auto;
    overscroll-behavior: contain;
  }

  .catalog-results {
    display: grid;
    overflow: visible;
    padding: 0;
    scroll-snap-type: none;
  }

  .catalog-card,
  .empty-state,
  .catalog-loading,
  .results-reveal {
    width: 100%;
    flex: initial;
  }

  .mobile-dock {
    inset-block-end: 0.45rem;
  }

  .detail-sheet {
    width: min(38rem, 42vw);
    height: 100dvh;
    max-height: 100dvh;
    margin: 0 0 0 auto;
    border-radius: 1.4rem 0 0 1.4rem;
  }

  .detail-sheet .sheet-handle {
    display: none;
  }

  .toast {
    inset-block-end: calc(var(--nav-height) + 0.75rem);
  }
}

@media (min-width: 90rem) {
  .map-workspace {
    grid-template-columns: minmax(0, 67fr) minmax(23rem, 33fr);
  }
}

/* === Solicitudes de perfiles === */
.contribution-shortcut {
  display: flex;
  width: 100%;
  min-height: var(--target);
  align-items: center;
  justify-content: space-between;
  margin-block: 0 0.75rem;
  padding: 0.55rem 0.7rem;
  gap: 0.6rem;
  border: 1px solid rgb(25 118 111 / 24%);
  border-radius: 0.75rem;
  background: var(--green-050);
  color: var(--green-800);
  font-size: var(--text-sm);
  text-align: start;
}

.contribution-shortcut strong {
  flex: 0 0 auto;
}

.contribution-shortcut:disabled {
  cursor: not-allowed;
  opacity: 0.62;
}

.contribution-card {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  align-items: center;
  padding: 0.9rem;
  gap: 0.75rem;
  border: 1px solid rgb(25 118 111 / 24%);
  border-radius: 1rem;
  background: linear-gradient(145deg, rgb(255 255 255 / 88%), rgb(222 242 231 / 90%));
  box-shadow: 0 6px 18px rgb(15 42 53 / 8%);
}

.contribution-card__icon {
  display: grid;
  width: 3rem;
  height: 3rem;
  place-items: center;
  border-radius: 0.9rem;
  background: var(--green-800);
  color: var(--white);
}

.contribution-card__icon .icon {
  width: 1.45rem;
  height: 1.45rem;
}

.contribution-card h3,
.contribution-card p {
  margin: 0;
}

.contribution-card h3 {
  color: var(--green-800);
  font-size: 0.95rem;
}

.contribution-card p {
  margin-block-start: 0.2rem;
  color: var(--ink-700);
  font-size: 0.76rem;
}

.contribution-card > button,
.detail-ownership button {
  grid-column: 1 / -1;
  min-height: var(--target);
  padding: 0.65rem 0.85rem;
  border: 0;
  border-radius: 0.75rem;
  background: var(--green-800);
  color: var(--white);
  font-weight: 850;
}

.contribution-card > button:disabled,
.detail-ownership button:disabled {
  cursor: not-allowed;
  background: var(--ink-500);
  opacity: 0.72;
}

.detail-ownership {
  display: grid;
  margin-block: 1rem;
  padding: 0.85rem;
  gap: 0.7rem;
  border: 1px solid rgb(25 118 111 / 24%);
  border-radius: var(--radius-md);
  background: var(--green-050);
}

.detail-ownership p {
  margin: 0.15rem 0 0;
  color: var(--ink-700);
  font-size: var(--text-sm);
}

.submission-dialog {
  padding: 0;
  background: var(--offwhite);
  scroll-padding-block: 7rem 10rem;
}

.submission-dialog__header {
  margin: 0;
}

.submission-dialog > .progress-steps,
.submission-dialog > form,
.submission-dialog > .submission-success {
  width: calc(100% - 2rem);
  margin-inline: 1rem;
}

.submission-dialog > .progress-steps {
  margin-block: 1rem;
}

.submission-dialog .publish-step {
  padding: 0.9rem;
}

.submission-dialog .publish-step[hidden],
.submission-dialog [hidden] {
  display: none;
}

.submission-dialog .progress-steps li {
  padding-inline: 0.2rem;
  gap: 0.3rem;
  font-size: 0.7rem;
}

.submission-dialog .progress-steps li > span {
  width: 1.5rem;
  height: 1.5rem;
  flex-basis: 1.5rem;
}

.claim-target,
.duplicate-warning,
.submission-honesty,
.submission-error {
  margin-block-start: 0.85rem;
  padding: 0.8rem;
  border-radius: var(--radius-md);
}

.claim-target {
  display: grid;
  gap: 0.15rem;
  border: 1px solid var(--border);
  background: var(--sand-050);
}

.claim-target span {
  color: var(--ink-600);
  font-size: var(--text-sm);
}

.duplicate-warning {
  border: 1px solid #ba6a38;
  background: #fff2e7;
  color: #633219;
}

.duplicate-warning p {
  margin-block: 0.3rem 0.7rem;
}

.contact-consent {
  margin-block-start: 1rem;
  padding: 0.85rem;
  border: 1px solid var(--border);
  border-radius: var(--radius-md);
  background: var(--sand-050);
}

.contact-consent legend {
  padding-inline: 0.25rem;
  color: var(--green-800);
  font-size: var(--text-sm);
  font-weight: 850;
}

.contact-consent .check-field {
  margin-block-start: 0.55rem;
}

.check-field--notice {
  padding: 0.7rem;
  border: 1px solid var(--border);
  border-radius: var(--radius-md);
  background: rgb(255 255 255 / 76%);
  font-size: var(--text-sm);
}

.submission-review-list {
  display: grid;
  margin: 0.75rem 0;
  gap: 0.45rem;
}

.submission-review-list > div {
  display: grid;
  grid-template-columns: minmax(7rem, 0.8fr) minmax(0, 1.2fr);
  padding-block-end: 0.45rem;
  gap: 0.5rem;
  border-block-end: 1px solid var(--border);
}

.submission-review-list dt {
  color: var(--ink-600);
  font-size: var(--text-sm);
  font-weight: 750;
}

.submission-review-list dd {
  margin: 0;
  overflow-wrap: anywhere;
  font-weight: 750;
}

.submission-honesty {
  border: 1px solid rgb(25 118 111 / 24%);
  background: var(--green-050);
  color: var(--ink-800);
}

.submission-error {
  border: 1px solid var(--coral-700);
  background: #fff0ec;
  color: #722a1d;
  font-weight: 750;
}

.submission-dialog .flow-actions {
  position: sticky;
  inset-block-end: 0;
  z-index: 2;
  margin-inline: -1rem;
  padding: 0.8rem 1rem calc(0.8rem + env(safe-area-inset-bottom));
  border-block-start: 1px solid var(--border);
  background: rgb(251 250 246 / 96%);
  backdrop-filter: blur(10px);
}

.submission-success {
  display: grid;
  justify-items: start;
  padding: 1.25rem 0 calc(1.25rem + env(safe-area-inset-bottom));
  gap: 0.65rem;
}

.submission-success__icon {
  display: grid;
  width: 3.5rem;
  height: 3.5rem;
  place-items: center;
  border-radius: 50%;
  background: var(--green-700);
  color: var(--white);
}

.submission-success__icon .icon {
  width: 1.8rem;
  height: 1.8rem;
}

.submission-success p,
.submission-success h3 {
  margin: 0;
}

.submission-success output {
  display: block;
  width: 100%;
  padding: 0.8rem;
  border: 1px dashed var(--green-700);
  border-radius: var(--radius-md);
  background: var(--white);
  color: var(--green-800);
  font-size: 1.25rem;
  font-weight: 900;
  letter-spacing: 0.08em;
  text-align: center;
}

@media (min-width: 40rem) {
  .contribution-card {
    grid-template-columns: auto minmax(0, 1fr) auto;
  }

  .contribution-card > button {
    grid-column: auto;
  }

  .submission-dialog > .progress-steps,
  .submission-dialog > form,
  .submission-dialog > .submission-success {
    width: calc(100% - 2.5rem);
    margin-inline: 1.25rem;
  }
}

@media (max-width: 23.99rem) {
  .contribution-shortcut {
    align-items: flex-start;
    flex-direction: column;
  }
}

@media (min-width: 64rem) {
  .submission-dialog {
    width: min(38rem, 48vw);
  }

  .submission-dialog .sheet-handle {
    display: none;
  }

  .detail-ownership {
    grid-template-columns: minmax(0, 1fr) auto;
    align-items: center;
  }

  .detail-ownership button {
    grid-column: auto;
  }
}

/* === Seguimiento de solicitudes === */
.contribution-card__actions {
  display: grid;
  grid-column: 1 / -1;
  width: 100%;
  gap: 0.5rem;
}

.contribution-card__actions > button {
  width: 100%;
  min-height: var(--target);
  padding: 0.65rem 0.85rem;
  border-radius: 0.75rem;
  font-weight: 850;
}

.contribution-card__actions > button:first-child {
  border: 0;
  background: var(--green-800);
  color: var(--white);
}

.contribution-card__actions > button:disabled {
  cursor: not-allowed;
  opacity: 0.62;
}

#submission-tracking-token {
  overflow-wrap: anywhere;
  font-family: ui-monospace, SFMono-Regular, Consolas, monospace;
  font-size: 0.78rem;
  letter-spacing: 0;
  text-align: start;
  user-select: all;
}

.submission-success .dialog-actions {
  display: grid;
  width: 100%;
  margin-inline: 0;
  grid-template-columns: minmax(0, 1fr);
}

.submission-success .dialog-actions > button {
  width: 100%;
  min-width: 0;
  min-height: var(--target);
  white-space: normal;
}

.tracking-dialog {
  padding: 0;
  background: var(--offwhite);
  scroll-padding-block: 6rem 8rem;
}

.tracking-dialog__header {
  margin: 0;
}

.tracking-dialog > .tracking-form,
.tracking-dialog > .tracking-result {
  width: calc(100% - 2rem);
  margin-inline: 1rem;
  padding-block: 1rem calc(1rem + env(safe-area-inset-bottom));
}

.tracking-dialog [hidden] {
  display: none;
}

.tracking-form,
.tracking-result,
.phone-verification-form,
.withdraw-panel,
#tracking-withdraw-confirm {
  display: grid;
  min-width: 0;
  gap: 0.8rem;
}

.tracking-form > p,
.tracking-result > p,
.phone-verification-form > p,
#tracking-withdraw-confirm > p,
.tracking-result h3,
.tracking-result h4 {
  margin: 0;
}

.tracking-form input,
.phone-verification-form input {
  width: 100%;
  max-width: 100%;
  min-height: var(--target);
}

#tracking-token {
  font-family: ui-monospace, SFMono-Regular, Consolas, monospace;
}

.tracking-result__details {
  margin-block: 0;
}

.tracking-result__details dd,
#tracking-public-code-help {
  overflow-wrap: anywhere;
}

.phone-verification-form,
.withdraw-panel {
  padding: 0.9rem;
  border: 1px solid rgb(25 118 111 / 24%);
  border-radius: var(--radius-md);
  background: var(--green-050);
}

#tracking-withdraw-confirm {
  padding-block-start: 0.8rem;
  border-block-start: 1px solid var(--border);
}

.tracking-dialog .dialog-actions {
  margin-inline: 0;
  padding-block: 0;
  flex-wrap: wrap;
}

.tracking-dialog .dialog-actions > button {
  flex: 1 1 10rem;
}

html[data-simple-mode="true"] .tracking-dialog input,
html[data-simple-mode="true"] .tracking-dialog button {
  min-height: 3.5rem;
}

html[data-simple-mode="true"] .contribution-card__actions > button {
  min-height: 3.5rem;
}

@media (max-width: 39.99rem) {
  .tracking-dialog {
    max-height: calc(100dvh - env(safe-area-inset-top));
  }

  .tracking-dialog .dialog-actions {
    flex-direction: column-reverse;
  }

  .tracking-dialog .dialog-actions > button {
    width: 100%;
    flex-basis: auto;
  }

  .submission-review-list > div {
    grid-template-columns: 1fr;
    gap: 0.15rem;
  }
}

@media (min-width: 40rem) {
  .contribution-card__actions {
    grid-column: auto;
    width: min(14rem, 24vw);
  }

  .tracking-dialog > .tracking-form,
  .tracking-dialog > .tracking-result {
    width: calc(100% - 2.5rem);
    margin-inline: 1.25rem;
  }
}

@media (min-width: 64rem) {
  .tracking-dialog {
    width: min(38rem, 48vw);
  }
}

/* === Agenda y fuentes === */
.official-agenda {
  display: grid;
  gap: 0.8rem;
  margin-block: 1rem;
  padding-block: 1rem;
  border-block: 1px solid var(--border);
}

.official-agenda[hidden] {
  display: none;
}

.official-agenda__heading {
  display: flex;
  align-items: end;
  justify-content: space-between;
  gap: 0.75rem;
}

.official-agenda__heading h3,
.official-agenda__heading p,
.official-event-card h4,
.official-event-card p {
  margin: 0;
}

.official-agenda__heading h3 {
  color: var(--ink-900);
  font-size: 1.12rem;
}

.official-agenda__heading p {
  color: var(--ink-600);
  font-size: 0.78rem;
  text-align: end;
}

.official-agenda__list {
  display: grid;
  gap: 0.7rem;
}

.official-agenda[data-state="error"] {
  border-block-color: rgb(174 84 51 / 38%);
}

.official-agenda[data-state="error"] .official-agenda__heading p {
  max-width: 32rem;
  color: var(--ink-700);
}

.official-event-card {
  display: grid;
  min-width: 0;
  gap: 0.45rem;
  padding: 0.85rem;
  border: 1px solid rgb(25 118 111 / 22%);
  border-radius: var(--radius-md);
  background: var(--white);
  box-shadow: 0 0.2rem 0.75rem rgb(18 61 72 / 7%);
}

.official-event-card__schedule {
  width: fit-content;
  padding: 0.25rem 0.5rem;
  border-radius: 999px;
  background: var(--green-050);
  color: var(--green-800);
  font-size: 0.78rem;
  font-weight: 850;
  text-transform: capitalize;
}

.official-event-card h4 {
  color: var(--ink-900);
  font-size: 1rem;
  line-height: 1.25;
}

.official-event-card__summary,
.official-event-card__facts,
.official-event-card__freshness,
.official-event-card__source {
  color: var(--ink-600);
  font-size: 0.84rem;
  line-height: 1.4;
  overflow-wrap: anywhere;
}

.official-event-card footer {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.7rem;
  margin-block-start: 0.2rem;
  padding-block-start: 0.55rem;
  border-block-start: 1px solid var(--border);
}

.official-event-card footer a {
  min-height: var(--target);
  display: inline-flex;
  align-items: center;
  color: var(--green-800);
  font-size: 0.82rem;
  font-weight: 850;
}

html[data-simple-mode="true"] .official-event-card,
html[data-simple-mode="true"] .official-event-card footer a {
  font-size: 1rem;
}

html[data-simple-mode="true"] .official-event-card__schedule,
html[data-simple-mode="true"] .official-agenda__heading p,
html[data-simple-mode="true"] .official-event-card__summary,
html[data-simple-mode="true"] .official-event-card__facts,
html[data-simple-mode="true"] .official-event-card__freshness,
html[data-simple-mode="true"] .official-event-card__source {
  font-size: 1rem;
  line-height: 1.55;
}

@media (max-width: 39.99rem) {
  .official-agenda__heading,
  .official-event-card footer {
    align-items: start;
    flex-direction: column;
  }

  .official-agenda__heading p {
    text-align: start;
  }
}

/* === Información municipal === */
.official-services {
  display: grid;
  gap: 0.8rem;
  margin-block: 1rem;
  padding-block: 1rem;
  border-block: 1px solid var(--border);
}

.official-services[hidden] {
  display: none;
}

.official-services__heading {
  display: flex;
  align-items: end;
  justify-content: space-between;
  gap: 0.75rem;
}

.official-services__heading h3,
.official-services__heading p,
.official-services__note,
.official-service-card h4,
.official-service-card dl,
.official-service-card dd {
  margin: 0;
}

.official-services__heading h3 {
  color: var(--ink-900);
  font-size: 1.12rem;
}

.official-services__heading > p,
.official-services__note {
  color: var(--ink-600);
  font-size: 0.8rem;
  line-height: 1.45;
}

.official-services__heading > p {
  text-align: end;
}

.official-services__list {
  display: grid;
  gap: 0.7rem;
}

.official-services[data-state="error"] {
  border-block-color: rgb(174 84 51 / 38%);
}

.official-service-card {
  display: grid;
  min-width: 0;
  gap: 0.75rem;
  padding: 0.9rem;
  border: 1px solid rgb(25 118 111 / 24%);
  border-radius: var(--radius-md);
  background: linear-gradient(145deg, var(--white), var(--green-050));
  box-shadow: 0 0.2rem 0.75rem rgb(18 61 72 / 7%);
}

.official-service-card header,
.official-service-card footer {
  display: flex;
  align-items: start;
  justify-content: space-between;
  gap: 0.75rem;
}

.official-service-card__badge {
  display: block;
  margin-block-end: 0.25rem;
  color: var(--green-800);
  font-size: 0.72rem;
  font-weight: 850;
  letter-spacing: 0.04em;
  text-transform: uppercase;
}

.official-service-card h4 {
  color: var(--ink-900);
  font-size: 1rem;
  line-height: 1.25;
}

.official-service-card__today {
  flex: 0 0 auto;
  padding: 0.35rem 0.55rem;
  border-radius: 999px;
  background: var(--white);
  color: var(--green-800);
  font-size: 0.78rem;
}

.official-service-card dl {
  display: grid;
  grid-template-columns: minmax(5rem, auto) 1fr;
  gap: 0.35rem 0.7rem;
  padding-block: 0.65rem;
  border-block: 1px solid var(--border);
}

.official-service-card dt {
  color: var(--ink-600);
  font-size: 0.78rem;
  font-weight: 750;
}

.official-service-card dd,
.official-service-card footer {
  color: var(--ink-700);
  font-size: 0.84rem;
  line-height: 1.45;
  overflow-wrap: anywhere;
}

.official-service-card footer {
  align-items: center;
}

.official-service-card footer a {
  min-height: var(--target);
  display: inline-flex;
  align-items: center;
  color: var(--green-800);
  font-weight: 850;
}

html[data-simple-mode="true"] .official-services__heading > p,
html[data-simple-mode="true"] .official-services__note,
html[data-simple-mode="true"] .official-service-card__badge,
html[data-simple-mode="true"] .official-service-card__today,
html[data-simple-mode="true"] .official-service-card dt,
html[data-simple-mode="true"] .official-service-card dd,
html[data-simple-mode="true"] .official-service-card footer {
  font-size: 1rem;
  line-height: 1.55;
}

@media (max-width: 39.99rem) {
  .official-services__heading,
  .official-service-card header,
  .official-service-card footer {
    flex-direction: column;
  }

  .official-services__heading > p {
    text-align: start;
  }

  .official-service-card dl {
    grid-template-columns: 1fr;
  }
}

/* === Capas y categorías === */
html[data-active-topic="professional"] { --active-topic-color: var(--topic-professional); }
html[data-active-topic="commerce"] { --active-topic-color: var(--topic-commerce); }
html[data-active-topic="mobility"] { --active-topic-color: var(--topic-mobility); }
html[data-active-topic="other"] { --active-topic-color: var(--topic-other); }

.layer-picker {
  position: absolute;
  inset-inline: 0;
  inset-block-end: 0;
  z-index: 510;
  display: flex;
  min-width: 0;
  align-items: end;
  gap: 0.4rem;
  pointer-events: auto;
}

.layer-picker .layer-tabs {
  position: static;
  display: flex;
  min-width: 0;
  flex: 1 1 auto;
  gap: 0.35rem;
  overflow-x: auto;
  padding: 0.15rem;
  border-radius: 1rem;
  scrollbar-width: none;
}

.layer-picker .layer-tabs::-webkit-scrollbar {
  display: none;
}

.layer-picker .topic-button,
.category-menu > summary {
  display: inline-flex;
  width: auto;
  min-width: 3rem;
  min-height: 3rem;
  flex: 0 0 auto;
  align-items: center;
  justify-content: center;
  padding: 0.65rem;
  gap: 0.42rem;
  border: 1px solid rgb(22 61 75 / 18%);
  border-radius: 0.9rem;
  background: rgb(255 255 255 / 94%);
  color: var(--ink-700);
  box-shadow: 0 3px 14px rgb(15 42 53 / 18%);
  backdrop-filter: blur(12px);
  cursor: pointer;
}

.layer-picker .topic-button .icon,
.category-menu > summary .icon {
  width: 1.28rem;
  height: 1.28rem;
  flex: 0 0 1.28rem;
}

.layer-picker .topic-button span,
.category-menu > summary span {
  width: max-content;
  max-width: 0;
  overflow: hidden;
  opacity: 0;
  white-space: nowrap;
  transition: max-width 180ms ease, opacity 130ms ease;
}

.layer-picker .topic-button:is(:hover, :focus-visible, [aria-pressed="true"]) span,
.category-menu > summary:is(:hover, :focus-visible) span {
  max-width: 10rem;
  opacity: 1;
}

.layer-picker .topic-button--home { color: var(--topic-home); }
.layer-picker .topic-button--professional { color: var(--topic-professional); }
.layer-picker .topic-button--commerce { color: var(--topic-commerce); }
.layer-picker .topic-button--mobility { color: var(--topic-mobility); }
.layer-picker .topic-button--other { color: var(--topic-other); }

.layer-picker .topic-button[aria-pressed="true"] {
  border-color: var(--active-topic-color);
  background: var(--active-topic-color);
  color: var(--white);
  box-shadow: 0 5px 18px color-mix(in srgb, var(--active-topic-color) 38%, transparent);
}

.category-menu {
  position: static;
  flex: 0 0 auto;
}

.category-menu > summary {
  list-style: none;
  color: var(--active-topic-color);
  font-size: 0.76rem;
  font-weight: 850;
}

.category-menu > summary::-webkit-details-marker {
  display: none;
}

.category-menu[open] > summary {
  border-color: var(--active-topic-color);
  background: var(--active-topic-color);
  color: var(--white);
}

.category-menu__popover {
  position: absolute;
  inset-inline-end: 0;
  inset-block-end: calc(100% + 0.55rem);
  display: grid;
  width: min(35rem, 100%);
  max-height: min(27rem, calc(53dvh - 4.5rem));
  overflow-y: auto;
  padding: 0.8rem;
  gap: 0.75rem;
  border: 1px solid rgb(22 61 75 / 18%);
  border-radius: 1.15rem;
  background: rgb(255 255 255 / 97%);
  box-shadow: 0 14px 38px rgb(15 42 53 / 28%);
  color: var(--ink-900);
  overscroll-behavior: contain;
  backdrop-filter: blur(16px);
}

.category-menu:not([open]) > .category-menu__popover {
  display: none;
}

.category-menu__popover > header {
  position: sticky;
  inset-block-start: -0.8rem;
  z-index: 1;
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin: -0.8rem -0.8rem 0;
  padding: 0.8rem;
  border-block-end: 1px solid var(--border);
  background: rgb(255 255 255 / 98%);
}

.category-menu__popover header div {
  display: grid;
  gap: 0.08rem;
}

.category-menu__popover header small {
  color: var(--ink-600);
  font-size: 0.7rem;
  font-weight: 750;
  letter-spacing: 0.035em;
  text-transform: uppercase;
}

.category-menu__popover header strong {
  font-size: 1rem;
}

.category-menu__popover header button {
  display: grid;
  width: 3rem;
  min-width: 3rem;
  height: 3rem;
  place-items: center;
  padding: 0;
  border: 0;
  border-radius: 0.8rem;
  background: var(--surface-muted, #edf2ef);
  color: var(--ink-700);
}

.category-group {
  display: grid;
  gap: 0.45rem;
  padding-inline-start: 0.65rem;
  border-inline-start: 0.22rem solid var(--group-color, var(--topic-other));
}

.category-group:nth-of-type(1) { --group-color: var(--topic-home); }
.category-group:nth-of-type(2) { --group-color: var(--topic-professional); }
.category-group:nth-of-type(3) { --group-color: var(--topic-commerce); }
.category-group:nth-of-type(4) { --group-color: var(--topic-mobility); }

.category-group h3 {
  display: flex;
  align-items: center;
  margin: 0;
  gap: 0.4rem;
  color: var(--group-color);
  font-size: 0.82rem;
}

.category-group h3 .icon {
  width: 1rem;
  height: 1rem;
}

.category-group > div {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0.4rem;
}

.category-group button {
  display: flex;
  min-width: 0;
  min-height: 3rem;
  align-items: center;
  justify-content: start;
  padding: 0.58rem 0.7rem;
  gap: 0.55rem;
  border: 1px solid var(--border);
  border-radius: 0.75rem;
  background: var(--white);
  color: var(--ink-700);
  font-size: 0.78rem;
  font-weight: 760;
  text-align: start;
}

.category-group button .icon {
  width: 1.15rem;
  height: 1.15rem;
  flex: 0 0 1.15rem;
  color: var(--group-color);
}

.category-group button[aria-pressed="true"] {
  border-color: var(--group-color);
  background: color-mix(in srgb, var(--group-color) 10%, white);
  color: var(--group-color);
  box-shadow: inset 0 0 0 1px var(--group-color);
}

.active-filter-button {
  display: flex;
  width: 100%;
  min-height: 3rem;
  align-items: center;
  padding: 0.55rem 0.7rem;
  gap: 0.65rem;
  border: 1px solid color-mix(in srgb, var(--active-topic-color) 35%, white);
  border-radius: 0.85rem;
  background: color-mix(in srgb, var(--active-topic-color) 7%, white);
  color: var(--active-topic-color);
  text-align: start;
}

.active-filter-button > span {
  display: grid;
  min-width: 0;
  flex: 1;
}

.active-filter-button small {
  color: var(--ink-600);
  font-size: 0.68rem;
  font-weight: 700;
}

.active-filter-button strong {
  overflow: hidden;
  font-size: 0.86rem;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.active-filter-button .icon {
  width: 1.15rem;
  height: 1.15rem;
  flex: 0 0 1.15rem;
}

.map-marker--services .map-marker__pin,
.map-marker--business .map-marker__pin {
  background: var(--active-topic-color);
}

@media (max-width: 63.99rem) {
  html[data-discovery-view="map"] #results-panel,
  html[data-discovery-view="list"] #map-panel {
    display: none !important;
  }

  html[data-discovery-view="map"] .map-stage {
    height: calc(
      100dvh
      - var(--ribbon-height)
      - var(--header-height)
      - var(--context-height)
      - var(--nav-height)
      - 1rem
    );
    min-height: 30rem;
    max-height: none;
  }

  html[data-discovery-view="list"] .view--home,
  html[data-discovery-view="list"] .map-workspace,
  html[data-discovery-view="list"] #results-panel {
    min-height: calc(100dvh - var(--ribbon-height) - var(--header-height) - var(--context-height));
  }
}

@media (max-width: 35rem) {
  .category-group > div {
    grid-template-columns: 1fr;
  }

  .category-menu__popover {
    width: 100%;
  }
}

@media (min-width: 64rem) {
  .mobile-dock {
    display: none;
  }

  .app-shell {
    --nav-height: 0px;
  }

  .layer-picker .layer-tabs {
    overflow: visible;
  }

  .category-menu__popover {
    width: min(40rem, 78%);
  }
}

html[data-simple-mode="true"] .layer-picker .topic-button[aria-pressed="true"] {
  display: inline-flex !important;
}

html[data-simple-mode="true"] .category-menu {
  display: block;
}

@media (prefers-reduced-motion: reduce) {
  .layer-picker .topic-button span,
  .category-menu > summary span {
    transition: none;
  }
}

/* === Información actual === */
html[data-active-topic="now"] {
  --active-topic-color: var(--topic-now);
}

.layer-picker .topic-button--now {
  color: var(--topic-now);
}

.public-now {
  display: grid;
  min-width: 0;
  gap: 0.9rem;
}

.public-now[hidden] {
  display: none;
}

.public-now__hero {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  align-items: start;
  padding: 1rem;
  gap: 0.85rem;
  border: 1px solid rgb(182 71 32 / 24%);
  border-radius: 1.1rem;
  background:
    radial-gradient(circle at 100% 0%, rgb(255 200 93 / 32%), transparent 42%),
    linear-gradient(145deg, #fffdf7, #fff2dd);
  box-shadow: 0 0.35rem 1.1rem rgb(79 45 20 / 8%);
}

.public-now__icon {
  display: grid;
  width: 3.1rem;
  height: 3.1rem;
  place-items: center;
  border-radius: 1rem;
  background: var(--topic-now);
  color: var(--white);
  box-shadow: 0 0.35rem 0.85rem rgb(182 71 32 / 22%);
}

.public-now__icon .icon {
  width: 1.55rem;
  height: 1.55rem;
}

.public-now__hero h3,
.public-now__hero p {
  margin: 0;
}

.public-now__hero h3 {
  color: var(--ink-900);
  font-size: 1.15rem;
  line-height: 1.2;
}

.public-now__hero p:not(.eyebrow) {
  margin-block-start: 0.35rem;
  color: var(--ink-700);
  font-size: 0.86rem;
  line-height: 1.5;
}

.public-now__available {
  display: flex;
  min-width: 0;
  flex-wrap: wrap;
  gap: 0.5rem;
}

.public-now__available span {
  display: inline-flex;
  min-height: 2.65rem;
  align-items: center;
  padding: 0.5rem 0.7rem;
  gap: 0.45rem;
  border: 1px solid rgb(22 61 75 / 14%);
  border-radius: 999px;
  background: var(--white);
  color: var(--ink-700);
  font-size: 0.78rem;
  font-weight: 800;
}

.public-now__available .icon,
.public-now__schedule .icon {
  width: 1.05rem;
  height: 1.05rem;
  flex: 0 0 1.05rem;
  color: var(--topic-now);
}

.public-now__schedule {
  display: flex;
  align-items: start;
  margin: 0;
  padding: 0.75rem 0.85rem;
  gap: 0.55rem;
  border-inline-start: 0.25rem solid var(--topic-now);
  border-radius: 0.2rem 0.75rem 0.75rem 0.2rem;
  background: rgb(255 244 226 / 78%);
  color: var(--ink-700);
  font-size: 0.82rem;
  line-height: 1.45;
}

.public-now .official-agenda,
.public-now .official-services {
  margin-block: 0;
}

html[data-simple-mode="true"] .public-now__hero p:not(.eyebrow),
html[data-simple-mode="true"] .public-now__available span,
html[data-simple-mode="true"] .public-now__schedule {
  font-size: 1rem;
  line-height: 1.55;
}

@media (max-width: 24rem) {
  .public-now__hero {
    grid-template-columns: 1fr;
  }
}

@media (prefers-reduced-motion: no-preference) {
  .layer-picker .topic-button--now[aria-pressed="true"] .icon {
    animation: now-soft-pulse 3.2s ease-in-out infinite;
  }
}

@keyframes now-soft-pulse {
  0%, 100% { transform: scale(1); }
  50% { transform: scale(1.08); }
}

/* === Lugares públicos === */
.public-places {
  display: grid;
  min-width: 0;
  gap: 0.75rem;
  padding: 0.9rem;
  border: 1px solid rgb(169 46 42 / 20%);
  border-radius: 1rem;
  background: linear-gradient(145deg, var(--white), var(--health-050));
}

.public-places[hidden] {
  display: none;
}

.public-places__heading {
  display: flex;
  align-items: end;
  justify-content: space-between;
  gap: 0.75rem;
}

.public-places__heading h3,
.public-places__heading p,
.public-places__note {
  margin: 0;
}

.public-places__heading h3 {
  color: var(--ink-900);
  font-size: 1rem;
}

.public-places__heading > p,
.public-places__note {
  color: var(--ink-600);
  font-size: 0.76rem;
  line-height: 1.45;
}

.public-places__heading > p {
  max-width: 14rem;
  text-align: end;
}

.public-places__list {
  display: grid;
  gap: 0.65rem;
}

.public-places[data-state="error"] {
  border-color: rgb(169 46 42 / 35%);
  background: var(--health-050);
}

.public-place-card {
  overflow: hidden;
  border: 1px solid rgb(22 61 75 / 14%);
  border-radius: 0.9rem;
  background: var(--white);
  box-shadow: 0 0.3rem 0.9rem rgb(22 51 45 / 7%);
}

.public-place-card__button {
  display: grid;
  width: 100%;
  grid-template-columns: auto minmax(0, 1fr) auto;
  align-items: center;
  padding: 0.85rem;
  gap: 0.8rem;
  border: 0;
  background: transparent;
  color: inherit;
  text-align: start;
}

.public-place-card__button:hover,
.public-place-card__button:focus-visible {
  background: var(--health-050);
}

.public-place-card__icon {
  display: grid;
  width: 3rem;
  height: 3rem;
  place-items: center;
  border-radius: 0.85rem;
  background: var(--health-600);
  color: var(--white);
  box-shadow: 0 0.35rem 0.85rem rgb(169 46 42 / 20%);
}

.public-place-card__icon .icon {
  width: 1.5rem;
  height: 1.5rem;
}

.public-place-card__body {
  display: grid;
  min-width: 0;
  gap: 0.18rem;
}

.public-place-card__badge {
  color: var(--health-700);
  font-size: 0.68rem;
  font-weight: 850;
  letter-spacing: 0.04em;
  text-transform: uppercase;
}

.public-place-card__title {
  color: var(--ink-900);
  font-size: 0.94rem;
  line-height: 1.25;
}

.public-place-card__address,
.public-place-card__available,
.public-place-card__freshness {
  overflow-wrap: anywhere;
  color: var(--ink-600);
  font-size: 0.74rem;
  line-height: 1.4;
}

.public-place-card__available {
  color: var(--ink-700);
  font-weight: 750;
}

.public-place-card__cta {
  display: inline-flex;
  align-items: center;
  gap: 0.15rem;
  color: var(--health-700);
  font-size: 0.74rem;
  font-weight: 850;
  white-space: nowrap;
}

.public-place-card__cta .icon {
  width: 1rem;
  height: 1rem;
}

.map-marker--health .map-marker__pin {
  background: var(--health-600);
  box-shadow: 0 4px 14px rgb(169 46 42 / 34%);
}

.public-place-alert {
  margin: 0.85rem 0;
  padding: 0.75rem 0.8rem;
  border-inline-start: 0.25rem solid var(--health-600);
  border-radius: 0.25rem 0.75rem 0.75rem 0.25rem;
  background: var(--health-100);
  color: #65221f;
  font-size: 0.82rem;
  line-height: 1.5;
}

.public-place-services ul {
  display: flex;
  flex-wrap: wrap;
  margin: 0;
  padding: 0;
  gap: 0.4rem;
  list-style: none;
}

.public-place-services li {
  padding: 0.38rem 0.55rem;
  border: 1px solid rgb(22 61 75 / 14%);
  border-radius: 999px;
  background: #f6faf9;
  color: var(--ink-700);
  font-size: 0.74rem;
  font-weight: 750;
}

.public-place-procedures {
  display: grid;
  gap: 0.6rem;
}

.public-procedure {
  overflow: hidden;
  border: 1px solid rgb(22 61 75 / 16%);
  border-radius: 0.8rem;
  background: var(--white);
}

.public-procedure--emergency_guidance {
  border-color: rgb(169 46 42 / 30%);
}

.public-procedure summary {
  display: flex;
  min-height: 3rem;
  align-items: center;
  justify-content: space-between;
  padding: 0.72rem 0.8rem;
  gap: 0.75rem;
  color: var(--ink-900);
  cursor: pointer;
  font-size: 0.86rem;
  font-weight: 850;
  list-style: none;
}

.public-procedure summary::-webkit-details-marker {
  display: none;
}

.public-procedure[open] summary {
  border-block-end: 1px solid rgb(22 61 75 / 12%);
  background: #f7fbfa;
}

.public-procedure[open] summary span:last-child {
  transform: rotate(45deg);
}

.public-procedure__content {
  display: grid;
  padding: 0.8rem;
  gap: 0.65rem;
  color: var(--ink-700);
  font-size: 0.8rem;
  line-height: 1.5;
}

.public-procedure__content p,
.public-procedure__content ol {
  margin: 0;
}

.public-procedure__content ol {
  display: grid;
  padding-inline-start: 1.25rem;
  gap: 0.42rem;
}

.procedure-channels {
  display: flex;
  flex-wrap: wrap;
  gap: 0.4rem;
}

.procedure-channel,
.procedure-source {
  display: inline-flex;
  min-height: 2.5rem;
  align-items: center;
  justify-content: center;
  padding: 0.48rem 0.65rem;
  border: 1px solid rgb(22 61 75 / 18%);
  border-radius: 0.65rem;
  background: #f7fbfa;
  color: var(--green-800);
  font-size: 0.75rem;
  font-weight: 800;
  text-decoration: none;
}

.procedure-channel--phone {
  border-color: rgb(169 46 42 / 22%);
  background: var(--health-100);
  color: var(--health-700);
}

.procedure-source {
  justify-self: start;
  min-height: auto;
  padding: 0;
  border: 0;
  background: transparent;
  text-decoration: underline;
}

.public-place-sources ul {
  display: grid;
  margin: 0;
  padding: 0;
  gap: 0.45rem;
  list-style: none;
}

.public-place-sources li {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 0.55rem 0;
  gap: 0.65rem;
  border-block-end: 1px solid rgb(22 61 75 / 10%);
}

.public-place-sources li span,
.public-place-sources li small {
  display: block;
}

.public-place-sources li small {
  margin-block-start: 0.1rem;
  color: var(--ink-600);
}

.public-place-sources li a {
  flex: 0 0 auto;
  color: var(--green-800);
  font-size: 0.74rem;
  font-weight: 800;
}

@media (max-width: 34rem) {
  .public-places__heading {
    align-items: start;
    flex-direction: column;
  }

  .public-places__heading > p {
    max-width: none;
    text-align: start;
  }

  .public-place-card__button {
    grid-template-columns: auto minmax(0, 1fr);
  }

  .public-place-card__cta {
    grid-column: 2;
  }

  .public-place-sources li {
    align-items: start;
    flex-direction: column;
  }
}

html[data-simple-mode="true"] .public-place-card__address,
html[data-simple-mode="true"] .public-place-card__available,
html[data-simple-mode="true"] .public-place-card__freshness,
html[data-simple-mode="true"] .public-procedure__content,
html[data-simple-mode="true"] .public-place-alert {
  font-size: 1rem;
}

/* === Tarjeta del mapa === */
.leaflet-popup-content:has(.map-place-popup) {
  width: min(16.25rem, calc(100vw - 7.5rem)) !important;
}

.map-place-popup {
  display: grid;
  min-width: 0;
  gap: 0.65rem;
}

.map-place-popup__header {
  display: grid;
  min-width: 0;
  grid-template-columns: auto minmax(0, 1fr);
  align-items: center;
  padding-inline-end: 1.8rem;
  gap: 0.65rem;
}

.map-place-popup__icon {
  display: grid;
  width: 2.5rem;
  height: 2.5rem;
  place-items: center;
  border-radius: 0.75rem;
  background: var(--green-800);
  color: var(--white);
}

.map-place-popup--health .map-place-popup__icon {
  background: var(--health-600);
}

.map-place-popup__icon .icon {
  width: 1.35rem;
  height: 1.35rem;
}

.map-place-popup__heading {
  display: grid;
  min-width: 0;
  gap: 0.08rem;
}

.map-place-popup__heading small {
  color: var(--green-800);
  font-size: 0.66rem;
  font-weight: 850;
  letter-spacing: 0.045em;
  text-transform: uppercase;
}

.map-place-popup--health .map-place-popup__heading small {
  color: var(--health-700);
}

.map-place-popup__heading strong {
  color: var(--ink-900);
  font-size: 0.94rem;
  line-height: 1.25;
  overflow-wrap: anywhere;
}

.leaflet-popup-content .map-place-popup__address,
.leaflet-popup-content .map-place-popup__summary,
.leaflet-popup-content .map-place-popup__metrics {
  margin: 0;
}

.map-place-popup__address {
  color: var(--ink-700);
  font-size: 0.76rem;
  font-weight: 780;
}

.map-place-popup__summary {
  display: -webkit-box;
  overflow: hidden;
  color: var(--ink-600);
  font-size: 0.74rem;
  line-height: 1.45;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 3;
}

.map-place-popup__metrics {
  display: flex;
  flex-wrap: wrap;
  gap: 0.35rem;
}

.map-place-popup__metrics span {
  padding: 0.25rem 0.45rem;
  border-radius: var(--radius-pill);
  background: var(--green-050);
  color: var(--green-800);
  font-size: 0.68rem;
  font-weight: 800;
}

.map-place-popup--health .map-place-popup__metrics span {
  background: var(--health-100);
  color: var(--health-700);
}

.map-place-popup__detail {
  width: 100%;
  min-height: var(--target);
  padding: 0.62rem 0.8rem;
  border: 0;
  border-radius: 0.7rem;
  background: var(--green-800);
  color: var(--white);
  font: inherit;
  font-size: 0.78rem;
  font-weight: 850;
}

.map-place-popup--health .map-place-popup__detail {
  background: var(--health-600);
}

.map-place-popup__detail:hover {
  filter: brightness(0.94);
}

.map-place-popup__detail:focus-visible {
  outline: 0.2rem solid var(--white);
  outline-offset: -0.32rem;
  box-shadow: 0 0 0 0.18rem var(--ink-900);
}

html[data-simple-mode="true"] .map-place-popup__heading strong,
html[data-simple-mode="true"] .map-place-popup__address,
html[data-simple-mode="true"] .map-place-popup__summary,
html[data-simple-mode="true"] .map-place-popup__detail {
  font-size: 1rem;
}

/* === Entidades públicas === */
.public-layer-switcher {
  display: flex;
  flex-wrap: wrap;
  padding: 0.3rem;
  gap: 0.35rem;
  border: 1px solid rgb(22 61 75 / 12%);
  border-radius: 0.9rem;
  background: rgb(255 255 255 / 78%);
}

.public-layer-switcher button {
  display: inline-flex;
  min-width: 2.75rem;
  min-height: 2.75rem;
  align-items: center;
  justify-content: center;
  padding: 0.55rem 0.7rem;
  gap: 0.42rem;
  border: 1px solid transparent;
  border-radius: 0.7rem;
  background: transparent;
  color: var(--ink-600);
  font: inherit;
  font-size: 0.78rem;
  font-weight: 820;
  transition: background 140ms ease, color 140ms ease, border-color 140ms ease;
}

.public-layer-switcher button .icon {
  width: 1.25rem;
  height: 1.25rem;
}

.public-layer-switcher button:hover,
.public-layer-switcher button:focus-visible {
  border-color: rgb(22 61 75 / 18%);
  background: var(--green-050);
  color: var(--green-800);
}

.public-layer-switcher button[data-public-layer="health"].is-active {
  border-color: rgb(169 46 42 / 24%);
  background: var(--health-100);
  color: var(--health-700);
}

.public-layer-switcher button[data-public-layer="emergency"].is-active {
  border-color: rgb(159 47 36 / 28%);
  background: var(--emergency-100);
  color: var(--emergency-700);
}

.public-layer-switcher button[data-public-layer="citizen_services"].is-active {
  border-color: rgb(40 86 154 / 24%);
  background: var(--citizen-100);
  color: var(--citizen-700);
}

.public-places__list {
  grid-auto-rows: max-content;
  align-content: start;
  max-height: 30rem;
  padding-inline-end: 0.15rem;
  overflow: auto;
  overscroll-behavior: contain;
}

.public-place-card--emergency .public-place-card__icon {
  background: var(--emergency-600);
  box-shadow: 0 0.35rem 0.85rem rgb(159 47 36 / 20%);
}

.public-place-card--emergency .public-place-card__badge,
.public-place-card--emergency .public-place-card__cta {
  color: var(--emergency-700);
}

.public-place-card--citizen .public-place-card__icon {
  background: var(--citizen-600);
  box-shadow: 0 0.35rem 0.85rem rgb(40 86 154 / 20%);
}

.public-place-card--citizen .public-place-card__badge,
.public-place-card--citizen .public-place-card__cta {
  color: var(--citizen-700);
}

.public-place-card--citizen .public-place-card__button:hover,
.public-place-card--citizen .public-place-card__button:focus-visible {
  background: var(--citizen-100);
}

.map-marker--emergency .map-marker__pin {
  background: var(--emergency-600);
  box-shadow: 0 4px 14px rgb(159 47 36 / 38%);
}

.map-marker--citizen .map-marker__pin {
  background: var(--citizen-600);
  box-shadow: 0 4px 14px rgb(40 86 154 / 36%);
}

.map-place-popup--emergency .map-place-popup__icon,
.map-place-popup--emergency .map-place-popup__detail {
  background: var(--emergency-600);
}

.map-place-popup--emergency .map-place-popup__heading small {
  color: var(--emergency-700);
}

.map-place-popup--citizen .map-place-popup__icon,
.map-place-popup--citizen .map-place-popup__detail {
  background: var(--citizen-600);
}

.map-place-popup--citizen .map-place-popup__heading small {
  color: var(--citizen-700);
}

.map-place-popup--citizen .map-place-popup__metrics span {
  background: var(--citizen-100);
  color: var(--citizen-700);
}

.public-place-sources {
  padding: 0.8rem;
  border: 1px solid rgb(40 86 154 / 16%);
  border-radius: 0.85rem;
  background: linear-gradient(145deg, #f8fbff, var(--citizen-100));
}

.public-place-sources > p {
  margin: -0.25rem 0 0.35rem;
  color: var(--ink-600);
  font-size: 0.76rem;
  line-height: 1.45;
}

@media (min-width: 48rem) {
  .public-layer-switcher button:not(.is-active) span {
    max-width: 0;
    overflow: hidden;
    opacity: 0;
    transition: max-width 160ms ease, opacity 160ms ease;
    white-space: nowrap;
  }

  .public-layer-switcher button:not(.is-active):hover span,
  .public-layer-switcher button:not(.is-active):focus-visible span {
    max-width: 7rem;
    opacity: 1;
  }
}

@media (max-width: 34rem) {
  .public-layer-switcher {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }

  .public-layer-switcher button {
    padding-inline: 0.35rem;
    flex-direction: column;
    gap: 0.15rem;
    font-size: 0.67rem;
  }

  .public-places__list {
    max-height: none;
  }
}

@media (prefers-reduced-motion: reduce) {
  .public-layer-switcher button,
  .public-layer-switcher button span {
    transition: none;
  }
}

/* Área de referencia visual; la pertenencia se determina por la zona declarada. */
.map-zone-status {
  position: absolute;
  z-index: 700;
  inset-inline-start: 1rem;
  bottom: 7.2rem;
  max-width: calc(100% - 2rem);
  margin: 0;
  padding: 0.5rem 0.7rem;
  border: 1px solid #7db6ac;
  border-radius: 0.65rem;
  background: #f3fcf8;
  color: #124b45;
  font-size: 0.75rem;
  font-weight: 700;
  box-shadow: 0 2px 8px rgb(0 0 0 / 15%);
  pointer-events: none;
}
.leaflet-zone-focus-pane > svg {
  max-width: none;
}
.zone-empty {
  margin: 0;
  padding: 1rem;
  color: var(--ink-600);
  line-height: 1.5;
}

.topic-button--tourism { --topic-color: #16776e; }
.map-marker--tourism .map-marker__pin { background: #16776e; color: white; }
.map-tourism-area:focus { outline: 3px solid #d98b29; }
.map-zone-status { max-width: min(36rem, calc(100% - 5rem)); white-space: normal; line-height: 1.35; }

/* === Filtros de agenda === */
.official-agenda__filters {
  display: grid;
  grid-template-columns: minmax(12rem, 1fr) auto;
  gap: 0.7rem;
  align-items: end;
  padding: 0.75rem;
  border: 1px solid rgb(25 118 111 / 18%);
  border-radius: var(--radius-md);
  background: var(--green-050);
}

.official-agenda__filters[hidden],
.official-agenda__clear[hidden],
.official-agenda__empty[hidden] {
  display: none;
}

.official-agenda__search {
  display: flex;
  min-width: 0;
  min-height: var(--target);
  align-items: center;
  gap: 0.5rem;
  padding-inline: 0.75rem;
  border: 1px solid rgb(22 61 75 / 24%);
  border-radius: 999px;
  background: var(--white);
  color: var(--ink-600);
}

.official-agenda__search:focus-within {
  border-color: var(--green-700);
  box-shadow: 0 0 0 3px rgb(25 118 111 / 18%);
}

.official-agenda__search .icon {
  flex: 0 0 auto;
}

.official-agenda__search input {
  min-width: 0;
  width: 100%;
  min-height: var(--target);
  padding: 0;
  border: 0;
  outline: 0;
  background: transparent;
  color: var(--ink-900);
  font: inherit;
}

.official-agenda__range {
  min-width: 0;
  margin: 0;
  padding: 0;
  border: 0;
}

.official-agenda__range legend {
  margin-block-end: 0.25rem;
  color: var(--ink-700);
  font-size: 0.74rem;
  font-weight: 800;
}

.official-agenda__range > div {
  display: flex;
  gap: 0.3rem;
  overflow-x: auto;
  scrollbar-width: none;
}

.official-agenda__range > div::-webkit-scrollbar {
  display: none;
}

.official-agenda__range button,
.official-agenda__clear {
  min-height: var(--target);
  padding-inline: 0.8rem;
  border: 1px solid rgb(22 61 75 / 20%);
  border-radius: 999px;
  background: var(--white);
  color: var(--ink-700);
  font: inherit;
  font-size: 0.82rem;
  font-weight: 850;
  white-space: nowrap;
  cursor: pointer;
}

.official-agenda__range button.is-active {
  border-color: var(--green-700);
  background: var(--green-800);
  color: var(--white);
}

.official-agenda__clear {
  grid-column: 1 / -1;
  width: fit-content;
  min-height: 2.4rem;
  color: var(--green-800);
}

.official-agenda__empty {
  margin: 0;
  padding: 0.9rem;
  border: 1px dashed rgb(22 61 75 / 28%);
  border-radius: var(--radius-md);
  background: var(--white);
  color: var(--ink-700);
  font-size: 0.88rem;
  line-height: 1.45;
}

html[data-simple-mode="true"] .official-agenda__search input,
html[data-simple-mode="true"] .official-agenda__range button,
html[data-simple-mode="true"] .official-agenda__clear,
html[data-simple-mode="true"] .official-agenda__empty {
  font-size: 1rem;
}

@media (max-width: 39.99rem) {
  .official-agenda__filters {
    grid-template-columns: minmax(0, 1fr);
  }

  .official-agenda__range > div {
    margin-inline: -0.15rem;
    padding: 0.15rem;
  }
}

/* === Seguridad y emergencias === */
/* Las cinco capas permanecen nombradas para que se descubran sin ensayo. */
.public-layer-switcher {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.public-layer-switcher button {
  min-width: 0;
  justify-content: flex-start;
  text-align: start;
}

.public-layer-switcher button .icon {
  flex: 0 0 auto;
}

.public-layer-switcher button:not(.is-active) span,
.public-layer-switcher button:not(.is-active):hover span,
.public-layer-switcher button:not(.is-active):focus-visible span {
  max-width: none;
  overflow: visible;
  opacity: 1;
  white-space: normal;
}

.public-layer-switcher button span {
  line-height: 1.2;
}

.public-layer-switcher button[data-public-layer="safety_response"].is-active {
  border-color: rgb(55 65 131 / 28%);
  background: var(--safety-100);
  color: var(--safety-700);
}

.public-layer-switcher button[data-public-layer="pharmacy"].is-active {
  border-color: rgb(33 131 106 / 28%);
  background: var(--pharmacy-100);
  color: var(--pharmacy-700);
}

.public-place-card--pharmacy .public-place-card__icon,
.map-marker--pharmacy .map-marker__pin,
.map-marker--pharmacy .map-marker__cluster,
.map-place-popup--pharmacy .map-place-popup__icon,
.map-place-popup--pharmacy .map-place-popup__detail {
  background: var(--pharmacy-600);
}

.public-place-card--pharmacy .public-place-card__badge,
.public-place-card--pharmacy .public-place-card__cta,
.map-place-popup--pharmacy .map-place-popup__heading small {
  color: var(--pharmacy-700);
}

.public-place-card--pharmacy .public-place-card__button:hover,
.public-place-card--pharmacy .public-place-card__button:focus-visible,
.map-place-popup--pharmacy .map-place-popup__metrics span {
  background: var(--pharmacy-100);
  color: var(--pharmacy-700);
}

.public-place-card--safety .public-place-card__icon {
  background: var(--safety-600);
  box-shadow: 0 0.35rem 0.85rem rgb(55 65 131 / 22%);
}

.public-place-card--safety .public-place-card__badge,
.public-place-card--safety .public-place-card__cta {
  color: var(--safety-700);
}

.public-place-card--safety .public-place-card__button:hover,
.public-place-card--safety .public-place-card__button:focus-visible {
  background: var(--safety-100);
}

.map-marker--safety .map-marker__pin,
.map-marker--safety .map-marker__cluster {
  background: var(--safety-600);
  box-shadow: 0 4px 14px rgb(55 65 131 / 38%);
}

.map-place-popup--safety .map-place-popup__icon,
.map-place-popup--safety .map-place-popup__detail {
  background: var(--safety-600);
}

.map-place-popup--safety .map-place-popup__heading small {
  color: var(--safety-700);
}

.map-place-popup--safety .map-place-popup__metrics span {
  background: var(--safety-100);
  color: var(--safety-700);
}

.safety-emergency {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: center;
  padding: 0.85rem;
  gap: 0.8rem;
  border: 1px solid rgb(159 47 36 / 24%);
  border-inline-start: 0.3rem solid var(--emergency-600);
  border-radius: 0.85rem;
  background: linear-gradient(135deg, #fff8f5, var(--safety-100));
}

.safety-emergency__copy {
  display: grid;
  min-width: 0;
  gap: 0.18rem;
}

.safety-emergency__copy > span {
  color: var(--emergency-700);
  font-size: 0.68rem;
  font-weight: 900;
  letter-spacing: 0.055em;
  text-transform: uppercase;
}

.safety-emergency__copy strong {
  color: var(--ink-900);
  font-size: 0.94rem;
  line-height: 1.25;
}

.safety-emergency__copy p {
  margin: 0;
  color: var(--ink-700);
  font-size: 0.78rem;
  line-height: 1.45;
}

.safety-emergency__action {
  display: inline-flex;
  min-height: var(--target);
  align-items: center;
  justify-content: center;
  padding: 0.65rem 0.85rem;
  border-radius: 0.7rem;
  background: var(--emergency-700);
  color: var(--white);
  font-size: 0.82rem;
  font-weight: 900;
  text-align: center;
  text-decoration: none;
  white-space: nowrap;
}

.safety-emergency__action:hover {
  filter: brightness(0.94);
}

.safety-emergency__action:focus-visible {
  outline: 0.2rem solid var(--white);
  outline-offset: -0.32rem;
  box-shadow: 0 0 0 0.18rem var(--ink-900);
}

html[data-simple-mode="true"] .public-layer-switcher button {
  font-size: 1rem;
}

html[data-simple-mode="true"] .safety-emergency__copy strong,
html[data-simple-mode="true"] .safety-emergency__copy p,
html[data-simple-mode="true"] .safety-emergency__action {
  font-size: 1rem;
}

@media (max-width: 34rem) {
  .public-layer-switcher {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .public-layer-switcher button {
    min-height: 3.15rem;
    padding: 0.5rem;
    flex-direction: row;
    gap: 0.4rem;
    font-size: 0.72rem;
  }

  .safety-emergency {
    grid-template-columns: minmax(0, 1fr);
  }

  .safety-emergency__action {
    width: 100%;
  }
}

/* === Navegación y ventanas compactas === */
/* Shared browsing controls and independent thematic layers. */
/* Let the shell reserve real header/navigation space instead of subtracting fixed heights. */
.app-shell { display: flex; flex-direction: column; height: 100dvh; min-height: 0; padding-block-end: 0; overflow: auto; }
.app-shell > .demo-ribbon, .app-shell > .topbar, .app-shell > .context-strip, .app-shell > .network-banner { flex: 0 0 auto; }
.app-shell > .topbar { position: relative; inset-block-start: auto; }
.app-shell > main { flex: 1 0 0; height: auto; min-height: calc(var(--browse-height, 13rem) + 20rem); overflow: visible; }
html[data-discovery-view] .view--home, html[data-discovery-view] .map-workspace { height: 100%; min-height: 0; }
.map-workspace, html[data-simple-mode="true"] .map-workspace {
  display: grid; grid-template-columns: minmax(0, 1fr) clamp(20rem, 32vw, 28rem);
  grid-template-rows: auto minmax(0, 1fr); grid-template-areas: "controls controls" "map results";
  gap: 0; align-items: stretch;
}
.map-workspace > * { min-width: 0; }
#browse-controls { grid-area: controls; position: relative; inset: auto; z-index: 750; display: flex; flex-direction: column; align-items: stretch; gap: .55rem; padding: .75rem 1rem; width: 100%; min-width: 0; background: #f8faf6; border-bottom: 1px solid #b7cec7; pointer-events: auto; }
.browse-search-row { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: .7rem; }
#browse-controls .map-search { grid-area: auto; width: 100%; max-width: none; min-width: 0; margin: 0; box-shadow: none; }
#browse-controls .map-tools { grid-area: auto; max-width: none; position: static; display: flex; width: 100%; margin: 0; min-width: 0; gap: .4rem; }
#browse-controls .sector-control { flex: 1 1 auto; width: auto; min-width: 0; max-width: none; }
#browse-controls .sector-control select { min-width: 0; width: 100%; text-overflow: ellipsis; }
#browse-controls .map-tool-button { flex-shrink: 0; min-height: 44px; }
#browse-controls .layer-picker { position: static; display: block; width: 100%; }
.layer-picker__heading { display: flex; align-items: baseline; flex-wrap: wrap; gap: .25rem .75rem; color: #244b43; font-size: .78rem; margin-bottom: .35rem; }
.layer-picker__heading span { color: #48645d; }
#browse-controls .layer-tabs { display: flex; gap: .4rem; overflow-x: auto; padding: .15rem .1rem .3rem; scrollbar-width: thin; }
#browse-controls .topic-button { display: inline-flex !important; flex: 0 0 auto; white-space: nowrap; min-height: 44px; padding: .55rem .75rem; border-radius: .65rem; color: #294a44; border: 1px solid #a6beb6; background: white; box-shadow: none; transition: background 120ms ease; }
#browse-controls .topic-button span, #browse-controls .category-menu > summary span { max-width: none; width: auto; opacity: 1; overflow: visible; }
#browse-controls .topic-button[aria-pressed="true"] { color: white; background: var(--layer-color, #245e50); border-color: var(--layer-color, #245e50); box-shadow: inset 0 0 0 1px white; }
[data-map-layer="public_service"] { --layer-color: #19526e; }
[data-map-layer="transport"] { --layer-color: #63389a; }
[data-map-layer="commerce"] { --layer-color: #975011; }
[data-map-layer="services"] { --layer-color: #266550; }
[data-map-layer="jobs"] { --layer-color: #315988; }
[data-map-layer="rentals"] { --layer-color: #765338; }
[data-map-layer="tourism"] { --layer-color: #176653; }
[data-map-layer="event"] { --layer-color: #913866; }
[data-map-layer="community"] { --layer-color: #535289; }
.browse-filter-row { display: flex; flex-wrap: wrap; gap: .45rem; align-items: center; }
#browse-controls .category-menu { position: relative; margin: 0; width: auto; flex: 0 1 auto; }
#browse-controls .category-menu > summary { min-height: 44px; padding: .45rem .65rem; font-size: .8rem; box-shadow: none; border-radius: .55rem; }
#browse-controls .category-menu__popover { position: absolute; inset: calc(100% + .3rem) auto auto 0; width: min(32rem, calc(100vw - 2rem)); max-height: min(24rem, 60dvh); overflow: auto; z-index: 1000; }
#category-options { display: flex; flex-wrap: wrap; gap: .45rem; }
#category-options button { min-height: 44px; border: 1px solid #93b8ac; border-radius: .5rem; background: white; padding: .5rem .7rem; color: #1c4d40; }
#category-options button[aria-pressed="true"] { background: #245e50; color: white; }
#category-options button[hidden], #event-date-filters[hidden] { display: none !important; }
.category-menu__popover p { margin: .7rem 0 0; font-size: .78rem; }
#event-date-filters, .browse-view-controls { display: flex; gap: .2rem; }
#event-date-filters button, .browse-view-controls button { min-height: 44px; border: 1px solid #a6beb6; border-radius: .5rem; padding: .4rem .65rem; background: white; color: #294a44; font-size: .8rem; }
#event-date-filters button[aria-pressed="true"], .browse-view-controls button[aria-pressed="true"] { background: #245e50; color: white; }
.browse-view-controls { margin-left: auto; }
#map-panel { grid-area: map; height: 100%; min-height: 0; max-height: none; }
#results-panel { grid-area: results; height: 100%; max-height: none; min-height: 0; overflow-y: auto; overscroll-behavior: contain; padding: 1rem; border-left: 1px solid #b7cec7; }
#map-panel .leaflet-top { top: .75rem; }
.map-stage::after { display: none; }
#map-zone-status { bottom: 4rem; inset-inline: .75rem auto; width: max-content; max-width: min(28rem, calc(100% - 1.5rem)); font-size: .72rem; padding: .4rem .55rem; line-height: 1.35; }
#map-zone-status a { pointer-events: auto; }
.map-results-button { position: absolute; z-index: 700; right: .75rem; bottom: .65rem; min-height: 44px; border: 1px solid #244e43; border-radius: .65rem; padding: .6rem .85rem; background: #245e50; color: white; font-weight: 700; }
#map-panel .map-legend { bottom: 1rem; left: .75rem; }
#catalog-results { display: grid; grid-template-columns: minmax(0, 1fr); overflow: visible; padding: 0; }
#catalog-results > * { width: 100%; min-width: 0; max-width: none; }
.catalog-card .local-visual { display: none; }
.catalog-card__locate { display: flex; align-items: center; gap: .4rem; min-height: 44px; padding: .5rem .8rem; margin: 0 .75rem .65rem auto; border: 1px solid #91b7a9; border-radius: .5rem; color: #1c4d40; background: #f0f8f3; font-weight: 700; }
.catalog-card__locate .icon { width: 1rem; height: 1rem; }
.empty-layers { font-size: .83rem; color: #52665e; padding: .65rem; border: 1px solid #d1dfd5; border-radius: .6rem; background: #f1f6ed; }
.map-marker--services .map-marker__pin { background: #266550; }
.map-marker--commerce .map-marker__pin { background: #975011; }
.map-marker--event .map-marker__pin { background: #913866; }
.map-marker--public_service .map-marker__pin { background: #19526e; }
@media (max-width: 63.99rem) {
  .map-workspace, html[data-simple-mode="true"] .map-workspace { grid-template-columns: minmax(0, 1fr); grid-template-areas: "controls" "map"; }
  html[data-discovery-view="list"] .map-workspace { grid-template-areas: "controls" "results"; }
  #browse-controls { padding: .6rem .7rem; gap: .4rem; }
  .layer-picker__heading { font-size: .73rem; }
  #browse-controls .topic-button { font-size: .78rem; padding: .5rem .6rem; }
  html[data-discovery-view="map"] #map-panel, html[data-discovery-view="list"] #results-panel { height: 100%; min-height: 0; }
  #results-panel { padding: .85rem; border-left: 0; }
  .browse-view-controls { display: none; }
  #map-panel .map-legend { font-size: .65rem; max-width: 50%; flex-wrap: wrap; }
  .map-results-button { font-size: .78rem; }
  .app-shell > .mobile-dock { position: relative; inset: auto; transform: none; flex: 0 0 auto; width: min(calc(100% - 1.4rem), 29rem); margin: .35rem auto; }
}
@media (max-width: 39.99rem) {
  .browse-search-row { grid-template-columns: minmax(0, 1fr); gap: .4rem; }
}
@media (prefers-reduced-motion: reduce) { #browse-controls .topic-button { transition: none; } }

#map-panel .leaflet-control-zoom { margin: 0 !important; }
#map-panel .leaflet-top.leaflet-left { left: .75rem; }
#map-panel .leaflet-control-container .leaflet-top { top: .75rem; }
#map-panel .map-canvas { position: absolute; inset: 0; height: 100%; width: 100%; }
#map-panel .leaflet-control-attribution { max-width: 45vw; font-size: 9px; }
@media (max-width: 35rem) { #browse-controls .map-tool-button span { display: none; } #browse-controls .map-tool-button { min-width: 44px; } }

/* Short desktop windows keep the browsing controls in two rows so the map
   gains actual visible room instead of only extending below the viewport. */
@media (min-width: 40rem) and (max-height: 45rem) {
  #browse-controls { display: grid; grid-template-columns: minmax(0, 1fr) auto; grid-template-areas: "search search" "layers filters"; align-items: center; gap: .45rem .6rem; padding-block: .55rem; }
  .browse-search-row { grid-area: search; }
  #browse-controls .layer-picker { grid-area: layers; min-width: 0; }
  .browse-filter-row { grid-area: filters; }
  #browse-controls .category-menu { position: static; }
  #browse-controls .category-menu__popover { inset-inline: auto .75rem; }
  .layer-picker__heading { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); margin: 0; }
}
@media (max-height: 45rem), (max-width: 39.99rem) and (max-height: 50rem) {
  .app-shell > .context-strip { display: none; }
  .app-shell > .topbar { min-height: 3.25rem; padding-block: .25rem; }
  .topbar .simple-toggle { min-height: 44px; }
  .brand__copy small { display: none; }
}

/* Related visitor places stay inside the existing detail panel at every width. */
.detail-related > ul { list-style: none; margin: 0; padding: 0; display: grid; gap: .6rem; }
.detail-related-place { display: flex; align-items: center; gap: .8rem; width: 100%; min-width: 0; padding: .8rem; border: 1px solid #c7d8d1; border-radius: .8rem; background: #f4f8f4; color: #173c40; text-align: start; cursor: pointer; }
.detail-related-place:hover { background: #e7f2eb; border-color: #34796b; }
.detail-related-place:focus-visible { outline: 3px solid #137c72; outline-offset: 2px; }
.detail-related-place > img { flex: 0 0 4.5rem; width: 4.5rem; height: 4rem; object-fit: cover; border-radius: .5rem; }
.detail-related-place > span { display: grid; gap: .3rem; min-width: 0; overflow-wrap: anywhere; }
.detail-related-place small, .detail-related-place > span > span { font-size: .78rem; }
.detail-visit-pending { color: #53666a; font-size: .9rem; }
.detail-related-credit { display: block; margin: .3rem .8rem 0; font-size: .7rem; color: #53666a; overflow-wrap: anywhere; }

/* === Fotografías y ficha === */
/* Place photography and readable detail sheets. */
.place-photo { margin: 0; min-width: 0; overflow: hidden; background: #edf3ef; border-radius: .8rem; }
.place-photo__link { display: block; color: #294a44; }
.place-photo img { display: block; width: 100%; height: 10rem; object-fit: cover; }
.place-photo img[hidden], .place-photo__unavailable[hidden] { display: none; }
.place-photo__unavailable { display: block; padding: 1rem; font-size: .8rem; }
.place-photo figcaption { display: grid; gap: .25rem; padding: .55rem .75rem; color: #425d54; font-size: .8rem; line-height: 1.45; overflow-wrap: anywhere; }
.place-photo figcaption small { font-size: .7rem; }
.place-photo a { color: inherit; text-underline-offset: .15em; }
.place-photo--detail img { height: auto; max-height: 20rem; object-fit: contain; }
.catalog-card > .place-photo { margin: .7rem .7rem 0; }
#catalog-results .catalog-card__button { grid-template-columns: 2.4rem minmax(0, 1fr); gap: .55rem .65rem; min-height: 0; }
#catalog-results .catalog-card__icon { width: 2.4rem; height: 2.4rem; border-radius: .65rem; }
#catalog-results .catalog-card__cta { grid-column: 2; justify-self: start; white-space: normal; font-size: .8rem; }
#catalog-results .catalog-card__meta { line-height: 1.45; }
#detail-sheet { width: min(100%, 36rem); height: 100dvh; max-height: 100dvh; margin: 0 0 0 auto; border-radius: 1rem 0 0 1rem; overflow: hidden; padding: 0; }
#detail-sheet[open] { display: flex; flex-direction: column; }
#detail-sheet .sheet-handle { display: none; }
#detail-sheet .sheet-header { position: relative; flex: 0 0 auto; display: flex; align-items: flex-start; gap: .8rem; margin: 0; padding: 1rem; }
#detail-sheet .sheet-header > div { min-width: 0; flex: 1; }
#detail-title { text-transform: none; font-size: clamp(1.1rem, 2vw, 1.5rem); line-height: 1.25; overflow-wrap: anywhere; margin: .25rem 0 0; }
#close-detail { flex: 0 0 auto; }
#detail-content { min-height: 0; overflow-y: auto; overscroll-behavior: contain; margin: 0; padding: 1rem 1rem calc(1rem + env(safe-area-inset-bottom)); gap: 1rem; align-content: start; grid-auto-rows: max-content; }
#detail-content > * { min-width: 0; }
#detail-content .detail-status-row { margin: 0; display: flex; flex-wrap: wrap; gap: .35rem; }
#detail-content .detail-summary { margin: 0; line-height: 1.6; font-size: .95rem; }
#detail-content .detail-actions--primary { margin: 0; display: flex; flex-wrap: wrap; gap: .5rem; }
#detail-content .detail-actions--primary .detail-action { flex: 1 1 10rem; margin: 0; min-height: 44px; display: flex; align-items: center; justify-content: center; text-align: center; }
#detail-content .detail-section { padding: 1rem; }
#detail-content .detail-section h3 { font-size: 1rem; margin: 0 0 .7rem; }
#detail-content .detail-section p { line-height: 1.55; }
#detail-content .detail-section > .detail-data { padding: 0; border: 0; background: transparent; }
#detail-content .detail-data > div, #detail-content .fact-list > li { grid-template-columns: minmax(6rem, .75fr) minmax(0, 1.25fr); gap: .5rem .8rem; font-size: .88rem; }
#detail-content .detail-provenance { background: #f0f4ef; }
.detail-more-photos { border: 1px solid #b7cec7; border-radius: .8rem; padding: .7rem; }
.detail-more-photos summary { padding: .4rem; cursor: pointer; font-weight: 700; }
.detail-more-photos[open] .place-photo { margin-top: .7rem; }
#map-panel .leaflet-popup-content { max-width: calc(100vw - 5rem); }
#map-panel .map-place-popup { gap: .45rem; }
#map-panel .map-place-popup__source { margin: 0; font-size: .7rem; line-height: 1.4; }
#map-panel .map-place-popup__summary { -webkit-line-clamp: 2; }
#map-panel .map-place-popup__detail { position: sticky; bottom: 0; z-index: 1; box-shadow: 0 -.3rem .3rem white; }
/* A geographic caption must never paint over an open Leaflet popup. */
#map-zone-status { z-index: 450; }
#map-panel .leaflet-popup-pane { z-index: 1100; }
#map-panel .leaflet-popup-scrolled { border: 0; overscroll-behavior: contain; }
@media (max-width: 39.99rem) {
  #detail-sheet { border-radius: 0; }
  #detail-content { padding-inline: .75rem; }
  #detail-content .detail-data > div, #detail-content .fact-list > li { grid-template-columns: minmax(0, 1fr); gap: .2rem; }
  #detail-content .place-photo--detail img { max-height: 15rem; }
}

#map:has(.leaflet-popup) .leaflet-tooltip-pane { visibility: hidden; }

#map-panel .map-popup--compact .map-place-popup__address,
#map-panel .map-popup--compact .map-place-popup__summary,
#map-panel .map-popup--compact .map-place-popup__metrics,
#map-panel .map-popup--compact .map-place-popup__icon { display: none; }
#map-panel .map-popup--compact .map-place-popup__header { grid-template-columns: minmax(0, 1fr); padding-inline-end: 1rem; }
#map-panel .map-popup--compact .map-place-popup__heading strong { font-size: .85rem; line-height: 1.2; display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 2; overflow: hidden; }
#map-panel .map-popup--compact .map-place-popup__source { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: .65rem; }
#map-panel .map-popup--compact .map-place-popup__detail { position: static; min-height: 44px; }

/* === Guardados y enlaces === */
.saved-trigger { min-height: 44px; border: 1px solid #aac6bd; border-radius: .55rem; padding: .45rem .6rem; background: #fff; color: #245e50; font-size: .8rem; font-weight: 700; }
.detail-personal-actions { display: flex; flex-wrap: wrap; gap: .6rem; margin: .5rem 0 1rem; }
.detail-personal-actions button { flex: 1 1 7rem; min-height: 44px; padding: .6rem; border: 1px solid #82a89a; border-radius: .6rem; background: #fff; color: #245e50; font-weight: 700; }
.detail-personal-actions button[aria-pressed="true"] { color: #fff; background: #245e50; }
.saved-sheet { box-sizing: border-box; width: min(32rem, calc(100vw - 1.5rem)); max-width: calc(100vw - 1.5rem); max-height: calc(100dvh - 2rem); overflow: auto; margin: auto; border: 1px solid #b8cfc6; border-radius: 1rem; padding: 1rem; color: #183e42; background: #fffefa; }
.saved-sheet::backdrop { background: rgb(17 45 44 / .55); }
.saved-sheet header { display: flex; align-items: start; justify-content: space-between; gap: .65rem; }
.saved-sheet h2 { margin: .4rem 0; font-size: 1.25rem; overflow-wrap: anywhere; }
.saved-sheet p { color: #52695e; font-size: .88rem; line-height: 1.5; }
.saved-sheet button { min-width: 44px; min-height: 44px; padding: .6rem; border: 1px solid #b8cfc6; border-radius: .5rem; background: #f0f7f2; color: #245e50; }
#saved-list { list-style: none; margin: 1rem 0 0; padding: 0; display: grid; gap: .7rem; }
#saved-list li { display: flex; gap: .4rem; align-items: center; border-bottom: 1px solid #d7e2dc; padding-bottom: .7rem; min-width: 0; }
#saved-list .saved-open { flex: 1; min-width: 0; text-align: left; overflow-wrap: anywhere; font-weight: 700; background: white; border: 0; }
#saved-list .saved-remove { flex: 0 0 auto; font-size: .8rem; }
#share-link { box-sizing: border-box; max-width: 100%; width: 100%; margin-top: .5rem; min-height: 44px; border: 1px solid #b8cfc6; border-radius: .5rem; padding: .5rem; }
.saved-sheet header > button { flex: 0 0 auto; white-space: nowrap; min-width: 4.5rem; }

/* === Reportes === */
#report-dialog { width: min(38rem, calc(100vw - 1.5rem)); max-height: calc(100dvh - 1.5rem); padding: 0; color: #173e3b; }
#report-dialog .sheet-header { position: sticky; top: 0; z-index: 1; background: #fafbf7; }
.report-body { display: grid; gap: 1rem; padding: 1rem 1.25rem; min-width: 0; overflow-wrap: anywhere; }
.report-body form, .report-body section, .report-body label { display: grid; gap: .65rem; min-width: 0; }
.report-body p, .report-body h3 { margin: 0; }
.report-body input, .report-body textarea, .report-body select { box-sizing: border-box; width: 100%; max-width: 100%; min-width: 0; border: 1px solid #abc5ba; border-radius: .6rem; padding: .7rem; font: inherit; color: inherit; background: white; }
.report-body textarea { resize: vertical; }
.report-body input[readonly] { font-family: ui-monospace, monospace; font-size: .8rem; }
#report-place-title, #report-feedback, #report-receipt-status { font-weight: 700; }
#report-lookup { border-top: 1px solid #cfddd5; padding-top: 1.25rem; }
#report-receipt { background: #eaf5ec; padding: 1rem; border-radius: .8rem; }
#report-dialog [hidden] { display: none !important; }
#report-dialog button:disabled { opacity: .65; cursor: wait; }

/* === Exploración y visor de fotografías === */
.discovery-shortcut {
  display:flex;
  align-items:center;
  gap:.4rem;
  flex:0 0 auto;
  padding:.5rem .8rem;
  min-height:44px;
  border:1px solid #91b9aa;
  border-radius:999px;
  color:#174d43;
  background:#edf6ef;
  font:inherit;
  font-weight:700;
  white-space:nowrap;
  cursor:pointer}
.discovery-shortcut .icon {
  width:18px;
  height:18px}
.discovery-shortcut[aria-pressed="true"] {
  background:#176653;
  color:white;
  border-color:#176653}
.layer-separator {
  align-self:center;
  flex:0 0 1px;
  height:1.7rem;
  background:#acc3ba;
  margin:0 .25rem}
.agenda-empty__actions {
  display:grid;
  gap:.7rem}
.photo-viewer {
  width:min(70rem,96vw);
  max-width:96vw;
  height:min(54rem,94dvh);
  max-height:94dvh;
  padding:1rem;
  border:1px solid #bfd0c8;
  border-radius:1rem;
  color:#183e35;
  background:#fafbf8;
  overflow:auto}
.photo-viewer[open] {
  display:flex;
  flex-direction:column;
  gap:.7rem}
.photo-viewer::backdrop {
  background:rgba(10,31,29,.78)}
.photo-viewer header,.photo-viewer nav {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:.7rem;
  flex:0 0 auto}
.photo-viewer h2 {
  font-size:1.15rem;
  margin:0}
.photo-viewer button {
  min-height:44px;
  padding:.55rem .8rem;
  border:1px solid #afc7bc;
  border-radius:.7rem;
  background:white;
  color:inherit;
  font:inherit;
  cursor:pointer}
.photo-viewer button:disabled {
  opacity:.4;
  cursor:default}
.photo-viewer figure {
  display:flex;
  flex-direction:column;
  flex:1 1 auto;
  min-height:0;
  margin:0;
  gap:.6rem}
.photo-viewer img {
  display:block;
  object-fit:contain;
  width:100%;
  min-height:0;
  flex:1 1 auto;
  max-height:calc(94dvh - 15rem)}
.photo-viewer figcaption,.photo-viewer #photo-viewer-credit {
  font-size:.8rem;
  line-height:1.4;
  margin:0;
  overflow-wrap:anywhere;
  flex:0 0 auto}
.photo-viewer a {
  color:#146354}
.photo-viewer :focus-visible,.discovery-shortcut:focus-visible {
  outline:3px solid #da7b30;
  outline-offset:2px}
@media(max-width:40rem) {
  .photo-viewer {
  padding:.75rem}
.photo-viewer nav {
  font-size:.82rem}
.photo-viewer header {
  align-items:flex-start}
.photo-viewer img {
  max-height:calc(94dvh - 18rem)}
}

/* === Temas de turismo === */
.tourism-themes:not([hidden]) {
  display: flex;
  gap: .5rem;
  min-width: 0;
  min-height: 3.75rem;
  flex-shrink: 0;
  align-items: center;
  max-width: 100%;
  overflow-x: auto;
  padding: .3rem .2rem .7rem;
  margin-bottom: .4rem;
  scrollbar-width: thin;
}
.tourism-themes button {
  display: flex;
  flex: 0 0 auto;
  align-items: center;
  gap: .5rem;
  min-height: 44px;
  padding: .5rem .8rem;
  border: 1px solid #a8c7ba;
  border-radius: 999px;
  background: #fff;
  color: #19483e;
  font: inherit;
  font-weight: 700;
  cursor: pointer;
}
.tourism-themes button[aria-pressed="true"] { color: white; background: #176653; }
.tourism-themes button:disabled { opacity: .5; cursor: default; }
.tourism-themes button:focus-visible { outline: 3px solid #da7b30; outline-offset: 2px; }
.tourism-themes [data-theme-count]:not(:empty) {
  font-size: .8rem;
  background: #e6f0e9;
  color: #214b40;
  padding: .05rem .35rem;
  border-radius: 999px;
}
.photo-viewer .photo-changes { display: block; margin-top: .35rem; }


/* Business ownership and per-business product catalogue. */
.business-manager { width:min(1100px,calc(100vw - 32px)); max-width:none; max-height:calc(100dvh - 32px); padding:0; border:1px solid #b8cdcb; border-radius:20px; background:#f8faf7; color:#183c43; overflow:auto; }
.business-manager::backdrop { background:rgb(13 39 43 / .64); }
.business-manager__shell { padding:clamp(16px,3vw,32px); }
.business-manager__header { position:sticky; top:-32px; z-index:2; padding:16px 0; background:#f8faf7; }
.business-manager__header,.business-manager__list-title,.business-manager__plan,.business-manager__actions { display:flex; align-items:center; justify-content:space-between; gap:12px; flex-wrap:wrap; }
.business-manager h2,.business-manager h3 { margin:0 0 10px; }
.business-manager p { line-height:1.5; }
.business-manager button { min-height:44px; border-radius:10px; padding:10px 14px; border:1px solid #abc3bf; background:white; color:#1a454b; cursor:pointer; }
.business-manager button:disabled { opacity:.6; cursor:wait; }
.business-manager button.primary-button { color:white; background:#1c625a; }
.business-manager :focus-visible { outline:3px solid #ba5b22; outline-offset:3px; }
.business-manager__login { max-width:520px; margin:24px auto; }
.business-manager label { display:grid; gap:8px; font-weight:700; margin:16px 0; }
.business-manager input:not([type=checkbox]),.business-manager textarea,.business-manager select { width:100%; max-width:100%; min-width:0; min-height:44px; padding:10px; border:1px solid #a7bfba; border-radius:8px; background:white; color:#183c43; font:inherit; box-sizing:border-box; }
.business-manager__plan { background:#e7f0e8; border-radius:14px; padding:20px; margin:20px 0 12px; }
.business-manager__plan>div { flex:1 1 300px; min-width:0; }
.business-manager__plan strong { font-size:1.25rem; }
.business-manager__billing { padding:14px 18px; background:#fff5e8; border-radius:12px; margin-bottom:24px; }
.business-manager__billing summary { cursor:pointer; font-weight:700; }
.business-manager__workspace { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:28px; }
.business-manager__workspace>*,.business-manager__header>div { min-width:0; }
.business-manager [data-product-sharing] { margin-top:24px; padding-top:20px; border-top:1px solid #cbdbd8; overflow-wrap:anywhere; }
.business-manager [data-offer-photo] { max-width:100%; object-fit:contain; border-radius:10px; }
.business-manager [data-offer-fields] dd { margin:6px 0 14px; }
.business-manager ul { list-style:none; margin:16px 0; padding:0; display:grid; gap:8px; }
.business-manager li button { display:grid; gap:6px; text-align:left; width:100%; overflow-wrap:anywhere; }
.business-manager li span,.business-manager__hint { font-size:.85rem; color:#446264; }
.business-manager .business-manager__check { display:flex; align-items:flex-start; font-weight:500; }
.business-manager__check input { width:20px; height:20px; flex-shrink:0; }
.business-manager [data-manager-status]:not(:empty) { background:#edf3f2; border-left:4px solid #36766c; padding:12px; overflow-wrap:anywhere; }
.business-manager [data-product-photo] { max-width:100%; width:220px; max-height:200px; object-fit:contain; border-radius:10px; }
.business-product-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(min(210px,100%),1fr)); gap:16px; }
.business-product { border:1px solid #cbdbd8; border-radius:14px; overflow:hidden; background:#fff; }
.business-product>div { padding:16px; }
.business-product h4 { margin:0 0 10px; font-size:1.1rem; }
.business-product img { width:100%; height:180px; object-fit:cover; }
.business-product__availability { display:block; margin:8px 0; font-size:.85rem; }
.business-product p,.business-product h4 { overflow-wrap:anywhere; }
.business-manager [hidden] { display:none !important; }
@media (max-width:760px) {
 .business-manager { width:calc(100vw - 16px); max-height:calc(100dvh - 16px); border-radius:14px; }
 .business-manager__workspace { grid-template-columns:minmax(0,1fr); }
 .business-manager__workspace>section { max-height:260px; overflow:auto; padding:3px; }
}

.configuration-status { position:fixed;inset:0;z-index:10000;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1rem;padding:2rem;background:#f8faf7;color:#173d3e;text-align:center; }
.configuration-status[hidden] { display:none; }
.configuration-status button { padding:.75rem 1.25rem;cursor:pointer; }

.account-panel { width:min(620px,calc(100vw - 24px)); }
.account-panel h3 { overflow-wrap:anywhere; }
.account-panel [data-account-status]:not(:empty) { padding:12px; background:#edf3f2; border-left:4px solid #36766c; overflow-wrap:anywhere; }
.account-panel details { margin-top:20px; }
.account-panel summary { cursor:pointer; font-weight:700; }

.account-preferences { margin:24px 0; padding:20px; background:#edf3ee; border-radius:14px; }
.account-preferences fieldset { border:1px solid #b8cdcb; border-radius:10px; margin:16px 0; min-width:0; }
.account-preferences [data-preference-layers] { display:grid; grid-template-columns:repeat(auto-fit,minmax(150px,1fr)); gap:0 12px; }
.account-preferences [data-preference-warning]:not(:empty) { color:#824015; }

.claim-evidence{padding:16px 0;border-top:1px solid var(--border,#c5d8ce)}.claim-evidence h4{margin:0}.claim-evidence form{display:grid;gap:12px}.claim-evidence input[type=file]{width:100%;min-width:0;max-width:100%}.claim-evidence .submission-actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px}

.business-manager__profile{margin:16px 0;padding:16px;border:1px solid #c5d8ce;border-radius:12px}.business-manager__profile>summary{font-weight:700;cursor:pointer;min-height:32px}.business-manager__profile form{display:grid;gap:12px;margin:16px 0}.business-manager__profile p{white-space:pre-wrap;overflow-wrap:anywhere}.business-manager__profile  :is([data-profile-comparison],[data-contact-comparison])>div{border-bottom:1px solid #c5d8ce;padding:8px 0}.business-manager__profile  :is([data-profile-comparison],[data-contact-comparison])>div p:last-child{background:#eaf4ed;padding:12px;border-radius:8px}.business-manager__profile :is([data-profile-history],[data-contact-history]){max-height:260px;overflow:auto}.business-manager__profile textarea{width:100%;min-width:0;resize:vertical}

.community-drafts { margin-block: 1.25rem; min-width: 0; border-block: 1px solid var(--line, #dbe3df); padding-block: 1rem; }
.community-drafts ul { display: grid; gap: .5rem; padding: 0; list-style: none; }
.community-drafts li, .community-drafts button { overflow-wrap: anywhere; max-width: 100%; }
.community-drafts [data-draft-review] { padding: 1rem; border: 1px solid var(--line, #dbe3df); border-radius: .75rem; }
.community-drafts [data-draft-review-body] { white-space: pre-wrap; overflow-wrap: anywhere; }
.community-drafts input, .community-drafts select, .community-drafts textarea { min-width: 0; max-width: 100%; }

.account-panel .business-manager__header { top: 0; }

.community-drafts [data-draft-review] { scroll-margin-top: 100px; }

.community-publication { margin-block: 1rem; padding: 1rem; border: 1px solid var(--line, #dbe3df); border-radius: .75rem; min-width: 0; scroll-margin-top: 100px; }
.community-publication p { overflow-wrap: anywhere; }

.community-publication [data-publication-proposal], .community-publication [data-visibility-preview], .community-publication [data-edit-preview] { scroll-margin-top: 100px; }
.community-publication dl { display: grid; gap: .35rem; min-width: 0; }
.community-publication dt { font-weight: 650; }
.community-publication dd { margin: 0 0 .65rem; white-space: pre-wrap; overflow-wrap: anywhere; }

.community-publication [data-edit-confirmation] { margin-block-end: .75rem; }

/* Notice selectors share the catalogue state and resize with its controls. */
.notice-filters { display:flex; flex-wrap:wrap; align-items:end; gap:.6rem; min-width:0; }
.notice-filters[hidden], .notice-filters [hidden] { display:none; }
.notice-filters label { display:grid; gap:.2rem; flex:1 1 13rem; min-width:0; font-size:.8rem; }
.notice-filters select { width:100%; min-width:0; min-height:2.75rem; padding:.45rem; border:1px solid var(--border); border-radius:.5rem; background:var(--surface,#fff); color:inherit; font:inherit; }
.notice-filters small { flex:1 0 100%; }

@media (max-width:39.99rem) {
  .notice-filters { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); }
  .notice-filters button, .notice-filters small { grid-column:1/-1; }
  .notice-filters button { justify-self:start; }
}


/* === Navegación de producto y espacio personal === */
.product-layout.app-shell {
 display:grid;grid-template-columns:226px minmax(0,1fr);grid-template-rows:auto auto minmax(0,1fr);
 height:100dvh;min-height:0;overflow:hidden;background:#f6f5f0;
}
.product-layout > .product-nav {grid-column:1;grid-row:1 / -1;}
.product-layout > .topbar {grid-column:2;grid-row:1;}
.product-layout > .network-banner {grid-column:2;grid-row:2;position:static;}
.product-layout > main {
 grid-column:2;grid-row:3;min-width:0;min-height:0;height:auto;max-width:none;overflow:visible;padding:22px 28px 24px;
}
html[data-discovery-view] .product-layout .view--home {display:flex;flex-direction:column;min-height:0;height:100%;padding:0;}
.product-nav {
 display:flex;flex-direction:column;position:relative;z-index:1200;min-width:0;min-height:0;overflow:auto;
 padding:24px 16px 16px;background:#153e33;color:#eef2e4;border-right:1px solid #153e33;
}
.product-brand {display:flex;gap:10px;align-items:center;color:#fff8e2;text-decoration:none;margin:0 2px 24px;}
.product-brand > .icon {width:38px;height:42px;padding:7px;border:1px solid #8ea995;border-radius:13px;flex:none;}
.product-brand strong {font-size:25px;font-weight:750;line-height:1.2;letter-spacing:-.8px;white-space:nowrap;}
.product-brand small {display:block;margin-top:7px;font-size:11px;letter-spacing:1.6px;text-transform:uppercase;color:#c0d2c5;}
.product-nav__label {font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:1.6px;color:#b2cbbb;margin:12px 10px 10px;}
.product-nav__links {display:grid;gap:5px;}
.product-nav__links button {
 display:flex;align-items:center;gap:12px;min-height:46px;width:100%;padding:10px 12px;text-align:left;
 border:1px solid transparent;border-radius:11px;background:transparent;box-shadow:none;color:inherit;font-size:14px;font-weight:450;
}
.product-nav__links button .icon {width:19px;height:19px;flex:none;opacity:.9;}
.product-nav__links button small {display:block;font-size:10px;line-height:1.5;color:#bacdbc;}
.product-nav__links button:hover:not(:disabled) {background:#244c3f;}
.product-nav__links button[aria-current="page"] {background:#e4ebd7;color:#153e33;font-weight:650;}
.product-nav__links button[aria-current="page"] small {color:#4f6156;}
.product-nav__links button:disabled {opacity:.6;}
.product-nav__links button[hidden] {display:none;}
.product-nav__footer {margin-top:auto;padding:24px 8px 0;font-family:Georgia,serif;color:#c2cfb8;}
.product-nav__footer > p {font-size:15px;margin:0 0 10px;}
.product-nav .demo-ribbon {display:block;height:auto;min-height:0;position:static;padding:0;margin:0;border:0;background:none;color:#b8cabf;font:11px/1.6 var(--font-sans);text-align:left;}
.product-nav .demo-ribbon .icon {display:none;}
.product-nav__close,.product-menu-toggle,.product-nav-shade {display:none;}
.product-topbar.topbar {
 display:flex;align-items:center;gap:18px;padding:18px 28px;min-height:84px;height:auto;
 background:#f6f5f0;color:var(--ink-900);border-bottom:1px solid var(--border);box-shadow:none;z-index:900;
}
.product-territory {flex:0 1 220px;min-width:145px;}
.product-territory .sector-control {display:flex;align-items:center;min-width:0;width:100%;padding:0;gap:8px;box-shadow:none;border:0;background:transparent;}
.product-territory .sector-control > .icon {color:var(--green-700);width:20px;flex:none;}
.product-territory .sector-control select {background:transparent;width:100%;min-width:0;min-height:44px;border:0;box-shadow:none;padding:8px 20px 8px 0;font-size:14px;font-weight:650;text-overflow:ellipsis;}
.product-search {flex:1;min-width:0;}
.product-search .map-search {display:flex;position:static;width:100%;max-width:none;min-height:46px;margin:0;padding:0 10px 0 14px;box-shadow:none;border:1px solid #d9dfd2;border-radius:14px;background:#fffefa;gap:9px;}
.product-search .map-search input {height:44px;font-size:14px;min-width:0;}
.product-search .map-search__submit {width:34px;min-height:34px;height:34px;margin:0;padding:7px;border:0;border-radius:8px;background:#edf1e6;color:#265d4b;}
.product-search .map-search__clear {flex:none;}
.product-help {display:flex;align-items:center;gap:8px;min-height:44px;border:0;background:transparent;color:#385b49;font-size:14px;font-weight:600;padding:4px;}
.product-help .icon {width:18px;height:18px;}
.product-account {display:grid;place-items:center;width:38px;min-width:38px;min-height:40px;border:1px solid #d9dfd2;border-radius:11px;background:#edf1e6;color:#31553f;}
.product-account[hidden] {display:none;}
.product-account .icon {width:20px;height:20px;}
.product-topbar .simple-toggle {height:40px;min-height:40px;min-width:40px;padding:5px;border:1px solid var(--border);border-radius:9px;background:#eef0e7;color:#3c5747;box-shadow:none;}
.product-heading {display:flex;align-items:center;justify-content:space-between;gap:16px;flex:none;margin-bottom:22px;}
.product-heading .eyebrow {font-size:12px;letter-spacing:1.8px;margin:0 0 7px;color:#587064;}
.product-heading h1 {font:normal clamp(25px,2.4vw,34px)/1.2 Georgia,serif;color:#203e36;margin:0;}
.product-heading__actions {display:flex;gap:4px;padding:4px;background:#e8ecdf;border:1px solid var(--border);border-radius:13px;}
.product-heading__actions button {display:flex;align-items:center;gap:7px;border:0;border-radius:9px;padding:9px 13px;min-height:42px;color:#3c5b49;background:transparent;font-size:14px;font-weight:600;white-space:nowrap;}
.product-heading__actions button:first-child {background:#fffefa;box-shadow:0 1px 4px #173e3309;}
.product-heading__actions .icon {width:18px;height:18px;}
html[data-discovery-view] .product-layout .map-workspace,
html[data-simple-mode="true"] .product-layout .map-workspace {
 flex:1;height:auto;min-height:0;grid-template-columns:minmax(0,1fr);grid-template-rows:auto minmax(0,1fr);
 grid-template-areas:"controls" "map";gap:0;border:1px solid #d6dfce;border-radius:18px;background:#fffefa;
}
html[data-discovery-view="list"] .product-layout .map-workspace {grid-template-areas:"controls" "results";}
.product-layout #browse-controls {display:flex;flex-direction:column;align-items:stretch;padding:10px 14px;gap:0;background:#fffefa;border-bottom:1px solid #e0e4dc;border-radius:18px 18px 0 0;}
.product-filter-bar {display:flex;align-items:center;gap:12px;min-width:0;width:100%;flex:none;}
.product-filter-bar > .layer-picker {flex:1;min-width:0;}
.product-layout .layer-picker__heading {position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;}
.product-layout #layer-options {padding:0;gap:6px;scrollbar-width:thin;}
.product-layout #browse-controls .topic-button {min-height:42px;padding:8px 11px;border:1px solid transparent;background:#f0f1e9;color:#526756;font-size:13px;border-radius:10px;}
.product-layout #browse-controls .topic-button[aria-pressed="true"] {background:#e9efdd;border-color:#d6e1bd;color:#31533e;box-shadow:none;}
.product-layout #browse-controls .topic-button .icon {width:16px;height:16px;}
.product-layout #browse-controls .topic-button[hidden],
.product-layout #browse-controls .discovery-shortcut[hidden],
.product-layout #browse-controls .layer-separator[hidden] {display:none!important;}
.product-more-filters {display:flex;align-items:center;gap:7px;flex:none;border:0;background:none;min-height:44px;padding:6px;color:#28483a;font-size:13px;font-weight:650;white-space:nowrap;}
.product-more-filters .icon {width:17px;height:17px;}
.product-layout .browse-view-controls {background:#f0f2e9;padding:3px;border-radius:10px;gap:2px;margin:0;}
.product-layout .browse-view-controls button {border:0;background:transparent;min-height:36px;font-size:12px;padding:6px 10px;}
.product-layout .browse-view-controls button[aria-pressed="true"] {background:#fffefa;color:#265d4b;box-shadow:0 1px 4px #16332d0a;}
.product-extra-filters {padding-top:12px;margin-top:10px;border-top:1px solid var(--border);}
.product-extra-filters[hidden] {display:none!important;}
.product-extra-filters .notice-filters {margin-bottom:8px;}
html[data-discovery-view="map"] .product-layout #results-panel,
html[data-discovery-view="list"] .product-layout #map-panel {display:none!important;}
html[data-discovery-view="map"] .product-layout #map-panel {display:block;visibility:visible;min-height:0;height:100%;border-radius:0 0 17px 17px;overflow:hidden;}
html[data-discovery-view="list"] .product-layout #results-panel {display:block;visibility:visible;height:100%;min-height:0;border:0;border-radius:0 0 17px 17px;background:#fafbf6;overflow:auto;}
.product-layout #catalog-results {grid-template-columns:repeat(auto-fit,minmax(min(100%,19rem),1fr));align-items:start;gap:14px;}
.product-layout #catalog-results > .empty-state {grid-column:1/-1;}
.product-layout .catalog-card {box-shadow:0 3px 14px #173e3309;border-color:#dce3d7;}
.product-layout .results-intro {font-size:13px;}
.product-layout .mobile-dock {display:none;}
.product-layout .map-canvas {background:#d8e8dc;}
.product-layout .leaflet-control-zoom {border:1px solid #dce3d7!important;box-shadow:0 3px 16px #173e3310!important;border-radius:12px;overflow:hidden;}
.product-layout .map-results-button {background:#fffefa;color:#254c3c;border:1px solid #d5dece;box-shadow:0 2px 8px #173e3310;font-size:13px;}
.product-help-dialog {width:min(38rem,calc(100% - 2rem));max-height:85dvh;overflow:auto;padding:24px;border:1px solid var(--border);border-radius:18px;background:var(--offwhite);color:var(--ink-900);}
.product-help-dialog header {display:flex;align-items:center;justify-content:space-between;gap:14px;}
.product-help-dialog h2 {font:normal 26px Georgia,serif;margin:0;}
.product-help-dialog header button {padding:8px;border:0;background:var(--green-050);border-radius:9px;min-height:44px;min-width:44px;}
.product-help-dialog::backdrop {background:var(--overlay);}
.space-shortcuts {display:grid;grid-template-columns:repeat(auto-fit,minmax(110px,1fr));gap:10px;margin:0 0 24px;}
.space-shortcuts button {min-height:72px;padding:14px 10px;border:1px solid #dce3d3;border-radius:12px;background:#edf1e5;color:#284c3b;font-weight:600;font-size:14px;}
#account-panel #account-title {font:normal 30px Georgia,serif;}
#account-panel .account-preferences,#account-panel .community-drafts,#account-panel [data-account-businesses-section] {scroll-margin-top:80px;}
@media (max-width:67.99rem) {
 .product-layout.app-shell {grid-template-columns:minmax(0,1fr);grid-template-rows:auto auto minmax(0,1fr) auto;}
 .product-layout > .topbar,.product-layout > .network-banner,.product-layout > main {grid-column:1;}
 .product-layout > .product-nav {position:fixed;inset:0 auto 0 0;width:min(300px,85vw);height:100dvh;grid-row:auto;transform:translateX(-105%);visibility:hidden;z-index:2100;box-shadow:10px 0 30px #153e331f;}
 .product-layout > .product-nav.is-open {transform:translateX(0);visibility:visible;}
 .product-nav__close {display:grid;place-items:center;position:absolute;right:9px;top:9px;width:36px;height:36px;border:0;background:transparent;color:#e7eddf;}
 .product-nav-shade:not([hidden]) {display:block;position:fixed;inset:0;width:100%;height:100%;background:#173e3359;border:0;z-index:2000;}
 .product-menu-toggle {display:grid;place-items:center;width:40px;min-height:44px;flex:none;border:0;background:none;color:#265d4b;}
 .product-topbar.topbar {padding:12px 18px;gap:12px;min-height:72px;}
 .product-territory {flex-basis:180px;min-width:120px;}
 .product-layout > main {padding:18px;}
 .product-layout .mobile-dock {display:grid;position:static;grid-column:1;grid-row:4;grid-template-columns:repeat(4,minmax(0,1fr));height:auto;min-height:60px;padding:4px 8px max(4px,env(safe-area-inset-bottom));border-top:1px solid var(--border);background:#fffefa;box-shadow:none;}
 .product-layout .mobile-dock > * {display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;min-height:48px;height:auto;border:0;border-radius:8px;background:transparent;font-size:11px;color:#4f6156;padding:4px;text-decoration:none;}
 .product-layout .mobile-dock > [aria-pressed="true"] {color:#265d4b;background:#edf1e5;}
 .product-layout .mobile-dock .icon {width:20px;height:20px;}
 .product-layout .mobile-dock__search-icon {background:none;padding:0;border:0;width:auto;height:auto;box-shadow:none;}
}
@media (max-width:39.99rem) {
 .product-topbar.topbar {display:grid;grid-template-columns:36px minmax(0,1fr) 36px 36px 36px;padding:8px 14px;gap:7px;min-height:0;}
 .product-territory {grid-column:2;min-width:0;}
 .product-search {grid-column:1/-1;grid-row:2;}
 .product-help {grid-column:3;grid-row:1;justify-content:center;}
 .product-help span {display:none;}
 .product-topbar .simple-toggle {grid-column:4;grid-row:1;}
 .product-account {grid-column:5;grid-row:1;min-width:34px;width:34px;}
 .product-layout > main {padding:15px 12px 12px;}
 .product-heading {margin-bottom:14px;gap:8px;}
 .product-heading h1 {font-size:24px;}
 .product-heading .eyebrow {font-size:9px;letter-spacing:1.3px;}
 .product-heading__actions {gap:0;padding:3px;align-self:center;}
 .product-heading__actions button {min-height:40px;padding:7px;font-size:12px;}
 .product-heading__actions button:last-child {display:none;}
 .product-filter-bar {flex-wrap:wrap;gap:6px;}
 .product-filter-bar > .layer-picker {flex-basis:100%;width:100%;}
 .product-more-filters {margin-right:auto;font-size:12px;}
 .product-layout #browse-controls {padding:8px 10px;}
 .product-layout #browse-controls .topic-button {min-height:40px;font-size:12px;padding:6px 9px;}
 .product-layout .browse-view-controls button {min-height:34px;}
 .product-layout #results-panel {padding:14px;}
 .space-shortcuts {grid-template-columns:repeat(2,minmax(0,1fr));gap:7px;}
 .space-shortcuts button {min-height:58px;font-size:13px;}
}

/* Private notification inbox, within the v08 personal space. */
.product-notifications {display:grid;place-items:center;flex:none;min-width:38px;width:38px;min-height:40px;border:1px solid #d9dfd2;border-radius:11px;background:#fffefa;color:#31553f;}
.product-notifications[hidden] {display:none;}
.product-notifications .icon {width:21px;height:21px;}
.product-nav-help {color:#dbe8df;background:none;border:0;padding:8px 0;font:inherit;text-align:left;cursor:pointer;}
.account-notifications {margin-bottom:28px;padding:22px;border:1px solid #dce3d3;border-radius:16px;background:#fffefa;scroll-margin-top:16px;min-width:0;}
.inbox-heading {display:flex;align-items:center;justify-content:space-between;gap:12px;}
.inbox-heading .eyebrow {margin:0;font-size:11px;letter-spacing:1.5px;color:#587064;}
.inbox-heading h3 {margin:6px 0;font:normal 27px/1.2 Georgia,serif;color:#203e36;}
.inbox-list,[data-notice-preferences] {list-style:none;padding:0;display:grid;gap:12px;}
.inbox-list > li {display:grid;gap:9px;padding:17px;border:1px solid #dce3d3;border-left:4px solid #527853;border-radius:12px;background:#f1f5ea;overflow-wrap:anywhere;}
.inbox-list > li[data-notice-read="true"] {border-left-color:#dce3d3;background:#fffefa;}
.inbox-list > li > strong {font-size:17px;color:#243c34;}
.inbox-list > li > p {margin:0;font-size:13px;color:#536558;}
.inbox-badge {font-size:11px;font-weight:700;letter-spacing:.4px;color:#37623f;}
.inbox-settings {border-top:1px solid #e0e4dc;padding-top:17px;margin-top:22px;}
.inbox-settings > summary {font-weight:650;cursor:pointer;min-height:34px;}
.inbox-settings form {display:grid;gap:13px;}
.inbox-settings [data-notice-preferences] > li {border-bottom:1px solid #e0e4dc;padding:12px 0;}
@media (max-width:39.99rem) {
 .product-topbar .product-help {display:none;}
 .product-notifications {grid-column:3;grid-row:1;min-width:34px;width:34px;}
 .account-notifications {padding:14px;}
 .inbox-heading {align-items:flex-start;}
 .inbox-heading h3 {font-size:24px;}
 .inbox-list > li {padding:13px;}
}

.account-panel [data-account-home] {border:0;padding:0;margin:0;min-width:0;}

.product-brand > span {min-width:0;}
.product-brand strong {white-space:normal;overflow-wrap:anywhere;}
.product-layout #simple-mode-toggle[aria-pressed="true"] {background:#265d4b;color:white;border-color:#265d4b;}
/* Keep a useful canvas when desktop chrome, larger type or wrapping filters
   consume a short viewport. Let the page scroll instead of compressing the map. */
@media (min-width:68rem) and (max-height:50rem) {
 .product-layout.app-shell {height:auto;min-height:100dvh;overflow:visible;}
 .product-layout > main {min-height:40rem;}
 .product-nav {max-height:100dvh;position:sticky;top:0;}
}

/* Personal-space hub follows the v08 page, using existing account tools. */
html[data-product-page]:not([data-product-page="map"]) .product-layout > main {overflow:auto;overscroll-behavior:contain;}
html[data-product-page]:not([data-product-page="map"]) .product-layout .view--home {display:none;}
.personal-space[hidden] {display:none;}
.personal-space {max-width:1440px;margin:0 auto;padding:5px 0 26px;color:#243c34;}
.personal-space button {font-family:var(--font-sans);cursor:pointer;}
.space-page-heading {display:flex;justify-content:space-between;align-items:center;gap:24px;margin-bottom:24px;}
.personal-space .eyebrow {font-size:12px;letter-spacing:1.5px;font-weight:700;color:#587064;margin:0 0 10px;}
.space-page-heading h1 {font:750 clamp(25px,2.4vw,33px)/1.2 var(--font-sans);margin:0 0 13px;color:#243c34;}
.space-page-heading p:not(.eyebrow) {font-size:14px;line-height:1.6;margin:0;color:#5b6e60;}
.space-page-heading > button,.space-section-heading button {border:1px solid #dce3d3;background:#fffefa;color:#2b4a39;border-radius:10px;padding:12px 16px;font-weight:650;white-space:nowrap;min-height:44px;}
.space-overview {display:grid;grid-template-columns:1.6fr 1fr 1fr;gap:16px;margin-bottom:26px;}
.space-welcome,.space-stat {position:relative;border:1px solid #dce3d3;border-radius:19px;padding:25px;min-width:0;overflow:hidden;}
.space-welcome {background:#e5ecd8;}
.space-welcome h2 {font:normal 28px/1.35 Georgia,serif;color:#3d5f40;margin:14px 0 15px;}
.space-welcome p:not(.eyebrow) {font-size:14px;line-height:1.65;color:#5d7758;position:relative;z-index:1;}
.space-welcome > span {font-size:11px;text-transform:uppercase;letter-spacing:1px;color:#657d5d;position:relative;z-index:1;}
.space-welcome > .icon {position:absolute;width:120px;height:150px;bottom:-20px;right:-10px;color:#b6c7a5;opacity:.45;transform:rotate(-8deg);}
.space-stat {display:flex;flex-direction:column;text-align:left;align-items:flex-start;gap:12px;background:#fffefa;color:#244339;cursor:pointer;}
.space-stat > .icon {flex:none;width:43px;height:43px;padding:11px;border-radius:13px;background:#e6eef0;color:#417785;}
.space-stat > strong {font:normal 42px/1.15 Georgia,serif;min-height:49px;}
.space-stat > span {font-size:15px;font-weight:650;}
.space-stat > small {font-size:12px;line-height:1.5;color:#617466;}
.space-section-heading {display:flex;align-items:center;justify-content:space-between;gap:12px;}
.space-section-heading h2,.space-planned h2 {font:700 20px/1.4 var(--font-sans);margin:0;}
[data-space-status] {color:#5b6e60;min-height:1.5em;font-size:13px;line-height:1.6;}
.space-tools {display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin:15px 0 25px;}
.space-tool {display:flex;align-items:flex-start;gap:14px;text-align:left;border:1px solid #dce3d3;border-radius:16px;background:#fffefa;color:#243c34;padding:20px;min-width:0;}
.space-tool > .icon {width:40px;height:40px;flex:none;background:#e6eef0;color:#4c7c86;padding:10px;border-radius:11px;}
.space-tool > span:not(:last-child) {min-width:0;flex:1;}
.space-tool strong {display:block;font-size:15px;line-height:1.4;margin:2px 0 9px;}
.space-tool small {display:block;font-size:13px;line-height:1.65;color:#617466;}
.space-tool > span:last-child {font-size:18px;}
.space-tool:hover:not(:disabled),.space-stat:hover:not(:disabled) {border-color:#769574;background:#f4f7ec;}
.personal-space button:disabled {cursor:default;opacity:.65;}
.space-planned {border-top:1px solid #dce3d3;padding-top:24px;color:#5b6e60;}
.space-planned h2 {font-size:16px;}
.space-planned p {font-size:13px;line-height:1.6;}
.space-planned ul {display:flex;flex-wrap:wrap;gap:8px;list-style:none;padding:0;}
.space-planned li {padding:7px 11px;border-radius:9px;background:#e9eddf;font-size:12px;}
.product-nav-help {font-family:var(--font-sans);}
@media(max-width:74rem) {.space-tools {grid-template-columns:repeat(2,minmax(0,1fr));}.space-overview {grid-template-columns:1.2fr 1fr 1fr;gap:12px;}.space-welcome,.space-stat {padding:20px;}}
@media(max-width:47.99rem) {
 .space-page-heading {align-items:flex-start;gap:12px;flex-direction:column;}.space-page-heading h1 {font-size:27px;}
 .space-overview {grid-template-columns:repeat(2,minmax(0,1fr));}.space-welcome {grid-column:1/-1;}.space-welcome h2 {font-size:26px;}
 .space-stat {padding:17px;gap:9px;}.space-stat > strong {font-size:34px;min-height:40px;}.space-stat > small {font-size:11px;}
 .space-tools {gap:10px;}.space-tool {padding:15px;gap:10px;}.space-tool > .icon {width:34px;height:34px;padding:8px;}.space-tool > span:last-child {display:none;}
}
@media(max-width:29.99rem) {.space-tools {grid-template-columns:1fr;}.space-tool {padding:17px;}.space-page-heading {margin-bottom:20px;}.space-stat > span {font-size:13px;}}

.product-layout .mobile-dock > [aria-current="page"] {color:#265d4b;background:#edf1e5;}

/* Virtual plaza: original v08 scene; room content comes from map configuration. */
.plaza-page {max-width:1480px;margin:auto;padding:4px 0 28px;color:#243c34;}
.plaza-page .eyebrow {font-size:11px;letter-spacing:1.5px;font-weight:700;color:#587064;margin:0 0 12px;}
.plaza-heading {display:flex;align-items:center;justify-content:space-between;gap:24px;margin-bottom:24px;}
.plaza-heading h1 {font:750 clamp(28px,2.7vw,39px)/1.2 var(--font-sans);margin:0 0 12px;}
.plaza-heading p:not(.eyebrow) {font-size:14px;line-height:1.7;color:#647465;margin:0;max-width:640px;}
.plaza-page button {font:600 13px var(--font-sans);cursor:pointer;}
.plaza-heading > button,.plaza-canvas-card button,.plaza-room-actions button {min-height:44px;padding:10px 14px;border:1px solid #d9e0d0;border-radius:10px;background:#fffefa;color:#2b503e;}
.plaza-subnav {display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:18px;flex-wrap:wrap;}
.plaza-view-switch {display:flex;gap:3px;border:1px solid #dce3d3;border-radius:12px;background:#edf0e5;padding:4px;}
.plaza-view-switch button {padding:9px 12px;min-height:40px;border:0;background:none;border-radius:8px;color:#526b58;}
.plaza-view-switch button[aria-pressed="true"] {background:#fffefa;color:#234b39;box-shadow:0 2px 4px #183e3310;}
[data-plaza-scope] {font-size:12px;color:#637764;}
.plaza-layout {display:grid;grid-template-columns:minmax(0,1.85fr) minmax(280px,.85fr);gap:18px;align-items:start;}
.plaza-layout.is-list {grid-template-columns:minmax(0,1fr);}
.plaza-layout.is-list .plaza-room-list {grid-template-columns:repeat(auto-fit,minmax(230px,1fr));}
.plaza-canvas-card,.plaza-welcome {min-width:0;border:1px solid #d8e0cd;border-radius:18px;background:#fffefa;overflow:hidden;}
.plaza-canvas-card > header {display:flex;align-items:center;justify-content:space-between;gap:10px;padding:12px 16px;}
.plaza-canvas-card > header strong {font-size:13px;color:#3c6044;}
.plaza-canvas-card > header button {min-height:38px;padding:7px 12px;}
.plaza-stage {position:relative;isolation:isolate;width:100%;aspect-ratio:1000/680;background:#cee0bd;overflow:hidden;}
.plaza-art {display:block;width:100%;height:100%;pointer-events:none;user-select:none;}
.plaza-stage::after {content:"";position:absolute;inset:0;pointer-events:none;z-index:1;transition:background .25s;}
.plaza-stage[data-ambience="evening"]::after {background:linear-gradient(145deg,#e8a26733,#c784734d);}
.plaza-stage[data-ambience="night"]::after {background:linear-gradient(145deg,#233c6b77,#123e3966);}
.plaza-scene-stamp {position:absolute;left:4%;top:4%;z-index:2;pointer-events:none;font-size:9px;font-weight:700;letter-spacing:2px;color:#486950;}
.plaza-stage[data-ambience="night"] .plaza-scene-stamp {color:#edf3df;}
.plaza-zone {width:max-content;position:absolute;z-index:3;transform:translate(-50%,-50%);display:flex;align-items:center;gap:9px;max-width:190px;min-height:46px;padding:10px 12px;border:1px solid #dde3cb;border-radius:13px;background:#fffef3f2;color:#284534;text-decoration:none;box-shadow:0 4px 12px #3c573123;}
.plaza-zone > .icon {flex:none;width:24px;height:24px;color:#4e7653;}
.plaza-zone strong {display:block;font-size:13px;line-height:1.3;}
.plaza-zone small {display:block;margin-top:3px;font-size:10px;line-height:1.3;color:#698062;}
.plaza-zone:hover,.plaza-zone[aria-current] {background:#f7f3d7;border-color:#9ca875;box-shadow:0 4px 14px #37573436;}
.plaza-self {position:absolute;z-index:4;width:42px;pointer-events:none;transform:translate(-50%,-84%);transition:left .18s ease,top .18s ease;}
.plaza-self svg {display:block;width:100%;height:auto;}
.plaza-self span {display:block;text-align:center;font-size:10px;font-weight:650;color:#294832;background:#fffef3;border:1px solid #cad7bc;border-radius:6px;padding:3px;}
.plaza-canvas-card > footer {display:flex;gap:14px;align-items:center;justify-content:space-between;padding:14px 16px;}
.plaza-canvas-card > footer p {font-size:11px;line-height:1.6;color:#657962;max-width:300px;margin:0;}
.plaza-canvas-card > footer button {flex:none;}
.plaza-canvas-card button[aria-pressed="true"] {background:#265d4b;color:#fff;border-color:#265d4b;}
.plaza-welcome {padding:24px;}
.plaza-welcome h2 {font:normal 29px/1.2 Georgia,serif;margin:0 0 14px;color:#2a5039;overflow-wrap:anywhere;}
.plaza-welcome > p:not(.eyebrow) {font-size:13px;line-height:1.7;color:#61735f;}
.plaza-room-list {display:grid;gap:10px;margin:20px 0;}
.plaza-room-entry {display:flex;align-items:center;gap:12px;min-width:0;min-height:66px;padding:13px;border:1px solid #dce3d3;border-radius:12px;text-decoration:none;color:#304e39;background:#fafbf5;}
.plaza-room-entry > .icon {flex:none;width:24px;height:24px;color:#638469;}
.plaza-room-entry strong {display:block;font-size:14px;line-height:1.4;}
.plaza-room-entry small {display:block;margin-top:4px;font-size:11px;line-height:1.5;color:#6b7b65;}
.plaza-room-entry[aria-current],.plaza-room-entry:hover {background:#eaf0df;border-color:#aebe9d;}
.plaza-conversation-note {padding:14px 0;border-top:1px solid #e1e7d7;}
.plaza-room-actions {display:flex;gap:8px;flex-wrap:wrap;}
.plaza-room-actions button:first-child {background:#265d4b;color:#fff;border-color:#265d4b;}
.plaza-page button:disabled {opacity:.5;cursor:default;}
.plaza-room-link {display:grid;gap:8px;font-size:12px;margin-top:16px;}
.plaza-room-link input {min-width:0;width:100%;min-height:44px;padding:10px;border:1px solid #cdd9c3;border-radius:8px;font:12px var(--font-sans);}
[data-plaza-status] {font-size:12px;line-height:1.6;color:#456646;}
.plaza-unavailable {padding:22px;border:1px solid #dce3d3;border-radius:14px;background:#fffefa;line-height:1.7;}
.plaza-page[hidden],.plaza-page [hidden] {display:none!important;}
@media(max-width:59.99rem){
 .plaza-layout {grid-template-columns:minmax(0,1fr);}
 .plaza-welcome {padding:22px;}
 .plaza-room-list {grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;}
 .plaza-room-entry {align-items:flex-start;}
 .plaza-heading {align-items:flex-start;}
}
@media(max-width:39.99rem){
 .plaza-heading {flex-direction:column;gap:16px;margin-bottom:20px;}
 .plaza-heading h1 {font-size:28px;}
 .plaza-heading p:not(.eyebrow) {font-size:13px;}
 .plaza-page .eyebrow {font-size:9px;line-height:1.7;letter-spacing:1px;}
 .plaza-zone {padding:8px;gap:5px;max-width:105px;min-height:44px;border-radius:10px;}
 .plaza-zone > .icon {width:18px;height:18px;}
 .plaza-zone strong {font-size:11px;}
 .plaza-zone small {display:none;}
 .plaza-scene-stamp {font-size:7px;letter-spacing:1px;}
 .plaza-self {width:32px;}
 .plaza-canvas-card > header {padding:10px 12px;}
 .plaza-canvas-card > footer {padding:12px;align-items:flex-start;flex-direction:column;gap:9px;}
 .plaza-welcome {padding:19px;}
 .plaza-room-list {grid-template-columns:minmax(0,1fr);}
 .plaza-room-entry {min-height:62px;}
 .plaza-subnav {gap:10px;}
 .plaza-view-switch button {font-size:12px;padding:8px 10px;}
}
@media(prefers-reduced-motion:reduce){.plaza-self,.plaza-stage::after {transition:none;}}

/* Memoria v08: the same illustrated reading experience, fed by the city catalog. */
.memory-page {max-width:1480px;margin:auto;padding:4px 0 26px;color:#243f35;}
.memory-page[hidden] {display:none;}
.memory-page .eyebrow {font-size:11px;line-height:1.5;font-weight:700;letter-spacing:1.2px;margin:0 0 10px;color:#607060;}
.memory-page button,.memory-button {font:600 13px var(--font-sans);cursor:pointer;min-height:44px;}
.memory-page a {color:#265b49;}
.memory-heading {display:flex;gap:20px;justify-content:space-between;align-items:center;}
.memory-heading h1 {font:normal clamp(28px,2.6vw,38px)/1.2 Georgia,serif;margin:0 0 12px;}
.memory-mode {display:flex;gap:3px;background:#e9eddf;border:1px solid #dce2d2;padding:4px;border-radius:12px;flex:none;}
.memory-mode button {border:0;border-radius:8px;padding:9px 13px;background:transparent;color:#496453;}
.memory-mode button[aria-pressed="true"] {background:#fffefa;color:#204837;box-shadow:0 1px 4px #1f40351a;}
.memory-nav {display:flex;gap:12px;margin:20px 0 14px;flex-wrap:wrap;border-bottom:1px solid #d7dfce;}
.memory-nav a {min-height:44px;display:flex;align-items:center;padding:10px 8px;border-bottom:2px solid transparent;text-decoration:none;font-size:13px;}
.memory-nav a.is-current {border-color:#35674f;font-weight:700;}
.memory-preview {background:#f0eee0;border-left:3px solid #c1ae72;border-radius:5px;padding:10px 13px;color:#6b6548;font-size:12px;line-height:1.6;margin:0 0 20px;}
.memory-hero {position:relative;isolation:isolate;border-radius:23px;overflow:hidden;min-height:400px;background:#193e3b;margin-bottom:30px;}
.memory-hero-art {position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:-2;}
.memory-hero-shade {position:absolute;inset:0;z-index:-1;background:linear-gradient(90deg,#123b3de8,#123b3da3 45%,#123b3d08 85%);}
.memory-hero-copy {padding:39px;max-width:650px;color:#fff7e0;}
.memory-hero-copy .eyebrow {color:#e8d5a1;}
.memory-hero-copy h2 {color:#fff7e0;font:normal clamp(27px,2.7vw,39px)/1.2 Georgia,serif;white-space:pre-line;margin:24px 0 20px;}
.memory-hero-copy > p:not(.eyebrow) {font-size:14px;line-height:1.7;max-width:485px;margin:0 0 24px;}
.memory-hero-copy > small {display:block;margin-top:18px;font-size:12px;color:#d5dcc8;}
.memory-button {display:inline-flex;gap:10px;align-items:center;justify-content:center;min-height:44px;padding:11px 17px;border:1px solid #d9dfcc;border-radius:11px;background:#fffdf4;color:#244c3a;text-decoration:none;}
.memory-page .memory-gold {background:#edcd8b;color:#274637;border-color:#edcd8b;}
.memory-button .icon {width:17px;height:17px;flex:none;}
.memory-hero-caption {position:absolute;right:20px;bottom:17px;color:#e9ecd6;background:#163c398a;border-radius:22px;padding:9px 12px;font-size:11px;}
.memory-section-heading {display:flex;gap:20px;align-items:end;justify-content:space-between;margin:0 0 18px;}
.memory-section-heading h2 {font:normal 27px/1.2 Georgia,serif;margin:0;}
.memory-section-heading > span {font-size:12px;color:#677767;}
.memory-filters {display:flex;gap:8px;flex-wrap:wrap;margin-bottom:24px;}
.memory-filters button {border:1px solid #dfe3d3;background:#fffdf6;padding:9px 13px;border-radius:25px;color:#546b59;font-weight:400;}
.memory-filters button[aria-pressed="true"] {color:#fff;background:#265746;border-color:#265746;}
.memory-cards {display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;margin-bottom:24px;}
.memory-card {min-width:0;display:flex;flex-direction:column;border:1px solid #dce2cf;border-radius:17px;background:#fffdf5;overflow:hidden;}
.memory-card-art {display:block;position:relative;height:165px;background:#497567;}
.memory-card-art img {width:100%;height:100%;object-fit:cover;}
.memory-card-number {position:absolute;top:12px;left:14px;font:normal 22px Georgia,serif;color:#ffedbe;}
.memory-card-kind {position:absolute;bottom:12px;left:11px;right:11px;width:fit-content;max-width:calc(100% - 22px);padding:5px 8px;border-radius:18px;background:#eef0ddeb;color:#405c43;font-size:12px;font-weight:700;line-height:1.4;}
.memory-card > div {padding:20px 16px;display:flex;flex-direction:column;flex:1;}
.memory-card h3 {font:normal 23px/1.3 Georgia,serif;margin:0 0 12px;overflow-wrap:anywhere;}
.memory-card h3 a {text-decoration:none;}
.memory-card > div > p:not(.eyebrow) {font-size:13px;line-height:1.7;color:#697663;margin:0 0 20px;}
.memory-card .eyebrow {font-size:10px;}
.memory-card-open {display:block;margin-top:auto;padding:10px 0;font-size:12px;font-weight:700;text-decoration:none;min-height:44px;}
.memory-card small {font-size:12px;color:#6b7863;}
.memory-context {border:1px solid #dce2d0;border-radius:12px;padding:13px 16px;background:#fafaf1;margin:16px 0;line-height:1.7;}
.memory-context summary {min-height:32px;font-size:13px;font-weight:650;cursor:pointer;}
.memory-context p {font-size:13px;line-height:1.8;}
.memory-context button,.memory-document > button,.memory-empty button {border:1px solid #d4ddc6;background:#fffdf6;border-radius:9px;padding:10px 13px;color:#2c563f;}
.memory-context .memory-context {background:#fffdf6;}
.memory-intro {max-width:850px;margin:24px 0;}
.memory-intro h2 {font:normal 29px/1.3 Georgia,serif;}
.memory-intro p {font-size:14px;line-height:1.8;color:#63745e;}
.memory-source-grid {display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;}
.memory-source {border:1px solid #dce2d0;border-radius:12px;padding:17px;min-width:0;background:#fffdf6;overflow-wrap:anywhere;margin:12px 0;}
.memory-source > a {display:flex;align-items:center;gap:9px;font-size:14px;font-weight:700;min-height:44px;}
.memory-source .icon {width:18px;height:18px;flex:none;}
.memory-source p {font-size:13px;line-height:1.8;color:#60715c;}
.memory-source small {display:block;font-size:11px;line-height:1.7;color:#6e7865;margin-top:8px;}
.memory-timeline {max-width:1000px;}
.memory-timeline > article {display:grid;grid-template-columns:90px minmax(0,1fr);gap:18px;margin:20px 0;}
.memory-timeline > article > strong {font:normal 29px Georgia,serif;padding-top:22px;}
.memory-timeline > article > div {padding:22px;background:#fffdf6;border:1px solid #dce2d0;border-radius:15px;}
.memory-timeline h3 {font:normal 25px Georgia,serif;margin:0 0 12px;}
.memory-timeline p {font-size:14px;line-height:1.7;}
.memory-glossary {display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:15px;}
.memory-glossary > div {background:#fffdf6;padding:21px;border:1px solid #dce2d0;border-radius:14px;}
.memory-glossary dt {font:normal 24px Georgia,serif;margin-bottom:12px;}
.memory-glossary dd {margin:0;font-size:14px;line-height:1.8;color:#64745e;}
.memory-reader-heading {display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:12px;font-size:12px;margin-top:24px;}
.memory-reader-heading > span {color:#657660;}
.memory-reader-heading button {border:1px solid #dce2d0;border-radius:9px;background:#fffdf6;color:#36583f;padding:9px 13px;}
.memory-story-title {font:normal 29px/1.3 Georgia,serif;margin:18px 0 23px;}
.memory-reader {display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,1fr);align-items:start;gap:25px;}
.memory-reader.is-plain {grid-template-columns:minmax(0,850px);justify-content:center;}
.memory-scene-art {position:relative;border-radius:17px;overflow:hidden;background:#395f54;aspect-ratio:2/1;}
.memory-scene-art > img {width:100%;height:100%;object-fit:cover;}
.memory-scene-art > span {position:absolute;bottom:0;left:0;right:0;font-size:10px;line-height:1.5;padding:8px 11px;background:#214638cf;color:#fff4cf;}
.memory-hotspots button {position:absolute;transform:translate(-50%,-50%);width:44px;height:44px;border:2px solid #fff4d2;border-radius:50%;background:#edce81;color:#294a36;box-shadow:0 0 0 5px #ffefb84a;font-size:16px;}
.memory-narrative {min-width:0;}
.memory-narrative h3 {font:normal clamp(25px,2.1vw,31px)/1.3 Georgia,serif;margin:0 0 18px;}
.memory-story-text {font-size:17px;line-height:1.95;color:#425a45;white-space:pre-line;}
.memory-fact {padding:16px;border-left:3px solid #9aae75;border-radius:5px;background:#eaf0db;}
.memory-fact strong {font-size:11px;text-transform:uppercase;letter-spacing:1px;}
.memory-fact p {font-size:13px;line-height:1.8;margin:10px 0 0;}
.memory-reflection {font-size:12px;line-height:1.8;color:#6b7963;}
.memory-discoveries {display:grid;gap:10px;margin:22px 0;}
.memory-discovery {padding:13px 16px;border:1px solid #dce2d0;border-radius:11px;background:#fffdf6;}
.memory-discovery > summary {font-weight:650;font-size:13px;min-height:32px;cursor:pointer;}
.memory-discovery > p {font-size:14px;line-height:1.8;color:#526c50;}
.memory-discovery > small {font-size:11px;color:#6b7863;}
.memory-quiz,.memory-branch {padding:22px;border:1px solid #dce2d0;border-radius:16px;background:#eef1e1;margin:22px 0;}
.memory-quiz h3,.memory-branch h3 {font:normal 24px/1.4 Georgia,serif;margin:0 0 18px;}
.memory-quiz > div,.memory-branch > div {display:flex;gap:9px;flex-wrap:wrap;}
.memory-quiz button,.memory-branch button {border:1px solid #cfd9bd;background:#fffdf6;padding:12px 15px;border-radius:10px;text-align:left;color:#31563c;}
.memory-quiz button[aria-pressed="true"],.memory-branch button[aria-pressed="true"] {background:#2c5d47;border-color:#2c5d47;color:#fff;}
.memory-quiz [role="status"] {font-size:14px;line-height:1.8;margin-bottom:0;}
.memory-reader-pagination {display:flex;align-items:center;justify-content:space-between;gap:16px;margin:25px 0;flex-wrap:wrap;}
.memory-reader-pagination > span {font-size:12px;color:#6a7862;}
.memory-document {border:1px solid #dce2d0;border-radius:13px;padding:16px;margin:20px 0;}
.memory-document > p {font-size:12px;line-height:1.8;color:#6b7862;}
.memory-transcript p {font-size:16px;line-height:1.9;white-space:pre-line;}
.memory-footer {border-top:1px solid #dce2d0;margin-top:32px;padding:22px 0;color:#718066;font-size:12px;line-height:1.8;}
.memory-footer small {display:block;font-size:11px;}
.memory-empty {padding:28px;border:1px solid #dce2d0;border-radius:15px;background:#fffdf6;line-height:1.8;}
@media(max-width:74rem){.memory-cards {grid-template-columns:repeat(2,minmax(0,1fr));}.memory-hero-copy {max-width:570px;}.memory-hero-caption {font-size:10px;}}
@media(max-width:59.99rem){.memory-reader {grid-template-columns:minmax(0,1fr);}.memory-scene-art {max-height:410px;}.memory-narrative {max-width:850px;}.memory-heading {align-items:flex-start;flex-wrap:wrap;}.memory-source-grid {grid-template-columns:minmax(0,1fr);}}
@media(max-width:39.99rem){
 .memory-heading h1 {font-size:30px;}.memory-nav {gap:5px;margin-top:13px;}.memory-nav a {font-size:12px;padding:8px 7px;}
 .memory-hero {min-height:380px;}.memory-hero-copy {padding:25px 21px 56px;}.memory-hero-copy h2 {font-size:29px;margin:20px 0;}.memory-hero-copy > p:not(.eyebrow) {font-size:13px;}
 .memory-hero-caption {left:12px;right:auto;bottom:12px;font-size:9px;}
 .memory-section-heading {align-items:start;flex-direction:column;gap:12px;}.memory-cards {grid-template-columns:minmax(0,1fr);}.memory-card-art {height:190px;}.memory-card > div {padding:20px;}
 .memory-timeline > article {grid-template-columns:1fr;gap:8px;}.memory-timeline > article > strong {padding-top:0;font-size:26px;}
 .memory-glossary {grid-template-columns:minmax(0,1fr);}.memory-story-text {font-size:16px;line-height:1.85;}.memory-scene-art > span {font-size:9px;}.memory-hotspots button {box-shadow:0 0 0 3px #ffefb84a;}
 .memory-quiz,.memory-branch {padding:18px;}.memory-quiz button,.memory-branch button {width:100%;}.memory-reader-pagination .memory-button {padding:10px 13px;font-size:12px;}
}

/* Private notebook: account-owned notes and declared reading progress. */
.notebook-page {max-width:1440px;}
.notebook-page button {border:1px solid #d3ddc6;border-radius:10px;background:#fffdf6;color:#2c553d;padding:10px 14px;}
.notebook-page button:disabled {opacity:.5;cursor:default;}
.notebook-fields {border:0;margin:0;padding:0;min-width:0;}
.notebook-welcome {margin:25px 0 18px;padding:27px;border:1px solid #dce3cd;border-radius:18px;background:#eaf0dc;}
.notebook-welcome h2 {font:normal 30px/1.3 Georgia,serif;margin:10px 0 15px;color:#35593e;}
.notebook-welcome p:not(.eyebrow) {font-size:15px;line-height:1.7;color:#526b4e;}
.notebook-welcome small {font-size:12px;line-height:1.8;color:#6a7a5e;}
[data-notebook-status] {font-size:13px;line-height:1.7;min-height:1.7em;color:#426644;margin:15px 0;}
.notebook-cards {display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin:22px 0 27px;}
.notebook-card {display:flex;align-items:flex-start;flex-direction:column;border:1px solid #dbe3ce;border-radius:17px;background:#fffdf6;padding:21px;min-width:0;}
.notebook-card.is-complete {background:#f0f4e4;border-color:#b9cca1;}
.notebook-seal {display:grid;place-items:center;background:#e4ecd5;color:#638049;border:1px solid #d0debc;border-radius:50%;width:56px;height:56px;font:normal 28px Georgia,serif;margin-bottom:16px;}
.notebook-card h3 {font:normal 23px/1.3 Georgia,serif;color:#3d5b3c;margin:0 0 12px;overflow-wrap:anywhere;}
.notebook-card p {font-size:13px;line-height:1.7;color:#63745b;margin:0 0 18px;}
.notebook-card > strong {font-size:13px;line-height:1.5;font-weight:600;margin-top:auto;}
.notebook-card > small {display:block;font-size:12px;line-height:1.7;color:#6a7c5e;margin:12px 0 15px;}
.notebook-card > button {width:100%;font-size:12px;}
.notebook-card .notebook-subtle {border-color:transparent;background:transparent;font-size:11px;text-decoration:underline;}
.notebook-note {border:1px solid #d9e2ce;border-radius:17px;background:#fffdf6;padding:25px;margin:25px 0;}
.notebook-note label {font:normal 26px/1.4 Georgia,serif;display:block;margin-bottom:12px;color:#34573c;}
.notebook-note p {font-size:13px;line-height:1.8;color:#6a795f;}
.notebook-note textarea {display:block;width:100%;min-width:0;resize:vertical;min-height:140px;border:1px solid #cbd9be;border-radius:11px;background:#fefefa;color:#304f37;padding:15px;font:15px/1.8 var(--font-sans);}
.notebook-note > div {display:flex;flex-wrap:wrap;gap:10px;margin:17px 0 12px;}
.notebook-note small {font-size:12px;line-height:1.6;color:#6c7c61;}
.notebook-actions {display:flex;flex-wrap:wrap;justify-content:space-between;gap:14px;margin:25px 0 15px;}
.notebook-pending {border:1px solid #d8be83;background:#fcf3d7;padding:23px;border-radius:16px;margin:21px 0;}
.notebook-pending h2 {font:normal 27px Georgia,serif;margin:0 0 14px;color:#4f5836;}
.notebook-pending p {font-size:14px;line-height:1.8;color:#68704e;}
.notebook-pending button {margin:5px 9px 0 0;}
.notebook-unavailable {display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap;padding:12px 0;font-size:12px;overflow-wrap:anywhere;}
@media(max-width:74rem){.notebook-cards {grid-template-columns:repeat(2,minmax(0,1fr));}}
@media(max-width:39.99rem){
 .notebook-cards {grid-template-columns:minmax(0,1fr);}
 .notebook-welcome,.notebook-note,.notebook-pending {padding:20px;}
 .notebook-welcome h2 {font-size:27px;}.notebook-note label {font-size:24px;}
 .notebook-actions {flex-direction:column;}.notebook-page .memory-heading {align-items:flex-start;}
}

/* Private library: originals are only requested when the owner opens them. */
.library-fields{border:0;padding:0;margin:0;min-width:0}
.library-page button{border:1px solid #cfdbca;border-radius:10px;padding:.7rem 1rem;background:#fffdf6;color:#28534e;font:inherit;cursor:pointer;font-weight:650}
.library-page button:hover{background:#edf2e5}
.library-page button:disabled{cursor:wait;opacity:.55}
.library-page .library-primary{background:#28534e;color:white;border-color:#28534e}
.library-page label{display:grid;gap:.4rem;color:#365b56;font-weight:650;min-width:0}
.library-page input,.library-page select,.library-page textarea{width:100%;min-width:0;box-sizing:border-box;border:1px solid #c9d6c4;border-radius:9px;background:#fffef9;padding:.65rem;color:#244944;font:inherit}
.library-page textarea{resize:vertical}
.library-upload{padding:1.5rem;background:#f0f3e6;border:1px dashed #afc6a0;border-radius:18px;margin:1rem 0 1.5rem}
.library-upload h2,.library-detail h2{font-family:Georgia,serif;font-weight:500;font-size:1.65rem;margin:.1rem 0 .65rem;color:#234d47;overflow-wrap:anywhere}
.library-upload p{color:#5a7165;line-height:1.6}
.library-upload-row,.library-actions{display:flex;align-items:end;flex-wrap:wrap;gap:.7rem;margin:1rem 0}
.library-upload-row>label{flex:1 1 170px}
.library-upload-row>button{max-width:100%;overflow-wrap:anywhere}
.library-page small{display:block;font-size:.83rem;line-height:1.6;color:#5c7267}
.library-toolbar{display:grid;grid-template-columns:minmax(180px,1.5fr) minmax(145px,1fr) minmax(140px,1fr);align-items:end;gap:1rem;margin:1.5rem 0}
.library-toolbar p{margin:0;font-size:.85rem;color:#5c7267;line-height:1.6}
.library-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem}
.library-card{border:1px solid #d5dfcd;border-radius:16px;overflow:hidden;background:#fffef8;min-width:0}
.library-thumb{background:#e9eddc;min-height:115px;display:flex;align-items:center;justify-content:center;gap:.8rem;color:#668361}
.library-thumb .icon{width:44px;height:44px}
.library-card-content{padding:1rem}
.library-tags{display:flex;gap:.5rem;flex-wrap:wrap;font-size:.76rem;color:#596f5e}
.library-tags span{background:#edf1e3;border-radius:6px;padding:.25rem .4rem}
.library-card h2{font-size:1.13rem;line-height:1.4;overflow-wrap:anywhere}
.library-card-content>p{font-size:.85rem;color:#6d7b6c}
.library-detail{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,1fr);gap:1.3rem}
.library-original,.library-review{border:1px solid #d4dfcd;border-radius:16px;background:#fffef8;padding:1.4rem;min-width:0}
.library-review>label{margin:1rem 0}
.library-preview{border-radius:10px;padding:1rem;background:#edf0e4;min-height:190px;display:grid;align-items:center;justify-items:center}
.library-preview img{max-width:100%;max-height:560px;object-fit:contain;border-radius:6px}
.library-preview pre{white-space:pre-wrap;overflow-wrap:anywhere;max-height:560px;overflow:auto;width:100%;font:inherit}
.library-page .library-check{display:flex;align-items:center;gap:.65rem;font-weight:500}
.library-check input{width:20px;height:20px;flex:none}
.library-empty{grid-column:1/-1;text-align:center;padding:2rem;border:1px dashed #c5d4bc;border-radius:14px;color:#547064}
.library-page .library-remove{color:#974837}
.library-future{font-size:.85rem;line-height:1.65;color:#647461}
.library-page :focus-visible{outline:3px solid #9d7627;outline-offset:3px}
@media(max-width:74rem){.library-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.library-detail{grid-template-columns:1fr}.library-toolbar{grid-template-columns:1fr 1fr}.library-toolbar>p{grid-column:1/-1}}
@media(max-width:35rem){.library-grid,.library-toolbar{grid-template-columns:1fr}.library-upload,.library-original,.library-review{padding:1rem}.library-actions>button{flex:1 1 140px}.library-upload-row{align-items:stretch}.library-upload-row>button{width:100%}}

.library-page .space-page-heading h1{font-family:Georgia,serif;font-weight:500;font-size:2rem;line-height:1.2}
.library-page input,.library-page textarea,.library-page select{font-weight:400}
.library-page .library-file-control,.library-page .library-camera{position:relative;display:flex;align-items:center;justify-content:center;min-height:44px;border:1px solid #c7d6bb;border-radius:10px;background:#fffef7;padding:.6rem 1rem;box-sizing:border-box;cursor:pointer}
.library-file-control>input,.library-camera>input{position:absolute;inset:0;opacity:0;cursor:pointer}
.library-file-control:focus-within,.library-camera:focus-within{outline:3px solid #9d7627;outline-offset:3px}

/* Household records use the same page shell, with totals per stored currency. */
.household-fields{border:0;margin:0;padding:0;min-width:0}
.household-page .space-page-heading h1{font-family:Georgia,serif;font-weight:500;font-size:2rem;line-height:1.2}
.household-page button{border:1px solid #cddbc4;border-radius:10px;padding:.7rem 1rem;background:#fffef8;color:#28534e;font:inherit;font-weight:650;cursor:pointer}
.household-page button:hover{background:#edf2e3}
.household-page button:disabled{opacity:.55;cursor:not-allowed}
.household-page .household-primary{background:#28534e;color:#fff;border-color:#28534e}
.household-page label{display:grid;gap:.45rem;color:#365b56;font-weight:650;min-width:0}
.household-page input,.household-page select,.household-page textarea{width:100%;min-width:0;box-sizing:border-box;border:1px solid #c8d6c0;border-radius:9px;background:#fffef9;padding:.65rem;color:#244944;font:inherit;font-weight:400}
.household-page textarea{resize:vertical}
.household-page small{display:block;font-size:.82rem;line-height:1.6;color:#627360}
.household-toolbar{display:flex;gap:.8rem;align-items:end;flex-wrap:wrap;margin:1rem 0 1.5rem}
.household-toolbar>label{flex:1 1 210px;max-width:340px}
.household-stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem;margin:1.25rem 0}
.household-stats>article{background:#fffef7;border:1px solid #d7dfce;border-radius:16px;padding:1.25rem;min-width:0}
.household-stats>article:first-child{background:#edf2df}
.household-stats span{color:#536c5c;font-size:.86rem}
.household-stats strong{display:block;font-size:1.75rem;line-height:1.4;font-weight:650;color:#264d44;margin:.45rem 0;overflow-wrap:anywhere}
.household-layout{display:grid;grid-template-columns:minmax(0,1fr) minmax(210px,.34fr);gap:1.2rem;align-items:start;margin-top:1.5rem}
.household-records,.household-explainer,.household-editor>form,.household-side>section{border:1px solid #d6dfca;border-radius:16px;background:#fffef8;padding:1.3rem;min-width:0}
.household-section-heading{display:flex;align-items:center;justify-content:space-between;gap:.8rem}
.household-page h2{font-family:Georgia,serif;font-weight:500;font-size:1.5rem;line-height:1.25;color:#28534e;margin:.1rem 0 .8rem}
.household-section-heading>span{font-size:.8rem;color:#63755f;white-space:nowrap}
.household-filters{display:grid;grid-template-columns:1fr 1fr;gap:.8rem;margin:1rem 0}
.household-row{display:grid;grid-template-columns:minmax(0,1fr) minmax(125px,.65fr);gap:1rem;border-top:1px solid #e1e6d9;padding:1.1rem 0}
.household-row h3{margin:0 0 .35rem;font-size:1rem;overflow-wrap:anywhere}
.household-row-amount{text-align:right}
.household-row-amount>strong{display:block;color:#28534e;overflow-wrap:anywhere}
.household-row-actions{display:flex;gap:.5rem;flex-wrap:wrap;grid-column:1/-1}
.household-row-actions>button{font-size:.84rem}
.household-tag{display:inline-block;padding:.3rem .5rem;border-radius:7px;background:#f0ebd4;color:#745c28;font-size:.8rem;margin:.5rem 0;line-height:1.45}
.household-tag.is-paid{background:#e4eddc;color:#315d42}
.household-page .household-link{padding:.25rem 0;background:transparent;border:0;text-decoration:underline;text-underline-offset:3px;font-size:.86rem}
.household-origin{font-size:.8rem;color:#6a7965}
.household-explainer{background:#eef2e5;line-height:1.7}
.household-note{padding:1rem;border-left:3px solid #b7a86a;background:#f0eedf;border-radius:5px;color:#5b674e;line-height:1.65}
.household-empty{text-align:center;padding:2rem 1rem;border:1px dashed #ccd8c0;border-radius:12px;color:#5c725c}
.household-editor{display:grid;grid-template-columns:minmax(0,1fr) minmax(240px,.6fr);gap:1.25rem;align-items:start}
.household-editor form>label,.household-form-row{margin:1rem 0}
.household-form-row{display:grid;grid-template-columns:1fr 1fr;gap:1rem}
.household-side{display:grid;gap:1rem}
.household-side section>label{margin:1rem 0}
.household-actions{display:flex;flex-wrap:wrap;gap:.7rem;margin:1rem 0}
.household-page .household-remove{color:#964d39}
.household-page :focus-visible{outline:3px solid #9d7627;outline-offset:3px}
.library-household{padding:1rem;background:#edf2e2;border-radius:10px;margin:1rem 0}
@media(max-width:74rem){.household-layout{grid-template-columns:1fr}.household-editor{grid-template-columns:1fr}.household-side{grid-template-columns:1fr 1fr}.household-side>section:last-child{grid-column:1/-1}}
@media(max-width:42rem){.household-stats,.household-form-row,.household-filters,.household-side{grid-template-columns:1fr}.household-toolbar>button{flex:1 1 170px}.household-toolbar>label{max-width:none;flex-basis:100%}.household-records,.household-explainer,.household-editor>form,.household-side>section{padding:1rem}}
@media(max-width:24rem){.household-row{grid-template-columns:1fr}.household-row-amount{text-align:left}.household-actions>button{flex:1 1 150px}}

.household-explainer>div{display:flex;align-items:center;gap:.35rem;flex-wrap:wrap}.household-explainer strong{white-space:nowrap}

/* Private meter readings reuse the household layout at narrow widths. */
.meter-overview{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,18rem),1fr));gap:1rem;margin:1rem 0 1.5rem}
.meter-overview>article{display:flex;flex-direction:column;align-items:flex-start;gap:.65rem;background:#fff;border:1px solid #dce4e1;border-radius:1rem;padding:1.2rem;min-width:0;overflow-wrap:anywhere}
.meter-overview h2{font-size:1rem;margin:0}.meter-overview h3{margin:0}.meter-overview button{margin-top:auto}
.meter-consumption{font-size:1.75rem;display:block;line-height:1.2;color:#12624e;overflow-wrap:anywhere}
.meter-tariff{border:1px solid #cdddce;border-radius:.8rem;background:#f6faf6;padding:1rem}
.meter-tariff .meter-checkbox{display:flex;align-items:center;gap:.7rem;flex-direction:row}
.meter-checkbox input{width:1.2rem;min-height:1.2rem;flex:0 0 auto}
.meter-page .household-actions{flex-wrap:wrap}.meter-page .household-side section>button{margin-top:.75rem}
.meter-page select{max-width:100%}.meter-page .household-toolbar>label{min-width:0}
.household-page .household-origin,.household-page .household-row small{display:block}
@media(max-width:40rem){.meter-overview{grid-template-columns:1fr}.household-page .space-page-heading nav{width:100%}.household-page .space-page-heading nav button{flex:1;white-space:normal}}

.reminder-preview{margin:1rem 0;border:1px solid #aac8b4;background:#f0f6ee;border-radius:1rem;padding:1.25rem}
.reminder-preview article{background:#fff;border-radius:.75rem;padding:1rem;overflow-wrap:anywhere}
.reminder-page .reminder-days{display:flex;gap:.7rem;flex-wrap:wrap;border:1px solid #cfddcf;border-radius:.75rem;padding:1rem;margin:0}
.reminder-days label,.reminder-page .reminder-check{display:flex;gap:.55rem;align-items:center;flex-direction:row}
.reminder-days input,.reminder-check input{width:1.2rem;min-height:1.2rem;flex:0 0 auto}
.reminder-page .reminder-channel-state{font-size:1.2rem}.reminder-page .household-actions{flex-wrap:wrap}
.reminder-page .household-side section>button{margin-top:.75rem}
.reminder-page .household-row p{overflow-wrap:anywhere}.reminder-page .household-toolbar select{max-width:100%}


.cv-columns{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:1.25rem;align-items:start}
.cv-editor,.cv-paper,.cv-import-review,.cv-comparison{min-width:0;border:1px solid var(--line,#cbd7c4);border-radius:1rem;padding:1.25rem;background:var(--paper,#fffef9)}
.cv-editor,.cv-saved,.cv-import-review{display:grid;gap:1rem;min-width:0}
.cv-editor label,.cv-import-review label{display:grid;gap:.4rem;font-weight:700}
.cv-editor input,.cv-editor textarea,.cv-import-review textarea{width:100%;min-width:0;box-sizing:border-box}
.cv-editor input[type=file]{font-size:.9rem}
.cv-paper p{white-space:pre-wrap;overflow-wrap:anywhere}.cv-paper h2{overflow-wrap:anywhere}.cv-job{font-weight:700}
.cv-comparison,.cv-import-review{margin-top:1.5rem}.cv-comparison>.household-actions{margin-top:1rem}
.cv-editor .household-note button{margin:.25rem}.cv-editor .household-note strong{overflow-wrap:anywhere}
@media(max-width:67.99rem){.cv-columns{grid-template-columns:minmax(0,1fr)}}

.cv-file-control{position:relative;min-height:44px;border:1px solid #c7d6bb;border-radius:10px;background:#fffef7;padding:.6rem 1rem;box-sizing:border-box;cursor:pointer}.cv-file-control>input{position:absolute;inset:0;opacity:0;cursor:pointer}.cv-file-control:focus-within{outline:3px solid #9d7627;outline-offset:3px}

/* Employment follows the existing personal pages; no independent viewport shell. */
.employment-tabs{display:flex;gap:.6rem;flex-wrap:wrap;margin:1rem 0 1.5rem}
.employment-tabs [aria-current=page]{background:var(--brand,#185a47);color:white}
.employment-search{display:grid;grid-template-columns:minmax(0,1.7fr) minmax(0,1fr) auto;gap:1rem;align-items:end;margin-bottom:1.5rem}
.employment-search label,.employment-tracking label,.employment-next label{display:grid;gap:.45rem;min-width:0;font-weight:600}
.employment-search input,.employment-search select,.employment-tracking select,.employment-page textarea{box-sizing:border-box;width:100%;min-width:0;padding:.8rem;border:1px solid #cddbd3;border-radius:.7rem;font:inherit;background:#fff;color:#223e32}
.employment-list,.employment-tracking{display:grid;gap:1rem}
.employment-card{display:flex;align-items:center;justify-content:space-between;gap:1.5rem;padding:1.5rem;border:1px solid #dce5de;background:white;border-radius:1.1rem;min-width:0;overflow-wrap:anywhere}
.employment-card>div{min-width:0;flex:1}.employment-card small{display:block;margin-top:.8rem;color:#56665c}
.employment-card h2{margin:.35rem 0;font-size:1.25rem}.employment-card p{max-width:75ch;white-space:pre-wrap}
.employment-tags{display:flex;gap:.5rem;flex-wrap:wrap;margin:1rem 0}.employment-tags span{background:#edf4ec;padding:.4rem .65rem;border-radius:2rem;font-size:.85rem}
.employment-columns{display:grid;grid-template-columns:minmax(0,1.7fr) minmax(17rem,1fr);gap:1.5rem;align-items:start}
.employment-offer,.employment-next{padding:1.5rem;border:1px solid #dce5de;border-radius:1.1rem;background:white;min-width:0;overflow-wrap:anywhere}
.employment-next{background:#edf4ec}.employment-next button{margin:.4rem 0}.employment-next h2{margin-top:0}
.employment-offer>p{white-space:pre-wrap}.employment-company{font-weight:650;color:#3f614e}
.employment-tracking label{margin:.9rem 0}.employment-page button,.employment-page a{overflow-wrap:anywhere;max-width:100%}
@media(max-width:67.99rem){.employment-columns{grid-template-columns:minmax(0,1fr)}}
@media(max-width:39.99rem){.employment-search{grid-template-columns:minmax(0,1fr)}.employment-card{flex-direction:column;align-items:stretch;padding:1rem}.employment-offer,.employment-next{padding:1rem}}

.employment-offer h3{margin:1.25rem 0 .65rem}.employment-offer ul{padding-left:1.5rem}.employment-offer li+li{margin-top:.45rem}

.information-search{display:flex;gap:1rem;align-items:end;margin:1.4rem 0}.information-search label{flex:1;display:grid;gap:.5rem;font-weight:600;min-width:0}
.information-search input{width:100%;min-width:0;box-sizing:border-box;padding:.85rem;border:1px solid #cad8cd;border-radius:.75rem;font:inherit;background:white}
.information-topics{display:flex;gap:.6rem;flex-wrap:wrap;margin-bottom:1.5rem}.information-topics [aria-pressed=true]{background:#185a47;color:white}
.information-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,17rem),1fr));gap:1rem}
.information-card,.information-article,.information-origin{background:white;border:1px solid #dce5de;border-radius:1.1rem;padding:1.5rem;min-width:0;overflow-wrap:anywhere}
.information-card{display:flex;flex-direction:column;gap:.75rem}.information-card h2{font-size:1.3rem;margin:0}.information-card p,.information-card small{margin:0}.information-card small{color:#57695d}.information-card .household-actions{margin-top:auto;padding-top:.8rem}
.information-card-top{display:flex;align-items:center;justify-content:space-between;gap:.8rem;font-size:.8rem}
.information-columns{display:grid;grid-template-columns:minmax(0,1.8fr) minmax(16rem,1fr);gap:1.5rem;align-items:start}.information-origin{background:#edf3e9}
.information-article h2{font-size:1.8rem;margin:.8rem 0}.information-lead{color:#536757}.information-body{white-space:pre-wrap;line-height:1.8}
.information-sample{background:#fff5db;border-left:4px solid #c99430;border-radius:.5rem;padding:1rem;margin:1.25rem 0;line-height:1.6}.information-sample--urgent{background:#fff0e9;border-color:#b85b3e}
.information-weather{padding:1.5rem;background:#eaf3f5;border-radius:.9rem;margin:1.2rem 0}.information-temperature{font-size:3.5rem;color:#244d55;line-height:1.2}
.information-forecast{display:grid;grid-template-columns:repeat(auto-fit,minmax(5rem,1fr));gap:.7rem;margin-top:1rem}.information-forecast>div{display:grid;gap:.45rem;text-align:center;background:#ffffffa8;padding:1rem .5rem;border-radius:.8rem}.information-forecast [aria-hidden=true]{font-size:1.6rem}
.information-table{max-width:100%;overflow:auto;border:1px solid #dce5de;border-radius:.65rem}.information-table table{width:100%;border-collapse:collapse}.information-table th,.information-table td{text-align:left;padding:.85rem;border-bottom:1px solid #e0e6df;overflow-wrap:anywhere}.information-table thead{background:#edf3e9}
.information-origin h2{margin:0 0 1rem}.information-origin dt{margin-top:1rem;font-size:.85rem;color:#536757}.information-origin dd{margin:.35rem 0;font-weight:600}
.information-page button,.information-page a{max-width:100%;overflow-wrap:anywhere}
@media(max-width:67.99rem){.information-columns{grid-template-columns:minmax(0,1fr)}}
@media(max-width:39.99rem){.information-search{flex-direction:column;align-items:stretch}.information-card,.information-article,.information-origin{padding:1rem}.information-weather{padding:1rem}}

/* Commercial promotions reuse the existing business manager and detail panel. */
.business-manager__promotions{margin-top:1.5rem;border-top:1px solid var(--border,#d4ddd8);padding-top:1rem;min-width:0}
.business-manager__promotions>summary{font-size:1.25rem;font-weight:700;cursor:pointer;padding:.75rem 0}
.business-manager__promotions form{display:grid;gap:1rem;max-width:48rem}
.promotion-products{display:grid;gap:.75rem;min-width:0}
.promotion-products label{display:grid;grid-template-columns:minmax(0,1fr) 6rem;gap:.75rem;align-items:center}
.promotion-products span,.promotion-detail{overflow-wrap:anywhere;min-width:0}
.promotion-records{display:grid;gap:.5rem;list-style:none;padding:0}
.promotion-records li{display:flex;align-items:center;flex-wrap:wrap;gap:.75rem}
.promotion-price{display:grid;gap:.35rem;padding:1rem;background:#eef5ef;border-radius:12px}
.promotion-price strong{font-size:1.6rem}.promotion-price span{font-size:.9rem}
.promotion-state{font-weight:700;padding:.75rem;border-left:4px solid #396d59;background:#f1f5ed}
/* Offer discovery follows the compact three-card layout of the v08 reference. */
.marketplace-page svg{width:1.1rem;height:1.1rem;flex:none;fill:none;stroke:currentColor;stroke-width:1.7}
.marketplace-tabs{display:flex;flex-wrap:wrap;gap:.3rem;background:#fff;border:1px solid #dce2d8;border-radius:12px;padding:.35rem;width:fit-content;margin:1rem 0 1.25rem}
.marketplace-tabs button{display:flex;align-items:center;gap:.6rem;border:0!important;background:transparent!important}
.marketplace-tabs [aria-current=page]{background:#eeebfc!important;color:#80511b}
.marketplace-search{display:flex;align-items:end;flex-wrap:wrap;gap:.75rem;max-width:55rem;margin-bottom:.9rem}
.marketplace-search label:first-child{flex:1 1 18rem}.marketplace-search label:nth-child(2){flex:1 1 13rem}.marketplace-search input,.marketplace-search select{width:100%;min-width:0}
.marketplace-filters{display:flex;gap:.4rem;flex-wrap:wrap;margin-bottom:1.1rem}
.marketplace-filters button{border-radius:999px!important;display:flex;gap:.35rem;align-items:center}
.marketplace-filters [aria-pressed=true]{background:#e9eed9!important;border-color:#cbd8a9!important}
.marketplace-results{display:flex;justify-content:space-between;gap:.75rem;flex-wrap:wrap;color:#647369;font-size:.85rem;margin-bottom:.8rem}
.marketplace-results>span:last-child{display:flex;align-items:center;gap:.35rem}
.marketplace-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1.1rem;margin-bottom:1.4rem}
.marketplace-card{min-width:0;border:1px solid #dde2d5;border-radius:18px;overflow:hidden;background:#fff;display:flex;flex-direction:column}
.marketplace-art{position:relative;min-height:150px!important;border:0!important;border-radius:0!important;background:#f0dfc9!important;color:#9b6f3e!important;width:100%;overflow:hidden}
.marketplace-art.art-pack{background:#dfebe4!important;color:#3e7c7b!important}.marketplace-art.art-rescue{background:#eaeccf!important;color:#627f44!important}
.marketplace-type{position:absolute;top:16px;left:16px;max-width:48%;background:#ffffef;color:#486655;padding:.6rem;border-radius:13px;font-size:.82rem;letter-spacing:.08em;text-transform:uppercase;font-weight:800}
.marketplace-product{position:absolute;left:40%;bottom:24px;transform:rotate(-10deg);border-radius:22px;background:#fffef4;box-shadow:8px 10px 0 #1738290c;padding:.5rem}
.marketplace-product svg{width:3.2rem;height:3.2rem}
.marketplace-discount{position:absolute;right:15px;top:16px;background:#ffffef;color:#527346;border-radius:13px;padding:.7rem .6rem;min-height:76px;font-size:1.7rem;font-weight:800}
.marketplace-discount small{font-size:.9rem}
.marketplace-card-body{padding:1.1rem;display:flex;flex:1;flex-direction:column;gap:.65rem}
.marketplace-merchant{display:flex;gap:.4rem;align-items:center;font-size:.85rem;color:#687667;margin:0}
.marketplace-card h2{font:700 1.12rem/1.35 var(--font-sans,system-ui);margin:0}.marketplace-summary{font-size:.88rem;line-height:1.55;flex:1;margin:0 0 .7rem;overflow-wrap:anywhere}
.marketplace-price{display:flex;align-items:baseline;gap:.55rem;flex-wrap:wrap}.marketplace-price strong{font-size:1.65rem;color:#315f4a}.marketplace-price span{font-size:.85rem;color:#6f7c70}
.marketplace-saving{font-size:.84rem;color:#597452;background:#edf2df;padding:.3rem .45rem;margin:0;border-radius:5px}
.marketplace-availability{display:grid;gap:.55rem;padding:1rem 0;border-top:1px solid #ecede7;border-bottom:1px solid #ecede7;margin:.45rem 0;font-size:.8rem;color:#64745b}
.marketplace-availability span{display:flex;align-items:start;gap:.4rem}.marketplace-card-body>small{font-size:.8rem;color:#6a796b}
.marketplace-card-body>button{display:flex;justify-content:center;align-items:center;gap:.5rem;width:100%}
.marketplace-notes{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem;margin-top:1.75rem}.marketplace-notes section{background:#fff;border:1px solid #dfe5d6;border-radius:18px;padding:1.2rem}
.marketplace-notes h2{font-size:1.2rem}.marketplace-notes p{font-size:.95rem;line-height:1.6}
.marketplace-detail{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(0,1fr);gap:1.2rem}.marketplace-detail>aside{align-self:start;background:#fff;border:1px solid #dfe5d6;border-radius:18px;padding:1.2rem}
@media(max-width:75rem){.marketplace-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:46rem){.marketplace-grid,.marketplace-detail,.marketplace-notes{grid-template-columns:minmax(0,1fr)}.marketplace-tabs{width:100%}.marketplace-card-body{padding:1rem}.marketplace-search label{flex-basis:100%!important}}
/* Keep screen-reader labels within the scrolling page instead of the root viewport. */
.marketplace-page{position:relative}
@media(max-width:46rem){
 .marketplace-page .space-page-heading{margin-bottom:16px}
 .marketplace-page h1{font-size:1.8rem}
 .marketplace-tabs{flex-wrap:nowrap;overflow-x:auto;max-width:100%;scrollbar-width:thin}
 .marketplace-tabs button{flex-shrink:0;white-space:nowrap}
 .marketplace-search{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:end}
 .marketplace-search label:first-child{grid-column:1/-1}
 .marketplace-filters button{padding-inline:12px!important}
}

/* Commercial preferences and inbox share the existing account/map navigation. */
.commercial-preferences {display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:1.5rem;align-items:start}
.commercial-preferences form,.commercial-preferences>section {min-width:0}
.commercial-preferences [data-commercial-settings],.commercial-consent-card,.commercial-notice {padding:1.2rem;border:1px solid var(--border,#d8ddd3);border-radius:18px;background:var(--surface,#fff)}
.commercial-preferences label:not(.commercial-check) {display:grid;gap:.45rem;margin:.9rem 0}
.commercial-preferences input:not([type=checkbox]),.commercial-preferences select {width:100%;min-width:0;box-sizing:border-box}
.commercial-check {display:flex;gap:.65rem;align-items:center;min-height:44px;line-height:1.4}
.commercial-check input {width:20px;height:20px;flex:0 0 20px}
.commercial-checks {display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.3rem .8rem}
.commercial-preferences fieldset {min-width:0;margin:1rem 0}
.commercial-consent-card {margin:1rem 0}
.commercial-notice {display:flex;gap:1.2rem;align-items:center;justify-content:space-between;margin:1rem 0}
.commercial-notice>div {min-width:0}
.commercial-notice.is-unread {border-left:5px solid #487268}
.commercial-notice h3 {overflow-wrap:anywhere}
.commercial-notice .household-actions {flex:0 0 auto;max-width:240px}
.commercial-digest {padding:1rem;background:#f0f3ed;border-radius:18px;margin:1rem 0}
@media(max-width:850px){.commercial-preferences{grid-template-columns:minmax(0,1fr)}}
@media(max-width:550px){.commercial-notice{display:block}.commercial-notice .household-actions{max-width:none}.commercial-checks{grid-template-columns:minmax(0,1fr)}.commercial-preferences [data-commercial-settings],.commercial-consent-card,.commercial-notice{padding:.9rem}}

@media(max-width:550px){.commercial-inbox .space-section-heading{align-items:stretch;flex-direction:column;gap:.7rem}.commercial-inbox .space-section-heading h2{width:100%;max-width:none}.commercial-inbox .space-section-heading button{align-self:flex-start}}

/* 088 — The optional illustrated walk shares public map records. */
.walking-page{position:relative;max-width:1560px;margin:auto;padding:clamp(18px,3vw,38px);color:#21473c}
.walking-heading{display:flex;justify-content:space-between;align-items:flex-start;gap:20px}
.walking-heading h1{font-family:Georgia,serif;font-size:clamp(2rem,4vw,3.5rem);line-height:1.08;margin:10px 0 14px;max-width:700px}
.walking-page button{min-height:44px;border:1px solid #c3cfbb;border-radius:12px;padding:10px 16px;background:#fffdf6;color:#244b3d;font:inherit;cursor:pointer}
.walking-page button:hover{background:#edf2de}.walking-page button:focus-visible,.walking-stage:focus-visible{outline:3px solid #986332;outline-offset:3px}
.walking-modes{display:flex;flex-wrap:wrap;gap:6px;margin:24px 0 14px}
.walking-modes [aria-current],.walking-list [aria-pressed=true]{background:#254e3e;color:#fffdf0}
.walking-scope,.walking-precision{font-size:.875rem;color:#516557}
.walking-layout{display:grid;grid-template-columns:minmax(0,1fr) minmax(220px,300px);gap:22px;align-items:start}
.walking-terrain-card,.walking-detail{min-width:0;border:1px solid #d4d9c7;border-radius:22px;background:#fffdf5;overflow:hidden}
.walking-stage{position:relative;isolation:isolate;width:100%;height:clamp(360px,54vw,600px);overflow:hidden;background:#e2eacb;touch-action:pan-y}
.walking-art{position:absolute;inset:0;width:100%;height:100%;object-fit:fill;pointer-events:none}
.walking-stamp{position:absolute;left:14px;top:14px;padding:7px 10px;background:#fffdf2ed;border-radius:16px;font-size:.63rem;font-weight:800;letter-spacing:.08em;pointer-events:none}
.walking-pins{position:absolute;inset:0;pointer-events:none}
.walking-page .walking-pin{position:absolute;transform:translate(-50%,-50%);pointer-events:auto;min-width:36px;min-height:36px;padding:5px;border:2px solid #fffdf5;border-radius:50%;background:#2f5d47;color:white;font-weight:800;box-shadow:0 2px 8px #1c413740}
.walking-page .walking-pin[aria-pressed=true]{background:#af582e;z-index:2}
.walking-self{position:absolute;width:34px;transform:translate(-50%,-85%);pointer-events:none;z-index:3;display:grid;justify-items:center}
.walking-self svg{display:block;width:34px;height:51px}.walking-self span{background:#fffdf1;border-radius:10px;padding:1px 8px;font-size:.7rem;font-weight:800}
.walking-pad{position:absolute;right:12px;bottom:12px;display:grid;grid-template-columns:repeat(3,44px);gap:3px;z-index:4}
.walking-pad button{padding:6px;background:#fffdf3ed}.walking-pad [data-walk-move=up]{grid-column:2}.walking-pad [data-walk-move=left]{grid-column:1;grid-row:2}.walking-pad [data-walk-move=down]{grid-column:2;grid-row:2}.walking-pad [data-walk-move=right]{grid-column:3;grid-row:2}
.walking-terrain-card>p{padding:14px 18px;margin:0;font-size:.82rem;color:#5a6857;line-height:1.55}
.walking-detail{padding:22px;overflow-wrap:anywhere}.walking-detail h2{font:700 1.7rem/1.16 Georgia,serif}.walking-detail p{line-height:1.6}.walking-detail button{width:100%;margin-top:10px}.walking-detail [data-walk-open]{background:#31573e;color:white}
.walking-directory{margin-top:28px}.walking-directory h2{font-family:Georgia,serif}.walking-list{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
.walking-list button{text-align:left;display:grid;grid-template-columns:28px minmax(0,1fr);gap:3px 8px;overflow-wrap:anywhere}.walking-list small{grid-column:2;opacity:.8}
@media(max-width:75rem){.walking-layout{grid-template-columns:minmax(0,1fr) minmax(210px,250px)}.walking-list{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:48rem){.walking-heading{flex-direction:column}.walking-layout{grid-template-columns:minmax(0,1fr)}.walking-stage{height:400px}.walking-detail{padding:18px}.walking-list{grid-template-columns:minmax(0,1fr)}.walking-modes button{flex:1;padding:9px 10px}}

@media(max-width:48rem){.walking-page{padding:5px 0 24px}}

/* 089 — One searchable directory, with separate private shortcuts. */
.tool-directory{position:relative;max-width:1450px;margin:auto;padding:18px 8px 32px;color:#244638}
.tools-heading h1{font:700 clamp(2.2rem,4vw,3.8rem)/1.1 Georgia,serif;margin:10px 0 16px}.tools-heading>p:last-child{max-width:680px;line-height:1.6}
.tools-search{display:grid;gap:8px;max-width:650px;margin:26px 0 18px;font-size:.9rem;font-weight:700}.tools-search input{width:100%;min-height:50px;border:1px solid #c8d3bd;border-radius:14px;background:#fffdf7;padding:12px 16px;font:inherit}
.tools-account-note{font-size:.9rem;line-height:1.55;color:#516457}.tools-account-note p{margin:8px 0}.tools-retry{display:flex;flex-wrap:wrap;gap:8px}
.tool-group{margin:28px 0}.tool-group h2,.tools-favorites h2{display:flex;align-items:center;flex-wrap:wrap;gap:10px;font:700 1.55rem/1.3 Georgia,serif}.tool-group h2 small{margin-left:auto;font:400 .8rem var(--font-sans);color:#5c6a59}
.tools-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}
.tool-card{min-width:0;background:#fffdf6;border:1px solid #d2d8c7;border-radius:18px;overflow:hidden;display:flex;flex-direction:column}
.tool-directory button{font:inherit;cursor:pointer;min-height:44px}.tool-directory button:disabled{cursor:default;opacity:.6}
.tool-card-open{display:flex;align-items:flex-start;gap:13px;flex:1;width:100%;padding:21px 18px;background:transparent;border:0;color:inherit;text-align:left}
.tool-card-open>.icon{flex:none;width:37px;height:37px;padding:8px;border-radius:12px;background:#e5edda;color:#375d42}
.tool-card-open>span{display:grid;gap:9px;min-width:0;overflow-wrap:anywhere}.tool-card-open strong{font-size:1.05rem}.tool-card-open span>span{font-size:.875rem;line-height:1.55;color:#576652}.tool-card-open small{font-size:.73rem;color:#3e6150}
.tool-pin{border:0;border-top:1px solid #e0e4d5;padding:9px 14px;color:#426044;background:#f2f4e9;text-align:left;font-size:.8rem!important}.tool-pin[aria-pressed=true]{background:#dbe8cb;color:#2a4c35}
.tool-directory button:hover:not(:disabled){background:#e9efdf}.tool-directory button:focus-visible,.tools-search input:focus-visible{outline:3px solid #976339;outline-offset:-3px}
.tools-favorites{margin-top:26px;padding:20px;background:#eaf0df;border:1px solid #d7e1ca;border-radius:20px}.tools-favorites>p{font-size:.85rem}.tools-retry button{padding:8px 12px;border:1px solid #c7d1b9;border-radius:10px;background:#fffdf7;color:#244638}
[data-tools-shortcuts]{display:grid;gap:4px}[data-tools-shortcuts] button{font:inherit;min-height:44px;border:0;border-radius:10px;padding:9px 12px;background:transparent;color:#edf2e3;text-align:left;overflow-wrap:anywhere}
[data-tools-shortcuts] button:hover{background:#294e3d}[data-tools-shortcuts] button:disabled{opacity:.55}
@media(max-width:78rem){.tools-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:42rem){.tool-directory{padding:5px 0 24px}.tools-grid{grid-template-columns:minmax(0,1fr)}.tools-favorites{padding:14px}.tool-card-open{padding:18px 15px}}

/* Account references and explicit device import share the main responsive frame. */
.account-bookmarks{padding:clamp(1rem,3vw,2.5rem);max-width:76rem;margin-inline:auto;min-width:0}
.bookmarks-heading{display:flex;justify-content:space-between;align-items:start;gap:1rem;flex-wrap:wrap}
.bookmarks-heading h1{margin:.4rem 0;font-size:clamp(1.8rem,4vw,2.7rem)}
.bookmarks-context{display:flex;flex-wrap:wrap;gap:.6rem;margin:.8rem 0}
.account-bookmarks button{min-height:44px;border:1px solid #c9d5cd;border-radius:.7rem;padding:.65rem 1rem;background:#fff;color:#184b36;cursor:pointer;max-width:100%;overflow-wrap:anywhere}
.account-bookmarks button:hover{background:#eef4ee}.account-bookmarks button:disabled{opacity:.55;cursor:default}
.account-bookmarks button[aria-current=page]{background:#184b36;color:white}
.bookmarks-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,19rem),1fr));gap:1rem;margin-block:1.2rem}
.bookmark-card,.bookmarks-import{padding:1.1rem;border:1px solid #d5dfd7;border-radius:1rem;background:#fff;min-width:0;overflow-wrap:anywhere}
.bookmark-card h2{font-size:1.1rem;margin:.5rem 0}.bookmark-card p{line-height:1.5}
.bookmarks-import{margin-top:1.5rem}.bookmarks-import label{display:flex;align-items:start;gap:.7rem;padding:.7rem 0;border-bottom:1px solid #e8eee8}
.bookmarks-import input{width:1.3rem;height:1.3rem;margin-top:.2rem;flex-shrink:0}
.bookmarks-import strong,.bookmarks-import small{display:block}.bookmarks-import small{margin-top:.3rem}
[data-account-bookmark-note]{flex-basis:100%;font-size:.9rem}

/* Contextual guidance uses existing navigation and the public reader. */
#product-help{width:min(42rem,calc(100% - 2rem));max-height:calc(100dvh - 2rem);overflow:auto;box-sizing:border-box;padding:clamp(1rem,3vw,1.8rem)}
#product-help header{display:flex;gap:1rem;justify-content:space-between;align-items:start}
#product-help h2{margin:.4rem 0;font-size:clamp(1.5rem,4vw,2rem)}
#product-help button{min-height:44px;max-width:100%;border:1px solid #c9d5cd;border-radius:.6rem;padding:.6rem .9rem;background:white;color:#184b36;cursor:pointer;overflow-wrap:anywhere}
#product-help button:disabled{opacity:.55;cursor:default}
.guide-actions{display:flex;flex-wrap:wrap;gap:.65rem;margin:1rem 0}
.guide-intro,.guide-privacy{line-height:1.55}.guide-kind{font-size:.8rem;color:#566b62}
.guide-query-row{display:flex;gap:.6rem;margin:.5rem 0}.guide-query-row input{min-width:0;flex:1;border:1px solid #b6c9bd;border-radius:.6rem;padding:.7rem}
.guide-wide{display:flex;align-items:center;gap:.6rem;margin-top:1rem}.guide-wide input{width:1.2rem;height:1.2rem;flex-shrink:0}
[data-guide-scope]{font-size:.9rem}.guide-results section{margin:1.3rem 0}.guide-results section>button{margin:.25rem}
.guide-results article{padding:.8rem 0;border-bottom:1px solid #d7e2d9}.guide-results article p{font-size:.85rem;line-height:1.45}
.guide-privacy{padding:1rem;background:#eef4ee;border-radius:.75rem;font-size:.9rem}
#product-help [hidden]{display:none}
@media(max-width:25rem){.guide-query-row{flex-wrap:wrap}.guide-query-row button{width:100%}}

.public-export-page{max-width:74rem;margin:0 auto;padding:clamp(1rem,3vw,2.5rem);overflow-wrap:anywhere}
.public-export-page header{display:flex;justify-content:space-between;gap:1.5rem;align-items:start;flex-wrap:wrap}
.public-export-page h1{font-size:clamp(1.55rem,3vw,2.3rem);line-height:1.15}
.public-export-page button{padding:.7rem 1rem;max-width:100%;min-height:44px;border:1px solid #c3cfbb;border-radius:12px;background:#fffdf6;color:#244b3d;font:inherit;cursor:pointer}
.public-export-page button:hover:not(:disabled){background:#edf2de}
.public-export-page button:focus-visible{outline:3px solid #986332;outline-offset:3px}
.public-export-page button:disabled{opacity:.55;cursor:default}
.public-export-page [data-export-download]:not(:disabled){background:#185548;color:white;border-color:#185548}
.public-export-actions{display:flex;flex-wrap:wrap;gap:.75rem;margin:1.5rem 0}
.public-export-page [data-export-preview]{background:var(--surface,#fff);border:1px solid #d5ded5;border-radius:1rem;padding:1rem}
.public-export-page ol{padding-left:1.6rem}
.public-export-page li{padding:.5rem 0}
.public-export-page li span{display:block;font-size:.9rem;margin-top:.25rem}

.tourism-page{max-width:80rem;margin:0 auto;padding:clamp(1rem,3vw,2.5rem);overflow-wrap:anywhere}
.tourism-heading{display:flex;justify-content:space-between;gap:1.5rem;align-items:start;flex-wrap:wrap}
.tourism-heading h1{font-family:Georgia,serif;font-size:clamp(2rem,4vw,3.5rem);line-height:1.1;margin:.6rem 0 1rem}
.tourism-page button:not(.catalog-card__button):not(.place-photo){min-height:44px;border:1px solid #c3cfbb;border-radius:12px;padding:10px 16px;background:#fffdf6;color:#244b3d;font:inherit;cursor:pointer}
.tourism-page button[aria-pressed=true]{background:#185548!important;color:white!important;border-color:#185548!important}
.tourism-page button:disabled{opacity:.55;cursor:default}
.tourism-page button:focus-visible,.tourism-page input:focus-visible,.tourism-page select:focus-visible{outline:3px solid #986332;outline-offset:3px}
.tourism-types,.tourism-filters,.tourism-search{display:flex;gap:.75rem;flex-wrap:wrap;align-items:end;margin:1rem 0}
.tourism-search label{flex:1 1 18rem;min-width:0}
.tourism-search input,.tourism-filters select{display:block;width:100%;min-height:44px;padding:.65rem;border:1px solid #c3cfbb;border-radius:10px;font:inherit;background:white}
.tourism-filters label{flex:1 1 12rem;min-width:0;max-width:26rem}
.tourism-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,18rem),1fr));gap:1rem;align-items:start;margin-top:1rem}
.tourism-page [data-tourism-warning]{padding:1rem;background:#fff4d9;border-radius:12px}
.tourism-page .catalog-card{min-width:0}

@media(max-width:40rem){.tourism-heading{gap:.5rem}.tourism-heading h1{font-size:1.8rem}.tourism-types{display:grid;grid-template-columns:1fr 1fr;gap:.5rem}.tourism-types button:last-child{grid-column:1/-1}.tourism-types button{padding:8px!important}.tourism-search{gap:.5rem}}

.avatar-dialog{width:min(38rem,calc(100vw - 1.5rem));max-height:calc(100dvh - 2rem);overflow:auto;box-sizing:border-box;border:1px solid #c3cfbb;border-radius:20px;background:#fffdf6;color:#183c3d;padding:clamp(1rem,3vw,1.5rem)}
.avatar-dialog::backdrop{background:#102e2e80}
.avatar-dialog header,.avatar-dialog footer,.walking-heading-actions{display:flex;align-items:center;justify-content:space-between;gap:.75rem;flex-wrap:wrap}
.avatar-dialog h2{font:700 1.8rem Georgia,serif;margin:.25rem 0}
.avatar-dialog fieldset{min-width:0;border:1px solid #d5ded5;border-radius:12px;padding:1rem;margin:1rem 0}
.avatar-dialog button{min-height:44px;padding:.6rem 1rem;border:1px solid #c3cfbb;border-radius:12px;background:white;color:#244b3d;font:inherit;cursor:pointer}
.avatar-dialog [data-avatar-apply]{background:#185548;color:white;border-color:#185548}
.avatar-preview{display:grid;place-items:center;border-radius:18px;background:#eef3e6;padding:1rem}
.avatar-preview svg{width:90px;height:120px}
.avatar-options{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:.6rem}
.avatar-options label,.avatar-styles label{display:flex;align-items:center;gap:.4rem;min-height:44px;padding:.4rem;border:1px solid #d5ded5;border-radius:10px;cursor:pointer}
.avatar-options label{flex-wrap:wrap}.avatar-options label:has(input:checked),.avatar-styles label:has(input:checked){background:#e6efdc;border-color:#185548}
.avatar-swatch{width:1.5rem;height:1.5rem;border-radius:50%;border:1px solid #0002;flex:none}
.avatar-styles{display:flex;gap:.6rem;flex-wrap:wrap}
.avatar-dialog input{accent-color:#185548}.avatar-dialog input:focus-visible,.avatar-dialog button:focus-visible{outline:3px solid #986332;outline-offset:3px}
.avatar-dialog [data-avatar-source]{font-size:.85rem;color:#53685c}
.plaza-canvas-card footer{flex-wrap:wrap}

@media(max-width:35rem){.avatar-options{grid-template-columns:repeat(2,minmax(0,1fr))}.avatar-options label{min-width:0;overflow-wrap:anywhere}}

/* Original plaza ambience, explicit sound controls. */
.plaza-canvas-card > header {flex-wrap:wrap;}
.plaza-scene-controls {display:flex;gap:8px;flex-wrap:wrap;align-items:center;}
.plaza-scene-controls button {min-height:44px;}
.plaza-scene-controls [aria-pressed="true"] {background:#e2eddf;border-color:#789773;}
.plaza-audio-status {padding:0 16px 12px;margin:0;font-size:12px;color:#50644d;overflow-wrap:anywhere;}
@media(max-width:480px){.plaza-scene-controls{width:100%;}.plaza-scene-controls button{flex:1;}}

.business-verification-requirements { margin:.75rem 0; padding:.75rem; border:1px solid #d2dbdf; border-radius:.7rem; background:#f6f8f8; font-size:.85rem; line-height:1.5; overflow-wrap:anywhere; }
.business-verification-requirements summary { min-height:44px; display:flex; align-items:center; cursor:pointer; font-weight:700; font-size:.95rem; }
.business-verification-requirements summary:focus-visible { outline:3px solid #075da8; outline-offset:3px; }
.business-verification-requirements ul { padding-left:1.2rem; }
.business-verification-requirements li + li { margin-top:.35rem; }

/* Product introduction is a separate public page. */
.product-presentation-link{font-size:12px;line-height:1.4;min-height:44px;display:inline-flex;align-items:center;padding:8px 12px;color:inherit;text-decoration:underline;text-underline-offset:3px}
.registration-unavailable{padding:24px;max-width:min(440px,calc(100vw - 32px))}
.registration-unavailable p{margin:16px 0;line-height:1.6}

/* Compact screens keep navigation reachable, including landscape and text input. */
@media (max-width:67.99rem) {
 .product-layout .product-search input,
 .product-layout .product-territory select,
 .product-layout input:not([type="checkbox"]):not([type="radio"]),
 .product-layout select,.product-layout textarea {font-size:max(16px,1rem);}
 .product-layout .mobile-dock {width:100%;max-width:none;margin:0;border-radius:0;}
 .product-layout > main {overflow:hidden;}
 .product-layout #browse-controls {overflow:auto;overscroll-behavior:contain;}
}
@media (max-width:67.99rem) and (max-height:50rem) {
 .product-layout > main {padding:8px 12px;}
 .product-heading {margin-bottom:8px;gap:8px;}
 .product-heading .eyebrow {display:none;}
 .product-heading h1 {font-size:22px;}
 .product-topbar.topbar {padding-block:6px;min-height:56px;}
 .product-layout #browse-controls {padding:6px 8px;}
}
@media (max-width:67.99rem) and (max-height:35rem) {
 .submission-dialog {height:calc(100dvh - 16px);max-height:calc(100dvh - 16px);scroll-padding-block:5rem 6rem;}
 .submission-dialog__header {padding:12px 16px;}
 .submission-dialog__header .eyebrow,.submission-dialog .sheet-handle {display:none;}
 .submission-dialog__header h2 {font-size:20px;}
 .submission-dialog > .progress-steps {margin-block:8px;}
}
@media (max-width:67.99rem) and (max-height:50rem) {
 .product-heading [data-page-action] {display:none;}
 .product-layout #map-zone-status {inset-inline-start:auto;inset-inline-end:12px;max-width:min(24rem,calc(100% - 6rem));font-size:12px;line-height:1.3;}
}
@media (max-width:67.99rem) {
 html[data-discovery-view] .product-layout .map-workspace {grid-template-rows:fit-content(50%) minmax(0,1fr);}
 .product-layout #browse-controls {min-height:0;}
}
