/* Presets controlados pelo formulário; não há CSS livre fornecido pelo usuário. */
body[data-palette="musgo"] {
  --gold: #a8b78a;
  --gold-light: #d0dcb5;
}

body[data-palette="vinho"] {
  --gold: #c2919a;
  --gold-light: #ebc3ca;
}

body[data-palette="prata"] {
  --gold: #b6bfc7;
  --gold-light: #e0e6ed;
}

body[data-typography="livro"] {
  --serif: 'Palatino Linotype', 'Book Antiqua', Palatino, serif;
}

body[data-typography="moderna"] {
  --serif: 'Segoe UI', Arial, sans-serif;
}

.brand { min-width: 0; max-width: 100%; }
.brand-label { min-width: 0; flex: 1 1 0; }
.brand-name { display: block; font-size: clamp(18px, 2vw, 23px); line-height: 1.25; letter-spacing: .04em; white-space: normal; overflow-wrap: anywhere; }
.brand small { letter-spacing: .8px; white-space: normal; }
@media (max-width: 650px) { .brand-name { font-size: 24px; } }
.campaign-logo { width: 37px; height: 37px; object-fit: contain; flex-shrink: 0; }
.hero-custom-image { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.appearance-form { max-width: 850px; }

.appearance-section {
  min-width: 0;
  margin: 30px 0;
  padding: 24px;
  border: 1px solid var(--line);
  background: var(--panel);
}

.appearance-section legend {
  font: 24px/1.4 var(--serif);
  padding: 0 10px;
  color: var(--text);
}

.appearance-description {
  margin: 0 0 22px;
  color: var(--muted);
  font-size: 12px;
}

.appearance-fields { display: grid; gap: 22px; }
.appearance-field > label { display: block; margin: 0 0 8px; color: var(--gold-light); font-size: 12px; }
.appearance-field input:not([type="checkbox"]), .appearance-field textarea, .appearance-field select { width: 100%; }
.appearance-field textarea {
  resize: vertical;
  min-height: 80px;
  padding: 12px;
  color: var(--text);
  background: var(--bg);
  border: 1px solid var(--line);
  border-radius: 2px;
  font: 14px/1.7 var(--sans);
}
.appearance-field textarea:focus { border-color: var(--gold); }
.appearance-field input[type="file"] { padding: 12px; white-space: normal; font-size: 11px; }
.appearance-field input[type="file"]::file-selector-button {
  padding: 8px 12px;
  margin-right: 15px;
  background: #30382f;
  color: var(--text);
  border: 1px solid var(--line);
  border-radius: 2px;
  cursor: pointer;
}
.appearance-checkbox { display: flex; align-items: center; flex-wrap: wrap; gap: 10px; }
.appearance-checkbox > label { margin: 0; color: var(--text); }
.appearance-checkbox input { width: 18px; height: 18px; accent-color: var(--gold); }
.appearance-submit { display: flex; align-items: center; flex-wrap: wrap; gap: 22px; margin: 30px 0; }

.import-help { padding: 0 8px; max-width: 750px; }
.import-help h2, .import-review h2 { font: 26px/1.4 var(--serif); margin: 0 0 16px; }
.import-help p { color: var(--muted); font-size: 12px; line-height: 1.9; }
.import-review { max-width: 1000px; }
.import-text { color: var(--text); font-size: 14px; line-height: 1.9; overflow-wrap: anywhere; }
.import-portrait { display: block; width: 240px; max-width: 100%; max-height: 320px; object-fit: contain; margin-top: 20px; }
.import-table-wrap { overflow-x: auto; }
.import-table { width: 100%; border-collapse: collapse; text-align: left; font-size: 12px; }
.import-table th { color: var(--gold-light); font-weight: 500; }
.import-table th, .import-table td { padding: 14px 12px; border-bottom: 1px solid var(--line); vertical-align: top; overflow-wrap: anywhere; }
.import-table td:nth-child(2) { min-width: 160px; }
.import-table td:last-child { color: var(--muted); min-width: 130px; }

@media (max-width: 650px) {
  .appearance-section { padding: 18px; }
  .appearance-section legend { font-size: 21px; }
  .appearance-field input[type="file"]::file-selector-button { margin: 0 0 8px; display: block; }
}
