    :root {
      --color-primary:      #003d73;
      --color-primary-dark: #002d56;
      --color-secondary:    #dbd1ba;
      --color-text:         #3c3c3b;
      --color-bg:           #f7f3ec;
      --color-surface:      #ffffff;
      --color-border:       #d8d2c8;
      --color-error:        #c0392b;
      --color-error-bg:     rgba(192,57,43,0.06);
      --font-base: 'Helvetica Neue', Arial, Helvetica, sans-serif;
      --text-xs:   0.75rem;
      --text-sm:   0.875rem;
      --text-base: 1rem;
      --text-lg:   1.125rem;
      --text-xl:   1.375rem;
      --text-2xl:  1.75rem;
      --text-3xl:  2.25rem;
      --text-4xl:  3rem;
      --text-5xl:  4rem;
      --space-1:  0.5rem;
      --space-2:  1rem;
      --space-3:  1.5rem;
      --space-4:  2rem;
      --space-6:  3rem;
      --space-8:  4rem;
      --space-12: 6rem;
      --container-max:  680px;
      --container-wide: 860px;
      --radius-sm: 4px;
      --radius-md: 8px;
      --radius-lg: 16px;
      --transition-fast: 150ms ease;
      --transition-base: 250ms ease;
    }
    *, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
    body {
      font-family: var(--font-base);
      font-size: var(--text-base);
      line-height: 1.6;
      color: var(--color-text);
      background: var(--color-bg);
      -webkit-font-smoothing: antialiased;
    }
    input, textarea, select, button { font-family: inherit; font-size: inherit; }
    a { color: var(--color-primary); }
    a:hover { text-decoration: underline; }

    .is-hidden { display: none !important; }
    .container {
      width: 100%;
      max-width: var(--container-max);
      margin-inline: auto;
      padding-inline: var(--space-4);
    }

    /* HEADER */
    .site-header {
      padding: var(--space-4) 0 var(--space-3);
      border-bottom: 2px solid #00305F;
      background: #00305F;
    }
    .site-header .container { display: flex; justify-content: center; align-items: center; }
    .site-logo { max-height: 120px; width: auto; display: block; }

    /* HERO */
    .hero {
      padding: var(--space-12) 0 var(--space-8);
      text-align: center;
      background: var(--color-bg);
    }
    .hero-eyebrow {
      display: inline-block;
      font-size: var(--text-xs);
      font-weight: 700;
      letter-spacing: 0.15em;
      text-transform: uppercase;
      color: var(--color-primary);
      background: rgba(0,61,115,0.08);
      padding: 6px 16px;
      border-radius: 100px;
      margin-bottom: var(--space-3);
    }
    .hero-title {
      font-size: var(--text-5xl);
      font-weight: 800;
      line-height: 1.05;
      letter-spacing: -0.025em;
      color: var(--color-primary);
      margin-bottom: var(--space-3);
    }
    .hero-title span {
      display: block;
      color: var(--color-text);
      font-size: var(--text-3xl);
      font-weight: 400;
      letter-spacing: -0.01em;
    }
    .hero-subtitle {
      font-size: var(--text-lg);
      color: var(--color-text);
      max-width: 540px;
      margin-inline: auto;
      opacity: 0.8;
      line-height: 1.6;
    }
    .hero-divider {
      width: 60px; height: 3px;
      background: var(--color-secondary);
      border: none;
      margin: var(--space-4) auto 0;
    }

    /* FORM SECTION */
    .form-section { padding: var(--space-6) 0 var(--space-8); }
    .form-card {
      background: var(--color-surface);
      border-radius: var(--radius-lg);
      padding: var(--space-6);
      box-shadow: 0 2px 24px rgba(0,0,0,0.07), 0 1px 4px rgba(0,0,0,0.04);
    }
    .form-card-title {
      font-size: var(--text-xl);
      font-weight: 700;
      color: var(--color-primary);
      margin-bottom: var(--space-4);
      padding-bottom: var(--space-2);
      border-bottom: 2px solid var(--color-secondary);
    }
    .form-group { margin-bottom: var(--space-3); }
    .form-label {
      display: block;
      font-size: var(--text-sm);
      font-weight: 600;
      color: var(--color-primary);
      margin-bottom: 6px;
      letter-spacing: 0.04em;
      text-transform: uppercase;
    }
    .optional-tag {
      font-weight: 400; font-size: var(--text-xs);
      text-transform: none; letter-spacing: 0;
      color: var(--color-text); opacity: 0.6; margin-left: 4px;
    }
    .required-star { color: var(--color-error); margin-left: 2px; }
    .form-input {
      width: 100%; padding: 14px 16px;
      border: 1.5px solid var(--color-border);
      border-radius: var(--radius-md);
      font-size: var(--text-base);
      color: var(--color-text);
      background: var(--color-surface);
      transition: border-color var(--transition-fast), box-shadow var(--transition-fast);
      -webkit-appearance: none; appearance: none;
    }
    .form-input::placeholder { color: #b0a99a; }
    .form-input:focus {
      outline: none;
      border-color: var(--color-primary);
      box-shadow: 0 0 0 3px rgba(0,61,115,0.12);
    }
    .form-input.is-error {
      border-color: var(--color-error);
      box-shadow: 0 0 0 3px rgba(192,57,43,0.10);
      background: var(--color-error-bg);
    }
    .field-error {
      display: none; font-size: var(--text-xs);
      color: var(--color-error); margin-top: 5px; font-weight: 500;
    }
    .field-error.is-visible { display: block; }
    .form-row { display: grid; grid-template-columns: 1fr 1fr; gap: 0 var(--space-3); }

    /* Sistemas checkboxes */
    .fieldset-sistemas { border: none; padding: 0; }
    .fieldset-legend {
      display: block; font-size: var(--text-sm); font-weight: 600;
      color: var(--color-primary); margin-bottom: var(--space-2);
      letter-spacing: 0.04em; text-transform: uppercase; width: 100%;
    }
    .checkbox-grid {
      display: grid; grid-template-columns: repeat(3, 1fr);
      gap: 10px 14px; margin-top: var(--space-1);
    }
    .checkbox-item {
      display: flex; align-items: center; gap: 10px;
      cursor: pointer; user-select: none;
      padding: 8px 10px; border-radius: var(--radius-md);
      border: 1.5px solid var(--color-border);
      transition: border-color var(--transition-fast), background var(--transition-fast);
    }
    .checkbox-item:hover { border-color: var(--color-primary); background: rgba(0,61,115,0.03); }
    .checkbox-item input[type="checkbox"] { position: absolute; opacity: 0; width: 0; height: 0; }
    .check-box {
      width: 20px; height: 20px; min-width: 20px;
      border: 2px solid var(--color-border); border-radius: var(--radius-sm);
      display: flex; align-items: center; justify-content: center;
      transition: background var(--transition-fast), border-color var(--transition-fast);
      background: var(--color-surface);
    }
    .checkbox-item input:checked ~ .check-box { background: var(--color-primary); border-color: var(--color-primary); }
    .check-icon { display: none; width: 12px; height: 12px; }
    .checkbox-item input:checked ~ .check-box .check-icon { display: block; }
    .check-label { font-size: var(--text-sm); color: var(--color-text); line-height: 1.3; }
    .checkbox-item:has(input:checked) { border-color: var(--color-primary); background: rgba(0,61,115,0.04); }

    /* Consent */
    .consent-group { border-top: 1.5px solid var(--color-secondary); padding-top: var(--space-3); margin-top: var(--space-4); }
    .consent-item { align-items: flex-start; border: none; padding: 0; gap: 14px; }
    .consent-item:hover { background: none; border-color: transparent; }
    .consent-text { font-size: var(--text-sm); color: var(--color-text); line-height: 1.55; }
    .consent-text a { color: var(--color-primary); text-decoration: underline; }

    /* Buttons */
    .btn-primary {
      width: 100%; padding: 18px 24px;
      background: var(--color-primary); color: #fff;
      font-size: var(--text-lg); font-weight: 700; letter-spacing: 0.02em;
      border: none; border-radius: var(--radius-md); cursor: pointer;
      transition: background var(--transition-fast), transform var(--transition-fast), box-shadow var(--transition-fast);
      margin-top: var(--space-4);
    }
    .btn-primary:hover { background: var(--color-primary-dark); box-shadow: 0 4px 16px rgba(0,61,115,0.28); }
    .btn-primary:active { transform: scale(0.99); }
    .btn-primary:disabled { opacity: 0.6; cursor: not-allowed; transform: none; box-shadow: none; }
    .btn-secondary {
      display: inline-flex; align-items: center; gap: 8px;
      padding: 14px 32px;
      background: transparent; color: var(--color-primary);
      font-size: var(--text-base); font-weight: 600;
      border: 2px solid var(--color-primary); border-radius: var(--radius-md);
      cursor: pointer;
      transition: background var(--transition-fast), color var(--transition-fast);
      margin-top: var(--space-4);
    }
    .btn-secondary:hover { background: var(--color-primary); color: #fff; }

    /* FOOTER */
    .site-footer {
      text-align: center; padding: var(--space-4) 0;
      border-top: 1px solid var(--color-secondary);
      font-size: var(--text-xs); color: var(--color-text);
    }
    .footer-trigger { cursor: default; user-select: none; opacity: 0.6; }
    .footer-link { display: inline-block; margin-top: 6px; font-size: var(--text-xs); color: var(--color-primary); opacity: 0.75; }

    /* THANK-YOU VIEW */
    #view-thanks {
      min-height: 100vh;
      display: flex; flex-direction: column;
      align-items: center; justify-content: center;
      text-align: center;
      padding: var(--space-8) var(--space-4);
      background: var(--color-bg);
      animation: fadeInUp 0.5s ease both;
    }
    @keyframes fadeInUp {
      from { opacity: 0; transform: translateY(32px); }
      to   { opacity: 1; transform: translateY(0); }
    }
    .thanks-logo { max-height: 104px; width: auto; margin-bottom: var(--space-6); }
    .thanks-icon {
      width: 88px; height: 88px; border-radius: 50%;
      background: rgba(0,61,115,0.08);
      display: flex; align-items: center; justify-content: center;
      margin: 0 auto var(--space-4);
    }
    .thanks-title {
      font-size: var(--text-4xl); font-weight: 800;
      color: var(--color-primary); letter-spacing: -0.02em;
      margin-bottom: var(--space-3); line-height: 1.1;
    }
    .thanks-body {
      font-size: var(--text-lg); color: var(--color-text);
      max-width: 480px; margin-inline: auto;
      opacity: 0.8; line-height: 1.65; margin-bottom: var(--space-2);
    }

    /* ADMIN VIEW */
    #view-admin { min-height: 100vh; background: var(--color-bg); padding: var(--space-8) var(--space-4); }
    .admin-card {
      background: var(--color-surface); border-radius: var(--radius-lg);
      padding: var(--space-6);
      box-shadow: 0 4px 30px rgba(0,0,0,0.1);
      max-width: var(--container-wide); margin-inline: auto;
    }
    .admin-header {
      display: flex; align-items: center; justify-content: space-between;
      margin-bottom: var(--space-6); padding-bottom: var(--space-3);
      border-bottom: 2px solid var(--color-secondary);
      flex-wrap: wrap; gap: var(--space-2);
    }
    .admin-header h2 { font-size: var(--text-xl); font-weight: 700; color: var(--color-primary); }
    .admin-logo { max-height: 36px; width: auto; }
    .btn-close-admin {
      padding: 8px 16px; font-size: var(--text-sm); font-weight: 600;
      color: var(--color-text); background: transparent;
      border: 1.5px solid var(--color-border); border-radius: var(--radius-md);
      cursor: pointer; transition: border-color var(--transition-fast), color var(--transition-fast);
    }
    .btn-close-admin:hover { border-color: var(--color-primary); color: var(--color-primary); }
    .admin-stat {
      text-align: center; padding: var(--space-6); margin-bottom: var(--space-4);
      background: var(--color-bg); border-radius: var(--radius-md);
    }
    .stat-number { display: block; font-size: 5rem; font-weight: 800; color: var(--color-primary); line-height: 1; letter-spacing: -0.03em; }
    .stat-label { display: block; font-size: var(--text-sm); color: var(--color-text); opacity: 0.7; margin-top: 8px; text-transform: uppercase; letter-spacing: 0.08em; }
    .admin-actions { display: flex; gap: var(--space-2); flex-wrap: wrap; }
    .admin-actions .btn-primary { flex: 1; margin-top: 0; font-size: var(--text-base); padding: 14px 20px; }
    .btn-danger {
      flex: 1; padding: 14px 20px; background: transparent; color: var(--color-error);
      font-size: var(--text-base); font-weight: 700;
      border: 2px solid var(--color-error); border-radius: var(--radius-md);
      cursor: pointer; transition: background var(--transition-fast), color var(--transition-fast);
    }
    .btn-danger:hover { background: var(--color-error); color: #fff; }
    .admin-meta { margin-top: var(--space-4); font-size: var(--text-xs); color: var(--color-text); opacity: 0.6; }

    /* RESPONSIVE */
    @media (max-width: 768px) {
      .hero { padding: var(--space-8) 0 var(--space-6); }
      .hero-title { font-size: var(--text-4xl); }
      .hero-title span { font-size: var(--text-2xl); }
      .form-row { grid-template-columns: 1fr; }
    }
    @media (max-width: 640px) {
      .hero-title { font-size: var(--text-3xl); }
      .hero-title span { font-size: var(--text-xl); }
      .hero-subtitle { font-size: var(--text-base); }
      .checkbox-grid { grid-template-columns: repeat(2, 1fr); }
      .form-card { padding: var(--space-4); }
      .thanks-title { font-size: var(--text-3xl); }
    }
    @media (max-width: 480px) {
      .hero-title { font-size: var(--text-2xl); }
      .hero-title span { font-size: var(--text-xl); }
      .container { padding-inline: var(--space-2); }
      .btn-primary { padding: 16px 20px; }
    }
    @media (max-width: 380px) { .checkbox-grid { grid-template-columns: 1fr; } }
  