/*! Zona Activa 1.8.1 | Theme/Core mobile interaction compatibility */

/*
 * Host Theme renders contextual dock surfaces with display:block even
 * while their HTML `hidden` attribute is present. In mobile browsers this
 * leaves an opacity:0 fixed backdrop across the viewport, which captures all
 * taps below it. Zona Activa loads this sheet last only on its own surfaces.
 */
@media (max-width:1080px){
  [data-krn-sidebar-backdrop][hidden],
  [data-krn-context-menu-backdrop][hidden],
  [data-krn-context-menu-sheet][hidden],
  .krn-role-preview-backdrop[hidden],
  .krn-role-preview-panel[hidden],
  .krn-mirror-confirm[hidden],
  .krn-mvp-modal[hidden],
  .krn-intro-modal[aria-hidden="true"]{
    display:none!important;
    visibility:hidden!important;
    opacity:0!important;
    pointer-events:none!important;
  }

  [data-za-shell-inactive]{
    pointer-events:none!important;
  }

  body:not(.krn-sidebar-open) [data-krn-sidebar-backdrop],
  .krn-context-dock-backdrop:not(.is-open),
  .krn-context-dock-sheet:not(.is-open),
  .krn-role-preview-backdrop:not(.is-open),
  .krn-role-preview-panel:not(.is-open),
  .krn-mirror-confirm:not(.is-open),
  .krn-intro-modal:not(.is-open),
  .krn-mvp-modal[aria-hidden="true"]{
    pointer-events:none!important;
  }

  body.krn-sidebar-open [data-krn-sidebar-backdrop]:not([hidden]),
  body.krn-context-menu-open .krn-context-dock-backdrop.is-open:not([hidden]),
  body.krn-context-menu-open .krn-context-dock-sheet.is-open:not([hidden]),
  .krn-role-preview-backdrop.is-open,
  .krn-role-preview-panel.is-open,
  .krn-mirror-confirm.is-open,
  .krn-intro-modal.is-open,
  .krn-mvp-modal:not([hidden])[aria-hidden="false"]{
    pointer-events:auto!important;
  }

  /* The plugin's own controls must stay above Leaflet, never above a real host modal. */
  .za-app .za-map-first-bar,
  .za-app [data-za-immersive-context],
  .za-app [data-za-modal]:not([hidden]),
  .za-app [data-za-comparator-sheet]:not([hidden]){
    pointer-events:auto;
  }

  .za-app button,
  .za-app a,
  .za-app input,
  .za-app select,
  .za-app textarea,
  .za-app summary,
  .za-app [role="button"]{
    touch-action:manipulation;
    -webkit-tap-highlight-color:transparent;
  }
}


/* Zona Activa 1.8.1 · arranque recuperable */
.za-boot-fallback,.za-recovery-card,.za-map-recovery{display:flex;align-items:flex-start;gap:14px;color:var(--za-ink,#20113d)}
.za-boot-fallback{padding:22px;align-items:center}.za-boot-fallback strong,.za-recovery-card strong,.za-map-recovery strong{display:block;font-size:15px;line-height:1.25}.za-boot-fallback small,.za-recovery-card p,.za-map-recovery p{display:block;margin:5px 0 12px;color:var(--za-muted,#6f6380);line-height:1.45}
.za-recovery-card{padding:18px;border:1px solid rgba(123,38,168,.18);border-radius:18px;background:rgba(255,255,255,.82);box-shadow:0 16px 38px rgba(47,15,75,.08)}
.za-recovery-card__icon,.za-map-recovery__icon{display:grid;place-items:center;flex:0 0 42px;width:42px;height:42px;border-radius:14px;color:#7b26a8;background:rgba(224,0,143,.09)}
.za-map-recovery{position:absolute;inset:50% auto auto 50%;transform:translate(-50%,-50%);width:min(440px,calc(100% - 32px));padding:20px;border:1px solid rgba(123,38,168,.18);border-radius:20px;background:rgba(255,255,255,.94);box-shadow:0 22px 55px rgba(45,13,72,.18);z-index:620}
[data-za-map-stage][data-za-map-state="error"]{position:relative;min-height:360px;background:linear-gradient(135deg,rgba(243,235,250,.92),rgba(255,255,255,.9))}
[data-za-map-stage][data-za-map-state="error"]::before{content:"";position:absolute;inset:0;pointer-events:none;opacity:.3;background-image:linear-gradient(rgba(123,38,168,.08) 1px,transparent 1px),linear-gradient(90deg,rgba(123,38,168,.08) 1px,transparent 1px);background-size:72px 72px}
.za-map-loading{min-height:220px;display:flex;align-items:center;justify-content:center;gap:10px;color:var(--za-muted,#6f6380)}
@media(max-width:767px){
  .za-map-recovery{top:calc(var(--za-map-first-bar-height,108px) + 12px);bottom:auto;transform:translateX(-50%);width:calc(100% - 24px);padding:12px;border-radius:17px;align-items:center;gap:10px;z-index:620}
  .za-map-recovery__icon{flex-basis:36px;width:36px;height:36px;border-radius:12px}
  .za-map-recovery strong{font-size:14px}
  .za-map-recovery p{margin:3px 0 8px;font-size:12px;line-height:1.3;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
  .za-map-recovery .za-btn{min-height:36px;padding:7px 10px}
  [data-za-map-stage][data-za-map-state="error"]{min-height:300px}
  .za-recovery-card{padding:15px}
}
