#view-caleco {
  position: absolute;
  inset: 0;
  display: none;
  flex-direction: column;
  width: 100%;
  height: 100%;
  overflow-y: auto;
  background: #05070a;
  font-family: var(--mono);
  z-index: 22;
  --cal-read: var(--font-bloomberg);
  --cal-cyan: #4A8FA0;
  --cal-cyan-bright: #6BA8B8;
  --cal-bg: #05070a;
  --cal-bg-local: #0a1018;
  --cal-border: rgba(255, 255, 255, 0.06);
  --cal-text: var(--ink-cream, #ebe5d8);
  --cal-text-dim: #6a7884;
  --cal-text-faint: #454f58;
  --cal-green: #67E6C9;
  --cal-red: #E77A7A;
  -webkit-font-smoothing: antialiased;
}

#view-caleco.active { display: flex !important; }

/* ── Layout rows ── */
.cal-clocks-row {
  display: grid;
  grid-template-columns: repeat(8, minmax(0, 1fr));
  border-bottom: 1px solid var(--cal-border);
  flex-shrink: 0;
  background: var(--cal-bg);
}
.cal-sess-row {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  border-bottom: 1px solid var(--cal-border);
  flex-shrink: 0;
  background: var(--cal-bg);
}
.cal-stats-row {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  border-bottom: 1px solid var(--cal-border);
  flex-shrink: 0;
  background: var(--cal-bg);
}
#cal-map-row {
  display: flex;
  height: 560px;
  border-bottom: 1px solid var(--border2);
  flex-shrink: 0;
}

.calck-local {
  background: var(--cal-bg-local);
}
.calck-local .calck-city {
  color: var(--cal-text-faint);
}
.calck-local .calck-time {
  color: var(--cal-cyan);
}
.calck-st-local {
  color: var(--cal-green);
}

.cal-sess-hdr.dim { color: var(--text-dim); }
.cal-sess-hdr.amber,
.cal-sess-hdr.cal-hdr-open { color: var(--cal-cyan); }
.cal-stat-hi { color: var(--red); }
.cal-stat-nx { color: var(--amber-hot); }

#cal-map-tip {
  --cal-tip-s: 1.849;
  display: none;
  position: absolute;
  pointer-events: none;
  z-index: 10;
  transition: none;
  font-family: var(--mono);
  font-size: calc(10px * var(--cal-tip-s));
  line-height: 1.38;
  letter-spacing: 0.04em;
}

#cal-map-tip.cal-map-tip-macro-host,
#cal-map-tip.cal-map-tip-br-host {
  white-space: normal;
  min-width: calc(228px * var(--cal-tip-s));
  max-width: calc(292px * var(--cal-tip-s));
  padding: 0;
  background: rgba(8, 10, 14, 0.96);
  border: 1px solid rgba(200, 136, 58, 0.28);
  box-shadow: 0 calc(8px * var(--cal-tip-s)) calc(28px * var(--cal-tip-s)) rgba(0, 0, 0, 0.55);
}

#cal-map-tip b {
  display: block;
  font-size: calc(13px * var(--cal-tip-s));
  letter-spacing: 0.06em;
  margin-bottom: calc(4px * var(--cal-tip-s));
}

.cal-map-tip-macro {
  padding: calc(10px * var(--cal-tip-s)) calc(12px * var(--cal-tip-s));
  color: var(--cal-text-dim);
}

.cal-map-tip-macro__city {
  font-family: var(--cal-read);
  font-size: calc(11px * var(--cal-tip-s));
  font-weight: 700;
  letter-spacing: 0.14em;
  margin-bottom: calc(6px * var(--cal-tip-s));
}

.cal-map-tip-macro__status {
  display: inline-block;
  font-family: var(--cal-read);
  font-size: calc(9px * var(--cal-tip-s));
  font-weight: 700;
  letter-spacing: 0.16em;
  padding: calc(3px * var(--cal-tip-s)) calc(8px * var(--cal-tip-s));
  margin-bottom: calc(6px * var(--cal-tip-s));
  border: 1px solid transparent;
}

.cal-map-tip-macro__status.is-active {
  color: #33bdd6;
  background: rgba(0, 168, 204, 0.1);
  border-color: rgba(0, 168, 204, 0.38);
  box-shadow: 0 0 calc(8px * var(--cal-tip-s)) rgba(0, 168, 204, 0.12);
}

.cal-map-tip-macro__status.is-closed {
  color: #454f58;
  background: rgba(255, 255, 255, 0.03);
  border-color: rgba(255, 255, 255, 0.07);
}

.cal-map-tip-macro__clock {
  font-family: var(--cal-read);
  font-size: calc(9px * var(--cal-tip-s));
  letter-spacing: 0.1em;
  color: var(--cal-text-faint);
  margin-bottom: calc(4px * var(--cal-tip-s));
  font-variant-numeric: tabular-nums;
}

.cal-map-tip-macro__countdown {
  font-family: var(--cal-read);
  font-size: calc(10px * var(--cal-tip-s));
  letter-spacing: 0.08em;
  color: var(--cal-cyan);
  margin-bottom: calc(6px * var(--cal-tip-s));
  font-variant-numeric: tabular-nums;
}

.cal-map-tip-macro__divider {
  height: 1px;
  margin: calc(6px * var(--cal-tip-s)) 0;
  background: rgba(200, 136, 58, 0.16);
}

.cal-map-tip-macro__countdown strong {
  color: var(--cal-cyan-bright);
  font-weight: 700;
}

.cal-map-tip-macro__active-assets {
  align-items: center;
  display: flex;
  flex-wrap: wrap;
  gap: calc(5px * var(--cal-tip-s));
  margin-top: calc(7px * var(--cal-tip-s));
}

.cal-map-tip-macro__active-assets-label {
  color: var(--cal-text-faint);
  font-family: var(--cal-read);
  font-size: calc(8px * var(--cal-tip-s));
  font-weight: 700;
  letter-spacing: 0.12em;
}

.cal-map-tip-macro__active-assets.is-active .cal-map-tip-macro__active-assets-label {
  color: #67E6C9;
}

.cal-map-tip-macro__active-assets-list {
  display: inline-flex;
  flex-wrap: wrap;
  gap: calc(4px * var(--cal-tip-s));
}

.cal-map-tip-macro__asset-chip {
  background: rgba(74, 143, 160, 0.08);
  border: 1px solid rgba(74, 143, 160, 0.32);
  color: var(--cal-cyan-bright);
  cursor: pointer;
  font-family: var(--cal-read);
  font-size: calc(9px * var(--cal-tip-s));
  font-weight: 700;
  letter-spacing: 0.04em;
  padding: calc(2px * var(--cal-tip-s)) calc(5px * var(--cal-tip-s));
}

.cal-map-tip-macro__active-assets.is-active .cal-map-tip-macro__asset-chip {
  border-color: rgba(116, 222, 198, 0.42);
  color: #67E6C9;
}

.cal-map-tip-macro__asset-chip:hover {
  background: rgba(74, 143, 160, 0.18);
  border-color: var(--cal-cyan);
}

.cal-map-tip-macro__section {
  margin-top: calc(6px * var(--cal-tip-s));
}

.cal-map-tip-macro__section--twelve {
  margin-top: calc(2px * var(--cal-tip-s));
}

.cal-map-tip-macro__label {
  font-family: var(--cal-read);
  font-size: calc(8px * var(--cal-tip-s));
  font-weight: 700;
  letter-spacing: 0.14em;
  color: rgba(200, 136, 58, 0.75);
  margin-bottom: calc(5px * var(--cal-tip-s));
}

.cal-map-tip-macro__line {
  display: grid;
  grid-template-columns: calc(88px * var(--cal-tip-s)) minmax(0, 1fr);
  gap: calc(8px * var(--cal-tip-s));
  font-size: calc(8.5px * var(--cal-tip-s));
  line-height: 1.42;
  margin-bottom: calc(3px * var(--cal-tip-s));
}

.cal-map-tip-macro__line .k {
  color: var(--cal-text-faint);
  letter-spacing: 0.06em;
  text-transform: uppercase;
}

.cal-map-tip-macro__line .v {
  color: #9aabb8;
}

.cal-map-tip-macro__twelve-row {
  display: grid;
  grid-template-columns: 1fr auto auto;
  align-items: baseline;
  gap: calc(8px * var(--cal-tip-s));
  font-variant-numeric: tabular-nums;
  margin-bottom: calc(3px * var(--cal-tip-s));
}

.cal-map-tip-macro__twelve-pair {
  color: var(--cal-text-faint);
  font-size: calc(9px * var(--cal-tip-s));
  letter-spacing: 0.06em;
}

.cal-map-tip-macro__twelve-val {
  color: var(--cal-cyan);
  font-size: calc(10px * var(--cal-tip-s));
  font-weight: 700;
}

.cal-map-tip-macro__twelve-tag {
  color: rgba(200, 136, 58, 0.65);
  font-size: calc(8px * var(--cal-tip-s));
  letter-spacing: 0.1em;
}

#cal-map-tip.cal-map-tip-macro-host--interactive {
  pointer-events: none;
}

/* Macro Map · card flutuante sobre mapa + displays */
.ih-map-stage {
  position: relative;
  isolation: isolate;
}

.ih-map-stage .cal-map-displays[data-cal-map-dock="overlay"] {
  position: relative;
  left: auto;
  right: auto;
  bottom: auto;
  z-index: 1;
  flex: 0 0 auto;
  width: 100%;
  pointer-events: auto;
  background: var(--bg3, #0a1018);
}

.ih-map-stage .cal-map-displays:not([data-cal-map-dock="overlay"]) {
  position: relative;
  z-index: 1;
}

.ih-map-stage #cal-map-tip {
  --cal-tip-s: 2.05;
  z-index: 80;
  pointer-events: none;
  transition: none;
  will-change: left, top;
}

.ih-map-stage #cal-map-tip.cal-map-tip-macro-host,
.ih-map-stage #cal-map-tip.cal-map-tip-br-host {
  min-width: calc(212px * var(--cal-tip-s));
  max-width: calc(272px * var(--cal-tip-s));
  overflow-x: hidden;
  overflow-y: auto;
  overscroll-behavior: contain;
  scrollbar-width: thin;
  scrollbar-color: rgba(0, 168, 204, 0.35) transparent;
}

.ih-map-stage #cal-map-tip.cal-map-tip-macro-host::-webkit-scrollbar,
.ih-map-stage #cal-map-tip.cal-map-tip-br-host::-webkit-scrollbar {
  width: 4px;
}

.ih-map-stage #cal-map-tip.cal-map-tip-macro-host::-webkit-scrollbar-thumb,
.ih-map-stage #cal-map-tip.cal-map-tip-br-host::-webkit-scrollbar-thumb {
  background: rgba(0, 168, 204, 0.35);
  border-radius: 2px;
}

.ih-map-stage #cal-map-tip .cal-map-tip-macro {
  padding: calc(8px * var(--cal-tip-s)) calc(10px * var(--cal-tip-s));
}

.ih-map-stage .cal-map-tip-macro__city {
  font-size: calc(10px * var(--cal-tip-s));
  margin-bottom: calc(4px * var(--cal-tip-s));
}

.ih-map-stage .cal-map-tip-macro__status {
  font-size: calc(8px * var(--cal-tip-s));
  padding: calc(2px * var(--cal-tip-s)) calc(6px * var(--cal-tip-s));
  margin-bottom: calc(4px * var(--cal-tip-s));
}

.ih-map-stage .cal-map-tip-macro__clock,
.ih-map-stage .cal-map-tip-macro__countdown {
  font-size: calc(8.5px * var(--cal-tip-s));
  margin-bottom: calc(3px * var(--cal-tip-s));
}

.ih-map-stage .cal-map-tip-macro__section {
  margin-top: calc(4px * var(--cal-tip-s));
}

.ih-map-stage .cal-map-tip-macro__divider {
  margin: calc(4px * var(--cal-tip-s)) 0;
}

.ih-map-stage .cal-map-tip-macro__label {
  font-size: calc(7.5px * var(--cal-tip-s));
  margin-bottom: calc(3px * var(--cal-tip-s));
}

.ih-map-stage .cal-map-tip-macro__line {
  grid-template-columns: calc(68px * var(--cal-tip-s)) minmax(0, 1fr);
  gap: calc(6px * var(--cal-tip-s));
  font-size: calc(8px * var(--cal-tip-s));
  line-height: 1.32;
  margin-bottom: calc(2px * var(--cal-tip-s));
}

.ih-map-stage .cal-map-tip-macro__line .v {
  word-break: break-word;
  overflow-wrap: anywhere;
}

.ih-map-stage .cal-map-tip-macro__twelve-pair {
  font-size: calc(8px * var(--cal-tip-s));
}

.ih-map-stage .cal-map-tip-macro__twelve-val {
  font-size: calc(8.5px * var(--cal-tip-s));
}

.ih-map-stage .cal-map-tip-macro__twelve-tag {
  font-size: calc(7px * var(--cal-tip-s));
}

.cal-map-tip-macro__twelve-row--link {
  pointer-events: auto;
  cursor: pointer;
  border-radius: calc(2px * var(--cal-tip-s));
  padding: calc(2px * var(--cal-tip-s)) calc(4px * var(--cal-tip-s));
  margin-left: calc(-4px * var(--cal-tip-s));
  margin-right: calc(-4px * var(--cal-tip-s));
}

.cal-map-tip-macro__twelve-row--link:hover {
  background: rgba(200, 136, 58, 0.14);
}

.cal-map-tip-macro__twelve-row--link:hover .cal-map-tip-macro__twelve-pair,
.cal-map-tip-macro__twelve-row--link:hover .cal-map-tip-macro__twelve-val {
  color: #e8c88a;
}

.cal-map-tip-macro__status--ccy {
  background: rgba(200, 136, 58, 0.12);
  border: 1px solid rgba(200, 136, 58, 0.28);
  color: #c8883a;
}

#cal-map-tip.cal-map-tip-br-host {
  border-color: rgba(0, 200, 83, 0.32);
}
.cal-map-tip-br b {
  display: block;
  font-size: calc(11px * var(--cal-tip-s, 2.5));
  letter-spacing: 0.08em;
  margin-bottom: calc(8px * var(--cal-tip-s, 2.5));
}
.cal-map-tip-br-row {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: calc(12px * var(--cal-tip-s, 2.5));
  font-family: var(--cal-read);
  font-size: calc(12px * var(--cal-tip-s, 2.5));
  line-height: 1.5;
}
.cal-map-tip-br-row + .cal-map-tip-br-row {
  margin-top: calc(4px * var(--cal-tip-s, 2.5));
}
.cal-map-tip-br-pair {
  color: var(--cal-text-dim);
  font-size: calc(10px * var(--cal-tip-s, 2.5));
  letter-spacing: 0.06em;
}
.cal-map-tip-br-val {
  color: var(--cal-cyan);
  font-size: calc(13px * var(--cal-tip-s, 2.5));
  font-weight: 700;
  font-variant-numeric: tabular-nums;
}
#cal-map-host { cursor: crosshair; }
#cal-map-host.map-hover-active { cursor: pointer; }
#cal-led {
  display: inline-block;
  border-radius: 50%;
  background: var(--red);
}
#cal-map-host {
  flex: 1 1 auto;
  position: relative;
  overflow: hidden;
  background: var(--bg3, #0a1018);
  min-height: 0;
  width: 100%;
  height: 100%;
  max-width: 100%;
  max-height: 100%;
  margin: 0;
  align-self: stretch;
  border: 1px solid rgba(0, 168, 204, 0.22);
  box-shadow:
    inset 0 1px 0 rgba(0, 168, 204, 0.12),
    inset 0 0 48px rgba(5, 7, 10, 0.45);
}

#cal-map-host::before {
  display: none;
}

#cal-map-host::after {
  display: none;
}

#cal-map-host.map-hover-active {
  border-color: rgba(255, 255, 255, 0.12);
}

#cal-map {
  display: block;
  width: 100%;
  height: 100%;
  cursor: crosshair;
  position: relative;
  z-index: 1;
}

/* ── Relógios sessão ── */
.calck {
  padding: 14px 12px;
  border-right: 1px solid var(--cal-border);
  display: flex;
  flex-direction: column;
  gap: 4px;
  background: var(--cal-bg);
  min-width: 0;
}
.calck:last-child {
  border-right: none;
}
.calck.calck-open {
  background: rgba(0, 168, 204, 0.05);
  box-shadow: inset 0 -2px 0 rgba(0, 168, 204, 0.45);
}
.calck-city {
  font-size: 10px;
  letter-spacing: 2px;
  color: var(--cal-cyan);
  text-transform: uppercase;
  font-weight: 600;
  font-family: var(--cal-read);
}
.calck-time {
  font-size: 22px;
  font-weight: 700;
  color: var(--cal-text);
  font-variant-numeric: tabular-nums;
  font-family: var(--cal-read);
  line-height: 1.1;
  letter-spacing: 0.02em;
}
.calck.calck-open .calck-time {
  color: var(--cal-cyan);
}
.calck-sub {
  font-size: 9px;
  color: var(--cal-text-dim);
  letter-spacing: 0.4px;
}
.calck-st {
  font-size: 10px;
  font-weight: 700;
  margin-top: 3px;
  letter-spacing: 0.5px;
}
.calck-st.open { color: var(--cal-green); }
.calck-st.closed { color: var(--cal-red); }
.calck-ut {
  font-size: 9px;
  color: var(--cal-text-faint);
}

/* ── Símbolos por sessão ── */
.cal-sess-panel {
  padding: 10px 14px;
  border-right: 1px solid var(--border2);
}
.cal-sess-panel:last-child { border-right: none; }
.cal-sess-hdr {
  font-size: 10px;
  letter-spacing: 2px;
  color: var(--cal-cyan);
  margin-bottom: 8px;
  font-weight: 600;
  text-transform: uppercase;
}
.cal-sess-hdr.amber { color: var(--amber); }
.cal-sess-tags { display: flex; flex-wrap: wrap; gap: 5px; }

.cal-sess-panel.cal-sess-open {
  background: rgba(0, 168, 204, 0.06);
  box-shadow: inset 0 0 0 1px rgba(0, 168, 204, 0.22);
}
.cal-sess-panel.cal-map-hover {
  background: rgba(0, 168, 204, 0.08);
  box-shadow: inset 0 0 0 1px rgba(0, 168, 204, 0.35), 0 0 18px rgba(0, 168, 204, 0.12);
  transition: background .2s, box-shadow .2s;
}
.cal-sess-panel.cal-map-hover .cal-sess-hdr { color: var(--cal-cyan-bright); }
.cal-sess-panel.cal-map-hover .cal-sym-tag { opacity: 0.85; }
.cal-sess-panel.cal-sess-open .cal-sess-hdr { font-weight: 700; color: var(--cal-cyan); }

.cal-sym-tag {
  font-family: var(--mono);
  font-size: 12px;
  color: var(--text-dim);
  background: var(--bg2);
  border: 1px solid var(--border2);
  padding: 4px 9px;
  letter-spacing: 0.4px;
  transition: color .2s, border-color .2s, background .2s, box-shadow .2s;
  opacity: 0.55;
}
.cal-sym-tag.active-sess {
  color: var(--cal-cyan-bright);
  border-color: rgba(0, 168, 204, 0.55);
  background: rgba(0, 168, 204, 0.1);
  opacity: 1;
  box-shadow: 0 0 10px rgba(0, 168, 204, 0.28);
  animation: cal-tag-pulse 2.4s ease-in-out infinite alternate;
}
.cal-sym-tag.cal-sym-principal.active-sess {
  font-weight: 700;
  color: #33bdd6;
  border-color: var(--cal-cyan);
  background: rgba(0, 168, 204, 0.14);
  box-shadow: 0 0 14px rgba(0, 168, 204, 0.38);
}
@keyframes cal-tag-pulse {
  from { box-shadow: 0 0 6px rgba(0, 168, 204, 0.2); }
  to   { box-shadow: 0 0 16px rgba(0, 168, 204, 0.42); }
}

/* ── Stats ── */
.cal-stat {
  padding: 12px 16px;
  border-right: 1px solid var(--border2);
}
.cal-stat-l {
  font-size: 10px;
  letter-spacing: 1.8px;
  color: var(--cal-cyan);
  margin-bottom: 5px;
  text-transform: uppercase;
  font-weight: 600;
}
.cal-stat-v {
  font-size: 20px;
  font-weight: 700;
  color: #E8E0D4;
  font-family: var(--cal-read);
  line-height: 1.15;
}

/* ── Mapa + feed ── */
.ih-module-map .ih-module-bar {
  align-items: center;
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}

.cal-map-layers {
  display: flex;
  flex: 1 1 auto;
  flex-wrap: wrap;
  gap: 6px;
  justify-content: center;
  margin: 0 8px;
  min-width: 0;
}

.cal-map-layer {
  background: rgba(0, 0, 0, 0.35);
  border: 1px solid rgba(0, 168, 204, 0.28);
  border-radius: 3px;
  color: rgba(0, 168, 204, 0.55);
  cursor: pointer;
  font-family: var(--mono);
  font-size: 10px;
  font-weight: 600;
  letter-spacing: 0.4px;
  line-height: 1.2;
  min-height: 30px;
  padding: 7px 14px;
  text-transform: uppercase;
  white-space: nowrap;
}

.cal-map-layer:hover {
  border-color: rgba(0, 168, 204, 0.45);
  color: rgba(0, 168, 204, 0.78);
}

.cal-map-layer.is-on {
  background: rgba(0, 168, 204, 0.08);
  border-color: rgba(0, 168, 204, 0.52);
  color: rgba(0, 168, 204, 0.88);
}

.cal-map-layer.is-focus.is-on {
  background: rgba(255, 215, 80, 0.08);
  border-color: rgba(255, 215, 80, 0.52);
  color: rgba(255, 215, 80, 0.92);
}

#cal-map-host.cal-map--focus {
  filter: saturate(0.92);
}

#cal-tbody tr.cal-map-ccy-highlight {
  background: rgba(0, 168, 204, 0.1);
  box-shadow: inset 2px 0 0 rgba(0, 168, 204, 0.72);
}

.cal-map-foot.cal-map-foot-card {
  --cal-foot-z: 1.34;
  position: absolute;
  bottom: calc(12px * var(--cal-foot-z));
  right: calc(12px * var(--cal-foot-z));
  left: auto;
  top: auto;
  width: min(calc(280px * var(--cal-foot-z)), 40vw);
  max-width: calc(320px * var(--cal-foot-z));
  padding: 0;
  text-align: left;
  pointer-events: none;
  z-index: 4;
  display: flex;
  flex-direction: column;
  overflow: hidden;
  white-space: normal;
  line-height: 1.35;
  background: linear-gradient(135deg, rgba(5, 7, 10, 0.94) 0%, rgba(8, 11, 15, 0.92) 100%);
  border: 1px solid rgba(0, 168, 204, 0.28);
  box-shadow:
    0 8px 28px rgba(0, 0, 0, 0.45),
    inset 0 1px 0 rgba(0, 168, 204, 0.14);
  font-family: var(--font-bloomberg, var(--cal-read, var(--mono)));
  font-size: calc(11px * var(--cal-foot-z));
  font-weight: 600;
  color: rgba(212, 220, 228, 0.96);
  letter-spacing: 0.06em;
  text-transform: uppercase;
}

.cal-map-foot-card__hdr,
.cal-ms-block__hdr {
  padding: calc(8px * var(--cal-foot-z, 1)) calc(12px * var(--cal-foot-z, 1)) calc(6px * var(--cal-foot-z, 1));
  font-family: var(--font-bloomberg, var(--cal-read, var(--mono)));
  font-size: calc(10px * var(--cal-foot-z, 1));
  font-weight: 700;
  letter-spacing: 0.14em;
  color: rgba(0, 168, 204, 0.95);
  border-bottom: 1px solid rgba(255, 255, 255, 0.06);
  text-transform: uppercase;
}

.cal-map-foot-card__grid,
.cal-ms-block__grid {
  display: flex;
  flex-direction: column;
  gap: calc(3px * var(--cal-foot-z, 1));
  padding: calc(7px * var(--cal-foot-z, 1)) calc(10px * var(--cal-foot-z, 1));
  flex: 1 1 auto;
  min-height: 0;
}

.cal-map-foot-card__row,
.cal-ms-block__row {
  display: grid;
  grid-template-columns: calc(64px * var(--cal-foot-z, 1)) minmax(0, 1fr);
  gap: calc(8px * var(--cal-foot-z, 1));
  align-items: baseline;
}

.cal-map-foot-card__lbl,
.cal-ms-block__lbl {
  color: rgba(106, 120, 132, 0.95);
  font-family: var(--font-bloomberg, var(--cal-read, var(--mono)));
  font-weight: 600;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  font-size: calc(9px * var(--cal-foot-z, 1));
}

.cal-map-foot-card__val,
.cal-ms-block__val {
  color: rgba(212, 220, 228, 0.96);
  font-family: var(--font-bloomberg, var(--cal-read, var(--mono)));
  font-weight: 600;
  letter-spacing: 0.05em;
  text-transform: uppercase;
  font-size: calc(9px * var(--cal-foot-z, 1));
  word-break: break-word;
  font-variant-numeric: tabular-nums;
}

.cal-map-foot-card__signals,
.cal-ms-block__signals {
  display: flex;
  flex-wrap: wrap;
  gap: calc(4px * var(--cal-foot-z, 1));
  padding: 0 calc(10px * var(--cal-foot-z, 1)) calc(8px * var(--cal-foot-z, 1));
  border-top: 1px solid rgba(255, 255, 255, 0.05);
  margin-top: auto;
  padding-top: calc(6px * var(--cal-foot-z, 1));
}

.cal-map-foot-card__chip,
.cal-ms-block__chip {
  display: inline-block;
  padding: calc(2px * var(--cal-foot-z, 1)) calc(6px * var(--cal-foot-z, 1));
  font-family: var(--font-bloomberg, var(--cal-read, var(--mono)));
  font-size: calc(8px * var(--cal-foot-z, 1));
  font-weight: 700;
  letter-spacing: 0.06em;
  color: rgba(200, 136, 58, 0.98);
  background: rgba(200, 136, 58, 0.1);
  border: 1px solid rgba(200, 136, 58, 0.28);
  border-radius: 2px;
  text-transform: uppercase;
  transition: color 0.2s, border-color 0.2s, background 0.2s, opacity 0.2s;
}

.cal-map-foot-card__hdr {
  padding: calc(8px * var(--cal-foot-z)) calc(12px * var(--cal-foot-z)) calc(6px * var(--cal-foot-z));
  font-size: calc(10px * var(--cal-foot-z));
}

.cal-map-foot-card__grid {
  gap: calc(3px * var(--cal-foot-z));
  padding: calc(7px * var(--cal-foot-z)) calc(10px * var(--cal-foot-z));
}

.cal-map-foot-card__row {
  grid-template-columns: calc(84px * var(--cal-foot-z)) minmax(0, 1fr);
  gap: calc(8px * var(--cal-foot-z));
}

.cal-map-foot-card__lbl {
  font-size: calc(9px * var(--cal-foot-z));
}

.cal-map-foot-card__val {
  font-size: calc(11px * var(--cal-foot-z));
}

.cal-map-foot-card__signals {
  gap: calc(4px * var(--cal-foot-z));
  padding: 0 calc(10px * var(--cal-foot-z)) calc(8px * var(--cal-foot-z));
  padding-top: calc(6px * var(--cal-foot-z));
}

.cal-map-foot-card__chip {
  padding: calc(2px * var(--cal-foot-z)) calc(6px * var(--cal-foot-z));
  font-size: calc(8px * var(--cal-foot-z));
}

.cal-map-foot-card__row--alert .cal-map-foot-card__val {
  color: rgba(224, 69, 69, 0.98);
}

.cal-map-foot-card__row--overlap .cal-map-foot-card__val {
  color: rgba(255, 215, 80, 0.98);
}

.cal-map-foot-card--risk-on .cal-map-foot-card__row--regime .cal-map-foot-card__val {
  color: rgba(116, 222, 198, 0.98);
}

.cal-map-foot-card--risk-off .cal-map-foot-card__row--regime .cal-map-foot-card__val {
  color: rgba(224, 69, 69, 0.98);
}

.cal-map-foot-card--neutral .cal-map-foot-card__row--regime .cal-map-foot-card__val {
  color: rgba(200, 136, 58, 0.98);
}

.cal-map-foot-card--news-lock {
  border-color: rgba(224, 69, 69, 0.45);
  box-shadow:
    0 8px 28px rgba(0, 0, 0, 0.45),
    inset 0 0 0 1px rgba(224, 69, 69, 0.18);
}

/* legado — mantido para referências antigas */
.cal-map-foot--risk-on,
.cal-map-foot-card--risk-on {
  color: rgba(116, 222, 198, 0.98);
}

.cal-map-foot--risk-off,
.cal-map-foot-card--risk-off {
  color: rgba(224, 69, 69, 0.98);
}

.cal-map-foot--neutral,
.cal-map-foot-card--neutral {
  color: rgba(200, 136, 58, 0.98);
}

.cal-map-foot--overlap,
.cal-map-foot-card--overlap {
  color: rgba(255, 215, 80, 0.98);
}

.cal-map-foot--news-lock,
.cal-map-foot-card--news-lock {
  color: rgba(224, 69, 69, 0.98);
}

/* ── Major exchanges + Market Snapshot — faixa abaixo do mapa ── */
.cal-map-displays {
  --cal-ms-z: 1.25;
  --cal-ms-h-z: 0.9;
  --cal-ms-fs-z: 1.1;
  display: flex;
  flex-direction: column;
  align-items: stretch;
  gap: 0;
  flex: 0 0 auto;
  min-height: calc(220px * var(--cal-ms-z) * var(--cal-ms-h-z, 1));
  height: auto;
  max-height: none;
  padding: 0;
  box-sizing: border-box;
  background: var(--bg3, #0a1018);
  overflow: visible;
  position: relative;
  z-index: 1;
}

.cal-map-displays[data-cal-map-dock="overlay"] {
  /* legado — não usar; cards ficam abaixo do mapa */
  position: relative;
  left: auto;
  right: auto;
  bottom: auto;
  flex: 0 0 auto;
  min-height: calc(220px * var(--cal-ms-z) * var(--cal-ms-h-z, 1));
  max-height: none;
  background: var(--bg3, #0a1018);
}

.cal-stats-row--dock {
  flex: 0 0 auto;
  border-bottom: 1px solid rgba(0, 168, 204, 0.14);
  background: rgba(0, 0, 0, 0.28);
}

.cal-stats-row--dock .cal-stat {
  padding: calc(8px * var(--cal-ms-z)) calc(10px * var(--cal-ms-z));
  border-right-color: rgba(255, 255, 255, 0.06);
}

.cal-stats-row--dock .cal-stat:last-child {
  border-right: none;
}

.cal-stats-row--dock .cal-stat-l {
  font-size: calc(8px * var(--cal-ms-z));
  letter-spacing: 0.14em;
  margin-bottom: calc(3px * var(--cal-ms-z));
}

.cal-stats-row--dock .cal-stat-v {
  font-size: calc(15px * var(--cal-ms-z));
}

.cal-map-displays-cards {
  --cal-card-z: var(--cal-ms-z, 1.25);
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  align-items: stretch;
  flex: 1 1 auto;
  min-height: calc(140px * var(--cal-card-z));
  gap: calc(6px * var(--cal-card-z));
  padding: calc(6px * var(--cal-card-z)) calc(8px * var(--cal-card-z)) calc(8px * var(--cal-card-z));
  box-sizing: border-box;
}

.ih-map-stage #cal-map-host {
  flex: 1 1 calc(53.8% + 46.2% * (1 - var(--cal-ms-h-z, 1)));
  min-height: 0;
  align-self: stretch;
  width: 100%;
  max-width: 100%;
}

.ih-map-stage:has(.cal-map-displays[data-cal-map-dock="overlay"]) #cal-map-host {
  flex: none;
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  min-height: 100%;
  max-height: none;
}

.cal-map-displays .cal-market-status {
  --cal-card-z: var(--cal-ms-z, 1.25);
  position: relative;
  top: auto;
  left: auto;
  z-index: 2;
  grid-column: 1 / span 4;
  min-width: 0;
  width: auto;
  max-height: none;
  overflow: hidden;
  display: flex;
  flex-direction: column;
  pointer-events: auto;
  background: transparent;
  border: none;
  box-shadow: none;
  backdrop-filter: none;
}

.cal-map-displays .cal-ms-body {
  flex: 1 1 0;
  min-height: 0;
  height: 100%;
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  align-items: stretch;
  gap: calc(7px * var(--cal-card-z));
  padding: 0;
  overflow: hidden;
}

.cal-map-displays .cal-ms-block {
  flex: none;
  width: 100%;
  min-width: 0;
  max-width: none;
  height: 100%;
  min-height: 0;
  --cal-foot-z: var(--cal-card-z);
  font-family: var(--font-bloomberg, 'Bloomberg Prop Unicode N', var(--mono));
  font-weight: 500;
}

.cal-map-displays .cal-ms-block__grid,
.cal-map-displays .cal-map-foot-card__grid {
  gap: calc(2px * var(--cal-card-z));
  padding: calc(4px * var(--cal-card-z)) calc(8px * var(--cal-card-z));
  flex: 1 1 auto;
  min-height: 0;
}

.cal-map-displays .cal-ms-block__row,
.cal-map-displays .cal-map-foot-card__row {
  grid-template-columns: calc(98px * var(--cal-card-z)) minmax(0, 1fr);
  gap: calc(9px * var(--cal-card-z));
  min-height: calc(18px * var(--cal-card-z));
  align-items: center;
}

.cal-map-displays .cal-ms-block__hdr,
.cal-map-displays .cal-map-foot-card__hdr {
  font-family: var(--font-bloomberg, 'Bloomberg Prop Unicode N', var(--mono));
  font-size: calc(12.5px * var(--cal-card-z) * var(--cal-ms-fs-z, 1));
  font-weight: 700;
  padding: calc(7px * var(--cal-card-z)) calc(10px * var(--cal-card-z)) calc(5px * var(--cal-card-z));
  flex: 0 0 auto;
}

.cal-map-displays .cal-ms-block__lbl,
.cal-map-displays .cal-ms-block__val,
.cal-map-displays .cal-map-foot-card__lbl,
.cal-map-displays .cal-map-foot-card__val {
  font-family: var(--font-bloomberg, 'Bloomberg Prop Unicode N', var(--mono));
  font-size: calc(11.5px * var(--cal-card-z) * var(--cal-ms-fs-z, 1));
  line-height: 1.35;
}

.cal-map-displays .cal-ms-block__val,
.cal-map-displays .cal-map-foot-card__val {
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.cal-map-displays .cal-ms-block__val.cal-ms-hours {
  white-space: normal;
  overflow: visible;
  text-overflow: unset;
  line-height: 1.28;
}

.cal-map-displays .cal-ms-block__row--quote .cal-ms-quote-val,
.cal-map-displays .cal-map-foot-card__row--regime .cal-map-foot-card__val {
  font-family: var(--font-bloomberg, 'Bloomberg Prop Unicode N', var(--mono));
  font-size: calc(14.5px * var(--cal-card-z) * var(--cal-ms-fs-z, 1));
  font-weight: 700;
}

.cal-map-displays .cal-ms-block__chip,
.cal-map-displays .cal-map-foot-card__chip {
  font-family: var(--font-bloomberg, 'Bloomberg Prop Unicode N', var(--mono));
  font-size: calc(10.5px * var(--cal-card-z) * var(--cal-ms-fs-z, 1));
  padding: calc(3px * var(--cal-card-z)) calc(7px * var(--cal-card-z));
}

.cal-map-displays .cal-ms-block__signals,
.cal-map-displays .cal-map-foot-card__signals {
  flex: 0 0 auto;
  min-height: calc(32px * var(--cal-card-z));
  max-height: none;
  gap: calc(4px * var(--cal-card-z));
  padding: calc(5px * var(--cal-card-z)) calc(8px * var(--cal-card-z)) calc(7px * var(--cal-card-z));
  overflow: visible;
  align-content: flex-start;
  margin-top: auto;
}

.cal-map-displays .cal-ms-block.cal-map-hover {
  border-color: rgba(0, 168, 204, 0.52);
  box-shadow:
    0 8px 28px rgba(0, 0, 0, 0.45),
    inset 0 0 0 1px rgba(0, 168, 204, 0.2),
    0 0 16px rgba(0, 168, 204, 0.12);
}

.cal-map-displays .cal-ms-block--snapshot {
  --hub-color: rgba(0, 168, 204, 0.95);
  --cal-foot-z: var(--cal-card-z, var(--cal-ms-z, 1.25));
  opacity: 1;
  position: relative;
  top: auto;
  right: auto;
  bottom: auto;
  left: auto;
  grid-column: 5;
  flex: none;
  width: 100%;
  min-width: 0;
  max-width: none;
  align-self: stretch;
  height: 100%;
  min-height: 0;
  z-index: 2;
  display: flex;
  flex-direction: column;
  font-weight: 500;
  font-family: var(--font-bloomberg, 'Bloomberg Prop Unicode N', var(--mono));
}

.cal-map-displays .cal-ms-block--snapshot .cal-ms-block__hdr {
  color: var(--hub-color);
  font-size: calc(10px * var(--cal-card-z) * var(--cal-ms-fs-z, 1));
  padding: calc(5px * var(--cal-card-z)) calc(8px * var(--cal-card-z)) calc(3px * var(--cal-card-z));
}

.cal-map-displays .cal-ms-block--snapshot .cal-ms-block__lbl,
.cal-map-displays .cal-ms-block--snapshot .cal-ms-block__val {
  font-size: calc(9px * var(--cal-card-z) * var(--cal-ms-fs-z, 1));
  line-height: 1.22;
}

.cal-map-displays .cal-ms-block--snapshot .cal-ms-block__val {
  white-space: normal;
  overflow: visible;
  text-overflow: unset;
  word-break: break-word;
}

.cal-map-displays .cal-ms-block--snapshot .cal-ms-block__row {
  grid-template-columns: calc(72px * var(--cal-card-z)) minmax(0, 1fr);
  gap: calc(4px * var(--cal-card-z));
  min-height: calc(14px * var(--cal-card-z));
  align-items: center;
}

.cal-map-displays .cal-ms-block--snapshot .cal-ms-block__row--quote .cal-ms-quote-val {
  font-size: calc(10.5px * var(--cal-card-z) * var(--cal-ms-fs-z, 1));
  line-height: 1.15;
}

.cal-map-displays .cal-ms-block--snapshot .cal-ms-block__chip {
  font-size: calc(8.5px * var(--cal-card-z) * var(--cal-ms-fs-z, 1));
  padding: calc(2px * var(--cal-card-z)) calc(5px * var(--cal-card-z));
}

.cal-map-displays .cal-ms-block--snapshot .cal-ms-block__grid {
  flex: 1 1 auto;
  justify-content: flex-start;
  gap: calc(1px * var(--cal-card-z));
  padding: calc(3px * var(--cal-card-z)) calc(6px * var(--cal-card-z));
}

.cal-map-displays .cal-ms-block--snapshot .cal-ms-block__signals {
  margin-top: auto;
  overflow-y: auto;
  overflow-x: hidden;
}

.cal-map-displays .cal-ms-block--snapshot .cal-ms-clock {
  color: var(--hub-color);
}

.cal-ms-block__row--alert .cal-ms-block__val {
  color: rgba(224, 69, 69, 0.98);
}

.cal-ms-block__row--overlap .cal-ms-block__val {
  color: rgba(255, 215, 80, 0.98);
}

.cal-ms-block--risk-on .cal-ms-regime-val {
  color: rgba(116, 222, 198, 0.98);
}

.cal-ms-block--risk-off .cal-ms-regime-val {
  color: rgba(224, 69, 69, 0.98);
}

.cal-ms-block--neutral .cal-ms-regime-val {
  color: rgba(200, 136, 58, 0.98);
}

.cal-ms-block--news-lock {
  border-color: rgba(224, 69, 69, 0.45);
  box-shadow:
    0 8px 28px rgba(0, 0, 0, 0.45),
    inset 0 0 0 1px rgba(224, 69, 69, 0.18);
}

.cal-map-displays .cal-map-foot.cal-map-foot-card {
  --cal-foot-z: var(--cal-card-z, 1.25);
  position: relative;
  top: auto;
  right: auto;
  bottom: auto;
  left: auto;
  grid-column: 5;
  flex: none;
  width: 100%;
  min-width: 0;
  max-width: none;
  align-self: stretch;
  height: 100%;
  min-height: 0;
  z-index: 2;
  display: flex;
  flex-direction: column;
}

.cal-map-displays .cal-map-foot-card__grid {
  flex: 1 1 auto;
  justify-content: flex-start;
}

.cal-map-displays .cal-map-foot-card__signals {
  margin-top: auto;
}

#cal-map-host > .cal-market-status {
  --cal-ms-z: 1.25;
  position: absolute;
  top: calc(12px * var(--cal-ms-z));
  left: calc(12px * var(--cal-ms-z));
  z-index: 4;
  width: min(calc(318px * var(--cal-ms-z)), 34.8vw);
  max-height: calc(100% - calc(88px * var(--cal-ms-z)));
  overflow-x: hidden;
  overflow-y: auto;
  pointer-events: none;
  background: linear-gradient(135deg, rgba(5, 7, 10, 0.94) 0%, rgba(8, 11, 15, 0.88) 100%);
  border: 1px solid rgba(0, 168, 204, 0.28);
  box-shadow:
    0 8px 28px rgba(0, 0, 0, 0.45),
    inset 0 1px 0 rgba(0, 168, 204, 0.14);
}

.cal-market-status {
  --cal-ms-z: 1.25;
}

.cal-ms-title {
  padding: calc(11px * var(--cal-ms-z)) calc(14px * var(--cal-ms-z)) calc(9px * var(--cal-ms-z));
  font-family: var(--font-bloomberg, var(--cal-read, var(--mono)));
  font-size: calc(12.5px * var(--cal-ms-z));
  font-weight: 700;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: rgba(0, 168, 204, 0.92);
  border-bottom: 1px solid rgba(0, 168, 204, 0.18);
}

.cal-ms-body {
  display: flex;
  flex-direction: column;
  gap: calc(7px * var(--cal-ms-z));
  padding: calc(9px * var(--cal-ms-z));
}

.cal-ms-block {
  --cal-foot-z: var(--cal-ms-z, 1.25);
  --hub-color: rgba(0, 168, 204, 0.85);
  display: flex;
  flex-direction: column;
  min-width: 0;
  height: 100%;
  padding: 0;
  overflow: hidden;
  contain: layout paint style;
  background: linear-gradient(135deg, rgba(5, 7, 10, 0.94) 0%, rgba(8, 11, 15, 0.92) 100%);
  border: 1px solid rgba(0, 168, 204, 0.28);
  box-shadow:
    0 8px 28px rgba(0, 0, 0, 0.45),
    inset 0 1px 0 rgba(0, 168, 204, 0.14);
  font-family: var(--font-bloomberg, var(--cal-read, var(--mono)));
  transition: border-color 0.18s ease, opacity 0.18s ease;
}

.cal-ms-block:not(.is-open) {
  opacity: 0.58;
}

.cal-ms-block.is-open {
  opacity: 1;
  border-color: rgba(0, 168, 204, 0.42);
  box-shadow:
    0 8px 28px rgba(0, 0, 0, 0.45),
    inset 0 1px 0 rgba(0, 168, 204, 0.18),
    0 0 12px rgba(0, 168, 204, 0.08);
}

.cal-ms-block.cal-map-hover {
  border-color: rgba(0, 168, 204, 0.52);
  box-shadow:
    0 8px 28px rgba(0, 0, 0, 0.45),
    inset 0 0 0 1px rgba(0, 168, 204, 0.2),
    0 0 16px rgba(0, 168, 204, 0.12);
}

.cal-ms-block__row--quote .cal-ms-quote-val {
  font-family: var(--font-bloomberg, 'Bloomberg Prop Unicode N', var(--mono));
  font-size: calc(13px * var(--cal-foot-z, 1));
  font-weight: 700;
  letter-spacing: 0.04em;
}

.cal-ms-st.is-open {
  color: rgba(116, 222, 198, 0.98);
}

.cal-ms-st.is-closed {
  color: rgba(130, 138, 148, 0.72);
}

.cal-ms-block.is-open .cal-ms-clock {
  color: var(--hub-color, rgba(0, 168, 204, 0.95));
}

.cal-ms-block:not(.is-open) .cal-ms-clock,
.cal-ms-block:not(.is-open) .cal-ms-exchange,
.cal-ms-block:not(.is-open) .cal-ms-hours,
.cal-ms-block:not(.is-open) .cal-ms-quote-val {
  color: rgba(150, 160, 172, 0.78);
}

.cal-ms-quote-val.is-live {
  color: var(--hub-color, rgba(79, 195, 247, 0.98));
}

.cal-ms-block.is-open .cal-ms-quote-val.is-live {
  color: var(--hub-color, rgba(79, 195, 247, 0.98));
}

.cal-ms-block__chip:not(.is-on) {
  opacity: 0.45;
  color: rgba(120, 128, 138, 0.72);
  border-color: rgba(255, 255, 255, 0.08);
  background: rgba(0, 0, 0, 0.28);
}

.cal-ms-block.is-open .cal-ms-block__chip.is-on {
  opacity: 1;
}

.cal-ms-block.is-open .cal-ms-block__chip.is-principal.is-on {
  color: rgba(255, 215, 80, 0.98);
  border-color: rgba(255, 215, 80, 0.38);
  background: rgba(255, 215, 80, 0.12);
}

.cal-map-tip-macro__status.is-news {
  color: rgba(239, 83, 80, 0.88);
  border-color: rgba(239, 83, 80, 0.35);
  background: rgba(239, 83, 80, 0.08);
}

.cal-map-tip-macro__hint {
  margin-top: 8px;
  font-size: 6.5px;
  letter-spacing: 1.8px;
  color: rgba(0, 168, 204, 0.45);
  text-transform: uppercase;
}
.cal-feed-panel {
  width: 300px;
  flex-shrink: 0;
  border-left: 1px solid var(--border2);
  display: flex;
  flex-direction: column;
  background: #080E14;
}
.cal-feed-hdr {
  padding: 10px 14px;
  border-bottom: 1px solid var(--border2);
  display: flex;
  align-items: center;
  gap: 8px;
  font-family: var(--mono);
  font-size: 10px;
  letter-spacing: 2px;
  color: var(--cal-cyan);
  text-transform: uppercase;
  font-weight: 600;
}
#cal-led {
  width: 7px;
  height: 7px;
}
.cal-feed-item {
  padding: 10px 14px;
  border-bottom: 1px solid #0D1520;
}
.cal-feed-empty {
  padding: 14px;
  font-family: var(--cal-read);
  font-size: 12px;
  color: var(--text-faint);
  line-height: 1.45;
}
.cal-feed-meta {
  display: flex;
  align-items: center;
  gap: 8px;
  margin-bottom: 5px;
}
.cal-feed-tag {
  font-family: var(--mono);
  font-size: 10px;
  letter-spacing: 1px;
  padding: 3px 7px;
  font-weight: 700;
  text-transform: uppercase;
  border: 1px solid;
}
.cal-feed-time {
  font-family: var(--mono);
  font-size: 10px;
  color: var(--cal-cyan);
  letter-spacing: 0.5px;
}
.cal-feed-txt {
  font-family: var(--cal-read);
  font-size: 14px;
  color: #E8E0D4;
  line-height: 1.7;
  letter-spacing: 0.2px;
}

#cal-feed::-webkit-scrollbar { width: 4px; }
#cal-feed::-webkit-scrollbar-thumb { background: var(--border2); }

/* ── Toolbar filtros ── */
.cal-toolbar {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 12px 18px;
  border-bottom: 1px solid var(--cal-border);
  flex-shrink: 0;
  background: var(--cal-bg);
}
.cal-fil-lbl {
  font-family: var(--mono);
  font-size: 11px;
  color: var(--cal-cyan);
  letter-spacing: 1.8px;
  text-transform: uppercase;
  font-weight: 600;
}
.cal-fil-lbl.spaced { margin-left: 16px; }
.cal-fil-select {
  background: var(--bg2);
  border: 1px solid var(--border2);
  color: var(--text);
  font-family: var(--cal-read);
  font-size: 14px;
  font-weight: 600;
  padding: 8px 12px;
  letter-spacing: 0.3px;
  min-width: 100px;
}
.cal-att-btn {
  background: var(--bg2);
  border: 1px solid var(--border2);
  color: var(--text);
  font-family: var(--mono);
  font-size: 13px;
  letter-spacing: 1px;
  padding: 9px 18px;
  cursor: pointer;
  margin-left: 12px;
  font-weight: 700;
  transition: border-color .12s, color .12s;
}
.cal-att-btn:hover {
  border-color: var(--amber-dim);
  color: var(--amber-hot);
}

/* ── Tabela eventos ── */
:root {
  --cal-row-h: 56px;
  --cal-head-h: 58px;
  --cal-visible-rows: 50;
  --cal-table-fs: 1.65;
}

.cal-table-wrap {
  flex: 1 1 auto;
  overflow-y: auto;
  overflow-x: hidden;
  min-height: calc(var(--cal-row-h) * var(--cal-visible-rows) + var(--cal-head-h));
  background: var(--cal-bg);
}

.ih-macro-page--calendar .cal-table-wrap table,
.ih-macro-page--calendar .cal-table-wrap tbody,
.ih-macro-calendar .cal-table-wrap table,
.ih-macro-calendar .cal-table-wrap tbody {
  background: var(--cal-bg);
}

.ih-macro-scroll-pages {
  flex: 1 1 auto;
  min-height: 0;
  overflow-y: auto;
  overflow-x: hidden;
  scroll-behavior: smooth;
  -webkit-overflow-scrolling: touch;
}

.ih-macro-page {
  display: flex;
  flex-direction: column;
  min-height: 100%;
  flex-shrink: 0;
}

.ih-macro-page--hub .ih-body {
  flex: 1 1 auto;
  min-height: 480px;
}

#view-caleco.ih-show-calendar .ih-macro-page {
  min-height: auto;
}

#view-caleco.ih-show-calendar .ih-macro-page--hub .ih-body {
  flex: 0 0 auto;
  min-height: 0;
  height: auto;
}

.ih-macro-calendar {
  background: var(--cal-bg);
  min-width: 0;
  max-width: 100%;
  box-sizing: border-box;
}

.ih-macro-calendar .cal-toolbar {
  flex-shrink: 0;
}

.ih-macro-calendar .cal-table-wrap {
  flex: 0 0 auto;
  width: 100%;
  max-width: 100%;
  min-height: 0;
  max-height: calc(var(--cal-row-h) * var(--cal-visible-rows) + var(--cal-head-h));
  overflow-y: auto;
  overflow-x: hidden;
  box-sizing: border-box;
}
.cal-table-wrap table {
  width: 100%;
  border-collapse: collapse;
  font-size: calc(16px * var(--cal-table-fs, 1.65));
}
.cal-thead-row {
  border-bottom: 1px solid var(--cal-border);
  background: var(--cal-bg-local, #0a1018);
  position: sticky;
  top: 0;
  z-index: 1;
}

.cal-th {
  font-family: var(--mono);
  font-size: calc(11px * var(--cal-table-fs, 1.65));
  letter-spacing: 1.6px;
  color: var(--cal-cyan);
  padding: 14px 16px;
  text-align: center;
  border-right: 1px solid var(--cal-border);
  white-space: nowrap;
  text-transform: uppercase;
  font-weight: 700;
  background: var(--cal-bg-local, #0a1018);
}
.cal-th.ev { text-align: left; padding-left: 16px; }

.cal-tr { border-bottom: 1px solid var(--cal-border); background: var(--cal-bg); }
.cal-tr:hover { background: rgba(0, 168, 204, 0.06); }
.cal-tr.c-hi { border-left: 3px solid var(--red); }
.cal-tr.c-md { border-left: 3px solid var(--amber); }
.cal-tr.c-lo { border-left: 3px solid var(--cal-border); }
.cal-tr.c-past { opacity: 0.45; }
.cal-tr.c-next { background: rgba(0, 168, 204, 0.1); }

.cal-td {
  padding: 14px 16px;
  text-align: center;
  color: #E0D6C8;
  border-right: 1px solid var(--cal-border);
  font-size: calc(15px * var(--cal-table-fs, 1.65));
  font-family: var(--cal-read);
  font-weight: 500;
  line-height: 1.45;
  letter-spacing: 0.25px;
}
.cal-td.moeda {
  font-family: var(--mono);
  font-weight: 700;
  color: var(--amber-hot);
  font-size: calc(14px * var(--cal-table-fs, 1.65));
  letter-spacing: 0.6px;
}
.cal-td-ev {
  text-align: left;
  padding-left: 18px;
  color: #F0E8DC;
  font-size: calc(15px * var(--cal-table-fs, 1.65));
  font-weight: 600;
}
.cal-td-rem {
  color: var(--text-dim);
  font-size: calc(13px * var(--cal-table-fs, 1.65));
  font-family: var(--mono);
  letter-spacing: 0.3px;
}
.cal-td .cal-imp {
  font-size: calc(14px * var(--cal-table-fs, 1.65));
  line-height: 1;
}
.cal-empty {
  text-align: center;
  padding: 32px;
  color: var(--text-faint);
  font-size: calc(14px * var(--cal-table-fs, 1.65));
  font-family: var(--cal-read);
  letter-spacing: 0.5px;
}

.c-beat { color: var(--green); font-weight: 700; }
.c-miss { color: var(--red); font-weight: 700; }
