:root{--bg:#0a0d14;--panel:#111826;--panel2:#161e2e;--line:#1f2a3d;--text:#e8edf5;--muted:#8591a5;--blue:#4da3ff;--green:#4ade9b;--orange:#fb9f3c;--red:#f87171}
*{box-sizing:border-box}
body{margin:0;background:var(--bg);color:var(--text);font:15px/1.5 Inter,system-ui,-apple-system,"Segoe UI",sans-serif}
.mono{font-family:ui-monospace,"JetBrains Mono",Menlo,monospace}
a{color:var(--blue);text-decoration:none}
.logo{display:flex;align-items:center;gap:12px;font-weight:700;font-size:22px}
.logo svg{width:46px;height:46px}
.logo b{color:var(--blue)}
/* login */
.shell{min-height:100vh;display:grid;place-items:center;padding:24px}
.card{width:min(1100px,100%);display:grid;grid-template-columns:1fr 1fr;background:var(--panel);border:1px solid var(--line);border-radius:36px;overflow:hidden;min-height:680px}
.left{padding:54px;display:flex;flex-direction:column}
.left h1{font-size:34px;margin:56px 0 26px;letter-spacing:-.5px}
label{display:block;font-size:14px;margin:14px 0 8px}
.lrow{display:flex;justify-content:space-between;align-items:baseline}
.lrow a{font-size:14px}
.field{display:flex;align-items:center;gap:10px;background:var(--panel2);border:1px solid var(--line);border-radius:14px;padding:0 14px;height:46px}
.field:focus-within{border-color:var(--blue)}
.field svg{width:18px;height:18px;stroke:var(--muted);fill:none;stroke-width:1.8;flex:none}
.field input{flex:1;background:none;border:0;outline:0;color:var(--text);font:inherit}
.field input::placeholder{color:#5d6a80}
.field button{background:none;border:0;cursor:pointer;padding:0;display:flex}
.check{display:flex;align-items:center;gap:10px;margin:18px 0;font-size:14px;color:#c6cedb}
.check input{width:18px;height:18px;accent-color:var(--blue)}
.btn{width:100%;height:50px;border-radius:14px;border:1px solid var(--line);background:transparent;color:var(--text);font:600 15px inherit;font-family:inherit;cursor:pointer;display:flex;align-items:center;justify-content:center;gap:8px}
.btn.primary{background:var(--blue);color:#06101d;border:0}
.btn.primary:hover{filter:brightness(1.08)}
.btn:disabled{opacity:.6;cursor:wait}
.btn svg{width:18px;height:18px;stroke:currentColor;fill:none;stroke-width:2}
.or{display:flex;align-items:center;gap:14px;color:var(--muted);font-size:13px;margin:22px 0}
.or:before,.or:after{content:"";flex:1;height:1px;background:var(--line)}
.err{color:var(--red);font-size:14px;min-height:20px;margin:8px 0 0}
.foot{margin-top:auto;padding-top:28px;display:flex;justify-content:center;color:#66738a;font-size:12.5px}
.right{position:relative;border-left:1px solid var(--line);background:radial-gradient(circle,#1a2538 1px,transparent 1px) 0 0/22px 22px,var(--panel);padding:38px 40px;display:flex;flex-direction:column;align-items:center;overflow:hidden}
.right:after{content:"";position:absolute;inset:0;pointer-events:none;background:radial-gradient(ellipse at 50% 45%,transparent 35%,var(--panel) 100%)}
.right>*{position:relative;z-index:1}
.pill{display:inline-flex;gap:8px;align-items:center;background:#15233a;color:#bcd3f5;font-size:13px;font-weight:600;padding:8px 16px;border-radius:99px}
.dot{width:9px;height:9px;border-radius:50%;background:var(--green);display:inline-block;animation:blink 2s ease-in-out infinite}
.stage{flex:1;width:100%;display:flex;flex-direction:column;justify-content:center;gap:22px}
.flowviz{width:100%;height:auto;display:block}
.flowviz .ring{transform-box:fill-box;transform-origin:center;animation:ring 3s ease-out infinite;opacity:0}
.flowviz .ring.r2{animation-delay:1.5s}
.ticker{width:min(440px,100%);margin:0 auto;height:98px;overflow:hidden;font-size:12px;color:#7d8aa0;-webkit-mask-image:linear-gradient(#000 35%,transparent);mask-image:linear-gradient(#000 35%,transparent)}
.ticker .ln{display:flex;gap:8px;align-items:baseline;padding:2px 0;white-space:nowrap;animation:tick .5s ease-out}
.ticker .ip{color:#c3cde0}.ticker i{font-style:normal;color:#4d5c75}.ticker em{font-style:normal;color:var(--blue);min-width:62px}.ticker b{margin-left:auto;font-weight:500;color:#9aa7bc}
.right h2{font-size:26px;margin:0 0 6px;letter-spacing:-.4px;text-align:center;font-weight:650}
.rise{opacity:0;transform:translateY(10px);animation:rise .6s cubic-bezier(.2,.7,.2,1) forwards;animation-delay:var(--d,0s)}
@keyframes rise{to{opacity:1;transform:none}}
@keyframes ring{0%{transform:scale(1);opacity:.55}100%{transform:scale(2.1);opacity:0}}
@keyframes blink{0%,100%{opacity:1}50%{opacity:.35}}
@keyframes tick{from{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:none}}
@media(prefers-reduced-motion:reduce){.rise{animation:none;opacity:1;transform:none}.dot,.ticker .ln,.flowviz .ring{animation:none}.flowviz .ring{opacity:0}}
@media(max-width:860px){.card{grid-template-columns:1fr}.right{display:none}.left{padding:32px 24px}}
/* seletor de idioma (bandeiras) */
.langbar{display:flex;gap:10px;align-items:center;justify-content:center}
.lang{width:40px;height:28px;padding:0;border-radius:7px;border:2px solid transparent;background:none;cursor:pointer;opacity:.55;overflow:hidden;line-height:0;transition:opacity .15s,transform .15s,border-color .15s}
.lang svg{width:100%;height:100%;display:block;border-radius:4px}
.lang:hover{opacity:.95;transform:translateY(-1px)}
.lang.on{opacity:1;border-color:var(--blue)}
.lang:focus-visible{outline:2px solid var(--blue);outline-offset:2px}
.langbar.sm .lang{width:30px;height:21px;border-width:1.5px;border-radius:5px}
.langhint{text-align:center;color:var(--muted);font-size:12px;margin:14px 0 0}

.hint{color:var(--muted);font-size:14px;line-height:1.5;margin:0 0 16px}
#f2[hidden]{display:none}
