/* ======= CREATE PALETTE: CONTAINER & FORM ======= */
.cp-container {
  max-width: 520px;
  margin: 32px auto 48px auto;
  background: #fff;
  border-radius: 14px;
  box-shadow: 0 4px 24px #0001;
  padding: 30px 24px;
  color: #212529;
  transition: background 0.2s, color 0.2s;
}

/* Spaziatura tra gli elementi del form */
.cp-container form > * {
  margin-bottom: 22px;
}

/* ======= DARK MODE ======= */
@media (prefers-color-scheme: dark) {
  .cp-container {
    background: #232733 !important;
    color: #e4e7ec !important;
    box-shadow: 0 4px 32px #000b;
  }
  .cp-label,
  .cp-container label,
  .cp-container input,
  .cp-container textarea,
  .cp-container select {
    color: #e4e7ec !important;
    background: #151924 !important;
    border-color: #404452 !important;
    opacity: 1 !important;
  }
  .cp-container input:focus,
  .cp-container textarea:focus,
  .cp-container select:focus {
    border-color: #84b7f7 !important;
    background: #212533 !important;
  }
  .cp-container *:not(:disabled) {
    opacity: 1 !important;
  }
}

/* FORM HEADINGS */
.cp-container h2 {
  font-size: 1.65em;
  text-align: center;
  margin-bottom: 28px;
  letter-spacing: 0.01em;
  font-weight: 700;
}

/* FORM LABELS & INPUTS */
.cp-label {
  font-weight: 600;
  margin-bottom: 8px;
  display: block;
  font-size: 1em;
  letter-spacing: 0.01em;
}
.cp-input, .cp-select, .cp-textarea {
  width: 100%;
  margin-bottom: 0;
  padding: 10px 12px;
  border-radius: 7px;
  border: 1px solid #b2b7c2;
  background: #f9fbfc;
  font-size: 1em;
  transition: border .18s, background .18s;
  color: #212529;
}
.cp-input:focus, .cp-select:focus, .cp-textarea:focus {
  border-color: #3887ff;
  background: #e7f1ff;
}
.cp-textarea { min-height: 40px; resize: vertical; }

@media (prefers-color-scheme: dark) {
  .cp-input, .cp-select, .cp-textarea {
    background: #151924;
    color: #e4e7ec;
    border: 1px solid #404452;
  }
  .cp-input:focus, .cp-select:focus, .cp-textarea:focus {
    border-color: #84b7f7;
    background: #212533;
  }
}

/* CHECKBOX GROUP */
.cp-checkbox-group {
  display: flex;
  flex-wrap: wrap;
  gap: 16px 26px;
  margin-bottom: 14px;
  align-items: center;
  margin-top: 6px;
}
.cp-checkbox-group label {
  font-weight: 400;
  font-size: 1em;
  margin-left: 6px;
  margin-right: 18px;
}

/* Helper for smaller checkboxes */
input[type="checkbox"] {
  width: 1.1em;
  height: 1.1em;
  accent-color: #3887ff;
  vertical-align: middle;
}

/* Più spazio sopra il bottone */
.cp-container .action-button {
  margin-top: 14px;
  margin-bottom: 0;
}

/* Responsive tweaks for labels */
@media (max-width: 600px) {
  .cp-container {
    margin: 16px 8px;
    padding: 18px 6vw;
  }
  .cp-container h2 {
    font-size: 1.2em;
    margin-bottom: 18px;
  }
}
@media (max-width: 440px) {
  .cp-label, .cp-checkbox-group label {
    font-size: 0.98em;
  }
}

/* Required fields */
.cp-label.required::after {
  content: '*';
  color: #eb4242;
  margin-left: 3px;
  font-size: 1em;
}