.elementor-133 .elementor-element.elementor-element-ca36c34{--display:flex;}/* Start custom CSS for html, class: .elementor-element-5b50ae2 */// src/storage.js
// Storage helpers (LocalStorage) — NUNUCARE

const KEYS = {
  email: "nunu_email",
  quiz: "nunu_quiz_answers",
  plan: "nunu_plan_selected",
};

// ---------- low-level ----------
function safeParse(json, fallback) {
  try {
    return JSON.parse(json);
  } catch {
    return fallback;
  }
}

function getRaw(key) {
  return localStorage.getItem(key);
}

function setRaw(key, value) {
  localStorage.setItem(key, value);
}

function removeRaw(key) {
  localStorage.removeItem(key);
}

// ---------- email ----------
export function getEmail() {
  const v = getRaw(KEYS.email);
  return v ? String(v) : null;
}

export function setEmail(email) {
  const clean = String(email || "").trim().toLowerCase();
  if (!clean) return;
  setRaw(KEYS.email, clean);
}

export function clearEmail() {
  removeRaw(KEYS.email);
}

// ---------- quiz answers ----------
export function getQuizAnswers() {
  const raw = getRaw(KEYS.quiz);
  return raw ? safeParse(raw, {}) : {};
}

/**
 * Substitui todas as respostas do quiz
 * @param {object} answers
 */
export function setQuizAnswers(answers) {
  const safe = answers && typeof answers === "object" ? answers : {};
  setRaw(KEYS.quiz, JSON.stringify(safe));
}

/**
 * Atualiza 1 resposta (merge)
 * @param {string} questionId
 * @param {any} value
 */
export function setQuizAnswer(questionId, value) {
  if (!questionId) return;
  const current = getQuizAnswers();
  current[String(questionId)] = value;
  setRaw(KEYS.quiz, JSON.stringify(current));
}

/**
 * Merge em bloco (ex: ao avançar tela)
 * @param {object} partial
 */
export function mergeQuizAnswers(partial) {
  const current = getQuizAnswers();
  const safe = partial && typeof partial === "object" ? partial : {};
  const merged = { ...current, ...safe };
  setRaw(KEYS.quiz, JSON.stringify(merged));
}

export function clearQuizAnswers() {
  removeRaw(KEYS.quiz);
}

// ---------- plan selected ----------
export function getPlanSelected() {
  const v = getRaw(KEYS.plan);
  return v ? String(v) : "basic"; // default
}

/**
 * @param {"basic"|"premium"|string} plan
 */
export function setPlanSelected(plan) {
  const clean = String(plan || "").trim().toLowerCase();
  if (!clean) return;
  setRaw(KEYS.plan, clean);
}

export function clearPlanSelected() {
  removeRaw(KEYS.plan);
}

// ---------- global ----------
export function clearAllStorage() {
  clearEmail();
  clearQuizAnswers();
  clearPlanSelected();
}

export const STORAGE_KEYS = KEYS;/* End custom CSS */