:root {
  --dp-bg: #f8fafc;
  --dp-light: #eef3f7;
  --dp-gray: #657786;
  --dp-dark: #2f3b46;
  --dp-accent: #3c6e91;
  --dp-accent-light: #5b8da8;
  --dp-border: #d8dee4;
  --dp-radius: 10px;
  --dp-shadow: 0 2px 8px rgba(44, 62, 80, 0.08);
}

form.card {
  background: #fff;
  border: 1px solid var(--dp-border);
  border-radius: var(--dp-radius);
  box-shadow: var(--dp-shadow);
  padding: 1.5rem;
  transition: box-shadow 0.25s ease;
}

form.card:hover {
  box-shadow: 0 4px 14px rgba(60, 110, 145, 0.15);
}

form label {
  display: block;
  font-weight: 600;
  color: var(--dp-dark);
  margin-bottom: 6px;
}

input[type="text"],
input[type="email"],
input[type="tel"],
input[type="url"],
input[type="number"],
textarea,
select {
  width: 100%;
  padding: 10px 12px;
  border: 1px solid var(--dp-border);
  border-radius: var(--dp-radius);
  background: var(--dp-light);
  color: var(--dp-dark);
  font-size: 1rem;
  transition: border-color 0.2s ease, box-shadow 0.2s ease;
  resize: vertical;
}

input:focus,
textarea:focus,
select:focus {
  outline: none;
  border-color: var(--dp-accent);
  box-shadow: 0 0 0 3px rgba(60, 110, 145, 0.15);
  background: #fff;
}

::placeholder {
  color: #94a3b8;
  opacity: 0.8;
}

input:invalid,
textarea:invalid {
  border-color: #c53030;
}

form .muted {
  font-size: 0.9rem;
  color: var(--dp-gray);
  margin-top: 6px;
}

button[type="submit"],
input[type="submit"],
.btn {
  display: inline-block;
  background-color: var(--dp-accent);
  color: #fff;
  padding: 10px 18px;
  border: none;
  border-radius: var(--dp-radius);
  font-weight: 600;
  cursor: pointer;
  transition: background-color 0.2s ease, box-shadow 0.2s ease;
}

button[type="submit"]:hover,
input[type="submit"]:hover,
.btn:hover {
  background-color: var(--dp-accent-light);
  box-shadow: 0 3px 10px rgba(60, 110, 145, 0.3);
}

button.secondary,
.btn.secondary {
  background: #fff;
  color: var(--dp-accent);
  border: 1px solid var(--dp-accent-light);
}

button.secondary:hover,
.btn.secondary:hover {
  background: var(--dp-accent-light);
  color: #fff;
}

.card.info-hero,
.card.result {
  background: #f9fbfd;
  border: 1px solid var(--dp-border);
  border-radius: var(--dp-radius);
  box-shadow: var(--dp-shadow);
  padding: 1.5rem;
  margin-top: 1rem;
}

.feedback-success {
  color: #2f855a;
  background: #e6fffa;
  border: 1px solid #b2f5ea;
  border-radius: var(--dp-radius);
  padding: 12px 14px;
  margin-top: 10px;
}

.feedback-error {
  color: #c53030;
  background: #fff5f5;
  border: 1px solid #feb2b2;
  border-radius: var(--dp-radius);
  padding: 12px 14px;
  margin-top: 10px;
}

@media (max-width: 700px) {
  form.card {
    padding: 1rem;
  }

  input,
  textarea,
  select {
    font-size: 1rem;
  }

  .btn,
  button {
    width: 100%;
    text-align: center;
  }
}
