/* ====================================================================
   File: wp-content/plugins/dynamic-estimator/assets/css/contractor/registration.css
   Purpose: Modern, responsive contractor registration form. Theme-agnostic.
   ==================================================================== */

:root {
  --de-bg: #ffffff;
  --de-card: #ffffff;
  --de-border: #e5e7eb;
  --de-muted: #6b7280;
  --de-text: #0f172a;
  --de-primary: #2563eb;
  --de-primary-600: #1d4ed8;
  --de-shadow: 0 1px 2px rgba(0,0,0,.06), 0 4px 12px rgba(0,0,0,.04);
  --de-radius: 14px;
  --de-gap: 14px;
  --de-font: ui-sans-serif, system-ui, -apple-system, Segoe UI, Roboto, Helvetica, Arial, "Apple Color Emoji", "Segoe UI Emoji";
}

.de-reg { padding: 32px 16px; background: var(--de-bg); font-family: var(--de-font); color: var(--de-text); }
.de-reg__container { max-width: 860px; margin: 0 auto; background: var(--de-card); border: 1px solid var(--de-border); border-radius: var(--de-radius); box-shadow: var(--de-shadow); padding: 24px; }

.de-reg__header { margin-bottom: 10px; }
.de-reg__title { margin: 0 0 6px; font-size: clamp(1.4rem, 3vw, 1.8rem); line-height: 1.2; }
.de-reg__subtitle { margin: 0; color: var(--de-muted); font-size: 0.95rem; }

.de-reg__form { margin-top: 12px; }
.de-grid { display: grid; gap: var(--de-gap); }
.de-grid--2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }

.de-field { display: flex; flex-direction: column; gap: 6px; }
.de-label { font-weight: 600; font-size: 0.95rem; }
.de-input {
  appearance: none;
  width: 100%;
  padding: 12px 14px;
  border: 1px solid var(--de-border);
  border-radius: 10px;
  background: #fff;
  font-size: 1rem;
  transition: border-color .15s ease, box-shadow .15s ease;
}
.de-input:focus {
  outline: none;
  border-color: var(--de-primary);
  box-shadow: 0 0 0 4px rgba(37, 99, 235, 0.12);
}
.de-help { margin: 0; color: var(--de-muted); font-size: 0.85rem; }

.de-actions { margin-top: 6px; display: flex; gap: 10px; align-items: center; }
.de-btn {
  display: inline-flex; align-items: center; justify-content: center;
  padding: 12px 18px; border-radius: 10px; border: 1px solid transparent;
  font-weight: 600; cursor: pointer; text-decoration: none; transition: background-color .15s ease, box-shadow .15s ease, transform .02s ease;
}
.de-btn--primary { background: var(--de-primary); color: #fff; }
.de-btn--primary:hover { background: var(--de-primary-600); }
.de-btn:active { transform: translateY(1px); }

/* Responsive */
@media (max-width: 900px) {
  .de-reg__container { padding: 20px; }
}
@media (max-width: 720px) {
  .de-grid--2 { grid-template-columns: 1fr; }
  .de-reg { padding: 24px 12px; }
  .de-reg__container { border-radius: 12px; }
}
@media (max-width: 420px) {
  .de-reg__title { font-size: 1.3rem; }
  .de-input { padding: 11px 12px; }
  .de-btn { width: 100%; }
}
.de-input--error { border-color:#dc2626; box-shadow:0 0 0 3px rgba(220,38,38,0.12); }

