/*
  MapaCC Design System
  Camada global de tokens e padronizacao visual. Mantem compatibilidade
  com classes legadas usadas pelo JS: green, red, gray, light, save, pill,
  badge, status, card, modal, block e variantes do mapa.
*/
:root{
  --color-primary:#0f766e;
  --color-primary-hover:#075e54;
  --color-primary-strong:#064e3b;
  --color-primary-soft:#e8f5ef;
  --color-success:#0f766e;
  --color-success-hover:#0b6259;
  --color-success-soft:#ecfdf5;
  --color-warning:#d97706;
  --color-warning-hover:#b45309;
  --color-warning-soft:#fff7ed;
  --color-danger:#dc2626;
  --color-danger-hover:#991b1b;
  --color-danger-soft:#fff1f2;
  --color-info:#0e7490;
  --color-info-soft:#ecfeff;
  --color-purple:#7c3aed;
  --color-purple-hover:#5b21b6;
  --color-purple-soft:#f5f3ff;
  --color-bg:#f4f7f8;
  --color-bg-subtle:#eef4f2;
  --color-surface:#ffffff;
  --color-surface-soft:#f8fafc;
  --color-surface-raised:#fbfefd;
  --color-border:#d8e2dc;
  --color-border-strong:#b8cbc1;
  --color-text:#172033;
  --color-muted:#64748b;
  --color-disabled:#94a3b8;
  --color-disabled-soft:#f1f5f9;
  --color-on-primary:#ffffff;

  --radius-sm:6px;
  --radius-md:8px;
  --radius-lg:12px;
  --radius-xl:16px;
  --radius-pill:999px;

  --space-1:4px;
  --space-2:8px;
  --space-3:12px;
  --space-4:16px;
  --space-5:24px;
  --space-6:32px;

  --font-size-xs:12px;
  --font-size-sm:13px;
  --font-size-md:14px;
  --font-size-lg:16px;
  --font-size-xl:20px;

  --shadow-xs:0 1px 2px rgba(15,23,42,.05);
  --shadow-sm:0 8px 20px rgba(15,23,42,.06);
  --shadow-md:0 16px 38px rgba(15,23,42,.10);
  --shadow-lg:0 28px 70px rgba(15,23,42,.18);
  --focus-ring:0 0 0 3px rgba(15,118,110,.20);

  --btn-height-sm:32px;
  --btn-height-md:38px;
  --btn-height-lg:44px;

  --status-pendente-bg:var(--color-warning-soft);
  --status-pendente-border:#fed7aa;
  --status-pendente-text:#9a3412;
  --status-escalado-bg:var(--color-success-soft);
  --status-escalado-border:#99f6e4;
  --status-escalado-text:#064e3b;
  --status-externo-bg:var(--color-purple-soft);
  --status-externo-border:#ddd6fe;
  --status-externo-text:#5b21b6;
  --status-conflito-bg:var(--color-danger-soft);
  --status-conflito-border:#fecdd3;
  --status-conflito-text:#991b1b;
  --status-finalizado-bg:#f1f5f9;
  --status-finalizado-border:#cbd5e1;
  --status-finalizado-text:#475569;
  --status-info-bg:var(--color-primary-soft);
  --status-info-border:#99f6e4;
  --status-info-text:#064e3b;

  /* Aliases legados usados pelos CSS antigos. */
  --bg:var(--color-bg-subtle);
  --panel:var(--color-surface-soft);
  --panel2:#eef5ef;
  --surface:var(--color-surface);
  --surface-soft:var(--color-surface-soft);
  --card:var(--color-surface);
  --card2:var(--color-surface-raised);
  --line:var(--color-border);
  --lineStrong:var(--color-border-strong);
  --text:var(--color-text);
  --text-main:var(--color-text);
  --text-muted:var(--color-muted);
  --text-on-primary:var(--color-on-primary);
  --muted:var(--color-muted);
  --blue:var(--color-primary);
  --blue2:var(--color-primary-hover);
  --green:var(--color-success);
  --green2:var(--color-success-hover);
  --red:var(--color-danger);
  --red2:var(--color-danger-hover);
  --amber:var(--color-warning);
  --purple:var(--color-purple);
  --gray:#64748b;
  --button-primary:var(--color-primary);
  --button-primary-dark:var(--color-primary-hover);
  --button-primary-soft:var(--color-primary-soft);
  --button-border:var(--color-border);
  --button-text:var(--color-text);
  --lane:#e0f2fe;
  --oeste:#e7f4ee;
  --virtual:#fff1d1;
  --hemo:#f3e8ff;
}

*{
  box-sizing:border-box;
  letter-spacing:0!important;
}

html,
body{
  color:var(--color-text)!important;
  background:
    linear-gradient(rgba(23,35,31,.026) 1px,transparent 1px),
    linear-gradient(90deg,rgba(23,35,31,.022) 1px,transparent 1px),
    linear-gradient(180deg,#f9fbfa 0%,var(--color-bg) 58%,#eef4f2 100%)!important;
  background-size:48px 48px,48px 48px,auto!important;
  font-size:var(--font-size-md);
}

body:before{
  background:linear-gradient(180deg,rgba(255,255,255,.70),rgba(255,255,255,.20) 44%,rgba(238,244,242,.50))!important;
}

h1,
h2,
h3,
.title,
.brand,
.brandName,
.caseName,
.name{
  color:var(--color-text)!important;
}

.sub,
.hint,
.muted,
.meta,
.caseMeta,
small{
  color:var(--color-muted)!important;
}

header,
.multiHeader,
.biTopbar,
.siteTop{
  background:rgba(255,255,255,.94)!important;
  color:var(--color-text)!important;
  border-bottom:1px solid var(--color-border)!important;
  box-shadow:0 10px 28px rgba(15,23,42,.07)!important;
  backdrop-filter:blur(12px);
}

main{
  background:transparent!important;
}

/* Botoes */
button:not(.biKpi):not(.biBarRow):not(.biDonut):not(.biHeatCell):not(.heatCell):not(.companyCard):not(.userButton):not(.obsBadge):not(.freeAnesSheetHandle):not(.anesSummaryBadge),
.btn,
a.btn,
.ghostLink{
  min-height:var(--btn-height-md)!important;
  display:inline-flex!important;
  align-items:center!important;
  justify-content:center!important;
  gap:var(--space-2)!important;
  border:1px solid rgba(15,118,110,.34)!important;
  border-radius:var(--radius-md)!important;
  padding:9px 13px!important;
  background:linear-gradient(135deg,var(--color-primary),var(--color-primary-hover))!important;
  color:var(--color-on-primary)!important;
  -webkit-text-fill-color:var(--color-on-primary)!important;
  box-shadow:0 8px 18px rgba(15,118,110,.16),inset 0 1px 0 rgba(255,255,255,.20)!important;
  font:inherit!important;
  font-size:var(--font-size-sm)!important;
  font-weight:900!important;
  line-height:1.1!important;
  text-decoration:none!important;
  text-shadow:none!important;
  cursor:pointer;
  touch-action:manipulation;
  transition:background-color .15s ease,border-color .15s ease,box-shadow .15s ease,filter .15s ease,transform .08s ease!important;
}

button:not(.biKpi):not(.biBarRow):not(.biDonut):not(.biHeatCell):not(.heatCell):not(.companyCard):not(.userButton):not(.obsBadge):not(.freeAnesSheetHandle):not(.anesSummaryBadge):hover:not(:disabled),
.btn:hover,
a.btn:hover{
  filter:brightness(1.03) saturate(1.03);
  transform:translateY(-1px);
}

button:not(.biKpi):not(.biBarRow):not(.biDonut):not(.biHeatCell):not(.heatCell):not(.companyCard):not(.userButton):not(.obsBadge):not(.freeAnesSheetHandle):not(.anesSummaryBadge):active:not(:disabled),
.btn:active,
a.btn:active{
  transform:translateY(0) scale(.99);
}

button:not(.biKpi):not(.biBarRow):not(.biDonut):not(.biHeatCell):not(.heatCell):not(.companyCard):not(.userButton):not(.obsBadge):not(.freeAnesSheetHandle):not(.anesSummaryBadge):focus-visible,
.btn:focus-visible,
a.btn:focus-visible{
  outline:0!important;
  box-shadow:var(--focus-ring),0 8px 18px rgba(15,118,110,.16)!important;
}

button:not(.biKpi):not(.biBarRow):not(.biDonut):not(.biHeatCell):not(.heatCell):not(.companyCard):not(.userButton):not(.obsBadge):not(.freeAnesSheetHandle):not(.anesSummaryBadge):disabled,
button.disabled,
.btn:disabled,
.btn.disabled{
  background:var(--color-disabled-soft)!important;
  border-color:var(--color-border)!important;
  color:#64748b!important;
  -webkit-text-fill-color:#64748b!important;
  box-shadow:none!important;
  cursor:not-allowed!important;
  opacity:1!important;
  filter:none!important;
  transform:none!important;
}

.btn-primary,
button.btn-primary{
  background:linear-gradient(135deg,var(--color-primary),var(--color-primary-hover))!important;
  border-color:rgba(15,118,110,.38)!important;
}

.btn-success,
button.btn-success,
button.green,
.green.btn,
a.btn.green,
button.save,
.btn.save,
a.btn.save{
  background:linear-gradient(135deg,var(--color-success),var(--color-success-hover))!important;
  border-color:rgba(15,118,110,.38)!important;
  color:#fff!important;
  -webkit-text-fill-color:#fff!important;
  box-shadow:0 8px 18px rgba(15,118,110,.16),inset 0 1px 0 rgba(255,255,255,.18)!important;
}

.btn-warning,
button.btn-warning,
button.warning{
  background:linear-gradient(135deg,var(--color-warning),var(--color-warning-hover))!important;
  border-color:rgba(217,119,6,.42)!important;
  color:#fff!important;
  -webkit-text-fill-color:#fff!important;
  box-shadow:0 8px 18px rgba(217,119,6,.15),inset 0 1px 0 rgba(255,255,255,.18)!important;
}

.btn-danger,
button.btn-danger,
button.red,
button.dangerText,
a.btn.red{
  background:linear-gradient(135deg,var(--color-danger),var(--color-danger-hover))!important;
  border-color:rgba(220,38,38,.42)!important;
  color:#fff!important;
  -webkit-text-fill-color:#fff!important;
  box-shadow:0 8px 18px rgba(220,38,38,.15),inset 0 1px 0 rgba(255,255,255,.18)!important;
}

.btn-purple,
button.btn-purple,
button.purple,
a.btn.purple,
#assignParticular{
  background:linear-gradient(135deg,var(--color-purple),var(--color-purple-hover))!important;
  border-color:rgba(124,58,237,.36)!important;
  color:#fff!important;
  -webkit-text-fill-color:#fff!important;
  box-shadow:0 8px 18px rgba(124,58,237,.14),inset 0 1px 0 rgba(255,255,255,.18)!important;
}

.btn-secondary,
.btn-ghost,
button.btn-secondary,
button.btn-ghost,
button.secondary,
button.ghost,
button.light,
button.gray,
a.light,
a.btn.gray,
.btnLight,
.btnMuted,
.lightButton,
.userButton,
.toprow button.light,
.actions button.light,
#modal button.gray,
#modal button.light,
#modal .row button:not(.green):not(.red):not(.purple),
.tabs button:not(.active),
.tabs .tab:not(.active),
#tab-mapa .mapViewSwitch button:not(.active),
#tab-mapa .sectorToggle.collapsed,
#tab-mapa .mapActionRow button.light,
#tab-mapa .mapActionRow button.gray,
.biLegendList button,
.biLineLabels button{
  background:var(--color-surface)!important;
  border-color:var(--color-border)!important;
  color:var(--color-text)!important;
  -webkit-text-fill-color:var(--color-text)!important;
  box-shadow:var(--shadow-xs)!important;
}

button.localBtn,
#assignLocal{
  background:linear-gradient(135deg,var(--color-success),var(--color-success-hover))!important;
  border-color:rgba(15,118,110,.38)!important;
  color:#fff!important;
  -webkit-text-fill-color:#fff!important;
  box-shadow:0 8px 18px rgba(15,118,110,.16),inset 0 1px 0 rgba(255,255,255,.18)!important;
}

#assignParticular{
  background:linear-gradient(135deg,var(--color-purple),var(--color-purple-hover))!important;
  border-color:rgba(124,58,237,.36)!important;
  color:#fff!important;
  -webkit-text-fill-color:#fff!important;
  box-shadow:0 8px 18px rgba(124,58,237,.14),inset 0 1px 0 rgba(255,255,255,.18)!important;
}

button.light:hover:not(:disabled),
button.gray:hover:not(:disabled),
button.secondary:hover:not(:disabled),
button.ghost:hover:not(:disabled),
button.btn-ghost:hover:not(:disabled),
.btnLight:hover,
.btnMuted:hover,
.tabs button:not(.active):hover,
.tabs .tab:not(.active):hover{
  background:#f2fbf7!important;
  border-color:var(--color-primary)!important;
  color:var(--color-primary-strong)!important;
  -webkit-text-fill-color:var(--color-primary-strong)!important;
  box-shadow:0 0 0 1px rgba(15,118,110,.14),var(--shadow-sm)!important;
}

.btn-icon,
button.btn-icon,
.iconBtn{
  width:var(--btn-height-md)!important;
  min-width:var(--btn-height-md)!important;
  height:var(--btn-height-md)!important;
  min-height:var(--btn-height-md)!important;
  padding:0!important;
}

.btn-sm,
button.btn-sm,
button.small,
.small{
  min-height:var(--btn-height-sm)!important;
  padding:7px 10px!important;
  border-radius:var(--radius-sm)!important;
  font-size:var(--font-size-xs)!important;
}

.btn-md,
button.btn-md{
  min-height:var(--btn-height-md)!important;
}

.btn-lg,
button.btn-lg{
  min-height:var(--btn-height-lg)!important;
  padding:11px 16px!important;
  font-size:var(--font-size-md)!important;
}

/* Formularios */
label,
.fieldLabel{
  color:#475569!important;
  font-size:11px!important;
  font-weight:900!important;
  letter-spacing:0!important;
  text-transform:uppercase;
}

input,
select,
textarea{
  min-height:var(--btn-height-md);
  border:1px solid var(--color-border)!important;
  border-radius:var(--radius-md)!important;
  background:var(--color-surface)!important;
  color:var(--color-text)!important;
  -webkit-text-fill-color:var(--color-text)!important;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.86)!important;
  font-size:var(--font-size-sm)!important;
}

input::placeholder,
textarea::placeholder{
  color:#94a3b8!important;
  opacity:1;
}

input:focus,
select:focus,
textarea:focus{
  outline:0!important;
  border-color:var(--color-primary)!important;
  box-shadow:var(--focus-ring),inset 0 1px 0 rgba(255,255,255,.90)!important;
  background:#fff!important;
}

input:disabled,
select:disabled,
textarea:disabled,
input[readonly]{
  background:var(--color-disabled-soft)!important;
  color:#64748b!important;
  -webkit-text-fill-color:#64748b!important;
}

textarea{
  line-height:1.42;
}

/* Superficies, cards e paineis */
.card,
.panel,
.user,
.case,
.modal,
.metric,
.stat,
.empty,
.item,
.summaryCard,
.blockCard,
.configBox,
.scenarioBlock,
.strategicAlerts,
.hospitalPicker,
.multiFilters,
.biPanel,
.biChartCard,
.biFiltersShell,
.tableWrap{
  background:linear-gradient(180deg,var(--color-surface),var(--color-surface-raised))!important;
  border:1px solid var(--color-border)!important;
  border-radius:var(--radius-md)!important;
  color:var(--color-text)!important;
  box-shadow:var(--shadow-sm)!important;
}

.card,
.panel,
.modal,
.item,
.scenarioBlock{
  padding:var(--space-4)!important;
}

.card h2,
.panel h2,
.modal h2,
.sectionHead h2{
  margin-top:0;
  color:var(--color-text)!important;
  font-size:var(--font-size-xl)!important;
  line-height:1.2;
}

.sectionHead,
.panelHead,
.modalHead,
.whatsappScaleHead{
  border-color:var(--color-border)!important;
}

.empty{
  border-style:dashed!important;
  color:var(--color-muted)!important;
}

/* Tabelas e listas administrativas */
table{
  border-collapse:separate;
  border-spacing:0;
  width:100%;
}

th{
  background:var(--color-surface-soft)!important;
  color:#475569!important;
  font-size:11px!important;
  font-weight:900!important;
  text-transform:uppercase;
}

td,
th{
  border-bottom:1px solid #e7eeeb!important;
}

tbody tr:hover{
  background:#f8fbff!important;
}

/* Status e badges */
.status,
.answer,
.multiStatus,
.biStatus{
  border:1px solid var(--status-info-border)!important;
  border-radius:var(--radius-md)!important;
  background:var(--status-info-bg)!important;
  color:var(--status-info-text)!important;
  -webkit-text-fill-color:var(--status-info-text)!important;
  font-size:var(--font-size-sm)!important;
  font-weight:850!important;
  line-height:1.35;
}

.status.ok,
.answer,
.multiStatus.ok,
.biStatus.ok,
.status-escalado,
.status-confirmado,
.status-success,
.badge.ok,
.badge.free,
.pill.sma,
.pill.ok,
.pill.local,
.nextCase.ok,
.assignedChip,
.daySchedulerChip{
  background:var(--status-escalado-bg)!important;
  border-color:var(--status-escalado-border)!important;
  color:var(--status-escalado-text)!important;
  -webkit-text-fill-color:var(--status-escalado-text)!important;
}

.status.warn,
.multiStatus.warn,
.biStatus.warn,
.status-pendente,
.status-nao-escalado,
.status-warning,
.badge.warn,
.badge.busy,
.pill.pend,
.pill.warn,
.nextCase.pendente{
  background:var(--status-pendente-bg)!important;
  border-color:var(--status-pendente-border)!important;
  color:var(--status-pendente-text)!important;
  -webkit-text-fill-color:var(--status-pendente-text)!important;
}

.status.err,
.multiStatus.err,
.biStatus.err,
.status-conflito,
.status-danger,
.badge.err,
.badge.conflict,
.pill.conflict,
.nextCase.conflito{
  background:var(--status-conflito-bg)!important;
  border-color:var(--status-conflito-border)!important;
  color:var(--status-conflito-text)!important;
  -webkit-text-fill-color:var(--status-conflito-text)!important;
}

.status-externo,
.status-particular,
.badge.external,
.pill.ext,
.nextCase.externo{
  background:var(--status-externo-bg)!important;
  border-color:var(--status-externo-border)!important;
  color:var(--status-externo-text)!important;
  -webkit-text-fill-color:var(--status-externo-text)!important;
}

.status-finalizado,
.badge.finalized,
.pill.fin,
.pill.cancel,
.nextCase.muted{
  background:var(--status-finalizado-bg)!important;
  border-color:var(--status-finalizado-border)!important;
  color:var(--status-finalizado-text)!important;
  -webkit-text-fill-color:var(--status-finalizado-text)!important;
}

.realtimeStatus{
  display:inline-flex;
  align-items:center;
  min-height:28px;
  width:max-content;
  max-width:100%;
  border:1px solid var(--status-info-border);
  border-radius:999px;
  background:var(--status-info-bg);
  color:var(--status-info-text);
  padding:5px 10px;
  font-size:11px;
  font-weight:900;
  line-height:1.2;
  white-space:nowrap;
}

.realtimeStatus.isLoading{
  border-color:var(--status-pendente-border);
  background:var(--status-pendente-bg);
  color:var(--status-pendente-text);
}

.realtimeStatus.isStale{
  border-color:var(--status-conflito-border);
  background:var(--status-conflito-bg);
  color:var(--status-conflito-text);
}

.headerActions .realtimeStatus,
.scaleActionsPanel .realtimeStatus{
  width:100%;
  justify-content:center;
}

.headerTop>.realtimeStatus{
  justify-self:end;
}

.status-substituido,
.badge.substituido,
.pill.substituido{
  background:
    linear-gradient(90deg,rgba(15,118,110,.18) 0 4px,transparent 4px),
    var(--status-finalizado-bg)!important;
  border-color:var(--status-finalizado-border)!important;
  color:var(--status-finalizado-text)!important;
  -webkit-text-fill-color:var(--status-finalizado-text)!important;
}

.badge,
.pill,
.eventBadge,
.strategicBadge,
.legendChip,
.totalPill{
  min-height:24px;
  display:inline-flex!important;
  align-items:center!important;
  justify-content:center!important;
  gap:6px!important;
  border:1px solid var(--color-border)!important;
  border-radius:var(--radius-pill)!important;
  background:var(--color-surface-soft)!important;
  color:#334155!important;
  -webkit-text-fill-color:#334155!important;
  padding:4px 8px!important;
  font-size:11px!important;
  font-weight:900!important;
  line-height:1.15!important;
  white-space:nowrap;
}

.badge.blue,
.eventBadge.login_success,
.eventBadge.public_page_view{
  background:var(--status-info-bg)!important;
  border-color:var(--status-info-border)!important;
  color:var(--status-info-text)!important;
  -webkit-text-fill-color:var(--status-info-text)!important;
}

/* Modais, overlays e menus */
.modalBg,
.modalBackdrop,
.scaleConfirmBackdrop,
.whatsappScaleBackdrop,
.mobileSurgeryBackdrop{
  background:rgba(15,23,42,.54)!important;
  backdrop-filter:blur(4px);
}

.modal,
.scaleConfirmPanel,
.whatsappScalePanel,
.mobileSurgeryPanel{
  border:1px solid var(--color-border)!important;
  border-radius:var(--radius-lg)!important;
  background:var(--color-surface)!important;
  box-shadow:var(--shadow-lg)!important;
  color:var(--color-text)!important;
}

.modalActions,
.scaleConfirmActions,
.whatsappRecipientActions{
  display:flex;
  justify-content:flex-end;
  gap:var(--space-2);
  flex-wrap:wrap;
}

.mapToolsMenu>summary{
  min-height:var(--btn-height-md)!important;
  display:inline-flex!important;
  align-items:center!important;
  justify-content:center!important;
  gap:var(--space-2)!important;
  border:1px solid var(--color-border)!important;
  border-radius:var(--radius-md)!important;
  background:var(--color-surface)!important;
  color:var(--color-text)!important;
  -webkit-text-fill-color:var(--color-text)!important;
  box-shadow:var(--shadow-xs)!important;
  padding:9px 13px!important;
  font-size:var(--font-size-sm)!important;
  font-weight:900!important;
  list-style:none;
}

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

.mapToolsMenuBody,
.contextMenu,
.popover{
  border:1px solid var(--color-border)!important;
  border-radius:var(--radius-md)!important;
  background:var(--color-surface)!important;
  box-shadow:var(--shadow-lg)!important;
  padding:var(--space-2)!important;
}

#tab-mapa .mapControlCard,
#tab-mapa .mapOpsBar,
#tab-mapa .mapActionRow{
  overflow:visible!important;
}

#tab-mapa .mapToolsMenu{
  position:relative!important;
}

#tab-mapa .mapToolsMenu[open]{
  z-index:160!important;
}

#tab-mapa .mapToolsMenuBody{
  z-index:161!important;
}

/* Mapa principal */
#tab-mapa .mapControlCard{
  padding:10px 12px!important;
  border-radius:var(--radius-md)!important;
}

#tab-mapa .mapOpsBar,
#tab-mapa .mapPrimaryActions,
#tab-mapa .mapActionRow{
  gap:var(--space-2)!important;
}

#tab-mapa .mapViewSwitch{
  border:1px solid var(--color-border)!important;
  border-radius:var(--radius-md)!important;
  background:var(--color-surface)!important;
  box-shadow:var(--shadow-xs)!important;
  padding:3px!important;
}

#tab-mapa .mapViewSwitch button{
  min-height:32px!important;
  border-radius:var(--radius-sm)!important;
  box-shadow:none!important;
}

#tab-mapa .mapViewSwitch button.active,
.tabs button.active,
.tabs .tab.active,
#tab-mapa .sectorToggle.expanded{
  background:linear-gradient(135deg,var(--color-primary),var(--color-primary-hover))!important;
  border-color:var(--color-primary)!important;
  color:#fff!important;
  -webkit-text-fill-color:#fff!important;
}

#tab-mapa .mapShell{
  border:1px solid var(--color-border)!important;
  border-radius:var(--radius-md)!important;
  background:
    linear-gradient(90deg,rgba(100,116,139,.08) 1px,transparent 1px),
    linear-gradient(rgba(100,116,139,.07) 1px,transparent 1px),
    #fbfdfc!important;
  background-size:40px 40px,40px 40px,auto!important;
  box-shadow:var(--shadow-md)!important;
}

#tab-mapa .mapToolbarSticky{
  border:1px solid var(--color-border)!important;
  border-radius:var(--radius-md)!important;
  background:rgba(248,250,252,.92)!important;
  box-shadow:var(--shadow-xs)!important;
}

#tab-mapa .fixedTimeBar,
#tab-mapa .fixedTimeInner,
#tab-mapa .fixedTimeCell,
#tab-mapa .fixedTimeCorner,
.timeHeader,
.timeCell{
  background:#eef5f2!important;
  border-color:var(--color-border)!important;
  color:#334155!important;
}

#tab-mapa .fixedTimeCorner,
.fixedTimeCorner{
  color:var(--color-primary-strong)!important;
  background:#e8f5ef!important;
}

#tab-mapa .fixedTimeCell.loadok,
.fixedTimeCell.loadok{
  background:var(--status-escalado-bg)!important;
  color:var(--status-escalado-text)!important;
}

#tab-mapa .fixedTimeCell.loadwarn,
.fixedTimeCell.loadwarn{
  background:var(--status-pendente-bg)!important;
  color:var(--status-pendente-text)!important;
}

#tab-mapa .fixedTimeCell.loaddanger,
.fixedTimeCell.loaddanger{
  background:var(--status-conflito-bg)!important;
  color:var(--status-conflito-text)!important;
}

.roomRow{
  border-bottom-color:#e2e8f0!important;
}

.roomRow.hasActivity{
  background:linear-gradient(90deg,rgba(15,118,110,.05),transparent 48%)!important;
}

.roomRow.hasPending{
  background:linear-gradient(90deg,rgba(217,119,6,.10),transparent 48%)!important;
}

.roomRow.hasConflict{
  background:linear-gradient(90deg,rgba(220,38,38,.12),transparent 52%)!important;
}

.roomLabel{
  background:#f8fafc!important;
  border-right-color:var(--color-border)!important;
  color:var(--color-text)!important;
}

.roomLabel.virtual{
  background:#fff7ed!important;
  color:#9a3412!important;
}

.roomLabel.lane{
  background:#ecfeff!important;
  color:#0e7490!important;
}

.roomLabel.oeste{
  background:#ecfdf5!important;
  color:#065f46!important;
}

.roomLabel.hemo{
  background:#f5f3ff!important;
  color:#5b21b6!important;
}

.roomName{
  color:var(--color-text)!important;
}

.roomStats{
  color:var(--color-muted)!important;
}

.roomGridLine{
  border-left-color:rgba(100,116,139,.15)!important;
}

.block{
  border:1px solid rgba(255,255,255,.72)!important;
  border-radius:var(--radius-md)!important;
  background:linear-gradient(135deg,var(--color-warning),var(--color-warning-hover))!important;
  color:#fff!important;
  box-shadow:0 10px 20px rgba(15,23,42,.18)!important;
}

.block.assigned,
.block.local,
.block.virtual.local,
.block.preferenceOk{
  background:linear-gradient(135deg,var(--color-success),var(--color-success-hover))!important;
  box-shadow:0 10px 20px rgba(15,118,110,.20)!important;
}

.block.ext,
.block.virtual.ext{
  background:linear-gradient(135deg,var(--color-purple),var(--color-purple-hover))!important;
  box-shadow:0 10px 20px rgba(124,58,237,.18)!important;
}

.block.finished{
  background:linear-gradient(135deg,#94a3b8,#64748b)!important;
  border-color:#cbd5e1!important;
  opacity:.78!important;
}

.block.caution{
  background:linear-gradient(135deg,var(--color-warning),var(--color-warning-hover))!important;
  border-color:#fed7aa!important;
  outline:2px solid rgba(217,119,6,.38)!important;
  box-shadow:0 0 0 2px rgba(254,215,170,.70),0 10px 20px rgba(146,64,14,.18)!important;
}

.block.conflict{
  background:linear-gradient(135deg,var(--color-danger),var(--color-danger-hover))!important;
  border-color:#fecaca!important;
  outline:2px solid rgba(220,38,38,.45)!important;
  box-shadow:0 0 0 2px rgba(254,202,202,.78),0 12px 24px rgba(153,27,27,.24)!important;
}

.block.duplicate{
  outline:2px solid rgba(217,119,6,.55)!important;
}

.block.selected{
  outline:3px solid var(--color-primary)!important;
  box-shadow:0 0 0 3px rgba(15,118,110,.18),0 12px 24px rgba(15,118,110,.22)!important;
}

.blockText{
  text-shadow:0 1px 1px rgba(15,23,42,.22);
}

.anestBadge{
  border:1px solid #99f6e4!important;
  border-radius:var(--radius-md)!important;
  background:#ecfdf5!important;
  color:#064e3b!important;
  -webkit-text-fill-color:#064e3b!important;
  box-shadow:0 4px 12px rgba(15,23,42,.16)!important;
}

.block.conflict .anestBadge{
  background:#fff1f2!important;
  border-color:#fecaca!important;
  color:#991b1b!important;
  -webkit-text-fill-color:#991b1b!important;
}

.block.caution .anestBadge{
  background:#fff7ed!important;
  border-color:#fed7aa!important;
  color:#9a3412!important;
  -webkit-text-fill-color:#9a3412!important;
}

.block.finished .anestBadge,
.block.finalizada .anestBadge,
.block.finalizado .anestBadge,
.block.is-finalized .anestBadge,
.surgery-card.finalizada .anestBadge,
.surgery-card.finalizado .anestBadge,
.surgery-card.is-finalized .anestBadge,
.case.finished .anestBadge,
.case.finalizada .anestBadge,
.case.finalizado .anestBadge,
.case.is-finalized .anestBadge{
  background:#64748b!important;
  border-color:#cbd5e1!important;
  color:#ffffff!important;
  -webkit-text-fill-color:#ffffff!important;
}

.legendChip.legendAssigned,
.legendChip.legendTeam{
  background:var(--status-escalado-bg)!important;
  border-color:var(--status-escalado-border)!important;
  color:var(--status-escalado-text)!important;
}

.legendChip.legendPending,
.legendChip.legendVirtual{
  background:var(--status-pendente-bg)!important;
  border-color:var(--status-pendente-border)!important;
  color:var(--status-pendente-text)!important;
}

.legendChip.legendConflict{
  background:var(--status-conflito-bg)!important;
  border-color:var(--status-conflito-border)!important;
  color:var(--status-conflito-text)!important;
}

.legendChip.legendExternal{
  background:var(--status-externo-bg)!important;
  border-color:var(--status-externo-border)!important;
  color:var(--status-externo-text)!important;
}

.legendChip.legendLocal{
  background:var(--status-escalado-bg)!important;
  border-color:var(--status-escalado-border)!important;
  color:var(--status-escalado-text)!important;
}

.legendChip.legendFinalized{
  background:var(--status-finalizado-bg)!important;
  border-color:var(--status-finalizado-border)!important;
  color:var(--status-finalizado-text)!important;
}

/* Central de escala e multivisao */
.centralScalePage .saveSchedulePanel{
  background:var(--status-pendente-bg)!important;
  border-color:var(--status-pendente-border)!important;
}

.centralScalePage .saveSchedulePanel p{
  color:var(--status-pendente-text)!important;
}

.importPreview,
.textAllocationPreview,
.photoQueue,
.lgpdAiBox,
.textAllocRow,
.importPreviewItem,
.anes,
.hospitalCard,
.dropZone,
.scenarioBlock,
.hospitalItem,
.visionPanel{
  border-radius:var(--radius-md)!important;
}

.lgpdAiBox{
  background:var(--status-pendente-bg)!important;
  border-color:var(--status-pendente-border)!important;
  color:var(--status-pendente-text)!important;
}

.dropZone{
  border-color:var(--color-success)!important;
  background:var(--status-escalado-bg)!important;
}

.visionPanel{
  border-color:#203a35!important;
  background:#10231f!important;
}

.multiPage .panelHead,
.visionPanel .panelHead{
  background:#10231f!important;
  color:#edf7f3!important;
}

.multiPage .panelHead a,
.visionPanel .panelHead a{
  color:#99f6e4!important;
}

/* Mobile */
@media(max-width:760px){
  button:not(.biKpi):not(.biBarRow):not(.biDonut):not(.biHeatCell):not(.heatCell):not(.companyCard):not(.userButton):not(.obsBadge):not(.freeAnesSheetHandle):not(.anesSummaryBadge),
  .btn,
  a.btn,
  input,
  select{
    min-height:44px!important;
  }

  button.small,
  .small,
  .btn-sm,
  .iconBtn,
  .btn-icon{
    min-height:36px!important;
    height:36px!important;
  }

  #tab-mapa .mapControlCard{
    padding:8px!important;
  }

  #tab-mapa .mapPrimaryActions>button,
  #tab-mapa .mapActionRow>#btnExpandMap,
  #tab-mapa .mapToolsMenu>summary,
  #tab-mapa .mapZoomControls button,
  #tab-mapa .mapViewSwitch button,
  #tab-mapa .sectorToggle{
    min-height:36px!important;
    height:auto!important;
    padding:7px 9px!important;
    font-size:11px!important;
  }

  #tab-mapa .mapPrimaryActions,
  #tab-mapa .mapActionRow{
    gap:5px!important;
  }

  #tab-mapa .mapShell{
    border-radius:var(--radius-md)!important;
  }

  .modal,
  .scaleConfirmPanel,
  .whatsappScalePanel,
  .mobileSurgeryPanel{
    border-radius:var(--radius-lg) var(--radius-lg) 0 0!important;
  }

  .modalActions,
  .scaleConfirmActions,
  .whatsappRecipientActions{
    display:grid!important;
    grid-template-columns:1fr!important;
  }

  .modalActions button,
  .scaleConfirmActions button,
  .whatsappRecipientActions button{
    width:100%!important;
  }

  .card,
  .panel,
  .modal{
    padding:var(--space-3)!important;
  }
}

@media (orientation:landscape) and (pointer:coarse) and (max-height:560px){
  #tab-mapa .mapControlCard{
    padding:6px 8px!important;
  }

  #tab-mapa .mapPrimaryActions>button,
  #tab-mapa .mapActionRow button,
  #tab-mapa .mapToolsMenu>summary{
    min-height:32px!important;
    padding:6px 8px!important;
  }
}

/* Mobile map density: fewer visible buttons, more surgical map */
.mobileTabSelect{
  display:none;
}

body:has(#tab-mapa) .toprow{
  grid-template-columns:minmax(150px,190px) minmax(220px,1fr) auto!important;
}

.topActions{
  position:relative;
  min-width:0;
}

.topActionsToggle{
  display:none!important;
}

.topActionsMenuBody{
  display:flex;
  gap:8px;
  align-items:center;
  justify-content:flex-end;
  min-width:0;
}

.topActionsMenuBody button{
  white-space:nowrap;
}

.quickAnesActions button{
  flex:1 1 150px;
}

@media(max-width:760px){
  body:has(#tab-mapa:not(.hidden)) header{
    padding:5px 7px 6px!important;
  }

  body:has(#tab-mapa:not(.hidden)) .toprow{
    grid-template-columns:minmax(118px,.86fr) minmax(140px,1.12fr) auto!important;
    gap:5px!important;
    margin-top:5px!important;
    align-items:center!important;
  }

  body:has(#tab-mapa:not(.hidden)) .toprow input,
  body:has(#tab-mapa:not(.hidden)) .toprow select{
    min-height:34px!important;
    height:34px!important;
    padding:6px 8px!important;
    border-radius:9px!important;
    font-size:12px!important;
  }

  body:has(#tab-mapa:not(.hidden)) .topActionsToggle{
    display:inline-flex!important;
    align-items:center!important;
    justify-content:center!important;
    min-width:62px!important;
    width:62px!important;
    min-height:34px!important;
    height:34px!important;
    padding:6px 8px!important;
    border-radius:9px!important;
    font-size:11px!important;
    font-weight:1000!important;
    color:#0f172a!important;
  }

  body:has(#tab-mapa:not(.hidden)) .topActionsMenuBody{
    display:none!important;
    position:absolute!important;
    right:0!important;
    top:calc(100% + 6px)!important;
    z-index:130!important;
    width:min(260px,calc(100vw - 14px))!important;
    grid-template-columns:1fr 1fr!important;
    gap:6px!important;
    padding:7px!important;
    border:1px solid var(--color-border,#d8e0ee)!important;
    border-radius:12px!important;
    background:var(--color-surface,#fff)!important;
    box-shadow:0 20px 44px rgba(15,23,42,.22)!important;
  }

  body:has(#tab-mapa:not(.hidden)) .topActions.open .topActionsMenuBody{
    display:grid!important;
  }

  body:has(#tab-mapa:not(.hidden)) .topActionsMenuBody button{
    display:inline-flex!important;
    align-items:center!important;
    justify-content:center!important;
    width:100%!important;
    min-height:34px!important;
    height:auto!important;
    padding:7px 8px!important;
    border-radius:9px!important;
    font-size:11px!important;
    line-height:1.1!important;
    white-space:normal!important;
  }

  body:has(#tab-mapa:not(.hidden)) .tabs{
    display:none!important;
  }

  body:has(#tab-mapa:not(.hidden)) .mobileTabSelect{
    display:block!important;
    margin-top:5px!important;
    width:100%!important;
    min-height:33px!important;
    height:33px!important;
    padding:5px 9px!important;
    border-radius:9px!important;
    font-size:12px!important;
    font-weight:1000!important;
    color:#0f172a!important;
    background:#fff!important;
  }

  body:has(#tab-mapa:not(.hidden)) .wrap{
    height:calc(100dvh - var(--appHeaderH,126px))!important;
  }

  #tab-mapa .mapControlCard{
    padding:4px 6px!important;
  }

  #tab-mapa .mapOpsBar{
    display:grid!important;
    grid-template-columns:1fr auto!important;
    gap:5px!important;
    align-items:center!important;
    width:100%!important;
  }

  #tab-mapa .mapPrimaryActions{
    display:grid!important;
    grid-template-columns:minmax(74px,.9fr) minmax(70px,.8fr) minmax(110px,1.15fr) 48px!important;
    gap:4px!important;
    align-items:center!important;
    width:100%!important;
    overflow:visible!important;
    min-width:0!important;
  }

  #tab-mapa .mapPrimaryActions>button,
  #tab-mapa .mapViewSwitch button,
  #tab-mapa .mapToolsMenu>summary{
    min-height:29px!important;
    height:29px!important;
    padding:5px 6px!important;
    border-radius:8px!important;
    font-size:10px!important;
    line-height:1!important;
    white-space:nowrap!important;
  }

  #tab-mapa .mapPrimaryActions #btnAddSurgery,
  #tab-mapa .mapPrimaryActions #btnAddAnesMap,
  #tab-mapa .mapPrimaryActions #btnExpandMap{
    width:auto!important;
    min-width:0!important;
  }

  #tab-mapa .mapPrimaryActions #btnExpandMap{
    padding-left:4px!important;
    padding-right:4px!important;
  }

  #tab-mapa .mapViewSwitch{
    display:grid!important;
    grid-template-columns:1fr 1fr!important;
    min-width:0!important;
    width:auto!important;
    padding:2px!important;
    border-radius:9px!important;
  }

  #tab-mapa .mapViewSwitch button{
    min-height:25px!important;
    height:25px!important;
    padding:4px 4px!important;
    font-size:9.5px!important;
  }

  #tab-mapa .mapActionRow{
    width:auto!important;
    border-top:0!important;
    padding:0!important;
    margin:0!important;
    overflow:visible!important;
    justify-content:flex-end!important;
  }

  #tab-mapa .mapToolsMenu>summary{
    min-width:56px!important;
    width:56px!important;
    font-size:10px!important;
  }

  #tab-mapa .mapToolsMenu>summary span{
    margin-left:3px!important;
  }

  #tab-mapa .mapToolsMenuBody{
    width:min(290px,calc(100vw - 14px))!important;
    max-height:min(58dvh,440px)!important;
    overflow:auto!important;
    right:0!important;
  }

  #tab-mapa .mapSubbar{
    display:flex!important;
    align-items:center!important;
    justify-content:flex-end!important;
    gap:5px!important;
    margin-top:4px!important;
    min-height:30px!important;
  }

  #tab-mapa .mapLegend{
    display:none!important;
  }

  #tab-mapa .mapZoomControls{
    display:flex!important;
    align-items:center!important;
    justify-content:flex-end!important;
    gap:4px!important;
    margin-left:auto!important;
  }

  #tab-mapa .mapZoomControls button,
  #tab-mapa .mapZoomValue{
    min-height:28px!important;
    height:28px!important;
    border-radius:8px!important;
    font-size:10px!important;
  }

  #tab-mapa .mapZoomControls button{
    min-width:28px!important;
    padding:4px 7px!important;
  }

  #tab-mapa .mapZoomControls #btnMapZoomFit{
    min-width:62px!important;
  }

  #tab-mapa #mapSectorControls:not(.expanded){
    min-height:34px!important;
    height:36px!important;
    max-height:38px!important;
    margin-top:2px!important;
    padding-top:2px!important;
  }

  #tab-mapa #mapSectorControls:not(.expanded) .timelineGroupBar{
    height:32px!important;
    max-height:32px!important;
  }

  #tab-mapa #mapSectorControls:not(.expanded) .sectorToggle.roomDashGroupBtn,
  #tab-mapa #mapSectorControls .sectorCollapseBtn{
    min-height:30px!important;
    height:30px!important;
    max-height:30px!important;
    padding:5px 8px!important;
    font-size:10px!important;
  }

  #tab-mapa .fixedTimeCorner,
  #tab-mapa .fixedTimeCell,
  #tab-mapa .mapInternalTimeHeader{
    height:36px!important;
  }
}

@media(max-width:520px){
  .quickAnesActions{
    display:grid!important;
    grid-template-columns:1fr!important;
  }

  .quickAnesActions button{
    width:100%!important;
  }
}

@media(max-width:390px){
  body:has(#tab-mapa:not(.hidden)) .toprow{
    grid-template-columns:minmax(104px,.82fr) minmax(122px,1fr) 56px!important;
  }

  #tab-mapa .mapPrimaryActions{
    grid-template-columns:minmax(66px,.92fr) minmax(58px,.78fr) minmax(94px,1.18fr) 42px!important;
  }

  #tab-mapa .mapPrimaryActions>button,
  #tab-mapa .mapViewSwitch button,
  #tab-mapa .mapToolsMenu>summary{
    font-size:9.5px!important;
  }
}

/* Mobile map: zoom shares the sectors strip, freeing vertical space for the ruler. */
@media(max-width:760px){
  #tab-mapa .mapSubbar{
    display:none!important;
    min-height:0!important;
    height:0!important;
    margin:0!important;
    padding:0!important;
    overflow:hidden!important;
  }

  #tab-mapa #mapSectorControls:not(.expanded){
    display:flex!important;
    align-items:center!important;
    gap:5px!important;
    min-height:36px!important;
    height:38px!important;
    max-height:40px!important;
    margin:3px -2px 0!important;
    padding:3px 0 0!important;
    border-top:1px solid #e2e8f0!important;
    overflow:hidden!important;
  }

  #tab-mapa #mapSectorControls:not(.expanded) .sectorHeader{
    flex:0 0 auto!important;
    min-width:auto!important;
  }

  #tab-mapa #mapSectorControls:not(.expanded) .mapSectorZoomSlot{
    display:flex!important;
    flex:0 0 auto!important;
    align-items:center!important;
    min-width:0!important;
  }

  #tab-mapa #mapSectorControls:not(.expanded) .timelineGroupBar{
    display:flex!important;
    flex:1 1 auto!important;
    min-width:0!important;
    height:32px!important;
    max-height:32px!important;
    gap:5px!important;
    margin:0!important;
    padding:1px 2px 2px!important;
    overflow-x:auto!important;
    overflow-y:hidden!important;
  }

  #tab-mapa .mapZoomControls{
    display:flex!important;
    align-items:center!important;
    justify-content:flex-end!important;
    gap:4px!important;
    margin:0!important;
  }

  #tab-mapa .mapZoomControls button,
  #tab-mapa .mapZoomValue{
    min-height:30px!important;
    height:30px!important;
    border-radius:8px!important;
    font-size:10px!important;
    line-height:1!important;
  }

  #tab-mapa .mapZoomControls button{
    min-width:30px!important;
    padding:5px 7px!important;
  }

  #tab-mapa .mapZoomValue{
    min-width:42px!important;
    padding:0 6px!important;
  }

  #tab-mapa .mapZoomControls #btnMapZoomFit{
    min-width:66px!important;
  }

  #tab-mapa .fixedTimeInner,
  #tab-mapa .fixedTimeCorner,
  #tab-mapa .fixedTimeCell,
  #tab-mapa .mapInternalTimeHeader{
    height:54px!important;
  }

  #tab-mapa .fixedTimeCell{
    gap:3px!important;
    padding:5px 3px!important;
    line-height:1!important;
  }

  #tab-mapa .fixedTimeCorner{
    padding:4px!important;
    font-size:12px!important;
    line-height:1.15!important;
  }

  #tab-mapa .hourLabel{
    font-size:14px!important;
    line-height:1!important;
  }

  #tab-mapa .hourLoad{
    display:block!important;
    max-width:calc(100% - 6px)!important;
    padding:2px 4px!important;
    font-size:9px!important;
    line-height:1.1!important;
  }
}

@media(max-width:390px){
  #tab-mapa .mapZoomControls{
    gap:3px!important;
  }

  #tab-mapa .mapZoomControls #btnMapZoomFit{
    min-width:58px!important;
    font-size:9.5px!important;
  }

  #tab-mapa .mapZoomValue{
    min-width:40px!important;
    font-size:9.5px!important;
  }

  #tab-mapa .hourLabel{
    font-size:13px!important;
  }

  #tab-mapa .hourLoad{
    font-size:8.5px!important;
  }
}

/* Desktop map: the page owns vertical scroll; the map keeps only horizontal panning. */
@media(min-width:761px){
  body:has(#tab-mapa:not(.hidden)):not(.mapExpanded):not(.multiVisionFrame) .wrap{
    height:auto!important;
    min-height:calc(100vh - var(--appHeaderH,126px))!important;
    overflow:visible!important;
  }

  body:has(#tab-mapa:not(.hidden)):not(.mapExpanded):not(.multiVisionFrame) #tab-mapa{
    min-height:0!important;
    overflow:visible!important;
  }

  body:has(#tab-mapa:not(.hidden)):not(.mapExpanded):not(.multiVisionFrame) #tab-mapa .mapControlCard{
    position:relative!important;
    z-index:24!important;
  }

  body:has(#tab-mapa:not(.hidden)):not(.mapExpanded):not(.multiVisionFrame) #tab-mapa .mapToolbarSticky{
    position:sticky!important;
    top:var(--mapRulerTop,132px)!important;
    z-index:46!important;
    margin-top:8px!important;
  }

  body:has(#tab-mapa:not(.hidden)):not(.mapExpanded):not(.multiVisionFrame) #tab-mapa .mapShell{
    height:auto!important;
    min-height:0!important;
    max-height:none!important;
    overflow-x:auto!important;
    overflow-y:visible!important;
    overscroll-behavior-x:contain!important;
    overscroll-behavior-y:auto!important;
    -webkit-overflow-scrolling:auto!important;
  }
}

/* Landscape phone map: one ruler, controls scroll away, more usable map height. */
@media (orientation:landscape) and (pointer:coarse) and (max-height:560px){
  body:has(#tab-mapa:not(.hidden)) header{
    position:relative!important;
    top:auto!important;
    z-index:28!important;
    display:grid!important;
    grid-template-columns:minmax(142px,220px) minmax(0,1fr)!important;
    gap:6px!important;
    align-items:center!important;
    padding:4px 8px!important;
  }

  body:has(#tab-mapa:not(.hidden)) .headerTop{
    min-width:0!important;
    margin:0!important;
  }

  body:has(#tab-mapa:not(.hidden)) .brandLockup{
    gap:6px!important;
    min-width:0!important;
  }

  body:has(#tab-mapa:not(.hidden)) .brandIcon{
    width:34px!important;
    height:34px!important;
    border-radius:8px!important;
    font-size:18px!important;
  }

  body:has(#tab-mapa:not(.hidden)) .brandLockup .title{
    font-size:18px!important;
    line-height:1!important;
    white-space:nowrap!important;
  }

  body:has(#tab-mapa:not(.hidden)) .brandLockup .sub,
  body:has(#tab-mapa:not(.hidden)) .mapDateStrip,
  body:has(#tab-mapa:not(.hidden)) .tabs,
  body:has(#tab-mapa:not(.hidden)) .mobileTabSelect{
    display:none!important;
  }

  body:has(#tab-mapa:not(.hidden)) .toprow{
    display:grid!important;
    grid-template-columns:minmax(120px,160px) minmax(168px,1fr) 58px!important;
    gap:6px!important;
    align-items:center!important;
    margin:0!important;
    min-width:0!important;
  }

  body:has(#tab-mapa:not(.hidden)) .toprow input,
  body:has(#tab-mapa:not(.hidden)) .toprow select,
  body:has(#tab-mapa:not(.hidden)) .topActionsToggle{
    height:34px!important;
    min-height:34px!important;
    border-radius:8px!important;
    padding:7px 9px!important;
    font-size:12px!important;
  }

  body:has(#tab-mapa:not(.hidden)) .topActions{
    position:relative!important;
    min-width:0!important;
    z-index:170!important;
  }

  body:has(#tab-mapa:not(.hidden)) .topActions.open{
    z-index:180!important;
  }

  body:has(#tab-mapa:not(.hidden)) .topActionsToggle{
    display:inline-flex!important;
    width:58px!important;
    padding-left:7px!important;
    padding-right:7px!important;
  }

  body:has(#tab-mapa:not(.hidden)) .topActionsMenuBody{
    position:absolute!important;
    top:calc(100% + 5px)!important;
    right:0!important;
    z-index:181!important;
    display:none!important;
    width:min(320px,calc(100vw - 16px))!important;
    grid-template-columns:1fr 1fr!important;
    gap:6px!important;
    padding:7px!important;
    border:1px solid var(--color-border)!important;
    border-radius:10px!important;
    background:#fff!important;
    box-shadow:var(--shadow-lg)!important;
  }

  body:has(#tab-mapa:not(.hidden)) .topActions.open .topActionsMenuBody{
    display:grid!important;
  }

  body:has(#tab-mapa:not(.hidden)) .topActionsMenuBody button{
    min-height:32px!important;
    height:32px!important;
    padding:6px 8px!important;
    border-radius:8px!important;
    font-size:11px!important;
    white-space:nowrap!important;
  }

  body:has(#tab-mapa:not(.hidden)) .wrap{
    height:auto!important;
    min-height:calc(100dvh - 46px)!important;
    max-width:none!important;
    padding:4px 8px 12px!important;
    overflow:visible!important;
  }

  body:has(#tab-mapa:not(.hidden)) #tab-mapa{
    min-height:0!important;
    overflow:visible!important;
  }

  body:has(#tab-mapa:not(.hidden)) #tab-mapa .mapControlCard{
    position:relative!important;
    z-index:22!important;
    margin:0 0 5px!important;
    padding:5px 8px!important;
    border-radius:8px!important;
    box-shadow:var(--shadow-xs)!important;
  }

  body:has(#tab-mapa:not(.hidden)) #tab-mapa .mapOpsBar{
    display:flex!important;
    align-items:center!important;
    justify-content:space-between!important;
    gap:6px!important;
  }

  body:has(#tab-mapa:not(.hidden)) #tab-mapa .mapPrimaryActions{
    display:flex!important;
    flex-wrap:nowrap!important;
    gap:5px!important;
    overflow-x:auto!important;
    padding-bottom:1px!important;
  }

  body:has(#tab-mapa:not(.hidden)) #tab-mapa .mapPrimaryActions>button,
  body:has(#tab-mapa:not(.hidden)) #tab-mapa .mapToolsMenu>summary,
  body:has(#tab-mapa:not(.hidden)) #tab-mapa .mapViewSwitch button{
    min-height:32px!important;
    height:32px!important;
    padding:6px 9px!important;
    border-radius:8px!important;
    font-size:11px!important;
    line-height:1!important;
  }

  body:has(#tab-mapa:not(.hidden)) #tab-mapa .mapViewSwitch{
    min-width:122px!important;
    padding:2px!important;
    border-radius:9px!important;
  }

  body:has(#tab-mapa:not(.hidden)) #tab-mapa .mapActionRow{
    flex:0 0 auto!important;
    width:auto!important;
    margin:0!important;
    padding:0!important;
    border-top:0!important;
  }

  body:has(#tab-mapa:not(.hidden)) #tab-mapa #mapSectorControls.map-sector-tabs--landscape{
    min-height:32px!important;
    height:34px!important;
    max-height:36px!important;
    margin:4px -2px 0!important;
    padding:2px 2px 0!important;
    gap:5px!important;
    border-top:1px solid #e2e8f0!important;
  }

  body:has(#tab-mapa:not(.hidden)) #tab-mapa #mapSectorControls.map-sector-tabs--landscape .mapSectorZoomSlot{
    display:none!important;
  }

  body:has(#tab-mapa:not(.hidden)) #tab-mapa #mapSectorControls.map-sector-tabs--landscape .timelineGroupBar{
    height:31px!important;
    max-height:31px!important;
    gap:5px!important;
    padding:0 2px 1px!important;
  }

  body:has(#tab-mapa:not(.hidden)) #tab-mapa #mapSectorControls.map-sector-tabs--landscape .sectorToggle.roomDashGroupBtn{
    min-width:112px!important;
    max-width:168px!important;
    min-height:30px!important;
    height:30px!important;
    max-height:30px!important;
    padding:4px 8px!important;
    border-radius:8px!important;
  }

  body:has(#tab-mapa:not(.hidden)) #tab-mapa #mapSectorControls.map-sector-tabs--landscape .sectorToggle span{
    font-size:11px!important;
  }

  body:has(#tab-mapa:not(.hidden)) #tab-mapa #mapSectorControls.map-sector-tabs--landscape .sectorToggle em{
    font-size:9.5px!important;
  }

  body:has(#tab-mapa:not(.hidden)) #tab-mapa .mapToolbarSticky{
    position:sticky!important;
    top:0!important;
    z-index:48!important;
    margin:0!important;
    padding:0!important;
    border-radius:0!important;
    background:rgba(248,250,252,.96)!important;
  }

  body:has(#tab-mapa:not(.hidden)) #tab-mapa .fixedTimeInner,
  body:has(#tab-mapa:not(.hidden)) #tab-mapa .fixedTimeCorner,
  body:has(#tab-mapa:not(.hidden)) #tab-mapa .fixedTimeCell{
    height:42px!important;
  }

  body:has(#tab-mapa:not(.hidden)) #tab-mapa .hourLabel{
    font-size:13px!important;
  }

  body:has(#tab-mapa:not(.hidden)) #tab-mapa .hourLoad{
    max-width:calc(100% - 4px)!important;
    padding:1px 3px!important;
    font-size:8px!important;
    line-height:1.05!important;
  }

  body:has(#tab-mapa:not(.hidden)) #tab-mapa .mapInternalTimeHeader{
    display:none!important;
  }

  body:has(#tab-mapa:not(.hidden)) #tab-mapa .mapShell{
    height:auto!important;
    min-height:0!important;
    max-height:none!important;
    margin-top:0!important;
    border-radius:0 0 8px 8px!important;
    overflow-x:auto!important;
    overflow-y:visible!important;
    overscroll-behavior-x:contain!important;
    overscroll-behavior-y:auto!important;
    touch-action:pan-x pan-y!important;
    -webkit-overflow-scrolling:touch!important;
  }

  body:has(#tab-mapa:not(.hidden)) #tab-mapa .anesTimelinePanel{
    display:none!important;
  }

  body:has(#tab-mapa:not(.hidden)) .freeAnesSheet{
    left:8px!important;
    right:auto!important;
    bottom:8px!important;
    width:min(390px,42vw)!important;
  }

  body:has(#tab-mapa:not(.hidden)) .freeAnesSheetPanel{
    max-height:112px!important;
    padding:8px 10px!important;
    border:1px solid var(--color-border)!important;
    border-radius:12px!important;
    box-shadow:0 12px 30px rgba(15,23,42,.18)!important;
  }
}

@media (orientation:landscape) and (pointer:coarse) and (max-height:420px){
  body:has(#tab-mapa:not(.hidden)) header{
    grid-template-columns:minmax(112px,176px) minmax(0,1fr)!important;
    padding:3px 6px!important;
  }

  body:has(#tab-mapa:not(.hidden)) .brandIcon{
    width:30px!important;
    height:30px!important;
    font-size:16px!important;
  }

  body:has(#tab-mapa:not(.hidden)) .brandLockup .title{
    font-size:16px!important;
  }

  body:has(#tab-mapa:not(.hidden)) .toprow{
    grid-template-columns:minmax(108px,142px) minmax(146px,1fr) 54px!important;
  }

  body:has(#tab-mapa:not(.hidden)) #tab-mapa .mapControlCard{
    padding:4px 7px!important;
  }
}
