:root{
  --bg:#07070b; --bg2:#04150f; --surface:#11111a; --surface2:#16161f;
  --line:#22222c; --text:#f2f2f6; --muted:#9b9bab; --dim:#62626f;
  --accent:#45e0a8; --accent-dk:#0f6e56; --danger:#ff6b6b;
}
*{box-sizing:border-box}
html,body{margin:0;padding:0}
body{
  background:radial-gradient(1200px 600px at 50% -10%, #0d1f1a 0%, var(--bg) 55%);
  color:var(--text); font-family:"Inter",system-ui,-apple-system,Segoe UI,Roboto,sans-serif;
  min-height:100vh; line-height:1.5; font-size:17px; -webkit-font-smoothing:antialiased;
}
.wrap{max-width:760px; margin:0 auto; padding:36px 22px 68px}
.brand{display:flex; align-items:center; gap:12px; margin-bottom:24px}
.logo-img{height:76px;width:auto;display:block}
h1{font-family:"Space Grotesk",sans-serif;font-weight:600;font-size:clamp(26px,5vw,34px);margin:0 0 8px}
.sub{color:var(--muted);font-size:16.5px;margin:0 0 26px}
.card{background:linear-gradient(180deg,var(--surface2),var(--surface));
  border:1px solid var(--line);border-radius:18px;padding:24px 22px;
  box-shadow:0 20px 60px -30px rgba(0,0,0,.8)}
.grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.full{grid-column:1/-1}
.field{display:flex;flex-direction:column;gap:7px;margin-bottom:2px}
label{font-size:14.5px;color:var(--muted);font-weight:500}
label .req{color:var(--accent)}
input,select{
  background:var(--bg);border:1px solid var(--line);border-radius:11px;
  color:var(--text);padding:13px 14px;font-size:17px;font-family:inherit;width:100%;
  transition:border-color .15s, box-shadow .15s;
}
input::placeholder{color:var(--dim)}
input:focus,select:focus{outline:none;border-color:var(--accent);
  box-shadow:0 0 0 3px rgba(69,224,168,.15)}
input.mono{font-family:"JetBrains Mono",monospace;letter-spacing:1px}
.card-input{position:relative}
.card-input input{padding-right:64px}
.brand-mark{position:absolute;right:12px;top:50%;transform:translateY(-50%);height:26px;display:none;align-items:center}
.brand-mark svg{height:26px;width:auto;display:block;border-radius:3px}
.brand-warn{color:var(--danger);display:none;margin-top:5px}
.section-title{font-family:"Space Grotesk",sans-serif;font-size:15px;color:var(--accent);
  text-transform:uppercase;letter-spacing:1.5px;margin:26px 0 12px;font-weight:600}
.hint{font-size:13px;color:var(--dim);margin-top:2px}
.sig-wrap{border:1px dashed var(--line);border-radius:12px;background:var(--bg2);position:relative;overflow:hidden}
canvas#sig{width:100%;height:160px;display:block;touch-action:none;cursor:crosshair}
.sig-actions{display:flex;justify-content:space-between;align-items:center;margin-top:7px}
.link{background:none;border:none;color:var(--muted);font-size:14px;cursor:pointer;text-decoration:underline}
.terms{display:flex;gap:11px;align-items:flex-start;background:var(--bg2);
  border:1px solid var(--line);border-radius:12px;padding:14px 16px;margin-top:8px}
.terms input{width:20px;height:20px;margin-top:2px;accent-color:var(--accent);flex:0 0 auto}
.terms label{font-size:14.5px;color:var(--muted);line-height:1.55}
.btn{width:100%;margin-top:22px;background:var(--accent);color:#03130d;border:none;
  border-radius:12px;padding:16px;font-size:18px;font-weight:700;font-family:"Space Grotesk",sans-serif;
  cursor:pointer;transition:transform .05s, filter .15s}
.btn:hover{filter:brightness(1.06)}
.btn:active{transform:translateY(1px)}
.btn:disabled{opacity:.5;cursor:not-allowed}
.alert{background:rgba(255,107,107,.08);border:1px solid rgba(255,107,107,.35);
  color:#ffb3b3;border-radius:12px;padding:13px 16px;margin-bottom:18px;font-size:15px}
.alert ul{margin:6px 0 0;padding-left:18px}
.foot{margin-top:24px;text-align:center;color:var(--dim);font-size:13px;line-height:1.6}
.lock{color:var(--accent)}
.cf-turnstile{margin-top:18px;display:flex;justify-content:center}
.success{min-height:80vh;display:flex;align-items:center;justify-content:center;text-align:center}
.success .ok{width:74px;height:74px;border-radius:50%;background:rgba(69,224,168,.12);
  border:1px solid var(--accent);display:flex;align-items:center;justify-content:center;
  margin:0 auto 20px;font-size:36px;color:var(--accent)}
.success h1{margin-bottom:12px}
.success p{color:var(--muted);max-width:480px;margin:0 auto;font-size:17px}
/* --- Gate de acceso (modal login por código) --- */
body.modal-open{overflow:hidden}
.wrap[data-locked]{filter:blur(7px);pointer-events:none;user-select:none}
.modal-overlay{position:fixed;inset:0;background:rgba(4,8,10,.72);backdrop-filter:blur(3px);
  display:flex;align-items:center;justify-content:center;padding:20px;z-index:50}
.modal{background:linear-gradient(180deg,var(--surface2),var(--surface));border:1px solid var(--line);
  border-radius:18px;padding:30px 26px;width:100%;max-width:420px;text-align:center;
  box-shadow:0 30px 90px -30px rgba(0,0,0,.9)}
.modal-logo{height:58px;margin:0 auto 18px}
.modal-title{font-family:"Space Grotesk",sans-serif;font-weight:600;font-size:21px;margin:0 0 8px}
.modal-sub{color:var(--muted);font-size:15px;margin:0 0 16px;line-height:1.5}
.modal input{margin-bottom:4px;text-align:center}
#loginCode{font-family:"JetBrains Mono",monospace;text-transform:uppercase;letter-spacing:5px;font-size:20px}
.countdown{font-family:"JetBrains Mono",monospace;font-size:28px;color:var(--accent);margin:16px 0 2px;font-weight:600}
.countdown.low{color:var(--danger)}
.modal-err{background:rgba(255,107,107,.1);border:1px solid rgba(255,107,107,.35);color:#ffb3b3;
  border-radius:10px;padding:10px 13px;margin-bottom:13px;font-size:14px;display:none}
.modal-link{display:inline-block;margin-top:12px}
.modal-warn{color:var(--dim);font-size:13px;margin:20px 0 0;line-height:1.55}
@media(max-width:560px){.grid{grid-template-columns:1fr}.wrap{padding:24px 16px 52px}.logo-img{height:60px}}
