/* Estilos do sistema. Tokens e medidas vêm do kit de marca (guia 1.0, 04/10/2026).
   As telas de referência estão em mockups/index.html. */
/* Nunito Sans servida pelo próprio sistema (licença em ../fontes/OFL.txt). Fonte variável: um arquivo para todos os pesos. */
@font-face{font-family:"Nunito Sans";font-style:normal;font-weight:200 1000;font-display:swap;src:url(../fontes/nunito-sans-latin.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:"Nunito Sans";font-style:normal;font-weight:200 1000;font-display:swap;src:url(../fontes/nunito-sans-latin-ext.woff2) format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}
:root{
  --vermelho:#C8102E; --azul:#142033; --marfim:#FFF3DF; --dourado:#F5A900;
  --fundo:#FFFBF5; --branco:#FFFFFF; --apoio:#536071; --borda:#8C929C;
  --linha:#E4DED3; --sucesso:#176B47; --erro:#A10F25; --foco:#175CD3;
  --rosa:#FBE8EC; --verde-claro:#E3F3EB;
  --fonte:"Nunito Sans",system-ui,Arial,sans-serif;
}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;font-family:var(--fonte);font-size:18px;line-height:1.5;color:var(--azul);background:var(--marfim)}
button,input,textarea,select{font:inherit;color:inherit}
:focus-visible{outline:3px solid var(--foco);outline-offset:3px}
a{color:var(--foco)}
@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}

.tela{position:relative;display:flex;flex-direction:column;min-height:780px;background:var(--fundo)}
.topo{display:flex;align-items:center;gap:12px;min-height:60px;padding:8px 16px;background:var(--branco);border-bottom:1px solid var(--linha)}
.topo img{width:44px;height:44px;flex:none}
.topo h2{font-size:20px;line-height:26px;font-weight:800;margin:0;flex:1;min-width:0;overflow-wrap:anywhere}
.voltar{all:unset;cursor:pointer;display:inline-flex;align-items:center;gap:6px;min-height:44px;padding:0 4px;font-weight:700;color:var(--azul)}
.voltar::before{content:"";width:10px;height:10px;border-left:3px solid currentColor;border-bottom:3px solid currentColor;transform:rotate(45deg);margin-left:4px}
.como{display:flex;align-items:center;gap:12px;padding:10px 16px;background:var(--marfim);border-bottom:1px solid var(--linha)}
.como .rosto{width:44px;height:44px;background:var(--branco)}
.como .quem{flex:1;min-width:0;line-height:24px}
.como .quem small{display:block;font-size:16px;color:var(--apoio)}
.como .quem b{display:block;font-size:20px;line-height:26px;font-weight:800;overflow-wrap:anywhere}
.como .trocar{flex:none;min-height:44px;padding:8px 16px;border-radius:12px;border:1px solid var(--borda);background:var(--branco);color:var(--azul);font-weight:700;font-size:16px;cursor:pointer}
.corpo{flex:1;display:flex;flex-direction:column;gap:16px;padding:20px}
.corpo > h3{font-size:24px;line-height:32px;font-weight:700;margin:0}
.corpo > h3.grande{font-size:32px;line-height:40px;font-weight:800}
.corpo p{margin:0}
.apoio{color:var(--apoio);font-size:16px;line-height:24px}
.fim{margin-top:auto;display:flex;flex-direction:column;gap:12px}
.fim.cola{position:sticky;bottom:0;margin:auto -20px -20px;padding:12px 20px 20px;background:var(--fundo);border-top:1px solid var(--linha)}

.bt{display:flex;align-items:center;justify-content:center;width:100%;min-height:52px;padding:12px 20px;border-radius:12px;border:0;background:var(--vermelho);color:#fff;font-weight:700;font-size:18px;line-height:27px;text-align:center;text-decoration:none;cursor:pointer}
.bt:active{transform:translateY(1px)}
.bt.sec{background:var(--branco);border:1px solid var(--borda);color:var(--azul)}
.bt.perigo{background:var(--branco);border:2px solid var(--erro);color:var(--erro)}
.bt[disabled]{opacity:.5;cursor:default}
.link{all:unset;cursor:pointer;color:var(--foco);font-weight:700;text-decoration:underline;min-height:44px;display:inline-flex;align-items:center}

.cartao{background:var(--branco);border:1px solid var(--borda);border-radius:20px;padding:20px;display:flex;flex-direction:column;gap:12px}
.cartao h4{font-size:20px;line-height:26px;font-weight:800;margin:0}
.dados{display:grid;grid-template-columns:auto 1fr;gap:6px 14px;margin:0}
.dados dt{color:var(--apoio);font-size:16px;line-height:27px}
.dados dd{margin:0;font-weight:700}
.aviso{background:var(--marfim);border-radius:12px;padding:14px 16px;border-left:6px solid var(--dourado)}
.aviso.erro{background:var(--rosa);border-left-color:var(--erro);color:var(--erro)}
.aviso.ok{background:var(--verde-claro);border-left-color:var(--sucesso);color:var(--sucesso)}
.aviso b{display:block}
.etiqueta{display:inline-block;padding:2px 12px;border-radius:999px;background:var(--rosa);color:var(--erro);font-size:16px;line-height:24px;font-weight:700}
.etiqueta.neutra{background:var(--marfim);color:var(--azul)}
.etiqueta.ok{background:var(--verde-claro);color:var(--sucesso)}

.campo{display:flex;flex-direction:column;gap:6px}
.campo label{font-weight:700;font-size:16px;line-height:24px}
.campo input,.campo textarea,.campo select{width:100%;min-height:52px;padding:12px 14px;border:1px solid var(--borda);border-radius:12px;background:var(--branco)}
.campo textarea{min-height:108px;resize:vertical}
.campo input[type="date"],.campo input[type="time"]{-webkit-appearance:none;appearance:none;min-width:0;cursor:pointer}
.campo input::-webkit-date-and-time-value{text-align:left}
.campo .ajuda{color:var(--apoio);font-size:16px;line-height:24px}
.dupla{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.codigo input{font-size:32px;line-height:40px;font-weight:800;letter-spacing:.3em;text-align:center}
.fixo{display:flex;justify-content:space-between;gap:12px;padding:12px 14px;border-radius:12px;background:var(--marfim)}
.fixo span{color:var(--apoio);font-size:16px}
.fixo b{font-weight:700}

.opcao{display:flex;align-items:flex-start;gap:14px;padding:14px 16px;border:1px solid var(--borda);border-radius:12px;background:var(--branco);cursor:pointer}
.opcao input{width:26px;height:26px;margin:1px 0 0;flex:none;accent-color:var(--vermelho)}
.opcao.marcada{border:2px solid var(--vermelho);padding:13px 15px}
.opcao small{display:block;color:var(--apoio);font-size:16px;line-height:24px}

.linhas{display:flex;flex-direction:column;background:var(--branco);border:1px solid var(--borda);border-radius:20px;overflow:hidden}
.linha{display:flex;align-items:center;gap:14px;min-height:72px;padding:12px 16px;border:0;border-bottom:1px solid var(--linha);background:none;text-align:left;text-decoration:none;color:var(--azul);cursor:pointer;width:100%}
.linha:last-child{border-bottom:0}
.linha .txt{flex:1;min-width:0}
.linha .txt b{display:block;font-weight:700;overflow-wrap:anywhere}
.linha .txt small{display:block;color:var(--apoio);font-size:16px;line-height:24px}
.linha.vai::after{content:"";width:10px;height:10px;border-right:3px solid var(--apoio);border-top:3px solid var(--apoio);transform:rotate(45deg);flex:none;margin-right:4px}
.rosto{width:48px;height:48px;border-radius:50%;background:var(--marfim);display:flex;align-items:center;justify-content:center;font-weight:800;flex:none}
.rosto.surpresa{background:var(--azul);overflow:hidden}
.rosto img{width:48px;height:48px}
.conta{min-width:28px;height:28px;padding:0 8px;border-radius:999px;background:var(--vermelho);color:#fff;font-size:16px;font-weight:700;display:inline-flex;align-items:center;justify-content:center;flex:none}

.nomes{display:flex;flex-wrap:wrap;gap:8px;margin:0;padding:0;list-style:none}
.nomes li{padding:4px 12px;border-radius:999px;background:var(--marfim);font-size:16px;line-height:24px}

.chave{display:flex;align-items:center;gap:14px;justify-content:space-between}
.chave b{font-weight:700}
.chave i{flex:none;width:56px;height:32px;border-radius:999px;background:var(--borda);position:relative}
.chave i::after{content:"";position:absolute;top:3px;left:3px;width:26px;height:26px;border-radius:50%;background:#fff}
.chave i.ligada{background:var(--sucesso)}
.chave i.ligada::after{left:27px}
.tres{display:grid;grid-template-columns:repeat(3,1fr);border:1px solid var(--borda);border-radius:12px;overflow:hidden;background:var(--branco)}
.tres span{min-height:48px;display:flex;align-items:center;justify-content:center;font-weight:700;border-right:1px solid var(--borda)}
.tres span:last-child{border-right:0}
.tres span.sel{background:var(--azul);color:var(--marfim)}

/* revelação */
.revela{background:var(--vermelho);color:#fff;padding:28px 96px 32px 20px;position:relative;overflow:hidden}
.revela p{margin:0;font-size:18px}
.revela strong{display:block;font-size:44px;line-height:48px;font-weight:800;margin-top:4px;overflow-wrap:anywhere;animation:surge .5s ease-out both}
.revela svg{position:absolute;right:14px;top:14px;width:76px;height:76px}
@keyframes surge{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}
.presente{display:flex;flex-direction:column;align-items:center;gap:8px;text-align:center}
.presente img{width:168px;height:auto}

/* conversa */
.fala{max-width:86%;padding:12px 16px;border-radius:20px;background:var(--branco);border:1px solid var(--linha)}
.fala.minha{align-self:flex-end;background:var(--marfim);border-color:var(--marfim)}
.fala small{display:block;margin-top:4px;color:var(--apoio);font-size:16px;line-height:24px}
.fala.pendente{border:2px dashed var(--borda);background:var(--branco)}
.escrever{padding:12px 16px 16px;background:var(--branco);border-top:1px solid var(--linha);display:flex;flex-direction:column;gap:10px}
.escrever textarea{width:100%;min-height:76px;padding:12px 14px;border:1px solid var(--borda);border-radius:12px}

/* modal */
.veu{position:absolute;inset:0;background:rgba(20,32,51,.6);display:flex;align-items:flex-end;padding:16px;z-index:5}
.modal{width:100%;background:var(--branco);border-radius:20px;padding:24px;display:flex;flex-direction:column;gap:14px}
.modal h3{font-size:24px;line-height:32px;font-weight:700;margin:0}
.modal p{margin:0}
.trecho{padding:10px 14px;border-radius:12px;background:var(--rosa);color:var(--erro);font-weight:700}

/* página: uma coluna de até 480 px, que ocupa a altura toda no celular */
.tela{max-width:480px;margin:0 auto;min-height:100vh;min-height:100dvh}
.formulario{display:flex;flex-direction:column;gap:16px;flex:1}
.campo .erro{color:var(--erro);font-size:16px;line-height:24px;font-weight:700}
.campo input[aria-invalid="true"]{border:2px solid var(--erro)}
.marca-entrada{width:220px;height:auto}
fieldset.formulario{border:0;margin:0;padding:0;min-width:0}

/* controles reais (formulários) com a aparência do mockup */
[hidden]{display:none!important}
a.linha,a.voltar{text-decoration:none}
.quebra{overflow-wrap:anywhere}
form{margin:0}
fieldset.cartao{margin:0;min-width:0}
legend.titulo-cartao{float:left;width:100%;padding:0;margin:0 0 12px;font-size:20px;line-height:26px;font-weight:800}
legend.titulo-cartao + *{clear:both}
.chave{cursor:pointer}
.chave input{appearance:none;-webkit-appearance:none;flex:none;width:56px;height:32px;margin:0;border-radius:999px;background:var(--borda);position:relative;cursor:pointer}
.chave input::after{content:"";position:absolute;top:3px;left:3px;width:26px;height:26px;border-radius:50%;background:#fff;transition:left .15s}
.chave input:checked{background:var(--sucesso)}
.chave input:checked::after{left:27px}
.tres label{position:relative;min-height:48px;display:flex;border-right:1px solid var(--borda);cursor:pointer}
.tres label:last-child{border-right:0}
.tres input{position:absolute;opacity:0;width:100%;height:100%;margin:0;cursor:pointer}
.tres label span{flex:1;border-right:0}
.tres input:checked + span{background:var(--azul);color:var(--marfim)}
.tres input:focus-visible + span{outline:3px solid var(--foco);outline-offset:-3px}
.opcao:has(input:checked){border:2px solid var(--vermelho);padding:13px 15px}
.etiquetas{display:flex;flex-wrap:wrap;gap:8px}
.etiquetas:empty{display:none}
.linha form{flex:none}
