/* ────────────────────────────────────────────────────────────────────────────
   Cloud Operations Center — shell horizontal (sem menu lateral).
   Usa as variáveis de tema do portal (assets/styles/global.css).
   Prefixo de classe: ops-
   ──────────────────────────────────────────────────────────────────────────── */

.ops-shell {
    display: flex;
    flex-direction: column;
    min-height: 100%;
    color: #2E1956;
    color: var(--text-default, #2E1956);
    font-family: 'Ubuntu', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
}

/* Sub-navegação + filtros vivem no topo do conteúdo, DENTRO do <Layout>. */
.ops-shell__content {
    flex: 1 1 auto;
    padding-top: 8px;
}

/* ── Top bar ────────────────────────────────────────────────────────────── */
.ops-topbar {
    display: flex;
    align-items: center;
    gap: 16px;
    padding: 10px 20px;
    flex-wrap: wrap;
}

.ops-topbar__brand {
    display: flex;
    flex-direction: column;
    line-height: 1.05;
    -webkit-user-select: none;
            user-select: none;
}

.ops-topbar__brand-mark {
    font-size: 18px;
    font-weight: 700;
    letter-spacing: -0.02em;
    background: linear-gradient(90deg, #00DBFF, #9FA3FF);
    background: linear-gradient(90deg, var(--color-secondary-cyan, #00DBFF), var(--color-secondary-purple-bright, #9FA3FF));
    -webkit-background-clip: text;
    background-clip: text;
    -webkit-text-fill-color: transparent;
}

.ops-topbar__brand-sub {
    font-size: 10px;
    text-transform: uppercase;
    letter-spacing: 0.12em;
    color: #9FA3FF;
    color: var(--color-secondary-purple-bright, #9FA3FF);
}

.ops-topbar__client {
    display: flex;
    align-items: center;
    gap: 6px;
    padding: 5px 10px;
    border-radius: 6px;
    background: rgba(255, 255, 255, 0.08);
    font-size: 12px;
    max-width: 220px;
}

.ops-topbar__client-name {
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

/* Search */
.ops-topbar__search {
    position: relative;
    flex: 1 1 240px;
    min-width: 200px;
    display: flex;
    align-items: center;
}

.ops-topbar__search-icon {
    position: absolute;
    left: 10px;
    color: #8B90A3;
    color: var(--text-light, #8B90A3);
    pointer-events: none;
}

.ops-topbar__search input {
    width: 100%;
    height: 34px;
    padding: 0 12px 0 32px;
    border-radius: 8px;
    border: 1px solid transparent;
    background: rgba(255, 255, 255, 0.95);
    color: #2E1956;
    color: var(--text-default, #2E1956);
    font-size: 13px;
    outline: none;
}

.ops-topbar__search input:focus {
    border-color: #00DBFF;
    border-color: var(--color-secondary-cyan, #00DBFF);
    box-shadow: 0 0 0 2px rgba(0, 219, 255, 0.25);
}

/* Filters */
.ops-topbar__filters {
    display: flex;
    align-items: center;
    gap: 10px;
    flex-wrap: wrap;
}

.ops-topbar__providers {
    display: flex;
    gap: 4px;
}

.ops-provider-chip {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    height: 30px;
    padding: 0 10px;
    border-radius: 15px;
    border: 1px solid #E8E5F1;
    border: 1px solid var(--border-color, #E8E5F1);
    background: #fff;
    color: #6B6890;
    color: var(--text-light, #6B6890);
    font-size: 12px;
    cursor: pointer;
    transition: all 0.15s ease;
}

.ops-provider-chip:hover {
    border-color: #471FCC;
    border-color: var(--color-primary-blue, #471FCC);
    color: #2E1956;
    color: var(--text-default, #2E1956);
}

.ops-provider-chip.is-active {
    background: color-mix(in srgb, #471FCC 10%, #fff);
    background: color-mix(in srgb, var(--color-primary-blue, #471FCC) 10%, #fff);
    border-color: #471FCC;
    border-color: var(--color-primary-blue, #471FCC);
    color: #471FCC;
    color: var(--color-primary-blue, #471FCC);
    font-weight: 600;
}

/* ── Filter bar (provedor / ambiente / busca) — tema claro, dentro do Layout ─ */
.ops-filterbar {
    display: flex;
    align-items: center;
    gap: 12px;
    flex-wrap: wrap;
    padding: 10px 2px 12px;
}

.ops-filterbar__search {
    position: relative;
    flex: 1 1 240px;
    min-width: 200px;
    display: flex;
    align-items: center;
}

.ops-filterbar__search-icon {
    position: absolute;
    left: 10px;
    color: #8684A8;
    color: var(--text-light, #8684A8);
    pointer-events: none;
}

.ops-filterbar__search input {
    width: 100%;
    height: 34px;
    padding: 0 12px 0 32px;
    border-radius: 8px;
    border: 1px solid #E8E5F1;
    border: 1px solid var(--border-color, #E8E5F1);
    background: #fff;
    color: #2E1956;
    color: var(--text-default, #2E1956);
    font-size: 13px;
    outline: none;
}

.ops-filterbar__search input:focus {
    border-color: #471FCC;
    border-color: var(--color-primary-blue, #471FCC);
    box-shadow: 0 0 0 2px color-mix(in srgb, #471FCC 18%, transparent);
    box-shadow: 0 0 0 2px color-mix(in srgb, var(--color-primary-blue, #471FCC) 18%, transparent);
}

.ops-filterbar__providers {
    display: flex;
    gap: 4px;
    flex-wrap: wrap;
}

.ops-filterbar__select {
    height: 34px;
    padding: 0 10px;
    border-radius: 8px;
    border: 1px solid #E8E5F1;
    border: 1px solid var(--border-color, #E8E5F1);
    background: #fff;
    color: #2E1956;
    color: var(--text-default, #2E1956);
    font-size: 12px;
    cursor: pointer;
    outline: none;
}

.ops-topbar__select {
    height: 32px;
    padding: 0 8px;
    border-radius: 8px;
    border: 1px solid rgba(255, 255, 255, 0.2);
    background: rgba(255, 255, 255, 0.95);
    color: #2E1956;
    color: var(--text-default, #2E1956);
    font-size: 12px;
    cursor: pointer;
    outline: none;
}

.ops-topbar__period {
    display: flex;
    align-items: center;
    gap: 4px;
    height: 32px;
    padding: 0 8px;
    border-radius: 8px;
    background: rgba(255, 255, 255, 0.95);
}

.ops-topbar__period input {
    border: none;
    background: transparent;
    color: #2E1956;
    color: var(--text-default, #2E1956);
    font-size: 12px;
    outline: none;
}

.ops-topbar__period-sep {
    color: #8B90A3;
    color: var(--text-light, #8B90A3);
    font-size: 12px;
}

/* Actions */
.ops-topbar__actions {
    display: flex;
    align-items: center;
    gap: 8px;
    margin-left: auto;
}

.ops-action {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    height: 34px;
    padding: 0 12px;
    border-radius: 8px;
    border: 1px solid rgba(255, 255, 255, 0.25);
    background: rgba(255, 255, 255, 0.06);
    color: #fff;
    font-size: 12.5px;
    font-weight: 500;
    cursor: pointer;
    transition: all 0.15s ease;
    white-space: nowrap;
}

.ops-action:hover {
    background: rgba(255, 255, 255, 0.15);
}

.ops-action--primary {
    background: #471FCC;
    background: var(--color-primary-blue, #471FCC);
    border-color: #471FCC;
    border-color: var(--color-primary-blue, #471FCC);
}

.ops-action--primary:hover {
    background: #8C40E3;
    background: var(--color-primary-purple, #8C40E3);
}

.ops-action--danger:hover {
    background: #DC291E;
    background: var(--status-red, #DC291E);
    border-color: #DC291E;
    border-color: var(--status-red, #DC291E);
}

.ops-topbar__exit {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 34px;
    height: 34px;
    border-radius: 8px;
    color: rgba(255, 255, 255, 0.7);
    text-decoration: none;
    transition: all 0.15s ease;
}

.ops-topbar__exit:hover {
    background: rgba(255, 255, 255, 0.12);
    color: #fff;
}

/* ── Nav tabs (sub-navegação dentro do Layout — tema claro) ─────────────── */
.ops-navtabs {
    display: flex;
    align-items: stretch;
    gap: 2px;
    padding: 0 2px;
    border-bottom: 1px solid #E8E5F1;
    border-bottom: 1px solid var(--border-color, #E8E5F1);
    overflow-x: auto;
    scrollbar-width: thin;
}

.ops-navtab {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    padding: 11px 13px;
    border: none;
    background: transparent;
    color: #8684A8;
    color: var(--text-light, #8684A8);
    font-size: 13px;
    font-weight: 500;
    text-decoration: none;
    white-space: nowrap;
    border-bottom: 2px solid transparent;
    transition: all 0.15s ease;
    margin-bottom: -1px;
}

.ops-navtab:hover {
    color: #2E1956;
    color: var(--text-default, #2E1956);
    background: #F7F6FB;
    background: var(--background-neutral, #F7F6FB);
}

.ops-navtab.is-active {
    color: #471FCC;
    color: var(--color-primary-blue, #471FCC);
    border-bottom-color: #471FCC;
    border-bottom-color: var(--color-primary-blue, #471FCC);
    font-weight: 600;
}

.ops-navtab.is-upcoming {
    color: #B6B3CC;
    color: var(--text-light, #B6B3CC);
}

.ops-navtab__phase {
    font-size: 9px;
    font-weight: 700;
    letter-spacing: 0.04em;
    padding: 1px 5px;
    border-radius: 8px;
    background: #F1EFF8;
    background: var(--background-neutral, #F1EFF8);
    color: #471FCC;
    color: var(--color-primary-blue, #471FCC);
}

/* ── Section placeholder (honest empty/upcoming state) ──────────────────── */
.ops-section-placeholder {
    max-width: 640px;
    margin: 8vh auto 0;
    text-align: center;
    color: #6B6F7D;
    color: var(--text-dark, #6B6F7D);
}

.ops-section-placeholder__icon {
    color: #9FA3FF;
    color: var(--color-secondary-purple-bright, #9FA3FF);
    margin-bottom: 12px;
}

.ops-section-placeholder h2 {
    font-size: 20px;
    color: #2E1956;
    color: var(--text-default, #2E1956);
    margin: 0 0 6px;
}

.ops-section-placeholder__phase {
    display: inline-block;
    margin-bottom: 14px;
    padding: 2px 10px;
    border-radius: 12px;
    background: #E2E6F3;
    background: var(--background-light, #E2E6F3);
    color: #471FCC;
    color: var(--color-primary-blue, #471FCC);
    font-size: 11px;
    font-weight: 700;
    letter-spacing: 0.04em;
}

.ops-section-placeholder p {
    font-size: 14px;
    line-height: 1.5;
}

@media (max-width: 1100px) {
    .ops-topbar__client { display: none; }
    .ops-action span { display: none; }
}

/* Copiloto de Operações — dock lateral. Prefixo: ops-copilot */

.ops-copilot__scrim {
    position: fixed;
    inset: 0;
    background: rgba(46, 25, 86, 0.25);
    z-index: 900;
    animation: ops-copilot-fade 0.15s ease;
}

@keyframes ops-copilot-fade {
    from { opacity: 0; }
    to { opacity: 1; }
}

.ops-copilot-dock {
    position: fixed;
    top: 0;
    right: 0;
    height: 100vh;
    width: 420px;
    max-width: 92vw;
    background: #fff;
    background: var(--background-white, #fff);
    box-shadow: -8px 0 30px rgba(46, 25, 86, 0.2);
    transform: translateX(100%);
    transition: transform 0.22s ease;
    z-index: 901;
    display: flex;
    flex-direction: column;
}

.ops-copilot-dock.is-open {
    transform: translateX(0);
}

.ops-copilot-dock__head {
    flex: 0 0 auto;
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 14px 16px;
    background: linear-gradient(120deg, #2E1956, #471FCC);
    background: linear-gradient(120deg, var(--color-primary-purple-dark, #2E1956), var(--color-primary-blue, #471FCC));
    color: #fff;
}

.ops-copilot-dock__title {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    font-size: 15px;
    font-weight: 700;
}

.ops-copilot-dock__close {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 30px;
    height: 30px;
    border: none;
    border-radius: 7px;
    background: rgba(255, 255, 255, 0.12);
    color: #fff;
    cursor: pointer;
    transition: background 0.15s ease;
}

.ops-copilot-dock__close:hover {
    background: rgba(255, 255, 255, 0.25);
}

.ops-copilot-dock__body {
    flex: 1 1 auto;
    min-height: 0;
    overflow: auto;
    padding: 12px;
}

/* Botão flutuante para abrir o copiloto */
.ops-copilot-fab {
    position: fixed;
    right: 22px;
    bottom: 22px;
    display: inline-flex;
    align-items: center;
    gap: 8px;
    height: 48px;
    padding: 0 18px;
    border: none;
    border-radius: 24px;
    background: linear-gradient(120deg, #471FCC, #8C40E3);
    background: linear-gradient(120deg, var(--color-primary-blue, #471FCC), var(--color-primary-purple, #8C40E3));
    color: #fff;
    font-size: 14px;
    font-weight: 700;
    cursor: pointer;
    box-shadow: 0 8px 24px rgba(71, 31, 204, 0.35);
    z-index: 880;
    transition: transform 0.15s ease, box-shadow 0.15s ease;
}

.ops-copilot-fab:hover {
    transform: translateY(-2px);
    box-shadow: 0 12px 30px rgba(71, 31, 204, 0.45);
}

.ops-copilot-fab.is-hidden {
    display: none;
}

@media (max-width: 640px) {
    .ops-copilot-fab span { display: none; }
    .ops-copilot-fab { padding: 0 14px; }
}

/* Home Cloud Operations Center. Prefixo: ops-home */

.ops-home {
    max-width: 1200px;
    margin: 0 auto;
}

.ops-home__head {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 16px;
    margin-bottom: 18px;
}

.ops-home__head h1 {
    font-size: 22px;
    margin: 0 0 4px;
    color: #2E1956;
    color: var(--text-default, #2E1956);
}

.ops-home__head p {
    font-size: 13px;
    color: #6B6F7D;
    color: var(--text-dark, #6B6F7D);
    margin: 0;
}

.ops-home__refresh {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    height: 34px;
    padding: 0 12px;
    border-radius: 8px;
    border: 1px solid #E2E6F3;
    border: 1px solid var(--line-default, #E2E6F3);
    background: #fff;
    background: var(--background-white, #fff);
    color: #2E1956;
    color: var(--text-default, #2E1956);
    font-size: 12.5px;
    cursor: pointer;
}

.ops-home__refresh:disabled { opacity: 0.6; cursor: default; }

.is-spinning { animation: ops-home-spin 0.9s linear infinite; }
@keyframes ops-home-spin { to { transform: rotate(360deg); } }

/* ── KPI strip ──────────────────────────────────────────────────────────── */
.ops-home__kpis {
    display: grid;
    grid-template-columns: repeat(6, 1fr);
    grid-gap: 12px;
    gap: 12px;
    margin-bottom: 18px;
}

.ops-home__kpi {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 14px;
    border-radius: 12px;
    border: 1px solid #E2E6F3;
    border: 1px solid var(--line-default, #E2E6F3);
    background: #fff;
    background: var(--background-white, #fff);
    text-align: left;
    cursor: default;
}

.ops-home__kpi.is-clickable { cursor: pointer; transition: all 0.15s ease; }
.ops-home__kpi.is-clickable:hover {
    border-color: #9FA3FF;
    border-color: var(--color-secondary-purple-bright, #9FA3FF);
    box-shadow: 0 6px 16px rgba(71, 31, 204, 0.1);
    transform: translateY(-2px);
}

.ops-home__kpi-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 40px;
    height: 40px;
    border-radius: 10px;
    background: #E2E6F3;
    background: var(--background-light, #E2E6F3);
    color: #471FCC;
    color: var(--color-primary-blue, #471FCC);
    flex: 0 0 auto;
}

.ops-home__kpi--danger .ops-home__kpi-icon { background: rgba(220, 41, 30, 0.1); color: #DC291E; color: var(--status-red, #DC291E); }
.ops-home__kpi--warn .ops-home__kpi-icon { background: rgba(214, 158, 46, 0.12); color: #D69E2E; }

.ops-home__kpi-body { display: flex; flex-direction: column; min-width: 0; }
.ops-home__kpi-value { font-size: 20px; font-weight: 700; line-height: 1.1; color: #2E1956; color: var(--text-default, #2E1956); }
.ops-home__kpi-label { font-size: 11px; color: #6B6F7D; color: var(--text-dark, #6B6F7D); white-space: nowrap; }

/* ── Blocks grid ────────────────────────────────────────────────────────── */
.ops-home__grid {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    grid-gap: 14px;
    gap: 14px;
    margin-bottom: 18px;
}

.ops-home__block {
    border: 1px solid #E2E6F3;
    border: 1px solid var(--line-default, #E2E6F3);
    border-radius: 12px;
    background: #fff;
    background: var(--background-white, #fff);
    padding: 16px;
    min-height: 150px;
}

.ops-home__block-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-bottom: 12px;
}

.ops-home__block-head h2 {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    font-size: 14px;
    margin: 0;
    color: #2E1956;
    color: var(--text-default, #2E1956);
}

.ops-home__more {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    border: none;
    background: transparent;
    color: #471FCC;
    color: var(--color-primary-blue, #471FCC);
    font-size: 12px;
    cursor: pointer;
}

.ops-home__more:hover { text-decoration: underline; }

/* Provider list */
.ops-home__provider-list { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 8px; }
.ops-home__provider {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 9px 12px;
    border-radius: 8px;
    background: #FAFBFF;
    background: var(--background-lightest, #FAFBFF);
}
.ops-home__provider-name { display: inline-flex; align-items: center; gap: 8px; font-size: 13px; font-weight: 600; color: #2E1956; color: var(--text-default, #2E1956); }
.ops-home__provider-meta { font-size: 12px; color: #6B6F7D; color: var(--text-dark, #6B6F7D); }
.ops-home__provider-meta strong { color: #2E1956; color: var(--text-default, #2E1956); }
.ops-home__dot { margin: 0 6px; color: #9196A7; color: var(--line-dark, #9196A7); }

/* Stat rows */
.ops-home__stat-row { display: flex; gap: 10px; }
.ops-home__stat {
    flex: 1 1;
    display: flex;
    flex-direction: column;
    padding: 12px;
    border-radius: 10px;
    background: #FAFBFF;
    background: var(--background-lightest, #FAFBFF);
    border-left: 3px solid #9196A7;
    border-left: 3px solid var(--line-dark, #9196A7);
}
.ops-home__stat--danger { border-left-color: #DC291E; border-left-color: var(--status-red, #DC291E); }
.ops-home__stat--warn { border-left-color: #D69E2E; }
.ops-home__stat--ok { border-left-color: #34C38F; border-left-color: var(--color-secondary-green-light, #34C38F); }
.ops-home__stat-value { font-size: 22px; font-weight: 700; color: #2E1956; color: var(--text-default, #2E1956); line-height: 1.1; }
.ops-home__stat-label { font-size: 11px; color: #6B6F7D; color: var(--text-dark, #6B6F7D); }

/* ── Navigation ─────────────────────────────────────────────────────────── */
.ops-home__nav-title { font-size: 13px; color: #6B6F7D; color: var(--text-dark, #6B6F7D); margin: 0 0 10px; text-transform: uppercase; letter-spacing: 0.04em; }
.ops-home__nav-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(180px, 1fr)); grid-gap: 10px; gap: 10px; }
.ops-home__nav-card {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 12px 14px;
    border-radius: 10px;
    border: 1px solid #E2E6F3;
    border: 1px solid var(--line-default, #E2E6F3);
    background: #fff;
    background: var(--background-white, #fff);
    color: #2E1956;
    color: var(--text-default, #2E1956);
    cursor: pointer;
    transition: all 0.15s ease;
}
.ops-home__nav-card:hover { border-color: #9FA3FF; border-color: var(--color-secondary-purple-bright, #9FA3FF); transform: translateY(-1px); }
.ops-home__nav-card.is-live svg:first-child { color: #34C38F; color: var(--color-secondary-green-light, #34C38F); }
.ops-home__nav-card.is-upcoming svg:first-child { color: #9FA3FF; color: var(--color-secondary-purple-bright, #9FA3FF); }
.ops-home__nav-label { flex: 1 1; font-size: 13px; }
.ops-home__nav-phase { font-size: 9px; font-weight: 700; padding: 1px 5px; border-radius: 8px; background: #E2E6F3; background: var(--background-light, #E2E6F3); color: #471FCC; color: var(--color-primary-blue, #471FCC); }
.ops-home__nav-chev { color: #9196A7; color: var(--line-dark, #9196A7); }

@media (max-width: 1000px) {
    .ops-home__kpis { grid-template-columns: repeat(3, 1fr); }
    .ops-home__grid { grid-template-columns: 1fr; }
}
@media (max-width: 560px) {
    .ops-home__kpis { grid-template-columns: repeat(2, 1fr); }
    .ops-home__stat-row { flex-direction: column; }
}

/* Estate List (Operations · Recursos) — inventário canônico multicloud */
.ops-est {
    display: flex;
    flex-direction: column;
    gap: 14px;
    padding: 18px 22px;
    height: 100%;
    overflow: auto;
}

.ops-est__head {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 16px;
}

.ops-est__head h1 {
    display: flex;
    align-items: center;
    gap: 8px;
    margin: 0;
    font-size: 1.15rem;
    font-weight: 700;
    color: #2E1956;
    color: var(--text-default, #2E1956);
}

.ops-est__head p {
    margin: 4px 0 0;
    font-size: 0.82rem;
    color: #8684A8;
    color: var(--text-light, #8684A8);
}

.ops-est__head-actions {
    display: flex;
    gap: 8px;
    flex-shrink: 0;
}

.ops-est__link,
.ops-est__refresh {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 7px 12px;
    border-radius: 8px;
    border: 1px solid #E8E5F1;
    border: 1px solid var(--border-color, #E8E5F1);
    background: #fff;
    color: #2E1956;
    color: var(--text-default, #2E1956);
    font-size: 0.8rem;
    font-weight: 600;
    cursor: pointer;
    transition: background .15s, border-color .15s;
}

.ops-est__link:hover,
.ops-est__refresh:hover:not(:disabled) {
    background: #F7F6FB;
    background: var(--background-neutral, #F7F6FB);
    border-color: #471FCC;
    border-color: var(--color-primary-blue, #471FCC);
}

.ops-est__refresh:disabled {
    opacity: .6;
    cursor: default;
}

.is-spinning {
    animation: ops-est-spin 1s linear infinite;
}

@keyframes ops-est-spin {
    to { transform: rotate(360deg); }
}

/* KPIs */
.ops-est__kpis {
    display: flex;
    gap: 10px;
}

.ops-est__kpi {
    display: flex;
    flex-direction: column;
    gap: 2px;
    min-width: 120px;
    padding: 10px 14px;
    border-radius: 10px;
    border: 1px solid #E8E5F1;
    border: 1px solid var(--border-color, #E8E5F1);
    background: #fff;
}

.ops-est__kpi-value {
    font-size: 1.3rem;
    font-weight: 700;
    color: #2E1956;
    color: var(--text-default, #2E1956);
}

.ops-est__kpi-label {
    display: flex;
    align-items: center;
    gap: 5px;
    font-size: 0.72rem;
    color: #8684A8;
    color: var(--text-light, #8684A8);
}

/* Provider tabs */
.ops-est__providers {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
}

.ops-est__prov {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    padding: 8px 13px;
    border-radius: 999px;
    border: 1px solid #E8E5F1;
    border: 1px solid var(--border-color, #E8E5F1);
    background: #fff;
    color: #2E1956;
    color: var(--text-default, #2E1956);
    font-size: 0.8rem;
    font-weight: 600;
    cursor: pointer;
    transition: background .15s, border-color .15s;
}

.ops-est__prov:hover {
    background: #F7F6FB;
    background: var(--background-neutral, #F7F6FB);
}

.ops-est__prov.is-active {
    border-color: #471FCC;
    border-color: var(--color-primary-blue, #471FCC);
    background: color-mix(in srgb, #471FCC 8%, #fff);
    background: color-mix(in srgb, var(--color-primary-blue, #471FCC) 8%, #fff);
}

.ops-est__prov-count {
    padding: 1px 7px;
    border-radius: 999px;
    background: #F1EFF8;
    background: var(--background-neutral, #F1EFF8);
    font-size: 0.72rem;
    color: #6B6890;
    color: var(--text-light, #6B6890);
}

/* Toolbar: accounts + search */
.ops-est__toolbar {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    flex-wrap: wrap;
}

.ops-est__accounts {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
}

.ops-est__acc {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    max-width: 260px;
    padding: 5px 10px;
    border-radius: 7px;
    border: 1px solid #E8E5F1;
    border: 1px solid var(--border-color, #E8E5F1);
    background: #fff;
    color: #6B6890;
    color: var(--text-light, #6B6890);
    font-size: 0.74rem;
    font-weight: 600;
    cursor: pointer;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.ops-est__acc.is-active {
    border-color: #471FCC;
    border-color: var(--color-primary-blue, #471FCC);
    color: #2E1956;
    color: var(--text-default, #2E1956);
    background: color-mix(in srgb, #471FCC 6%, #fff);
    background: color-mix(in srgb, var(--color-primary-blue, #471FCC) 6%, #fff);
}

.ops-est__search {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 6px 11px;
    border-radius: 8px;
    border: 1px solid #E8E5F1;
    border: 1px solid var(--border-color, #E8E5F1);
    background: #fff;
    color: #8684A8;
    color: var(--text-light, #8684A8);
    min-width: 280px;
}

.ops-est__search input {
    border: 0;
    outline: 0;
    background: transparent;
    font-size: 0.8rem;
    color: #2E1956;
    color: var(--text-default, #2E1956);
    width: 100%;
}

/* Sample note */
.ops-est__sample-note {
    padding: 8px 12px;
    border-radius: 8px;
    background: color-mix(in srgb, #471FCC 5%, #fff);
    background: color-mix(in srgb, var(--color-primary-blue, #471FCC) 5%, #fff);
    border: 1px solid #E8E5F1;
    border: 1px solid var(--border-color, #E8E5F1);
    font-size: 0.76rem;
    color: #6B6890;
    color: var(--text-light, #6B6890);
}

.ops-est__inline-link {
    border: 0;
    background: transparent;
    padding: 0;
    color: #471FCC;
    color: var(--color-primary-blue, #471FCC);
    font-weight: 600;
    cursor: pointer;
    text-decoration: underline;
}

/* Table */
.ops-est__table {
    display: flex;
    flex-direction: column;
    border: 1px solid #E8E5F1;
    border: 1px solid var(--border-color, #E8E5F1);
    border-radius: 10px;
    overflow: hidden;
}

.ops-est__tr {
    display: grid;
    grid-template-columns: minmax(220px, 2.4fr) minmax(140px, 1.4fr) minmax(110px, 1fr) 130px 32px;
    align-items: center;
    grid-gap: 12px;
    gap: 12px;
    padding: 9px 14px;
    text-align: left;
}

.ops-est__tr--head {
    background: #F7F6FB;
    background: var(--background-neutral, #F7F6FB);
    font-size: 0.7rem;
    text-transform: uppercase;
    letter-spacing: .03em;
    color: #8684A8;
    color: var(--text-light, #8684A8);
    font-weight: 700;
}

.ops-est__tr--row {
    border: 0;
    border-top: 1px solid #EFEDF6;
    border-top: 1px solid var(--border-color, #EFEDF6);
    background: #fff;
    cursor: pointer;
    font-size: 0.82rem;
    color: #2E1956;
    color: var(--text-default, #2E1956);
    transition: background .12s;
    width: 100%;
}

.ops-est__tr--row:hover {
    background: #F7F6FB;
    background: var(--background-neutral, #F7F6FB);
}

.ops-est__cell-name {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    min-width: 0;
}

.ops-est__name {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    font-weight: 600;
}

.ops-est__cell-type,
.ops-est__cell-region {
    color: #6B6890;
    color: var(--text-light, #6B6890);
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.ops-est__cell-region {
    display: inline-flex;
    align-items: center;
    gap: 4px;
}

.ops-est__status {
    display: inline-block;
    padding: 2px 9px;
    border-radius: 999px;
    font-size: 0.72rem;
    font-weight: 600;
    text-transform: capitalize;
}

.ops-est__status--ok {
    background: color-mix(in srgb, #34C38F 16%, #fff);
    background: color-mix(in srgb, var(--color-secondary-green-light, #34C38F) 16%, #fff);
    color: #1B8A63;
}

.ops-est__status--danger {
    background: color-mix(in srgb, #DC291E 12%, #fff);
    background: color-mix(in srgb, var(--status-red, #DC291E) 12%, #fff);
    color: #DC291E;
    color: var(--status-red, #DC291E);
}

.ops-est__status--muted {
    background: #F1EFF8;
    background: var(--background-neutral, #F1EFF8);
    color: #6B6890;
    color: var(--text-light, #6B6890);
}

.ops-est__cell-go {
    display: inline-flex;
    justify-content: flex-end;
    color: #B6B3CC;
    color: var(--text-light, #B6B3CC);
}

/* Resource Detail 360 (Operations). Prefixo: ops-rd */

.ops-rd {
    max-width: 1100px;
    margin: 0 auto;
}

.ops-rd-breadcrumb {
    display: flex;
    align-items: center;
    gap: 6px;
    font-size: 12.5px;
    color: #6B6F7D;
    color: var(--text-dark, #6B6F7D);
    margin-bottom: 14px;
}

.ops-rd-crumb-link { cursor: pointer; color: #471FCC; color: var(--color-primary-blue, #471FCC); }
.ops-rd-crumb-link:hover { text-decoration: underline; }
.ops-rd-breadcrumb strong { color: #2E1956; color: var(--text-default, #2E1956); }

/* Header */
.ops-rd-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    padding: 16px;
    border-radius: 12px;
    background: #fff;
    background: var(--background-white, #fff);
    border: 1px solid #E2E6F3;
    border: 1px solid var(--line-default, #E2E6F3);
    margin-bottom: 14px;
}

.ops-rd-id { display: flex; align-items: center; gap: 12px; min-width: 0; }
.ops-rd-id-icon {
    display: inline-flex; align-items: center; justify-content: center;
    width: 48px; height: 48px; border-radius: 11px;
    background: #FAFBFF;
    background: var(--background-lightest, #FAFBFF);
    border: 1px solid #E2E6F3;
    border: 1px solid var(--line-default, #E2E6F3);
    flex: 0 0 auto;
}
.ops-rd-name { font-size: 17px; font-weight: 700; color: #2E1956; color: var(--text-default, #2E1956); }
.ops-rd-type {
    display: inline-flex; align-items: center; gap: 5px;
    font-size: 12.5px; color: #6B6F7D; color: var(--text-dark, #6B6F7D);
}

.ops-rd-header-actions { display: flex; align-items: center; gap: 10px; flex: 0 0 auto; }
.ops-rd-status {
    font-size: 11.5px; font-weight: 600; padding: 4px 10px; border-radius: 12px;
    background: #E2E6F3;
    background: var(--background-light, #E2E6F3); color: #6B6F7D; color: var(--text-dark, #6B6F7D);
    text-transform: capitalize;
}
.ops-rd-status--running, .ops-rd-status--active, .ops-rd-status--available, .ops-rd-status--healthy {
    background: rgba(52, 195, 143, 0.15); color: #255A4B; color: var(--color-secondary-green-dark, #255A4B);
}
.ops-rd-status--stopped, .ops-rd-status--deallocated, .ops-rd-status--down {
    background: rgba(220, 41, 30, 0.12); color: #DC291E; color: var(--status-red, #DC291E);
}

.ops-rd-refresh {
    display: inline-flex; align-items: center; gap: 6px;
    height: 32px; padding: 0 11px; border-radius: 8px;
    border: 1px solid #E2E6F3;
    border: 1px solid var(--line-default, #E2E6F3);
    background: #fff;
    background: var(--background-white, #fff);
    color: #2E1956;
    color: var(--text-default, #2E1956); font-size: 12px; cursor: pointer;
}
.ops-rd-refresh:hover { border-color: #9FA3FF; border-color: var(--color-secondary-purple-bright, #9FA3FF); }

/* Tabs */
.ops-rd-tabs { display: flex; gap: 4px; border-bottom: 1px solid #E2E6F3; border-bottom: 1px solid var(--line-default, #E2E6F3); margin-bottom: 16px; overflow-x: auto; }
.ops-rd-tab {
    display: inline-flex; align-items: center; gap: 6px;
    padding: 9px 14px; border: none; background: transparent;
    color: #6B6F7D;
    color: var(--text-dark, #6B6F7D); font-size: 13px; cursor: pointer;
    border-bottom: 2px solid transparent; white-space: nowrap;
}
.ops-rd-tab:hover { color: #2E1956; color: var(--text-default, #2E1956); }
.ops-rd-tab.is-active { color: #471FCC; color: var(--color-primary-blue, #471FCC); border-bottom-color: #471FCC; border-bottom-color: var(--color-primary-blue, #471FCC); font-weight: 600; }

/* Cards */
.ops-rd-grid2 { display: grid; grid-template-columns: 1fr 1fr; grid-gap: 14px; gap: 14px; }
.ops-rd-card {
    border: 1px solid #E2E6F3;
    border: 1px solid var(--line-default, #E2E6F3); border-radius: 12px;
    background: #fff;
    background: var(--background-white, #fff); padding: 16px;
}
.ops-rd-card h3 {
    display: inline-flex; align-items: center; gap: 7px;
    font-size: 14px; margin: 0 0 12px; color: #2E1956; color: var(--text-default, #2E1956);
}

.ops-rd-field { display: flex; justify-content: space-between; gap: 12px; padding: 6px 0; border-bottom: 1px dashed #EBEBEB; border-bottom: 1px dashed var(--line-light, #EBEBEB); }
.ops-rd-field:last-child { border-bottom: none; }
.ops-rd-field-label { font-size: 12.5px; color: #6B6F7D; color: var(--text-dark, #6B6F7D); }
.ops-rd-field-value { font-size: 12.5px; color: #2E1956; color: var(--text-default, #2E1956); text-align: right; word-break: break-word; }
.ops-rd-field-value.mono, .mono { font-family: 'SF Mono', Menlo, Consolas, monospace; font-size: 11.5px; }

.ops-rd-tags { display: flex; flex-wrap: wrap; gap: 6px; }
.ops-rd-tag {
    display: inline-flex; align-items: center; gap: 5px;
    font-size: 11.5px; padding: 3px 9px; border-radius: 10px;
    background: #FAFBFF;
    background: var(--background-lightest, #FAFBFF); border: 1px solid #E2E6F3; border: 1px solid var(--line-default, #E2E6F3);
    color: #6B6F7D;
    color: var(--text-dark, #6B6F7D);
}
.ops-rd-tag strong { color: #471FCC; color: var(--color-primary-blue, #471FCC); }
.ops-rd-tag-k { font-weight: 600; color: #2E1956; color: var(--text-default, #2E1956); }
.ops-rd-tag-v { color: #6B6F7D; color: var(--text-dark, #6B6F7D); }

/* Conformidade (F2.C/F2.E) */
.ops-rd-fields { display: flex; flex-direction: column; margin-bottom: 6px; }
.ops-rd-age { color: #8B90A3; color: var(--text-light, #8B90A3); font-size: 11px; }
.ops-rd-tagstatus {
    display: flex; align-items: center; gap: 7px;
    font-size: 12.5px; font-weight: 600; padding: 9px 12px; border-radius: 8px; margin-bottom: 10px;
}
.ops-rd-tagstatus--ok { background: color-mix(in srgb, #34C38F 14%, #fff); background: color-mix(in srgb, var(--color-secondary-green-light, #34C38F) 14%, #fff); color: #1B8A63; }
.ops-rd-tagstatus--attention { background: color-mix(in srgb, #DC291E 10%, #fff); background: color-mix(in srgb, var(--status-red, #DC291E) 10%, #fff); color: #DC291E; color: var(--status-red, #DC291E); }

/* Health */
.ops-rd-metrics { display: grid; grid-template-columns: repeat(4, 1fr); grid-gap: 10px; gap: 10px; margin-bottom: 16px; }
.ops-rd-metric {
    display: flex; flex-direction: column; padding: 12px;
    border-radius: 10px; background: #fff; background: var(--background-white, #fff);
    border: 1px solid #E2E6F3;
    border: 1px solid var(--line-default, #E2E6F3); border-top: 3px solid #9FA3FF; border-top: 3px solid var(--color-secondary-purple-bright, #9FA3FF);
}
.ops-rd-metric--warn { border-top-color: #D69E2E; }
.ops-rd-metric--danger { border-top-color: #DC291E; border-top-color: var(--status-red, #DC291E); }
.ops-rd-metric-value { font-size: 22px; font-weight: 700; color: #2E1956; color: var(--text-default, #2E1956); line-height: 1.1; }
.ops-rd-metric-label { font-size: 11px; color: #6B6F7D; color: var(--text-dark, #6B6F7D); }
.ops-rd-metric-sub { font-size: 10.5px; color: #8B90A3; color: var(--text-light, #8B90A3); margin-top: 2px; }

.ops-rd-heatmaps { display: grid; grid-template-columns: 1fr 1fr; grid-gap: 16px; gap: 16px; }

/* Heatmap */
.ops-rd-heatmap { border: 1px solid #E2E6F3; border: 1px solid var(--line-default, #E2E6F3); border-radius: 12px; padding: 14px; background: #fff; background: var(--background-white, #fff); }
.ops-rd-heatmap__title { font-size: 12.5px; font-weight: 600; color: #2E1956; color: var(--text-default, #2E1956); margin-bottom: 10px; }
.ops-rd-heatmap__empty { font-size: 12px; color: #8B90A3; color: var(--text-light, #8B90A3); padding: 16px 0; text-align: center; }
.ops-rd-heatmap__grid { display: grid; grid-template-columns: 28px repeat(24, 1fr); grid-gap: 2px; gap: 2px; }
.ops-rd-heatmap__corner { }
.ops-rd-heatmap__hour { font-size: 8px; color: #8B90A3; color: var(--text-light, #8B90A3); text-align: center; }
.ops-rd-heatmap__day { font-size: 9px; color: #6B6F7D; color: var(--text-dark, #6B6F7D); display: flex; align-items: center; }
.ops-rd-heatmap__cell { aspect-ratio: 1; border-radius: 2px; min-height: 10px; }

/* Relations */
.ops-rd-related { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 6px; }
.ops-rd-related-title { margin: 18px 0 10px; font-size: 14px; font-weight: 700; color: #2E1956; color: var(--text-default, #2E1956); }
.ops-rd-related-item {
    display: flex; align-items: center; gap: 10px; padding: 9px 12px;
    border-radius: 8px; background: #FAFBFF; background: var(--background-lightest, #FAFBFF);
    cursor: pointer; transition: background 0.15s ease;
}
.ops-rd-related-item:hover { background: #E2E6F3; background: var(--background-light, #E2E6F3); }
.ops-rd-related-dir { font-weight: 700; }
.ops-rd-related-dir--in { color: #00DBFF; color: var(--color-secondary-cyan, #00DBFF); }
.ops-rd-related-dir--out { color: #8C40E3; color: var(--color-primary-purple, #8C40E3); }
.ops-rd-related-type { font-size: 12px; font-weight: 600; color: #2E1956; color: var(--text-default, #2E1956); min-width: 120px; }
.ops-rd-related-id { flex: 1 1; font-size: 11px; color: #6B6F7D; color: var(--text-dark, #6B6F7D); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.ops-rd-related-rel { font-size: 11px; color: #8B90A3; color: var(--text-light, #8B90A3); padding: 2px 8px; background: #fff; background: var(--background-white, #fff); border-radius: 8px; }

/* Hints / link */
.ops-rd-hint { font-size: 13px; line-height: 1.5; color: #6B6F7D; color: var(--text-dark, #6B6F7D); margin: 0 0 12px; }
.ops-rd-hint--tight { margin: 0 0 8px; }
.ops-rd-link-btn {
    display: inline-flex; align-items: center; gap: 6px;
    height: 34px; padding: 0 14px; border-radius: 8px;
    border: 1px solid #471FCC;
    border: 1px solid var(--color-primary-blue, #471FCC);
    background: transparent; color: #471FCC; color: var(--color-primary-blue, #471FCC);
    font-size: 13px; font-weight: 600; cursor: pointer; transition: all 0.15s ease;
}
.ops-rd-link-btn:hover { background: #471FCC; background: var(--color-primary-blue, #471FCC); color: #fff; }

@media (max-width: 900px) {
    .ops-rd-grid2, .ops-rd-heatmaps { grid-template-columns: 1fr; }
    .ops-rd-metrics { grid-template-columns: repeat(2, 1fr); }
}

/* Dependency Map / Análise de Impacto (F4.4.1) */
.ops-imp { display: flex; flex-direction: column; gap: 12px; }

.ops-imp__toolbar { display: flex; align-items: center; justify-content: space-between; gap: 12px; flex-wrap: wrap; }
.ops-imp__kpis { display: flex; flex-wrap: wrap; gap: 8px; }
.ops-imp__kpi {
    font-size: 0.78rem; color: #6B6890; color: var(--text-light, #6B6890);
    padding: 4px 11px; border-radius: 999px; background: #F1EFF8; background: var(--background-neutral, #F1EFF8);
}
.ops-imp__kpi strong { color: #2E1956; color: var(--text-default, #2E1956); font-weight: 700; }

.ops-imp__depth { display: inline-flex; align-items: center; gap: 5px; }
.ops-imp__depth-h { font-size: 0.7rem; text-transform: uppercase; letter-spacing: .03em; color: #8684A8; color: var(--text-light, #8684A8); font-weight: 700; margin-right: 2px; }
.ops-imp__depth-btn {
    width: 28px; height: 28px; border-radius: 7px; border: 1px solid #E8E5F1; border: 1px solid var(--border-color, #E8E5F1);
    background: #fff; color: #6B6890; color: var(--text-light, #6B6890); font-size: 0.8rem; font-weight: 700; cursor: pointer;
}
.ops-imp__depth-btn:hover { background: #F7F6FB; background: var(--background-neutral, #F7F6FB); }
.ops-imp__depth-btn.is-active { border-color: #471FCC; border-color: var(--color-primary-blue, #471FCC); color: #471FCC; color: var(--color-primary-blue, #471FCC); background: color-mix(in srgb, #471FCC 8%, #fff); background: color-mix(in srgb, var(--color-primary-blue, #471FCC) 8%, #fff); }

/* Two directional columns */
.ops-imp__cols { display: grid; grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)); grid-gap: 14px; gap: 14px; }
.ops-imp__col { display: flex; flex-direction: column; gap: 8px; }
.ops-imp__col-head {
    display: flex; align-items: center; gap: 7px;
    font-size: 0.82rem; font-weight: 700; color: #2E1956; color: var(--text-default, #2E1956);
    padding-bottom: 6px; border-bottom: 2px solid #E8E5F1; border-bottom: 2px solid var(--border-color, #E8E5F1);
}
.ops-imp__col-head--depends { border-bottom-color: color-mix(in srgb, #471FCC 50%, #fff); border-bottom-color: color-mix(in srgb, var(--color-primary-blue, #471FCC) 50%, #fff); }
.ops-imp__col-head--impacts { border-bottom-color: color-mix(in srgb, #DC291E 45%, #fff); border-bottom-color: color-mix(in srgb, var(--status-red, #DC291E) 45%, #fff); }
.ops-imp__col-count { margin-left: auto; font-size: 0.72rem; font-weight: 700; color: #8684A8; color: var(--text-light, #8684A8); background: #F1EFF8; background: var(--background-neutral, #F1EFF8); border-radius: 999px; padding: 1px 9px; }

.ops-imp__list { display: flex; flex-direction: column; border: 1px solid #E8E5F1; border: 1px solid var(--border-color, #E8E5F1); border-radius: 10px; overflow: hidden; }
.ops-imp__row {
    display: flex; align-items: center; gap: 10px; padding: 8px 12px; text-align: left;
    border: 0; border-top: 1px solid #EFEDF6; border-top: 1px solid var(--border-color, #EFEDF6); background: #fff;
    cursor: pointer; transition: background .12s; width: 100%;
}
.ops-imp__row:first-child { border-top: 0; }
.ops-imp__row:hover { background: #F7F6FB; background: var(--background-neutral, #F7F6FB); }
.ops-imp__hop {
    flex-shrink: 0; width: 22px; height: 22px; border-radius: 6px;
    display: inline-flex; align-items: center; justify-content: center;
    font-size: 0.72rem; font-weight: 700; color: #fff;
}
.ops-imp__hop--1 { background: #34C38F; }
.ops-imp__hop--2 { background: #471FCC; }
.ops-imp__hop--3 { background: #B7791F; }
.ops-imp__hop--4 { background: #8684A8; }
.ops-imp__row-main { display: flex; flex-direction: column; min-width: 0; flex: 1 1; }
.ops-imp__row-name { font-size: 0.82rem; font-weight: 600; color: #2E1956; color: var(--text-default, #2E1956); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.ops-imp__row-sub { font-size: 0.72rem; color: #8684A8; color: var(--text-light, #8684A8); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.ops-imp__row-go { color: #B6B3CC; color: var(--text-light, #B6B3CC); flex-shrink: 0; }

.ops-imp__note {
    display: flex; align-items: flex-start; gap: 7px; margin: 0;
    font-size: 0.75rem; color: #8684A8; color: var(--text-light, #8684A8);
}
.ops-imp__note svg { flex-shrink: 0; margin-top: 1px; }

/* Diagnóstico de causa provável (auto-RCA, F4.2.2) */
.ops-dx { display: flex; flex-direction: column; gap: 14px; }

.ops-dx__statusbar { display: flex; align-items: center; gap: 12px; flex-wrap: wrap; }
.ops-dx__status {
    display: inline-flex; align-items: center; gap: 6px;
    padding: 5px 12px; border-radius: 999px; font-size: 0.8rem; font-weight: 600;
}
.ops-dx__status--ok { background: color-mix(in srgb, #34C38F 16%, #fff); background: color-mix(in srgb, var(--color-secondary-green-light, #34C38F) 16%, #fff); color: #1B8A63; }
.ops-dx__status--bad { background: color-mix(in srgb, #DC291E 12%, #fff); background: color-mix(in srgb, var(--status-red, #DC291E) 12%, #fff); color: #DC291E; color: var(--status-red, #DC291E); }
.ops-dx__meta { font-size: 0.76rem; color: #8684A8; color: var(--text-light, #8684A8); }
.ops-dx__loading { display: inline-flex; align-items: center; gap: 5px; font-size: 0.74rem; color: #8684A8; color: var(--text-light, #8684A8); margin-left: auto; }
.is-pulsing { animation: ops-dx-pulse 1.1s ease-in-out infinite; }
@keyframes ops-dx-pulse { 0%,100% { opacity: .4; } 50% { opacity: 1; } }

.ops-dx__empty { padding: 8px 0; }

.ops-dx__block { display: flex; flex-direction: column; gap: 8px; }
.ops-dx__h { display: flex; align-items: center; gap: 7px; margin: 0; font-size: 0.9rem; font-weight: 700; color: #2E1956; color: var(--text-default, #2E1956); }

/* Hipóteses */
.ops-dx__hyps { display: flex; flex-direction: column; gap: 10px; }
.ops-dx__hyp {
    border: 1px solid #E8E5F1;
    border: 1px solid var(--border-color, #E8E5F1); border-left-width: 4px; border-radius: 10px;
    padding: 12px 14px; background: #fff;
}
.ops-dx__hyp--high { border-left-color: #DC291E; border-left-color: var(--status-red, #DC291E); }
.ops-dx__hyp--medium { border-left-color: #E2A100; }
.ops-dx__hyp--low { border-left-color: #8684A8; border-left-color: var(--text-light, #8684A8); }
.ops-dx__hyp-head { display: flex; align-items: center; gap: 9px; }
.ops-dx__hyp-rank {
    flex-shrink: 0; width: 22px; height: 22px; border-radius: 50%;
    display: inline-flex; align-items: center; justify-content: center;
    background: #2E1956;
    background: var(--text-default, #2E1956); color: #fff; font-size: 0.74rem; font-weight: 700;
}
.ops-dx__hyp-title { display: inline-flex; align-items: center; gap: 7px; flex: 1 1; font-size: 0.86rem; font-weight: 700; color: #2E1956; color: var(--text-default, #2E1956); }
.ops-dx__conf { font-size: 0.68rem; font-weight: 700; text-transform: uppercase; letter-spacing: .03em; padding: 2px 9px; border-radius: 999px; flex-shrink: 0; }
.ops-dx__conf--high { background: color-mix(in srgb, #DC291E 12%, #fff); background: color-mix(in srgb, var(--status-red, #DC291E) 12%, #fff); color: #DC291E; color: var(--status-red, #DC291E); }
.ops-dx__conf--medium { background: color-mix(in srgb, #E2A100 16%, #fff); color: #9A6E00; }
.ops-dx__conf--low { background: #F1EFF8; background: var(--background-neutral, #F1EFF8); color: #6B6890; color: var(--text-light, #6B6890); }
.ops-dx__hyp-rationale { margin: 8px 0 0; font-size: 0.8rem; color: #6B6890; color: var(--text-light, #6B6890); line-height: 1.45; }
.ops-dx__evidence { margin: 8px 0 0; padding-left: 18px; display: flex; flex-direction: column; gap: 3px; }
.ops-dx__evidence li { font-size: 0.76rem; color: #2E1956; color: var(--text-default, #2E1956); }

/* Timeline */
.ops-dx__timeline { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; border: 1px solid #E8E5F1; border: 1px solid var(--border-color, #E8E5F1); border-radius: 10px; overflow: hidden; }
.ops-dx__sig { display: flex; align-items: center; gap: 11px; padding: 9px 13px; border-top: 1px solid #EFEDF6; border-top: 1px solid var(--border-color, #EFEDF6); }
.ops-dx__sig:first-child { border-top: 0; }
.ops-dx__sig-icon {
    flex-shrink: 0; width: 28px; height: 28px; border-radius: 8px;
    display: inline-flex; align-items: center; justify-content: center;
    background: #F1EFF8;
    background: var(--background-neutral, #F1EFF8); color: #6B6890; color: var(--text-light, #6B6890);
}
.ops-dx__sig--high .ops-dx__sig-icon { background: color-mix(in srgb, #DC291E 12%, #fff); background: color-mix(in srgb, var(--status-red, #DC291E) 12%, #fff); color: #DC291E; color: var(--status-red, #DC291E); }
.ops-dx__sig--medium .ops-dx__sig-icon { background: color-mix(in srgb, #E2A100 16%, #fff); color: #9A6E00; }
.ops-dx__sig-main { display: flex; flex-direction: column; min-width: 0; flex: 1 1; }
.ops-dx__sig-title { font-size: 0.82rem; font-weight: 600; color: #2E1956; color: var(--text-default, #2E1956); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.ops-dx__sig-detail { font-size: 0.74rem; color: #8684A8; color: var(--text-light, #8684A8); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.ops-dx__sig-at { font-size: 0.72rem; color: #8684A8; color: var(--text-light, #8684A8); white-space: nowrap; flex-shrink: 0; }

/* Copilot CTA */
.ops-dx__copilot {
    display: flex; align-items: center; gap: 9px;
    padding: 11px 14px; border-radius: 10px;
    background: color-mix(in srgb, #471FCC 6%, #fff);
    background: color-mix(in srgb, var(--color-primary-blue, #471FCC) 6%, #fff);
    border: 1px solid color-mix(in srgb, #471FCC 18%, #fff);
    border: 1px solid color-mix(in srgb, var(--color-primary-blue, #471FCC) 18%, #fff);
    color: #6B6890;
    color: var(--text-light, #6B6890); font-size: 0.8rem;
}
.ops-dx__copilot strong { color: #2E1956; color: var(--text-default, #2E1956); }
.ops-dx__copilot svg { color: #471FCC; color: var(--color-primary-blue, #471FCC); flex-shrink: 0; }
.ops-dx__copilot-btn {
    margin-left: auto; flex-shrink: 0;
    padding: 6px 13px; border-radius: 8px; border: 0;
    background: #471FCC;
    background: var(--color-primary-blue, #471FCC); color: #fff;
    font-size: 0.78rem; font-weight: 600; cursor: pointer;
}
.ops-dx__copilot-btn:hover { background: color-mix(in srgb, #471FCC 88%, #000); background: color-mix(in srgb, var(--color-primary-blue, #471FCC) 88%, #000); }

/* Collectors Health (Operations · Coletores) — frescor & pontos cegos do inventário */
.ops-col {
    display: flex;
    flex-direction: column;
    gap: 14px;
    padding: 18px 22px;
    height: 100%;
    overflow: auto;
}

.ops-col__head {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 16px;
}

.ops-col__head h1 {
    display: flex;
    align-items: center;
    gap: 8px;
    margin: 0;
    font-size: 1.15rem;
    font-weight: 700;
    color: #2E1956;
    color: var(--text-default, #2E1956);
}

.ops-col__head p {
    margin: 4px 0 0;
    font-size: 0.82rem;
    color: #8684A8;
    color: var(--text-light, #8684A8);
    max-width: 760px;
}

.ops-col__refresh {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 7px 12px;
    border-radius: 8px;
    border: 1px solid #E8E5F1;
    border: 1px solid var(--border-color, #E8E5F1);
    background: #fff;
    color: #2E1956;
    color: var(--text-default, #2E1956);
    font-size: 0.8rem;
    font-weight: 600;
    cursor: pointer;
    flex-shrink: 0;
}

.ops-col__refresh:hover:not(:disabled) { border-color: #471FCC; border-color: var(--color-primary-blue, #471FCC); background: #F7F6FB; background: var(--background-neutral, #F7F6FB); }
.ops-col__refresh:disabled { opacity: .6; cursor: default; }
.is-spinning { animation: ops-col-spin 1s linear infinite; }
@keyframes ops-col-spin { to { transform: rotate(360deg); } }

/* KPIs */
.ops-col__kpis {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(160px, 1fr));
    grid-gap: 10px;
    gap: 10px;
}

.ops-col__kpi {
    display: flex;
    flex-direction: column;
    gap: 3px;
    padding: 11px 14px;
    border-radius: 10px;
    border: 1px solid #E8E5F1;
    border: 1px solid var(--border-color, #E8E5F1);
    background: #fff;
}

.ops-col__kpi--ok { border-color: color-mix(in srgb, #34C38F 35%, #fff); border-color: color-mix(in srgb, var(--color-secondary-green-light, #34C38F) 35%, #fff); }
.ops-col__kpi--warn { border-color: color-mix(in srgb, #B7791F 35%, #fff); }
.ops-col__kpi--danger { border-color: color-mix(in srgb, #DC291E 35%, #fff); border-color: color-mix(in srgb, var(--status-red, #DC291E) 35%, #fff); background: color-mix(in srgb, #DC291E 4%, #fff); background: color-mix(in srgb, var(--status-red, #DC291E) 4%, #fff); }

.ops-col__kpi-value { font-size: 1.4rem; font-weight: 700; color: #2E1956; color: var(--text-default, #2E1956); line-height: 1; }
.ops-col__kpi-label { display: flex; align-items: center; gap: 5px; font-size: 0.72rem; color: #8684A8; color: var(--text-light, #8684A8); }

/* Grid */
.ops-col__grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(300px, 1fr));
    grid-gap: 12px;
    gap: 12px;
    align-items: start;
}

.ops-col__card {
    display: flex;
    flex-direction: column;
    gap: 10px;
    padding: 14px;
    border: 1px solid #E8E5F1;
    border: 1px solid var(--border-color, #E8E5F1);
    border-radius: 12px;
    background: #fff;
}

.ops-col__card--warn { border-left: 3px solid #B7791F; }
.ops-col__card--muted { border-left: 3px solid #B6B3CC; border-left: 3px solid var(--text-light, #B6B3CC); }
.ops-col__card--ok { border-left: 3px solid #34C38F; border-left: 3px solid var(--color-secondary-green-light, #34C38F); }

.ops-col__card-head { display: flex; align-items: center; justify-content: space-between; }
.ops-col__card-cloud { display: inline-flex; align-items: center; gap: 8px; font-weight: 700; font-size: 0.95rem; color: #2E1956; color: var(--text-default, #2E1956); }

.ops-col__fresh { display: inline-flex; align-items: center; gap: 4px; font-size: 0.72rem; font-weight: 600; padding: 2px 9px; border-radius: 999px; }
.ops-col__fresh--ok { background: color-mix(in srgb, #34C38F 16%, #fff); background: color-mix(in srgb, var(--color-secondary-green-light, #34C38F) 16%, #fff); color: #1B8A63; }
.ops-col__fresh--warn { background: color-mix(in srgb, #B7791F 14%, #fff); color: #8A5A12; }
.ops-col__fresh--muted { background: #F1EFF8; background: var(--background-neutral, #F1EFF8); color: #6B6890; color: var(--text-light, #6B6890); }

.ops-col__sync { display: flex; align-items: center; gap: 6px; font-size: 0.78rem; color: #6B6890; color: var(--text-light, #6B6890); }
.ops-col__sync-date { color: #2E1956; color: var(--text-default, #2E1956); font-weight: 600; }
.ops-col__sync-age { color: #8684A8; color: var(--text-light, #8684A8); }

.ops-col__metrics { display: grid; grid-template-columns: repeat(3, 1fr); grid-gap: 8px; gap: 8px; }
.ops-col__metric { display: flex; flex-direction: column; gap: 2px; padding: 8px 10px; border-radius: 8px; background: #FAF9FD; background: var(--background-neutral, #FAF9FD); }
.ops-col__metric-value { font-size: 1.1rem; font-weight: 700; color: #2E1956; color: var(--text-default, #2E1956); }
.ops-col__metric-label { display: flex; align-items: center; gap: 4px; font-size: 0.68rem; color: #8684A8; color: var(--text-light, #8684A8); }

.ops-col__alert { display: flex; align-items: flex-start; gap: 7px; padding: 8px 10px; border-radius: 8px; font-size: 0.76rem; line-height: 1.35; }
.ops-col__alert--danger { background: color-mix(in srgb, #DC291E 8%, #fff); background: color-mix(in srgb, var(--status-red, #DC291E) 8%, #fff); color: #8A1C15; }
.ops-col__alert--warn { background: color-mix(in srgb, #B7791F 10%, #fff); color: #8A5A12; }

.ops-col__snap { font-size: 0.7rem; color: #A6A2C2; color: var(--text-light, #A6A2C2); }
.mono { font-family: ui-monospace, SFMono-Regular, Menlo, monospace; }

/* Footer */
.ops-col__foot { display: flex; gap: 14px; flex-wrap: wrap; margin-top: 2px; }
.ops-col__foot-link {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    border: 0;
    background: transparent;
    padding: 0;
    color: #471FCC;
    color: var(--color-primary-blue, #471FCC);
    font-size: 0.8rem;
    font-weight: 600;
    cursor: pointer;
}
.ops-col__foot-link:hover { text-decoration: underline; }

/* Governance section wrapper (F1.6 + F2.C.2) */
.ops-govsec {
    display: flex;
    flex-direction: column;
    height: 100%;
    min-height: 0;
}

.ops-govsec__tabs {
    display: flex;
    align-items: center;
    gap: 4px;
    padding: 10px 22px 0;
    border-bottom: 1px solid #E8E5F1;
    border-bottom: 1px solid var(--border-color, #E8E5F1);
    flex-shrink: 0;
}

.ops-govsec__tab {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    padding: 9px 16px;
    border: 0;
    border-bottom: 2px solid transparent;
    background: transparent;
    color: #8684A8;
    color: var(--text-light, #8684A8);
    font-size: 0.86rem;
    font-weight: 600;
    cursor: pointer;
    margin-bottom: -1px;
}

.ops-govsec__tab:hover { color: #2E1956; color: var(--text-default, #2E1956); }

.ops-govsec__tab.is-active {
    color: #471FCC;
    color: var(--color-primary-blue, #471FCC);
    border-bottom-color: #471FCC;
    border-bottom-color: var(--color-primary-blue, #471FCC);
}

.ops-govsec__body {
    flex: 1 1;
    min-height: 0;
    overflow: auto;
}

/* Central de Governança (Operations). Prefixo: ops-gov */

.ops-gov { max-width: 1150px; margin: 0 auto; }

.ops-gov__head { display: flex; align-items: flex-start; justify-content: space-between; gap: 16px; margin-bottom: 16px; }
.ops-gov__head h1 { font-size: 21px; margin: 0 0 4px; color: #2E1956; color: var(--text-default, #2E1956); }
.ops-gov__head p { font-size: 13px; color: #6B6F7D; color: var(--text-dark, #6B6F7D); margin: 0; }
.ops-gov__refresh {
    display: inline-flex; align-items: center; gap: 6px; height: 34px; padding: 0 12px; border-radius: 8px;
    font-size: 12.5px; cursor: pointer; border: 1px solid #E2E6F3; border: 1px solid var(--line-default, #E2E6F3);
    background: #fff;
    background: var(--background-white, #fff); color: #2E1956; color: var(--text-default, #2E1956);
}
.ops-gov__refresh:disabled { opacity: 0.6; cursor: default; }
.is-spinning { animation: ops-gov-spin 0.9s linear infinite; }
@keyframes ops-gov-spin { to { transform: rotate(360deg); } }

/* Parity */
.ops-gov__parity { display: grid; grid-template-columns: repeat(4, 1fr); grid-gap: 12px; gap: 12px; margin-bottom: 16px; }
.ops-gov__parity-card {
    display: flex; flex-direction: column; gap: 6px; padding: 13px 16px; border-radius: 11px;
    border: 1px solid #E2E6F3;
    border: 1px solid var(--line-default, #E2E6F3); background: #fff; background: var(--background-white, #fff);
    cursor: pointer; text-align: left; transition: all 0.15s ease;
}
.ops-gov__parity-card:hover { border-color: #9FA3FF; border-color: var(--color-secondary-purple-bright, #9FA3FF); }
.ops-gov__parity-card.is-active { border-color: #471FCC; border-color: var(--color-primary-blue, #471FCC); box-shadow: 0 0 0 1px #471FCC; box-shadow: 0 0 0 1px var(--color-primary-blue, #471FCC); }
.ops-gov__parity-card.is-empty { opacity: 0.6; }
.ops-gov__parity-prov { display: inline-flex; align-items: center; gap: 7px; font-size: 14px; font-weight: 700; color: #2E1956; color: var(--text-default, #2E1956); }
.ops-gov__parity-meta { font-size: 12.5px; color: #6B6F7D; color: var(--text-dark, #6B6F7D); display: inline-flex; align-items: center; gap: 8px; }
.ops-gov__parity-meta strong { font-size: 18px; color: #2E1956; color: var(--text-default, #2E1956); }
.ops-gov__parity-high { font-size: 11px; padding: 1px 7px; border-radius: 9px; background: rgba(221,107,32,0.12); color: #DD6B20; }
.ops-gov__parity-none { font-size: 11.5px; color: #8B90A3; color: var(--text-light, #8B90A3); }

/* KPIs */
.ops-gov__kpis { display: flex; gap: 12px; margin-bottom: 16px; flex-wrap: wrap; }
.ops-gov__kpi {
    display: flex; flex-direction: column; min-width: 120px; padding: 12px 16px; border-radius: 10px;
    background: #fff;
    background: var(--background-white, #fff); border: 1px solid #E2E6F3; border: 1px solid var(--line-default, #E2E6F3);
    border-left-width: 3px; border-left-color: #9196A7; border-left-color: var(--line-dark, #9196A7);
    font-size: 11px; color: #6B6F7D; color: var(--text-dark, #6B6F7D); text-transform: uppercase; letter-spacing: 0.04em;
}
.ops-gov__kpi span { font-size: 24px; font-weight: 700; color: #2E1956; color: var(--text-default, #2E1956); text-transform: none; letter-spacing: 0; line-height: 1.1; }
.ops-gov__kpi.is-high { border-left-color: #DD6B20; }
.ops-gov__kpi.is-med { border-left-color: #D69E2E; }

/* Grid */
.ops-gov__grid { display: grid; grid-template-columns: 1.6fr 1fr; grid-gap: 14px; gap: 14px; }
.ops-gov__main, .ops-gov__side { border: 1px solid #E2E6F3; border: 1px solid var(--line-default, #E2E6F3); border-radius: 12px; background: #fff; background: var(--background-white, #fff); padding: 16px; }
.ops-gov__main h2, .ops-gov__side h2 { display: inline-flex; align-items: center; gap: 7px; font-size: 14px; margin: 0 0 12px; color: #2E1956; color: var(--text-default, #2E1956); }
.ops-gov__badge { font-size: 10px; font-weight: 700; padding: 2px 8px; border-radius: 9px; background: rgba(71,31,204,0.1); color: #471FCC; color: var(--color-primary-blue, #471FCC); text-transform: uppercase; letter-spacing: 0.04em; }
.ops-gov__badge--azure { background: rgba(0,120,212,0.12); color: #0078D4; }

/* Findings */
.ops-gov__findings { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 7px; }
.ops-gov__finding { display: flex; align-items: center; gap: 11px; padding: 11px; border-radius: 9px; background: #FAFBFF; background: var(--background-lightest, #FAFBFF); border: 1px solid #E2E6F3; border: 1px solid var(--line-default, #E2E6F3); cursor: pointer; transition: all 0.15s ease; }
.ops-gov__finding:hover { border-color: #9FA3FF; border-color: var(--color-secondary-purple-bright, #9FA3FF); }
.ops-gov__sev { width: 4px; align-self: stretch; border-radius: 4px; flex: 0 0 auto; }
.ops-gov__finding-body { flex: 1 1; min-width: 0; }
.ops-gov__finding-title { display: flex; align-items: center; gap: 7px; font-size: 13px; font-weight: 600; color: #2E1956; color: var(--text-default, #2E1956); }
.ops-gov__finding-title span { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.ops-gov__finding-sub { display: flex; align-items: center; gap: 6px; font-size: 11.5px; color: #6B6F7D; color: var(--text-dark, #6B6F7D); margin-top: 3px; }
.ops-gov__res { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; max-width: 220px; }
.ops-gov__dot { color: #9196A7; color: var(--line-dark, #9196A7); }
.ops-gov__sev-label { font-size: 11.5px; font-weight: 600; white-space: nowrap; }
.ops-gov__chev { color: #9196A7; color: var(--line-dark, #9196A7); flex: 0 0 auto; }

/* Policies */
.ops-gov__policies { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 6px; }
.ops-gov__policy { display: flex; align-items: center; gap: 8px; padding: 9px 11px; border-radius: 8px; background: #FAFBFF; background: var(--background-lightest, #FAFBFF); font-size: 12.5px; color: #2E1956; color: var(--text-default, #2E1956); }
.ops-gov__policy svg { color: #0078D4; flex: 0 0 auto; }
.ops-gov__policy-name { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.ops-gov__note { font-size: 11.5px; color: #8B90A3; color: var(--text-light, #8B90A3); line-height: 1.5; margin: 14px 0 0; }

.ops-gov__hint { display: flex; align-items: center; gap: 6px; margin-top: 18px; font-size: 12.5px; color: #8B90A3; color: var(--text-light, #8B90A3); }
.ops-gov__hint svg { color: #9FA3FF; color: var(--color-secondary-purple-bright, #9FA3FF); }

@media (max-width: 900px) {
    .ops-gov__parity { grid-template-columns: repeat(2, 1fr); }
    .ops-gov__grid { grid-template-columns: 1fr; }
}

/* Governança de Regiões (Operations · Governança · F2.C.2) */
.ops-rgov {
    display: flex;
    flex-direction: column;
    gap: 12px;
    padding: 18px 22px;
    height: 100%;
    overflow: auto;
}

.ops-rgov__head { display: flex; align-items: flex-start; justify-content: space-between; gap: 16px; }
.ops-rgov__head h1 { display: flex; align-items: center; gap: 8px; margin: 0; font-size: 1.15rem; font-weight: 700; color: #2E1956; color: var(--text-default, #2E1956); }
.ops-rgov__head p { margin: 4px 0 0; font-size: 0.82rem; color: #8684A8; color: var(--text-light, #8684A8); }

.ops-rgov__refresh {
    display: inline-flex; align-items: center; gap: 6px;
    padding: 7px 12px; border-radius: 8px; border: 1px solid #E8E5F1; border: 1px solid var(--border-color, #E8E5F1);
    background: #fff; color: #2E1956; color: var(--text-default, #2E1956); font-size: 0.8rem; font-weight: 600; cursor: pointer; flex-shrink: 0;
}
.ops-rgov__refresh:hover:not(:disabled) { border-color: #471FCC; border-color: var(--color-primary-blue, #471FCC); background: #F7F6FB; background: var(--background-neutral, #F7F6FB); }
.ops-rgov__refresh:disabled { opacity: .6; cursor: default; }
.ops-rgov .is-spinning { animation: ops-rgov-spin 1s linear infinite; }
@keyframes ops-rgov-spin { to { transform: rotate(360deg); } }

.ops-rgov__note {
    display: flex; align-items: flex-start; gap: 8px;
    padding: 9px 13px; border-radius: 9px;
    background: #F1EFF8;
    background: var(--background-neutral, #F1EFF8); color: #6B6890; color: var(--text-light, #6B6890); font-size: 0.78rem;
}
.ops-rgov__note strong { color: #2E1956; color: var(--text-default, #2E1956); }

/* Seletor de nuvem */
.ops-rgov__providers { display: flex; flex-wrap: wrap; gap: 8px; }
.ops-rgov__prov {
    display: inline-flex; align-items: center; gap: 7px;
    padding: 7px 13px; border-radius: 9px; border: 1px solid #E8E5F1; border: 1px solid var(--border-color, #E8E5F1);
    background: #fff; color: #2E1956; color: var(--text-default, #2E1956); font-size: 0.8rem; font-weight: 600; cursor: pointer;
}
.ops-rgov__prov:hover { border-color: #471FCC; border-color: var(--color-primary-blue, #471FCC); }
.ops-rgov__prov.is-active { border-color: #471FCC; border-color: var(--color-primary-blue, #471FCC); background: color-mix(in srgb, #471FCC 8%, #fff); background: color-mix(in srgb, var(--color-primary-blue, #471FCC) 8%, #fff); }
.ops-rgov__prov-meta { font-size: 0.72rem; font-weight: 500; color: #8684A8; color: var(--text-light, #8684A8); }

/* Seletor de conta */
.ops-rgov__accounts { display: flex; align-items: center; gap: 8px; }
.ops-rgov__accounts-label { font-size: 0.78rem; color: #8684A8; color: var(--text-light, #8684A8); }
.ops-rgov__account-select {
    padding: 6px 10px; border-radius: 8px; border: 1px solid #E8E5F1; border: 1px solid var(--border-color, #E8E5F1);
    background: #fff; color: #2E1956; color: var(--text-default, #2E1956); font-size: 0.8rem; max-width: 360px;
}

/* KPIs */
.ops-rgov__kpis { display: grid; grid-template-columns: minmax(150px, 0.9fr) repeat(3, minmax(120px, 1fr)); grid-gap: 10px; gap: 10px; }
.ops-rgov__score {
    display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 2px;
    padding: 11px 14px; border-radius: 10px; border: 1px solid #E8E5F1; border: 1px solid var(--border-color, #E8E5F1); background: #fff;
}
.ops-rgov__score-value { font-size: 1.7rem; font-weight: 800; line-height: 1; }
.ops-rgov__score-label { font-size: 0.72rem; color: #8684A8; color: var(--text-light, #8684A8); }
.ops-rgov__score--ok .ops-rgov__score-value { color: #157A45; }
.ops-rgov__score--warn .ops-rgov__score-value { color: #B7791F; }
.ops-rgov__score--danger .ops-rgov__score-value { color: #DC291E; color: var(--status-red, #DC291E); }

.ops-rgov__kpi { display: flex; flex-direction: column; gap: 3px; padding: 11px 14px; border-radius: 10px; border: 1px solid #E8E5F1; border: 1px solid var(--border-color, #E8E5F1); background: #fff; }
.ops-rgov__kpi-value { font-size: 1.3rem; font-weight: 700; color: #2E1956; color: var(--text-default, #2E1956); line-height: 1.1; }
.ops-rgov__kpi-label { display: flex; align-items: center; gap: 5px; font-size: 0.72rem; color: #8684A8; color: var(--text-light, #8684A8); }
.ops-rgov__kpi--danger .ops-rgov__kpi-value { color: #DC291E; color: var(--status-red, #DC291E); }

.ops-rgov__truncated { margin: 0; font-size: 0.76rem; color: #8684A8; color: var(--text-light, #8684A8); }

/* Corpo: política (regiões) + violações */
.ops-rgov__body { display: grid; grid-template-columns: minmax(240px, 0.8fr) minmax(0, 1.6fr); grid-gap: 14px; gap: 14px; align-items: start; }
@media (max-width: 900px) { .ops-rgov__body { grid-template-columns: 1fr; } }

.ops-rgov__policy, .ops-rgov__violations {
    border: 1px solid #E8E5F1;
    border: 1px solid var(--border-color, #E8E5F1); border-radius: 12px; background: #fff; padding: 14px;
}
.ops-rgov__policy h2, .ops-rgov__violations h2 {
    display: flex; align-items: center; gap: 7px; margin: 0 0 10px; font-size: 0.9rem; font-weight: 700; color: #2E1956; color: var(--text-default, #2E1956);
}
.ops-rgov__policy-head { display: flex; align-items: center; justify-content: space-between; gap: 10px; }
.ops-rgov__reset { border: 0; background: transparent; color: #471FCC; color: var(--color-primary-blue, #471FCC); font-size: 0.74rem; font-weight: 600; cursor: pointer; padding: 0; }
.ops-rgov__reset:hover { text-decoration: underline; }
.ops-rgov__policy-hint { margin: 0 0 10px; font-size: 0.74rem; color: #8684A8; color: var(--text-light, #8684A8); }

.ops-rgov__regions { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 4px; }
.ops-rgov__region {
    display: flex; align-items: center; gap: 8px; padding: 7px 9px; border-radius: 8px;
    border: 1px solid #F2F0F8;
    border: 1px solid var(--border-color, #F2F0F8); background: #fff;
}
.ops-rgov__region.is-denied { background: color-mix(in srgb, #DC291E 5%, #fff); background: color-mix(in srgb, var(--status-red, #DC291E) 5%, #fff); border-color: color-mix(in srgb, #DC291E 18%, #fff); border-color: color-mix(in srgb, var(--status-red, #DC291E) 18%, #fff); }
.ops-rgov__region-label { display: flex; align-items: center; gap: 7px; flex: 1 1; cursor: pointer; min-width: 0; }
.ops-rgov__region-label input { cursor: pointer; }
.ops-rgov__region-name { display: inline-flex; align-items: center; gap: 4px; font-size: 0.8rem; font-weight: 600; color: #2E1956; color: var(--text-default, #2E1956); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.ops-rgov__region-count { font-size: 0.74rem; font-weight: 700; color: #2E1956; color: var(--text-default, #2E1956); background: #F1EFF8; background: var(--background-neutral, #F1EFF8); border-radius: 999px; padding: 1px 9px; min-width: 28px; text-align: center; }
.ops-rgov__region-ok { color: #1E9E5A; flex-shrink: 0; }
.ops-rgov__region-deny { color: #DC291E; color: var(--status-red, #DC291E); flex-shrink: 0; }

/* Violações */
.ops-rgov__vlist { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 6px; }
.ops-rgov__vitem {
    display: flex; align-items: center; gap: 12px; padding: 9px 12px; border-radius: 9px;
    border: 1px solid #F2F0F8;
    border: 1px solid var(--border-color, #F2F0F8); background: #fff; cursor: pointer;
}
.ops-rgov__vitem:hover { border-color: #471FCC; border-color: var(--color-primary-blue, #471FCC); background: #F7F6FB; background: var(--background-neutral, #F7F6FB); }
.ops-rgov__vitem-region {
    display: inline-flex; align-items: center; gap: 4px; flex-shrink: 0; min-width: 120px;
    font-size: 0.74rem; font-weight: 700; color: #DC291E; color: var(--status-red, #DC291E);
    background: color-mix(in srgb, #DC291E 10%, #fff);
    background: color-mix(in srgb, var(--status-red, #DC291E) 10%, #fff); border-radius: 6px; padding: 3px 8px;
}
.ops-rgov__vitem-main { flex: 1 1; min-width: 0; display: flex; flex-direction: column; gap: 2px; }
.ops-rgov__vitem-title { display: flex; align-items: center; gap: 7px; min-width: 0; }
.ops-rgov__vitem-name { font-size: 0.82rem; font-weight: 600; color: #2E1956; color: var(--text-default, #2E1956); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.ops-rgov__vitem-type { font-size: 0.72rem; color: #8684A8; color: var(--text-light, #8684A8); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.ops-rgov__chev { color: #8684A8; color: var(--text-light, #8684A8); flex-shrink: 0; }

/* Conformidade de Tags (Operations · Governança · F2.C.1b) */
.ops-tgov {
    display: flex;
    flex-direction: column;
    gap: 12px;
    padding: 18px 22px;
    height: 100%;
    overflow: auto;
}

.ops-tgov__head { display: flex; align-items: flex-start; justify-content: space-between; gap: 16px; }
.ops-tgov__head h1 { display: flex; align-items: center; gap: 8px; margin: 0; font-size: 1.15rem; font-weight: 700; color: #2E1956; color: var(--text-default, #2E1956); }
.ops-tgov__head p { margin: 4px 0 0; font-size: 0.82rem; color: #8684A8; color: var(--text-light, #8684A8); }

.ops-tgov__refresh {
    display: inline-flex; align-items: center; gap: 6px;
    padding: 7px 12px; border-radius: 8px; border: 1px solid #E8E5F1; border: 1px solid var(--border-color, #E8E5F1);
    background: #fff; color: #2E1956; color: var(--text-default, #2E1956); font-size: 0.8rem; font-weight: 600; cursor: pointer; flex-shrink: 0;
}
.ops-tgov__refresh:hover:not(:disabled) { border-color: #471FCC; border-color: var(--color-primary-blue, #471FCC); background: #F7F6FB; background: var(--background-neutral, #F7F6FB); }
.ops-tgov__refresh:disabled { opacity: .6; cursor: default; }
.ops-tgov .is-spinning { animation: ops-tgov-spin 1s linear infinite; }
@keyframes ops-tgov-spin { to { transform: rotate(360deg); } }

.ops-tgov__note {
    display: flex; align-items: flex-start; gap: 8px;
    padding: 9px 13px; border-radius: 9px;
    background: #F1EFF8;
    background: var(--background-neutral, #F1EFF8); color: #6B6890; color: var(--text-light, #6B6890); font-size: 0.78rem;
}
.ops-tgov__note strong { color: #2E1956; color: var(--text-default, #2E1956); }

/* Seletor de nuvem */
.ops-tgov__providers { display: flex; flex-wrap: wrap; gap: 8px; }
.ops-tgov__prov {
    display: inline-flex; align-items: center; gap: 7px;
    padding: 7px 13px; border-radius: 9px; border: 1px solid #E8E5F1; border: 1px solid var(--border-color, #E8E5F1);
    background: #fff; color: #2E1956; color: var(--text-default, #2E1956); font-size: 0.8rem; font-weight: 600; cursor: pointer;
}
.ops-tgov__prov:hover { border-color: #471FCC; border-color: var(--color-primary-blue, #471FCC); }
.ops-tgov__prov.is-active { border-color: #471FCC; border-color: var(--color-primary-blue, #471FCC); background: color-mix(in srgb, #471FCC 8%, #fff); background: color-mix(in srgb, var(--color-primary-blue, #471FCC) 8%, #fff); }
.ops-tgov__prov-meta { font-size: 0.72rem; font-weight: 500; color: #8684A8; color: var(--text-light, #8684A8); }

/* Seletor de conta */
.ops-tgov__accounts { display: flex; align-items: center; gap: 8px; }
.ops-tgov__accounts-label { font-size: 0.78rem; color: #8684A8; color: var(--text-light, #8684A8); }
.ops-tgov__account-select {
    padding: 6px 10px; border-radius: 8px; border: 1px solid #E8E5F1; border: 1px solid var(--border-color, #E8E5F1);
    background: #fff; color: #2E1956; color: var(--text-default, #2E1956); font-size: 0.8rem; max-width: 360px;
}

/* KPIs */
.ops-tgov__kpis { display: grid; grid-template-columns: minmax(150px, 0.9fr) repeat(3, minmax(120px, 1fr)); grid-gap: 10px; gap: 10px; }
.ops-tgov__score {
    display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 2px;
    padding: 11px 14px; border-radius: 10px; border: 1px solid #E8E5F1; border: 1px solid var(--border-color, #E8E5F1); background: #fff;
}
.ops-tgov__score-value { font-size: 1.7rem; font-weight: 800; line-height: 1; }
.ops-tgov__score-label { font-size: 0.72rem; color: #8684A8; color: var(--text-light, #8684A8); }
.ops-tgov__score--ok .ops-tgov__score-value { color: #157A45; }
.ops-tgov__score--warn .ops-tgov__score-value { color: #B7791F; }
.ops-tgov__score--danger .ops-tgov__score-value { color: #DC291E; color: var(--status-red, #DC291E); }

.ops-tgov__kpi { display: flex; flex-direction: column; gap: 3px; padding: 11px 14px; border-radius: 10px; border: 1px solid #E8E5F1; border: 1px solid var(--border-color, #E8E5F1); background: #fff; }
.ops-tgov__kpi-value { font-size: 1.3rem; font-weight: 700; color: #2E1956; color: var(--text-default, #2E1956); line-height: 1.1; }
.ops-tgov__kpi-label { display: flex; align-items: center; gap: 5px; font-size: 0.72rem; color: #8684A8; color: var(--text-light, #8684A8); }
.ops-tgov__kpi--danger .ops-tgov__kpi-value { color: #DC291E; color: var(--status-red, #DC291E); }

.ops-tgov__truncated { margin: 0; font-size: 0.76rem; color: #8684A8; color: var(--text-light, #8684A8); }

/* Corpo: política (chaves) + resumo */
.ops-tgov__body { display: grid; grid-template-columns: minmax(280px, 1.3fr) minmax(0, 1fr); grid-gap: 14px; gap: 14px; align-items: start; }
@media (max-width: 900px) { .ops-tgov__body { grid-template-columns: 1fr; } }

.ops-tgov__policy, .ops-tgov__summary {
    border: 1px solid #E8E5F1;
    border: 1px solid var(--border-color, #E8E5F1); border-radius: 12px; background: #fff; padding: 14px;
}
.ops-tgov__policy h2, .ops-tgov__summary h2 {
    display: flex; align-items: center; gap: 7px; margin: 0 0 10px; font-size: 0.9rem; font-weight: 700; color: #2E1956; color: var(--text-default, #2E1956);
}
.ops-tgov__policy-head { display: flex; align-items: center; justify-content: space-between; gap: 10px; }
.ops-tgov__reset { border: 0; background: transparent; color: #471FCC; color: var(--color-primary-blue, #471FCC); font-size: 0.74rem; font-weight: 600; cursor: pointer; padding: 0; }
.ops-tgov__reset:hover { text-decoration: underline; }
.ops-tgov__policy-hint { margin: 0 0 10px; font-size: 0.74rem; color: #8684A8; color: var(--text-light, #8684A8); }

/* Adicionar chave */
.ops-tgov__add { display: flex; gap: 6px; margin-bottom: 8px; }
.ops-tgov__add-input {
    flex: 1 1; padding: 6px 10px; border-radius: 8px; border: 1px solid #E8E5F1; border: 1px solid var(--border-color, #E8E5F1);
    background: #fff; color: #2E1956; color: var(--text-default, #2E1956); font-size: 0.8rem;
}
.ops-tgov__add-btn {
    display: inline-flex; align-items: center; gap: 4px; padding: 6px 11px; border-radius: 8px;
    border: 1px solid #471FCC;
    border: 1px solid var(--color-primary-blue, #471FCC); background: #471FCC; background: var(--color-primary-blue, #471FCC);
    color: #fff; font-size: 0.76rem; font-weight: 600; cursor: pointer;
}
.ops-tgov__add-btn:disabled { opacity: .5; cursor: default; }

/* Sugestões */
.ops-tgov__suggest { display: flex; flex-wrap: wrap; gap: 6px; margin-bottom: 12px; }
.ops-tgov__chip {
    display: inline-flex; align-items: center; gap: 3px; padding: 3px 9px; border-radius: 999px;
    border: 1px dashed #CFC9E6;
    border: 1px dashed var(--border-color, #CFC9E6); background: #F7F6FB; background: var(--background-neutral, #F7F6FB);
    color: #6B6890;
    color: var(--text-light, #6B6890); font-size: 0.73rem; font-weight: 600; cursor: pointer;
}
.ops-tgov__chip:hover { border-color: #471FCC; border-color: var(--color-primary-blue, #471FCC); color: #471FCC; color: var(--color-primary-blue, #471FCC); }

/* Cobertura por chave */
.ops-tgov__keys { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 5px; }
.ops-tgov__key {
    display: grid; grid-template-columns: minmax(120px, 1.4fr) minmax(60px, 2fr) 40px 34px 16px;
    align-items: center; grid-gap: 8px; gap: 8px; padding: 6px 9px; border-radius: 8px;
    border: 1px solid #F2F0F8;
    border: 1px solid var(--border-color, #F2F0F8); background: #fff;
}
.ops-tgov__key.is-required { border-color: color-mix(in srgb, #471FCC 30%, #fff); border-color: color-mix(in srgb, var(--color-primary-blue, #471FCC) 30%, #fff); background: color-mix(in srgb, #471FCC 4%, #fff); background: color-mix(in srgb, var(--color-primary-blue, #471FCC) 4%, #fff); }
.ops-tgov__key-label { display: flex; align-items: center; gap: 7px; cursor: pointer; min-width: 0; }
.ops-tgov__key-label input { cursor: pointer; }
.ops-tgov__key-name { font-size: 0.8rem; font-weight: 600; color: #2E1956; color: var(--text-default, #2E1956); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.ops-tgov__bar { height: 8px; border-radius: 999px; background: #EFEDF7; background: var(--background-neutral, #EFEDF7); overflow: hidden; }
.ops-tgov__bar-fill { height: 100%; border-radius: 999px; }
.ops-tgov__bar-fill--ok { background: #1E9E5A; }
.ops-tgov__bar-fill--warn { background: #D9A420; }
.ops-tgov__bar-fill--danger { background: #DC291E; background: var(--status-red, #DC291E); }
.ops-tgov__key-pct { font-size: 0.74rem; font-weight: 700; color: #2E1956; color: var(--text-default, #2E1956); text-align: right; }
.ops-tgov__key-count { font-size: 0.72rem; font-weight: 600; color: #8684A8; color: var(--text-light, #8684A8); background: #F1EFF8; background: var(--background-neutral, #F1EFF8); border-radius: 999px; padding: 1px 7px; text-align: center; }
.ops-tgov__key-miss { color: #DC291E; color: var(--status-red, #DC291E); }

/* Resumo de conformidade */
.ops-tgov__summary-empty { display: flex; flex-direction: column; align-items: center; gap: 8px; padding: 24px 12px; color: #8684A8; color: var(--text-light, #8684A8); text-align: center; }
.ops-tgov__summary-empty p { margin: 0; font-size: 0.8rem; }
.ops-tgov__reqlist { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 6px; }
.ops-tgov__req { display: grid; grid-template-columns: minmax(110px, 1.2fr) minmax(60px, 2fr) 40px; align-items: center; grid-gap: 8px; gap: 8px; padding: 6px 9px; border-radius: 8px; border: 1px solid #F2F0F8; border: 1px solid var(--border-color, #F2F0F8); background: #fff; }
.ops-tgov__req.is-miss { background: color-mix(in srgb, #DC291E 5%, #fff); background: color-mix(in srgb, var(--status-red, #DC291E) 5%, #fff); border-color: color-mix(in srgb, #DC291E 18%, #fff); border-color: color-mix(in srgb, var(--status-red, #DC291E) 18%, #fff); }
.ops-tgov__req-name { display: inline-flex; align-items: center; gap: 5px; font-size: 0.8rem; font-weight: 600; color: #2E1956; color: var(--text-default, #2E1956); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.ops-tgov__req-icon-ok { color: #1E9E5A; flex-shrink: 0; }
.ops-tgov__req-icon-miss { color: #DC291E; color: var(--status-red, #DC291E); flex-shrink: 0; }
.ops-tgov__req-pct { font-size: 0.74rem; font-weight: 700; color: #2E1956; color: var(--text-default, #2E1956); text-align: right; }
.ops-tgov__miss-note { display: flex; align-items: center; gap: 5px; margin: 10px 0 0; font-size: 0.74rem; color: #DC291E; color: var(--status-red, #DC291E); }

/* Security Posture (Operations · Segurança) — postura de segurança dos recursos reais */
.ops-sec {
    display: flex;
    flex-direction: column;
    gap: 14px;
    padding: 18px 22px;
    height: 100%;
    overflow: auto;
}

.ops-sec__head {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 16px;
}

.ops-sec__head h1 {
    display: flex;
    align-items: center;
    gap: 8px;
    margin: 0;
    font-size: 1.15rem;
    font-weight: 700;
    color: #2E1956;
    color: var(--text-default, #2E1956);
}

.ops-sec__head p {
    margin: 4px 0 0;
    font-size: 0.82rem;
    color: #8684A8;
    color: var(--text-light, #8684A8);
}

.ops-sec__refresh {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 7px 12px;
    border-radius: 8px;
    border: 1px solid #E8E5F1;
    border: 1px solid var(--border-color, #E8E5F1);
    background: #fff;
    color: #2E1956;
    color: var(--text-default, #2E1956);
    font-size: 0.8rem;
    font-weight: 600;
    cursor: pointer;
    flex-shrink: 0;
}

.ops-sec__refresh:hover:not(:disabled) { border-color: #471FCC; border-color: var(--color-primary-blue, #471FCC); background: #F7F6FB; background: var(--background-neutral, #F7F6FB); }
.ops-sec__refresh:disabled { opacity: .6; cursor: default; }
.is-spinning { animation: ops-sec-spin 1s linear infinite; }
@keyframes ops-sec-spin { to { transform: rotate(360deg); } }

/* Score + KPIs */
.ops-sec__top {
    display: flex;
    gap: 12px;
    flex-wrap: wrap;
}

.ops-sec__score {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    min-width: 130px;
    padding: 14px 18px;
    border-radius: 12px;
    border: 1px solid #E8E5F1;
    border: 1px solid var(--border-color, #E8E5F1);
    background: #fff;
}

.ops-sec__score-value { font-size: 2.4rem; font-weight: 800; line-height: 1; }
.ops-sec__score-label { font-size: 0.72rem; color: #8684A8; color: var(--text-light, #8684A8); margin-top: 4px; }
.ops-sec__score--ok .ops-sec__score-value { color: #1B8A63; }
.ops-sec__score--warn .ops-sec__score-value { color: #B7791F; }
.ops-sec__score--danger .ops-sec__score-value { color: #DC291E; color: var(--status-red, #DC291E); }

.ops-sec__kpis {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(130px, 1fr));
    grid-gap: 10px;
    gap: 10px;
    flex: 1 1;
}

.ops-sec__kpi {
    display: flex;
    flex-direction: column;
    gap: 3px;
    padding: 11px 14px;
    border-radius: 10px;
    border: 1px solid #E8E5F1;
    border: 1px solid var(--border-color, #E8E5F1);
    background: #fff;
}

.ops-sec__kpi--danger { border-color: color-mix(in srgb, #DC291E 30%, #fff); border-color: color-mix(in srgb, var(--status-red, #DC291E) 30%, #fff); }
.ops-sec__kpi--high { border-color: color-mix(in srgb, #E8590C 30%, #fff); }

.ops-sec__kpi-value { font-size: 1.4rem; font-weight: 700; color: #2E1956; color: var(--text-default, #2E1956); line-height: 1; }
.ops-sec__kpi-label { display: flex; align-items: center; gap: 5px; font-size: 0.72rem; color: #8684A8; color: var(--text-light, #8684A8); }

/* Provider filter */
.ops-sec__providers { display: flex; flex-wrap: wrap; gap: 8px; }

.ops-sec__prov {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    padding: 7px 13px;
    border-radius: 999px;
    border: 1px solid #E8E5F1;
    border: 1px solid var(--border-color, #E8E5F1);
    background: #fff;
    color: #2E1956;
    color: var(--text-default, #2E1956);
    font-size: 0.8rem;
    font-weight: 600;
    cursor: pointer;
}

.ops-sec__prov:hover { background: #F7F6FB; background: var(--background-neutral, #F7F6FB); }
.ops-sec__prov.is-active { border-color: #471FCC; border-color: var(--color-primary-blue, #471FCC); background: color-mix(in srgb, #471FCC 8%, #fff); background: color-mix(in srgb, var(--color-primary-blue, #471FCC) 8%, #fff); }
.ops-sec__prov-meta { font-size: 0.72rem; color: #8684A8; color: var(--text-light, #8684A8); font-weight: 500; }

/* Body: resources + issues */
.ops-sec__body {
    display: grid;
    grid-template-columns: 1fr 300px;
    grid-gap: 14px;
    gap: 14px;
    align-items: start;
}

@media (max-width: 920px) {
    .ops-sec__body { grid-template-columns: 1fr; }
}

.ops-sec__resources, .ops-sec__issues {
    border: 1px solid #E8E5F1;
    border: 1px solid var(--border-color, #E8E5F1);
    border-radius: 12px;
    background: #fff;
    padding: 14px;
}

.ops-sec__resources-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    margin-bottom: 10px;
    flex-wrap: wrap;
}

.ops-sec__resources h2, .ops-sec__issues h2 {
    display: flex;
    align-items: center;
    gap: 7px;
    margin: 0 0 10px;
    font-size: 0.95rem;
    font-weight: 700;
    color: #2E1956;
    color: var(--text-default, #2E1956);
}

.ops-sec__resources-head h2 { margin: 0; }

.ops-sec__search {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 6px 10px;
    border-radius: 8px;
    border: 1px solid #E8E5F1;
    border: 1px solid var(--border-color, #E8E5F1);
    color: #8684A8;
    color: var(--text-light, #8684A8);
    min-width: 240px;
}

.ops-sec__search input { border: 0; outline: 0; background: transparent; font-size: 0.8rem; color: #2E1956; color: var(--text-default, #2E1956); width: 100%; }

.ops-sec__list { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 8px; }

.ops-sec__item {
    display: flex;
    align-items: center;
    gap: 11px;
    padding: 11px 12px;
    border: 1px solid #EFEDF6;
    border: 1px solid var(--border-color, #EFEDF6);
    border-radius: 10px;
    background: #FAF9FD;
    background: var(--background-neutral, #FAF9FD);
    cursor: pointer;
    transition: background .12s, border-color .12s;
}

.ops-sec__item:hover { background: #fff; border-color: #471FCC; border-color: var(--color-primary-blue, #471FCC); }

.ops-sec__item-sev { width: 4px; align-self: stretch; border-radius: 3px; flex-shrink: 0; }

.ops-sec__item-main { flex: 1 1; min-width: 0; display: flex; flex-direction: column; gap: 4px; }

.ops-sec__item-title { display: flex; align-items: center; gap: 7px; }
.ops-sec__item-name { font-weight: 600; font-size: 0.86rem; color: #2E1956; color: var(--text-default, #2E1956); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; max-width: 280px; }
.ops-sec__item-type { font-size: 0.7rem; padding: 1px 7px; border-radius: 999px; background: #F1EFF8; background: var(--background-neutral, #F1EFF8); color: #6B6890; color: var(--text-light, #6B6890); }

.ops-sec__item-sub { display: flex; align-items: center; gap: 5px; font-size: 0.74rem; color: #8684A8; color: var(--text-light, #8684A8); }
.ops-sec__dot { opacity: .5; }

.ops-sec__item-findings { display: flex; flex-wrap: wrap; gap: 5px; margin-top: 2px; }
.ops-sec__chip { font-size: 0.7rem; padding: 1px 8px; border-radius: 999px; border: 1px solid; background: #fff; max-width: 240px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.ops-sec__chip-more { font-size: 0.7rem; color: #8684A8; color: var(--text-light, #8684A8); align-self: center; }

.ops-sec__item-count { font-size: 1.1rem; font-weight: 700; color: #2E1956; color: var(--text-default, #2E1956); min-width: 26px; text-align: center; }
.ops-sec__chev { color: #B6B3CC; color: var(--text-light, #B6B3CC); }

/* Issues aside */
.ops-sec__issue-list { list-style: none; margin: 0 0 12px; padding: 0; display: flex; flex-direction: column; gap: 7px; }
.ops-sec__issue { display: flex; align-items: center; gap: 8px; }
.ops-sec__issue-dot { width: 8px; height: 8px; border-radius: 50%; flex-shrink: 0; }
.ops-sec__issue-title { flex: 1 1; font-size: 0.78rem; color: #2E1956; color: var(--text-default, #2E1956); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.ops-sec__issue-count { font-size: 0.8rem; font-weight: 700; color: #6B6890; color: var(--text-light, #6B6890); }

.ops-sec__gov-link {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    border: 0;
    background: transparent;
    padding: 0;
    color: #471FCC;
    color: var(--color-primary-blue, #471FCC);
    font-size: 0.8rem;
    font-weight: 600;
    cursor: pointer;
}

.ops-sec__gov-link:hover { text-decoration: underline; }

/* Evidence Center (Operations · Evidências) — dossiê multicloud */
.ops-ev {
    display: flex;
    flex-direction: column;
    gap: 14px;
    padding: 18px 22px;
    height: 100%;
    overflow: auto;
}

.ops-ev__head {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 16px;
}

.ops-ev__head h1 {
    display: flex;
    align-items: center;
    gap: 8px;
    margin: 0;
    font-size: 1.15rem;
    font-weight: 700;
    color: #2E1956;
    color: var(--text-default, #2E1956);
}

.ops-ev__head p {
    margin: 4px 0 0;
    font-size: 0.82rem;
    color: #8684A8;
    color: var(--text-light, #8684A8);
    max-width: 720px;
}

.ops-ev__refresh {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 7px 12px;
    border-radius: 8px;
    border: 1px solid #E8E5F1;
    border: 1px solid var(--border-color, #E8E5F1);
    background: #fff;
    color: #2E1956;
    color: var(--text-default, #2E1956);
    font-size: 0.8rem;
    font-weight: 600;
    cursor: pointer;
    flex-shrink: 0;
}

.ops-ev__refresh:hover:not(:disabled) {
    border-color: #471FCC;
    border-color: var(--color-primary-blue, #471FCC);
    background: #F7F6FB;
    background: var(--background-neutral, #F7F6FB);
}

.ops-ev__refresh:disabled { opacity: .6; cursor: default; }

.is-spinning { animation: ops-ev-spin 1s linear infinite; }
@keyframes ops-ev-spin { to { transform: rotate(360deg); } }

/* KPI strip */
.ops-ev__kpis {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(170px, 1fr));
    grid-gap: 10px;
    gap: 10px;
}

.ops-ev__kpi {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 11px 14px;
    border-radius: 10px;
    border: 1px solid #E8E5F1;
    border: 1px solid var(--border-color, #E8E5F1);
    background: #fff;
}

.ops-ev__kpi--warn {
    border-color: color-mix(in srgb, #DC291E 35%, #fff);
    border-color: color-mix(in srgb, var(--status-red, #DC291E) 35%, #fff);
    background: color-mix(in srgb, #DC291E 5%, #fff);
    background: color-mix(in srgb, var(--status-red, #DC291E) 5%, #fff);
}

.ops-ev__kpi-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 34px;
    height: 34px;
    border-radius: 9px;
    background: #F1EFF8;
    background: var(--background-neutral, #F1EFF8);
    color: #471FCC;
    color: var(--color-primary-blue, #471FCC);
    flex-shrink: 0;
}

.ops-ev__kpi-body { display: flex; flex-direction: column; }

.ops-ev__kpi-value {
    font-size: 1.25rem;
    font-weight: 700;
    color: #2E1956;
    color: var(--text-default, #2E1956);
    line-height: 1.1;
}

.ops-ev__kpi-label {
    font-size: 0.72rem;
    color: #8684A8;
    color: var(--text-light, #8684A8);
}

/* Matrix of per-cloud evidence cards */
.ops-ev__matrix {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(330px, 1fr));
    grid-gap: 12px;
    gap: 12px;
}

.ops-ev__card {
    display: flex;
    flex-direction: column;
    border: 1px solid #E8E5F1;
    border: 1px solid var(--border-color, #E8E5F1);
    border-radius: 12px;
    background: #fff;
    overflow: hidden;
}

.ops-ev__card.is-empty { opacity: .65; }

.ops-ev__card-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 11px 14px;
    border-bottom: 1px solid #EFEDF6;
    border-bottom: 1px solid var(--border-color, #EFEDF6);
    background: #FAF9FD;
    background: var(--background-neutral, #FAF9FD);
}

.ops-ev__card-cloud {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    font-weight: 700;
    font-size: 0.92rem;
    color: #2E1956;
    color: var(--text-default, #2E1956);
}

.ops-ev__pillars { display: inline-flex; gap: 4px; }

.ops-ev__pillar {
    width: 18px;
    height: 5px;
    border-radius: 3px;
    background: #E2DEF0;
    background: var(--border-color, #E2DEF0);
}

.ops-ev__pillar.is-on { background: #34C38F; background: var(--color-secondary-green-light, #34C38F); }

.ops-ev__empty {
    padding: 22px 14px;
    text-align: center;
    color: #A6A2C2;
    color: var(--text-light, #A6A2C2);
    font-size: 0.82rem;
}

.ops-ev__pillgrid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    grid-gap: 1px;
    gap: 1px;
    background: #EFEDF6;
    background: var(--border-color, #EFEDF6);
}

.ops-ev__pill {
    display: flex;
    flex-direction: column;
    gap: 3px;
    padding: 11px 13px;
    background: #fff;
    border: 0;
    text-align: left;
    font: inherit;
}

.ops-ev__pill.is-clickable { cursor: pointer; transition: background .12s; }
.ops-ev__pill.is-clickable:hover { background: #F7F6FB; background: var(--background-neutral, #F7F6FB); }

.ops-ev__pill-h {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    font-size: 0.68rem;
    text-transform: uppercase;
    letter-spacing: .03em;
    color: #8684A8;
    color: var(--text-light, #8684A8);
    font-weight: 700;
}

.ops-ev__pill-main {
    font-size: 0.92rem;
    font-weight: 600;
    color: #2E1956;
    color: var(--text-default, #2E1956);
}

.ops-ev__pill-sub {
    font-size: 0.72rem;
    color: #8684A8;
    color: var(--text-light, #8684A8);
}

.mono { font-family: ui-monospace, SFMono-Regular, Menlo, monospace; }

.ops-ev__fresh--ok { color: #1B8A63; }
.ops-ev__fresh--stale { color: #B7791F; }
.ops-ev__fresh--none { color: #A6A2C2; color: var(--text-light, #A6A2C2); }

.ops-ev__badge {
    display: inline-block;
    padding: 1px 8px;
    border-radius: 999px;
    font-size: 0.74rem;
    font-weight: 600;
}

.ops-ev__badge--ok {
    background: color-mix(in srgb, #34C38F 16%, #fff);
    background: color-mix(in srgb, var(--color-secondary-green-light, #34C38F) 16%, #fff);
    color: #1B8A63;
}

.ops-ev__badge--muted {
    background: #F1EFF8;
    background: var(--background-neutral, #F1EFF8);
    color: #6B6890;
    color: var(--text-light, #6B6890);
}

.ops-ev__sev-high {
    display: inline-flex;
    align-items: center;
    gap: 3px;
    color: #DC291E;
    color: var(--status-red, #DC291E);
    font-weight: 600;
}

/* Footer links */
.ops-ev__foot {
    display: flex;
    gap: 14px;
    flex-wrap: wrap;
    margin-top: 2px;
}

.ops-ev__foot-link {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    border: 0;
    background: transparent;
    padding: 0;
    color: #471FCC;
    color: var(--color-primary-blue, #471FCC);
    font-size: 0.8rem;
    font-weight: 600;
    cursor: pointer;
}

.ops-ev__foot-link:hover { text-decoration: underline; }

/* Service Catalog (Operations · Serviços) — catálogo de serviços de nuvem reais */
.ops-svc {
    display: flex;
    flex-direction: column;
    gap: 14px;
    padding: 18px 22px;
    height: 100%;
    overflow: auto;
}

.ops-svc__head {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 16px;
}

.ops-svc__head h1 {
    display: flex;
    align-items: center;
    gap: 8px;
    margin: 0;
    font-size: 1.15rem;
    font-weight: 700;
    color: #2E1956;
    color: var(--text-default, #2E1956);
}

.ops-svc__head p {
    margin: 4px 0 0;
    font-size: 0.82rem;
    color: #8684A8;
    color: var(--text-light, #8684A8);
}

.ops-svc__refresh {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 7px 12px;
    border-radius: 8px;
    border: 1px solid #E8E5F1;
    border: 1px solid var(--border-color, #E8E5F1);
    background: #fff;
    color: #2E1956;
    color: var(--text-default, #2E1956);
    font-size: 0.8rem;
    font-weight: 600;
    cursor: pointer;
    flex-shrink: 0;
}

.ops-svc__refresh:hover:not(:disabled) {
    border-color: #471FCC;
    border-color: var(--color-primary-blue, #471FCC);
    background: #F7F6FB;
    background: var(--background-neutral, #F7F6FB);
}

.ops-svc__refresh:disabled { opacity: .6; cursor: default; }

.is-spinning { animation: ops-svc-spin 1s linear infinite; }
@keyframes ops-svc-spin { to { transform: rotate(360deg); } }

/* KPIs */
.ops-svc__kpis {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
    grid-gap: 10px;
    gap: 10px;
}

.ops-svc__kpi {
    display: flex;
    flex-direction: column;
    gap: 3px;
    padding: 11px 14px;
    border-radius: 10px;
    border: 1px solid #E8E5F1;
    border: 1px solid var(--border-color, #E8E5F1);
    background: #fff;
}

.ops-svc__kpi-value {
    font-size: 1.3rem;
    font-weight: 700;
    color: #2E1956;
    color: var(--text-default, #2E1956);
    line-height: 1.2;
}

.ops-svc__kpi-clouds { display: inline-flex; gap: 6px; align-items: center; min-height: 1.5rem; }
.ops-svc__kpi-sync { font-size: 0.92rem; }

.ops-svc__kpi-label {
    display: flex;
    align-items: center;
    gap: 5px;
    font-size: 0.72rem;
    color: #8684A8;
    color: var(--text-light, #8684A8);
}

/* Search */
.ops-svc__search {
    display: flex;
    align-items: center;
    gap: 6px;
    padding: 7px 11px;
    border-radius: 8px;
    border: 1px solid #E8E5F1;
    border: 1px solid var(--border-color, #E8E5F1);
    background: #fff;
    color: #8684A8;
    color: var(--text-light, #8684A8);
    max-width: 420px;
}

.ops-svc__search input {
    border: 0;
    outline: 0;
    background: transparent;
    font-size: 0.82rem;
    color: #2E1956;
    color: var(--text-default, #2E1956);
    width: 100%;
}

/* Grid of category cards */
.ops-svc__grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(300px, 1fr));
    grid-gap: 12px;
    gap: 12px;
    align-items: start;
}

.ops-svc__card {
    display: flex;
    flex-direction: column;
    border: 1px solid #E8E5F1;
    border: 1px solid var(--border-color, #E8E5F1);
    border-radius: 12px;
    background: #fff;
    overflow: hidden;
}

.ops-svc__card.is-open {
    border-color: #471FCC;
    border-color: var(--color-primary-blue, #471FCC);
}

.ops-svc__card-head {
    display: flex;
    align-items: center;
    gap: 11px;
    padding: 13px 14px;
    border: 0;
    background: #fff;
    cursor: pointer;
    text-align: left;
    width: 100%;
}

.ops-svc__card-head:hover { background: #FAF9FD; background: var(--background-neutral, #FAF9FD); }

.ops-svc__card-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 38px;
    height: 38px;
    border-radius: 10px;
    background: #F1EFF8;
    background: var(--background-neutral, #F1EFF8);
    color: #471FCC;
    color: var(--color-primary-blue, #471FCC);
    flex-shrink: 0;
}

.ops-svc__card-title { display: flex; flex-direction: column; flex: 1 1; min-width: 0; }

.ops-svc__card-name {
    font-size: 0.92rem;
    font-weight: 700;
    color: #2E1956;
    color: var(--text-default, #2E1956);
}

.ops-svc__card-sub {
    font-size: 0.72rem;
    color: #8684A8;
    color: var(--text-light, #8684A8);
}

.ops-svc__card-count {
    font-size: 1.2rem;
    font-weight: 700;
    color: #2E1956;
    color: var(--text-default, #2E1956);
}

.ops-svc__card-chev {
    color: #B6B3CC;
    color: var(--text-light, #B6B3CC);
    transition: transform .15s;
}

.ops-svc__card-chev.is-open { transform: rotate(90deg); }

.ops-svc__card-providers {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
    padding: 0 14px 12px;
}

.ops-svc__prov-chip {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    padding: 2px 9px;
    border-radius: 999px;
    background: #F1EFF8;
    background: var(--background-neutral, #F1EFF8);
    font-size: 0.74rem;
    font-weight: 600;
    color: #6B6890;
    color: var(--text-light, #6B6890);
}

.ops-svc__card-open {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    margin: 0 14px 12px;
    padding: 6px 12px;
    border-radius: 7px;
    border: 1px solid #E8E5F1;
    border: 1px solid var(--border-color, #E8E5F1);
    background: #fff;
    color: #471FCC;
    color: var(--color-primary-blue, #471FCC);
    font-size: 0.78rem;
    font-weight: 600;
    cursor: pointer;
    align-self: flex-start;
}

.ops-svc__card-open:hover {
    border-color: #471FCC;
    border-color: var(--color-primary-blue, #471FCC);
    background: color-mix(in srgb, #471FCC 6%, #fff);
    background: color-mix(in srgb, var(--color-primary-blue, #471FCC) 6%, #fff);
}

.ops-svc__types {
    list-style: none;
    margin: 0;
    padding: 4px 0 0;
    border-top: 1px solid #EFEDF6;
    border-top: 1px solid var(--border-color, #EFEDF6);
}

.ops-svc__type {
    display: grid;
    grid-template-columns: 1fr auto auto;
    align-items: center;
    grid-gap: 10px;
    gap: 10px;
    padding: 8px 14px;
    font-size: 0.82rem;
}

.ops-svc__type:not(:last-child) { border-bottom: 1px solid #F4F2FA; border-bottom: 1px solid var(--border-color, #F4F2FA); }

.ops-svc__type-name {
    color: #2E1956;
    color: var(--text-default, #2E1956);
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    font-family: ui-monospace, SFMono-Regular, Menlo, monospace;
    font-size: 0.78rem;
}

.ops-svc__type-provs { display: inline-flex; gap: 4px; }

.ops-svc__type-count {
    font-weight: 700;
    color: #2E1956;
    color: var(--text-default, #2E1956);
    min-width: 44px;
    text-align: right;
}

/* Footer */
.ops-svc__foot {
    display: flex;
    gap: 14px;
    margin-top: 2px;
}

.ops-svc__foot-link {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    border: 0;
    background: transparent;
    padding: 0;
    color: #471FCC;
    color: var(--color-primary-blue, #471FCC);
    font-size: 0.8rem;
    font-weight: 600;
    cursor: pointer;
}

.ops-svc__foot-link:hover { text-decoration: underline; }

/* Service Detail (Operations · Serviço) — recursos reais de uma categoria de serviço */
.ops-svd {
    display: flex;
    flex-direction: column;
    gap: 12px;
    padding: 18px 22px;
    height: 100%;
    overflow: auto;
}

.ops-svd__breadcrumb { display: flex; align-items: center; gap: 7px; font-size: 0.8rem; color: #8684A8; color: var(--text-light, #8684A8); }
.ops-svd__crumb { cursor: pointer; color: #471FCC; color: var(--color-primary-blue, #471FCC); font-weight: 600; }
.ops-svd__crumb:hover { text-decoration: underline; }
.ops-svd__breadcrumb strong { color: #2E1956; color: var(--text-default, #2E1956); }

.ops-svd__head { display: flex; align-items: flex-start; justify-content: space-between; gap: 16px; }
.ops-svd__head h1 { display: flex; align-items: center; gap: 8px; margin: 0; font-size: 1.15rem; font-weight: 700; color: #2E1956; color: var(--text-default, #2E1956); }
.ops-svd__head p { margin: 4px 0 0; font-size: 0.82rem; color: #8684A8; color: var(--text-light, #8684A8); }

.ops-svd__refresh, .ops-svd__back {
    display: inline-flex; align-items: center; gap: 6px;
    padding: 7px 12px; border-radius: 8px; border: 1px solid #E8E5F1; border: 1px solid var(--border-color, #E8E5F1);
    background: #fff; color: #2E1956; color: var(--text-default, #2E1956); font-size: 0.8rem; font-weight: 600; cursor: pointer; flex-shrink: 0;
}
.ops-svd__refresh:hover:not(:disabled), .ops-svd__back:hover { border-color: #471FCC; border-color: var(--color-primary-blue, #471FCC); background: #F7F6FB; background: var(--background-neutral, #F7F6FB); }
.ops-svd__refresh:disabled { opacity: .6; cursor: default; }
.ops-svd__back { align-self: flex-start; margin-top: 8px; }
.is-spinning { animation: ops-svd-spin 1s linear infinite; }
@keyframes ops-svd-spin { to { transform: rotate(360deg); } }

/* KPIs */
.ops-svd__kpis { display: grid; grid-template-columns: repeat(auto-fit, minmax(140px, 1fr)); grid-gap: 10px; gap: 10px; }
.ops-svd__kpi { display: flex; flex-direction: column; gap: 3px; padding: 11px 14px; border-radius: 10px; border: 1px solid #E8E5F1; border: 1px solid var(--border-color, #E8E5F1); background: #fff; }
.ops-svd__kpi-value { font-size: 1.3rem; font-weight: 700; color: #2E1956; color: var(--text-default, #2E1956); line-height: 1.1; }
.ops-svd__kpi-clouds { display: inline-flex; gap: 6px; align-items: center; min-height: 1.4rem; }
.ops-svd__kpi-label { display: flex; align-items: center; gap: 5px; font-size: 0.72rem; color: #8684A8; color: var(--text-light, #8684A8); }

/* Types */
.ops-svd__types { display: flex; flex-direction: column; gap: 6px; }
.ops-svd__types-h { font-size: 0.68rem; text-transform: uppercase; letter-spacing: .03em; color: #8684A8; color: var(--text-light, #8684A8); font-weight: 700; }
.ops-svd__types-line { display: flex; align-items: flex-start; gap: 8px; min-width: 0; }
.ops-svd__types-chips { display: flex; flex-wrap: wrap; gap: 6px; }
.ops-svd__type-chip {
    display: inline-flex; align-items: center; gap: 5px;
    font-size: 0.74rem; padding: 3px 9px; border-radius: 999px;
    background: #F1EFF8;
    background: var(--background-neutral, #F1EFF8); color: #6B6890; color: var(--text-light, #6B6890);
}
.ops-svd__types-chips.is-collapsed {
    flex-wrap: nowrap;
    overflow: hidden;
}
.ops-svd__types-chips.is-collapsed .ops-svd__type-chip {
    flex: 0 0 auto;
}
.ops-svd__types-toggle {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 24px;
    height: 24px;
    border-radius: 999px;
    border: 1px solid #E8E5F1;
    border: 1px solid var(--border-color, #E8E5F1);
    background: #fff;
    color: #2E1956;
    color: var(--text-default, #2E1956);
    cursor: pointer;
    flex-shrink: 0;
}
.ops-svd__types-toggle:hover {
    background: #F7F6FB;
    background: var(--background-neutral, #F7F6FB);
    border-color: #471FCC;
    border-color: var(--color-primary-blue, #471FCC);
}
.ops-svd__type-name { color: #2E1956; color: var(--text-default, #2E1956); font-family: ui-monospace, SFMono-Regular, Menlo, monospace; font-size: 0.72rem; }
.ops-svd__type-count { font-weight: 700; color: #2E1956; color: var(--text-default, #2E1956); }

/* Toolbar */
.ops-svd__toolbar { display: flex; align-items: center; justify-content: space-between; gap: 12px; flex-wrap: wrap; }
.ops-svd__providers { display: flex; flex-wrap: wrap; gap: 8px; }
.ops-svd__prov {
    display: inline-flex; align-items: center; gap: 7px;
    padding: 7px 13px; border-radius: 999px; border: 1px solid #E8E5F1; border: 1px solid var(--border-color, #E8E5F1);
    background: #fff; color: #2E1956; color: var(--text-default, #2E1956); font-size: 0.8rem; font-weight: 600; cursor: pointer;
}
.ops-svd__prov:hover { background: #F7F6FB; background: var(--background-neutral, #F7F6FB); }
.ops-svd__prov.is-active { border-color: #471FCC; border-color: var(--color-primary-blue, #471FCC); background: color-mix(in srgb, #471FCC 8%, #fff); background: color-mix(in srgb, var(--color-primary-blue, #471FCC) 8%, #fff); }

.ops-svd__search { display: inline-flex; align-items: center; gap: 6px; padding: 6px 11px; border-radius: 8px; border: 1px solid #E8E5F1; border: 1px solid var(--border-color, #E8E5F1); color: #8684A8; color: var(--text-light, #8684A8); min-width: 240px; }
.ops-svd__search input { border: 0; outline: 0; background: transparent; font-size: 0.8rem; color: #2E1956; color: var(--text-default, #2E1956); width: 100%; }

.ops-svd__accounts { display: flex; flex-wrap: wrap; gap: 6px; }
.ops-svd__acc {
    display: inline-flex; align-items: center; gap: 5px; max-width: 260px;
    padding: 5px 10px; border-radius: 7px; border: 1px solid #E8E5F1; border: 1px solid var(--border-color, #E8E5F1);
    background: #fff; color: #6B6890; color: var(--text-light, #6B6890); font-size: 0.74rem; font-weight: 600; cursor: pointer;
    white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
}
.ops-svd__acc.is-active { border-color: #471FCC; border-color: var(--color-primary-blue, #471FCC); color: #2E1956; color: var(--text-default, #2E1956); background: color-mix(in srgb, #471FCC 6%, #fff); background: color-mix(in srgb, var(--color-primary-blue, #471FCC) 6%, #fff); }

/* Table */
.ops-svd__table { display: flex; flex-direction: column; border: 1px solid #E8E5F1; border: 1px solid var(--border-color, #E8E5F1); border-radius: 10px; overflow: hidden; }
.ops-svd__tr { display: grid; grid-template-columns: minmax(220px, 2.4fr) minmax(140px, 1.4fr) minmax(110px, 1fr) 130px 32px; align-items: center; grid-gap: 12px; gap: 12px; padding: 9px 14px; text-align: left; }
.ops-svd__tr--head { background: #F7F6FB; background: var(--background-neutral, #F7F6FB); font-size: 0.7rem; text-transform: uppercase; letter-spacing: .03em; color: #8684A8; color: var(--text-light, #8684A8); font-weight: 700; }
.ops-svd__tr--row { border: 0; border-top: 1px solid #EFEDF6; border-top: 1px solid var(--border-color, #EFEDF6); background: #fff; cursor: pointer; font-size: 0.82rem; color: #2E1956; color: var(--text-default, #2E1956); transition: background .12s; width: 100%; }
.ops-svd__tr--row:hover { background: #F7F6FB; background: var(--background-neutral, #F7F6FB); }
.ops-svd__cell-name { display: inline-flex; align-items: center; gap: 8px; min-width: 0; }
.ops-svd__name { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-weight: 600; }
.ops-svd__cell-type, .ops-svd__cell-region { color: #6B6890; color: var(--text-light, #6B6890); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.ops-svd__cell-region { display: inline-flex; align-items: center; gap: 4px; }
.ops-svd__status { display: inline-block; padding: 2px 9px; border-radius: 999px; font-size: 0.72rem; font-weight: 600; text-transform: capitalize; }
.ops-svd__status--ok { background: color-mix(in srgb, #34C38F 16%, #fff); background: color-mix(in srgb, var(--color-secondary-green-light, #34C38F) 16%, #fff); color: #1B8A63; }
.ops-svd__status--danger { background: color-mix(in srgb, #DC291E 12%, #fff); background: color-mix(in srgb, var(--status-red, #DC291E) 12%, #fff); color: #DC291E; color: var(--status-red, #DC291E); }
.ops-svd__status--muted { background: #F1EFF8; background: var(--background-neutral, #F1EFF8); color: #6B6890; color: var(--text-light, #6B6890); }
.ops-svd__cell-go { display: inline-flex; justify-content: flex-end; color: #B6B3CC; color: var(--text-light, #B6B3CC); }

/* Environments Center (Operations · Ambientes) — contas reais por camada de ambiente */
.ops-env {
    display: flex;
    flex-direction: column;
    gap: 14px;
    padding: 18px 22px;
    height: 100%;
    overflow: auto;
}

.ops-env__head {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 16px;
}

.ops-env__head h1 {
    display: flex;
    align-items: center;
    gap: 8px;
    margin: 0;
    font-size: 1.15rem;
    font-weight: 700;
    color: #2E1956;
    color: var(--text-default, #2E1956);
}

.ops-env__head p {
    margin: 4px 0 0;
    font-size: 0.82rem;
    color: #8684A8;
    color: var(--text-light, #8684A8);
    max-width: 720px;
}

.ops-env__refresh {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 7px 12px;
    border-radius: 8px;
    border: 1px solid #E8E5F1;
    border: 1px solid var(--border-color, #E8E5F1);
    background: #fff;
    color: #2E1956;
    color: var(--text-default, #2E1956);
    font-size: 0.8rem;
    font-weight: 600;
    cursor: pointer;
    flex-shrink: 0;
}

.ops-env__refresh:hover:not(:disabled) { border-color: #471FCC; border-color: var(--color-primary-blue, #471FCC); background: #F7F6FB; background: var(--background-neutral, #F7F6FB); }
.ops-env__refresh:disabled { opacity: .6; cursor: default; }
.is-spinning { animation: ops-env-spin 1s linear infinite; }
@keyframes ops-env-spin { to { transform: rotate(360deg); } }

/* KPIs */
.ops-env__kpis {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
    grid-gap: 10px;
    gap: 10px;
}

.ops-env__kpi {
    display: flex;
    flex-direction: column;
    gap: 3px;
    padding: 11px 14px;
    border-radius: 10px;
    border: 1px solid #E8E5F1;
    border: 1px solid var(--border-color, #E8E5F1);
    background: #fff;
}

.ops-env__kpi--prod { border-left: 3px solid #DC291E; }
.ops-env__kpi--hml { border-left: 3px solid #B7791F; }
.ops-env__kpi--dev { border-left: 3px solid #3b82f6; }
.ops-env__kpi--other { border-left: 3px solid #B6B3CC; border-left: 3px solid var(--text-light, #B6B3CC); }

.ops-env__kpi-value { font-size: 1.4rem; font-weight: 700; color: #2E1956; color: var(--text-default, #2E1956); line-height: 1; }
.ops-env__kpi-label { display: flex; align-items: center; gap: 5px; font-size: 0.72rem; color: #8684A8; color: var(--text-light, #8684A8); }

/* Tiers grid */
.ops-env__tiers {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(320px, 1fr));
    grid-gap: 12px;
    gap: 12px;
    align-items: start;
}

.ops-env__tier {
    display: flex;
    flex-direction: column;
    border: 1px solid #E8E5F1;
    border: 1px solid var(--border-color, #E8E5F1);
    border-radius: 12px;
    background: #fff;
    overflow: hidden;
}

.ops-env__tier-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 12px 14px;
    border-bottom: 1px solid #EFEDF6;
    border-bottom: 1px solid var(--border-color, #EFEDF6);
    background: #FAF9FD;
    background: var(--background-neutral, #FAF9FD);
}

.ops-env__tier-name { display: inline-flex; align-items: center; gap: 8px; font-weight: 700; font-size: 0.95rem; color: #2E1956; color: var(--text-default, #2E1956); }
.ops-env__tier-count { font-size: 0.72rem; color: #6B6890; color: var(--text-light, #6B6890); }

.ops-env__tier--prod .ops-env__tier-name { color: #B0211A; }
.ops-env__tier--hml .ops-env__tier-name { color: #8A5A12; }
.ops-env__tier--dev .ops-env__tier-name { color: #2563EB; }

.ops-env__accounts { list-style: none; margin: 0; padding: 6px; display: flex; flex-direction: column; gap: 4px; }

.ops-env__account { border-radius: 9px; border: 1px solid transparent; }
.ops-env__account.is-open { border-color: #E8E5F1; border-color: var(--border-color, #E8E5F1); background: #FAF9FD; background: var(--background-neutral, #FAF9FD); }

.ops-env__account-head {
    display: flex;
    align-items: center;
    gap: 9px;
    width: 100%;
    padding: 9px 11px;
    border: 0;
    background: transparent;
    cursor: pointer;
    text-align: left;
    border-radius: 9px;
}

.ops-env__account-head:hover { background: #F1EFF8; background: var(--background-neutral, #F1EFF8); }

.ops-env__account-name { flex: 1 1; font-weight: 600; font-size: 0.84rem; color: #2E1956; color: var(--text-default, #2E1956); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.ops-env__account-chev { color: #B6B3CC; color: var(--text-light, #B6B3CC); transition: transform .15s; }
.ops-env__account-chev.is-open { transform: rotate(90deg); }

.ops-env__account-body { padding: 4px 11px 11px; }

/* Composition */
.ops-env__comp { display: flex; flex-direction: column; gap: 8px; }
.ops-env__comp-total { display: inline-flex; align-items: center; gap: 6px; font-size: 0.82rem; color: #2E1956; color: var(--text-default, #2E1956); }
.ops-env__comp-total strong { font-size: 0.95rem; }
.ops-env__comp-block { display: flex; flex-direction: column; gap: 4px; }
.ops-env__comp-h { font-size: 0.68rem; text-transform: uppercase; letter-spacing: .03em; color: #8684A8; color: var(--text-light, #8684A8); font-weight: 700; }
.ops-env__comp-chips { display: flex; flex-wrap: wrap; gap: 5px; }
.ops-env__comp-chip {
    display: inline-flex; align-items: center; gap: 4px;
    font-size: 0.72rem; padding: 2px 8px; border-radius: 999px;
    background: #F1EFF8;
    background: var(--background-neutral, #F1EFF8); color: #6B6890; color: var(--text-light, #6B6890);
}
.ops-env__comp-chip-k { font-weight: 600; color: #2E1956; color: var(--text-default, #2E1956); }

.ops-env__estate-link {
    display: inline-flex; align-items: center; gap: 4px;
    margin-top: 8px; border: 0; background: transparent; padding: 0;
    color: #471FCC;
    color: var(--color-primary-blue, #471FCC); font-size: 0.76rem; font-weight: 600; cursor: pointer;
}
.ops-env__estate-link:hover { text-decoration: underline; }

/* Changes & Compliance section wrapper (F3.C) */
.ops-chgsec {
    display: flex;
    flex-direction: column;
    height: 100%;
    min-height: 0;
}

.ops-chgsec__tabs {
    display: flex;
    align-items: center;
    gap: 4px;
    padding: 10px 22px 0;
    border-bottom: 1px solid #E8E5F1;
    border-bottom: 1px solid var(--border-color, #E8E5F1);
    flex-shrink: 0;
}

.ops-chgsec__tab {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    padding: 9px 16px;
    border: 0;
    border-bottom: 2px solid transparent;
    background: transparent;
    color: #8684A8;
    color: var(--text-light, #8684A8);
    font-size: 0.86rem;
    font-weight: 600;
    cursor: pointer;
    margin-bottom: -1px;
}

.ops-chgsec__tab:hover { color: #2E1956; color: var(--text-default, #2E1956); }

.ops-chgsec__tab.is-active {
    color: #471FCC;
    color: var(--color-primary-blue, #471FCC);
    border-bottom-color: #471FCC;
    border-bottom-color: var(--color-primary-blue, #471FCC);
}

.ops-chgsec__body {
    flex: 1 1;
    min-height: 0;
    overflow: hidden;
}

/* Change Tracking (Operations · Mudanças) — F3.C.1 */
.ops-chg {
    display: flex;
    flex-direction: column;
    gap: 12px;
    padding: 18px 22px;
    height: 100%;
    overflow: auto;
}

.ops-chg__head { display: flex; align-items: flex-start; justify-content: space-between; gap: 16px; }
.ops-chg__head h1 { display: flex; align-items: center; gap: 8px; margin: 0; font-size: 1.15rem; font-weight: 700; color: #2E1956; color: var(--text-default, #2E1956); }
.ops-chg__head p { margin: 4px 0 0; font-size: 0.82rem; color: #8684A8; color: var(--text-light, #8684A8); }

.ops-chg__refresh {
    display: inline-flex; align-items: center; gap: 6px;
    padding: 7px 12px; border-radius: 8px; border: 1px solid #E8E5F1; border: 1px solid var(--border-color, #E8E5F1);
    background: #fff; color: #2E1956; color: var(--text-default, #2E1956); font-size: 0.8rem; font-weight: 600; cursor: pointer; flex-shrink: 0;
}
.ops-chg__refresh:hover:not(:disabled) { border-color: #471FCC; border-color: var(--color-primary-blue, #471FCC); background: #F7F6FB; background: var(--background-neutral, #F7F6FB); }
.ops-chg__refresh:disabled { opacity: .6; cursor: default; }
.is-spinning { animation: ops-chg-spin 1s linear infinite; }
@keyframes ops-chg-spin { to { transform: rotate(360deg); } }

.ops-chg__note {
    display: flex; align-items: flex-start; gap: 8px;
    padding: 9px 13px; border-radius: 9px;
    background: #F1EFF8;
    background: var(--background-neutral, #F1EFF8); color: #6B6890; color: var(--text-light, #6B6890); font-size: 0.78rem;
}
.ops-chg__note strong { color: #2E1956; color: var(--text-default, #2E1956); }

/* Toolbar */
.ops-chg__toolbar { display: flex; align-items: center; justify-content: space-between; gap: 12px; flex-wrap: wrap; }
.ops-chg__providers { display: flex; flex-wrap: wrap; gap: 8px; }
.ops-chg__prov {
    display: inline-flex; align-items: center; gap: 7px;
    padding: 7px 13px; border-radius: 999px; border: 1px solid #E8E5F1; border: 1px solid var(--border-color, #E8E5F1);
    background: #fff; color: #2E1956; color: var(--text-default, #2E1956); font-size: 0.8rem; font-weight: 600; cursor: pointer;
}
.ops-chg__prov:hover { background: #F7F6FB; background: var(--background-neutral, #F7F6FB); }
.ops-chg__prov.is-active { border-color: #471FCC; border-color: var(--color-primary-blue, #471FCC); background: color-mix(in srgb, #471FCC 8%, #fff); background: color-mix(in srgb, var(--color-primary-blue, #471FCC) 8%, #fff); }

.ops-chg__windows { display: inline-flex; align-items: center; gap: 6px; }
.ops-chg__windows-h { font-size: 0.72rem; color: #8684A8; color: var(--text-light, #8684A8); font-weight: 700; text-transform: uppercase; letter-spacing: .03em; margin-right: 2px; }
.ops-chg__win {
    padding: 5px 11px; border-radius: 7px; border: 1px solid #E8E5F1; border: 1px solid var(--border-color, #E8E5F1);
    background: #fff; color: #6B6890; color: var(--text-light, #6B6890); font-size: 0.76rem; font-weight: 600; cursor: pointer;
}
.ops-chg__win:hover { background: #F7F6FB; background: var(--background-neutral, #F7F6FB); }
.ops-chg__win.is-active { border-color: #471FCC; border-color: var(--color-primary-blue, #471FCC); color: #2E1956; color: var(--text-default, #2E1956); background: color-mix(in srgb, #471FCC 8%, #fff); background: color-mix(in srgb, var(--color-primary-blue, #471FCC) 8%, #fff); }

.ops-chg__accounts { display: flex; flex-wrap: wrap; gap: 6px; }
.ops-chg__acc {
    display: inline-flex; align-items: center; gap: 5px; max-width: 260px;
    padding: 5px 10px; border-radius: 7px; border: 1px solid #E8E5F1; border: 1px solid var(--border-color, #E8E5F1);
    background: #fff; color: #6B6890; color: var(--text-light, #6B6890); font-size: 0.74rem; font-weight: 600; cursor: pointer;
    white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
}
.ops-chg__acc.is-active { border-color: #471FCC; border-color: var(--color-primary-blue, #471FCC); color: #2E1956; color: var(--text-default, #2E1956); background: color-mix(in srgb, #471FCC 6%, #fff); background: color-mix(in srgb, var(--color-primary-blue, #471FCC) 6%, #fff); }

/* KPIs */
.ops-chg__kpis { display: grid; grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); grid-gap: 10px; gap: 10px; }
.ops-chg__kpi { display: flex; flex-direction: column; gap: 3px; padding: 11px 14px; border-radius: 10px; border: 1px solid #E8E5F1; border: 1px solid var(--border-color, #E8E5F1); background: #fff; }
.ops-chg__kpi-value { font-size: 1.3rem; font-weight: 700; color: #2E1956; color: var(--text-default, #2E1956); line-height: 1.1; }
.ops-chg__kpi-value--created { color: #1B8A63; }
.ops-chg__kpi-value--changed { color: #471FCC; color: var(--color-primary-blue, #471FCC); }
.ops-chg__kpi-value--removed { color: #DC291E; color: var(--status-red, #DC291E); }
.ops-chg__kpi-label { display: flex; align-items: center; gap: 5px; font-size: 0.72rem; color: #8684A8; color: var(--text-light, #8684A8); }

.ops-chg__truncated { margin: 0; font-size: 0.76rem; color: #DC291E; color: var(--status-red, #DC291E); }

/* Two columns */
.ops-chg__cols { display: grid; grid-template-columns: repeat(auto-fit, minmax(330px, 1fr)); grid-gap: 14px; gap: 14px; }
.ops-chg__col { display: flex; flex-direction: column; gap: 8px; }
.ops-chg__col-head {
    display: flex; align-items: center; gap: 7px;
    font-size: 0.82rem; font-weight: 700; color: #2E1956; color: var(--text-default, #2E1956);
    padding-bottom: 6px; border-bottom: 2px solid #E8E5F1; border-bottom: 2px solid var(--border-color, #E8E5F1);
}
.ops-chg__col-head--created { border-bottom-color: color-mix(in srgb, #34C38F 60%, #fff); border-bottom-color: color-mix(in srgb, var(--color-secondary-green-light, #34C38F) 60%, #fff); }
.ops-chg__col-head--changed { border-bottom-color: color-mix(in srgb, #471FCC 50%, #fff); border-bottom-color: color-mix(in srgb, var(--color-primary-blue, #471FCC) 50%, #fff); }
.ops-chg__col-head--removed { border-bottom-color: color-mix(in srgb, #DC291E 50%, #fff); border-bottom-color: color-mix(in srgb, var(--status-red, #DC291E) 50%, #fff); }
.ops-chg__col-count { margin-left: auto; font-size: 0.72rem; font-weight: 700; color: #8684A8; color: var(--text-light, #8684A8); background: #F1EFF8; background: var(--background-neutral, #F1EFF8); border-radius: 999px; padding: 1px 9px; }

.ops-chg__list { display: flex; flex-direction: column; border: 1px solid #E8E5F1; border: 1px solid var(--border-color, #E8E5F1); border-radius: 10px; overflow: hidden; }
.ops-chg__row {
    display: grid; grid-template-columns: minmax(0, 2fr) minmax(90px, 1.2fr) minmax(80px, 1fr) 86px 28px;
    align-items: center; grid-gap: 10px; gap: 10px; padding: 9px 12px; text-align: left;
    border: 0; border-top: 1px solid #EFEDF6; border-top: 1px solid var(--border-color, #EFEDF6); background: #fff;
    cursor: pointer; font-size: 0.8rem; color: #2E1956; color: var(--text-default, #2E1956); transition: background .12s; width: 100%;
}
.ops-chg__row:first-child { border-top: 0; }
.ops-chg__row:hover { background: #F7F6FB; background: var(--background-neutral, #F7F6FB); }
.ops-chg__row-name { display: inline-flex; align-items: center; gap: 8px; min-width: 0; }
.ops-chg__name { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-weight: 600; }
.ops-chg__row-type, .ops-chg__row-region { color: #6B6890; color: var(--text-light, #6B6890); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.ops-chg__row-region { display: inline-flex; align-items: center; gap: 4px; }
.ops-chg__row-age { color: #8684A8; color: var(--text-light, #8684A8); font-size: 0.74rem; white-space: nowrap; }
.ops-chg__row-go { display: inline-flex; justify-content: flex-end; color: #B6B3CC; color: var(--text-light, #B6B3CC); }

/* Compliance View (Operations · Conformidade de configuração) — F3.C.2 */
.ops-cmp {
    display: flex;
    flex-direction: column;
    gap: 12px;
    padding: 18px 22px;
    height: 100%;
    overflow: auto;
}

.ops-cmp__head { display: flex; align-items: flex-start; justify-content: space-between; gap: 16px; }
.ops-cmp__head h1 { display: flex; align-items: center; gap: 8px; margin: 0; font-size: 1.15rem; font-weight: 700; color: #2E1956; color: var(--text-default, #2E1956); }
.ops-cmp__head p { margin: 4px 0 0; font-size: 0.82rem; color: #8684A8; color: var(--text-light, #8684A8); }

.ops-cmp__refresh {
    display: inline-flex; align-items: center; gap: 6px;
    padding: 7px 12px; border-radius: 8px; border: 1px solid #E8E5F1; border: 1px solid var(--border-color, #E8E5F1);
    background: #fff; color: #2E1956; color: var(--text-default, #2E1956); font-size: 0.8rem; font-weight: 600; cursor: pointer; flex-shrink: 0;
}
.ops-cmp__refresh:hover:not(:disabled) { border-color: #471FCC; border-color: var(--color-primary-blue, #471FCC); background: #F7F6FB; background: var(--background-neutral, #F7F6FB); }
.ops-cmp__refresh:disabled { opacity: .6; cursor: default; }
.is-spinning { animation: ops-cmp-spin 1s linear infinite; }
@keyframes ops-cmp-spin { to { transform: rotate(360deg); } }

.ops-cmp__azure {
    display: flex; align-items: center; gap: 8px;
    padding: 8px 13px; border-radius: 9px;
    background: color-mix(in srgb, #0078D4 7%, #fff); border: 1px solid color-mix(in srgb, #0078D4 18%, #fff);
    color: #6B6890;
    color: var(--text-light, #6B6890); font-size: 0.78rem;
}
.ops-cmp__azure strong { color: #2E1956; color: var(--text-default, #2E1956); }

/* KPIs */
.ops-cmp__kpis { display: grid; grid-template-columns: repeat(auto-fit, minmax(160px, 1fr)); grid-gap: 10px; gap: 10px; }
.ops-cmp__kpi { display: flex; flex-direction: column; gap: 3px; padding: 11px 14px; border-radius: 10px; border: 1px solid #E8E5F1; border: 1px solid var(--border-color, #E8E5F1); background: #fff; }
.ops-cmp__kpi-value { font-size: 1.3rem; font-weight: 700; color: #2E1956; color: var(--text-default, #2E1956); line-height: 1.1; }
.ops-cmp__kpi-value--danger { color: #DC291E; color: var(--status-red, #DC291E); }
.ops-cmp__kpi-label { display: flex; align-items: center; gap: 5px; font-size: 0.72rem; color: #8684A8; color: var(--text-light, #8684A8); }

.ops-cmp__truncated { margin: 0; font-size: 0.76rem; color: #DC291E; color: var(--status-red, #DC291E); }

/* Groups */
.ops-cmp__groups { display: flex; flex-direction: column; gap: 8px; }
.ops-cmp__group { border: 1px solid #E8E5F1; border: 1px solid var(--border-color, #E8E5F1); border-radius: 10px; overflow: hidden; background: #fff; }
.ops-cmp__group.is-open { border-color: color-mix(in srgb, #471FCC 30%, #fff); border-color: color-mix(in srgb, var(--color-primary-blue, #471FCC) 30%, #fff); }
.ops-cmp__group-head {
    display: flex; align-items: center; gap: 9px; width: 100%;
    padding: 11px 14px; border: 0; background: #fff; cursor: pointer; text-align: left;
    font-size: 0.84rem; font-weight: 600; color: #2E1956; color: var(--text-default, #2E1956);
}
.ops-cmp__group-head:hover { background: #F7F6FB; background: var(--background-neutral, #F7F6FB); }
.ops-cmp__chev { transition: transform .15s; color: #8684A8; color: var(--text-light, #8684A8); flex-shrink: 0; }
.ops-cmp__chev.is-open { transform: rotate(180deg); }
.ops-cmp__group-name { flex: 1 1; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.ops-cmp__action { font-size: 0.68rem; font-weight: 700; text-transform: uppercase; letter-spacing: .03em; padding: 2px 8px; border-radius: 999px; }
.ops-cmp__action--deny { background: color-mix(in srgb, #DC291E 12%, #fff); background: color-mix(in srgb, var(--status-red, #DC291E) 12%, #fff); color: #DC291E; color: var(--status-red, #DC291E); }
.ops-cmp__action--audit { background: color-mix(in srgb, #E2A100 16%, #fff); color: #9A6E00; }
.ops-cmp__action--other { background: #F1EFF8; background: var(--background-neutral, #F1EFF8); color: #6B6890; color: var(--text-light, #6B6890); }
.ops-cmp__group-count { font-size: 0.74rem; font-weight: 700; color: #2E1956; color: var(--text-default, #2E1956); background: #F1EFF8; background: var(--background-neutral, #F1EFF8); border-radius: 999px; padding: 1px 10px; min-width: 30px; text-align: center; }

.ops-cmp__rows { display: flex; flex-direction: column; border-top: 1px solid #EFEDF6; border-top: 1px solid var(--border-color, #EFEDF6); }
.ops-cmp__row {
    display: grid; grid-template-columns: minmax(0, 2fr) minmax(110px, 1.2fr) minmax(100px, 1fr) minmax(90px, 1fr) 28px;
    align-items: center; grid-gap: 10px; gap: 10px; padding: 8px 14px 8px 36px; text-align: left;
    border: 0; border-top: 1px solid #F2F0F8; border-top: 1px solid var(--border-color, #F2F0F8); background: #fff;
    cursor: pointer; font-size: 0.8rem; color: #2E1956; color: var(--text-default, #2E1956); transition: background .12s; width: 100%;
}
.ops-cmp__row:first-child { border-top: 0; }
.ops-cmp__row:hover { background: #F7F6FB; background: var(--background-neutral, #F7F6FB); }
.ops-cmp__row-name { display: inline-flex; align-items: center; gap: 8px; min-width: 0; }
.ops-cmp__name { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-weight: 600; }
.ops-cmp__row-type, .ops-cmp__row-rg, .ops-cmp__row-region { color: #6B6890; color: var(--text-light, #6B6890); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.ops-cmp__row-region { display: inline-flex; align-items: center; gap: 4px; }
.ops-cmp__row-go { display: inline-flex; justify-content: flex-end; color: #B6B3CC; color: var(--text-light, #B6B3CC); }

.ops-cmp__note {
    display: flex; align-items: flex-start; gap: 8px;
    padding: 9px 13px; border-radius: 9px;
    background: #F1EFF8;
    background: var(--background-neutral, #F1EFF8); color: #6B6890; color: var(--text-light, #6B6890); font-size: 0.78rem;
}
.ops-cmp__note strong { color: #2E1956; color: var(--text-default, #2E1956); }

/* Deployments View (Operations · Histórico de implantações) — F3.B.1 */
.ops-dep {
    display: flex;
    flex-direction: column;
    gap: 12px;
    padding: 18px 22px;
    height: 100%;
    overflow: auto;
}

.ops-dep__head { display: flex; align-items: flex-start; justify-content: space-between; gap: 16px; }
.ops-dep__head h1 { display: flex; align-items: center; gap: 8px; margin: 0; font-size: 1.15rem; font-weight: 700; color: #2E1956; color: var(--text-default, #2E1956); }
.ops-dep__head p { margin: 4px 0 0; font-size: 0.82rem; color: #8684A8; color: var(--text-light, #8684A8); }

.ops-dep__refresh {
    display: inline-flex; align-items: center; gap: 6px;
    padding: 7px 12px; border-radius: 8px; border: 1px solid #E8E5F1; border: 1px solid var(--border-color, #E8E5F1);
    background: #fff; color: #2E1956; color: var(--text-default, #2E1956); font-size: 0.8rem; font-weight: 600; cursor: pointer; flex-shrink: 0;
}
.ops-dep__refresh:hover:not(:disabled) { border-color: #471FCC; border-color: var(--color-primary-blue, #471FCC); background: #F7F6FB; background: var(--background-neutral, #F7F6FB); }
.ops-dep__refresh:disabled { opacity: .6; cursor: default; }
.ops-dep .is-spinning { animation: ops-dep-spin 1s linear infinite; }
@keyframes ops-dep-spin { to { transform: rotate(360deg); } }

.ops-dep__azure {
    display: flex; align-items: center; gap: 8px;
    padding: 8px 13px; border-radius: 9px;
    background: color-mix(in srgb, #0078D4 7%, #fff); border: 1px solid color-mix(in srgb, #0078D4 18%, #fff);
    color: #6B6890;
    color: var(--text-light, #6B6890); font-size: 0.78rem;
}
.ops-dep__azure strong { color: #2E1956; color: var(--text-default, #2E1956); }

/* KPIs */
.ops-dep__kpis { display: grid; grid-template-columns: repeat(auto-fit, minmax(160px, 1fr)); grid-gap: 10px; gap: 10px; }
.ops-dep__kpi { display: flex; flex-direction: column; gap: 3px; padding: 11px 14px; border-radius: 10px; border: 1px solid #E8E5F1; border: 1px solid var(--border-color, #E8E5F1); background: #fff; }
.ops-dep__kpi-value { font-size: 1.3rem; font-weight: 700; color: #2E1956; color: var(--text-default, #2E1956); line-height: 1.1; }
.ops-dep__kpi-label { display: flex; align-items: center; gap: 5px; font-size: 0.72rem; color: #8684A8; color: var(--text-light, #8684A8); }

.ops-dep__truncated { margin: 0; font-size: 0.76rem; color: #DC291E; color: var(--status-red, #DC291E); }

/* Groups (por resource group) */
.ops-dep__groups { display: flex; flex-direction: column; gap: 8px; }
.ops-dep__group { border: 1px solid #E8E5F1; border: 1px solid var(--border-color, #E8E5F1); border-radius: 10px; overflow: hidden; background: #fff; }
.ops-dep__group.is-open { border-color: color-mix(in srgb, #471FCC 30%, #fff); border-color: color-mix(in srgb, var(--color-primary-blue, #471FCC) 30%, #fff); }
.ops-dep__group-head {
    display: flex; align-items: center; gap: 9px; width: 100%;
    padding: 11px 14px; border: 0; background: #fff; cursor: pointer; text-align: left;
    font-size: 0.84rem; font-weight: 600; color: #2E1956; color: var(--text-default, #2E1956);
}
.ops-dep__group-head:hover { background: #F7F6FB; background: var(--background-neutral, #F7F6FB); }
.ops-dep__chev { transition: transform .15s; color: #8684A8; color: var(--text-light, #8684A8); flex-shrink: 0; }
.ops-dep__chev.is-open { transform: rotate(180deg); }
.ops-dep__group-name { flex: 1 1; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.ops-dep__group-count { font-size: 0.74rem; font-weight: 700; color: #2E1956; color: var(--text-default, #2E1956); background: #F1EFF8; background: var(--background-neutral, #F1EFF8); border-radius: 999px; padding: 1px 10px; min-width: 30px; text-align: center; }

.ops-dep__rows { display: flex; flex-direction: column; border-top: 1px solid #EFEDF6; border-top: 1px solid var(--border-color, #EFEDF6); }
.ops-dep__row {
    display: grid; grid-template-columns: minmax(0, 2fr) minmax(96px, 0.9fr) minmax(80px, 0.7fr) minmax(140px, 1.1fr) minmax(96px, 0.8fr);
    align-items: center; grid-gap: 10px; gap: 10px; padding: 8px 14px 8px 36px; text-align: left;
    border-top: 1px solid #F2F0F8;
    border-top: 1px solid var(--border-color, #F2F0F8); background: #fff;
    font-size: 0.8rem; color: #2E1956; color: var(--text-default, #2E1956); width: 100%;
}
.ops-dep__row:first-child { border-top: 0; }
.ops-dep__row-name { display: inline-flex; align-items: center; gap: 8px; min-width: 0; }
.ops-dep__name { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-weight: 600; }

.ops-dep__state { font-size: 0.68rem; font-weight: 700; text-transform: uppercase; letter-spacing: .03em; padding: 2px 8px; border-radius: 999px; text-align: center; }
.ops-dep__state--ok { background: color-mix(in srgb, #1E9E5A 14%, #fff); color: #157A45; }
.ops-dep__state--danger { background: color-mix(in srgb, #DC291E 12%, #fff); background: color-mix(in srgb, var(--status-red, #DC291E) 12%, #fff); color: #DC291E; color: var(--status-red, #DC291E); }
.ops-dep__state--progress { background: color-mix(in srgb, #0078D4 12%, #fff); color: #0060AA; }
.ops-dep__state--other { background: #F1EFF8; background: var(--background-neutral, #F1EFF8); color: #6B6890; color: var(--text-light, #6B6890); }

.ops-dep__mode { font-size: 0.72rem; color: #6B6890; color: var(--text-light, #6B6890); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.ops-dep__row-ts { display: inline-flex; align-items: center; gap: 4px; color: #6B6890; color: var(--text-light, #6B6890); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }

.ops-dep__row-targets {
    display: inline-flex; align-items: center; gap: 4px; justify-content: flex-end;
    border: 0; background: transparent; cursor: pointer;
    font-size: 0.76rem; font-weight: 600; color: #471FCC; color: var(--color-primary-blue, #471FCC);
}
.ops-dep__row-targets:hover { text-decoration: underline; }

.ops-dep__note {
    display: flex; align-items: flex-start; gap: 8px;
    padding: 9px 13px; border-radius: 9px;
    background: #F1EFF8;
    background: var(--background-neutral, #F1EFF8); color: #6B6890; color: var(--text-light, #6B6890); font-size: 0.78rem;
}
.ops-dep__note strong { color: #2E1956; color: var(--text-default, #2E1956); }
.ops-dep__note em { font-style: normal; font-family: monospace; color: #2E1956; color: var(--text-default, #2E1956); }

/* Badge de provedor (Azure / AWS / GCP / OCI) */
.ops-dep__provider {
    flex-shrink: 0; font-size: 0.64rem; font-weight: 800; text-transform: uppercase; letter-spacing: .03em;
    padding: 2px 7px; border-radius: 6px; line-height: 1.4; white-space: nowrap;
    background: #F1EFF8;
    background: var(--background-neutral, #F1EFF8); color: #6B6890; color: var(--text-light, #6B6890);
    border: 1px solid transparent;
}
.ops-dep__provider--azure { background: color-mix(in srgb, #0078D4 12%, #fff); color: #0060AA; border-color: color-mix(in srgb, #0078D4 22%, #fff); }
.ops-dep__provider--aws   { background: color-mix(in srgb, #FF9900 16%, #fff); color: #B36B00; border-color: color-mix(in srgb, #FF9900 30%, #fff); }
.ops-dep__provider--gcp   { background: color-mix(in srgb, #4285F4 12%, #fff); color: #1A63D6; border-color: color-mix(in srgb, #4285F4 24%, #fff); }
.ops-dep__provider--oci   { background: color-mix(in srgb, #C74634 12%, #fff); color: #A5372A; border-color: color-mix(in srgb, #C74634 24%, #fff); }

/* Activity Explorer (Operations). Prefixo: ops-act */

.ops-act { max-width: 1000px; margin: 0 auto; }

.ops-act__head { display: flex; align-items: flex-start; justify-content: space-between; gap: 16px; margin-bottom: 16px; }
.ops-act__head h1 { font-size: 21px; margin: 0 0 4px; color: #2E1956; color: var(--text-default, #2E1956); }
.ops-act__head p { font-size: 13px; color: #6B6F7D; color: var(--text-dark, #6B6F7D); margin: 0; }
.ops-act__refresh {
    display: inline-flex; align-items: center; gap: 6px; height: 34px; padding: 0 12px; border-radius: 8px;
    font-size: 12.5px; cursor: pointer; border: 1px solid #E2E6F3; border: 1px solid var(--line-default, #E2E6F3);
    background: #fff;
    background: var(--background-white, #fff); color: #2E1956; color: var(--text-default, #2E1956);
}
.ops-act__refresh:disabled { opacity: 0.6; cursor: default; }
.is-spinning { animation: ops-act-spin 0.9s linear infinite; }
@keyframes ops-act-spin { to { transform: rotate(360deg); } }

/* Cobertura por nuvem */
.ops-act__coverage { display: grid; grid-template-columns: repeat(4, 1fr); grid-gap: 12px; gap: 12px; margin-bottom: 16px; }
.ops-act__cov {
    display: flex; flex-direction: column; gap: 6px; padding: 13px 16px; border-radius: 11px;
    border: 1px solid #E2E6F3;
    border: 1px solid var(--line-default, #E2E6F3); background: #fff; background: var(--background-white, #fff);
    cursor: pointer; text-align: left; transition: all 0.15s ease;
}
.ops-act__cov:hover:not(:disabled) { border-color: #9FA3FF; border-color: var(--color-secondary-purple-bright, #9FA3FF); }
.ops-act__cov.is-active { border-color: #471FCC; border-color: var(--color-primary-blue, #471FCC); box-shadow: 0 0 0 1px #471FCC; box-shadow: 0 0 0 1px var(--color-primary-blue, #471FCC); }
.ops-act__cov.is-pending { opacity: 0.7; cursor: default; border-style: dashed; }
.ops-act__cov-prov { display: inline-flex; align-items: center; gap: 7px; font-size: 14px; font-weight: 700; color: #2E1956; color: var(--text-default, #2E1956); }
.ops-act__cov-meta { display: flex; flex-direction: column; font-size: 12px; color: #6B6F7D; color: var(--text-dark, #6B6F7D); }
.ops-act__cov-meta strong { font-size: 18px; color: #2E1956; color: var(--text-default, #2E1956); }
.ops-act__cov-source { font-size: 10.5px; color: #8B90A3; color: var(--text-light, #8B90A3); }
.ops-act__cov-pending { display: inline-flex; align-items: center; gap: 4px; font-size: 11px; color: #8B90A3; color: var(--text-light, #8B90A3); }

/* KPIs */
.ops-act__kpis { display: flex; gap: 12px; margin-bottom: 18px; flex-wrap: wrap; }
.ops-act__kpi {
    display: flex; flex-direction: column; min-width: 86px; padding: 11px 16px; border-radius: 10px;
    background: #fff;
    background: var(--background-white, #fff); border: 1px solid #E2E6F3; border: 1px solid var(--line-default, #E2E6F3);
    border-left-width: 3px; border-left-color: #9196A7; border-left-color: var(--line-dark, #9196A7);
    font-size: 11px; color: #6B6F7D; color: var(--text-dark, #6B6F7D); text-transform: uppercase; letter-spacing: 0.04em;
}
.ops-act__kpi span { font-size: 22px; font-weight: 700; color: #2E1956; color: var(--text-default, #2E1956); text-transform: none; letter-spacing: 0; line-height: 1.1; }
.ops-act__kpi.is-error { border-left-color: #DC291E; border-left-color: var(--status-red, #DC291E); }
.ops-act__kpi.is-warn { border-left-color: #D69E2E; }

/* Timeline */
.ops-act__timeline { display: flex; flex-direction: column; gap: 18px; }
.ops-act__day-label { font-size: 12px; font-weight: 700; color: #6B6F7D; color: var(--text-dark, #6B6F7D); text-transform: uppercase; letter-spacing: 0.04em; margin-bottom: 8px; }
.ops-act__events { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 6px; }
.ops-act__event {
    display: flex; align-items: center; gap: 11px; padding: 10px 12px; border-radius: 9px;
    background: #fff;
    background: var(--background-white, #fff); border: 1px solid #E2E6F3; border: 1px solid var(--line-default, #E2E6F3);
}
.ops-act__event.is-clickable { cursor: pointer; transition: all 0.15s ease; }
.ops-act__event.is-clickable:hover { border-color: #9FA3FF; border-color: var(--color-secondary-purple-bright, #9FA3FF); }
.ops-act__level { flex: 0 0 auto; display: inline-flex; }
.ops-act__event-body { flex: 1 1; min-width: 0; }
.ops-act__event-action { display: flex; align-items: center; gap: 7px; font-size: 13px; font-weight: 500; color: #2E1956; color: var(--text-default, #2E1956); }
.ops-act__event-action span { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.ops-act__event-sub { display: flex; align-items: center; gap: 6px; font-size: 11.5px; color: #6B6F7D; color: var(--text-dark, #6B6F7D); margin-top: 3px; }
.ops-act__actor { font-weight: 600; }
.ops-act__target { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; max-width: 360px; font-family: 'SF Mono', Menlo, Consolas, monospace; font-size: 11px; }
.ops-act__dot { color: #9196A7; color: var(--line-dark, #9196A7); }
.ops-act__time { font-size: 12px; color: #8B90A3; color: var(--text-light, #8B90A3); white-space: nowrap; }
.ops-act__chev { color: #9196A7; color: var(--line-dark, #9196A7); flex: 0 0 auto; }

@media (max-width: 600px) {
    .ops-act__target { max-width: 140px; }
}

