/* Общие сбросы внутри виджета формы */
.cf-wrap, .cf-wrap * { box-sizing: border-box; }
.cf-form label, .cf-form input, .cf-form textarea, .cf-form button { font: inherit; }

/* Контейнер и карточка */
.cf-wrap { display:flex; justify-content:center; padding: clamp(16px, 4vw, 40px) 16px; }
.cf-card {
  width:100%; max-width:820px; background:#fff; border-radius:16px;
  padding: clamp(16px, 3vw, 28px);
  box-shadow: 0 1px 2px rgba(0,0,0,.06), 0 6px 24px rgba(0,0,0,.06);
}

/* Заголовок и подводка */
.cf-title { margin:0 0 .6rem; font-size: clamp(28px, 4vw, 40px); line-height:1.1; letter-spacing:-.02em; }
.cf-intro { margin-bottom:1rem; opacity:.85; }

/* Поля */
.cf-field { margin-bottom:16px; }
.cf-label { display:block; margin:0 0 6px; font-weight:600; float:none !important; width:auto !important; }
.cf-input, .cf-textarea {
  display:block !important; width:100% !important; max-width:none !important;
  padding:12px 14px; border:1px solid #d8dae0; border-radius:12px; background:#fff;
  line-height:1.45; transition:border-color .15s ease, box-shadow .15s ease, background .15s ease;
}
.cf-input:focus, .cf-textarea:focus { outline:none; border-color:#3b82f6; box-shadow:0 0 0 3px rgba(59,130,246,.15); }
.cf-input::placeholder, .cf-textarea::placeholder { color:#9aa1ad; }

/* Ошибки */
.cf-errors { margin-top:6px; color:#b00020; font-size:0.92rem; }
.cf-errors--global { margin-bottom:12px; padding:10px 12px; background:#fdecec; border:1px solid #f2b8b5; border-radius:10px; }

/* Кнопка */
.cf-actions { margin-top:18px; }
.cf-btn {
  position:relative; display:inline-flex; align-items:center; gap:10px;
  padding:12px 18px; border-radius:12px; background:#111827; color:#fff; border:none;
  font-weight:600; cursor:pointer; transition:transform .06s ease, opacity .15s ease;
}
.cf-btn:hover { opacity:.96; } .cf-btn:active { transform:translateY(1px); } .cf-btn[disabled]{opacity:.7;cursor:default;}
.cf-btn__spinner { display:none; width:16px; height:16px; border:2px solid rgba(255,255,255,.5); border-top-color:#fff; border-radius:50%; animation:cf-spin .8s linear infinite; }
.cf-btn.is-loading .cf-btn__spinner{display:inline-block;} .cf-btn.is-loading .cf-btn__text{opacity:.8;}
@keyframes cf-spin { to { transform: rotate(360deg); } }

/* Успех */
.cf-card--success { text-align:center; }
.cf-success { margin:.5rem 0 1rem; }
.cf-success__icon { width:56px; height:56px; margin:0 auto 10px; border-radius:50%; background:#e8f5e9; color:#22c55e; display:grid; place-items:center; font-size:28px; font-weight:700; }
.cf-link { display:inline-block; margin-top:4px; color:#2563eb; text-decoration:none; }
.cf-link:hover { text-decoration:underline; }

/* Тёмная тема */
@media (prefers-color-scheme: dark) {
  .cf-card { background:#13151a; box-shadow:0 1px 2px rgba(0,0,0,.4), 0 6px 24px rgba(0,0,0,.35); }
  .cf-title { color:#e8eaed; } .cf-intro { color:#c7cbd3; }
  .cf-input, .cf-textarea { background:#0e1116; border-color:#2a2f3a; color:#e8eaed; }
  .cf-input::placeholder, .cf-textarea::placeholder { color:#7d8596; }
  .cf-btn { background:#2563eb; } .cf-link { color:#60a5fa; }
}
