:root { --azul:#0b3d6b; --cinza:#f4f6f8; }
* { box-sizing: border-box; }
body { margin:0; font-family: system-ui, Arial, sans-serif; background:var(--cinza); color:#1a1a1a; }
.card { max-width:640px; margin:24px auto; background:#fff; padding:24px; border-radius:12px;
  box-shadow:0 2px 12px rgba(0,0,0,.08); }
h1 { color:var(--azul); font-size:1.4rem; margin:0 0 4px; }
.sub { color:#667; margin:0 0 16px; font-size:.9rem; }
form label { display:block; margin:12px 0; font-size:.9rem; }
input, textarea, select { width:100%; padding:10px; margin-top:4px; border:1px solid #ccd;
  border-radius:8px; font-size:1rem; }
fieldset { border:1px solid #e0e4ea; border-radius:8px; margin:16px 0; }
legend { color:var(--azul); font-weight:600; }
.linha { display:flex; gap:12px; }
.linha label { flex:1; }
.check { display:flex; gap:8px; align-items:flex-start; font-size:.85rem; }
.check input { width:auto; margin-top:2px; }
.dica { font-weight:400; color:#667; font-size:.8rem; }
.livros-grid { display:grid; grid-template-columns:repeat(auto-fill, minmax(240px, 1fr));
  gap:6px 14px; margin:8px 0; }
.livros-grid .check { margin:0; }
#outros-texto { margin-top:6px; }
button { width:100%; padding:12px; background:var(--azul); color:#fff; border:0; border-radius:8px;
  font-size:1rem; cursor:pointer; margin-top:8px; }
button:disabled { opacity:.6; cursor:not-allowed; }
.aviso { background:#fdecea; color:#b3261e; padding:10px; border-radius:8px; font-size:.9rem; }
.hidden { display:none; }
a { color:var(--azul); }
