/* MAPA CAPI 12.1 — Capa de acabado visual. Mantener siempre la V12 debajo. */
:root{--capi-ocean:#143c62;--capi-blue:#0865bc;--capi-blue-deep:#0956a6;--capi-ink:#203b55;--capi-dim:#687f97;--capi-edge:#dfe8f2;--capi-surface:#f7faff;--capi-radius:14px}
.v121-icon{width:18px;height:18px;flex:0 0 18px;display:block;vertical-align:middle;pointer-events:none}
/* Todos los controles flotantes del mapa usan la misma altura, radio, tipografía e iconografía. */
body.field-only .filters{top:calc(10px + env(safe-area-inset-top))!important;left:10px!important;max-width:calc(100vw - 118px)!important;gap:7px!important}
body.field-only .filters>.layer-and-staff,body.field-only .filters>.filter-bottom{gap:7px!important}
body.field-only .layers summary{
  height:42px!important;min-height:42px!important;display:inline-flex!important;align-items:center!important;
  justify-content:center!important;gap:6px!important;margin:0!important;padding:0 11px!important;
  border:1px solid #cbd9e8!important;border-radius:13px!important;color:#204e77!important;
  background:#fffffff5!important;box-shadow:0 3px 12px #152f4c24!important;
  font-size:12px!important;font-weight:760!important;line-height:1!important;letter-spacing:-.1px!important;
  backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px)
}
body.field-only #layersPanel summary::before,body.field-only .type-layers summary::before{content:none!important;display:none!important}
body.field-only .layers[open] summary{background:#eaf4ff!important;color:#0757a6!important;border-color:#83b5e4!important}
.v121-filter-label{display:inline-flex;align-items:center;gap:7px;font-size:12px;white-space:nowrap;line-height:1}
.v121-filter-label svg{display:block;flex:none;width:18px;height:18px;stroke:currentColor;stroke-width:1.85;stroke-linecap:round;stroke-linejoin:round;fill:none}
body.field-only .type-layers summary #typeCount{
  font-size:10px!important;font-weight:790!important;margin-left:1px!important;padding:3px 5px!important;
  border:0!important;border-radius:9px!important;background:#e8f0fa!important;color:#335f84!important
}
body.field-only .filters .layer-options{top:calc(60px + env(safe-area-inset-top))!important;max-height:calc(50dvh - env(safe-area-inset-top) - 78px)!important;border-radius:14px!important;border-color:#d3e1ed!important;box-shadow:0 10px 25px #20395030!important;padding:10px!important;gap:5px!important}
body.field-only .layer-options label{font-size:11px!important;min-height:33px!important;padding:4px!important;border-radius:8px!important}
body.field-only .layer-options label:active{background:#eef6fc}
body.field-only .v11-session{
  top:calc(10px + env(safe-area-inset-top))!important;right:10px!important;height:42px!important;
  padding:0 4px 0 10px!important;gap:7px!important;border-radius:13px!important;
  border:1px solid #cbd9e8!important;box-shadow:0 3px 12px #152f4c24!important;
  background:#fffffff5!important;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px)
}
body.field-only .v11-session .v11-connection{width:8px!important;height:8px!important;flex:0 0 8px;box-shadow:0 0 0 3px #e3f6ec!important}
body.field-only .v11-session .v11-connection.offline,body.field-only .v11-session .v11-connection.pending{box-shadow:0 0 0 3px #fff3d9!important}
body.field-only .v11-session .v11-connection.error{box-shadow:0 0 0 3px #fce7e8!important}
body.field-only #v11Exit{
  display:inline-flex!important;align-items:center!important;justify-content:center!important;gap:5px!important;
  width:auto!important;height:34px!important;min-height:34px!important;min-width:64px!important;
  padding:0 7px!important;border:0!important;border-radius:10px!important;
  font:750 12px/1 system-ui,-apple-system,'Segoe UI',sans-serif!important;
  color:#245478!important;background:transparent!important
}
body.field-only #v11Exit:active{background:#edf5fc!important}
body.field-only #v11Exit .v121-icon{width:19px!important;height:19px!important;flex-basis:19px!important;display:block!important}
body.field-only .field-center-location{
  width:45px!important;height:45px!important;bottom:14px!important;right:13px!important;
  border:1px solid #d0dfec!important;border-radius:50%!important;background:#fff!important;
  color:#0864ba!important;box-shadow:0 4px 15px #0c37574a!important
}
body.field-only .field-center-location .v121-icon{width:23px;height:23px;flex-basis:23px}
body.field-only .v121-type-symbol{display:grid;place-items:center;width:25px!important;height:26px!important}
body.field-only .v121-type-symbol svg{display:block;width:22px;height:22px}
body.field-only .v121-type-symbol .pin-shape{fill:#65809d;stroke:#fff;stroke-width:3}
/* Misma familia de marcadores aprobada: forma=sector, relleno=estado, etiqueta=grupo. */
.capi-pin-v12{background:none!important;border:0!important;overflow:visible!important}
.capi-pin-v12 .map-pin-v4{position:relative;filter:drop-shadow(0 2px 2px #19334e55)!important;overflow:visible!important}
.capi-pin-v12 .map-pin-v4>svg{width:32px!important;height:32px!important;overflow:visible;position:relative;z-index:1}
.capi-pin-v12 .map-pin-v4 .pin-shape{stroke:white;stroke-width:3.4px;stroke-linejoin:round}
.capi-pin-v12 .map-pin-v4 .pin-number{font-size:19px!important;font-weight:780!important;stroke:none!important;letter-spacing:-.55px!important;dominant-baseline:auto}
.capi-pin-v12 .map-pin-v4.selected{outline:none!important;box-shadow:none!important;border-radius:0!important}
.capi-pin-v12 .map-pin-v4.selected .pin-shape{stroke:#1268dd!important;stroke-width:4.1px!important}
.capi-pin-v12 .map-pin-v4.related .pin-number{fill:#1268dd!important}
.capi-pin-v12 .map-pin-v4 .appt-dot{
  position:absolute!important;z-index:4!important;
  right:0!important;top:-1px!important;width:17px!important;height:17px!important;
  border:1.6px solid #fff!important;border-radius:50%!important;
  display:grid!important;place-items:center!important;background:#1463b7!important;
  box-shadow:0 1px 4px #1b3e5c3f!important;color:#fff!important
}
.capi-pin-v12 .map-pin-v4 .appt-dot .v121-icon{width:11px!important;height:11px!important;flex-basis:11px!important}
.capi-pin-v12 .map-pin-v4 .absent-number{
  position:absolute!important;z-index:4!important;
  left:0!important;top:0!important;min-width:16px!important;width:16px!important;height:16px!important;
  border:1.5px solid white!important;border-radius:50%!important;padding:0!important;
  background:#be7e16!important;color:#fff!important;font-size:10px!important;font-weight:820!important;line-height:1!important
}
.capi-pin-v12 .map-pin-v4 .corner{position:absolute!important;z-index:4!important;bottom:0!important;right:0!important;border-radius:6px!important;border:1.4px solid white!important;font-weight:850!important;font-size:8px!important;padding:0 3px!important;line-height:16px!important}
.capi-pin-v12 .map-pin-v4 .second-absent-dot{position:absolute!important;z-index:4!important;left:0!important;bottom:0!important;top:auto!important;width:14px!important;height:14px!important;font-size:9px!important;border:1.5px solid white!important}
body.field-only .capi-pin-v12 .map-pin-v4>svg{width:32px!important;height:32px!important}
body.field-only .capi-pin-v12 .map-pin-v4 .pin-number{font-size:19px!important}
/* Menús inferiores, inspirados en el montaje: tarjetas limpias, espacio y azul profundo. */
body.field-only .panel{background:#fbfcff!important;border-top:1px solid #d7e2ee!important}
body.field-only .panel-tabs{
  min-height:64px!important;gap:5px!important;padding:10px 10px 9px!important;background:#fbfcff!important;
  border-bottom:1px solid #e4edf6!important;box-shadow:none!important
}
body.field-only .panel-tabs .panel-tab{
  min-width:0!important;min-height:44px!important;display:flex!important;align-items:center!important;justify-content:center!important;
  gap:5px!important;padding:8px 5px!important;border:1px solid #e0e9f3!important;
  border-radius:13px!important;background:#f5f8fd!important;
  font-size:12px!important;font-weight:730!important;color:#3c5977!important;white-space:nowrap
}
body.field-only .panel-tabs .panel-tab .v121-icon{width:17px!important;height:17px!important;flex-basis:17px!important}
body.field-only .panel-tabs .panel-tab.active{
  color:#fff!important;background:linear-gradient(135deg,#0870cb,#0754a9)!important;
  border-color:#0d60b5!important;box-shadow:0 3px 8px #1664ac2b!important
}
body.field-only .panel-tabs .panel-tab span[id]{
  display:inline-flex!important;align-items:center!important;justify-content:center!important;
  min-width:21px!important;height:21px!important;margin:0!important;padding:1px 5px!important;
  background:#e6eef9!important;color:#275882!important;font-size:10px!important;font-weight:820!important;
  border-radius:50%!important;font-variant-numeric:tabular-nums
}
body.field-only .panel-tabs .panel-tab.active span[id]{color:#15558c!important;background:#fff!important}
body.field-only .panel-tabs .panel-tab #groupsPendingTab{background:#dff3e9!important;color:#176644!important}
body.field-only .v11-track>section{background:#fbfcff!important;padding:12px 13px calc(18px + env(safe-area-inset-bottom))!important}
body.field-only .field-search{margin-bottom:11px!important}
body.field-only .field-search label{color:#59728b!important;font-weight:740!important;font-size:11px!important}
body.field-only .field-search input{background:#fff!important;border:1px solid #d8e3f0!important;border-radius:13px!important;min-height:45px!important;box-shadow:0 1px 3px #24496909!important;font-size:13px!important}
body.field-only .selection .panel-heading{margin-bottom:8px!important}
body.field-only .selection .panel-heading strong{font-size:11px!important;color:#6c8197!important}
body.field-only .contact-detail{
  background:#fff!important;border:1px solid #e0e9f2!important;border-radius:17px!important;
  padding:12px 12px 16px!important;box-shadow:0 5px 18px #1d477510!important;gap:9px!important
}
body.field-only .contact-head{display:flex;align-items:center!important;gap:8px!important;flex-wrap:wrap;margin:0!important}
body.field-only .contact-head .shape-chip{width:33px!important;height:33px!important;transform:none!important;margin-right:0!important}
body.field-only .contact-head .shape-chip svg{width:31px!important;height:31px!important}
body.field-only .v121-contact-title{flex:1 1 130px;min-width:0}
body.field-only .contact-head strong{color:#193956!important;font-size:16px!important;font-weight:800!important;letter-spacing:-.3px!important}
body.field-only .contact-head small{display:block;color:#688098!important;font-size:10px!important;line-height:1.35!important}
.v121-id-copy{display:inline-flex;align-items:center;justify-content:center;gap:5px;padding:6px 8px;border:1px solid #d7e6f3;border-radius:9px;background:#f2f7fc;color:#345f81;font-weight:780;font-size:10px;max-width:100%;min-height:29px;white-space:nowrap}
.v121-id-copy span{max-width:145px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.v121-id-copy .v121-icon{width:13px;height:13px;flex-basis:13px}
.v121-id-copy:active{background:#dceafb}
body.field-only .v11-address{color:#627991!important;margin-top:-4px!important;font-size:11px!important}
body.field-only .appt-current{border-radius:11px!important;background:#eaf6ef!important;color:#186a4a!important;border:1px solid #ccebd9!important;padding:8px 10px!important}
body.field-only .appt-current strong{font-size:12px!important;color:#176946!important}
/* Rejilla 3x2 homogénea: exactamente seis controles de igual altura y aspecto. */
body.field-only .v11-actions{display:grid!important;grid-template-columns:repeat(3,minmax(0,1fr))!important;gap:7px!important;margin:3px 0 6px!important}
body.field-only .v11-actions>*{position:relative!important;min-width:0!important;width:100%!important;height:48px!important;min-height:48px!important;max-height:48px!important;margin:0!important;padding:5px 4px!important;border-radius:12px!important;box-sizing:border-box!important}
body.field-only .v11-actions .status-area,
body.field-only .v11-actions .button,
body.field-only .v11-actions .small-action,
body.field-only .v11-actions .v11-action-button,
body.field-only .v11-actions .survey-open,
body.field-only .v11-actions .call-button{
  display:inline-flex!important;align-items:center!important;justify-content:center!important;gap:5px!important;
  border:1px solid #d4e1ef!important;border-radius:12px!important;background:#f5f9fe!important;
  color:#265a87!important;font:740 10.5px/1.12 system-ui,-apple-system,"Segoe UI",sans-serif!important;
  text-align:center!important;text-decoration:none!important;box-shadow:none!important;letter-spacing:-.1px!important
}
body.field-only .v11-actions .v121-icon{width:17px!important;height:17px!important;flex:0 0 17px!important;display:block!important}
body.field-only .v11-actions .v121-status-title{display:inline-block!important;overflow:hidden;text-overflow:ellipsis;white-space:nowrap!important}
body.field-only .v11-actions .status-area{padding:0 4px!important;overflow:hidden}
body.field-only .v11-actions .status-control{
  position:absolute!important;inset:0!important;display:block!important;width:100%!important;height:100%!important;
  min-height:0!important;opacity:0!important;cursor:pointer!important;padding:0!important;margin:0!important;border:0!important;
  z-index:3!important;appearance:auto!important
}
body.field-only .v11-actions .survey-open{background:linear-gradient(135deg,#1075d3,#0756af)!important;color:white!important;border-color:#0b66bf!important;max-width:none!important}
body.field-only .v11-actions .call-button{background:#eef9f3!important;color:#146a48!important;border-color:#ccead9!important}
body.field-only .v11-actions .button:active,body.field-only .v11-actions .small-action:active,body.field-only .v11-actions .v11-action-button:active{background:#e2effb!important}
body.field-only .history-title{border-top:1px solid #e5ecf4!important;padding-top:10px!important;color:#294b69!important;margin-top:3px!important}
body.field-only .history .event{background:#f5f8fc!important;border:1px solid #e6edf5!important;border-radius:11px!important;padding:9px!important}
body.field-only .event-head strong{font-size:11px!important}
body.field-only .history .event-time{font-size:10px!important}
body.field-only #notesList .note-list-card,body.field-only .appointment-card{
  border-radius:13px!important;background:#fff!important;border:1px solid #dfe8f2!important;
  box-shadow:0 2px 10px #1f4a7610!important;padding:12px!important
}
body.field-only .appointment-card{border-left:4px solid #1672ce!important}
body.field-only .appointment-card.overdue{border-left-color:#e6a344!important}
body.field-only .appointment-date{color:#0866bc!important;font-size:13px!important}
body.field-only .v11-archive{border-radius:10px!important;font-weight:750!important}
/* Mensaje transitorio de ID copiado. No entra en el layout 50/50. */
.v121-copy-toast[hidden]{display:none!important}
.v121-copy-toast{position:fixed;z-index:99999;left:50%;bottom:calc(14px + env(safe-area-inset-bottom));transform:translateX(-50%);width:max-content;max-width:calc(100vw - 24px);padding:11px 15px;background:#135f50;color:white;font-size:12px;font-weight:730;line-height:1.4;border-radius:12px;box-shadow:0 7px 24px #122d3159;text-align:center;overflow-wrap:anywhere}
.v121-copy-toast.v121-copy-warning{background:#89511f}
@media(max-width:400px){
  body.field-only .layers summary{padding:0 8px!important}
  body.field-only .filters{left:7px!important;gap:4px!important;max-width:calc(100vw - 110px)!important}
  body.field-only .filters>.layer-and-staff,body.field-only .filters>.filter-bottom{gap:4px!important}
  body.field-only .v11-session{right:7px!important}
  body.field-only .panel-tabs{padding:8px 6px!important;gap:4px!important}
  body.field-only .panel-tabs .panel-tab{font-size:11px!important;padding:7px 3px!important;gap:4px!important}
  body.field-only .panel-tabs .panel-tab .v121-icon{width:15px!important;height:15px!important;flex-basis:15px!important}
  body.field-only .v11-actions{gap:5px!important}
  body.field-only .v11-actions .button,body.field-only .v11-actions .small-action,body.field-only .v11-actions .survey-open,body.field-only .v11-actions .status-area,body.field-only .v11-actions .v11-action-button{font-size:10px!important;gap:4px!important}
  body.field-only .v11-actions .v121-icon{width:15px!important;height:15px!important;flex-basis:15px!important}
}
@media(max-width:345px){
  body.field-only .type-layers summary #typeCount{display:none!important}
  body.field-only .panel-tabs .panel-tab .v121-icon{display:none!important}
  body.field-only .v11-actions>*{height:47px!important;min-height:47px!important;max-height:47px!important}
}


body.field-only .notes-top .notes-only:last-child{display:none!important}
.v121-id-copy{display:none!important}
body.field-only .appt-current{position:relative!important}
body.field-only .appt-current.appt-future{background:#eaf6ef!important;border-color:#ccebd9!important;color:#186a4a!important}
body.field-only .appt-current.appt-future strong{color:#176946!important}
body.field-only .appt-current.appt-soon{background:#fff6dc!important;border-color:#f0d99b!important;color:#8b5a05!important}
body.field-only .appt-current.appt-soon strong{color:#8b5a05!important}
body.field-only .appt-current.appt-overdue{background:#fdeced!important;border-color:#f2b8bd!important;color:#9b2330!important}
body.field-only .appt-current.appt-overdue strong{color:#9b2330!important}
body.field-only .appt-current .appt-current-top{display:flex!important;align-items:center!important;justify-content:space-between!important;gap:8px!important}
body.field-only .appt-current .appt-cancel-inline{min-height:28px!important;height:28px!important;padding:0 10px!important;border-radius:9px!important;background:#ffffffd9!important;border:1px solid currentColor!important;color:inherit!important;font-size:10px!important;font-weight:760!important}
body.field-only .panel-tabs .panel-tab span[id].badge-soon{background:#fff3d0!important;color:#936106!important}
body.field-only .panel-tabs .panel-tab span[id].badge-overdue{background:#fbe2e5!important;color:#a12a37!important}
body.field-only .appointment-card.soon{border-left-color:#e2b03f!important;background:#fff9ea!important}
body.field-only .appointment-card.soon .appointment-date{color:#8b5a05!important}
body.field-only .appointment-card.overdue{border-left-color:#d7464e!important;background:#fff1f2!important}
body.field-only .appointment-card.overdue .appointment-date{color:#a12a37!important}
body.field-only .v11-actions .appointment-actions{display:block!important}
body.field-only .v11-actions .appointment-actions .appointment-button{width:100%!important}
