:root{
  --blue:#0039A6;
  --red:#D52B1E;
  --white:#ffffff;
  --ink:#0b1220;
  --glass: rgba(255,255,255,.86);
  --glass2: rgba(255,255,255,.72);
  --shadow: 0 18px 60px rgba(0,0,0,.28);
}

*{ box-sizing:border-box; }
html,body{ height:100%; }
body{
  margin:0;
  font-family: ui-sans-serif, system-ui, -apple-system, Segoe UI, Roboto, Arial, "Noto Sans", "Helvetica Neue", sans-serif;
  color: var(--ink);

  /* Fondo estilo bandera de Chile */
  background:
    radial-gradient(circle at center, rgba(0,0,0,.18), rgba(0,0,0,.55)),
    linear-gradient(to bottom,
      #ffffff 0 50%,
      var(--red) 50% 100%);

  position:relative;
  overflow-x:hidden;
}

/* Cantón azul */
body::before{
  content:"";
  position:absolute;
  top:0; left:0;
  width:40vw; max-width:520px;
  height:50vh; max-height:420px;
  background: var(--blue);
  opacity: .95;
}

/* Estrella */
body::after{
  content:"★";
  position:absolute;
  top: min(16vh, 150px);
  left: min(18vw, 220px);
  transform: translate(-50%,-50%);
  font-size: clamp(48px, 8vw, 110px);
  color: #fff;
  text-shadow: 0 10px 30px rgba(0,0,0,.35);
  opacity:.95;
}

.wrap{
  min-height:100%;
  display:flex;
  align-items:center;
  justify-content:center;
  padding: 28px 14px;
  position:relative;
  z-index:1;
}

.card{
  width: min(760px, 100%);
  background: var(--glass);
  border: 1px solid rgba(255,255,255,.55);
  border-radius: 22px;
  box-shadow: var(--shadow);
  padding: clamp(18px, 3.2vw, 30px);
  backdrop-filter: blur(8px);
}

.title{
  margin:0 0 8px;
  font-size: clamp(24px, 3.2vw, 34px);
  letter-spacing: -.02em;
}

.subtitle{
  margin:0 0 18px;
  opacity:.85;
}

.grid{
  display:grid;
  grid-template-columns: 1fr;
  gap: 12px;
}

@media (min-width: 700px){
  .grid{
    grid-template-columns: 1.2fr .8fr;
  }
}

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

.field span{
  font-weight: 650;
  font-size: 14px;
}

input{
  width:100%;
  border: 1px solid rgba(0,0,0,.12);
  border-radius: 14px;
  padding: 12px 12px;
  font-size: 16px;
  background: var(--glass2);
  outline: none;
}

input:focus{
  border-color: rgba(0,57,166,.55);
  box-shadow: 0 0 0 4px rgba(0,57,166,.14);
}

.choice{
  margin: 14px 0 0;
  border: 1px solid rgba(0,0,0,.08);
  border-radius: 18px;
  padding: 14px;
  background: rgba(255,255,255,.55);
}

.choice legend{
  padding: 0 8px;
  font-weight: 750;
}

.radioRow{
  display:flex;
  gap: 14px;
  flex-wrap:wrap;
  margin: 8px 0 12px;
}

.radio{
  display:flex;
  align-items:center;
  gap: 8px;
  padding: 10px 12px;
  border-radius: 14px;
  border: 1px solid rgba(0,0,0,.08);
  background: rgba(255,255,255,.55);
  cursor:pointer;
  user-select:none;
}

.radio input{ width:auto; }

.hint{
  margin: 8px 0 0;
  font-size: 13px;
  opacity: .8;
}

.btn{
  width:100%;
  margin-top: 14px;
  border:0;
  border-radius: 16px;
  padding: 13px 14px;
  font-size: 16px;
  font-weight: 750;
  color: #fff;
  cursor:pointer;
  background: linear-gradient(135deg, var(--blue), #0b58ff);
  box-shadow: 0 12px 26px rgba(0,57,166,.28);
}

.btn:active{ transform: translateY(1px); }
.btn[disabled]{ opacity:.65; cursor:not-allowed; }

.status{
  margin: 12px 0 0;
  font-weight: 650;
}
.status.ok { color: rgba(0,0,0,.88); }
.status.err { color: rgba(213,43,30,.95); }

.footnote{
  margin: 14px 0 0;
  font-size: 12.5px;
  opacity: .8;
}
