:root{--paper:#fbf7ef;--ink:#27231f;--muted:#746b61;--green:#315c4b;--green2:#dfece5;--line:#e5dacb;--card:#fffdf8;--gold:#b8823d;--shadow:0 12px 30px rgba(74,57,38,.1)}*{box-sizing:border-box}body{margin:0;background:linear-gradient(180deg,#efe6d8,#faf6ef 34%);color:var(--ink);font-family:Inter,ui-sans-serif,system-ui,-apple-system,"Segoe UI",sans-serif;min-height:100vh}.shell{width:min(100%,720px);min-height:100vh;margin:auto;background:var(--paper);box-shadow:0 0 40px rgba(54,44,32,.09);padding-bottom:40px}.topbar{position:sticky;top:0;z-index:3;display:grid;grid-template-columns:46px 1fr 46px;align-items:center;gap:10px;padding:16px 18px;background:rgba(251,247,239,.92);backdrop-filter:blur(14px);border-bottom:1px solid var(--line)}h1,h2,h3,p{margin-top:0}h1{font-family:Georgia,serif;font-size:22px;margin:0}.eyebrow{text-transform:uppercase;letter-spacing:.14em;font-size:11px;color:var(--gold);font-weight:800;margin:0 0 4px}.icon{border:0;border-radius:50%;width:42px;height:42px;background:white;color:var(--green);font-size:22px;box-shadow:0 3px 12px rgba(45,35,23,.09)}.hidden{visibility:hidden}#screen{padding:18px}.hero{padding:26px 22px;margin:4px 0 18px;border-radius:24px;background:linear-gradient(135deg,#294f40,#3d715d);color:white;box-shadow:var(--shadow)}.hero-mark{font-size:28px;color:#f0c67f}.hero h2{font:700 31px/1.08 Georgia,serif;margin:9px 0}.hero p{color:#e7f0eb;line-height:1.5;margin-bottom:0}.grid{display:grid;grid-template-columns:repeat(2,1fr);gap:10px}.grid.compact{margin-top:18px}.category{display:flex;align-items:center;gap:12px;text-align:left;border:1px solid var(--line);border-radius:17px;padding:14px;background:var(--card);color:var(--ink);font-weight:750;min-height:66px;box-shadow:0 4px 13px rgba(62,47,30,.05)}.category b{font-size:26px}.category:active,.recipe-row:active{transform:scale(.985)}button{font:inherit;cursor:pointer}.wide{width:100%;border:0;border-radius:15px;padding:15px 18px;margin-top:11px;font-weight:800}.primary{background:var(--green);color:white}.secondary{background:var(--green2);color:var(--green)}.ghost{background:transparent;color:var(--green);border:1px solid var(--line)}.card,.recipe-card{background:var(--card);border:1px solid var(--line);border-radius:22px;padding:21px;box-shadow:var(--shadow)}.card h2,.section-head h2,.recipe-card h2{font:700 28px/1.15 Georgia,serif;margin-bottom:9px}.card>p,.section-head>p{color:var(--muted)}input{display:block;width:100%;padding:15px;border:1px solid #cfc1af;border-radius:13px;background:white;font:inherit;margin:18px 0 6px}.energy{display:grid;gap:10px;margin-top:20px}.energy button{border:1px solid var(--line);border-radius:15px;padding:17px;background:white;text-align:left;font-weight:800}.section-head{padding:5px 3px 12px}.recipe-list{display:grid;gap:9px}.recipe-row{width:100%;display:grid;grid-template-columns:38px 1fr 20px;align-items:center;gap:11px;text-align:left;border:1px solid var(--line);border-radius:16px;padding:13px;background:white;color:var(--ink)}.recipe-row .number{display:grid;place-items:center;width:34px;height:34px;border-radius:50%;background:var(--green2);color:var(--green);font-weight:900}.recipe-row strong,.recipe-row small{display:block}.recipe-row small{color:var(--muted);margin-top:5px}.recipe-row i{font-size:25px;color:var(--gold)}.recipe-title{display:flex;align-items:flex-start;gap:13px}.recipe-title>span{font-size:36px}.meta{display:flex;flex-wrap:wrap;gap:7px;margin:15px 0}.meta span{padding:7px 9px;border-radius:10px;background:#f1eadf;color:#5c5145;font-size:12px;font-weight:700}.lead{font:italic 17px/1.5 Georgia,serif;color:#51483f}.recipe-card h3{font:700 20px Georgia,serif;margin:23px 0 10px}.recipe-card li{margin:8px 0;line-height:1.48}.recipe-card ul,.recipe-card ol{padding-left:23px}.recipe-card aside{border-left:4px solid var(--gold);background:#f5ede1;padding:13px 14px;margin-top:22px;border-radius:0 12px 12px 0}.recipe-card aside p{margin:5px 0 0;color:var(--muted)}.loading,.empty{text-align:center;padding:48px 22px;color:var(--muted)}.loading span{display:inline-block;width:34px;height:34px;border:4px solid var(--green2);border-top-color:var(--green);border-radius:50%;animation:spin .8s linear infinite}.toast{position:fixed;left:50%;bottom:24px;transform:translate(-50%,25px);opacity:0;pointer-events:none;background:#202a25;color:white;padding:12px 18px;border-radius:12px;transition:.2s;z-index:5}.toast.show{opacity:1;transform:translate(-50%,0)}button:disabled{opacity:.65}@keyframes spin{to{transform:rotate(360deg)}}@media(min-width:600px){#screen{padding:25px}.grid{grid-template-columns:repeat(4,1fr)}.category{display:grid;text-align:center;justify-items:center}.hero{padding:34px}.hero h2{font-size:38px}}


/* DETALLE COMPLETO DE RECETA */
.recipe-hero {
  display: block;
  width: 100%;
  height: 220px;
  object-fit: cover;
  border-radius: 22px;
  margin-bottom: 20px;
  background: #eadfce;
}

.recipe-block {
  margin-top: 22px;
}

.recipe-block h3 {
  margin-bottom: 10px;
}

.recipe-card aside + aside {
  margin-top: 12px;
}


/* MINIATURAS EN LISTADOS */
.recipe-row {
  display: grid;
  grid-template-columns: auto 58px minmax(0, 1fr) auto;
  align-items: center;
  gap: 12px;
}

.recipe-thumb {
  width: 58px;
  height: 58px;
  object-fit: cover;
  border-radius: 14px;
  background: #eadfce;
}

.recipe-row > span:not(.number) {
  min-width: 0;
  text-align: left;
}

/* RECETAS COMPARADAS V1 */
.comparison-list {
  display: grid;
  gap: 10px;
}

.comparison-row {
  width: 100%;
  display: grid;
  grid-template-columns: 42px minmax(0, 1fr) 20px;
  align-items: center;
  gap: 12px;
  padding: 15px;
  border: 1px solid var(--line);
  border-radius: 17px;
  background: var(--card);
  color: var(--ink);
  text-align: left;
  box-shadow: 0 4px 13px rgba(62,47,30,.05);
}

.comparison-row .chef-mark {
  display: grid;
  place-items: center;
  width: 42px;
  height: 42px;
  border-radius: 50%;
  background: var(--green2);
  font-size: 21px;
}

.comparison-row strong,
.comparison-row small,
.comparison-row em {
  display: block;
}

.comparison-row small {
  margin-top: 3px;
  color: var(--muted);
}

.comparison-row em {
  margin-top: 7px;
  color: var(--green);
  font-size: 12px;
  font-style: normal;
  line-height: 1.35;
}

.comparison-row i {
  color: var(--gold);
  font-size: 25px;
}

.comparison-summary {
  margin-top: 18px;
  padding: 18px;
  border-radius: 18px;
  background: #f5ede1;
}

.comparison-summary h3 {
  font: 700 20px Georgia,serif;
  margin-bottom: 10px;
}

.comparison-summary ul {
  margin: 0;
  padding-left: 20px;
}

.comparison-summary li {
  margin: 7px 0;
  line-height: 1.45;
}

.comparison-author {
  margin-bottom: 5px;
  color: var(--green);
  font-weight: 800;
}

.source-label {
  color: var(--muted);
  font-size: 14px;
}

.source-link {
  display: block;
  text-align: center;
  text-decoration: none;
}

/* NUTRICION V1 */
.nutrition-block { margin-top: 20px; }
.nutrition-label { margin: 8px 0 10px; color: var(--muted, #756b5f); font-weight: 700; }
.nutrition-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px; }
.nutrition-cell { padding: 11px 8px; border-radius: 13px; background: #f5eee3; text-align: center; }
.nutrition-cell small { display: block; margin-bottom: 4px; color: #766a5c; font-size: .72rem; }
.nutrition-cell strong { display: block; color: #203d35; font-size: 1rem; }
.nutrition-cell strong span { font-size: .72rem; font-weight: 600; }
.nutrition-total { margin-top: 12px; }
.nutrition-total summary { cursor: pointer; color: #2f6655; font-weight: 750; }
.nutrition-total[open] summary { margin-bottom: 10px; }
.nutrition-note { margin: 12px 0 0; color: #7a7064; font-size: .78rem; line-height: 1.45; }
@media (max-width: 380px) { .nutrition-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }

/* COMENSALES V1 */
.servings-selector { display:flex; align-items:center; justify-content:space-between; gap:16px; margin:14px 0 18px; padding:12px 14px; border:1px solid #e8dccb; border-radius:16px; background:#fffaf3; }
.servings-selector > span { color:#554b40; font-weight:750; }
.servings-selector > div { display:flex; align-items:center; gap:12px; }
.servings-selector button { width:38px; height:38px; padding:0; border:0; border-radius:50%; background:#2f6655; color:white; font-size:1.35rem; font-weight:700; }
.servings-selector button:disabled { opacity:.35; }
.servings-selector strong { min-width:22px; color:#203d35; text-align:center; font-size:1.15rem; }


/* FIRMA FRANCIS GUZMAN */
.brand .signature {
  margin: 2px 0 0;
  color: #8a6b45;
  font-size: 0.72rem;
  font-style: italic;
  font-weight: 600;
  letter-spacing: 0.03em;
}

/* RECETAS FIT V1 */
.fit-entry { margin-top:12px; border:0; background:linear-gradient(135deg,#39765e,#285a48); color:#fff; }
.fit-head { padding-bottom:4px; }
.fit-grid { display:grid; gap:11px; }
.fit-mode { width:100%; display:grid; grid-template-columns:42px minmax(0,1fr) auto; align-items:center; gap:12px; padding:15px; border:1px solid #dce9df; border-radius:17px; background:#f7fbf7; color:#203d35; text-align:left; }
.fit-mode > span { font-size:1.65rem; }
.fit-mode strong,.fit-mode small,.fit-mode em { display:block; }
.fit-mode strong { margin-bottom:3px; font-size:1rem; }
.fit-mode small { color:#6c766f; line-height:1.35; }
.fit-mode em { margin-top:5px; color:#39765e; font-size:.76rem; font-style:normal; font-weight:750; }
.fit-mode > i { font-style:normal; font-size:1.25rem; }


/* COMUNIDAD_V1_STYLES */
.community-empty { text-align: center; padding: 34px 24px; }
.community-icon { display: block; font-size: 42px; margin-bottom: 10px; }
.community-attribution { color: #7b6b5b; font-size: .9rem; margin-top: 24px; }
.community-source { display: flex; align-items: center; justify-content: center; text-decoration: none; margin-top: 16px; }
