/* ═══ Configurações › Logo & Plano › Recursos e Módulos (F2.3, 2026-10-01) ═══
   Cores do TENANT via variáveis do tema (--accent, --bg-card, --border…).
   As 4 cores de estado são semânticas, iguais em toda academia:
   verde = incluído · roxo = contratado/ação · amarelo = cortesia · cinza = indisponível. */
.rm-root { --rm-verde: var(--success, #22c55e); --rm-roxo: #8b5cf6; --rm-amarelo: var(--warning, #f59e0b); --rm-cinza: var(--text-muted, #888);
  margin: 0 0 18px; }
.rm-card { background: var(--bg-card); border: 1px solid var(--border); border-radius: var(--radius-lg, 14px); padding: 20px; }
.rm-carregando, .rm-indisp { color: var(--text-muted); }
.rm-aviso { margin: 8px 0 4px; font-weight: 600; color: var(--text-primary); }
.rm-tit { margin: 0 0 4px; }
.rm-sub { color: var(--text-muted); font-size: .8rem; margin: 2px 0; }
.rm-layout { display: grid; grid-template-columns: minmax(0, 3fr) minmax(260px, 1fr); gap: 18px; align-items: start; }
.rm-cab { display: flex; flex-wrap: wrap; gap: 12px; justify-content: space-between; align-items: flex-start; margin-bottom: 8px; }
.rm-cab > div:first-child { flex: 1 1 280px; min-width: 0; }
.rm-filtros { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; }
.rm-filtros .form-input, .rm-filtros .form-select { width: auto; min-width: 180px; margin: 0; }
.rm-chk { display: flex; gap: 6px; align-items: center; font-size: .82rem; color: var(--text-secondary); white-space: nowrap; }
.rm-cat { border-top: 1px solid var(--border); padding-top: 12px; margin-top: 12px; }
.rm-cat-cab { display: flex; width: 100%; gap: 10px; align-items: baseline; background: none; border: 0; color: inherit; cursor: pointer; padding: 4px 0 10px; text-align: left; font: inherit; }
.rm-cat-nome { font-family: var(--font-display); font-weight: 700; font-size: 1rem; white-space: nowrap; }
.rm-cat-nome small { color: var(--text-muted); font-weight: 600; }
.rm-cat-desc { color: var(--text-muted); font-size: .8rem; flex: 1; min-width: 0; }
.rm-cat-seta { transition: transform .15s; color: var(--text-muted); }
.rm-cat-fechada .rm-cat-seta { transform: rotate(180deg); }
.rm-cat-fechada .rm-grade { display: none; }
.rm-grade { display: grid; grid-template-columns: repeat(auto-fill, minmax(190px, 1fr)); gap: 12px; }
.rm-rec { display: flex; gap: 12px; border: 1px solid var(--border); border-radius: var(--radius-md, 10px); padding: 14px; background: var(--bg-secondary, transparent); min-width: 0; }
.rm-rec-sel { outline: 2px solid var(--rm-roxo); outline-offset: -1px; }
.rm-rec-ico { flex: none; width: 40px; height: 40px; border-radius: 10px; display: flex; align-items: center; justify-content: center; font-size: 1.25rem; background: var(--accent-dim, rgba(255,255,255,.06)); }
.rm-rec-corpo { min-width: 0; flex: 1; display: flex; flex-direction: column; gap: 4px; }
.rm-rec h4 { margin: 0; font-size: .92rem; text-transform: none; letter-spacing: normal; overflow-wrap: anywhere; }
.rm-desc { margin: 2px 0; font-size: .8rem; color: var(--text-secondary); }
.rm-selo { align-self: flex-start; font-size: .68rem; font-weight: 800; text-transform: uppercase; letter-spacing: .04em; padding: 3px 9px; border-radius: 999px; border: 1px solid currentColor; }
.rm-selo-config { color: var(--rm-cinza); }
.rm-incluido { border-color: color-mix(in srgb, var(--rm-verde) 45%, var(--border)); background: color-mix(in srgb, var(--rm-verde) 7%, transparent); }
.rm-incluido .rm-selo { background: var(--rm-verde); border-color: var(--rm-verde); color: #04130a; }
.rm-incluido-off .rm-selo { color: var(--rm-verde); }
.rm-contratado { border-color: color-mix(in srgb, var(--rm-roxo) 55%, var(--border)); }
.rm-contratado .rm-selo { background: var(--rm-roxo); border-color: var(--rm-roxo); color: #fff; }
.rm-cortesia { border-color: color-mix(in srgb, var(--rm-amarelo) 55%, var(--border)); }
.rm-cortesia .rm-selo { background: var(--rm-amarelo); border-color: var(--rm-amarelo); color: #1a1200; }
.rm-gratuito .rm-selo { color: var(--rm-verde); }
.rm-config .rm-selo, .rm-disponivel .rm-selo { color: var(--rm-roxo); }
.rm-cinza { opacity: .85; }
.rm-cinza .rm-selo { color: var(--rm-cinza); }
.rm-preco { font-weight: 800; font-size: .95rem; }
.rm-preco-inc { color: var(--rm-verde); font-weight: 700; font-size: .82rem; }
.rm-preco-obs { color: var(--text-muted); font-weight: 600; font-size: .8rem; }
.rm-acoes { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 6px; }
.rm-btn { border: 0; border-radius: 8px; padding: 7px 12px; font-weight: 700; font-size: .8rem; cursor: pointer; background: var(--rm-roxo); color: #fff; }
.rm-btn:hover { filter: brightness(1.1); }
.rm-btn-sec { background: transparent; border: 1px solid var(--border); color: var(--text-primary); }
.rm-btn-sel { background: transparent; border: 1px solid var(--rm-roxo); color: var(--rm-roxo); }
.rm-pendente { font-size: .78rem; font-weight: 700; color: var(--rm-amarelo); }
.rm-faixas summary { cursor: pointer; font-size: .78rem; color: var(--accent); }
.rm-faixas ul { list-style: none; margin: 6px 0 0; padding: 0; font-size: .78rem; display: grid; gap: 2px; }
.rm-faixas li { display: flex; justify-content: space-between; gap: 8px; }
.rm-vazio { padding: 20px 0; text-align: center; }
/* resumo */
.rm-resumo { position: sticky; top: 16px; display: flex; flex-direction: column; gap: 12px; }
.rm-res-tit { margin: 0; font-size: 1rem; text-transform: uppercase; }
.rm-res-bloco { border-bottom: 1px solid var(--border); padding-bottom: 10px; display: flex; flex-direction: column; gap: 4px; }
.rm-res-bloco > small, .rm-res-total > small { color: var(--text-muted); font-size: .74rem; text-transform: uppercase; letter-spacing: .04em; font-weight: 700; }
.rm-res-plano { display: flex; justify-content: space-between; gap: 8px; font-size: 1.05rem; }
.rm-res-plano b:first-child { color: var(--accent); }
.rm-res-lista { list-style: none; padding: 0; margin: 0; display: grid; gap: 4px; font-size: .84rem; }
.rm-res-lista li { display: flex; justify-content: space-between; gap: 8px; }
.rm-res-lista li span { min-width: 0; overflow-wrap: anywhere; }
.rm-res-lista small { display: block; color: var(--text-muted); font-size: .72rem; }
.rm-res-total b { display: block; font-size: 1.45rem; color: var(--rm-verde); font-family: var(--font-display); }
.rm-total-riscado { display: block; font-size: 1.05rem; color: var(--text-muted); font-family: var(--font-display); text-decoration: line-through; text-decoration-thickness: 2px; }
.rm-res-total .rm-acordado-tit { display: block; margin-top: 6px; }
.rm-res-aviso { font-size: .76rem; color: var(--text-secondary); background: color-mix(in srgb, var(--rm-roxo) 12%, transparent); border: 1px solid color-mix(in srgb, var(--rm-roxo) 35%, transparent); border-radius: 8px; padding: 8px 10px; margin: 6px 0 0; }
.rm-res-prop { border: 1px dashed var(--rm-roxo); border-radius: 10px; padding: 10px; }
.rm-erros { margin: 0; padding-left: 18px; color: var(--danger); font-size: .8rem; }
.rm-res-prox b { font-size: .95rem; }
.rm-confirmar { width: 100%; }
.rm-confirmar:disabled { opacity: .5; cursor: not-allowed; }
.rm-res-sync { font-size: .7rem; }
.rm-plano-linha { display: flex; flex-wrap: wrap; gap: 10px; align-items: center; justify-content: space-between; margin-top: 14px; font-size: .85rem; color: var(--text-secondary); }
.rm-plano-linha:empty { display: none; }
.rm-modal-lista { margin: 4px 0 10px; padding-left: 18px; }
/* tablet: resumo vai para baixo; cards em 2 colunas */
@media (max-width: 1100px) {
  .rm-layout { grid-template-columns: minmax(0, 1fr); }
  .rm-resumo { position: static; }
  .rm-grade { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
/* celular: 1 coluna */
@media (max-width: 640px) {
  .rm-grade { grid-template-columns: minmax(0, 1fr); }
  .rm-filtros, .rm-filtros .form-input, .rm-filtros .form-select { width: 100%; }
  .rm-card { padding: 14px; }
}

/* Cortesias com o valor de tabela riscado (2026-10-05) */
.rm-cort-tabela { color: var(--text-muted); font-weight: 500; text-decoration: line-through; margin-right: 4px; }
.rm-res-lista .rm-cort-soma { border-top: 1px dashed var(--border); margin-top: 4px; padding-top: 6px; }
.rm-res-lista .rm-cort-soma b { color: var(--rm-verde); }
