:root {
    --bg:        #0f131b;
    --surface:   #131f42;
    --border:    rgba(255,255,255,0.07);
    --blue:      #0050ff;
    --blue-light:#3b82ff;
    --orange:    #f97316;
    --cyan:      #06d6e0;
    --text:      #dce8ff;
    --muted:     #6b85b8;
    --dim:       #2d4070;
    --white:     #ffffff;
    --font:      'League Spartan', sans-serif;
    --radius:    14px;
  }
  *, *::before, *::after { box-sizing:border-box; margin:0; padding:0; }
  html { scroll-behavior:smooth; }
  body {
    background: var(--bg);
    color: var(--text);
    font-family: var(--font);
    font-size: 16px;
    line-height: 1.6;
    overflow-x: hidden;
    min-height: 100vh;
    display: flex;
    flex-direction: column;
  }

  /* ── NAV mínima ── */
  nav {
    position: fixed; top:0; left:0; right:0; height:64px; z-index:50;
    display: flex; align-items:center; justify-content:space-between;
    padding: 0 2rem;
    background: rgba(15,19,27,0.95);
    backdrop-filter: blur(20px);
    border-bottom: 1px solid var(--border);
  }
  .logo-svg { display:flex; align-items:center; gap:9px; text-decoration:none; }
  .logo-wordmark { font-family:var(--font); font-weight:800; font-size:1.05rem; color:var(--white); letter-spacing:0.05em; }
  .nav-back { font-size:0.78rem; font-weight:600; color:var(--muted); text-decoration:none; letter-spacing:0.04em; transition:color 0.2s; display:flex; align-items:center; gap:0.4rem; }
  .nav-back:hover { color:var(--white); }

  /* ── LAYOUT CENTRAL ── */
  main {
    flex:1;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 100px 1.5rem 60px;
  }
  .card-wrap {
    width: 100%;
    max-width: 520px;
  }

  /* ── HEADER DEL CARD ── */
  .card-header {
    text-align:center;
    margin-bottom: 2rem;
  }
  .law-badge {
    display: inline-flex; align-items:center; gap:0.5rem;
    background: rgba(249,115,22,0.1); border:1px solid rgba(249,115,22,0.2);
    border-radius:100px; padding:0.3rem 0.9rem;
    font-size:0.68rem; font-weight:800; letter-spacing:0.12em;
    text-transform:uppercase; color:var(--orange);
    margin-bottom: 1.1rem;
  }
  .card-header h1 {
    font-size:clamp(1.6rem,4vw,2.1rem);
    font-weight:900; color:var(--white);
    letter-spacing:-0.03em; line-height:1.05;
    margin-bottom:0.75rem;
  }
  .card-header p {
    font-size:0.88rem; color:var(--muted);
    max-width:400px; margin:0 auto; font-weight:400; line-height:1.7;
  }

  /* ── FORMULARIO ── */
  .form-card {
    background: var(--surface);
    border: 1px solid var(--border);
    border-radius: 20px;
    padding: 2.25rem;
    position: relative;
    overflow: hidden;
  }
  .form-card::before {
    content:'';
    position:absolute; top:0; left:0; right:0; height:2px;
    background:linear-gradient(90deg,var(--orange),var(--blue-light));
  }

  .form-row { margin-bottom:1.1rem; }
  label {
    display:block;
    font-size:0.7rem; font-weight:800; letter-spacing:0.1em;
    text-transform:uppercase; color:var(--muted);
    margin-bottom:0.45rem;
  }
  input, select, textarea {
    width:100%;
    background: rgba(255,255,255,0.04);
    border: 1px solid var(--border);
    border-radius: 10px;
    padding: 0.75rem 1rem;
    color: var(--white);
    font-family: var(--font);
    font-size: 0.9rem;
    font-weight:500;
    outline: none;
    transition: border-color 0.2s, background 0.2s;
    -webkit-appearance: none;
    appearance: none;
  }
  input::placeholder, textarea::placeholder { color: var(--dim); }
  input:focus, select:focus, textarea:focus {
    border-color: rgba(0,80,255,0.5);
    background: rgba(0,80,255,0.04);
  }
  select { cursor:pointer; background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%236b85b8' stroke-width='2'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E"); background-repeat:no-repeat; background-position:right 1rem center; padding-right:2.5rem; }
  select option { background:#131f42; color:var(--white); }
  textarea { resize:vertical; min-height:110px; }

  .form-row-2 { display:grid; grid-template-columns:1fr 1fr; gap:0.75rem; }

  /* Botón submit */
  .btn-submit {
    width:100%; margin-top:0.5rem;
    background: var(--blue);
    color: var(--white);
    border: none; cursor:pointer;
    padding: 0.95rem 1.75rem;
    border-radius: 10px;
    font-weight:800; font-size:1rem;
    font-family: var(--font);
    letter-spacing:0.02em;
    transition: all 0.25s;
    display: flex; align-items:center; justify-content:center; gap:0.5rem;
  }
  .btn-submit:hover { background:var(--blue-light); transform:translateY(-2px); box-shadow:0 8px 30px rgba(0,80,255,0.4); }
  .btn-submit:active { transform:translateY(0); }
  .btn-submit:disabled { opacity:0.5; cursor:not-allowed; transform:none; box-shadow:none; }

  /* Checkbox */
  .check-row { display:flex; align-items:flex-start; gap:0.75rem; margin-top:1.1rem; }
  .check-row input[type="checkbox"] {
    width:18px; height:18px; min-width:18px; padding:0;
    border-radius:5px; cursor:pointer; margin-top:1px;
    accent-color:var(--blue);
  }
  .check-row label {
    font-size:0.78rem; color:var(--muted); text-transform:none;
    letter-spacing:0; font-weight:400; line-height:1.6; margin-bottom:0;
    cursor:pointer;
  }
  .check-row label a { color:var(--blue-light); text-decoration:none; font-weight:600; }
  .check-row label a:hover { color:var(--white); }

  /* ── ESTADO DE ÉXITO ── */
  .success-state {
    display:none;
    text-align:center;
    padding:1rem 0;
  }
  .success-icon {
    width:64px; height:64px; border-radius:50%;
    background:rgba(6,214,224,0.1); border:2px solid rgba(6,214,224,0.3);
    display:flex; align-items:center; justify-content:center;
    margin:0 auto 1.25rem;
    font-size:1.75rem;
  }
  .success-state h2 { font-size:1.35rem; font-weight:900; color:var(--white); margin-bottom:0.6rem; letter-spacing:-0.02em; }
  .success-state p { font-size:0.88rem; color:var(--muted); line-height:1.7; max-width:340px; margin:0 auto; }
  .success-ref {
    display:inline-block;
    margin-top:1.1rem;
    background:rgba(0,80,255,0.1); border:1px solid rgba(0,80,255,0.2);
    border-radius:8px; padding:0.5rem 1rem;
    font-size:0.75rem; font-weight:700; color:var(--blue-light);
    letter-spacing:0.08em; font-family:monospace;
  }

  /* ── INFO PIE DEL CARD ── */
  .card-footer-note {
    margin-top:1.5rem;
    padding:1rem 1.25rem;
    background:rgba(255,255,255,0.02);
    border:1px solid var(--border);
    border-radius:10px;
    font-size:0.78rem; color:var(--muted); line-height:1.65; text-align:center;
  }
  .card-footer-note strong { color:var(--text); }

  /* ── FOOTER ── */
  footer {
    border-top:1px solid var(--border);
    padding:1.5rem 2rem;
    display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:0.75rem;
    font-size:0.75rem; color:var(--dim); font-weight:500;
  }
  footer a { color:var(--dim); text-decoration:none; transition:color 0.2s; }
  footer a:hover { color:var(--muted); }
  .footer-links { display:flex; gap:1.5rem; flex-wrap:wrap; }

  @media (max-width:600px) {
    .form-row-2 { grid-template-columns:1fr; }
    .form-card { padding:1.5rem; }
    footer { flex-direction:column; align-items:center; text-align:center; }
  }