:root{font-family:"Century Gothic","Trebuchet MS",Arial,sans-serif;color:#17213d;background:#f5f7fb;font-synthesis:none;letter-spacing:0}*{box-sizing:border-box}body{margin:0;min-height:100vh}.login-shell{min-height:100vh;display:grid;grid-template-columns:minmax(360px,44%) minmax(460px,56%)}.brand-panel{background:#172979;color:#fff;padding:46px clamp(34px,5vw,86px);display:flex;flex-direction:column;justify-content:space-between;position:relative;overflow:hidden}.brand-panel:after{content:"";position:absolute;inset:auto -150px -190px auto;width:460px;height:460px;border:1px solid rgba(255,255,255,.14);border-radius:50%}.brand{display:flex;align-items:center;gap:14px;position:relative;z-index:1}.brand img{width:47px;height:47px;object-fit:contain}.brand div{display:grid}.brand strong{font-size:21px}.brand span{font-size:11px;opacity:.72;margin-top:3px}.brand-copy{position:relative;z-index:1;max-width:550px}.eyebrow{text-transform:uppercase;font-weight:700;font-size:11px;letter-spacing:.14em!important;color:#1755ed;margin:0 0 15px}.brand-copy .eyebrow{color:#a9bfff}.brand-copy h1{font-size:clamp(36px,4vw,58px);line-height:1.09;margin:0 0 24px;letter-spacing:0}.brand-copy>p:last-child{font-size:17px;line-height:1.7;color:#dce4ff;max-width:500px}.security-note{position:relative;z-index:1;display:flex;align-items:center;gap:14px;font-size:12px;color:#dce4ff}.security-note>span{display:grid;place-items:center;width:34px;height:34px;border:1px solid #7796fa;border-radius:50%}.security-note p{margin:0;line-height:1.55}.form-panel{background:#fff;padding:44px clamp(50px,9vw,150px);display:flex;flex-direction:column;justify-content:center;position:relative}.form-panel form{width:100%;max-width:470px;margin:auto}.form-panel h2{font-size:32px;margin:0 0 10px;letter-spacing:0}.intro{color:#697590;font-size:14px;line-height:1.6;margin:0 0 30px}.form-panel label{display:grid;gap:8px;margin:0 0 18px;color:#34405b;font-size:12px;font-weight:700}.form-panel input{height:50px;border:1px solid #ccd3e1;border-radius:5px;padding:0 15px;font:inherit;font-size:15px;outline:none;color:#17213d;background:#fff}.form-panel input:focus{border-color:#1755ed;box-shadow:0 0 0 3px rgba(23,85,237,.1)}.form-panel input.code{font-size:24px;letter-spacing:.32em!important;text-align:center;font-variant-numeric:tabular-nums}.primary{height:50px;width:100%;border:0;border-radius:5px;background:#0b4df5;color:white;font:inherit;font-weight:700;cursor:pointer;margin-top:8px}.primary:hover{background:#073ecb}.primary:disabled{opacity:.6;cursor:wait}.error,.test-note{font-size:12px;line-height:1.5;padding:10px 12px;border-left:3px solid #c62d3f;background:#fff5f6;color:#8e1e2c}.test-note{border-color:#d59400;background:#fffaeb;color:#6e5200}.back{position:absolute;margin-left:-42px;margin-top:-3px;border:0;background:none;font-size:24px;color:#66728c;cursor:pointer}.form-panel footer{max-width:470px;width:100%;margin:28px auto 0;display:flex;justify-content:space-between;color:#8b94a9;font-size:11px}.form-panel footer a{color:#1755ed;text-decoration:none}.mobile-brand{display:none}.progress[hidden]{display:none}.progress{position:fixed;inset:0;background:rgba(245,247,251,.76);backdrop-filter:blur(2px);display:grid;place-content:center;justify-items:center;gap:15px;z-index:20;color:#17213d}.progress p{font-size:13px;font-weight:700}.ring{--progress:0;display:grid;place-items:center;width:76px;height:76px;border-radius:50%;background:conic-gradient(#0b4df5 calc(var(--progress)*1%),#dfe5f0 0);position:relative}.ring:before{content:"";position:absolute;width:64px;height:64px;border-radius:50%;background:#f5f7fb}.ring span{position:relative;font-size:13px;font-weight:700;color:#0b4df5}@media(max-width:800px){.login-shell{display:block;background:#fff}.brand-panel{display:none}.form-panel{min-height:100vh;padding:28px 24px}.mobile-brand{display:flex;margin-bottom:70px}.form-panel form,.form-panel footer{margin-left:0;margin-right:0}.form-panel footer{gap:16px;flex-wrap:wrap}.back{margin-left:0;right:25px}}

/* Armadilha para robos: campo fora do ecra que uma pessoa nunca preenche */
.hp-field { position: absolute; left: -10000px; top: auto; width: 1px; height: 1px; overflow: hidden; }
