:root{--fundo:#F4F3EE;--cartao:#FFFFFF;--tinta:#1B1E1A;--tinta2:#5B615A;--marca:#183764;--marca2:#2F5DA0;--borda:#DADAD2;--alerta:#B3261E;--ok:#1F7A45;--espera:#B07D2B;
 --vit:#0F2240;--vit2:#16305A;--vit-tinta:#E7EDF7;--vit-tinta2:#9FB2CF;--vit-linha:#6E9BDB;--vit-carga:#F0B354;--vit-def:#F08A6C}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]){--fundo:#17191B;--cartao:#202326;--tinta:#ECEAE3;--tinta2:#A3A8A1;--marca:#8FB0E0;--marca2:#AFC7EA;--borda:#3A3D40;--alerta:#F2867E;--ok:#6FCF97;--espera:#E0B25E;--vit:#0B1830;--vit2:#112447}}
:root[data-theme="dark"]{--fundo:#17191B;--cartao:#202326;--tinta:#ECEAE3;--tinta2:#A3A8A1;--marca:#8FB0E0;--marca2:#AFC7EA;--borda:#3A3D40;--alerta:#F2867E;--ok:#6FCF97;--espera:#E0B25E;--vit:#0B1830;--vit2:#112447}
*{box-sizing:border-box}
[hidden]{display:none!important}
body{margin:0;min-height:100vh;background:var(--fundo);color:var(--tinta);font:15px/1.5 system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;display:flex;align-items:center;justify-content:center;padding:16px}
a{color:var(--marca)}
.cartao{background:var(--cartao);border:1px solid var(--borda);border-radius:8px;padding:28px;width:min(460px,100%)}
.marca{display:flex;gap:12px;align-items:center;margin-bottom:18px}.marca b{display:block;font-size:20px}.marca small{color:var(--tinta2)}
.logo{background:var(--marca);color:#fff;font-weight:700;border-radius:4px;padding:7px 8px;font-size:14px;line-height:1}
button{font:inherit;padding:9px 14px;border:1px solid var(--borda);background:var(--cartao);color:var(--tinta);border-radius:6px;cursor:pointer;transition:background .15s,border-color .15s,transform .1s}
button:hover:not(:disabled){border-color:var(--marca)}button:active:not(:disabled){transform:translateY(1px)}
button.principal{background:var(--marca);border-color:var(--marca);color:#fff;width:100%;padding:11px;font-weight:600}
button.principal:hover:not(:disabled){background:var(--marca2);border-color:var(--marca2)}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]) button.principal{color:#0F1C30}}
:root[data-theme="dark"] button.principal{color:#0F1C30}
button.secundario{width:100%;margin-top:8px}
button.ghost{background:transparent}button:disabled{opacity:.55;cursor:default}
button.link{border:0;background:none;color:var(--marca);padding:0;text-decoration:underline}
button.perigo{color:var(--alerta)}button.perigo.confirmar{background:var(--alerta);border-color:var(--alerta);color:#fff}
input{font:inherit;padding:9px 10px;border:1px solid var(--borda);border-radius:6px;background:var(--fundo);color:var(--tinta);flex:1;min-width:0}
input:focus,button:focus-visible{outline:2px solid var(--marca);outline-offset:1px}
label{display:block;margin-bottom:6px;color:var(--tinta2);font-size:14px}
.linha{display:flex;gap:8px;flex-wrap:wrap}.botoes{display:flex;gap:8px;flex-wrap:wrap;margin-top:14px}.botoes .principal{flex:1 1 180px;width:auto}
.nota{color:var(--tinta2);font-size:14px}.erro{color:var(--alerta)}.nota:empty{display:none}
.rodape{color:var(--tinta2);font-size:12px;margin:24px 0 0;border-top:1px solid var(--borda);padding-top:12px}
.vis-oculto{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}

/* ---------- página de entrada ---------- */
body.entrada{display:block;padding:0}
.tela{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);min-height:100vh}
.vitrine{background:radial-gradient(120% 90% at 0% 0%,var(--vit2),var(--vit));color:var(--vit-tinta);padding:40px clamp(24px,5vw,64px);display:flex;flex-direction:column;gap:22px;position:relative;overflow:hidden}
.vitrine::before{content:"";position:absolute;inset:0;background-image:linear-gradient(rgba(110,155,219,.07) 1px,transparent 1px),linear-gradient(90deg,rgba(110,155,219,.07) 1px,transparent 1px);background-size:28px 28px;pointer-events:none}
.v-topo{display:flex;align-items:center;gap:10px;font-size:18px;position:relative}.v-topo .logo{background:var(--vit-linha);color:var(--vit)}
.selo{margin-left:auto;font-size:12px;border:1px solid rgba(159,178,207,.45);color:var(--vit-tinta2);border-radius:20px;padding:3px 10px}
.portico{width:100%;max-width:560px;align-self:center;position:relative}
.portico .grade path{stroke:rgba(159,178,207,.18);stroke-width:1;stroke-dasharray:3 5;fill:none}
.portico .estr path{stroke:var(--vit-linha);stroke-width:5;stroke-linecap:round;fill:none}
.portico .sap{stroke-width:3}
.portico .d{stroke-dasharray:600;stroke-dashoffset:600;animation:desenha 1.1s ease forwards}
.portico .d2{animation-delay:.5s}.portico .d3{animation-delay:.9s}.portico .d4{animation-delay:1.3s}
.portico .deform path{stroke:var(--vit-def);stroke-width:2.2;fill:none;stroke-dasharray:5 4;opacity:0;animation:deforma 4.5s ease-in-out 2.4s infinite}
.portico .cargas path{stroke:var(--vit-carga);stroke-width:2;fill:none;opacity:0;animation:aparece .6s ease 1.8s forwards, desce 2.2s ease-in-out 2.4s infinite}
.portico .cargas .seta{fill:var(--vit-carga);stroke:none}
.portico .nos circle{fill:var(--vit);stroke:var(--vit-tinta);stroke-width:1.5;opacity:0;animation:aparece .4s ease 1.6s forwards}
.gantt .estr path{stroke-linecap:round}.gantt .cargas path{stroke-linecap:round;animation:aparece .6s ease 1.9s forwards}
.gantt .deform path{stroke:var(--vit-carga);stroke-width:2;animation:aparece .5s ease 2.2s forwards}
@keyframes desenha{to{stroke-dashoffset:0}}
@keyframes aparece{to{opacity:1}}
@keyframes desce{50%{transform:translateY(5px)}}
@keyframes deforma{0%,100%{opacity:0}30%,70%{opacity:.95}}
.recursos{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:1fr 1fr;gap:10px;position:relative}
.recursos li{border:1px solid rgba(159,178,207,.22);background:rgba(255,255,255,.03);border-radius:8px;padding:12px 14px;font-size:13.5px;color:var(--vit-tinta2);transition:border-color .4s,background .4s,transform .4s}
.recursos li b{display:block;color:var(--vit-tinta);font-size:14.5px;margin-bottom:2px}
.recursos li.ativo{border-color:var(--vit-linha);background:rgba(110,155,219,.12);transform:translateY(-2px)}
.v-pe{margin:auto 0 0;color:var(--vit-tinta2);font-size:13px;position:relative}
.painel{display:flex;align-items:center;justify-content:center;padding:32px 16px}
.painel .cartao{border:0;background:transparent;padding:8px;width:min(400px,100%)}
.painel h1{font-size:26px;margin:0 0 4px;letter-spacing:-.01em}.sub{color:var(--tinta2);margin:0 0 22px}
.etapa{animation:entra .35s ease}
@keyframes entra{from{opacity:0;transform:translateY(6px)}}
.ou{display:flex;align-items:center;gap:10px;color:var(--tinta2);margin:18px 0 12px;font-size:13px}.ou::before,.ou::after{content:"";flex:1;border-top:1px solid var(--borda)}
.campo{display:flex;align-items:center;border:1px solid var(--borda);border-radius:6px;background:var(--fundo);padding-left:10px}
.campo:focus-within{outline:2px solid var(--marca);outline-offset:1px}.campo input{border:0;background:transparent;outline:0}
.campo.invalido{border-color:var(--alerta)}
.ic{display:inline-block;width:18px;height:18px;flex:none;background:currentColor;-webkit-mask:var(--m) center/contain no-repeat;mask:var(--m) center/contain no-repeat;vertical-align:-3px}
.ic-conta{--m:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 12a5 5 0 1 0 0-10 5 5 0 0 0 0 10zm0 2c-4.4 0-8 2.2-8 5v3h16v-3c0-2.8-3.6-5-8-5z'/%3E%3C/svg%3E")}
.ic-email{--m:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M2 5h20v14H2zm2 2v.5l8 5 8-5V7zm16 2.8-8 5-8-5V17h16z'/%3E%3C/svg%3E");color:var(--tinta2)}
button.principal .ic{margin-right:8px}
button.carregando .rot::after{content:"";display:inline-block;width:12px;height:12px;margin-left:8px;border:2px solid currentColor;border-right-color:transparent;border-radius:50%;animation:gira .7s linear infinite;vertical-align:-2px}
@keyframes gira{to{transform:rotate(360deg)}}
.aviso-ok{border:1px solid var(--ok);border-radius:8px;padding:12px 14px;margin-top:12px;font-size:14px;display:flex;flex-direction:column;gap:4px;animation:entra .3s ease}
.aviso-ok b{color:var(--ok)}.aviso-ok .link{align-self:flex-start;font-size:13px}
.aceite{font-size:12.5px;color:var(--tinta2);margin:18px 0 0}
.passos,.linha-tempo{list-style:none;margin:0 0 16px;padding:0;display:flex;flex-direction:column;gap:12px}
.passos li,.linha-tempo li{display:flex;align-items:center;gap:12px;color:var(--tinta2);transition:color .3s}
.passos li::before,.linha-tempo li::before{content:"";width:22px;height:22px;flex:none;border-radius:50%;border:2px solid var(--borda);box-sizing:border-box;transition:all .3s}
.passos li.feito,.linha-tempo li.feito{color:var(--tinta)}
.passos li.feito::before,.linha-tempo li.feito::before{background:var(--ok);border-color:var(--ok);background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M9.5 16.2 5.3 12l-1.4 1.4 5.6 5.6L20.1 8.4 18.7 7z' fill='white'/%3E%3C/svg%3E");background-size:16px;background-position:center;background-repeat:no-repeat}
.passos li.agora{color:var(--tinta);font-weight:600}
.passos li.agora::before{border-color:var(--marca);border-right-color:transparent;animation:gira .8s linear infinite}
.linha-tempo li.espera{color:var(--tinta);font-weight:600}
.linha-tempo li.espera::before{border-color:var(--espera);background:var(--espera);animation:pulsa 1.6s ease-in-out infinite}
.linha-tempo li.parado{color:var(--alerta);font-weight:600}.linha-tempo li.parado::before{border-color:var(--alerta);background:var(--alerta)}
@keyframes pulsa{50%{box-shadow:0 0 0 6px color-mix(in srgb,var(--espera) 25%,transparent)}}
.quem{display:flex;align-items:center;gap:12px;margin-bottom:20px;padding:10px 12px;border:1px solid var(--borda);border-radius:8px}
.quem b{display:block}.quem small{color:var(--tinta2)}
.avatar{width:38px;height:38px;border-radius:50%;background:var(--marca);color:#fff;display:flex;align-items:center;justify-content:center;font-weight:700;flex:none}
#msg-situacao{margin:0 0 4px}
.meus{margin-top:22px;border-top:1px solid var(--borda);padding-top:12px}.meus summary{cursor:pointer;color:var(--tinta2);font-size:14px}
.lista-aviso{margin:14px 0 16px;padding-left:18px;display:flex;flex-direction:column;gap:10px}
.marca-check{display:flex;gap:8px;align-items:center;color:var(--tinta2);font-size:14px;margin-bottom:14px}.marca-check input{flex:none}
@media (max-width:860px){
 .tela{grid-template-columns:1fr}
 .vitrine{padding:20px 16px 18px;gap:12px}.portico{max-width:340px}.recursos{display:none}.v-pe{display:none}
 .painel{padding:20px 16px 32px;align-items:flex-start}
}
@media (prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important}.portico .d{stroke-dashoffset:0}.portico .cargas path,.portico .nos circle{opacity:1}}

/* ---------- administração ---------- */
table{border-collapse:collapse;width:100%;font-size:14px}th,td{border-bottom:1px solid var(--borda);padding:6px 8px;text-align:left;vertical-align:top}
.admin{width:min(1100px,100%)}.admin .cartao{width:100%}.st-liberado{color:var(--ok)}.st-pendente{color:var(--espera)}.st-bloqueado,.st-vencido{color:var(--alerta)}
.admin button{padding:6px 10px;font-size:13.5px}

/* ---------- textos (privacidade, termos) ---------- */
.texto{width:min(760px,100%)}.texto .cartao{width:100%}.texto h1{font-size:24px;margin:0 0 4px}.texto h2{font-size:17px;margin:24px 0 6px}
.texto p,.texto li{color:var(--tinta)}.texto table{margin:8px 0}.texto .nota{margin-top:20px}
