/* RESERVA Verão — Área da Pousada. Tudo fica dentro de .rv-app para não brigar com o tema. */
.rv-app {
  --rv-tinta: #12303a;
  --rv-texto: #2f4449;
  --rv-suave: #586a6d;
  --rv-fundo: #f6f1e7;
  --rv-cartao: #fffdf8;
  --rv-linha: #ddd3c0;
  --rv-acento: #a63a14;
  --rv-ok: #1f6b4a;
  --rv-ok-f: #dcefe4;
  --rv-ruim: #9b2c1c;
  --rv-ruim-f: #f8ddd6;
  --rv-alerta: #7a5200;
  --rv-alerta-f: #fbeccb;
  --rv-info: #1d4f7a;
  --rv-info-f: #dbe9f5;
  box-sizing: border-box;
  max-width: 1120px;
  margin: 0 auto;
  padding: 20px 16px 48px;
  background: var(--rv-fundo);
  color: var(--rv-texto);
  font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
  font-size: 16px;
  line-height: 1.45;
  border-radius: 12px;
  text-align: left;
}
.rv-app *, .rv-app *::before, .rv-app *::after { box-sizing: border-box; }
.rv-app.rv-no-admin { margin: 16px 0 0; max-width: none; }
.rv-app.rv-ocupado { opacity: .6; pointer-events: none; }
.rv-app p { margin: 0 0 8px; }
.rv-app .rv-h2 { margin: 0 0 2px; font-size: 26px; line-height: 1.2; font-weight: 700; color: var(--rv-tinta); }
.rv-app .rv-h3 { margin: 0; font-size: 19px; line-height: 1.25; font-weight: 700; color: var(--rv-tinta); }
.rv-app .rv-muted { color: var(--rv-suave); font-size: 14px; }
.rv-app a { color: var(--rv-acento); }

.rv-app .rv-topo { display: flex; flex-wrap: wrap; gap: 12px; align-items: flex-start; justify-content: space-between; margin-bottom: 16px; }

.rv-app .rv-cartao { background: var(--rv-cartao); border: 1px solid var(--rv-linha); border-radius: 12px; padding: 18px; margin: 0 0 16px; display: flex; flex-direction: column; gap: 12px; }
.rv-app .rv-cartao--destaque { border-color: var(--rv-acento); border-width: 2px; }
.rv-app .rv-fase { display: flex; flex-wrap: wrap; gap: 8px; align-items: baseline; justify-content: space-between; }

/* abas */
.rv-app .rv-abas { display: flex; gap: 6px; overflow-x: auto; margin-bottom: 16px; padding-bottom: 2px; }
.rv-app .rv-aba { appearance: none; border: 1px solid var(--rv-linha); background: var(--rv-cartao); color: var(--rv-tinta); font: inherit; font-weight: 600; padding: 10px 16px; border-radius: 999px; cursor: pointer; white-space: nowrap; }
.rv-app .rv-aba--ativa { background: var(--rv-tinta); color: #fffdf8; border-color: var(--rv-tinta); }
.rv-app .rv-filtros { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 12px; }
.rv-app .rv-chip { appearance: none; border: 1px solid var(--rv-linha); background: transparent; color: var(--rv-tinta); font: inherit; font-size: 14px; padding: 6px 12px; border-radius: 999px; cursor: pointer; }
.rv-app .rv-chip--ativo { background: var(--rv-acento); border-color: var(--rv-acento); color: #fffdf8; }

/* botões */
.rv-app .rv-btn { appearance: none; display: inline-block; border: 1px solid var(--rv-acento); background: var(--rv-acento); color: #fffdf8; font: inherit; font-weight: 700; padding: 10px 18px; border-radius: 8px; cursor: pointer; text-decoration: none; line-height: 1.2; }
.rv-app .rv-btn:hover { filter: brightness(1.08); color: #fffdf8; }
.rv-app .rv-btn--sec { background: transparent; color: var(--rv-tinta); border-color: var(--rv-tinta); }
.rv-app .rv-btn--sec:hover { background: var(--rv-tinta); color: #fffdf8; filter: none; }
.rv-app .rv-link { appearance: none; background: none; border: 0; padding: 4px 2px; font: inherit; font-size: 14px; color: var(--rv-acento); text-decoration: underline; cursor: pointer; }
.rv-app .rv-link--perigo { color: var(--rv-ruim); }
.rv-app button:focus-visible, .rv-app a:focus-visible, .rv-app input:focus-visible, .rv-app select:focus-visible { outline: 3px solid #1d4f7a; outline-offset: 2px; }
.rv-app .rv-acoes { display: flex; flex-wrap: wrap; gap: 10px; align-items: center; }

/* formulários */
.rv-app .rv-grade { display: grid; grid-template-columns: repeat(auto-fill, minmax(230px, 1fr)); gap: 12px 16px; }
.rv-app .rv-campo { display: flex; flex-direction: column; gap: 4px; min-width: 0; margin: 0; }
.rv-app .rv-rotulo { font-size: 14px; font-weight: 600; color: var(--rv-tinta); }
.rv-app .rv-dica { font-size: 13px; color: var(--rv-suave); }
.rv-app .rv-inp { width: 100%; min-height: 42px; padding: 8px 10px; border: 1px solid #b9ad95; border-radius: 8px; background: #fff; color: #14262b; font: inherit; font-size: 16px; margin: 0; box-shadow: none; }
.rv-app .rv-inp:disabled { background: #efe9dc; color: var(--rv-suave); }
.rv-app .rv-checks { display: flex; flex-wrap: wrap; gap: 8px 20px; }
.rv-app .rv-campo--check { display: inline-flex; flex-direction: row; align-items: center; gap: 8px; font-size: 15px; color: var(--rv-tinta); cursor: pointer; margin: 0; }
.rv-app .rv-check { width: 20px; height: 20px; min-height: 0; margin: 0; accent-color: var(--rv-acento); flex: none; }
.rv-app .rv-so-movel { display: none; }

/* avisos e selos */
.rv-app .rv-aviso { padding: 10px 14px; border-radius: 8px; margin: 0 0 14px; font-weight: 600; }
.rv-app .rv-aviso--ok { background: var(--rv-ok-f); color: var(--rv-ok); border: 1px solid var(--rv-ok); }
.rv-app .rv-aviso--erro { background: var(--rv-ruim-f); color: var(--rv-ruim); border: 1px solid var(--rv-ruim); }
.rv-app .rv-selo { display: inline-block; font-size: 12.5px; font-weight: 700; padding: 2px 8px; border-radius: 999px; background: #ebe3d3; color: var(--rv-tinta); white-space: nowrap; }
.rv-app .rv-selo--ok { background: var(--rv-ok-f); color: var(--rv-ok); }
.rv-app .rv-selo--ruim { background: var(--rv-ruim-f); color: var(--rv-ruim); }
.rv-app .rv-selo--alerta { background: var(--rv-alerta-f); color: var(--rv-alerta); }
.rv-app .rv-selo--info { background: var(--rv-info-f); color: var(--rv-info); }
.rv-app .rv-pre { margin: 0; padding: 12px; background: #efe9dc; border-radius: 8px; font-family: ui-monospace, Menlo, Consolas, monospace; font-size: 14px; white-space: pre-wrap; word-break: break-word; color: #14262b; }

/* barra de progresso */
.rv-app .rv-barra { height: 8px; background: #e6dcc8; border-radius: 999px; overflow: hidden; }
.rv-app .rv-barra__fill { height: 100%; background: var(--rv-ok); border-radius: 999px; }

/* tarefas */
.rv-app .rv-tarefa { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 8px 16px; align-items: center; padding: 12px 0 0; border-top: 1px solid var(--rv-linha); }
.rv-app .rv-tarefa__nome { margin: 0 0 2px; font-weight: 600; color: var(--rv-tinta); }
.rv-app .rv-tarefa--feita .rv-tarefa__nome { color: var(--rv-suave); text-decoration: line-through; }
.rv-app .rv-num { color: var(--rv-acento); font-variant-numeric: tabular-nums; }
.rv-app .rv-tarefa__acao { display: flex; gap: 10px; align-items: center; }
.rv-app .rv-tarefa__det { grid-column: 1 / -1; display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: 10px 16px; align-items: end; padding: 4px 0 8px; }
.rv-app .rv-tarefa__det[hidden] { display: none; }
.rv-app .rv-inp--status { width: auto; min-width: 150px; font-weight: 600; }
.rv-app .rv-st-feito { background: var(--rv-ok-f); border-color: var(--rv-ok); }
.rv-app .rv-st-travado { background: var(--rv-ruim-f); border-color: var(--rv-ruim); }
.rv-app .rv-st-em-andamento { background: var(--rv-info-f); border-color: var(--rv-info); }

/* tabelas */
.rv-app .rv-rolagem { overflow-x: auto; }
.rv-app .rv-tabela { width: 100%; border-collapse: collapse; font-size: 15px; margin: 0; background: transparent; border: 0; }
.rv-app .rv-tabela th, .rv-app .rv-tabela td { padding: 10px 10px; text-align: left; vertical-align: top; border: 0; border-bottom: 1px solid var(--rv-linha); background: transparent; }
.rv-app .rv-tabela th { font-size: 13px; font-weight: 700; color: var(--rv-suave); white-space: nowrap; }
.rv-app .rv-tabela .rv-num-col { text-align: right; font-variant-numeric: tabular-nums; white-space: nowrap; }
.rv-app .rv-linha--ativa td { background: #f0e7d6; }
.rv-app .rv-tabela .rv-nw { white-space: nowrap; }
.rv-app .rv-tabela .rv-larga { min-width: 200px; }
.rv-app .rv-link--forte { font-size: 15px; font-weight: 700; text-align: left; padding: 0; }

/* números de apoio */
.rv-app .rv-numeros { display: grid; grid-template-columns: repeat(auto-fit, minmax(190px, 1fr)); gap: 12px; }
.rv-app .rv-numero { background: var(--rv-cartao); border: 1px solid var(--rv-linha); border-radius: 12px; padding: 14px 16px; display: flex; flex-direction: column; gap: 2px; }
.rv-app .rv-numero__v { font-size: 22px; font-weight: 700; color: var(--rv-tinta); font-variant-numeric: tabular-nums; }

/* login */
.rv-app.rv-login { max-width: 420px; }
.rv-app.rv-login h2 { margin: 0 0 6px; font-size: 24px; color: var(--rv-tinta); }
.rv-app.rv-login form p { margin: 0 0 12px; }
.rv-app.rv-login label { display: block; font-size: 14px; font-weight: 600; color: var(--rv-tinta); margin-bottom: 4px; }
.rv-app.rv-login input[type="text"], .rv-app.rv-login input[type="password"] { width: 100%; min-height: 42px; padding: 8px 10px; border: 1px solid #b9ad95; border-radius: 8px; font-size: 16px; background: #fff; color: #14262b; }
.rv-app.rv-login input[type="submit"] { appearance: none; border: 0; background: var(--rv-acento); color: #fffdf8; font-weight: 700; font-size: 16px; padding: 11px 20px; border-radius: 8px; cursor: pointer; }

/* celular: a lista de reservas vira cartões */
@media (max-width: 720px) {
  .rv-app { padding: 16px 12px 40px; border-radius: 0; }
  .rv-app .rv-h2 { font-size: 22px; }
  .rv-app .rv-tarefa { grid-template-columns: minmax(0, 1fr); }
  .rv-app .rv-tarefa__acao { justify-content: space-between; }
  .rv-app .rv-tabela--cartoes thead { display: none; }
  .rv-app .rv-tabela--cartoes, .rv-app .rv-tabela--cartoes tbody, .rv-app .rv-tabela--cartoes tr, .rv-app .rv-tabela--cartoes td { display: block; width: 100%; }
  .rv-app .rv-tabela--cartoes tr { border: 1px solid var(--rv-linha); border-radius: 10px; padding: 8px 12px; margin-bottom: 10px; background: #fff; }
  .rv-app .rv-tabela--cartoes td { border: 0; padding: 4px 0; text-align: left; }
  .rv-app .rv-tabela--cartoes td.rv-num-col { text-align: left; }
  .rv-app .rv-tabela--cartoes td[data-th]:not([data-th=""])::before { content: attr(data-th) ": "; font-size: 13px; font-weight: 700; color: var(--rv-suave); }
  .rv-app .rv-so-movel { display: inline; }
}

/* ===================================================================== v2: guia na palma da mão */
.rv-app .rv-sr { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.rv-app .rv-btn--peq { padding: 8px 14px; font-size: 14px; }
.rv-app .rv-btn--wa { background: #1f7a4d; border-color: #1f7a4d; color: #fff; }
.rv-app .rv-btn--wa:hover { color: #fff; }
.rv-app .rv-inp--area { min-height: 84px; resize: vertical; line-height: 1.4; }
.rv-app .rv-fase__nome { font-family: inherit; font-weight: 400; font-size: 15px; color: var(--rv-suave); }

/* abas com ícone; no celular viram barra inferior */
.rv-app .rv-aba { position: relative; display: inline-flex; align-items: center; gap: 6px; }
.rv-app .rv-aba__ico { font-size: 13px; line-height: 1; opacity: .8; }
.rv-app .rv-aba__bolha { min-width: 18px; height: 18px; padding: 0 5px; border-radius: 9px; background: #c2410c; color: #fff; font-size: 11px; font-weight: 800; display: inline-flex; align-items: center; justify-content: center; }

/* herói do dia */
.rv-app .rv-heroi { position: relative; background: linear-gradient(180deg, #12303a 0%, #0c2229 100%); color: #fffdf8; border-radius: 16px; padding: 20px 20px 18px; margin: 0 0 16px; overflow: hidden; }
.rv-app .rv-heroi p { margin: 0; }
.rv-app .rv-heroi__olho { font-size: 14px; color: #c9d8d6; }
.rv-app .rv-heroi__dia { font-family: "Domine", Georgia, serif; font-size: 34px; line-height: 1.1; font-weight: 700; margin: 4px 0 2px !important; }
.rv-app .rv-heroi__sub { font-size: 15px; color: #f2c9a8; font-weight: 700; }
.rv-app .rv-heroi__linha { position: relative; height: 30px; margin: 18px 4px 6px; border-bottom: 2px solid rgba(255,253,248,.85); }
.rv-app .rv-heroi__sol { position: absolute; bottom: 0; width: 34px; height: 17px; margin-left: -17px; border-radius: 34px 34px 0 0; background: #e8703a; box-shadow: 0 0 22px 4px rgba(232,112,58,.45); }
.rv-app .rv-heroi__marca { position: absolute; bottom: -6px; width: 2px; height: 10px; background: rgba(255,253,248,.5); }
.rv-app .rv-heroi__fases { display: flex; justify-content: space-between; gap: 8px; font-size: 12.5px; color: #c9d8d6; }
.rv-app .rv-heroi__fases b { color: #fffdf8; font-weight: 700; }

/* convite para ligar avisos */
.rv-app .rv-convite { position: relative; background: #fff4e8; border: 1px solid #f0c49f; border-radius: 14px; padding: 16px 44px 16px 16px; margin: 0 0 16px; }
.rv-app .rv-convite__tit { font-weight: 800; color: var(--rv-tinta); font-size: 16px; margin-bottom: 4px !important; }
.rv-app .rv-convite__txt { font-size: 14.5px; }
.rv-app .rv-convite__x { position: absolute; top: 6px; right: 6px; width: 36px; height: 36px; border: 0; background: none; font-size: 24px; color: var(--rv-suave); cursor: pointer; }

/* linha de tarefa tocável */
.rv-app .rv-item { appearance: none; display: flex; align-items: center; gap: 12px; width: 100%; text-align: left; background: none; border: 0; border-top: 1px solid #eee5d5; padding: 12px 2px; font: inherit; color: inherit; cursor: pointer; }
.rv-app .rv-item:hover .rv-item__nome { color: var(--rv-acento); }
.rv-app .rv-item__marca { flex: none; width: 34px; height: 34px; border-radius: 50%; display: inline-flex; align-items: center; justify-content: center; font-weight: 800; font-size: 14px; background: #ebe3d3; color: var(--rv-tinta); }
.rv-app .rv-item__marca--ruim { background: var(--rv-ruim-f); color: var(--rv-ruim); }
.rv-app .rv-item__marca--alerta { background: var(--rv-alerta-f); color: var(--rv-alerta); }
.rv-app .rv-item__marca--info { background: var(--rv-info-f); color: var(--rv-info); }
.rv-app .rv-item__marca--ok { background: var(--rv-ok); color: #fff; }
.rv-app .rv-item__txt { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: 4px; }
.rv-app .rv-item__nome { font-weight: 700; color: var(--rv-tinta); line-height: 1.3; }
.rv-app .rv-item__meta { font-size: 13px; color: var(--rv-suave); }
.rv-app .rv-item__seta { flex: none; font-size: 26px; color: #b9ad95; line-height: 1; }
.rv-app .rv-item--feito .rv-item__nome { color: var(--rv-suave); text-decoration: line-through; text-decoration-color: #b9ad95; }

.rv-app .rv-vazio { display: flex; align-items: center; gap: 12px; padding: 6px 0; }
.rv-app .rv-vazio p { margin: 0; }
.rv-app .rv-vazio__sol { flex: none; width: 36px; height: 18px; border-radius: 36px 36px 0 0; background: #e8703a; border-bottom: 2px solid var(--rv-tinta); }

/* hóspedes de hoje */
.rv-app .rv-mov { display: flex; align-items: center; gap: 12px; border-top: 1px solid #eee5d5; padding: 12px 0; }
.rv-app .rv-mov__tipo { flex: none; font-size: 11px; font-weight: 800; letter-spacing: .06em; text-transform: uppercase; padding: 4px 8px; border-radius: 6px; }
.rv-app .rv-mov__tipo--in { background: var(--rv-info-f); color: var(--rv-info); }
.rv-app .rv-mov__tipo--out { background: #fde3d2; color: #a63a14; }
.rv-app .rv-mov__txt { flex: 1; min-width: 0; display: flex; flex-direction: column; }

/* conquistas */
.rv-app .rv-selos { display: grid; grid-template-columns: repeat(auto-fill, minmax(140px, 1fr)); gap: 10px; }
.rv-app .rv-conq { display: flex; flex-direction: column; align-items: center; text-align: center; gap: 4px; padding: 14px 8px 12px; border-radius: 12px; border: 1px dashed #cfc3ab; color: #9a927f; font-size: 13px; }
.rv-app .rv-conq b { color: #8a826f; font-size: 14px; }
.rv-app .rv-conq__sol { width: 44px; height: 22px; border-radius: 44px 44px 0 0; background: #e3dacb; border-bottom: 3px solid #cfc3ab; margin-bottom: 4px; }
.rv-app .rv-conq--ok { border: 1px solid #f0c49f; background: #fff4e8; color: var(--rv-texto); }
.rv-app .rv-conq--ok b { color: var(--rv-tinta); }
.rv-app .rv-conq--ok .rv-conq__sol { background: #e8703a; border-bottom-color: var(--rv-tinta); box-shadow: 0 0 16px 2px rgba(232,112,58,.35); }

/* folha em tela cheia: guia e formulário */
html.rv-folha-aberta, html.rv-folha-aberta body { overflow: hidden; }
.rv-app .rv-folha { position: fixed; inset: 0; z-index: 99990; background: var(--rv-fundo); display: flex; flex-direction: column; }
.rv-app .rv-folha--anima { animation: rv-sobe .22s ease-out; }
@keyframes rv-sobe { from { transform: translateY(24px); opacity: 0; } to { transform: none; opacity: 1; } }
.rv-app .rv-folha__topo { flex: none; display: flex; align-items: center; gap: 10px; background: #12303a; color: #fffdf8; padding: 10px 12px; padding-top: max(10px, env(safe-area-inset-top)); }
.rv-app .rv-folha__voltar { appearance: none; border: 0; background: rgba(255,253,248,.12); color: #fffdf8; font: inherit; font-weight: 700; padding: 8px 14px; border-radius: 8px; cursor: pointer; }
.rv-app .rv-folha__tit { font-size: 14px; color: #c9d8d6; }
.rv-app .rv-folha__corpo { flex: 1; overflow-y: auto; -webkit-overflow-scrolling: touch; padding: 20px 16px calc(40px + env(safe-area-inset-bottom)); width: 100%; max-width: 720px; margin: 0 auto; display: flex; flex-direction: column; gap: 16px; }
.rv-app .rv-guia__cab p { margin: 0; }
.rv-app .rv-guia__olho { font-size: 12px; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; color: var(--rv-acento); }
.rv-app .rv-guia__h { font-family: "Domine", Georgia, serif; font-size: 25px; line-height: 1.2; color: var(--rv-tinta); margin: 6px 0 10px; }
.rv-app .rv-guia__meta { display: flex; flex-wrap: wrap; gap: 6px; align-items: center; }
.rv-app .rv-guia__resumo { font-size: 17px; line-height: 1.5; color: var(--rv-texto); margin: 0; }
.rv-app .rv-guia__bloco { background: var(--rv-cartao); border: 1px solid var(--rv-linha); border-radius: 14px; padding: 16px; display: flex; flex-direction: column; gap: 10px; }
.rv-app .rv-guia__form { border: 2px solid #e8703a; }
.rv-app .rv-guia__marcos { background: #eef3f2; border-color: #c9d8d6; }
.rv-app .rv-guia__marcos p { margin: 0; }
.rv-app .rv-guia__ajuda { font-size: 14px; color: var(--rv-suave); text-align: center; }
.rv-app .rv-passos { margin: 0; padding: 0; list-style: none; counter-reset: p; display: flex; flex-direction: column; gap: 10px; }
.rv-app .rv-passos li { counter-increment: p; position: relative; padding-left: 38px; min-height: 28px; line-height: 1.45; }
.rv-app .rv-passos li::before { content: counter(p); position: absolute; left: 0; top: -1px; width: 27px; height: 27px; border-radius: 50%; background: var(--rv-tinta); color: #fffdf8; font-weight: 800; font-size: 13px; display: flex; align-items: center; justify-content: center; }
.rv-app .rv-passos--peq li { padding-left: 32px; font-size: 14.5px; }
.rv-app .rv-passos--peq li::before { width: 22px; height: 22px; font-size: 12px; }
.rv-app .rv-checklist { display: flex; flex-direction: column; }
.rv-app .rv-ck { display: flex; gap: 12px; align-items: flex-start; padding: 11px 0; border-top: 1px solid #eee5d5; cursor: pointer; line-height: 1.4; }
.rv-app .rv-ck .rv-check { width: 24px; height: 24px; margin-top: -1px; }
.rv-app .rv-ck--on span { color: var(--rv-suave); text-decoration: line-through; text-decoration-color: #b9ad95; }
.rv-app .rv-modelo { border-top: 1px solid #eee5d5; padding-top: 12px; display: flex; flex-direction: column; gap: 8px; }
.rv-app .rv-modelo p { margin: 0; }
.rv-app .rv-modelo__tit { font-size: 13px; font-weight: 800; color: var(--rv-suave); text-transform: uppercase; letter-spacing: .06em; }
.rv-app .rv-modelo__txt { background: #e9f5ee; border-radius: 4px 14px 14px 14px; padding: 12px 14px; color: #1a3a2b; line-height: 1.5; }
.rv-app .rv-dicabox { display: flex; flex-direction: column; gap: 4px; background: #fff4e8; border-left: 4px solid #e8703a; border-radius: 0 12px 12px 0; padding: 12px 14px; }
.rv-app .rv-dicabox b { color: #a63a14; font-size: 13px; text-transform: uppercase; letter-spacing: .06em; }
.rv-app .rv-status3 { display: grid; grid-template-columns: repeat(3, 1fr); gap: 8px; }
.rv-app .rv-st3 { appearance: none; border: 2px solid var(--rv-linha); background: #fff; color: var(--rv-tinta); font: inherit; font-weight: 800; padding: 14px 6px; border-radius: 12px; cursor: pointer; }
.rv-app .rv-st3--em-andamento.rv-st3--on { background: var(--rv-info-f); border-color: var(--rv-info); color: var(--rv-info); }
.rv-app .rv-st3--feito.rv-st3--on { background: var(--rv-ok); border-color: var(--rv-ok); color: #fff; }
.rv-app .rv-st3--travado.rv-st3--on { background: var(--rv-ruim-f); border-color: var(--rv-ruim); color: var(--rv-ruim); }
.rv-app .rv-gradef { border: 0; padding: 0; margin: 0; display: flex; flex-direction: column; gap: 10px; }
.rv-app .rv-gradef__linha { background: var(--rv-cartao); border: 1px solid var(--rv-linha); border-radius: 12px; padding: 12px; }
.rv-app .rv-gradef__tit { font-weight: 800; color: var(--rv-tinta); margin: 0 0 8px !important; }
.rv-app .rv-gradef__cols { display: grid; grid-template-columns: repeat(auto-fill, minmax(130px, 1fr)); gap: 8px 10px; }
.rv-app .rv-acoes--fixas { position: sticky; bottom: calc(-40px - env(safe-area-inset-bottom)); margin-bottom: calc(-40px - env(safe-area-inset-bottom)); background: var(--rv-fundo); padding: 12px 0 calc(52px + env(safe-area-inset-bottom)); border-top: 1px solid var(--rv-linha); }
.rv-app .rv-acoes--fixas .rv-btn { flex: 1; text-align: center; }

/* festa ao concluir */
.rv-festa { position: fixed; inset: 0; z-index: 99999; pointer-events: none; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 10px; animation: rv-festa 1.6s ease forwards; }
.rv-festa__sol { width: 120px; height: 60px; border-radius: 120px 120px 0 0; background: #e8703a; border-bottom: 5px solid #12303a; box-shadow: 0 0 60px 20px rgba(232,112,58,.45); animation: rv-nasce 1s ease-out; }
.rv-festa__txt { font: 800 28px "Domine", Georgia, serif; color: #12303a; background: rgba(255,253,248,.92); padding: 4px 18px; border-radius: 10px; }
@keyframes rv-nasce { from { transform: translateY(40px) scale(.6); } to { transform: none; } }
@keyframes rv-festa { 0% { opacity: 0; } 12% { opacity: 1; } 75% { opacity: 1; } 100% { opacity: 0; } }

/* mais: apostilas e avisos */
.rv-app .rv-apostilas { display: grid; grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); gap: 10px; }
.rv-app .rv-apostila { display: flex; gap: 12px; align-items: center; text-decoration: none; color: inherit; border: 1px solid var(--rv-linha); border-radius: 12px; padding: 10px; background: #fff; }
.rv-app .rv-apostila__capa { position: relative; flex: none; width: 52px; height: 70px; border-radius: 4px; background: linear-gradient(180deg, #12303a 0 62%, #f4eee2 62%); display: flex; align-items: flex-end; justify-content: center; box-shadow: 0 4px 10px -4px rgba(0,0,0,.35); }
.rv-app .rv-apostila__sol { position: absolute; top: 33px; left: 14px; width: 24px; height: 12px; border-radius: 24px 24px 0 0; background: #e8703a; }
.rv-app .rv-apostila__capa b { font: 700 16px "Domine", Georgia, serif; color: #12303a; margin-bottom: 4px; }
.rv-app .rv-apostila__txt { display: flex; flex-direction: column; }
.rv-app .rv-apostila__txt b { color: var(--rv-tinta); }
.rv-app .rv-opcao { display: flex; align-items: center; justify-content: space-between; gap: 12px; border-top: 1px solid #eee5d5; padding-top: 12px; }
.rv-app .rv-opcao > div { display: flex; flex-direction: column; }
.rv-app .rv-chave { position: relative; flex: none; width: 50px; height: 30px; cursor: pointer; }
.rv-app .rv-chave input { position: absolute; opacity: 0; width: 100%; height: 100%; margin: 0; cursor: pointer; }
.rv-app .rv-chave__trilho { position: absolute; inset: 0; border-radius: 15px; background: #cfc3ab; transition: background .15s; }
.rv-app .rv-chave__trilho::after { content: ""; position: absolute; top: 3px; left: 3px; width: 24px; height: 24px; border-radius: 50%; background: #fff; transition: transform .15s; box-shadow: 0 1px 3px rgba(0,0,0,.3); }
.rv-app .rv-chave input:checked + .rv-chave__trilho { background: var(--rv-ok); }
.rv-app .rv-chave input:checked + .rv-chave__trilho::after { transform: translateX(20px); }
.rv-app .rv-chave input:focus-visible + .rv-chave__trilho { outline: 3px solid #1d4f7a; outline-offset: 2px; }

/* sino (no cabeçalho da página ou no topo do app) */
#rv-sino-slot, .rv-sino-app { position: relative; display: inline-flex; }
.rv-sino-app { float: right; margin: -4px 0 0 8px; }
.rv-sino { appearance: none; position: relative; width: 40px; height: 40px; border-radius: 50%; border: 0; background: rgba(255,253,248,.12); color: #fffdf8; display: inline-flex; align-items: center; justify-content: center; cursor: pointer; padding: 0; }
.rv-sino-app .rv-sino { background: #12303a; }
.rv-sino__ico { display: inline-flex; }
.rv-sino__n { position: absolute; top: -2px; right: -3px; min-width: 19px; height: 19px; padding: 0 5px; border-radius: 10px; background: #e8703a; color: #0c2229; font: 800 11px/19px "Nunito Sans", Arial, sans-serif; text-align: center; border: 2px solid #12303a; }
.rv-painel { position: absolute; top: 48px; right: -8px; z-index: 99980; width: min(360px, calc(100vw - 24px)); max-height: min(70vh, 560px); display: flex; flex-direction: column; background: #fffdf8; color: #2f4449; border: 1px solid #ddd3c0; border-radius: 14px; box-shadow: 0 24px 48px -16px rgba(12,34,41,.45); overflow: hidden; font-family: "Nunito Sans", -apple-system, "Segoe UI", sans-serif; text-align: left; }
.rv-painel__topo { display: flex; align-items: center; justify-content: space-between; padding: 12px 14px; border-bottom: 1px solid #eee5d5; color: #12303a; font-size: 16px; }
.rv-painel__x { border: 0; background: none; font-size: 24px; line-height: 1; color: #586a6d; cursor: pointer; width: 32px; height: 32px; }
.rv-painel__lista { overflow-y: auto; }
.rv-painel__vazio { padding: 18px 14px; margin: 0; color: #586a6d; font-size: 14px; }
.rv-av { appearance: none; display: flex; gap: 10px; width: 100%; text-align: left; border: 0; border-bottom: 1px solid #eee5d5; background: none; padding: 12px 14px; font: inherit; color: inherit; cursor: pointer; }
.rv-av:hover { background: #f6f1e7; }
.rv-av--novo { background: #fff4e8; }
.rv-av__ico { flex: none; width: 10px; height: 10px; margin-top: 6px; border-radius: 50%; background: #cfc3ab; }
.rv-av--novo .rv-av__ico { background: #e8703a; }
.rv-av--atraso .rv-av__ico { background: #9b2c1c; }
.rv-av--conquista .rv-av__ico, .rv-av--entrega .rv-av__ico { background: #1f6b4a; }
.rv-av__txt { display: flex; flex-direction: column; gap: 2px; font-size: 14px; line-height: 1.35; }
.rv-av__txt b { color: #12303a; font-size: 14.5px; }
.rv-av__txt small { color: #8a8f86; font-size: 12px; }

@media (max-width: 720px) {
  .rv-app .rv-com-nav { padding-bottom: 76px; }
  .rv-app .rv-abas--nav { position: fixed; left: 0; right: 0; bottom: 0; z-index: 9990; margin: 0; padding: 6px 4px calc(6px + env(safe-area-inset-bottom)); gap: 0; background: #fffdf8; border-top: 1px solid var(--rv-linha); box-shadow: 0 -8px 20px -12px rgba(12,34,41,.3); overflow: visible; }
  .rv-app .rv-abas--nav .rv-aba { flex: 1; flex-direction: column; gap: 2px; border: 0; background: none; border-radius: 10px; padding: 6px 2px; font-size: 11.5px; color: var(--rv-suave); }
  .rv-app .rv-abas--nav .rv-aba__ico { font-size: 18px; opacity: 1; }
  .rv-app .rv-abas--nav .rv-aba--ativa { background: none; color: var(--rv-acento); }
  .rv-app .rv-abas--nav .rv-aba--ativa .rv-aba__txt { font-weight: 800; }
  .rv-app .rv-abas--nav .rv-aba__bolha { position: absolute; top: 2px; left: 50%; margin-left: 6px; }
  .rv-app .rv-heroi__dia { font-size: 30px; }
  .rv-painel { position: fixed; top: 64px; right: 12px; }
}

/* ===================================================================== abertura do dia (stories) */
.rv-app .rv-hist { position: fixed; inset: 0; z-index: 99995; color: #fffdf8; background: radial-gradient(120% 70% at 50% 100%, #e8703a 0%, #a63a14 22%, #12303a 58%, #0c2229 100%); display: flex; flex-direction: column; overflow: hidden; }
.rv-app .rv-hist--abre { animation: rv-hist-entra .3s ease-out; }
.rv-app .rv-hist__corpo { animation: rv-hist-txt .35s ease-out; }
@keyframes rv-hist-txt { from { opacity: .2; transform: translateY(8px); } to { opacity: 1; transform: none; } }
.rv-app .rv-hist--pilula { background: radial-gradient(120% 60% at 50% 0%, #1d4a57 0%, #12303a 45%, #0c2229 100%); }
.rv-app .rv-hist--missao { background: linear-gradient(180deg, #f4eee2 0%, #fde3d2 100%); color: #12303a; }
.rv-app .rv-hist--video { background: #0c2229; }
@keyframes rv-hist-entra { from { opacity: 0; transform: scale(.98); } to { opacity: 1; transform: none; } }
.rv-app .rv-hist__barras { position: relative; z-index: 3; display: flex; gap: 4px; padding: max(12px, env(safe-area-inset-top)) 14px 0; }
.rv-app .rv-hist__b { flex: 1; height: 3px; border-radius: 2px; background: rgba(255,253,248,.3); overflow: hidden; }
.rv-app .rv-hist--missao .rv-hist__b { background: rgba(18,48,58,.18); }
.rv-app .rv-hist__b i { display: block; height: 100%; width: 0; background: #fffdf8; }
.rv-app .rv-hist--missao .rv-hist__b i { background: #12303a; }
.rv-app .rv-hist__b--cheia i { width: 100%; }
.rv-app .rv-hist__b--agora i { animation: rv-hist-barra 7s linear forwards; }
.rv-app .rv-hist--video .rv-hist__b--agora i, .rv-app .rv-hist--missao .rv-hist__b--agora i, .rv-app .rv-hist--boas .rv-hist__b--agora i { animation: none; width: 100%; }
@keyframes rv-hist-barra { to { width: 100%; } }
.rv-app .rv-hist__x { position: absolute; z-index: 4; top: max(22px, calc(env(safe-area-inset-top) + 10px)); right: 10px; width: 44px; height: 44px; border: 0; background: none; color: inherit; font-size: 32px; line-height: 1; cursor: pointer; opacity: .85; }
.rv-app .rv-hist__nav { position: absolute; inset: 0; z-index: 1; display: flex; }
.rv-app .rv-hist__nav button { flex: 1; border: 0; background: none; cursor: pointer; padding: 0; }
.rv-app .rv-hist__nav .rv-hist__ant { flex: 0 0 30%; }
.rv-app .rv-hist__corpo { position: relative; z-index: 2; pointer-events: none; flex: 1; display: flex; flex-direction: column; justify-content: center; gap: 14px; width: 100%; max-width: 560px; margin: 0 auto; padding: 24px 28px; }
.rv-app .rv-hist__corpo a, .rv-app .rv-hist__corpo button, .rv-app .rv-hist__corpo iframe, .rv-app .rv-hist__corpo video { pointer-events: auto; }
.rv-app .rv-hist__corpo p { margin: 0; }
.rv-app .rv-hist__olho { font-size: 12.5px; font-weight: 800; letter-spacing: .16em; text-transform: uppercase; opacity: .85; }
.rv-app .rv-hist__olho--sol { color: #f2a774; opacity: 1; }
.rv-app .rv-hist--missao .rv-hist__olho--sol { color: #a63a14; }
.rv-app .rv-hist__h { font-family: "Domine", Georgia, serif; font-size: 30px; line-height: 1.15; margin: 0; color: inherit; }
.rv-app .rv-hist__h--grande { font-size: 36px; }
.rv-app .rv-hist__txt { font-size: 18px; line-height: 1.5; opacity: .95; }
.rv-app .rv-hist__txt--grande { font-size: 21px; }
.rv-app .rv-hist__grande { font-family: "Domine", Georgia, serif; font-size: 76px; line-height: 1; font-weight: 700; }
.rv-app .rv-hist__foto { width: 112px; height: 112px; border-radius: 50%; object-fit: cover; border: 3px solid #fffdf8; box-shadow: 0 0 0 6px rgba(232,112,58,.5); }
.rv-app .rv-hist__assina { font-size: 14px; opacity: .75; }
.rv-app .rv-hist__horiz { position: relative; height: 30px; border-bottom: 2px solid rgba(255,253,248,.9); margin: 4px 0 6px; }
.rv-app .rv-hist__horiz span { position: absolute; bottom: 0; width: 44px; height: 22px; margin-left: -22px; border-radius: 44px 44px 0 0; background: #e8703a; box-shadow: 0 0 30px 6px rgba(232,112,58,.55); }
.rv-app .rv-hist__video { width: 100%; aspect-ratio: 9 / 16; max-height: 70vh; border: 0; border-radius: 14px; background: #000; }
.rv-app .rv-btn--cheio { display: block; width: 100%; text-align: center; padding: 15px 18px; font-size: 17px; border-radius: 12px; background: #e8703a; border-color: #e8703a; color: #0c2229; }
.rv-app .rv-btn--cheio:hover { color: #0c2229; }
.rv-app .rv-hist--missao .rv-btn--cheio { background: #12303a; border-color: #12303a; color: #fffdf8; }
.rv-app .rv-hist__dica { position: relative; z-index: 2; pointer-events: none; text-align: center; font-size: 12.5px; opacity: .6; margin: 0 0 max(18px, env(safe-area-inset-bottom)); }

/* criar senha no primeiro acesso */
.rv-app .rv-senha { background: #f4eee2; }
.rv-app .rv-senha__corpo { justify-content: center; max-width: 440px; padding-top: 48px; }
.rv-app .rv-senha__sol { width: 64px; height: 32px; border-radius: 64px 64px 0 0; background: #e8703a; border-bottom: 3px solid #12303a; }
.rv-app .rv-senha__form { display: flex; flex-direction: column; gap: 14px; margin-top: 8px; }
.rv-app .rv-senha .rv-btn--cheio { background: #a63a14; border-color: #a63a14; color: #fffdf8; }

/* rever abertura */
.rv-app .rv-rever { flex-direction: row; align-items: center; gap: 14px; width: 100%; text-align: left; font: inherit; color: inherit; cursor: pointer; }
.rv-app .rv-rever > span:last-child { display: flex; flex-direction: column; }
.rv-app .rv-rever b { color: var(--rv-tinta); }
.rv-app .rv-rever__sol { flex: none; width: 44px; height: 44px; border-radius: 50%; background: radial-gradient(circle at 50% 70%, #e8703a 0 40%, #12303a 41%); box-shadow: 0 0 0 3px #f0c49f; }
html.rv-folha-aberta .rv-app .rv-aviso { position: fixed; top: 12px; left: 12px; right: 12px; z-index: 100000; }
.rv-app .rv-hist__seguir { color: #fffdf8; border-color: rgba(255,253,248,.6); text-align: center; padding: 13px; border-radius: 12px; }
