/* Recibo da estimativa — site, app e área do cliente (versão A aprovada) */
.rc { --rc-fundo: #EEF3FB; --rc-marinho: #071D41; --rc-azul: #0067FE; --rc-amarelo: #FFC23D; --rc-tinta: #071D41; --rc-tinta2: #4A5B78; --rc-linha: #E1E8F4; --rc-papel: #fff;
  display: grid; gap: 14px; color: var(--rc-tinta); font-variant-numeric: tabular-nums; }
.rc__topo { display: flex; align-items: center; justify-content: space-between; gap: 12px; min-height: 40px; }
.rc__titulo { font-family: var(--fonte-tit, inherit); font-weight: 700; font-size: 1.2rem; }
.rc[data-ctx="site"] .rc__titulo { visibility: hidden; }
.rc__moedas { display: flex; gap: 2px; padding: 3px; border-radius: 999px; background: var(--rc-papel); box-shadow: 0 2px 8px rgba(7,29,65,.08); }
.rc__moedas[hidden] { display: none; }
.rc__moedas button { min-width: 52px; height: 36px; padding: 0 12px; border: 0; border-radius: 999px; background: transparent; color: var(--rc-tinta); font: inherit; font-weight: 700; cursor: pointer; transition: background .2s, color .2s; }
.rc__moedas button[aria-pressed="true"] { background: var(--rc-marinho); color: #fff; }

.rc__bilhete { border-radius: 20px; overflow: hidden; background: var(--rc-papel); box-shadow: 0 12px 32px rgba(7,29,65,.16); }
.rc__cabeca { position: relative; overflow: hidden; display: flex; flex-direction: column; align-items: flex-start; padding: 22px 22px 24px; background: var(--rc-marinho); color: #fff; }
.rc__azulejo { position: absolute; right: -24px; top: -24px; opacity: .9; }
.rc__serv { position: relative; max-width: calc(100% - 90px); color: var(--rc-amarelo); font-size: .76rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; line-height: 1.35; }
.rc__rot { margin-top: 14px; color: #C9D6EE; font-size: .9rem; }
.rc__valor { display: flex; align-items: flex-start; gap: 6px; margin-top: 2px; font-family: var(--fonte-tit, inherit); }
.rc__sim { margin-top: 10px; color: var(--rc-amarelo); font-size: 1.6rem; font-weight: 700; }
.rc__sim:empty { display: none; }
.rc__valor strong { font-size: clamp(3rem, 14vw, 4.25rem); line-height: 1; font-weight: 800; letter-spacing: -.03em; }
.rc.is-sem .rc__valor strong { font-size: clamp(1.8rem, 7vw, 2.4rem); letter-spacing: -.02em; }
.rc.is-sem .rc__rot { display: none; }
.rc.is-sem .rc__valor { margin-top: 10px; }
.rc.is-sem .rc__corpo { gap: 0; }
.rc.is-sem .rc__nota { font-size: .92rem; color: var(--rc-tinta); }
.rc__selo { display: inline-flex; align-items: center; gap: 6px; margin-top: 12px; padding: 6px 10px; border-radius: 999px; background: rgba(255,255,255,.12); font-size: .82rem; }
.rc__selo[hidden] { display: none; }

/* "a calcular": três etapas acendem uma a uma */
.rc__etapas { display: none; list-style: none; margin: 10px 0 4px; padding: 0; gap: 8px; }
.rc__etapas li { display: flex; align-items: center; gap: 10px; color: #C9D6EE; font-size: .9rem; opacity: .45; transition: opacity .25s, color .25s; }
.rc__etapas li i { position: relative; flex: none; width: 20px; height: 20px; border-radius: 50%; border: 2px solid rgba(255,255,255,.35); box-sizing: border-box; transition: border-color .25s, background .25s; }
.rc__etapas li.is-agora { opacity: 1; color: #fff; }
.rc__etapas li.is-agora i { border-color: var(--rc-amarelo); border-top-color: transparent; animation: rc-gira .7s linear infinite; }
.rc__etapas li.is-ok { opacity: 1; color: #fff; }
.rc__etapas li.is-ok i { border-color: #2B9C49; background: #2B9C49; animation: rc-ok .3s cubic-bezier(.2,1.6,.4,1); }
.rc__etapas li.is-ok i::after { content: ""; position: absolute; left: 5px; top: 2px; width: 5px; height: 9px; border: solid #fff; border-width: 0 2px 2px 0; transform: rotate(45deg); }
.rc.is-calc .rc__etapas { display: grid; }
.rc.is-calc .rc__valor, .rc.is-calc .rc__selo, .rc.is-calc .rc__corpo, .rc.is-calc .rc__azulejo { display: none; }
.rc.is-calc .rc__cabeca::before { content: ""; position: absolute; inset: 0; background: linear-gradient(100deg, transparent 20%, rgba(255,255,255,.08) 50%, transparent 80%); animation: rc-brilho 1.2s linear infinite; }

/* picote do recibo */
.rc__picote { position: relative; height: 0; }
.rc__picote::before, .rc__picote::after { content: ""; position: absolute; top: -12px; width: 24px; height: 24px; border-radius: 50%; background: var(--rc-fundo-pag, var(--rc-fundo)); }
.rc__picote::before { left: -12px; } .rc__picote::after { right: -12px; }
.rc__corpo { position: relative; display: flex; flex-direction: column; gap: 12px; padding: 22px; border-top: 2px dashed #C9D6EE; margin: 0 0; }
.rc__linhas { display: grid; gap: 12px; font-size: .96rem; }
.rc__linhas[hidden] { display: none; }
.rc__linha { display: flex; justify-content: space-between; gap: 12px; }
.rc__linha[hidden] { display: none; }
.rc__linha b { white-space: nowrap; }
.rc__linha--total { align-items: baseline; padding-top: 12px; border-top: 1px solid var(--rc-linha); font-weight: 700; }
.rc__linha--total b { font-family: var(--fonte-tit, inherit); font-size: 1.35rem; font-weight: 800; color: var(--rc-azul); }

.rc__pag { display: grid; gap: 10px; margin-top: 4px; }
.rc__pag[hidden] { display: none; }
.rc__pag-t { color: var(--rc-tinta2); font-size: .74rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; }
.rc__partes { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
.rc__partes[hidden], .rc__unico[hidden] { display: none; }
.rc__parte, .rc__unico { display: flex; flex-direction: column; gap: 2px; padding: 12px 12px 14px; border-radius: 14px; }
.rc__parte--1 { background: var(--rc-marinho); color: #fff; }
.rc__parte--2 { background: var(--rc-fundo); }
.rc__unico { background: var(--rc-marinho); color: #fff; }
.rc__parte-t { display: flex; flex-wrap: wrap; align-items: center; gap: 4px 6px; font-size: 12px; font-weight: 700; }
.rc__parte-t em { padding: 1px 6px; border-radius: 999px; font-style: normal; font-size: 11px; background: rgba(255,255,255,.14); }
.rc__parte--2 .rc__parte-t em { background: #DCE5F3; }
.rc__parte--1 .rc__parte-t, .rc__unico .rc__parte-t { color: var(--rc-amarelo); }
.rc__parte--2 .rc__parte-t { color: var(--rc-tinta2); }
.rc__parte-t i { flex: none; display: inline-grid; place-items: center; width: 18px; height: 18px; border-radius: 50%; font-size: .7rem; font-style: normal; background: var(--rc-amarelo); color: var(--rc-marinho); }
.rc__parte--2 .rc__parte-t i { background: #C9D6EE; }
.rc__parte b, .rc__unico b { margin-top: 4px; font-family: var(--fonte-tit, inherit); font-size: clamp(1.1rem, 5.2vw, 1.5rem); font-weight: 800; white-space: nowrap; }
.rc__parte small, .rc__unico small { font-size: .78rem; color: #C9D6EE; }
.rc__parte--2 small { color: var(--rc-tinta2); }
.rc__unico { flex-direction: row; flex-wrap: wrap; align-items: baseline; column-gap: 12px; }
.rc__unico .rc__parte-t { flex-basis: 100%; }
.rc__meios { margin: 0; color: var(--rc-tinta2); font-size: .78rem; line-height: 1.4; }
.rc__custos { padding: 12px 14px; border-radius: 12px; background: #FFF6E0; color: #5A4300; font-size: .84rem; line-height: 1.45; }
.rc__custos[hidden] { display: none; }
.rc__custos span:empty { display: none; }
.rc__nota { margin: 0; color: var(--rc-tinta2); font-size: .8rem; line-height: 1.45; }
.rc__nota:empty { display: none; }

/* animações leves: o valor surge, o recibo "sai" e as linhas entram uma a uma */
.rc.is-pronto .rc__valor { animation: rc-surge .5s cubic-bezier(.2,.8,.2,1) both; }
.rc__valor strong.is-chegou { display: inline-block; animation: rc-chegou .6s cubic-bezier(.2,1.6,.4,1); }
.rc.is-pronto .rc__selo { animation: rc-pop .45s .9s cubic-bezier(.2,1.6,.4,1) both; }
.rc.is-pronto .rc__azulejo { animation: rc-azulejo .8s cubic-bezier(.2,.8,.2,1) both; }
.rc.is-pronto .rc__corpo { animation: rc-imprime .6s .15s cubic-bezier(.2,.8,.2,1) both; }
.rc.is-pronto .rc__linha, .rc.is-pronto .rc__pag-t, .rc.is-pronto .rc__parte, .rc.is-pronto .rc__unico, .rc.is-pronto .rc__meios, .rc.is-pronto .rc__custos { animation: rc-item .45s cubic-bezier(.2,.8,.2,1) both; }
.rc.is-pronto .rc__linha:nth-child(1) { animation-delay: .3s; }
.rc.is-pronto .rc__linha:nth-child(2) { animation-delay: .42s; }
.rc.is-pronto .rc__linha:nth-child(3) { animation-delay: .54s; }
.rc.is-pronto .rc__pag-t { animation-delay: .7s; }
.rc.is-pronto .rc__parte--1, .rc.is-pronto .rc__unico { animation-delay: .8s; }
.rc.is-pronto .rc__parte--2 { animation-delay: .92s; }
.rc.is-pronto .rc__meios { animation-delay: 1.02s; }
.rc.is-pronto .rc__custos { animation-delay: 1.12s; }
.rc.is-troca .rc__corpo b { animation: rc-troca .35s ease both; }

@keyframes rc-gira { to { transform: rotate(360deg); } }
@keyframes rc-ok { from { transform: scale(.4); } to { transform: none; } }
@keyframes rc-brilho { from { transform: translateX(-100%); } to { transform: translateX(100%); } }
@keyframes rc-surge { from { opacity: 0; transform: translateY(8px) scale(.96); } to { opacity: 1; transform: none; } }
@keyframes rc-chegou { 40% { transform: scale(1.06); } to { transform: none; } }
@keyframes rc-pop { from { opacity: 0; transform: scale(.7); } to { opacity: 1; transform: none; } }
@keyframes rc-azulejo { from { transform: rotate(-90deg) scale(.6); opacity: 0; } to { opacity: .9; transform: none; } }
@keyframes rc-imprime { from { clip-path: inset(0 0 100% 0); } to { clip-path: inset(0 0 0 0); } }
@keyframes rc-item { from { opacity: 0; transform: translateY(6px); } to { opacity: 1; transform: none; } }
@keyframes rc-troca { from { opacity: .2; transform: translateY(-3px); } to { opacity: 1; transform: none; } }
@media (prefers-reduced-motion: reduce) { .rc *, .rc *::before, .rc *::after { animation: none !important; transition: none !important; } }

/* área do cliente (painel) */
.rc[data-ctx="painel"] { margin-bottom: 14px; }
.rc[data-ctx="painel"] .rc__topo { min-height: 0; }

/* modo escuro */
html.tema-escuro .rc { --rc-fundo: #13213A; --rc-papel: #101C30; --rc-tinta: #E4EAF3; --rc-tinta2: #A9B6CC; --rc-linha: #22324E; --rc-azul: #5B9BFF; }
html.tema-escuro .rc__bilhete { box-shadow: 0 12px 32px rgba(0,0,0,.4); border: 1px solid #22324E; }
html.tema-escuro .rc__cabeca, html.tema-escuro .rc__parte--1, html.tema-escuro .rc__unico { background: #0B2A5B; }
html.tema-escuro .rc__moedas button[aria-pressed="true"] { background: #0067FE; }
html.tema-escuro .rc__corpo { border-top-color: #2E4266; }
html.tema-escuro .rc__parte--2 .rc__parte-t em { background: #2E4266; }
html.tema-escuro .rc__parte--2 .rc__parte-t i { background: #2E4266; color: #E4EAF3; }
html.tema-escuro .rc__custos { background: #2A2410; color: #F3DFA6; }
