:root{
      --bg:#0b0b0f;
      --card:rgba(255,255,255,.03);
      --card2:rgba(255,255,255,.02);
      --text:#fff;
      --muted:#a7a7b3;
      --border:rgba(255,255,255,.10);
      --brand:#ffb800;
      --soft:rgba(255,255,255,.06);
      --radius:22px;
      --shadow: 0 10px 30px rgba(0,0,0,.35);

      --ok:#22c55e;
      --danger:#ff4d4f;
      --blue:#3b82f6;
      --purple:#a855f7;
      --cyan:#0ea5e9;
    }

    *{box-sizing:border-box;font-family:Arial, Helvetica, sans-serif}
    a{color:inherit;text-decoration:none}

    body{
      margin:0;
      min-height:100vh;
      display:flex;
      align-items:center;
      justify-content:center;
      padding:18px;
      color:var(--text);
      background:
        radial-gradient(1100px 700px at 20% 10%, rgba(255,184,0,.18), transparent 55%),
        radial-gradient(900px 500px at 80% 30%, rgba(255,255,255,.06), transparent 55%),
        var(--bg);
    }

    .wrap{
      width:100%;
      max-width:1080px;
      display:grid;
      grid-template-columns: 1.15fr .85fr;
      gap:16px;
      align-items:stretch;
    }

    .left{
      background: linear-gradient(180deg, rgba(255,255,255,.06), rgba(255,255,255,.02));
      border:1px solid var(--border);
      border-radius:var(--radius);
      padding:24px;
      box-shadow: var(--shadow);
      position:relative;
      overflow:hidden;
    }

    .glow{
      position:absolute;
      inset:-80px;
      background:
        radial-gradient(600px 300px at 20% 20%, rgba(255,184,0,.20), transparent 60%),
        radial-gradient(500px 260px at 80% 30%, rgba(255,255,255,.07), transparent 65%);
      pointer-events:none;
      filter: blur(2px);
      opacity:.95;
    }

    .badge{
      position:relative;
      display:inline-flex;
      gap:10px;
      align-items:center;
      padding:8px 12px;
      border-radius:999px;
      background:rgba(255,184,0,.12);
      border:1px solid rgba(255,184,0,.28);
      color:var(--brand);
      font-weight:900;
      font-size:12px;
      letter-spacing:.4px;
      margin-bottom:14px;
      z-index:2;
    }

    h1{
      position:relative;
      margin:0 0 10px;
      font-size:40px;
      line-height:1.05;
      z-index:2;
    }

    p{
      position:relative;
      margin:0;
      color:var(--muted);
      font-size:14px;
      line-height:1.45;
      max-width:520px;
      z-index:2;
      font-weight:800;
    }

    .art{
      position:relative;
      margin-top:14px;
      padding:12px 14px;
      border-radius:16px;
      border:1px solid rgba(255,255,255,.10);
      background:rgba(0,0,0,.18);
      display:inline-flex;
      gap:10px;
      align-items:center;
      font-weight:900;
      color:rgba(255,255,255,.90);
      z-index:2;
      width:fit-content;
    }

    .chooseTitle{
      position:relative;
      margin-top:18px;
      font-weight:900;
      color:rgba(255,255,255,.80);
      z-index:2;
      font-size:13px;
    }

    .choose{
      position:relative;
      margin-top:10px;
      display:flex;
      gap:10px;
      flex-wrap:wrap;
      z-index:2;
    }

    .roleBtn{
      flex:1;
      min-width:160px;
      display:flex;
      align-items:center;
      justify-content:space-between;
      gap:10px;
      padding:12px 14px;
      border-radius:18px;
      border:1px solid rgba(255,255,255,.12);
      background:rgba(255,255,255,.03);
      cursor:pointer;
      transition:.12s ease;
      font-weight:900;
      color:rgba(255,255,255,.90);
    }
    .roleBtn:hover{
      transform: translateY(-1px);
      border-color: rgba(255,184,0,.25);
      background: rgba(255,255,255,.05);
    }

    .roleBtn.active{
      border-color: rgba(255,184,0,.45);
      background: rgba(255,184,0,.12);
      box-shadow: 0 0 0 2px rgba(255,184,0,.14);
      color:#ffe39a;
    }

    .roleBtn small{
      font-weight:900;
      opacity:.75;
      font-size:12px;
    }

    .backHome{
      position:relative;
      margin-top:16px;
      display:inline-flex;
      gap:8px;
      align-items:center;
      font-weight:900;
      color:rgba(255,255,255,.75);
      z-index:2;
    }
    .backHome:hover{opacity:.9}

    .right{
      background: var(--card);
      border:1px solid var(--border);
      border-radius:var(--radius);
      padding:18px;
      box-shadow: var(--shadow);
      display:flex;
      flex-direction:column;
      justify-content:center;
      gap:10px;
    }

    .card-title{
      font-weight:900;
      font-size:14px;
      margin-bottom:6px;
      color:rgba(255,255,255,.85);
    }

    .field{
      display:flex;
      flex-direction:column;
      gap:6px;
      margin-bottom:12px;
    }

    .field label{
      font-size:12px;
      color:rgba(255,255,255,.75);
      font-weight:800;
    }

    .field input{
      padding:12px 12px;
      border-radius:16px;
      border:1px solid var(--border);
      outline:none;
      background:rgba(0,0,0,.25);
      color:#fff;
      font-size:14px;
    }

    .btn{
      width:100%;
      border:0;
      padding:12px 14px;
      border-radius:16px;
      font-weight:900;
      cursor:pointer;
      background:var(--brand);
      color:#111;
      transition:.12s ease;
    }
    .btn:hover{transform:translateY(-1px)}

    .hint{
      margin-top:4px;
      font-size:12px;
      color:rgba(255,255,255,.55);
      font-weight:800;
      line-height:1.35;
    }

    .linkrow{
      margin-top:10px;
      display:flex;
      justify-content:space-between;
      gap:10px;
      color:rgba(255,255,255,.65);
      font-size:12px;
    }

    .linkrow a{
      color:rgba(255,255,255,.85);
      font-weight:900;
    }
    .linkrow a:hover{opacity:.9}

    .msg{
      margin-top:10px;
      padding:10px 12px;
      border-radius:16px;
      border:1px solid var(--border);
      background:rgba(255,255,255,.04);
      color:rgba(255,255,255,.90);
      font-size:13px;
      display:none;
      font-weight:900;
      line-height:1.35;
    }
    .msg.ok{border-color:rgba(34,197,94,.28);background:rgba(34,197,94,.08)}
    .msg.err{border-color:rgba(255,80,80,.35);background:rgba(255,80,80,.08)}

    .foot{
      margin-top:12px;
      text-align:center;
      font-size:12px;
      color:rgba(255,255,255,.50);
      font-weight:800;
    }

    @media(max-width:900px){
      .wrap{grid-template-columns:1fr}
      h1{font-size:34px}
      .roleBtn{min-width: 100%;}
    }

/* V20: ajustes exclusivos para telas pequenas, sem alterar o desktop. */
@media (max-width: 900px){
  body{align-items:flex-start;padding:12px;padding-top:max(12px, env(safe-area-inset-top));padding-bottom:max(18px, env(safe-area-inset-bottom));}
  .wrap{width:100%;gap:12px;}
  .left,.right,.card{border-radius:18px;padding:16px;}
  input,button,.btn{min-height:48px;font-size:16px;}
}
@media (max-width: 420px){
  body{padding-left:10px;padding-right:10px;}
  h1{font-size:28px;}
}
