/* Universal Quiz Builder Pro — frontend styles
 * Полностью соответствует разметке uqb-front-* из quiz.js. Всё заскоуплено под .uqb-quiz. */

.uqb-quiz{
  --uqb-accent:#2563eb;
  --uqb-accent-soft:color-mix(in srgb,var(--uqb-accent) 12%,#fff);
  --uqb-ink:#0f172a;
  --uqb-muted:#64748b;
  --uqb-line:#e6e9f0;
  --uqb-surface:#ffffff;
  --uqb-bg:#f6f8fc;
  --uqb-radius:18px;
  --uqb-radius-sm:12px;
  --uqb-shadow:0 18px 50px -20px rgba(15,23,42,.28);
  --uqb-shadow-sm:0 2px 12px -6px rgba(15,23,42,.20);
  width:100%;max-width:100%;margin:0;color:var(--uqb-ink);font-family:inherit;line-height:1.5;
  display:grid;grid-template-columns:minmax(0,1fr) 320px;gap:20px;align-items:start;
  -webkit-font-smoothing:antialiased;
}
.uqb-quiz *{box-sizing:border-box}
.uqb-quiz button{font-family:inherit}
@media(max-width:860px){.uqb-quiz{grid-template-columns:1fr;gap:16px}}

/* ---------- Карточка ---------- */
.uqb-quiz-card{background:var(--uqb-surface);border:1px solid var(--uqb-line);
  border-radius:var(--uqb-radius);box-shadow:var(--uqb-shadow);padding:28px;min-width:0}
@media(max-width:560px){.uqb-quiz-card{padding:20px}}

/* ---------- Прогресс ---------- */
.uqb-front-progress{margin-bottom:24px}
.uqb-front-progress-top{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px}
.uqb-step-label{font-size:13px;font-weight:600;color:var(--uqb-muted)}
.uqb-progress-text{font-size:13px;font-weight:800;color:var(--uqb-accent)}
.uqb-front-progress-line{height:8px;border-radius:999px;background:#eef1f6;overflow:hidden}
.uqb-front-progress-line>span{display:block;height:100%;width:0;border-radius:999px;
  background:linear-gradient(90deg,var(--uqb-accent),color-mix(in srgb,var(--uqb-accent) 55%,#22d3ee));
  transition:width .45s cubic-bezier(.4,0,.2,1)}

/* ---------- Экраны ---------- */
.uqb-front-stage{min-height:120px;min-width:0}
.uqb-front-state{animation:uqb-in .35s cubic-bezier(.2,.7,.2,1)}
@keyframes uqb-in{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}
.uqb-front-kicker{display:inline-block;font-size:12px;font-weight:800;text-transform:uppercase;
  letter-spacing:.06em;color:var(--uqb-accent);background:var(--uqb-accent-soft);
  padding:5px 12px;border-radius:999px;margin-bottom:14px}
.uqb-front-state>h2{font-size:26px;line-height:1.22;margin:0 0 8px;font-weight:800;letter-spacing:-.01em}
.uqb-front-state>p{margin:0 0 22px;color:var(--uqb-muted);font-size:15px}
@media(max-width:560px){.uqb-front-state>h2{font-size:21px}}

/* ---------- Варианты ---------- */
.uqb-front-options{display:grid;gap:12px;margin-bottom:24px}
@media(min-width:620px){.uqb-front-options{grid-template-columns:repeat(2,minmax(0,1fr))}}
.uqb-front-option{position:relative;display:flex;flex-direction:column;align-items:flex-start;gap:4px;
  text-align:left;width:100%;min-width:0;overflow-wrap:break-word;padding:16px 50px 16px 18px;cursor:pointer;background:var(--uqb-surface);
  border:1.5px solid var(--uqb-line);border-radius:var(--uqb-radius-sm);
  transition:border-color .15s,box-shadow .15s,transform .08s,background .15s}
.uqb-front-option:hover{border-color:var(--uqb-accent);box-shadow:var(--uqb-shadow-sm);transform:translateY(-1px)}
.uqb-front-option:active{transform:translateY(0) scale(.995)}
.uqb-front-option strong{font-size:15.5px;font-weight:700;color:var(--uqb-ink)}
.uqb-front-option span{font-size:13.5px;color:var(--uqb-muted)}
.uqb-front-option::after{content:"";position:absolute;top:50%;right:16px;transform:translateY(-50%);
  width:22px;height:22px;border-radius:50%;border:2px solid var(--uqb-line);background:var(--uqb-surface);transition:.15s}
.uqb-front-options.multiple .uqb-front-option::after{border-radius:7px}
.uqb-front-option.is-active{border-color:var(--uqb-accent);background:var(--uqb-accent-soft);
  box-shadow:0 0 0 3px color-mix(in srgb,var(--uqb-accent) 20%,transparent)}
.uqb-front-option.is-active::after{border-color:var(--uqb-accent);background:var(--uqb-accent);
  box-shadow:inset 0 0 0 4px var(--uqb-surface)}
.uqb-front-options.multiple .uqb-front-option.is-active::after{box-shadow:none;
  background:var(--uqb-accent) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23ffffff' stroke-width='3.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 6 9 17l-5-5'/%3E%3C/svg%3E") center/13px no-repeat}

/* ---------- Слайдер (range) ---------- */
.uqb-front-slider-card{background:var(--uqb-bg);border:1px solid var(--uqb-line);
  border-radius:var(--uqb-radius-sm);padding:20px;margin-bottom:24px}
.uqb-front-slider-top{display:flex;justify-content:space-between;align-items:baseline;gap:12px;margin-bottom:14px}
.uqb-front-slider-top strong{font-weight:700;font-size:15px}
.uqb-range-val{font-size:24px;font-weight:800;color:var(--uqb-accent);white-space:nowrap}
.uqb-front-slider-card input[type=range]{width:100%;accent-color:var(--uqb-accent);height:6px;cursor:pointer}
.uqb-front-note{margin:12px 0 0;font-size:13px;color:var(--uqb-muted)}

/* ---------- Поля ввода ---------- */
.uqb-front-input-wrap{display:block;margin-bottom:16px}
.uqb-front-input-wrap>span{display:block;font-size:13.5px;font-weight:600;margin-bottom:6px;color:var(--uqb-ink)}
.uqb-quiz input[type=text],.uqb-quiz input[type=email],.uqb-quiz input[type=tel],
.uqb-quiz input[type=url],.uqb-quiz input[type=number],.uqb-quiz textarea{
  width:100%;padding:13px 15px;font-size:15px;color:var(--uqb-ink);background:var(--uqb-surface);
  border:1.5px solid var(--uqb-line);border-radius:var(--uqb-radius-sm);font-family:inherit;
  transition:border-color .15s,box-shadow .15s}
.uqb-quiz textarea{min-height:96px;resize:vertical}
.uqb-quiz input:focus,.uqb-quiz textarea:focus{outline:none;border-color:var(--uqb-accent);
  box-shadow:0 0 0 3px color-mix(in srgb,var(--uqb-accent) 18%,transparent)}
.uqb-front-input-wrap.is-error input,.uqb-front-input-wrap.is-error textarea{
  border-color:#ef4444;box-shadow:0 0 0 3px rgba(239,68,68,.15)}
.uqb-front-input-wrap small{display:block;text-align:right;margin-top:5px;font-size:12px;color:var(--uqb-muted)}

/* ---------- Форма контактов ---------- */
.uqb-front-lead-form{margin-bottom:8px}
.uqb-front-messenger-group{margin-bottom:18px}
.uqb-front-form-label{display:block;font-size:13.5px;font-weight:600;margin-bottom:8px;color:var(--uqb-ink)}
.uqb-front-messenger-buttons{display:flex;flex-wrap:wrap;gap:8px}
.uqb-front-messenger{padding:9px 16px;font-size:14px;font-weight:600;cursor:pointer;color:var(--uqb-ink);
  background:var(--uqb-surface);border:1.5px solid var(--uqb-line);border-radius:999px;transition:.15s}
.uqb-front-messenger:hover{border-color:var(--uqb-accent)}
.uqb-front-messenger.is-active{background:var(--uqb-accent);border-color:var(--uqb-accent);color:#fff}

/* ---------- Согласие ---------- */
.uqb-front-consent{display:flex;gap:10px;align-items:flex-start;margin:8px 0 4px;font-size:13px;
  color:var(--uqb-muted);cursor:pointer;line-height:1.45}
.uqb-front-consent input{margin-top:2px;width:17px;height:17px;accent-color:var(--uqb-accent);flex:none}
.uqb-front-consent a{color:var(--uqb-accent);text-decoration:underline}

/* ---------- Honeypot ---------- */
.uqb-hp{position:absolute!important;left:-9999px!important;top:auto;width:1px;height:1px;overflow:hidden}

/* ---------- Ошибки ---------- */
.uqb-front-form-error{margin-top:14px;padding:12px 14px;border-radius:var(--uqb-radius-sm);
  background:#fef2f2;border:1px solid #fecaca;color:#b91c1c;font-size:13.5px;line-height:1.5}

/* ---------- Навигация и кнопки ---------- */
.uqb-front-nav{display:flex;gap:12px;align-items:center;margin-top:26px}
.uqb-front-nav>span{flex:1}
.uqb-front-btn{appearance:none;display:inline-flex;align-items:center;justify-content:center;gap:8px;
  margin-left:auto;padding:14px 28px;font-size:15px;font-weight:700;cursor:pointer;border:none;
  border-radius:var(--uqb-radius-sm);text-decoration:none;color:#fff;background:var(--uqb-accent);
  box-shadow:0 10px 22px -8px color-mix(in srgb,var(--uqb-accent) 70%,transparent);
  transition:transform .08s,box-shadow .15s,filter .15s}
.uqb-front-btn:hover{filter:brightness(1.06);transform:translateY(-1px);
  box-shadow:0 14px 28px -8px color-mix(in srgb,var(--uqb-accent) 75%,transparent)}
.uqb-front-btn:active{transform:translateY(0)}
.uqb-front-btn.secondary{margin-left:0;margin-right:auto;color:var(--uqb-ink);background:transparent;
  border:1.5px solid var(--uqb-line);box-shadow:none}
.uqb-front-btn.secondary:hover{border-color:var(--uqb-accent);color:var(--uqb-accent);filter:none;transform:none}
.uqb-front-btn.is-loading{color:transparent;pointer-events:none;position:relative}
.uqb-front-btn.is-loading::after{content:"";position:absolute;width:18px;height:18px;border-radius:50%;
  border:2px solid rgba(255,255,255,.5);border-top-color:#fff;animation:uqb-spin .7s linear infinite}
@keyframes uqb-spin{to{transform:rotate(360deg)}}

/* ---------- Благодарность / результат ---------- */
.uqb-front-thanks{text-align:center;padding:10px 0 6px}
.uqb-front-thanks .ic{width:64px;height:64px;margin:0 auto 16px;border-radius:50%;display:flex;
  align-items:center;justify-content:center;font-size:30px;color:#fff;
  background:linear-gradient(135deg,var(--uqb-accent),color-mix(in srgb,var(--uqb-accent) 55%,#22d3ee));
  box-shadow:0 12px 26px -8px color-mix(in srgb,var(--uqb-accent) 70%,transparent)}
.uqb-front-thanks h2{margin:0 0 6px;font-size:23px;font-weight:800}
.uqb-front-thanks p{margin:0;color:var(--uqb-muted)}
.uqb-front-result-box{margin-top:18px;padding:22px;border-radius:var(--uqb-radius-sm);
  background:linear-gradient(135deg,var(--uqb-accent-soft),color-mix(in srgb,var(--uqb-accent) 6%,#fff));
  border:1px solid color-mix(in srgb,var(--uqb-accent) 25%,var(--uqb-line))}
.uqb-front-result-box h2{margin:0 0 8px;font-size:21px;font-weight:800}
.uqb-front-result-box p{margin:0;color:#334155}
.uqb-front-result-meta{display:flex;flex-wrap:wrap;gap:8px;margin-top:14px}
.uqb-front-result-meta span{display:inline-flex;align-items:center;padding:7px 14px;border-radius:999px;
  background:var(--uqb-surface);border:1px solid var(--uqb-line);font-size:14px;font-weight:700;color:var(--uqb-accent)}

/* ---------- Сайдбар «Вы выбрали» ---------- */
.uqb-front-selected{background:var(--uqb-surface);border:1px solid var(--uqb-line);
  border-radius:var(--uqb-radius);box-shadow:var(--uqb-shadow-sm);padding:20px;position:sticky;top:20px}
@media(max-width:860px){.uqb-front-selected{position:static}}
.uqb-front-selected>h3{margin:0 0 14px;font-size:13px;font-weight:800;text-transform:uppercase;
  letter-spacing:.05em;color:var(--uqb-muted)}
.uqb-front-selected-list{display:flex;flex-direction:column;gap:10px}
.uqb-front-selected-item{display:flex;flex-direction:column;gap:2px;padding:11px 13px;
  background:var(--uqb-bg);border-radius:var(--uqb-radius-sm);border:1px solid var(--uqb-line)}
.uqb-front-selected-item strong{font-size:12.5px;font-weight:700;color:var(--uqb-muted)}
.uqb-front-selected-item span{font-size:14px;font-weight:600;color:var(--uqb-ink)}

/* ---------- Картинки / SVG в вопросах и ответах ---------- */
.uqb-front-media-wrap{margin:0 0 22px;display:flex;justify-content:center}
.uqb-front-media{display:inline-flex;max-width:100%}
.uqb-front-media img{max-width:100%;max-height:260px;height:auto;border-radius:var(--uqb-radius-sm);display:block}
.uqb-front-media.is-svg{align-items:center;justify-content:center}
.uqb-front-media.is-svg svg{width:auto;max-width:100%;max-height:220px;height:auto}
.uqb-front-option.has-media{align-items:stretch}
.uqb-front-option-media{display:flex;align-items:center;justify-content:center;width:100%;margin-bottom:10px}
.uqb-front-option-media img{max-width:100%;max-height:140px;height:auto;border-radius:10px;object-fit:contain;display:block}
.uqb-front-option-media.is-svg svg{width:auto;height:auto;max-width:72px;max-height:72px}
.uqb-front-option-body{display:flex;flex-direction:column;gap:4px;min-width:0;width:100%}
