/* #anatel_broadband_layout {
    zoom: 75%
} */

/* body {
    background: rgb(73, 80, 87) !important;
} */
.loading_toast {
    border: 0px;
    background-color: #ffffff00;
    box-shadow: none;
    position: fixed;


    top: 70px;
    right: 50px;
    width: 2px;
    z-index: 5;

}

.loading_toast_header {
    opacity: 0;

}

/* ─── ANS Dashboard — compact & aesthetic ───────────────────────────────── */

#ans_layout {
    padding-bottom: 48px;
}

/* Cards */
#ans_layout .card {
    border: 1px solid rgba(0, 0, 0, 0.07);
    border-radius: 8px;
    box-shadow: 0 1px 4px rgba(0, 0, 0, 0.05);
}

#ans_layout .card-header {
    background: transparent;
    border-bottom: 1px solid rgba(0, 0, 0, 0.06);
    padding: 7px 14px;
    font-size: 11px;
    font-weight: 600;
    letter-spacing: 0.045em;
    text-transform: uppercase;
    color: #555;
}

#ans_layout .card-body {
    padding: 10px 14px;
}

/* KPI cards */
#ans_layout .kpi-card .card-body {
    padding: 8px 12px;
}

/* Labels & form controls */
#ans_layout label.small {
    font-size: 11px;
    margin-bottom: 2px;
    color: #999;
    letter-spacing: 0.02em;
}

#ans_layout .form-check {
    margin-bottom: 0;
}

#ans_layout .form-check-label {
    font-size: 12px;
}

/* Alerts */
#ans_layout .alert {
    padding: 7px 12px;
    font-size: 12px;
    border-radius: 6px;
}

/* Tab bar */
#ans_layout > .nav-tabs,
#ans_layout .nav-tabs {
    border-bottom: 1px solid rgba(0, 0, 0, 0.10);
}

#ans_layout .nav-tabs .nav-link {
    font-size: 12.5px;
    padding: 6px 16px;
    color: #777;
    border: none;
    border-bottom: 2px solid transparent;
    border-radius: 0;
}

#ans_layout .nav-tabs .nav-link:hover {
    color: #2A6060;
    border-bottom-color: rgba(42, 96, 96, 0.3);
}

#ans_layout .nav-tabs .nav-link.active {
    font-weight: 600;
    color: #2A6060;
    border-bottom: 2px solid #2A6060;
    background: transparent;
}

/* Source footnotes */
#ans_layout > div > small.text-muted,
#ans_layout small.text-muted:last-child {
    font-size: 11px;
    opacity: 0.7;
}

/* Range sliders — less bulky */
#ans_layout .rc-slider {
    margin: 4px 0;
}

/* ─────────────────────────────────────────────────────────────────────────── */

/* ─── ANS Monitor Table ──────────────────────────────────────────────────── */

#ans_layout .ans-monitor-tbl {
    width: 100%;
    border-collapse: collapse;
    font-size: 12px;
    font-family: Calibri, "Segoe UI", sans-serif;
    line-height: 1.35;
}

#ans_layout .ans-monitor-tbl th,
#ans_layout .ans-monitor-tbl td {
    padding: 4px 10px;
    white-space: nowrap;
}

/* ── Column headers — Leblon Navy ── */
#ans_layout .ans-mt-th {
    background: #2A6060;        /* Leblon Navy */
    color: #fff;
    font-weight: 600;
    font-size: 10.5px;
    letter-spacing: 0.05em;
    text-transform: uppercase;
    border: none;
    border-bottom: 3px solid #ffffff;  /* white separator from Industry HC */
    padding: 6px 10px;
}

#ans_layout .ans-mt-period-th { text-align: right; }

#ans_layout .ans-mt-delta-th {
    background: #1C4040 !important;  /* Leblon Deep Teal */
    text-align: right;
}

/* ── Vertical separator: latest month → QTD delta ── */
#ans_layout .ans-monitor-tbl th.ans-mt-sep {
    border-left: 3px solid rgba(255, 255, 255, 0.55) !important;
    padding-left: 14px !important;
}
#ans_layout .ans-monitor-tbl td.ans-mt-sep {
    border-left: 3px solid #7ABABA !important;  /* Leblon Medium Teal */
    padding-left: 14px !important;
}
/* Right-side breathing room on the last absolute period column */
#ans_layout .ans-monitor-tbl .ans-mt-period-last {
    padding-right: 14px !important;
}

/* ── Period value cells ── */
#ans_layout .ans-mt-period-td {
    text-align: right;
    color: #364848;             /* Leblon Body Text */
    border-bottom: 1px solid #DAEAE8;  /* Leblon Light Teal */
    font-variant-numeric: tabular-nums;
}

/* ── Delta value cells ── */
#ans_layout .ans-mt-delta-td {
    text-align: right;
    background: #F4F8F7;        /* Leblon Off-White */
    color: #364848;
    border-bottom: 1px solid #DAEAE8;
    font-variant-numeric: tabular-nums;
}

/* ── Positive / negative — Leblon semantic colours ── */
#ans_layout .ans-mt-pos { color: #1B7A4C !important; font-weight: 700; }
#ans_layout .ans-mt-neg { color: #C0392B !important; font-weight: 700; }

/* ── Industry HC header row — most important row, deep teal prominence ── */
#ans_layout .ans-mt-ind-row td {
    background: #1C4040;        /* Deep Teal — darkest Leblon color, most authoritative */
    color: #fff !important;
    border-bottom: none;
    padding-top: 11px;
    padding-bottom: 11px;
}
#ans_layout .ans-mt-ind-row td.ans-mt-delta-td {
    background: #122929;        /* Even deeper for delta zone */
    color: #fff !important;
}
#ans_layout .ans-mt-ind-row td.ans-mt-sep {
    border-left: 3px solid rgba(255, 255, 255, 0.35) !important;
    padding-left: 14px !important;
}
#ans_layout .ans-mt-ind-label {
    font-weight: 700;
    font-size: 13px;
    letter-spacing: 0.06em;
    text-transform: uppercase;
}
#ans_layout .ans-mt-ind-td {
    font-weight: 700;
    font-size: 13px;
}

/* Gradient separator below Industry HC — signals transition from summary to detail */
#ans_layout .ans-mt-spacer-hc {
    height: 14px;
    background: linear-gradient(to bottom, #1C4040 0%, #7ABABA 55%, #DAEAE8 100%);
}

/* ── Individual operator rows — clean white ── */
#ans_layout .ans-monitor-tbl tbody
    tr:not(.ans-mt-ind-row):not(.ans-mt-sub-row):not(.ans-mt-comb-row) td {
    background: #fff;
    border-bottom: 1px solid #DAEAE8;
}
#ans_layout .ans-monitor-tbl tbody
    tr:not(.ans-mt-ind-row):not(.ans-mt-sub-row):not(.ans-mt-comb-row) td.ans-mt-delta-td {
    background: #F4F8F7;        /* Off-White */
    border-bottom: 1px solid #DAEAE8;
}
#ans_layout .ans-mt-group-td {
    font-weight: 700;
    font-size: 11px;
    max-width: 58px;
    overflow: hidden;
    text-overflow: ellipsis;
}
#ans_layout .ans-mt-code-td  {
    color: #7ABABA;
    font-size: 11px;
    max-width: 62px;
    overflow: hidden;
    text-overflow: ellipsis;
}
#ans_layout .ans-mt-name-td  {
    color: #364848;
    max-width: 100px;
    overflow: hidden;
    text-overflow: ellipsis;
}

/* ── Group subtotal rows — light teal wash ── */
#ans_layout .ans-mt-sub-row td {
    background: #EBF4F3;
    border-top: 1px solid #7ABABA;
    border-bottom: 1px solid #7ABABA;
}
#ans_layout .ans-mt-sub-row td.ans-mt-delta-td { background: #DAEAE8; }
#ans_layout .ans-mt-sub-label {
    font-weight: 700;
    font-style: italic;
    font-size: 11.5px;
    padding-left: 10px;
    color: #2A6060;
}
#ans_layout .ans-mt-sub-td { font-weight: 700; }

/* ── Combined rows (HAPV TOTAL) — Leblon Light Teal accent ── */
#ans_layout .ans-mt-comb-row td {
    background: #DAEAE8;        /* Leblon Light Teal */
    border-top: 2px solid #7ABABA;
    border-bottom: 2px solid #7ABABA;
}
#ans_layout .ans-mt-comb-row td.ans-mt-delta-td {
    background: #C4DCDA;        /* slightly deeper teal for delta zone */
}
#ans_layout .ans-mt-comb-label {
    font-weight: 800;
    font-size: 12px;
    letter-spacing: 0.04em;
    color: #1C4040;             /* Deep Teal label */
}
#ans_layout .ans-mt-comb-td { font-weight: 700; }

/* ── Group separators ────────────────────────────────────────────────────── */
#ans_layout .ans-mt-spacer-row td {
    padding: 0 !important;
    border: none !important;
    line-height: 0;
}

/* Small separator — between sub-groups in the same cluster (e.g. HAPV → GNDI) */
#ans_layout .ans-mt-spacer-sm {
    height: 4px;
    background: #DAEAE8;   /* Leblon Light Teal */
}

/* Large separator — between independent insurer blocks (e.g. HAPV TOTAL → BBDC) */
#ans_layout .ans-mt-spacer-lg {
    height: 6px;
    background: #7ABABA;   /* Leblon Medium Teal */
}

/* ─── Plotly modebar — minimalistic, centered camera (hover only) ───────── */

/* Center horizontally at the top of the plot area */
#ans_layout .modebar-container {
    left: 50% !important;
    right: auto !important;
    top: 4px !important;
    transform: translateX(-50%);
}

/* Strip the default pill background — icon floats freely */
#ans_layout .modebar {
    background: transparent !important;
    border: none !important;
    box-shadow: none !important;
    padding: 0 !important;
}

/* Each button: no chrome */
#ans_layout .modebar-btn {
    background: transparent !important;
    border: none !important;
    padding: 2px !important;
    margin: 0 !important;
}

/* Icon: muted teal, slightly bigger than default */
#ans_layout .modebar-btn .icon {
    height: 16px !important;
    width: 16px !important;
}
#ans_layout .modebar-btn .icon path {
    fill: #7ABABA !important;
    transition: fill 0.15s ease;
}

/* Hover: just darken the icon */
#ans_layout .modebar-btn:hover {
    background: transparent !important;
}
#ans_layout .modebar-btn:hover .icon path {
    fill: #1C4040 !important;
}

/* ─────────────────────────────────────────────────────────────────────── */

/* ─── ANS Price Table (Beneficiários × Market Share por faixa) ─────────── */

#ans_layout .ans-price-tbl {
    width: 100%;
    border-collapse: collapse;
    font-family: Calibri, "Segoe UI", sans-serif;
    font-size: 12px;
    line-height: 1.4;
}

/* Column headers — Leblon Navy */
#ans_layout .ans-pt-th {
    background: #2A6060;
    color: #fff;
    font-weight: 600;
    font-size: 11px;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    padding: 8px 12px;
    border: none;
    border-bottom: 2px solid #1C4040;
    text-align: left;
}
#ans_layout .ans-pt-th-num { text-align: right; }
#ans_layout .ans-pt-th-sub {
    display: block;
    font-size: 9.5px;
    font-weight: 400;
    text-transform: none;
    letter-spacing: 0;
    color: rgba(255,255,255,0.7);
    margin-top: 1px;
}

/* Body rows — alternating off-white wash */
#ans_layout .ans-price-tbl tbody tr.ans-pt-row:nth-child(odd) td  { background: #fff; }
#ans_layout .ans-price-tbl tbody tr.ans-pt-row:nth-child(even) td { background: #F4F8F7; }
#ans_layout .ans-price-tbl tbody tr.ans-pt-row:hover td           { background: #DAEAE8; }

#ans_layout .ans-pt-td {
    padding: 7px 12px;
    border-bottom: 1px solid #DAEAE8;
    color: #364848;
    font-variant-numeric: tabular-nums;
}
#ans_layout .ans-pt-td-num { text-align: right; }
#ans_layout .ans-pt-name-td {
    padding: 7px 12px;
    border-bottom: 1px solid #DAEAE8;
    color: #364848;
    font-weight: 500;
}

/* Absolute value vs market-share % styling inside same cell */
#ans_layout .ans-pt-abs { font-weight: 600; color: #1C4040; }
#ans_layout .ans-pt-ms  { color: #7ABABA; font-size: 11px; }

/* Total column — extra emphasis */
#ans_layout .ans-pt-total {
    font-weight: 700;
    color: #2A6060;
    background: #EBF4F3 !important;
}

/* Leader cell per tier — light teal highlight + bold */
#ans_layout .ans-pt-leader {
    background: #DAEAE8 !important;
    box-shadow: inset 0 0 0 2px #7ABABA;
}
#ans_layout .ans-pt-leader .ans-pt-abs { color: #1C4040; }
#ans_layout .ans-pt-leader .ans-pt-ms  { color: #2A6060; font-weight: 600; }

/* Footer row — Deep Teal banner */
#ans_layout .ans-pt-foot-row td {
    background: #1C4040;
    color: #fff;
    font-weight: 700;
    padding: 9px 12px;
    border-top: 3px solid #2A6060;
    border-bottom: none;
    font-variant-numeric: tabular-nums;
}
#ans_layout .ans-pt-foot-label {
    text-align: left;
    letter-spacing: 0.05em;
    text-transform: uppercase;
    font-size: 11px;
}
#ans_layout .ans-pt-foot-td   { text-align: right; }
#ans_layout .ans-pt-foot-grand {
    background: #122929 !important;
    font-size: 13px;
}

/* ─────────────────────────────────────────────────────────────────────── */

/* ─────────────────────────────────────────────────────────────────────────── */