/* Entry pages (sign in, SSO confirmation, errors). Suite palette, Archivo self-hosted,
   the particle wordmark of the Concierge and ON BOARD (static/js/ceu.js). Dark is the
   default; light is the brand's sand. Field borders use Sand Mid: the Suite's
   translucent border fails 3:1 (packages/brand README of revo_padock_project). */
@font-face{font-family:"Archivo";src:url("fonts/archivo-400.woff2") format("woff2");font-weight:400;font-style:normal;font-display:swap}
@font-face{font-family:"Archivo";src:url("fonts/archivo-600.woff2") format("woff2");font-weight:600;font-style:normal;font-display:swap}
:root{
  color-scheme:dark;
  --ocean:#5cd5d9;--ocean-claro:#c9fdff;--ocean-medio:#285768;--ocean-escuro:#182932;--ocean-abissal:#0d181e;
  --areia:#eee6dc;--areia-clara:#fff5e9;--areia-media:#948e84;--populus:#ff7575;--negativo:#b00020;
  --fundo-topo:#182932;--fundo:#0d181e;--fundo-fim:#091015;
  --superficie:linear-gradient(180deg,#1d374299,#14232acc);--campo:#091015d9;
  --ink:var(--areia-clara);--muted:#aabec5;--faint:var(--areia-media);--acento:var(--ocean);--acento-forte:var(--ocean-claro);
  --t-erro:var(--populus);--erro-fundo:#ff757514;--erro-borda:#ff757566;
  --borda:#5cd5d92e;--borda-forte:#5cd5d96b;--realce:#5cd5d91a;--linha-campo:var(--areia-media);
  --sombra:0 18px 50px -18px #0000008c;--brilho:rgba(92,213,217,.13);
}
:root[data-tema="claro"]{
  color-scheme:light;
  --fundo-topo:var(--areia-clara);--fundo:var(--areia-clara);--fundo-fim:var(--areia-clara);
  --superficie:#ffffff;--campo:#ffffff;
  --ink:var(--ocean-escuro);--muted:var(--ocean-medio);--faint:var(--ocean-medio);--acento:var(--ocean-medio);--acento-forte:var(--ocean-escuro);
  --t-erro:var(--negativo);--erro-fundo:#ffdde9;--erro-borda:#b0002066;
  --borda:var(--areia);--borda-forte:rgba(40,87,104,.7);--realce:rgba(92,213,217,.16);
  --sombra:0 18px 50px -18px rgba(24,41,50,.28);--brilho:rgba(40,87,104,.08);
}
*{box-sizing:border-box}
body.entry{
  margin:0;min-height:100vh;min-height:100dvh;padding:24px 16px;
  background:var(--fundo) radial-gradient(120% 90% at 50% 0,var(--fundo-topo) 0%,var(--fundo) 62%,var(--fundo-fim) 100%) fixed;
  color:var(--ink);font:16px/1.55 "Archivo",-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,sans-serif;-webkit-font-smoothing:antialiased;
}
.entry-page{position:relative;isolation:isolate;min-height:calc(100dvh - 48px);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:22px}

/* the scene: aria-hidden, pointer-events none, behind everything */
.ceu-revo{position:fixed;inset:0;z-index:-1;pointer-events:none;overflow:hidden}
.ceu-revo canvas{display:block;width:100%;height:100%}
/* where the wordmark settles; the fallback logo fills the SAME rectangle the scene draws
   (92% of the width: the PNG's opaque box is 64.2% of it, so 143.3%) */
.entry-marca{position:relative;width:min(78vw,440px);aspect-ratio:3.1;overflow:hidden;flex:none}
.entry-marca .entry-logo{position:absolute;left:50%;top:50%;width:143.3%;max-width:none;height:auto;margin:0;translate:-50% -50%;transition:opacity .9s ease}
.ceu-revo[data-assentou] ~ .entry-marca .entry-logo{opacity:0}
/* light: the PNG is white and disappears on sand. A mask cuts the PNG's own drawing, in the
   same rectangle, painted Ocean Dark (brand guide p. 15; the PADOCK's .rv-marca) */
:root[data-tema="claro"] .entry-marca .entry-logo{opacity:0}
:root[data-tema="claro"] .entry-marca::before{
  content:"";position:absolute;inset:0;pointer-events:none;background:var(--ocean-escuro);transition:opacity .9s ease;
  -webkit-mask:url("img/revo-logo.png") 50% 50%/143.3% auto no-repeat;mask:url("img/revo-logo.png") 50% 50%/143.3% auto no-repeat;
}
:root[data-tema="claro"] .ceu-revo[data-assentou] ~ .entry-marca::before{opacity:0}

.entry-card{
  position:relative;isolation:isolate;width:min(420px,100%);padding:30px 28px;border-radius:22px;border:1px solid var(--borda);
  background:var(--superficie);box-shadow:var(--sombra);backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px);
}
.entry-card::after{content:"";position:absolute;inset:0;z-index:-1;border-radius:inherit;pointer-events:none;opacity:0;transition:opacity .25s ease;
  background:radial-gradient(380px circle at var(--mx,50%) var(--my,0%),var(--brilho),transparent 62%)}
@media (hover:hover){.entry-card:hover::after{opacity:1}}
.entry-top{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:22px}
.entry-app{font-size:12px;font-weight:600;letter-spacing:.24em;color:var(--muted)}
h1{font-size:26px;line-height:1.2;font-weight:600;margin:0 0 8px}
.entry-sub{color:var(--muted);margin:0 0 12px}
.entry-sub strong{color:var(--ink);overflow-wrap:anywhere}
.entry-alert{border:1px solid var(--erro-borda);background:var(--erro-fundo);color:var(--t-erro);border-radius:12px;padding:10px 14px;margin:0 0 14px;font-size:14px}
.entry-form{display:grid;gap:14px;margin-top:18px}
.entry-form label{display:grid;gap:6px}
.entry-form label span{font-size:11px;font-weight:600;letter-spacing:.16em;text-transform:uppercase;color:var(--faint)}
.entry-form input{font:inherit;font-size:16px;color:var(--ink);background:var(--campo);min-height:46px;border:1px solid var(--linha-campo);border-radius:10px;padding:10px 12px;outline:none;transition:border-color .2s,box-shadow .2s}
.entry-form input:focus-visible{border-color:var(--acento);box-shadow:0 0 0 3px var(--realce)}
.entry-form button{
  font:inherit;font-weight:600;min-height:46px;border:0;border-radius:10px;cursor:pointer;padding:0 18px;
  color:var(--ocean-abissal);background:linear-gradient(90deg,#53c0c3,#b5e4e6);box-shadow:0 6px 22px -6px #53c0c38c;
  transition:box-shadow .25s ease,translate .35s cubic-bezier(.33,1,.68,1),scale .12s ease;
}
@media (hover:hover){.entry-form button:hover{filter:brightness(1.06);box-shadow:0 10px 30px -6px rgba(92,213,217,.75)}}
.entry-form button:active{scale:.98}
a{color:var(--acento)}
a:focus-visible,button:focus-visible{outline:2px solid var(--acento-forte);outline-offset:3px}
.entry-foot{margin:22px 0 0;font-size:14px;color:var(--muted)}

/* theme switch (static/js/tema.js) */
.tema{display:inline-flex;gap:2px;padding:2px;border-radius:10px;border:1px solid var(--linha-campo)}
.tema-opcao{display:inline-grid;place-items:center;width:32px;height:32px;border:0;border-radius:8px;background:transparent;color:var(--muted);cursor:pointer}
.tema-opcao svg{width:16px;height:16px}
:root:not([data-tema="claro"]) .tema-opcao[data-tema-opcao="escuro"],
:root[data-tema="claro"] .tema-opcao[data-tema-opcao="claro"]{background:var(--realce);color:var(--acento);box-shadow:inset 0 0 0 1px var(--borda-forte)}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}

/* entry: the wordmark and the card rise once, with transform only */
@keyframes sobe{from{transform:translate3d(0,14px,0)}}
.entry-marca,.entry-card{animation:sobe .55s cubic-bezier(.2,.7,.2,1) backwards}
.entry-card{animation-delay:.08s}

@media (max-width:560px){.entry-marca{width:min(56vw,240px)}}
@media (max-width:800px){.tema-opcao{width:44px;height:44px}}
@media (prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important}}
@media print{.ceu-revo{display:none}}
