:root {
    --purple: #6B46C1;
    --purple-dark: #553C9A;
    --ink: #1A202C;
    --muted: #718096;
    --line: #E2E8F0;
    --bg: #F7FAFC;
}

* { box-sizing: border-box; }

body {
    margin: 0;
    font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Arial, sans-serif;
    color: var(--ink);
    background: var(--bg);
    line-height: 1.5;
}

.container { width: 100%; max-width: 820px; margin: 0 auto; padding: 0 16px; }

.topbar {
    background: var(--purple);
    color: #fff;
    padding: 14px 0;
}
.topbar .container { display: flex; align-items: baseline; gap: 14px; flex-wrap: wrap; }
.brand { font-size: 22px; font-weight: 800; letter-spacing: .5px; }
.brand-accent { color: #E9D8FD; }
.brand-sub { font-size: 14px; opacity: .9; }

main.container { padding-top: 24px; padding-bottom: 40px; }

.card {
    background: #fff;
    border: 1px solid var(--line);
    border-radius: 12px;
    padding: 28px;
    box-shadow: 0 1px 3px rgba(0,0,0,.05);
}
.card-center { text-align: center; }

h1 { font-size: 24px; margin: 0 0 6px; }
h2 { font-size: 16px; margin: 26px 0 12px; color: var(--purple-dark); border-bottom: 2px solid var(--line); padding-bottom: 6px; }
.lead { color: var(--muted); margin: 0 0 18px; }
.req { color: #E53E3E; }

.grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 14px;
}
.field { display: flex; flex-direction: column; }
.field-2 { grid-column: span 2; }
.field-3 { grid-column: span 3; }

label { font-size: 13px; font-weight: 600; margin-bottom: 5px; }
input, select, textarea {
    font: inherit;
    padding: 9px 11px;
    border: 1px solid #CBD5E0;
    border-radius: 8px;
    background: #fff;
    width: 100%;
}
input:focus, select:focus, textarea:focus {
    outline: none;
    border-color: var(--purple);
    box-shadow: 0 0 0 3px rgba(107,70,193,.15);
}
textarea { resize: vertical; }

.radios { display: flex; gap: 16px; padding-top: 6px; }
.radio { font-weight: 500; display: flex; align-items: center; gap: 6px; }
.radio input { width: auto; }

.actions { margin-top: 24px; }
.btn {
    display: inline-block;
    background: var(--purple);
    color: #fff;
    border: none;
    padding: 12px 26px;
    font-size: 15px;
    font-weight: 700;
    border-radius: 8px;
    cursor: pointer;
    text-decoration: none;
}
.btn:hover { background: var(--purple-dark); }

.alert { padding: 12px 14px; border-radius: 8px; margin-bottom: 18px; font-size: 14px; }
.alert-error { background: #FED7D7; color: #822727; border: 1px solid #FEB2B2; }

.check {
    width: 64px; height: 64px; line-height: 64px;
    margin: 0 auto 12px;
    background: #C6F6D5; color: #22543D;
    border-radius: 50%; font-size: 34px; font-weight: 800;
}

.footer { color: var(--muted); font-size: 12px; padding: 20px 0; text-align: center; }

/* Honeypot: oculto a humanos */
.hp { position: absolute; left: -9999px; top: -9999px; height: 0; overflow: hidden; }

@@media (max-width: 640px) {
    .grid { grid-template-columns: 1fr; }
    .field-2, .field-3 { grid-column: span 1; }
}
