/* Identidade visual: marca OrbiMove (docs/brand/ — manual de identidade v1.0, 23/10/2026) sobre o tema escuro
   do Bootstrap. TODA cor e família de fonte do app vem destas variáveis: um tema novo (ex.: claro) redefine
   só este bloco. Variáveis *-rgb existem para cores com transparência: rgba(var(--orbi-destaque-rgb), .2).
   Fonte Poppins servida localmente (a CSP só aceita arquivos do próprio app). */
@font-face { font-family: Poppins; font-weight: 400; font-display: swap; src: url(fontes/Poppins-Regular.ttf) format("truetype"); }
@font-face { font-family: Poppins; font-weight: 500; font-display: swap; src: url(fontes/Poppins-Medium.ttf) format("truetype"); }
@font-face { font-family: Poppins; font-weight: 600; font-display: swap; src: url(fontes/Poppins-SemiBold.ttf) format("truetype"); }
@font-face { font-family: Poppins; font-weight: 700; font-display: swap; src: url(fontes/Poppins-Bold.ttf) format("truetype"); }

:root, [data-bs-theme="dark"] {
    /* Tipografia */
    --orbi-fonte: Poppins, system-ui, -apple-system, "Segoe UI", sans-serif;
    --orbi-fonte-mono: ui-monospace, SFMono-Regular, Menlo, monospace;
    /* Superfícies (do fundo para cima) */
    --orbi-fundo: #08131f;
    --orbi-fundo-rgb: 8, 19, 31;
    --orbi-lateral: #0d1c2d;
    --orbi-lateral-rgb: 13, 28, 45;
    --orbi-card: #11233a;
    --orbi-campo: #0a1726;
    --orbi-superficie-1: #111c30;
    --orbi-superficie-2: #18263e;
    --orbi-superficie-3: #1a2639;
    --orbi-nota-fundo: #172f3b;
    /* Linhas e bordas */
    --orbi-borda: #1e3550;
    --orbi-borda-forte: #2a4563;
    --orbi-linha-suave: #22314a;
    --orbi-linha: #293a53;
    --orbi-linha-tabela: #2b3b53;
    --orbi-linha-forte: #3b4b64;
    --orbi-btn-borda: #334660;
    --orbi-chip-borda: #2c3d58;
    /* Textos */
    --orbi-texto: #eef0f2;
    --orbi-suave: #9fb0c6;
    --orbi-texto-campo: #e9f3ff;
    --orbi-texto-botao: #eaf4ff;
    --orbi-texto-chip: #cfdaea;
    --orbi-texto-cartao: #d6e2f3;
    --orbi-texto-rotulo: #a9b9d1;
    --orbi-texto-tabela-cabecalho: #92a4c2;
    --orbi-texto-vazio: #9cabc2;
    --orbi-texto-terciario: #8e9fbb;
    --orbi-texto-rotina-rotulo: #8191b1;
    --orbi-texto-mudo: #7f8fab;
    --orbi-texto-menu-titulo: #6f80a0;
    --orbi-texto-icone: #9fc3e6;
    --orbi-nota-texto: #bed5dd;
    --orbi-auth-lead: #cfdcef;
    --orbi-auth-lista: #e3ecf8;
    --orbi-auth-confianca: #c3cfe2;
    /* Marca */
    --orbi-destaque: #02c59d;
    --orbi-destaque-rgb: 2, 197, 157;
    --orbi-destaque-escuro: #01866b;
    --orbi-destaque-texto: #0d1c2d;
    --orbi-ativo: #33d6b1;
    --orbi-ativo-rgb: 51, 214, 177;
    --orbi-ativo-fundo: #10333f;
    --orbi-pill-fundo: #133744;
    /* Gráficos e mapa do corpo */
    --orbi-grafico-eixo: #34455c;
    --orbi-mapa-corpo: #2a3a55;
    --orbi-mapa-area: #3a4d68;
    --orbi-mapa-area-hover: #4f7f86;
    --orbi-calor-1: #facc15;
    --orbi-calor-2: #fb923c;
    --orbi-calor-3: #f97316;
    --orbi-calor-4: #ef4444;
    /* Estados */
    --orbi-sucesso: #34d399;
    --orbi-sucesso-rgb: 52, 211, 153;
    --orbi-sucesso-claro: #6ee7b7;
    --orbi-sucesso-texto: #a7f3d0;
    --orbi-aviso: #fbbf24;
    --orbi-aviso-rgb: 251, 191, 36;
    --orbi-aviso-alt: #f0b94a;
    --orbi-aviso-alt-rgb: 240, 185, 74;
    --orbi-aviso-medio: #fcd34d;
    --orbi-aviso-claro: #fde68a;
    --orbi-aviso-texto-escuro: #2a1c00;
    --orbi-perigo: #f87171;
    --orbi-perigo-rgb: 248, 113, 113;
    --orbi-perigo-claro: #fca5a5;
    --orbi-perigo-texto: #fecaca;
    --orbi-perigo-erro: #f2777a;
    --orbi-perigo-gradiente-inicio: #c2373b;
    --orbi-perigo-gradiente-fim: #8f1f24;
    --orbi-info: #7dd3fc;
    --orbi-info-rgb: 125, 211, 252;
    --orbi-info-forte-rgb: 56, 189, 248;
    --orbi-neutro: #94a3b8;
    --orbi-neutro-rgb: 148, 163, 184;
    --orbi-neutro-claro: #cbd5e1;
    --orbi-neutro-escuro: #64748b;
    /* Modalidades */
    --orbi-mod-musculacao: #4f46e5;
    --orbi-mod-jiu-jitsu: #0f766e;
    --orbi-mod-caminhada: #16a34a;
    --orbi-mod-corrida: #ea580c;
    --orbi-mod-condicionamento: #dc2626;
    /* Objetivos das rotinas (capas) */
    --orbi-obj-hipertrofia: #5b3fd8;
    --orbi-obj-forca: #1e293b;
    --orbi-obj-emagrecimento: #dc4a1f;
    --orbi-obj-condicionamento: #0f7a5f;
    --orbi-obj-lutas: #134e8a;
    /* Base */
    --orbi-branco: #fff;
    --orbi-branco-rgb: 255, 255, 255;
    --orbi-preto: #000;
    --orbi-sombra-rgb: 0, 0, 0;
}

/* Tema claro (menu da conta: Claro, ou Automático com o aparelho no claro). Menu lateral, barra do topo e a coluna de
   apresentação do login continuam no marinho — eles têm data-bs-theme="dark" e voltam a usar o bloco acima.
   Verde e cores de estado escurecem para manter contraste sobre branco (texto verde: #01866b, 4,5:1). */
[data-bs-theme="light"] {
    /* Superfícies */
    --orbi-fundo: #f3f5f8;
    --orbi-fundo-rgb: 243, 245, 248;
    --orbi-card: #ffffff;
    --orbi-campo: #ffffff;
    --orbi-superficie-1: #f6f8fb;
    --orbi-superficie-2: #eef2f7;
    --orbi-superficie-3: #e8edf4;
    --orbi-nota-fundo: #e6f6f1;
    /* Linhas e bordas */
    --orbi-borda: #dfe5ee;
    --orbi-borda-forte: #c7d1de;
    --orbi-linha-suave: #e8edf3;
    --orbi-linha: #e1e7ef;
    --orbi-linha-tabela: #e1e7ef;
    --orbi-linha-forte: #c7d1de;
    --orbi-btn-borda: #c7d1de;
    --orbi-chip-borda: #d3dbe6;
    /* Textos */
    --orbi-texto: #0d1c2d;
    --orbi-suave: #526072;
    --orbi-texto-campo: #0d1c2d;
    --orbi-texto-botao: #0d1c2d;
    --orbi-texto-chip: #334155;
    --orbi-texto-cartao: #334155;
    --orbi-texto-rotulo: #475467;
    --orbi-texto-tabela-cabecalho: #526072;
    --orbi-texto-vazio: #667085;
    --orbi-texto-terciario: #667085;
    --orbi-texto-rotina-rotulo: #667085;
    --orbi-texto-mudo: #667085;
    --orbi-texto-icone: #01866b;
    --orbi-nota-texto: #1f3b35;
    /* Marca */
    --orbi-destaque-escuro: #016b56;
    --orbi-ativo: #01866b;
    --orbi-ativo-rgb: 1, 134, 107;
    --orbi-ativo-fundo: #e3f6f0;
    --orbi-pill-fundo: #e3f6f0;
    /* Gráficos e mapa do corpo */
    --orbi-grafico-eixo: #c7d1de;
    --orbi-mapa-corpo: #dfe5ee;
    --orbi-mapa-area: #c3cddb;
    --orbi-mapa-area-hover: #8fcabd;
    /* Estados */
    --orbi-sucesso: #047857;
    --orbi-sucesso-rgb: 4, 120, 87;
    --orbi-sucesso-claro: #047857;
    --orbi-sucesso-texto: #065f46;
    --orbi-aviso: #b45309;
    --orbi-aviso-rgb: 217, 119, 6;
    --orbi-aviso-alt: #b45309;
    --orbi-aviso-alt-rgb: 217, 119, 6;
    --orbi-aviso-medio: #b45309;
    --orbi-aviso-claro: #92400e;
    --orbi-perigo: #dc2626;
    --orbi-perigo-rgb: 220, 38, 38;
    --orbi-perigo-claro: #b91c1c;
    --orbi-perigo-texto: #991b1b;
    --orbi-perigo-erro: #dc2626;
    --orbi-info: #0369a1;
    --orbi-info-rgb: 3, 105, 161;
    --orbi-info-forte-rgb: 2, 132, 199;
    --orbi-neutro: #64748b;
    --orbi-neutro-rgb: 100, 116, 139;
    --orbi-neutro-claro: #475569;
}

/* Logo com uma versão por tema (cartão do login): só a do tema atual aparece */
[data-bs-theme="dark"] .orbi-so-claro, [data-bs-theme="light"] .orbi-so-escuro { display: none; }

/* Seletor de tema (menu da conta) */
.orbi-tema { padding: 8px 12px 10px; border-bottom: 1px solid var(--orbi-borda); }
.orbi-tema small { display: block; font-size: .72rem; letter-spacing: .08em; text-transform: uppercase; color: var(--orbi-suave); margin-bottom: 6px; }
.orbi-tema-opcoes { display: flex; gap: 4px; }
.orbi-tema-opcoes button { flex: 1 1 0; display: flex; flex-direction: column; align-items: center; gap: 4px; padding: 7px 4px;
    border: 1px solid var(--orbi-borda); border-radius: 8px; background: transparent; color: var(--orbi-suave); font-size: .75rem; }
.orbi-tema-opcoes button:hover { color: var(--orbi-texto); border-color: var(--orbi-borda-forte); }
.orbi-tema-opcoes button.ativo { color: var(--orbi-ativo); border-color: var(--orbi-destaque); background: var(--orbi-ativo-fundo); }

/* Bootstrap lê as mesmas variáveis em qualquer tema (inclusive em trechos marcados como escuros) */
:root, [data-bs-theme] {
    --bs-body-bg: var(--orbi-fundo);
    --bs-body-color: var(--orbi-texto);
    --bs-border-color: var(--orbi-borda-forte);
    --bs-secondary-color: var(--orbi-suave);
    --bs-body-font-family: var(--orbi-fonte);
}

body {
    background: var(--orbi-fundo);
}

a {
    color: var(--orbi-ativo);
}

.min-w-0 {
    min-width: 0;
}

/* ---------- Menu lateral ---------- */
.orbi-aside {
    position: fixed;
    inset: 0 auto 0 0;
    width: 244px;
    background: var(--orbi-lateral);
    border-right: 1px solid var(--orbi-borda);
    padding: 26px 16px;
    display: flex;
    flex-direction: column;
    gap: 25px;
    z-index: 10;
    overflow-y: auto; /* menu longo: rola, e o "Sair" continua alcançável */
}

.orbi-logo {
    display: block;
    font-weight: 850;
    font-size: 26px;
    letter-spacing: -1px;
    padding: 0 12px;
    color: var(--orbi-texto);
    text-decoration: none;
}

.orbi-logo span {
    color: var(--orbi-destaque);
}

.orbi-logo small {
    display: block;
    font-size: 11px;
    font-weight: 500;
    letter-spacing: .5px;
    color: var(--orbi-suave);
    margin-top: 3px;
}

.orbi-logo-login {
    font-size: 32px;
}

/* Logotipo da marca (arquivos de /icones/marca, versão escura — todos os fundos do app são escuros) */
.orbi-logo img { display: block; height: 40px; width: auto; }
.orbi-topbar-marca img { display: block; height: 28px; width: auto; }
.orbi-auth-logo { display: block; height: 104px; width: auto; margin: 0 auto; }

.orbi-nav {
    display: grid;
    gap: 6px;
}

.orbi-nav a,
.orbi-sair button {
    display: flex;
    align-items: center;
    gap: 10px;
    border: 0;
    background: none;
    color: var(--orbi-suave);
    text-decoration: none;
    border-radius: 11px;
    padding: 13px 15px;
    width: 100%;
    text-align: left;
}

.orbi-nav a i,
.orbi-sair i {
    width: 18px;
    text-align: center;
}

.orbi-nav a b,
.orbi-sair b {
    font-weight: 500;
}

.orbi-nav a.active,
.orbi-nav a:hover,
.orbi-sair button:hover {
    background: var(--orbi-ativo-fundo);
    color: var(--orbi-ativo);
}

.orbi-sair {
    margin-top: auto;
}

/* ---------- Área principal ---------- */
.orbi-main {
    margin-left: 244px;
    padding: 32px;
    padding-top: calc(var(--orbi-topbar-altura) + 28px); /* abaixo da topbar fixa */
    /* Sem max-width: a área ocupa toda a largura livre. Com o teto (1456px, e 1680px no orbi-main-largo),
       sobrava uma faixa vazia à direita em monitor largo. */
}

/* ---------- Topbar (quem está logado, fixo no alto à direita, como no Avizuaí) ---------- */
:root { --orbi-topbar-altura: 64px; }
.orbi-topbar {
    position: fixed; top: 0; left: 244px; right: 0; height: var(--orbi-topbar-altura); z-index: 30;
    display: flex; align-items: center; justify-content: flex-end; gap: 12px; padding: 0 32px;
    background: rgba(var(--orbi-fundo-rgb), .92); backdrop-filter: blur(8px); border-bottom: 1px solid var(--orbi-borda);
}
.orbi-topbar .orbi-conta { margin-top: 0; }
.orbi-topbar .orbi-usuario { margin-top: 0; padding: 7px 12px; max-width: 320px; }
.orbi-topbar .orbi-sair { margin-top: 0; }

.orbi-top {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 12px;
    margin-bottom: 26px;
}

.orbi-top h1 {
    margin: 5px 0 7px;
    font-size: 30px;
    font-weight: 700;
    letter-spacing: -.8px;
}

.orbi-top p,
.orbi-muted {
    color: var(--orbi-suave);
    margin: 0;
}

.orbi-muted {
    font-size: 13px;
}

.orbi-eyebrow {
    color: var(--orbi-ativo);
    font-size: 12px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 1.5px;
}

.orbi-actions {
    display: flex;
    gap: 9px;
    align-items: center;
}

/* ---------- Botões ---------- */
.orbi-btn,
.orbi-btn-primary,
.orbi-btn-perigo {
    border-radius: 10px;
    padding: 10px 15px;
}

.orbi-btn {
    border: 1px solid var(--orbi-btn-borda);
    background: var(--orbi-superficie-2);
    color: var(--orbi-texto-botao);
}

.orbi-btn-primary {
    background: var(--orbi-destaque);
    border: 1px solid var(--orbi-destaque);
    color: var(--orbi-destaque-texto);
    font-weight: 700;
}

.orbi-btn:hover,
.orbi-btn-primary:hover,
.orbi-btn:focus,
.orbi-btn-primary:focus {
    filter: brightness(1.12);
    color: inherit;
}

.orbi-btn-primary:hover,
.orbi-btn-primary:focus {
    background: var(--orbi-destaque);
    color: var(--orbi-destaque-texto);
}

span.orbi-btn {
    cursor: default;
}

/* Foco do teclado: contorno visível em tudo que é clicável (o mouse não mostra, por :focus-visible) */
a:focus-visible, button:focus-visible, .btn:focus-visible, summary:focus-visible, [tabindex]:focus-visible,
.form-check-input:focus-visible {
    outline: 2px solid var(--orbi-ativo);
    outline-offset: 2px;
    box-shadow: none;
}

/* ---------- Cards e grids ---------- */
.orbi-card {
    background: var(--orbi-card);
    border: 1px solid var(--orbi-borda);
    border-radius: 16px;
    padding: 20px;
    min-width: 0;
}

.orbi-card h2 {
    font-size: 17px;
    font-weight: 700;
    margin: 0 0 17px;
}

.orbi-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 16px;
}

.orbi-two {
    display: grid;
    grid-template-columns: 1.65fr 1fr;
    gap: 16px;
    margin-top: 16px;
}

.orbi-metric .orbi-label {
    font-size: 13px;
    color: var(--orbi-suave);
}

.orbi-metric strong {
    display: block;
    font-size: 29px;
    margin: 12px 0 5px;
}

.orbi-metric strong.orbi-metric-texto {
    font-size: 22px;
}

.orbi-metric em {
    font-size: 12px;
    color: var(--orbi-ativo);
    font-style: normal;
}

.orbi-item {
    display: flex;
    justify-content: space-between;
    gap: 12px;
    padding: 13px 0;
    border-bottom: 1px solid var(--orbi-linha);
    align-items: center;
}

.orbi-item:last-child {
    border-bottom: 0;
}

.orbi-item-link {
    color: var(--orbi-texto);
    text-decoration: none;
}

.orbi-item-link:hover {
    color: var(--orbi-ativo);
}

.orbi-pill {
    border-radius: 99px;
    background: var(--orbi-pill-fundo);
    color: var(--orbi-ativo);
    padding: 5px 10px;
    font-size: 12px;
    white-space: nowrap;
}

.orbi-note {
    background: var(--orbi-nota-fundo);
    border-left: 3px solid var(--orbi-destaque);
    padding: 13px;
    border-radius: 7px;
    color: var(--orbi-nota-texto);
    font-size: 14px;
}

.orbi-empty {
    padding: 24px 16px;
    color: var(--orbi-texto-vazio);
    text-align: center;
}

/* ---------- Gráfico de barras ---------- */
.orbi-bars {
    display: flex;
    gap: 14px;
    align-items: stretch;
    height: 205px;
    border-bottom: 1px solid var(--orbi-linha-forte);
    padding: 0 10px 5px;
}

.orbi-barwrap {
    flex: 1;
    min-width: 0; /* sem isso o rótulo impede a coluna de encolher e o gráfico estoura o cartão */
    display: flex;
    flex-direction: column;
    justify-content: flex-end;
    align-items: center;
    font-size: 11px;
    color: var(--orbi-texto-terciario);
}

.orbi-bar {
    background: linear-gradient(0deg, var(--orbi-destaque-escuro), var(--orbi-ativo));
    border-radius: 7px 7px 2px 2px;
    width: 65%;
    min-height: 4px;
    margin-bottom: 9px;
    max-height: 160px;
}

.orbi-bar-valor {
    color: var(--orbi-texto);
    margin-bottom: 4px;
}

/* ---------- Ícone por modalidade ---------- */
.orbi-icone {
    width: 2.5rem;
    height: 2.5rem;
    border-radius: 50%;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    color: var(--orbi-branco);
}

.orbi-musculacao { background: var(--orbi-mod-musculacao); }
.orbi-jiu_jitsu { background: var(--orbi-mod-jiu-jitsu); }
.orbi-caminhada { background: var(--orbi-mod-caminhada); }
.orbi-corrida { background: var(--orbi-mod-corrida); }
.orbi-condicionamento { background: var(--orbi-mod-condicionamento); }
.orbi-outro { background: var(--orbi-neutro-escuro); }

/* ---------- Atalhos de registro rápido ---------- */
.orbi-atalhos {
    display: grid;
    grid-template-columns: repeat(6, 1fr);
    gap: 10px;
}

.orbi-atalho {
    background: var(--orbi-card);
    border: 1px solid var(--orbi-borda);
    border-radius: 14px;
    padding: 14px 6px;
    text-align: center;
    text-decoration: none;
    color: var(--orbi-texto);
    font-size: 13px;
    line-height: 1.2;
}

.orbi-atalho:hover {
    border-color: var(--orbi-destaque);
    color: var(--orbi-ativo);
}

.orbi-atalho i {
    display: block;
    font-size: 1.25rem;
    margin-bottom: .4rem;
    color: var(--orbi-destaque);
}

/* ---------- Formulários ---------- */
/* .orbi-form: sem largura máxima — o formulário ocupa a área toda, como as listagens (com o teto de 880px sobrava
   uma faixa vazia). As colunas ficam por conta do grid do Bootstrap (row/col-md-*) dentro do cartão. */

.orbi-field-label {
    display: block;
    color: var(--orbi-texto-rotulo);
    font-size: 12px;
    margin-bottom: 7px;
}

.form-control,
.form-select {
    background-color: var(--orbi-campo);
    border-color: var(--orbi-borda-forte);
    color: var(--orbi-texto-campo);
    border-radius: 9px;
    padding: 11px 12px;
}

/* A seta do seletor fica à direita: sem este espaço, o texto passa por baixo dela (ex.: "20" na paginação) */
.form-select { padding-right: 36px; }

.form-control:focus,
.form-select:focus {
    background-color: var(--orbi-campo);
    border-color: var(--orbi-destaque);
    box-shadow: 0 0 0 .2rem rgba(var(--orbi-destaque-rgb), .2);
    color: var(--orbi-texto-campo);
}

.form-control::-webkit-calendar-picker-indicator {
    filter: invert(.8);
}

.form-check-input:checked {
    background-color: var(--orbi-destaque);
    border-color: var(--orbi-destaque);
}

.orbi-tipos {
    display: grid;
    grid-template-columns: repeat(6, 1fr);
    gap: 10px;
}

.orbi-tipo {
    border: 1px solid var(--orbi-borda-forte);
    background: var(--orbi-campo);
    color: var(--orbi-suave);
    font-size: 13px;
    padding: 14px 6px;
    border-radius: 12px;
}

.orbi-tipo:hover {
    border-color: var(--orbi-destaque);
    color: var(--orbi-ativo);
}

.orbi-tipo.ativo,
.btn-check:checked + .orbi-tipo {
    background: var(--orbi-ativo-fundo);
    border-color: var(--orbi-destaque);
    color: var(--orbi-ativo);
}

/* ---------- Musculação ---------- */
.orbi-three {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 16px;
}

.orbi-lista-exercicios {
    list-style: none;
    padding: 0;
    margin: 0;
    font-size: 13px;
    color: var(--orbi-suave);
}

.orbi-lista-exercicios li {
    padding: 4px 0;
    border-bottom: 1px solid var(--orbi-linha-suave);
}

.orbi-lista-exercicios li:last-child {
    border-bottom: 0;
}

.orbi-table {
    width: 100%;
    border-collapse: collapse;
    font-size: 14px;
}

.orbi-table th {
    text-align: left;
    color: var(--orbi-texto-tabela-cabecalho);
    font-weight: 600;
    font-size: 13px;
}

.orbi-table td,
.orbi-table th {
    padding: 12px 10px;
    border-bottom: 1px solid var(--orbi-linha-tabela);
    vertical-align: middle;
}

.orbi-table tr:last-child td {
    border-bottom: 0;
}

.orbi-series {
    display: grid;
    gap: 8px;
}

.orbi-serie {
    display: grid;
    grid-template-columns: 1.6rem minmax(0, 1fr) auto minmax(0, 1fr);
    align-items: center;
    gap: 8px;
    max-width: 520px;
}

.orbi-serie-num {
    color: var(--orbi-destaque);
    font-weight: 700;
    text-align: center;
}

.input-group-text {
    background: var(--orbi-superficie-2);
    border-color: var(--orbi-borda-forte);
    color: var(--orbi-suave);
    font-size: 12px;
}

/* ---------- Menu: bloco de administração ---------- */
.orbi-nav-admin {
    padding-top: 14px;
    border-top: 1px solid var(--orbi-borda);
}

.orbi-nav-titulo {
    font-size: 11px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 1.2px;
    color: var(--orbi-texto-menu-titulo);
    padding: 0 15px 4px;
}

/* ---------- Catálogo e mapa do corpo ---------- */
.orbi-catalogo {
    display: grid;
    grid-template-columns: minmax(280px, 420px) minmax(0, 1fr);
    gap: 16px;
    align-items: start;
}

.orbi-catalogo-mapa {
    position: sticky;
    top: 16px;
}

.orbi-mapa {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 8px;
}

.orbi-mapa-vista {
    margin: 0;
    text-align: center;
}

.orbi-mapa-vista svg {
    width: 100%;
    height: auto;
    max-height: 520px;
}

.orbi-mapa-vista figcaption {
    font-size: 12px;
    color: var(--orbi-suave);
    margin-top: 4px;
}

.orbi-corpo {
    fill: var(--orbi-mapa-corpo);
}

.orbi-area {
    fill: var(--orbi-mapa-area);
    stroke: var(--orbi-card);
    stroke-width: 4;
    transition: fill .15s;
}

.orbi-mapa a {
    cursor: pointer;
}

.orbi-mapa a:hover .orbi-area {
    fill: var(--orbi-mapa-area-hover);
}

.orbi-area-selecionada,
.orbi-mapa a:hover .orbi-area-selecionada,
.orbi-area-primaria {
    fill: var(--orbi-destaque);
}

.orbi-area-secundaria {
    fill: var(--orbi-destaque-escuro);
}

.orbi-legenda {
    display: flex;
    justify-content: center;
    gap: 16px;
    font-size: 12px;
    color: var(--orbi-suave);
}

.orbi-legenda-cor {
    display: inline-block;
    width: 12px;
    height: 12px;
    border-radius: 3px;
    margin-right: 6px;
    vertical-align: -1px;
}

.orbi-legenda-primaria { background: var(--orbi-destaque); }
.orbi-legenda-secundaria { background: var(--orbi-destaque-escuro); }

.orbi-dl {
    display: grid;
    grid-template-columns: max-content 1fr;
    gap: 8px 18px;
    margin-bottom: 12px;
}

.orbi-dl dt {
    color: var(--orbi-suave);
    font-weight: 500;
    font-size: 13px;
}

.orbi-dl dd {
    margin: 0;
}

/* Execução: duas fotos empilhadas; a segunda aparece e some (posição inicial ↔ final). */
.orbi-execucao { position: relative; max-width: 520px; margin: 0 auto; border-radius: 12px; overflow: hidden; background: var(--orbi-branco); }
.orbi-execucao img { display: block; width: 100%; height: auto; }
.orbi-execucao.animado img:nth-child(2) { position: absolute; inset: 0; animation: orbi-alternar 2s steps(1, end) infinite; }
.orbi-execucao.pausado img:nth-child(2) { animation-play-state: paused; }
@keyframes orbi-alternar { 0% { opacity: 0; } 50% { opacity: 1; } }
@media (prefers-reduced-motion: reduce) { .orbi-execucao.animado img:nth-child(2) { animation: none; opacity: 0; } }
.orbi-execucao-fotos { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; margin-top: 12px; }
.orbi-execucao-fotos figure { margin: 0; text-align: center; }
.orbi-execucao-fotos img { width: 100%; border-radius: 8px; background: var(--orbi-branco); }
.orbi-execucao-fotos figcaption { font-size: 12px; color: var(--orbi-suave); margin-top: 4px; }
.orbi-passos { margin: 0; padding-left: 1.3rem; }
.orbi-passos li { padding: 6px 0; line-height: 1.5; }

.orbi-regioes {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 16px;
}

.orbi-regiao-titulo {
    font-size: 14px;
    font-weight: 700;
    color: var(--orbi-ativo);
    margin: 0 0 6px;
}

/* ---------- Construtor de ficha ---------- */
/* .orbi-main-largo: classe mantida nas telas, mas sem efeito desde que .orbi-main ocupa toda a largura. */

.orbi-construtor {
    display: grid;
    grid-template-columns: minmax(280px, 360px) minmax(0, 1fr) minmax(280px, 360px);
    gap: 16px;
    align-items: start;
}

.orbi-construtor-lateral { position: sticky; top: 16px; }

.orbi-biblioteca-lista { max-height: 62vh; overflow-y: auto; margin-right: -6px; padding-right: 6px; }

.orbi-cb-item {
    display: flex; align-items: center; gap: 10px;
    padding: 8px 0; border-bottom: 1px solid var(--orbi-linha-suave);
}
.orbi-cb-item:last-child { border-bottom: 0; }
.orbi-cb-nome { font-weight: 600; font-size: 14px; line-height: 1.25; }
.orbi-cb-check { color: var(--orbi-destaque); display: none; }
.orbi-cb-item.na-ficha .orbi-cb-check { display: inline-block; }

.orbi-miniatura {
    width: 52px; height: 52px; border-radius: 8px; object-fit: cover;
    background: var(--orbi-branco); flex-shrink: 0;
}
.orbi-miniatura-vazia { background: var(--orbi-linha-suave); display: inline-block; }

.orbi-cf-item {
    border: 1px solid var(--orbi-borda); border-radius: 12px;
    padding: 12px; margin-bottom: 10px; background: var(--orbi-superficie-1);
}
.orbi-cf-topo { display: flex; align-items: center; gap: 10px; }
.orbi-cf-num {
    width: 26px; height: 26px; border-radius: 50%; flex-shrink: 0;
    background: var(--orbi-ativo-fundo); color: var(--orbi-ativo);
    display: inline-flex; align-items: center; justify-content: center; font-size: 13px; font-weight: 700;
}
.orbi-cf-nome { color: var(--orbi-texto); font-weight: 600; text-decoration: none; }
.orbi-cf-nome:hover { color: var(--orbi-ativo); }
.orbi-cf-acoes { display: flex; gap: 4px; flex-shrink: 0; }
.orbi-cf-campos { display: grid; grid-template-columns: repeat(3, minmax(0, 120px)); gap: 10px; margin-top: 10px; }
.orbi-cf-campo { display: flex; flex-direction: column; gap: 3px; font-size: 11px; color: var(--orbi-suave); margin: 0; }
.orbi-cf-campo small { display: none; }
.orbi-cf-ultima { font-size: 12px; color: var(--orbi-ativo); margin-top: 8px; }

.orbi-resumo { display: grid; grid-template-columns: repeat(3, 1fr); gap: 8px; }
.orbi-resumo div {
    background: var(--orbi-superficie-1); border: 1px solid var(--orbi-borda); border-radius: 10px;
    text-align: center; padding: 10px 4px;
}
.orbi-resumo strong { display: block; font-size: 24px; }
.orbi-resumo span { font-size: 11px; color: var(--orbi-suave); text-transform: uppercase; letter-spacing: .5px; }

.orbi-volume-linha {
    display: grid; grid-template-columns: 110px 1fr 34px; align-items: center; gap: 8px;
    font-size: 13px; padding: 3px 0;
}
.orbi-volume-linha b { text-align: right; font-weight: 600; }
.orbi-volume-barra { display: block; height: 8px; border-radius: 8px; background: linear-gradient(90deg, var(--orbi-calor-1), var(--orbi-calor-4)); }

/* Calor no mapa: baixo → alto volume */
.orbi-area.orbi-calor-1 { fill: var(--orbi-calor-1); }
.orbi-area.orbi-calor-2 { fill: var(--orbi-calor-2); }
.orbi-area.orbi-calor-3 { fill: var(--orbi-calor-3); }
.orbi-area.orbi-calor-4 { fill: var(--orbi-calor-4); }
#cf-mapa polygon[data-slug] { cursor: pointer; }

.orbi-legenda-calor { display: flex; align-items: center; justify-content: center; gap: 8px; font-size: 12px; color: var(--orbi-suave); }
.orbi-escala { display: inline-block; width: 90px; height: 8px; border-radius: 8px; background: linear-gradient(90deg, var(--orbi-calor-1), var(--orbi-calor-4)); }

@media (max-width: 1300px) {
    .orbi-construtor { grid-template-columns: minmax(260px, 340px) minmax(0, 1fr); }
    .orbi-construtor-lateral { grid-column: 1 / -1; position: static; display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }
    .orbi-construtor-lateral .orbi-card { margin-bottom: 0 !important; }
}

@media (max-width: 760px) {
    .orbi-construtor { grid-template-columns: 1fr; }
    .orbi-construtor-lateral { grid-template-columns: 1fr; }
    .orbi-biblioteca-lista { max-height: 50vh; }
    .orbi-cf-campos { grid-template-columns: repeat(3, 1fr); }
}

/* ---------- Biblioteca de rotinas ---------- */
.orbi-rotinas { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 20px; }
.orbi-rotina { padding: 0; overflow: hidden; display: flex; flex-direction: column; }
.orbi-rotina-corpo { padding: 20px 22px 22px; display: flex; flex-direction: column; gap: 14px; flex: 1; }
.orbi-rotina-corpo h2 { margin: 0; font-size: 18px; line-height: 1.3; }
.orbi-rotina-corpo > .btn { margin-top: auto; }
.orbi-rotina-desc {
    margin: 0; color: var(--orbi-suave); font-size: 14px; line-height: 1.5;
    display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden; min-height: 4.5em;
}

/* Capa: só a imagem gerada da rotina; sem imagem, fica a cor do objetivo */
.orbi-rotina-capa { position: relative; display: block; aspect-ratio: 12 / 5; overflow: hidden; }
.orbi-rotina-capa img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.orbi-rotina-capa-detalhe { border-radius: 12px; }
.orbi-obj-hipertrofia { --orbi-capa: var(--orbi-obj-hipertrofia); background: var(--orbi-obj-hipertrofia); }
.orbi-obj-forca { --orbi-capa: var(--orbi-obj-forca); background: var(--orbi-obj-forca); }
.orbi-obj-emagrecimento { --orbi-capa: var(--orbi-obj-emagrecimento); background: var(--orbi-obj-emagrecimento); }
.orbi-obj-condicionamento { --orbi-capa: var(--orbi-obj-condicionamento); background: var(--orbi-obj-condicionamento); }
.orbi-obj-lutas { --orbi-capa: var(--orbi-obj-lutas); background: var(--orbi-obj-lutas); }

.orbi-rotina-meta {
    list-style: none; margin: 0; padding: 0;
    display: grid; grid-template-columns: 1fr 1fr; gap: 8px 14px; font-size: 13px;
}
.orbi-rotina-meta li { display: flex; align-items: center; gap: 8px; min-width: 0; }
.orbi-rotina-meta i { width: 16px; text-align: center; color: var(--orbi-destaque); flex-shrink: 0; }

.orbi-rotina-rotulo {
    font-size: 11px; font-weight: 700; text-transform: uppercase; letter-spacing: 1px; color: var(--orbi-texto-rotina-rotulo); margin-bottom: 6px; /* 5,2:1 (AA) */
}
.orbi-chips { display: flex; flex-wrap: wrap; gap: 6px; }
.orbi-chip {
    font-size: 12px; padding: 4px 10px; border-radius: 99px;
    background: var(--orbi-superficie-2); border: 1px solid var(--orbi-chip-borda); color: var(--orbi-texto-chip);
}

.orbi-semana { display: grid; grid-template-columns: repeat(7, 1fr); text-align: center; border-top: 1px solid var(--orbi-linha); padding-top: 12px; }
.orbi-semana small { display: block; font-size: 10px; color: var(--orbi-suave); font-weight: 600; }
.orbi-semana i { display: inline-block; width: 14px; height: 14px; border-radius: 50%; border: 2px solid var(--orbi-linha-forte); margin-top: 4px; }
.orbi-semana .ativo i { background: var(--orbi-destaque); border-color: var(--orbi-destaque); }

@media (max-width: 1100px) { .orbi-rotinas { grid-template-columns: 1fr 1fr; } }
@media (max-width: 760px) { .orbi-rotinas { grid-template-columns: 1fr; } }

/* ---------- Gerador ---------- */
.orbi-gerador { display: grid; grid-template-columns: minmax(300px, 380px) minmax(0, 1fr); gap: 16px; align-items: start; }
.orbi-gerador-form { position: sticky; top: 16px; }
.orbi-modos { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
.orbi-equip-opcoes { display: grid; grid-template-columns: 1fr 1fr; gap: 6px 10px; }
.orbi-equip { display: flex; align-items: center; gap: 8px; font-size: 13px; margin: 0; cursor: pointer; }
.orbi-equip .form-check-input { margin: 0; flex-shrink: 0; }
.orbi-gerador-vazio { padding: 60px 20px; }
.orbi-gerador-resultado { display: grid; grid-template-columns: minmax(0, 1fr) minmax(260px, 340px); gap: 16px; align-items: start; }
@media (max-width: 1300px) { .orbi-gerador-resultado { grid-template-columns: 1fr; } }
@media (max-width: 1100px) { .orbi-gerador { grid-template-columns: 1fr; } .orbi-gerador-form { position: static; } }

/* ---------- Ferramentas ---------- */
.orbi-ferramentas { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; }
.orbi-ferramenta { color: var(--orbi-texto); text-decoration: none; display: flex; flex-direction: column; gap: 8px; }
.orbi-ferramenta:hover { border-color: var(--orbi-destaque); color: var(--orbi-texto); }
.orbi-ferramenta i { font-size: 28px; color: var(--orbi-destaque); }
.orbi-ferramenta h2 { margin: 4px 0 0; }
.orbi-ferramenta p { margin: 0; color: var(--orbi-suave); font-size: 14px; }
.orbi-ferramenta-corpo { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); align-items: start; }
.orbi-resultado { text-align: center; padding: 8px 0 18px; }
.orbi-resultado strong { display: block; font-size: 44px; line-height: 1.1; color: var(--orbi-destaque); }
.orbi-resultado span { color: var(--orbi-suave); }
.orbi-faixas { list-style: none; padding: 0; margin: 12px 0; display: grid; gap: 6px; }
.orbi-faixas li { padding: 6px 12px; border-radius: 8px; background: var(--orbi-superficie-1); border: 1px solid var(--orbi-borda); font-size: 14px; }
.orbi-faixas li.atual { border-color: var(--orbi-destaque); color: var(--orbi-ativo); font-weight: 600; }
.orbi-macro { margin-bottom: 14px; }
.orbi-macro-barra { height: 10px; border-radius: 10px; background: var(--orbi-linha-suave); margin: 6px 0 2px; overflow: hidden; }
.orbi-macro-barra i { display: block; height: 100%; background: var(--orbi-destaque); border-radius: 10px; }
@media (max-width: 1100px) { .orbi-ferramentas { grid-template-columns: 1fr 1fr; } .orbi-ferramenta-corpo { grid-template-columns: 1fr; } }
@media (max-width: 760px) { .orbi-ferramentas { grid-template-columns: 1fr; } }

/* ---------- Evolução corporal ---------- */
.orbi-grafico { width: 100%; height: auto; display: block; }
.orbi-grafico-eixo { stroke: var(--orbi-grafico-eixo); stroke-dasharray: 4 6; }
.orbi-grafico-linha { fill: none; stroke: var(--orbi-destaque); stroke-width: 3; stroke-linecap: round; stroke-linejoin: round; }
.orbi-grafico-ponto { fill: var(--orbi-card); stroke: var(--orbi-destaque); stroke-width: 3; }
/* Evolução: meta, projeção e legenda do gráfico */
.orbi-grafico-meta { stroke: var(--orbi-aviso); stroke-width: 2; stroke-dasharray: 6 6; }
.orbi-grafico-texto-meta { fill: var(--orbi-aviso); font-size: 11px; }
.orbi-grafico-projecao { fill: none; stroke: var(--orbi-destaque); stroke-width: 2; stroke-dasharray: 2 7; opacity: .8; }
.orbi-legenda-medido { color: var(--orbi-destaque); }
.orbi-legenda-meta { color: var(--orbi-aviso); }

/* Evolução: próxima reavaliação, sugestões e linha do tempo */
.orbi-prox { border-color: rgba(var(--orbi-destaque-rgb), .55); }
.orbi-prox-data { font-size: 30px; font-weight: 750; letter-spacing: -.5px; }
.orbi-motivo { display: flex; gap: 8px; align-items: flex-start; font-size: 13px; padding: 3px 0; }
.orbi-motivo > i { color: var(--orbi-destaque); margin-top: 3px; width: 14px; flex: 0 0 14px; }
.orbi-sugestao { display: flex; gap: 12px; align-items: flex-start; padding: 12px 0; border-bottom: 1px solid var(--orbi-linha); }
.orbi-sugestao:last-child { border-bottom: 0; }
.orbi-sugestao > i { margin-top: 3px; width: 18px; text-align: center; }
.orbi-filtro-ativo { border-color: var(--orbi-destaque) !important; color: var(--orbi-destaque) !important; }
.orbi-tl { position: relative; padding-left: 26px; }
.orbi-tl::before { content: ""; position: absolute; left: 9px; top: 6px; bottom: 6px; width: 2px; background: var(--orbi-linha); }
.orbi-tl-item { position: relative; padding: 9px 0 12px; }
.orbi-tl-item > i { position: absolute; left: -26px; top: 10px; width: 20px; height: 20px; border-radius: 50%; display: grid; place-items: center;
    font-size: 10px; background: var(--orbi-campo); border: 1px solid var(--orbi-borda-forte); color: var(--orbi-suave); }
.orbi-tl-medida > i { color: var(--orbi-destaque); border-color: var(--orbi-destaque); }
.orbi-tl-ferramenta > i { color: var(--orbi-info); border-color: var(--orbi-info); }
.orbi-tl-meta > i { color: var(--orbi-aviso); border-color: var(--orbi-aviso); }
.orbi-tl-parq > i { color: var(--orbi-perigo-claro); border-color: var(--orbi-perigo-claro); }
/* Abas das calculadoras (mesmo seletor do registro de treino) */
.orbi-abas-ferramentas .orbi-tipo { text-decoration: none; text-align: center; }
.orbi-ultimo { font-size: 11px; color: var(--orbi-suave); margin-top: 4px; }
.orbi-delta-bom { color: var(--orbi-sucesso); }
.orbi-delta-ruim { color: var(--orbi-perigo-claro); }

/* Vídeo incorporado 16:9 */
.orbi-video { position: relative; aspect-ratio: 16 / 9; border-radius: 12px; overflow: hidden; background: var(--orbi-preto); }
.orbi-video iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; }

/* ---------- Registro do treino: cards pequenos + painel do exercício ---------- */
.orbi-treino-trilha { display: grid; grid-template-columns: repeat(auto-fill, minmax(210px, 1fr)); gap: 10px; margin-bottom: 16px; }
.orbi-treino-chip {
    display: flex; align-items: center; gap: 10px; padding: 8px; text-align: left; color: var(--orbi-texto);
    background: var(--orbi-card); border: 1px solid var(--orbi-borda); border-radius: 14px; transition: border-color .15s, background .15s;
}
.orbi-treino-chip:hover { border-color: var(--orbi-borda-forte); }
.orbi-treino-chip.ativo { border-color: var(--orbi-destaque); background: var(--orbi-ativo-fundo); }
.orbi-treino-chip-foto {
    flex: 0 0 52px; height: 52px; border-radius: 10px; overflow: hidden; background: var(--orbi-branco);
    display: flex; align-items: center; justify-content: center; color: var(--orbi-neutro-escuro);
}
.orbi-treino-chip-foto img { width: 100%; height: 100%; object-fit: cover; }
.orbi-treino-chip-texto { display: flex; flex-direction: column; min-width: 0; line-height: 1.25; }
.orbi-treino-chip-texto small { color: var(--orbi-suave); font-size: .72rem; }
.orbi-treino-chip-texto b { font-size: .88rem; overflow: hidden; text-overflow: ellipsis; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; }
.orbi-treino-chip-texto em { font-style: normal; font-size: .75rem; color: var(--orbi-suave); }
.orbi-treino-chip.iniciado em { color: var(--orbi-aviso-medio); }
.orbi-treino-chip.feito em { color: var(--orbi-destaque); font-weight: 600; }
.orbi-treino-chip.feito .orbi-treino-chip-foto { outline: 2px solid var(--orbi-destaque); }

.orbi-treino-painel { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.1fr); gap: 16px; align-items: start; margin-bottom: 16px; }
.orbi-treino-painel.d-none { display: none !important; }
@media (max-width: 991px) { .orbi-treino-painel { grid-template-columns: 1fr; } }
.orbi-treino-info .orbi-execucao { max-width: 420px; }
.orbi-treino-musculos { display: grid; grid-template-columns: 240px minmax(0, 1fr); gap: 16px; align-items: center; margin-top: 16px; }
@media (max-width: 575px) { .orbi-treino-musculos { grid-template-columns: 1fr; } }
.orbi-treino-musculos .orbi-mapa { max-width: 240px; margin: 0 auto; }
.orbi-treino-passos summary { cursor: pointer; font-weight: 600; }
.orbi-treino-navegar { display: flex; justify-content: space-between; align-items: center; gap: 8px; margin-top: 16px;
    padding-top: 14px; border-top: 1px solid var(--orbi-borda); }
.orbi-treino-salvar {
    position: sticky; bottom: 0; z-index: 5; display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center;
    gap: 12px; padding: 12px 16px; margin-top: 8px; background: rgba(var(--orbi-fundo-rgb), .92); backdrop-filter: blur(6px);
    border: 1px solid var(--orbi-borda); border-radius: 14px;
}

/* ---------- Agenda de treinos ---------- */
.orbi-situacao { display: inline-block; padding: 2px 10px; border-radius: 999px; font-size: .78rem; font-weight: 600; }
.orbi-situacao-feito { background: rgba(var(--orbi-sucesso-rgb), .16); color: var(--orbi-sucesso); }
.orbi-situacao-hoje { background: rgba(var(--orbi-info-forte-rgb), .18); color: var(--orbi-info); }
.orbi-situacao-atrasado { background: rgba(var(--orbi-perigo-rgb), .16); color: var(--orbi-perigo-claro); }
.orbi-situacao-pulado { background: rgba(var(--orbi-neutro-rgb), .14); color: var(--orbi-neutro); text-decoration: line-through; }
.orbi-situacao-previsto { background: rgba(var(--orbi-neutro-rgb), .10); color: var(--orbi-neutro-claro); }
.orbi-situacao-nao-realizado { background: rgba(var(--orbi-neutro-rgb), .10); color: var(--orbi-neutro); font-style: italic; }
.orbi-linha-hoje td { background: rgba(var(--orbi-info-forte-rgb), .06); }
.orbi-agenda-progresso { text-align: right; line-height: 1.1; }
.orbi-agenda-progresso strong { display: block; font-size: 1.6rem; }
.orbi-agenda-progresso span { color: var(--orbi-suave); font-size: .8rem; }
.orbi-proximo { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; gap: 16px; }
.orbi-dias-escolha { display: flex; flex-wrap: wrap; gap: 6px; }
.orbi-dias-escolha .btn { min-width: 56px; }
.orbi-dias-escolha .btn-check:checked + .btn { background: var(--orbi-destaque); color: var(--orbi-destaque-texto); border-color: transparent; font-weight: 700; }

/* Calendário da agenda */
.orbi-agenda-resumos { display: grid; grid-template-columns: repeat(auto-fill, minmax(320px, 1fr)); gap: 12px; }
.orbi-agenda-resumo { display: flex; justify-content: space-between; align-items: center; gap: 16px; }
.orbi-agenda-resumo h2 { font-size: 1.05rem; }
.orbi-agenda-barra { width: 90px; height: 6px; margin-top: 6px; border-radius: 999px; background: var(--orbi-borda); overflow: hidden; }
.orbi-agenda-barra i { display: block; height: 100%; background: var(--orbi-destaque); }
.orbi-cal-topo { display: flex; align-items: center; gap: 10px; margin-bottom: 14px; }
.orbi-cal-topo h2 { min-width: 190px; text-align: center; }
.orbi-cal { display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); gap: 6px; }
.orbi-cal-cabecalho { text-align: center; font-size: .75rem; font-weight: 700; letter-spacing: .06em; text-transform: uppercase;
    color: var(--orbi-suave); padding-bottom: 4px; }
.orbi-cal-dia { min-height: 104px; padding: 6px; border: 1px solid var(--orbi-borda); border-radius: 10px;
    background: var(--orbi-campo); display: flex; flex-direction: column; gap: 4px; min-width: 0; }
.orbi-cal-dia.fora { opacity: .4; }
.orbi-cal-dia.hoje { border-color: var(--orbi-destaque); box-shadow: inset 0 0 0 1px var(--orbi-destaque); }
.orbi-cal-num { font-size: .8rem; font-weight: 600; color: var(--orbi-suave); }
.orbi-cal-dia.hoje .orbi-cal-num { color: var(--orbi-destaque); }
.orbi-cal-treino { display: flex; align-items: center; gap: 4px; width: 100%; padding: 4px 8px; border: 0; border-radius: 8px;
    font-size: .8rem; font-weight: 600; text-align: left; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; cursor: pointer; }
.orbi-cal-treino span { overflow: hidden; text-overflow: ellipsis; }
.orbi-cal-treino:hover { filter: brightness(1.25); }
.orbi-cal-legenda { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 14px; }
.orbi-cal-legenda i { font-style: normal; }
@media (max-width: 767px) {
    .orbi-cal-dia { min-height: 64px; padding: 4px; }
    .orbi-cal-treino { padding: 3px 4px; font-size: .68rem; }
}
.orbi-modal { background: var(--orbi-card); border: 1px solid var(--orbi-borda); }
.orbi-modal .modal-header, .orbi-modal .modal-footer { border-color: var(--orbi-borda); }
.orbi-modal .modal-footer { gap: 8px; }
/* Modais de feedback (fragments/feedback-modals.html + js/feedback-modals.js) */
.orbi-feedback-aviso { color: var(--orbi-aviso-alt); }
.orbi-feedback-ok { color: var(--orbi-destaque); }
.orbi-feedback-erro { color: var(--orbi-perigo-erro); }
.orbi-feedback-pergunta { color: var(--orbi-ativo); }
.orbi-feedback-perigo { display: flex; flex-direction: column; align-items: center; gap: 10px; padding: 22px 16px 16px;
    color: var(--orbi-branco); background: linear-gradient(135deg, var(--orbi-perigo-gradiente-inicio), var(--orbi-perigo-gradiente-fim)); }
.orbi-feedback-perigo-simbolo { display: grid; place-items: center; width: 52px; height: 52px; border-radius: 50%;
    background: rgba(var(--orbi-branco-rgb), .18); font-size: 1.35rem; }
.orbi-feedback-itens { list-style: none; margin: 0; padding: 0; display: grid; gap: 6px; }
.orbi-feedback-itens[hidden] { display: none; }
.orbi-feedback-itens li { display: flex; gap: 8px; align-items: baseline; padding: 8px 10px; border-radius: 8px;
    background: var(--orbi-campo); border: 1px solid var(--orbi-borda); }
.orbi-feedback-itens li i { color: var(--orbi-perigo-erro); font-size: .75rem; }

/* Quem está logado (menu) */
.orbi-usuario { display: flex; align-items: center; gap: 10px; margin-top: 12px; padding: 10px 12px; border-radius: 11px;
    color: var(--orbi-texto); text-decoration: none; background: var(--orbi-campo); border: 1px solid var(--orbi-borda); }
.orbi-usuario:hover { border-color: var(--orbi-borda-forte); color: var(--orbi-texto); }
.orbi-usuario i { font-size: 1.4rem; color: var(--orbi-destaque); }
.orbi-usuario span { display: flex; flex-direction: column; min-width: 0; line-height: 1.2; }
.orbi-usuario b { font-size: .88rem; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.orbi-usuario small { color: var(--orbi-suave); font-size: .75rem; }
.orbi-form-estreito { max-width: 480px; }
.orbi-senha-provisoria { border-color: var(--orbi-destaque); }

/* Perfis e permissões (RBAC) */
.orbi-perfis { display: grid; grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); gap: 10px; }
.orbi-perfil-card { display: block; color: var(--orbi-texto); text-decoration: none; padding: 14px 16px; }
.orbi-perfil-card:hover { border-color: var(--orbi-borda-forte); color: var(--orbi-texto); }
.orbi-perfil-card.inativo { opacity: .55; }
.orbi-matriz th, .orbi-matriz td { vertical-align: middle; }
.orbi-matriz td:first-child { min-width: 240px; }
.orbi-matriz-grupo td { background: var(--orbi-campo); font-size: .75rem; font-weight: 700; letter-spacing: .06em;
    text-transform: uppercase; color: var(--orbi-suave); }
.orbi-nivel { min-width: 104px; }
.orbi-nivel[data-nivel="VER"] { border-color: var(--orbi-info); color: var(--orbi-info); }
.orbi-nivel[data-nivel="EDITAR"] { border-color: var(--orbi-destaque); color: var(--orbi-destaque); }

/* Menu multinível recolhível — mesmo visual de antes: título de seção pequeno, em maiúsculas e discreto
   (agora clicável para recolher), itens com o tamanho e o espaçamento originais */
.orbi-menu { display: grid; gap: 18px; }
.orbi-grupo > summary { list-style: none; display: flex; align-items: center; gap: 8px; padding: 0 15px 6px;
    cursor: pointer; user-select: none; font-size: 11px; font-weight: 700; text-transform: uppercase;
    letter-spacing: 1.2px; color: var(--orbi-texto-menu-titulo); }
.orbi-grupo > summary::-webkit-details-marker { display: none; }
.orbi-grupo > summary > i:first-child { display: none; }
.orbi-grupo > summary b { font-weight: 700; flex: 1; }
.orbi-grupo > summary:hover { color: var(--orbi-suave); }
.orbi-seta { font-size: 9px; color: var(--orbi-texto-menu-titulo); transition: transform .15s; }
.orbi-grupo[open] > summary .orbi-seta { transform: rotate(180deg); }
.orbi-grupo > .orbi-nav { gap: 2px; padding-left: 12px; } /* 2º nível recuado em relação ao título da seção */
/* Item final (folha) em qualquer nível: mesmo tamanho, um pouco menor que o antigo */
.orbi-grupo .orbi-nav a { padding: 9px 15px; font-size: 14px; }
/* Subgrupo (2º nível): parece um item do menu (tamanho normal, cor discreta) com a seta de recolher */
.orbi-subgrupo > summary { padding: 9px 15px; border-radius: 11px; font-size: 14px; font-weight: 500;
    text-transform: none; letter-spacing: 0; color: var(--orbi-suave); }
.orbi-subgrupo > summary b { font-weight: 500; }
.orbi-subgrupo > summary:hover { background: var(--orbi-ativo-fundo); color: var(--orbi-ativo); }
.orbi-subgrupo > summary .orbi-seta { font-size: 10px; }
/* 3º nível: recuado e um pouco menor, para ler como "dentro" do subgrupo */
.orbi-subgrupo > .orbi-nav { gap: 2px; margin: 2px 0 6px; padding-left: 16px; }
@media (prefers-reduced-motion: reduce) { .orbi-seta { transition: none; } }

/* Menu da conta (rodapé do menu lateral) */
.orbi-conta { margin-top: auto; position: relative; }
.orbi-conta > summary { list-style: none; cursor: pointer; margin-top: 0; }
.orbi-conta > summary::-webkit-details-marker { display: none; }
.orbi-conta > summary .orbi-seta { margin-left: auto; font-size: .7rem; color: var(--orbi-suave); }
.orbi-conta[open] > summary { border-color: var(--orbi-destaque); }
.orbi-conta[open] > summary .orbi-seta { transform: rotate(180deg); }
.orbi-conta-menu { position: absolute; right: 0; top: calc(100% + 8px); width: 280px; z-index: 40; display: grid; gap: 2px;
    padding: 6px; background: var(--orbi-card); border: 1px solid var(--orbi-borda-forte); border-radius: 12px;
    box-shadow: 0 10px 30px rgba(var(--orbi-sombra-rgb), .45); }
.orbi-conta-menu a, .orbi-conta-menu .orbi-sair button { display: flex; align-items: center; gap: 10px; width: 100%;
    padding: 10px 12px; border: 0; border-radius: 9px; background: none; color: var(--orbi-texto); text-decoration: none; }
.orbi-conta-menu a i, .orbi-conta-menu .orbi-sair i { width: 18px; text-align: center; color: var(--orbi-suave); }
.orbi-conta-menu a b, .orbi-conta-menu .orbi-sair b { font-weight: 500; }
.orbi-conta-menu a:hover, .orbi-conta-menu .orbi-sair button:hover { background: var(--orbi-ativo-fundo); color: var(--orbi-ativo); }
.orbi-conta-menu .orbi-sair { margin: 0; }
.orbi-conta-menu .orbi-sair button:hover i { color: var(--orbi-ativo); }
.orbi-conta-cabeca { display: flex; align-items: center; gap: 10px; padding: 10px 12px 12px; margin-bottom: 4px;
    border-bottom: 1px solid var(--orbi-borda); }
.orbi-conta-cabeca i { font-size: 1.6rem; color: var(--orbi-destaque); }
.orbi-conta-cabeca span { display: flex; flex-direction: column; min-width: 0; line-height: 1.25; }
.orbi-conta-cabeca b { font-size: .92rem; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.orbi-conta-cabeca small { color: var(--orbi-suave); font-size: .75rem; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }

/* Cadastro do aluno: formulário + card de acesso fixo ao lado */
.orbi-aluno { display: grid; grid-template-columns: minmax(0, 1fr) 340px; gap: 16px; align-items: start; }
.orbi-aluno-acesso { position: sticky; top: 16px; }
@media (max-width: 1100px) { .orbi-aluno { grid-template-columns: 1fr; } .orbi-aluno-acesso { position: static; } }

/* Contexto de trabalho no topo do menu: academia em uso (plataforma) e aluno em uso (equipe), fora dos grupos */
.orbi-contexto { display: grid; gap: 8px; margin-bottom: 18px; }
/* min-width: sem isso um nome longo (aluno, academia) alarga o menu inteiro em vez de cortar com reticências */
.orbi-contexto a.orbi-aluno-em-uso { display: flex; align-items: center; gap: 10px; padding: 10px 13px; border-radius: 11px; min-width: 0;
    background: var(--orbi-campo); border: 1px dashed var(--orbi-borda-forte); color: var(--orbi-texto); text-decoration: none; }
.orbi-contexto a.orbi-aluno-em-uso > i:first-child { width: 18px; text-align: center; color: var(--orbi-suave); }
.orbi-aluno-em-uso span { display: flex; flex-direction: column; min-width: 0; flex: 1; line-height: 1.15; }
.orbi-aluno-em-uso small { font-size: 10px; text-transform: uppercase; letter-spacing: 1px; color: var(--orbi-suave); }
.orbi-aluno-em-uso b { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.orbi-contexto a.orbi-aluno-em-uso:hover { border-color: var(--orbi-destaque); }

/* Página inicial da Gestão */
.orbi-academia { display: flex; align-items: center; gap: 20px; }
.orbi-academia-marca { flex: 0 0 64px; height: 64px; border-radius: 18px; display: flex; align-items: center;
    justify-content: center; font-size: 1.6rem; color: var(--orbi-destaque-texto); background: var(--orbi-destaque); }
.orbi-academia-vazia .orbi-academia-marca { background: var(--orbi-campo); color: var(--orbi-suave); }
.orbi-academia-dados { flex: 1; }
.orbi-academia-dados h2 { font-size: 1.35rem; }
.orbi-academia-contatos { list-style: none; display: flex; flex-wrap: wrap; gap: 6px 22px; margin: 12px 0 0; padding: 0;
    font-size: .9rem; }
.orbi-academia-contatos li { display: flex; align-items: center; gap: 8px; }
.orbi-academia-contatos i { color: var(--orbi-suave); width: 14px; text-align: center; }
.orbi-academia-editar { align-self: flex-start; }
.orbi-atalhos-gestao { display: grid; grid-template-columns: repeat(auto-fill, minmax(280px, 1fr)); gap: 16px; }
.orbi-atalho-gestao { display: flex; flex-direction: column; }
/* Botões do atalho dividem a linha; se não couberem, empilham na largura toda (sem botão solto desalinhado) */
.orbi-atalho-gestao > .d-flex > .btn { flex: 1 1 auto; }
.orbi-atalho-icone { width: 42px; height: 42px; border-radius: 12px; display: flex; align-items: center; justify-content: center;
    background: var(--orbi-ativo-fundo); color: var(--orbi-ativo); margin-bottom: 12px; }
@media (max-width: 760px) {
    .orbi-academia { flex-direction: column; align-items: flex-start; }
}

/* Portaria, lotação e check-in */
.orbi-portaria { display: grid; grid-template-columns: minmax(0, 1fr) 320px; gap: 16px; align-items: start; }
@media (max-width: 1100px) { .orbi-portaria { grid-template-columns: 1fr; } }
.orbi-ocupacao { position: sticky; top: 16px; }
.orbi-ocupacao-numero { display: flex; align-items: baseline; gap: 8px; margin: 6px 0 10px; }
.orbi-ocupacao-numero strong { font-size: 3rem; line-height: 1; }
.orbi-ocupacao-numero span { font-size: 1.3rem; color: var(--orbi-suave); }
.orbi-ocupacao-barra { height: 10px; border-radius: 999px; background: var(--orbi-campo); overflow: hidden; }
.orbi-ocupacao-barra i { display: block; height: 100%; border-radius: 999px; background: var(--orbi-destaque); }
.orbi-ocupacao.nivel-alta .orbi-ocupacao-barra i { background: var(--orbi-aviso); }
.orbi-ocupacao.nivel-cheia .orbi-ocupacao-barra i { background: var(--orbi-perigo); }
.orbi-ocupacao-pct { margin-top: 8px; font-weight: 600; }
.orbi-ocupacao.nivel-cheia .orbi-ocupacao-pct { color: var(--orbi-perigo-claro); }
.orbi-checkin { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; gap: 16px; }
.orbi-checkin.dentro { border-color: var(--orbi-destaque); }
.orbi-bars-lotacao { gap: 3px; padding: 0 4px 5px; }
.orbi-bars-lotacao .orbi-barwrap span:last-child { font-size: 10px; }
/* Gráficos de 12 meses (Indicadores): cabem no cartão estreito */
.orbi-bars-meses { gap: 6px; padding: 0 4px 5px; }
.orbi-bars-meses .orbi-barwrap { font-size: 10px; }
.orbi-mapa-calor { border-collapse: separate; border-spacing: 3px; font-size: 11px; min-width: 100%; }
.orbi-mapa-calor th { color: var(--orbi-suave); font-weight: 600; text-align: center; padding: 2px 4px; }
.orbi-mapa-calor tbody th { text-align: right; padding-right: 8px; }
.orbi-mapa-calor td { width: 34px; height: 30px; text-align: center; border-radius: 6px; color: var(--orbi-destaque-texto); font-weight: 700; }
.orbi-mapa-calor .calor-0 { background: var(--orbi-campo); }
.orbi-mapa-calor .calor-1 { background: rgba(var(--orbi-destaque-rgb), .25); color: var(--orbi-texto); }
.orbi-mapa-calor .calor-2 { background: rgba(var(--orbi-destaque-rgb), .5); }
.orbi-mapa-calor .calor-3 { background: rgba(var(--orbi-destaque-rgb), .75); }
.orbi-mapa-calor .calor-4 { background: var(--orbi-destaque); }
.orbi-qr-folha { max-width: 460px; margin: 0 auto; }
.orbi-qr { display: inline-block; padding: 16px; background: var(--orbi-branco); border-radius: 12px; }
.orbi-qr-url { word-break: break-all; color: var(--orbi-suave); }
@media print {
    .orbi-aside, .orbi-nao-imprimir { display: none !important; }
    .orbi-main { margin: 0 !important; padding-top: 0 !important; }
    .orbi-qr-folha { border: 0; box-shadow: none; }
}

/* Planos de assinatura */
.orbi-planos { display: grid; grid-template-columns: repeat(auto-fill, minmax(280px, 1fr)); gap: 16px; }
.orbi-plano { display: flex; flex-direction: column; color: var(--orbi-texto); text-decoration: none; }
.orbi-plano:hover { border-color: var(--orbi-borda-forte); color: var(--orbi-texto); }
.orbi-plano.inativo { opacity: .55; }
.orbi-plano-preco { display: flex; align-items: baseline; gap: 6px; }
.orbi-plano-preco strong { font-size: 1.8rem; color: var(--orbi-destaque); }
.orbi-plano-preco span { color: var(--orbi-suave); }
.orbi-plano-itens { list-style: none; padding: 0; margin: 14px 0 0; display: grid; gap: 6px; font-size: .9rem; }
.orbi-plano-itens li { display: flex; align-items: center; gap: 8px; }
.orbi-plano-itens i { width: 16px; text-align: center; color: var(--orbi-suave); }

/* Matrícula e contrato */
.orbi-contrato-texto { white-space: pre-wrap; line-height: 1.6; font-size: .95rem; padding: 16px; border-radius: 12px;
    background: var(--orbi-campo); border: 1px solid var(--orbi-borda); max-height: 560px; overflow-y: auto; }
.orbi-hash { word-break: break-all; font-size: .75rem; color: var(--orbi-suave); }
.orbi-contrato-edicao { font-family: var(--orbi-fonte-mono); font-size: .85rem; line-height: 1.5; }
.orbi-variaveis { display: grid; gap: 6px; }
.orbi-variavel { display: flex; flex-direction: column; align-items: flex-start; gap: 2px; padding: 8px 10px; text-align: left;
    border-radius: 10px; border: 1px solid var(--orbi-borda); background: var(--orbi-campo); color: var(--orbi-texto); }
.orbi-variavel:hover { border-color: var(--orbi-destaque); }
.orbi-variavel small { color: var(--orbi-suave); }
.orbi-aviso-contrato { color: var(--orbi-texto); text-decoration: none; border-color: var(--orbi-aviso); }
.orbi-aviso-contrato:hover { color: var(--orbi-texto); }
.orbi-aviso-contrato > i:first-child { color: var(--orbi-aviso); }

/* ---------- Entrada (login e verificação em duas etapas): layout do Avizuaí, nas cores do OrbiMove ---------- */
.orbi-auth { min-height: 100vh; }
.orbi-auth-split { display: grid; grid-template-columns: 1.05fr 1fr; min-height: 100vh; }

.orbi-auth-hero {
    position: relative; overflow: hidden; color: var(--orbi-branco);
    background:
        radial-gradient(1100px 560px at 15% -10%, rgba(var(--orbi-destaque-rgb), .22) 0%, rgba(var(--orbi-destaque-rgb), 0) 60%),
        radial-gradient(800px 500px at 100% 110%, rgba(var(--orbi-info-forte-rgb), .14) 0%, rgba(var(--orbi-info-forte-rgb), 0) 60%),
        linear-gradient(105deg, rgba(var(--orbi-fundo-rgb), .88) 0%, rgba(var(--orbi-fundo-rgb), .62) 45%, rgba(var(--orbi-fundo-rgb), .30) 100%),
        url('../img/login-hero.jpg');
    /* Imagem gerada por IA (gpt-image-2.5-flare, plugin media-generation): academia vazia ao anoitecer.
       O degradê escurece a esquerda, onde fica o texto, e deixa os equipamentos aparecerem à direita. */
    background-color: var(--orbi-fundo);
    background-size: cover, cover, cover, cover;
    background-position: center, center, center, left center;
    background-repeat: no-repeat;
    display: flex; flex-direction: column; justify-content: space-between; padding: 56px 56px 40px;
    border-right: 1px solid var(--orbi-borda);
}
.orbi-auth-hero::after {
    content: ""; position: absolute; inset: 0; pointer-events: none; opacity: .5;
    background-image: linear-gradient(rgba(var(--orbi-branco-rgb), .035) 1px, transparent 1px),
                      linear-gradient(90deg, rgba(var(--orbi-branco-rgb), .035) 1px, transparent 1px);
    background-size: 44px 44px;
    mask-image: radial-gradient(900px 500px at 20% 20%, var(--orbi-preto) 0%, transparent 75%);
}
.orbi-auth-brilho {
    position: absolute; width: 520px; height: 520px; border-radius: 50%; top: -150px; right: -130px; pointer-events: none;
    background: radial-gradient(circle, rgba(var(--orbi-ativo-rgb), .20) 0%, rgba(var(--orbi-ativo-rgb), 0) 70%);
    animation: orbi-auth-flutuar 16s ease-in-out infinite;
}
@keyframes orbi-auth-flutuar { 0%, 100% { transform: translateY(0); } 50% { transform: translateY(26px); } }
@media (prefers-reduced-motion: reduce) { .orbi-auth-brilho, .orbi-auth-cartao { animation: none; } }

.orbi-auth-topo, .orbi-auth-meio, .orbi-auth-rodape { position: relative; z-index: 1; }
.orbi-auth-selo {
    display: inline-flex; align-items: center; gap: 10px; font-size: 1rem; font-weight: 800; letter-spacing: 1px;
    text-transform: uppercase; color: var(--orbi-ativo); background: rgba(var(--orbi-ativo-rgb), .10);
    border: 1px solid rgba(var(--orbi-ativo-rgb), .30); padding: 12px 22px; border-radius: 999px;
}
.orbi-auth-chamada {
    display: inline-block; font-size: .72rem; font-weight: 700; letter-spacing: 1.5px; text-transform: uppercase;
    color: var(--orbi-ativo); margin-bottom: 18px;
}
.orbi-auth-meio h1 { font-size: 2.5rem; line-height: 1.14; font-weight: 800; letter-spacing: -1px; max-width: 20ch; }
.orbi-auth-lead { margin-top: 16px; font-size: 1.02rem; color: var(--orbi-auth-lead); max-width: 46ch; line-height: 1.55; }
.orbi-auth-lista { list-style: none; padding: 0; margin: 30px 0 0; display: flex; flex-direction: column; gap: 14px; }
.orbi-auth-lista li { display: flex; align-items: center; gap: 12px; font-size: .98rem; color: var(--orbi-auth-lista); }
.orbi-auth-lista li i {
    display: grid; place-items: center; width: 26px; height: 26px; flex: 0 0 26px; border-radius: 8px;
    background: rgba(var(--orbi-ativo-rgb), .14); color: var(--orbi-ativo); font-size: .8rem;
}
.orbi-auth-rodape { display: flex; flex-wrap: wrap; gap: 10px; }
.orbi-auth-confianca {
    display: inline-flex; align-items: center; gap: 7px; font-size: .74rem; font-weight: 600; color: var(--orbi-auth-confianca);
    background: rgba(var(--orbi-branco-rgb), .06); border: 1px solid rgba(var(--orbi-branco-rgb), .10); padding: 7px 12px; border-radius: 999px;
}
.orbi-auth-confianca i { color: var(--orbi-ativo); }

.orbi-auth-painel { display: flex; align-items: center; justify-content: center; padding: 40px 24px; }
.orbi-auth-cartao {
    width: 100%; max-width: 440px; background: var(--orbi-card); border: 1px solid var(--orbi-borda); border-radius: 18px;
    padding: 36px; box-shadow: 0 18px 50px rgba(var(--orbi-sombra-rgb), .35);
    animation: orbi-auth-subir .5s cubic-bezier(.16, 1, .3, 1) both;
}
@keyframes orbi-auth-subir { from { opacity: 0; transform: translateY(14px); } to { opacity: 1; transform: none; } }
.orbi-auth-marca { display: flex; align-items: center; justify-content: center; gap: 12px; margin-bottom: 22px; }
.orbi-auth-marca .orbi-logo-login { margin: 0; text-align: left; }
.orbi-auth-cartao h2 { font-size: 1.5rem; font-weight: 800; letter-spacing: -.5px; margin: 0; }
.orbi-auth-sub { color: var(--orbi-suave); font-size: .92rem; margin: 6px 0 22px; }
.orbi-auth-campo { padding: 12px 14px; border-radius: 11px; }
.orbi-auth-senha { position: relative; }
.orbi-auth-senha .orbi-auth-campo { padding-right: 46px; }
.orbi-auth-olho {
    position: absolute; right: 8px; top: 50%; transform: translateY(-50%); background: none; border: 0;
    color: var(--orbi-suave); padding: 6px 8px; border-radius: 6px;
}
.orbi-auth-olho:hover { color: var(--orbi-texto); }
.orbi-auth-lembrar { margin: 4px 0 20px; }
.orbi-auth-entrar { padding: 12px; border-radius: 11px; font-weight: 700; }
.orbi-auth-ajuda { margin: 16px 0 0; text-align: center; font-size: .85rem; color: var(--orbi-suave); }
.orbi-auth-powered { text-align: center; margin-top: 24px; color: var(--orbi-texto-mudo); font-size: .75rem; }
.orbi-auth-powered a { color: var(--orbi-destaque); text-decoration: none; }
.orbi-auth-alerta {
    display: flex; align-items: flex-start; gap: 8px; padding: 12px 14px; border-radius: 11px; font-size: .86rem;
    margin-bottom: 18px; line-height: 1.45;
}
.orbi-auth-alerta i { margin-top: 3px; }
.orbi-auth-alerta-erro { background: rgba(var(--orbi-perigo-rgb), .12); color: var(--orbi-perigo-texto); border-left: 3px solid var(--orbi-perigo); }
.orbi-auth-alerta-aviso { background: rgba(var(--orbi-aviso-rgb), .12); color: var(--orbi-aviso-claro); border-left: 3px solid var(--orbi-aviso); }
.orbi-auth-alerta-ok { background: rgba(var(--orbi-sucesso-rgb), .12); color: var(--orbi-sucesso-texto); border-left: 3px solid var(--orbi-sucesso); }

@media (max-width: 860px) {
    .orbi-auth-split { grid-template-columns: 1fr; }
    .orbi-auth-hero { padding: 30px 24px; border-right: 0; border-bottom: 1px solid var(--orbi-borda); }
    .orbi-auth-meio h1 { font-size: 1.8rem; }
    .orbi-auth-lead, .orbi-auth-lista { display: none; }
    .orbi-auth-rodape { margin-top: 20px; }
    .orbi-auth-painel { padding: 24px 16px 40px; }
    .orbi-auth-cartao { padding: 28px 22px; }
}

/* ---------- Sessões de login (Minhas sessões e Sessões ativas) ---------- */
.orbi-sess-lista { list-style: none; margin: 0; padding: 0; }
.orbi-sess-item { display: flex; align-items: center; gap: 14px; padding: 14px 0; border-bottom: 1px solid var(--orbi-linha); }
.orbi-sess-item:last-child { border-bottom: 0; }
.orbi-sess-atual { background: linear-gradient(90deg, rgba(var(--orbi-destaque-rgb), .08) 0%, rgba(var(--orbi-destaque-rgb), 0) 60%); }
.orbi-sess-icone {
    flex: 0 0 auto; width: 42px; height: 42px; border-radius: 12px; display: grid; place-items: center;
    background: var(--orbi-ativo-fundo); color: var(--orbi-texto-icone);
}
.orbi-sess-atual .orbi-sess-icone { background: rgba(var(--orbi-destaque-rgb), .16); color: var(--orbi-ativo); }
.orbi-sess-conteudo { flex: 1 1 auto; min-width: 0; }
.orbi-sess-conteudo p { margin: 0; }
.orbi-sess-titulo { font-weight: 600; display: flex; flex-wrap: wrap; align-items: center; gap: 8px; }
.orbi-sess-lembrar { font-size: .75rem; font-weight: 500; color: var(--orbi-suave); }
.orbi-sess-apoio { font-size: .84rem; color: var(--orbi-suave); }
.orbi-sess-datas { font-size: .78rem; color: var(--orbi-texto-mudo); margin-top: 2px !important; }
.orbi-sess-datas i { margin-right: 3px; }
.orbi-sess-acao { display: flex; gap: 8px; flex-wrap: wrap; justify-content: flex-end; }
.orbi-sess-alerta { border-color: rgba(var(--orbi-perigo-rgb), .35); }
.orbi-sess-grupo { border-bottom: 1px solid var(--orbi-linha); }
.orbi-sess-grupo:last-of-type { border-bottom: 0; }
.orbi-sess-grupo > summary { display: flex; align-items: center; gap: 12px; padding: 12px 0; cursor: pointer; list-style: none; }
.orbi-sess-grupo > summary::-webkit-details-marker { display: none; }
.orbi-sess-seta { color: var(--orbi-suave); transition: transform .15s ease; width: 14px; }
.orbi-sess-grupo[open] .orbi-sess-seta { transform: rotate(90deg); }
.orbi-sess-avatar {
    flex: 0 0 auto; width: 36px; height: 36px; border-radius: 50%; display: grid; place-items: center; font-weight: 700;
    background: rgba(var(--orbi-destaque-rgb), .14); color: var(--orbi-ativo);
}
.orbi-sess-aparelhos { display: inline-flex; align-items: center; gap: 6px; color: var(--orbi-suave); font-size: .85rem; white-space: nowrap; }
.orbi-sess-grupo .orbi-sess-lista { padding-left: 50px; }
.orbi-sess-grupo-acao { display: flex; justify-content: flex-end; padding: 0 0 12px; }
@media (max-width: 760px) {
    .orbi-sess-item { flex-wrap: wrap; }
    .orbi-sess-acao { width: 100%; justify-content: flex-start; padding-left: 56px; }
    .orbi-sess-grupo .orbi-sess-lista { padding-left: 0; }
    .orbi-sess-aparelhos span { display: none; }
}

/* ---------- Responsivo (mesmos pontos de quebra do protótipo) ---------- */
@media (max-width: 1100px) {
    .orbi-grid { grid-template-columns: repeat(2, 1fr); }
    .orbi-two { grid-template-columns: 1fr; }
    .orbi-three { grid-template-columns: 1fr 1fr; }
    .orbi-catalogo { grid-template-columns: 1fr; }
    .orbi-catalogo-mapa { position: static; }
    .orbi-mapa-vista svg { max-height: 360px; }
    .orbi-regioes { grid-template-columns: 1fr; }
    .orbi-atalhos, .orbi-tipos { grid-template-columns: repeat(3, 1fr); }
}

/* ---------- Celular: gaveta do menu e barra do aluno (só aparecem abaixo de 760 px) ---------- */
/* ---------- Sino de notificações (topbar) ---------- */
.orbi-sino { position: relative; }
.orbi-sino > summary { list-style: none; cursor: pointer; position: relative; display: grid; place-items: center;
    width: 40px; height: 40px; border-radius: 10px; border: 1px solid var(--orbi-borda); color: var(--orbi-suave); }
.orbi-sino > summary::-webkit-details-marker { display: none; }
.orbi-sino > summary:hover, .orbi-sino[open] > summary { border-color: var(--orbi-destaque); color: var(--orbi-texto); }
.orbi-sino-contador { position: absolute; top: -6px; right: -6px; min-width: 19px; height: 19px; padding: 0 5px;
    border-radius: 10px; background: var(--orbi-aviso-alt); color: var(--orbi-aviso-texto-escuro); font-size: .7rem; font-weight: 800; line-height: 19px; text-align: center; }
.orbi-sino-menu { position: absolute; right: 0; top: calc(100% + 8px); width: 340px; z-index: 40; display: grid; gap: 2px;
    padding: 6px; background: var(--orbi-card); border: 1px solid var(--orbi-borda-forte); border-radius: 12px;
    box-shadow: 0 10px 30px rgba(var(--orbi-sombra-rgb), .45); }
.orbi-sino-cabeca { display: flex; justify-content: space-between; align-items: baseline; padding: 8px 10px 10px;
    border-bottom: 1px solid var(--orbi-borda); margin-bottom: 4px; }
.orbi-sino-cabeca small { color: var(--orbi-suave); }
.orbi-sino-vazio { margin: 0; padding: 14px 10px; color: var(--orbi-suave); }
.orbi-sino-vazio i { color: var(--orbi-destaque); margin-right: 8px; }
.orbi-sino-item { display: flex; gap: 10px; align-items: flex-start; padding: 9px 10px; border-radius: 8px;
    color: var(--orbi-texto); text-decoration: none; }
.orbi-sino-item:hover { background: var(--orbi-ativo-fundo); }
.orbi-sino-item > i { width: 18px; text-align: center; margin-top: 3px; color: var(--orbi-aviso-alt); }
.orbi-sino-item span { display: flex; flex-direction: column; min-width: 0; line-height: 1.3; }
.orbi-sino-item b { font-weight: 600; font-size: .9rem; }
.orbi-sino-item small { color: var(--orbi-suave); font-size: .78rem; }
.orbi-sino-todas { display: block; text-align: center; padding: 9px; margin-top: 4px; border-top: 1px solid var(--orbi-borda);
    color: var(--orbi-ativo); text-decoration: none; font-size: .88rem; }
/* Central de conhecimento: busca de manuais no topbar (some no celular, onde a topbar é estreita) */
.orbi-ajuda { position: relative; margin-right: auto; width: min(420px, 40vw); }
.orbi-ajuda-campo { display: flex; align-items: center; gap: 8px; margin: 0; padding: 0 12px; height: 40px; border-radius: 10px;
    border: 1px solid var(--orbi-borda); color: var(--orbi-suave); cursor: text; }
.orbi-ajuda-campo:focus-within { border-color: var(--orbi-destaque); color: var(--orbi-texto); }
.orbi-ajuda-campo input { flex: 1; min-width: 0; border: 0; outline: 0; background: transparent; color: var(--orbi-texto); }
.orbi-ajuda-menu { position: absolute; left: 0; right: 0; top: calc(100% + 8px); z-index: 40; padding: 6px;
    background: var(--orbi-card); border: 1px solid var(--orbi-borda-forte); border-radius: 12px; box-shadow: 0 10px 30px rgba(var(--orbi-sombra-rgb), .45); }
.orbi-ajuda-menu[hidden] { display: none; }
.orbi-ajuda-abrir { color: var(--orbi-ativo); text-decoration: none; font-size: .85rem; }
.orbi-ajuda-lista { display: grid; gap: 2px; max-height: 52vh; overflow-y: auto; }
.orbi-ajuda-lista .orbi-sino-item > i { color: var(--orbi-destaque); }
@media (max-width: 760px) { .orbi-ajuda { display: none; } }
/* Seletor de ícone (js/icone-picker.js) */
.orbi-icone-botao { width: 38px; height: 34px; padding: 0; display: inline-grid; place-items: center; }
.orbi-icone-grade { display: flex; flex-wrap: wrap; gap: 6px; max-height: 52vh; overflow-y: auto; }
.orbi-icone-opcao { width: 42px; height: 42px; padding: 0; display: grid; place-items: center; }
.orbi-icone-opcao.active { border-color: var(--orbi-destaque); color: var(--orbi-ativo); background: var(--orbi-ativo-fundo); }
/* Paginação padrão das listagens (fragments/paginacao.html) */
.orbi-paginacao { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; gap: 10px 16px;
    margin-top: 16px; padding-top: 12px; border-top: 1px solid var(--orbi-borda); font-size: .88rem; color: var(--orbi-suave); }
.orbi-paginacao-info { display: flex; flex-wrap: wrap; align-items: center; gap: 6px; }
.orbi-paginacao-info b { color: var(--orbi-texto); font-weight: 600; }
.orbi-paginacao-sep { opacity: .6; }
.orbi-paginacao-form { display: inline-flex; align-items: center; gap: 6px; margin: 0; }
.orbi-paginacao-form .form-select { width: auto; padding-top: 2px; padding-bottom: 2px; }
.orbi-paginacao-nav { display: flex; flex-wrap: wrap; gap: 4px; }
.orbi-pagina { min-width: 34px; height: 34px; padding: 0 8px; display: inline-grid; place-items: center; border-radius: 8px;
    border: 1px solid var(--orbi-borda); color: var(--orbi-texto); text-decoration: none; }
.orbi-pagina:hover { border-color: var(--orbi-destaque); color: var(--orbi-ativo); }
.orbi-pagina.active { background: var(--orbi-ativo-fundo); border-color: var(--orbi-destaque); color: var(--orbi-ativo); font-weight: 700; }
.orbi-pagina.disabled { opacity: .4; pointer-events: none; }
/* Página de notificações */
.orbi-notif { display: flex; gap: 12px; align-items: flex-start; padding: 12px 0; border-bottom: 1px solid var(--orbi-borda); }
.orbi-notif:last-child { border-bottom: 0; }
.orbi-notif > i { width: 22px; text-align: center; margin-top: 3px; color: var(--orbi-aviso-alt); }
.orbi-notif-resolvida > i { color: var(--orbi-suave); }
.orbi-notif-corpo { flex: 1; min-width: 0; }
.orbi-notif-corpo b { display: block; }
.orbi-notif-corpo small { color: var(--orbi-suave); }

/* Cronômetro de descanso (tela de treino) */
.orbi-cronometro { position: fixed; left: 50%; bottom: 20px; transform: translateX(-50%); z-index: 50; display: flex;
    align-items: center; gap: 12px; padding: 10px 14px; border-radius: 14px; background: var(--orbi-card);
    border: 1px solid var(--orbi-destaque); box-shadow: 0 10px 30px rgba(var(--orbi-sombra-rgb), .5); }
.orbi-cronometro[hidden] { display: none; }
.orbi-cronometro > i { color: var(--orbi-destaque); }
.orbi-cronometro-tempo { font-size: 1.5rem; font-weight: 800; font-variant-numeric: tabular-nums; min-width: 3.2ch; }
.orbi-cronometro-texto { color: var(--orbi-suave); font-size: .85rem; }
.orbi-cronometro-fim { border-color: var(--orbi-aviso-alt); }
.orbi-cronometro-fim .orbi-cronometro-tempo, .orbi-cronometro-fim > i { color: var(--orbi-aviso-alt); }

/* PAR-Q e fotos de evolução */
.orbi-parq { border: 0; border-bottom: 1px solid var(--orbi-borda); padding: 12px 0; margin: 0; }
.orbi-parq legend { font-size: .95rem; font-weight: 500; margin-bottom: 8px; float: none; }
.orbi-fotos { display: flex; flex-wrap: wrap; gap: 10px; }
.orbi-foto { margin: 0; width: 120px; }
.orbi-foto img { width: 120px; height: 160px; object-fit: cover; border-radius: 8px; border: 1px solid var(--orbi-borda); }
.orbi-foto figcaption { display: flex; justify-content: space-between; align-items: center; font-size: .8rem; color: var(--orbi-suave); margin-top: 4px; }

.orbi-trancamento { padding: 8px 0; border-bottom: 1px solid var(--orbi-borda); }
.orbi-trancamento:last-of-type { border-bottom: 0; }

.orbi-meta { padding: 10px 0; border-bottom: 1px solid var(--orbi-borda); }
.orbi-meta-barra { height: 8px; border-radius: 4px; background: var(--orbi-campo); margin-top: 8px; overflow: hidden; }
.orbi-meta-barra span { display: block; height: 100%; background: linear-gradient(90deg, var(--orbi-destaque-escuro), var(--orbi-ativo)); }

/* Conquistas e ranking */
.orbi-medalhas { display: grid; grid-template-columns: repeat(auto-fill, minmax(160px, 1fr)); gap: 12px; }
.orbi-medalha { display: flex; flex-direction: column; align-items: center; text-align: center; gap: 4px; padding: 16px 10px;
    border-radius: 12px; background: var(--orbi-card); border: 1px solid var(--orbi-borda); opacity: .55; }
.orbi-medalha > i { font-size: 1.8rem; color: var(--orbi-suave); margin-bottom: 4px; }
.orbi-medalha small { color: var(--orbi-suave); font-size: .78rem; }
.orbi-medalha-obtida { opacity: 1; border-color: rgba(var(--orbi-aviso-alt-rgb), .6); }
.orbi-medalha-obtida > i { color: var(--orbi-aviso-alt); }
.orbi-medalha-status { font-weight: 600; }
.orbi-ranking { list-style: none; padding: 0; margin: 0; }
.orbi-ranking li { display: flex; gap: 12px; align-items: center; padding: 8px 0; border-bottom: 1px solid var(--orbi-borda); }
.orbi-ranking li b { margin-left: auto; }
.orbi-ranking-pos { width: 2.2rem; color: var(--orbi-suave); font-weight: 700; }
.orbi-ranking-eu { color: var(--orbi-ativo); }

.orbi-menu-fundo, .orbi-topbar-menu, .orbi-topbar-marca, .orbi-barra-aluno { display: none; }
.orbi-topbar-menu { width: 40px; height: 40px; place-items: center; border-radius: 10px; border: 1px solid var(--orbi-borda);
    background: var(--orbi-campo); color: var(--orbi-texto); font-size: 1.05rem; }
.orbi-topbar-marca { font-weight: 850; font-size: 21px; letter-spacing: -1px; color: var(--orbi-texto); text-decoration: none; margin-left: 10px; }
.orbi-topbar-marca span { color: var(--orbi-destaque); }
.orbi-barra-aluno { position: fixed; left: 0; right: 0; bottom: 0; z-index: 46; grid-auto-flow: column; grid-auto-columns: 1fr;
    padding: 6px 4px calc(6px + env(safe-area-inset-bottom)); background: rgba(var(--orbi-lateral-rgb), .97); border-top: 1px solid var(--orbi-borda); }
.orbi-barra-aluno a, .orbi-barra-aluno button { display: flex; flex-direction: column; align-items: center; gap: 3px; padding: 6px 2px;
    border: 0; background: none; color: var(--orbi-suave); font-size: 11px; text-decoration: none; border-radius: 10px; }
.orbi-barra-aluno i { font-size: 1.15rem; }
.orbi-barra-aluno .active { color: var(--orbi-ativo); }

@media (max-width: 760px) {
    /* Menu em gaveta: fora da tela até o ☰ da topbar abrir (sem transform: a topbar, fixa, é filha da gaveta) */
    .orbi-aside { width: min(290px, 86vw); left: -100%; right: auto; z-index: 50; transition: left .2s ease; padding-top: 72px; }
    .orbi-aside > .orbi-logo { display: none; } /* a marca já está na topbar */
    .orbi-aside:has(.orbi-barra-aluno) { padding-bottom: 84px; }
    body.orbi-menu-aberto .orbi-aside { left: 0; box-shadow: 0 0 40px rgba(var(--orbi-sombra-rgb), .6); }
    body.orbi-menu-aberto { overflow: hidden; }
    /* O fundo começa na borda da gaveta, para não escurecer o próprio menu */
    .orbi-menu-fundo { display: block; position: fixed; top: 0; bottom: 0; left: min(290px, 86vw); right: 0; z-index: 45;
        background: rgba(var(--orbi-sombra-rgb), .55); opacity: 0; pointer-events: none; transition: opacity .2s ease; }
    body.orbi-menu-aberto .orbi-menu-fundo { opacity: 1; pointer-events: auto; }
    .orbi-topbar { left: 0; height: 58px; padding: 0 12px; justify-content: space-between; z-index: 47; }
    .orbi-topbar-menu { display: inline-grid; }
    .orbi-topbar-marca { display: inline-block; margin-right: auto; }
    .orbi-usuario span, .orbi-usuario .orbi-seta { display: none; }
    .orbi-topbar .orbi-usuario { padding: 7px 9px; }
    .orbi-conta-menu { position: fixed; right: 12px; top: 62px; width: min(280px, calc(100vw - 24px)); }
    .orbi-sino-menu { position: fixed; right: 12px; top: 62px; width: min(340px, calc(100vw - 24px)); }
    body:has(.orbi-barra-aluno) .orbi-cronometro { bottom: 84px; } /* acima da barra do aluno */
    /* Barra do aluno: o menu da conta abre logo acima dela quando vem pelo botão "Conta" */
    .orbi-barra-aluno { display: grid; }
    body:has(.orbi-barra-aluno) .orbi-main { padding-bottom: 88px; }

    .orbi-main { margin: 0; padding: 18px; padding-top: 76px; }
    .orbi-top { align-items: flex-start; flex-direction: column; }
    .orbi-top h1 { font-size: 25px; }
    .orbi-grid { grid-template-columns: 1fr 1fr; gap: 10px; }
    .orbi-card { padding: 16px; }
    .orbi-metric strong { font-size: 24px; }
    .orbi-atalhos, .orbi-tipos { grid-template-columns: repeat(3, 1fr); }
    .orbi-three { grid-template-columns: 1fr; }
    .orbi-bars { gap: 6px; padding: 0 2px 5px; }
}

/* Cards de métrica que são links (Faturas: a vencer / vencidas) */
a.orbi-metric { color: inherit; }
a.orbi-metric:hover { border-color: rgba(var(--orbi-info-rgb), .35); }

/* Pagamentos da fatura */
.orbi-pagamento + .orbi-pagamento { border-top: 1px solid rgba(var(--orbi-neutro-rgb), .15); margin-top: 14px; padding-top: 14px; }
.orbi-pagamento-estornado { opacity: .7; }

/* Fluxo de caixa e DRE */
.orbi-mes { align-items: center; gap: 10px; }
.orbi-mes b { min-width: 150px; text-align: center; }
.orbi-metric-ativo { border-color: rgba(var(--orbi-sucesso-rgb), .6); }
.orbi-fluxo-resumo { display: grid; grid-template-columns: repeat(auto-fit, minmax(160px, 1fr)); gap: 12px; margin-bottom: 16px; }
.orbi-fluxo-resumo div { background: rgba(var(--orbi-neutro-rgb), .06); border-radius: 10px; padding: 10px 14px; }
.orbi-fluxo-resumo small { display: block; color: var(--orbi-neutro); font-size: .78rem; }
.orbi-fluxo-resumo b { font-size: 1.15rem; }
.orbi-dre td, .orbi-dre th { font-size: .86rem; }
.orbi-dre-destaque td { font-weight: 700; border-top: 1px solid rgba(var(--orbi-neutro-rgb), .25); }
.orbi-dre-detalhe td:first-child { padding-left: 28px; color: var(--orbi-neutro); }
.orbi-dre-total { font-weight: 700; background: rgba(var(--orbi-neutro-rgb), .06); }
/* Primeira coluna fixa: no celular, o nome da linha continua visível ao rolar os 12 meses.
   Fundo opaco (a cor do cartão) para as células roladas não aparecerem por baixo. */
.orbi-dre th:first-child, .orbi-dre td:first-child { position: sticky; left: 0; z-index: 1; background: var(--orbi-card);
    box-shadow: 1px 0 0 var(--orbi-borda); }
.orbi-dre .orbi-dre-total td:first-child { background: var(--orbi-superficie-3); }

/* Folha de pagamento */
.orbi-alerta { background: rgba(var(--orbi-aviso-rgb), .12); border: 1px solid rgba(var(--orbi-aviso-rgb), .35); color: var(--orbi-aviso-claro); border-radius: 12px; padding: 10px 14px; }
.orbi-folha td { vertical-align: top; }
.orbi-folha input.form-control-sm { min-width: 130px; }
.orbi-folha input[readonly] { background: transparent; border-color: transparent; padding-left: 0; }
.orbi-folha input[readonly]::placeholder { color: transparent; }

/* Portaria: aluno bloqueado com liberação pela recepção */
.orbi-item-acesso { align-items: flex-start; }
.orbi-liberar { display: flex; gap: 6px; flex-wrap: wrap; justify-content: flex-end; max-width: 320px; }
.orbi-liberar input { min-width: 180px; flex: 1; }
.orbi-checkin-bloqueio { color: var(--orbi-aviso-claro); max-width: 320px; }

/* Construtor de ficha só para leitura (quem só pode ver a ficha, ex.: o aluno) */
.orbi-somente-leitura .orbi-biblioteca, .orbi-somente-leitura .orbi-cf-acoes { display: none; }
.orbi-somente-leitura input, .orbi-somente-leitura select { pointer-events: none; background: transparent; }

/* Verificação em duas etapas */
.orbi-linha-falha td { color: var(--orbi-perigo-claro); }
.orbi-texto-longo { white-space: pre-line; line-height: 1.6; }

/* ---------- Minha conta (modelo das telas de Minha conta do Avizuaí, nas cores do OrbiMove) ----------
   Cartão com faixa superior (selo + título + apoio + selos à direita), corpo e rodapé; coluna lateral com cartões de
   apoio; passos numerados, QR code, chave copiável e códigos de recuperação do MFA. */
.orbi-mc-grade { display: grid; grid-template-columns: minmax(0, 1.45fr) minmax(0, 1fr); gap: 20px; align-items: start; }
.orbi-mc-grade-unica { max-width: 980px; }
.orbi-mc-coluna { display: grid; gap: 20px; min-width: 0; }
.orbi-mc-card { background: var(--orbi-card); border: 1px solid var(--orbi-borda); border-radius: 16px; overflow: hidden; }
.orbi-mc-topo {
    display: flex; align-items: center; gap: 14px; padding: 20px 26px;
    background: linear-gradient(135deg, rgba(var(--orbi-destaque-rgb), .10) 0%, rgba(var(--orbi-destaque-rgb), 0) 70%);
    border-bottom: 1px solid var(--orbi-borda);
}
.orbi-mc-selo {
    flex: 0 0 auto; width: 46px; height: 46px; border-radius: 50%; display: grid; place-items: center;
    background: rgba(var(--orbi-destaque-rgb), .16); color: var(--orbi-ativo); font-size: 1.05rem;
}
.orbi-mc-titulo { margin: 0; font-size: 1.02rem; font-weight: 700; color: var(--orbi-texto); display: flex; flex-wrap: wrap; align-items: center; gap: 8px; }
.orbi-mc-apoio { margin: 3px 0 0; font-size: .84rem; color: var(--orbi-suave); }
.orbi-mc-selos { margin-left: auto; display: flex; flex-wrap: wrap; gap: 6px; justify-content: flex-end; }
.orbi-mc-corpo { padding: 22px 26px; }
.orbi-mc-rodape { padding: 13px 26px; font-size: .8rem; color: var(--orbi-suave); border-top: 1px solid var(--orbi-borda); }
.orbi-mc-rodape i { margin-right: 6px; }

/* Selos (badges) */
.orbi-mc-badge { display: inline-flex; align-items: center; gap: 6px; font-size: .74rem; font-weight: 600; white-space: nowrap;
    padding: 4px 10px; border-radius: 999px; border: 1px solid transparent; }
.orbi-mc-badge-ok { color: var(--orbi-sucesso-claro); background: rgba(var(--orbi-sucesso-rgb), .12); border-color: rgba(var(--orbi-sucesso-rgb), .30); }
.orbi-mc-badge-neutro { color: var(--orbi-neutro-claro); background: rgba(var(--orbi-neutro-rgb), .10); border-color: rgba(var(--orbi-neutro-rgb), .25); }
.orbi-mc-badge-aviso { color: var(--orbi-aviso-claro); background: rgba(var(--orbi-aviso-rgb), .12); border-color: rgba(var(--orbi-aviso-rgb), .30); }

/* Cartões da coluna lateral */
.orbi-mc-lateral { background: var(--orbi-card); border: 1px solid var(--orbi-borda); border-radius: 16px; padding: 22px 24px; }
.orbi-mc-lateral-alerta { border-color: rgba(var(--orbi-perigo-rgb), .35);
    background: linear-gradient(135deg, rgba(var(--orbi-perigo-rgb), .07) 0%, var(--orbi-card) 65%); }
.orbi-mc-lateral-destaque { border-color: rgba(var(--orbi-destaque-rgb), .35);
    background: linear-gradient(135deg, rgba(var(--orbi-destaque-rgb), .08) 0%, var(--orbi-card) 65%); }
.orbi-mc-lateral-selo { width: 40px; height: 40px; border-radius: 11px; display: grid; place-items: center; margin-bottom: 12px;
    background: var(--orbi-ativo-fundo); color: var(--orbi-texto-icone); }
.orbi-mc-lateral-destaque .orbi-mc-lateral-selo { background: rgba(var(--orbi-destaque-rgb), .16); color: var(--orbi-ativo); }
.orbi-mc-lateral-alerta .orbi-mc-lateral-selo { background: rgba(var(--orbi-perigo-rgb), .14); color: var(--orbi-perigo-claro); }
.orbi-mc-lateral-titulo { margin: 0 0 4px; font-size: .96rem; font-weight: 700; color: var(--orbi-texto); }
.orbi-mc-lateral-texto { margin: 0; font-size: .85rem; color: var(--orbi-suave); line-height: 1.5; }
.orbi-mc-lateral-acao { margin-top: 16px; }
.orbi-mc-lista { margin: 8px 0 0; padding-left: 18px; font-size: .85rem; color: var(--orbi-suave); }
.orbi-mc-lista li { margin-bottom: 4px; }

/* Passos numerados */
.orbi-mc-passos { list-style: none; margin: 0 0 22px; padding: 0; display: grid; gap: 12px; }
.orbi-mc-passos li { display: flex; gap: 12px; align-items: flex-start; font-size: .88rem; color: var(--orbi-suave); line-height: 1.45; }
.orbi-mc-passos strong { color: var(--orbi-texto); }
.orbi-mc-num { flex: 0 0 26px; height: 26px; border-radius: 50%; display: grid; place-items: center; font-size: .78rem; font-weight: 700;
    background: rgba(var(--orbi-destaque-rgb), .16); color: var(--orbi-ativo); }

/* Ativação do MFA: QR + chave + código */
.orbi-mc-ativacao { display: grid; grid-template-columns: auto minmax(0, 1fr); gap: 24px; align-items: start; }
.orbi-mc-rotulo { display: block; font-size: .74rem; font-weight: 700; letter-spacing: .6px; text-transform: uppercase;
    color: var(--orbi-suave); margin-bottom: 8px; }
.orbi-mc-qr { display: inline-block; background: var(--orbi-branco); padding: 10px; border-radius: 14px; box-shadow: 0 8px 24px rgba(var(--orbi-sombra-rgb), .35); }
.orbi-mc-qr img { display: block; width: 180px; height: 180px; }
.orbi-mc-chave { display: flex; align-items: center; gap: 8px; padding: 10px 12px; border-radius: 11px;
    background: var(--orbi-campo); border: 1px dashed var(--orbi-borda-forte); }
.orbi-mc-chave code { flex: 1 1 auto; min-width: 0; word-break: break-all; color: var(--orbi-ativo); font-size: .9rem; letter-spacing: .04em; }
.orbi-mc-copiar { flex: 0 0 auto; background: none; border: 1px solid var(--orbi-borda-forte); color: var(--orbi-suave);
    border-radius: 8px; padding: 5px 9px; font-size: .8rem; }
.orbi-mc-copiar:hover { color: var(--orbi-texto); border-color: var(--orbi-destaque); }
.orbi-mc-codigo-campo { font-size: 1.35rem; letter-spacing: .35em; text-align: center; font-variant-numeric: tabular-nums; }

/* Códigos de recuperação */
.orbi-mc-aviso { display: flex; gap: 10px; align-items: flex-start; padding: 12px 14px; border-radius: 11px; margin-bottom: 16px;
    background: rgba(var(--orbi-aviso-rgb), .10); border-left: 3px solid var(--orbi-aviso); color: var(--orbi-aviso-claro); font-size: .86rem; line-height: 1.45; }
.orbi-mc-aviso i { margin-top: 3px; }
.orbi-mc-codigos { list-style: none; padding: 0; margin: 0 0 16px; display: grid; grid-template-columns: repeat(2, 1fr); gap: 8px; }
.orbi-mc-codigos code { display: block; text-align: center; padding: 9px 6px; border-radius: 9px; background: var(--orbi-campo);
    border: 1px solid var(--orbi-borda); color: var(--orbi-texto); font-size: 1.02rem; letter-spacing: .08em; }

/* Contador de status (códigos restantes) */
.orbi-mc-status { display: flex; align-items: center; justify-content: space-between; gap: 16px; flex-wrap: wrap;
    padding: 14px 16px; border-radius: 12px; background: var(--orbi-campo); border: 1px solid var(--orbi-borda); }
.orbi-mc-status-valor { font-size: 1.6rem; font-weight: 800; color: var(--orbi-ativo); line-height: 1; }
.orbi-mc-status-alerta .orbi-mc-status-valor { color: var(--orbi-aviso); }
.orbi-mc-status-rotulo { display: block; font-size: .8rem; color: var(--orbi-suave); margin-top: 4px; }
.orbi-mc-zona-perigo { margin-top: 18px; padding-top: 16px; border-top: 1px dashed var(--orbi-borda-forte);
    display: flex; align-items: flex-end; justify-content: space-between; gap: 16px; flex-wrap: wrap; }
.orbi-mc-zona-perigo p { margin: 0; font-size: .82rem; color: var(--orbi-suave); }

/* Formulário de senha: regras conferidas enquanto digita */
.orbi-mc-regras { list-style: none; margin: 8px 0 0; padding: 0; display: grid; gap: 4px; font-size: .8rem; color: var(--orbi-suave); }
.orbi-mc-regras i { width: 16px; }
.orbi-mc-regras .ok { color: var(--orbi-sucesso-claro); }
.orbi-mc-regras .falta { color: var(--orbi-perigo-claro); }

/* Itens de lista dentro do cartão (holerites) */
.orbi-mc-itens { list-style: none; margin: 0; padding: 0; }
.orbi-mc-item { display: flex; align-items: center; gap: 14px; padding: 14px 26px; border-bottom: 1px solid var(--orbi-borda); }
.orbi-mc-item:last-child { border-bottom: 0; }
.orbi-mc-item-icone { flex: 0 0 auto; width: 40px; height: 40px; border-radius: 11px; display: grid; place-items: center;
    background: var(--orbi-ativo-fundo); color: var(--orbi-texto-icone); }
.orbi-mc-item-conteudo { flex: 1 1 auto; min-width: 0; }
.orbi-mc-item-conteudo b { display: block; }
.orbi-mc-item-conteudo small { color: var(--orbi-suave); }
.orbi-mc-vazio { padding: 36px 26px; text-align: center; color: var(--orbi-suave); font-size: .9rem; }
.orbi-mc-vazio i { display: block; font-size: 2rem; opacity: .3; margin-bottom: 10px; }
.orbi-mc-chips { display: flex; flex-wrap: wrap; gap: 8px; margin: 0 0 20px; padding: 0; list-style: none; }
.orbi-mc-chips li { display: inline-flex; align-items: center; gap: 7px; font-size: .8rem; color: var(--orbi-texto-cartao); padding: 6px 11px;
    border-radius: 999px; background: var(--orbi-campo); border: 1px solid var(--orbi-borda); }
.orbi-mc-chips i { color: var(--orbi-ativo); }
.orbi-mc-sessoes .orbi-sess-item { padding-left: 26px; padding-right: 26px; }
.orbi-mc-texto-longo { white-space: pre-line; line-height: 1.7; color: var(--orbi-texto-cartao); font-size: .93rem; }

/* No cartão estreito do login, o QR fica em cima da chave */
.orbi-auth-cartao .orbi-mc-ativacao { grid-template-columns: 1fr; justify-items: center; gap: 18px; }
.orbi-auth-cartao .orbi-mc-ativacao > div { width: 100%; }

@media (max-width: 1100px) {
    .orbi-mc-grade { grid-template-columns: 1fr; }
}
@media (max-width: 760px) {
    .orbi-mc-topo { padding: 16px 18px; flex-wrap: wrap; }
    .orbi-mc-selos { margin-left: 0; justify-content: flex-start; width: 100%; }
    .orbi-mc-corpo { padding: 18px; }
    .orbi-mc-rodape, .orbi-mc-item { padding-left: 18px; padding-right: 18px; }
    .orbi-mc-ativacao { grid-template-columns: 1fr; justify-items: center; }
    .orbi-mc-ativacao > div { width: 100%; }
}

/* ---------- Dados da academia: layout compacto (empresa + logotipo, endereço, regras lado a lado) ---------- */
.orbi-acad-linha { display: grid; grid-template-columns: minmax(0, 2.2fr) minmax(260px, 1fr); gap: 16px; align-items: stretch; }
.orbi-acad-regras { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; align-items: stretch; }
.orbi-acad-linha .orbi-card, .orbi-acad-regras .orbi-card { margin-bottom: 0; }
.orbi-acad-icone { color: var(--orbi-ativo); font-size: .9em; }
.orbi-acad-logo { display: flex; flex-direction: column; }
.orbi-acad-logo-caixa { flex: 1 1 auto; min-height: 120px; max-height: 170px; display: grid; place-items: center; padding: 12px;
    border-radius: 12px; border: 1px dashed var(--orbi-borda-forte);
    background: repeating-conic-gradient(rgba(var(--orbi-branco-rgb), .04) 0% 25%, transparent 0% 50%) 50% / 18px 18px; }
.orbi-acad-logo-caixa img { max-width: 100%; max-height: 140px; object-fit: contain; }
.orbi-acad-logo-vazio { display: flex; flex-direction: column; align-items: center; gap: 6px; color: var(--orbi-suave); font-size: .85rem; }
.orbi-acad-logo-vazio i { font-size: 1.8rem; opacity: .35; }
@media (max-width: 1100px) {
    .orbi-acad-linha { grid-template-columns: 1fr; }
    .orbi-acad-regras { grid-template-columns: 1fr; }
}

/* Registro de treino: musculação vai pela ficha */
.orbi-pela-ficha { margin: 0 0 8px; padding: 14px 16px; border-radius: 12px; background: rgba(var(--orbi-destaque-rgb), .07);
    border: 1px solid rgba(var(--orbi-destaque-rgb), .25); }

/* Larguras e cores que antes eram style="..." no HTML (a CSP não aceita estilo inline) */
.orbi-campo-ordem { width: 80px; }
.orbi-col-observacao { max-width: 220px; }
.orbi-col-posicao { width: 110px; }
.orbi-icone-destaque { color: var(--orbi-destaque); }

/* Grupo de opções (btn-check): a escolhida fica com a cor de destaque — sem isso, a marcada parecia a apagada */
.btn-check:checked + .btn.orbi-btn { background: var(--orbi-destaque); border-color: var(--orbi-destaque); color: var(--orbi-destaque-texto); }

/* ---------- Assinaturas (plataforma, titular, cadastro guiado e primeiros passos) ---------- */
.orbi-assin-banner { display: flex; gap: 12px; align-items: center; justify-content: space-between; flex-wrap: wrap; border-radius: 12px; padding: 12px 16px; }
.orbi-assin-banner-info { background: rgba(var(--orbi-info-forte-rgb), .14); border: 1px solid rgba(var(--orbi-info-forte-rgb), .4); }
.orbi-assin-banner-aviso { background: rgba(var(--orbi-aviso-rgb), .12); border: 1px solid rgba(var(--orbi-aviso-rgb), .4); }
.orbi-assin-banner-perigo { background: rgba(var(--orbi-perigo-rgb), .14); border: 1px solid rgba(var(--orbi-perigo-rgb), .45); }
.orbi-assin-tipo { font-size: 10px; font-weight: 700; letter-spacing: .4px; text-transform: uppercase; border-radius: 6px; padding: 1px 6px;
    background: rgba(var(--orbi-neutro-rgb), .16); color: var(--orbi-neutro-claro); }
.orbi-assin-tipo-individual { background: rgba(var(--orbi-destaque-rgb), .16); color: var(--orbi-destaque); }
.orbi-assin-tipo-personal { background: rgba(var(--orbi-info-forte-rgb), .18); color: var(--orbi-info); }
.orbi-assin-marca { font-size: 12px; color: var(--orbi-suave); display: block; margin-top: 3px; }
.orbi-assin-valor { font-size: 30px; font-weight: 750; color: var(--orbi-destaque); line-height: 1.1; }
.orbi-assin-conta { font-family: var(--orbi-fonte-mono); font-size: 12px; color: var(--orbi-suave); }
.orbi-assin-fotos { display: flex; gap: 3px; align-items: flex-end; height: 64px; margin: 10px 0 4px; }
.orbi-assin-fotos span { flex: 1; background: rgba(var(--orbi-destaque-rgb), .35); border-radius: 3px 3px 0 0; min-height: 2px; }
.orbi-assin-fotos span.pico { background: var(--orbi-destaque); }
.orbi-assin-fotos span.hoje { background: rgba(var(--orbi-info-forte-rgb), .6); }
.orbi-assin-escolher { cursor: pointer; text-decoration: none; color: var(--orbi-texto); }
.orbi-assin-escolher:hover { border-color: var(--orbi-borda-forte); color: var(--orbi-texto); }
.orbi-assin-escolher.selecionado { border-color: var(--orbi-destaque); box-shadow: 0 0 0 1px var(--orbi-destaque); }
.orbi-assin-economia { font-size: 12px; color: var(--orbi-sucesso); }
.orbi-assin-acoes form { display: inline-block; margin: 0 6px 8px 0; }
.orbi-assin-previa { border-color: rgba(var(--orbi-destaque-rgb), .55); }

/* Cadastro guiado: passos e opções grandes */
.orbi-cadastro-passos { display: flex; gap: 6px; margin: 4px 0 22px; padding: 0; }
.orbi-cadastro-passos li { flex: 1; list-style: none; font-size: 11px; color: var(--orbi-suave); }
.orbi-cadastro-passos li::before { content: ""; display: block; height: 4px; border-radius: 4px; background: var(--orbi-linha); margin-bottom: 6px; }
.orbi-cadastro-passos li.feito::before, .orbi-cadastro-passos li.atual::before { background: var(--orbi-destaque); }
.orbi-cadastro-passos li.atual { color: var(--orbi-texto); font-weight: 600; }
.orbi-cadastro-opcoes { display: grid; gap: 10px; }
.orbi-cadastro-opcao { display: flex; gap: 14px; align-items: center; text-align: left; width: 100%; padding: 14px 16px; border-radius: 14px;
    border: 1px solid var(--orbi-borda); background: var(--orbi-campo); color: var(--orbi-texto); cursor: pointer; }
.orbi-cadastro-opcao:hover { border-color: var(--orbi-borda-forte); }
.orbi-cadastro-opcao.selecionado, .btn-check:checked + .orbi-cadastro-opcao { border-color: var(--orbi-destaque); box-shadow: 0 0 0 1px var(--orbi-destaque); }
.orbi-cadastro-opcao .orbi-cadastro-icone { width: 46px; height: 46px; border-radius: 12px; display: grid; place-items: center; flex: none;
    background: rgba(var(--orbi-destaque-rgb), .14); color: var(--orbi-destaque); font-size: 20px; }
.orbi-cadastro-opcao b { display: block; font-size: 15px; }
.orbi-cadastro-opcao small { color: var(--orbi-suave); }
.orbi-cadastro-opcao .orbi-cadastro-preco { margin-left: auto; text-align: right; white-space: nowrap; }
.orbi-cadastro-opcao .orbi-cadastro-preco strong { color: var(--orbi-destaque); font-size: 18px; display: block; }
.orbi-cadastro-resumo { border: 1px dashed var(--orbi-borda-forte); border-radius: 12px; padding: 10px 14px; font-size: 13px; }
.orbi-cadastro-codigo { letter-spacing: 10px; font-size: 26px; font-weight: 700; text-align: center; }
.orbi-auth-cartao.orbi-cadastro-largo { max-width: 680px; width: 100%; }

/* Primeiros passos: lista de tarefas */
.orbi-passo { display: flex; gap: 14px; align-items: center; padding: 14px 4px; border-bottom: 1px solid var(--orbi-linha); }
.orbi-passo:last-child { border-bottom: 0; }
.orbi-passo-st { width: 30px; height: 30px; border-radius: 50%; flex: none; display: grid; place-items: center; font-size: 13px;
    border: 2px solid var(--orbi-borda-forte); color: var(--orbi-suave); }
.orbi-passo.feito .orbi-passo-st { background: var(--orbi-destaque); border-color: var(--orbi-destaque); color: var(--orbi-destaque-texto); }
.orbi-passo.pulado .orbi-passo-st { border-style: dashed; }
.orbi-passo-txt { flex: 1; min-width: 0; }
.orbi-passo-txt b { display: block; }
.orbi-passo-txt small { color: var(--orbi-suave); }
.orbi-passo-chip { font-size: 11px; font-weight: 600; border-radius: 99px; padding: 2px 9px; white-space: nowrap; }
.orbi-passo-chip-pend { background: rgba(var(--orbi-aviso-rgb), .14); color: var(--orbi-aviso); }
.orbi-passo-chip-ok { background: rgba(var(--orbi-sucesso-rgb), .16); color: var(--orbi-sucesso); }
.orbi-passo-chip-neutro { background: rgba(var(--orbi-neutro-rgb), .14); color: var(--orbi-neutro-claro); }
.orbi-passo-chip-breve { background: rgba(var(--orbi-info-forte-rgb), .18); color: var(--orbi-info); }
.orbi-passo-porque { background: var(--orbi-nota-fundo); color: var(--orbi-nota-texto); border-radius: 14px; padding: 16px; font-size: 14px; }
.orbi-passo-porque h3 { font-size: 15px; color: var(--orbi-texto); }
.orbi-passo-celebra { text-align: center; padding: 34px 20px; }
.orbi-passo-celebra .orbi-passo-celebra-icone { width: 84px; height: 84px; border-radius: 50%; margin: 0 auto 16px; display: grid; place-items: center;
    font-size: 36px; background: rgba(var(--orbi-destaque-rgb), .16); color: var(--orbi-destaque); }
.orbi-contrato-previa { background: var(--orbi-campo); border: 1px solid var(--orbi-borda); border-radius: 12px; padding: 14px 16px; font-size: 13px;
    max-height: 260px; overflow: auto; white-space: pre-line; }

/* ---------- Calendário dos campos de data (flatpickr, data-datepicker="true" — static/js/datepicker.js) ----------
   Tema portado do OrbiDesk (que o trouxe do Avizuaí), com as cores trocadas pelas variáveis --orbi-*: assim vale no
   tema claro e no escuro. A base da biblioteca (css/flatpickr.min.css) é carregada ANTES deste arquivo; invertida,
   o calendário volta ao visual padrão da lib, sem erro nenhum.
   Cartão: cabeçalho (mês) e rodapé (Hoje) em faixa cinza, grade de dias no fundo do cartão. Sem overflow:hidden,
   que recortaria a lista do seletor de mês (<select> nativo). */
.flatpickr-calendar {
    background: var(--orbi-card);
    box-shadow: 0 12px 34px rgba(var(--orbi-lateral-rgb), .22);
    border-radius: 10px;
    border: 1px solid var(--orbi-borda);
    padding: 0;
    width: auto;
    font-size: .875rem;
}
/* A setinha do balão desalinhava sobre campos pequenos */
.flatpickr-calendar.arrowTop::before, .flatpickr-calendar.arrowTop::after,
.flatpickr-calendar.arrowBottom::before, .flatpickr-calendar.arrowBottom::after { display: none; }
/* height + position:relative obrigatórios: título e setas são position:absolute na lib */
.flatpickr-months {
    background: var(--orbi-superficie-2);
    border-bottom: 1px solid var(--orbi-borda);
    border-radius: 9px 9px 0 0;
    height: 40px;
    margin-bottom: 0;
    position: relative;
}
.flatpickr-months .flatpickr-month { color: var(--orbi-texto); fill: var(--orbi-texto); height: 40px; }
.flatpickr-current-month { align-items: center; display: flex; font-size: .95rem; font-weight: 700; height: 40px; justify-content: center; padding: 0; }
.flatpickr-months .flatpickr-prev-month,
.flatpickr-months .flatpickr-next-month { align-items: center; display: flex; height: 40px; top: 0; color: var(--orbi-texto); fill: var(--orbi-texto); }
.flatpickr-current-month .flatpickr-monthDropdown-months,
.flatpickr-current-month input.cur-year { color: var(--orbi-texto); font-weight: 700; }
.flatpickr-current-month .flatpickr-monthDropdown-months { background: var(--orbi-superficie-2); }
.flatpickr-current-month .flatpickr-monthDropdown-months .flatpickr-monthDropdown-month { background: var(--orbi-card); color: var(--orbi-texto); }
.flatpickr-months .flatpickr-prev-month:hover svg,
.flatpickr-months .flatpickr-next-month:hover svg { fill: var(--orbi-destaque); }
span.flatpickr-weekday { color: var(--orbi-texto-mudo); font-weight: 700; font-size: .72rem; text-transform: uppercase; }
/* Respiro só na grade (largura fixa de 307.875px na lib), para as faixas encostarem na borda */
.flatpickr-innerContainer { padding: 0 6px; }
.flatpickr-weekdays { background: transparent; border-radius: 0; margin-bottom: 0; padding: 6px 6px 2px; }
/* Só cor e cantos: mexer em largura/altura do dia desalinha a última semana */
.flatpickr-day { border-radius: 8px; color: var(--orbi-texto); border: 1px solid transparent; }
.flatpickr-day:hover, .flatpickr-day:focus { background: var(--orbi-superficie-3); border-color: var(--orbi-superficie-3); }
.flatpickr-day.today { border-color: var(--orbi-destaque); color: var(--orbi-destaque); font-weight: 700; }
.flatpickr-day.today:hover { background: rgba(var(--orbi-destaque-rgb), .12); }
.flatpickr-day.selected, .flatpickr-day.selected:hover,
.flatpickr-day.startRange, .flatpickr-day.endRange {
    background: var(--orbi-destaque); border-color: var(--orbi-destaque); color: var(--orbi-destaque-texto); box-shadow: none;
}
.flatpickr-day.prevMonthDay, .flatpickr-day.nextMonthDay { color: var(--orbi-texto-mudo); opacity: .6; }
.flatpickr-day.flatpickr-disabled, .flatpickr-day.flatpickr-disabled:hover { color: var(--orbi-borda-forte); }
/* Em modal o JS ancora o calendário no campo (static:true, fora do focus trap do Bootstrap); este relative dá a referência */
.modal .flatpickr-wrapper { position: relative; }
.flatpickr-calendar.open { z-index: 1060; }
/* O campo visível é texto de 10 caracteres: sem teto, sobrava campo vazio. Onde a largura já é do container, não compete. */
.dp-admin { max-width: 11rem; }
td .dp-admin, .input-group .dp-admin, .popover-body .dp-admin, .modal-body .dp-admin { max-width: none; }
/* Rodapé com o botão "Hoje" (criado no datepicker.js): segunda faixa cinza do cartão */
.flatpickr-calendar .dp-admin-rodape {
    background: var(--orbi-superficie-2);
    border-top: 1px solid var(--orbi-borda);
    border-radius: 0 0 9px 9px;
    margin-top: 6px;
    padding: 5px 0;
    text-align: center;
}
.flatpickr-calendar .dp-admin-hoje {
    background: none; border: 1px solid transparent; border-radius: 8px; color: var(--orbi-destaque);
    cursor: pointer; font-size: .8rem; font-weight: 700; padding: 4px 14px;
}
.flatpickr-calendar .dp-admin-hoje:hover { background: rgba(var(--orbi-destaque-rgb), .12); border-color: transparent; }
.flatpickr-calendar .dp-admin-hoje:focus-visible { outline: 2px solid var(--orbi-destaque); outline-offset: 1px; }
