/* FEN · Menú semanal */
.fa-menu-sec{background:linear-gradient(180deg,#fff 0%,var(--cyan-25,#F5FBFE) 100%)}
.fm{display:grid;gap:18px}
.fm [hidden]{display:none!important}
.fm-app{display:grid;gap:16px}

/* vacío: el primer menú */
.fm-vacio{display:grid;grid-template-columns:auto 1fr;gap:clamp(18px,4vw,40px);align-items:center;background:#fff;border:1px solid var(--line);border-radius:28px;padding:clamp(22px,4vw,40px);box-shadow:0 30px 60px -44px rgba(11,11,99,.5)}
.fm-vacio-sello{width:clamp(110px,16vw,170px);height:auto;animation:fm-flota 5s ease-in-out infinite}
.fm-vacio h3{font-size:clamp(1.3rem,2.4vw,1.7rem);margin-bottom:8px}
.fm-vacio p{margin:0 0 18px;max-width:58ch}
@keyframes fm-flota{50%{transform:translateY(-6px) rotate(-3deg)}}

/* barra de opciones */
.fm-barra{display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap;align-items:center}
.fm-barra-g{display:flex;gap:10px;flex-wrap:wrap;align-items:center}
.fm-personas{display:inline-flex;align-items:center;gap:6px;background:#fff;border:1.5px solid var(--line);border-radius:999px;padding:4px 6px 4px 14px;font-size:.88rem;font-weight:600;color:var(--navy)}
.fm-personas button{width:34px;height:34px;border-radius:50%;border:0;background:var(--cyan-50);color:var(--navy);font-size:1.15rem;font-weight:700;cursor:pointer}
.fm-personas button:hover{background:var(--cyan-3,#8FD8F5)}
.fm-personas b{min-width:1.4em;text-align:center;font-size:1rem}
.fm-switch{display:inline-flex;align-items:center;gap:8px;font-size:.9rem;font-weight:600;color:var(--navy);cursor:pointer;background:#fff;border:1.5px solid var(--line);border-radius:999px;padding:8px 14px}
.fm-switch input{width:18px;height:18px;accent-color:var(--navy)}
.fm-excl{display:flex;gap:8px;flex-wrap:wrap;align-items:center;font-size:.86rem;color:var(--muted)}
.fm-excl>span{font-weight:600}
.fm-ex{border:1.5px solid var(--line);background:#fff;border-radius:999px;padding:7px 13px;font-size:.84rem;font-weight:600;color:var(--navy);cursor:pointer;transition:background .2s,border-color .2s,color .2s}
.fm-ex[aria-pressed="true"]{background:#FDECEC;border-color:#E9A6A6;color:#8A2A2A;text-decoration:line-through;text-decoration-thickness:1.5px}

/* la semana */
.fm-dias{display:none}
.fm-grilla{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));grid-template-rows:auto repeat(4,auto);gap:10px}
.fm-grilla.sin-cena{grid-template-rows:auto repeat(3,auto)}
.fm-dia{display:grid;grid-row:span 5;grid-template-rows:subgrid;gap:10px;min-width:0}
.fm-grilla.sin-cena .fm-dia{grid-row:span 4}
.fm-dia-t{font-size:.92rem;text-align:center;padding:8px 4px;border-radius:12px;background:var(--navy);color:#fff;letter-spacing:.02em}
.fm-plato{position:relative;display:flex;flex-direction:column;gap:7px;background:#fff;border:1px solid var(--line);border-radius:16px;padding:11px 11px 9px;min-width:0;box-shadow:0 12px 26px -24px rgba(11,11,99,.6);transition:box-shadow .2s,border-color .2s}
.fm-plato:hover{border-color:var(--cyan-3,#8FD8F5);box-shadow:0 16px 30px -22px rgba(11,11,99,.6)}
.fm-plato.fijo{border-color:var(--navy);box-shadow:inset 0 0 0 1px var(--navy)}
.fm-comida{margin:0;font-family:"JetBrains Mono",ui-monospace,monospace;font-size:.62rem;letter-spacing:.12em;text-transform:uppercase;color:var(--cyan);display:flex;gap:6px;align-items:center;flex-wrap:wrap}
.fm-fijo-et{background:var(--navy);color:#fff;border-radius:999px;padding:1px 7px;letter-spacing:.06em}
.fm-plato h4{font-size:.86rem;line-height:1.28;margin:0;color:var(--navy);font-weight:700;overflow-wrap:anywhere}
.fm-plato h4.fm-sin{color:var(--muted);font-weight:500}
.fm-chips{display:flex;flex-wrap:wrap;gap:4px}
.fm-chip{display:inline-flex;align-items:center;gap:4px;font:inherit;font-size:.68rem;font-weight:600;line-height:1.2;padding:3px 8px;border-radius:999px;border:0;background:var(--crema-2,#F5EEE2);color:#6B5A43;cursor:pointer}
.fm-chip.con-sello{background:#E8EDFB;color:var(--navy)}
.fm-chip i{width:9px;height:9px;border-radius:50%;background:var(--navy);box-shadow:0 0 0 2px #fff,0 0 0 3.5px var(--cyan);flex:none}
span.fm-chip{cursor:default}
button.fm-chip:hover{filter:brightness(.96)}
.fm-plato-nota{margin:0;font-size:.7rem;color:var(--muted);line-height:1.35}
.fm-receta{align-self:flex-start;border:0;background:none;padding:0;font:inherit;font-size:.74rem;font-weight:700;color:var(--cyan);cursor:pointer;text-decoration:underline;text-underline-offset:2px}
.fm-acc{display:flex;gap:4px;margin-top:auto;padding-top:6px;border-top:1px solid var(--line-2)}
.fm-acc button{flex:1;display:inline-flex;align-items:center;justify-content:center;gap:3px;min-height:32px;border:0;border-radius:9px;background:transparent;font:inherit;font-size:.68rem;font-weight:700;color:var(--navy);cursor:pointer;padding:4px 2px}
.fm-acc button:hover{background:var(--cyan-50)}
.fm-acc svg{width:14px;height:14px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;flex:none}
.fm-acc [aria-pressed="true"]{background:var(--navy);color:#fff}

/* animaciones */
.fm-grilla.fm-entra .fm-plato{animation:fm-entra .5s cubic-bezier(.2,.8,.2,1) both;animation-delay:calc(var(--i,0) * 22ms)}
@keyframes fm-entra{from{opacity:0;transform:translateY(10px) scale(.97)}}
.fm-plato.fm-cambio{animation:fm-cambio .55s cubic-bezier(.2,.8,.2,1)}
@keyframes fm-cambio{0%{transform:rotateX(70deg);opacity:.2}100%{transform:none;opacity:1}}

/* el resumen */
.fm-resumen{display:grid;grid-template-columns:auto minmax(0,1fr) minmax(0,.8fr);gap:16px 26px;align-items:center;background:linear-gradient(135deg,#0B0B63,#2C2CA8);color:#D6DEF5;border-radius:24px;padding:18px 22px}
.fm-sello-res{display:flex;gap:12px;align-items:center}
.fm-res-sello{width:72px;height:72px;flex:none}
.fm-sello-res b{display:block;font-family:"Plus Jakarta Sans",system-ui,sans-serif;font-size:1.7rem;color:#fff;line-height:1.1}
.fm-sello-res span{font-size:.82rem;display:block;max-width:15ch}
.fm-metas{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px 20px}
.fm-metas li{display:grid;grid-template-columns:1fr auto;gap:3px 8px;font-size:.78rem}
.fm-meta-t{color:#fff;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.fm-meta-v{text-align:right;white-space:nowrap}
.fm-meta-v i{font-style:normal;color:#8BDC6E;font-weight:800}
.fm-meta-b{grid-column:1/-1;height:6px;border-radius:6px;background:rgba(255,255,255,.14);overflow:hidden}
.fm-meta-b i{display:block;height:100%;border-radius:inherit;background:var(--cyan);transition:width .6s cubic-bezier(.2,.8,.2,1)}
.fm-metas li.ok .fm-meta-b i{background:#8BDC6E}
.fm-metas li.no-aplica{opacity:.55}
.fm-res-pie{display:grid;gap:8px}
.fm-tambien{margin:0;font-size:.78rem;line-height:1.45}
.fm-tambien b{color:#fff}
.fm-estado{margin:0;font-size:.78rem;color:#B9C6EE;min-height:1.2em}
.fm-deshacer{border:0;background:rgba(255,255,255,.14);color:#fff;border-radius:999px;padding:3px 10px;font:inherit;font-weight:700;cursor:pointer}
.fm-deshacer:hover{background:rgba(255,255,255,.26)}
.fm-nota{font-size:.8rem;color:var(--muted);margin:0}

/* elegir un plato */
.fm-opciones-lista{list-style:none;margin:0;padding:0;display:grid;gap:8px}
.fm-op{width:100%;text-align:left;display:grid;gap:6px;border:1.5px solid var(--line);background:#fff;border-radius:14px;padding:12px 14px;font:inherit;cursor:pointer;color:var(--navy)}
.fm-op:hover{border-color:var(--cyan)}
.fm-op.actual{border-color:var(--navy);background:var(--cyan-25,#F5FBFE)}
.fm-op b{font-size:.95rem}
.fm-op small{font-weight:500;color:var(--muted)}

/* la lista de compras */
.fm-tabla-scroll{overflow-x:auto;margin-bottom:6px}
.fm-tabla{width:100%;border-collapse:collapse;font-size:.82rem;min-width:560px}
.fm-tabla th,.fm-tabla td{border:1px solid var(--line);padding:7px 9px;text-align:left;vertical-align:top}
.fm-tabla thead th{background:var(--navy);color:#fff;font-weight:700}
.fm-tabla tbody th{background:var(--cyan-50);color:var(--navy);white-space:nowrap}
.fm-lista-g{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:4px 26px;margin-top:10px}
.fm-lista .fa-check-lista{grid-template-columns:1fr}
.fm-lista .fa-check-lista label{justify-content:flex-start}
.fm-lista .fa-check-lista em{margin-left:auto;font-style:normal;font-weight:700;color:var(--navy);white-space:nowrap;padding-left:8px}
.fm-lista .fa-check-lista input:checked + span{text-decoration:line-through;color:var(--muted)}
.fm-lista-nota{font-size:.8rem;color:var(--muted)}

/* vista previa sin cuenta */
.fm-previa{position:relative;display:grid;grid-template-columns:minmax(220px,1.1fr) 3fr;gap:12px;border-radius:28px;overflow:hidden;padding:4px}
.fm-previa-dia{display:grid;gap:10px;align-content:start}
.fm-previa-ojo{margin:0;text-align:center;font-weight:700;font-size:.92rem;padding:8px;border-radius:12px;background:var(--navy);color:#fff}
.fm-previa .fm-plato{padding-bottom:12px}
.fm-previa-resto{display:grid;grid-template-columns:repeat(6,1fr);gap:10px;filter:blur(3px);opacity:.55}
.fm-previa-col{display:grid;grid-template-rows:38px repeat(4,1fr);gap:10px}
.fm-previa-col span{border-radius:16px;background:#fff;border:1px solid var(--line);min-height:96px}
.fm-previa-col span:first-child{min-height:0;background:var(--navy);opacity:.6}
.fm-invita{position:absolute;inset:auto 0 0 0;margin:0 auto;bottom:50%;transform:translateY(50%);left:calc(25% + 40px);right:24px;max-width:520px;display:grid;justify-items:center;text-align:center;gap:10px;background:rgba(255,255,255,.94);backdrop-filter:blur(8px);border:1px solid var(--line);border-radius:26px;padding:26px clamp(18px,3vw,34px);box-shadow:0 40px 80px -40px rgba(11,11,99,.6)}
.fm-invita-sello{width:84px;height:84px}
.fm-invita h3{font-size:clamp(1.15rem,2vw,1.45rem)}
.fm-invita p{margin:0;font-size:.92rem}
.fm-invita .fa-cta{justify-content:center;margin-top:6px}

@media (max-width:1180px){
  .fm-resumen{grid-template-columns:auto minmax(0,1fr)}
  .fm-res-pie{grid-column:1/-1}
}
@media (max-width:1020px){
  .fm-dias{display:flex;gap:6px;overflow-x:auto;padding-bottom:4px;scrollbar-width:none}
  .fm-dias::-webkit-scrollbar{display:none}
  .fm-dias button{flex:1 0 auto;min-width:46px;min-height:44px;border:1.5px solid var(--line);background:#fff;border-radius:14px;font:inherit;font-size:.86rem;color:var(--navy);cursor:pointer}
  .fm-dias button[aria-selected="true"]{background:var(--navy);border-color:var(--navy);color:#fff}
  .fm-grilla,.fm-grilla.sin-cena{grid-template-columns:1fr;grid-template-rows:none;margin-top:10px}
  .fm-dia,.fm-grilla.sin-cena .fm-dia{display:none;grid-row:auto;grid-template-rows:none;grid-template-columns:repeat(2,minmax(0,1fr))}
  .fm-dia.activo{display:grid}
  .fm-dia-t{grid-column:1/-1;text-align:left;padding:10px 14px}
  .fm-plato h4{font-size:.95rem}
  .fm-chip{font-size:.74rem}
  .fm-acc button{font-size:.76rem;min-height:40px}
  .fm-previa{grid-template-columns:1fr}
  .fm-previa-resto{display:none}
  .fm-invita{position:static;transform:none;max-width:none}
}
@media (max-width:620px){
  .fm-vacio{grid-template-columns:1fr;justify-items:center;text-align:center}
  .fm-dia{grid-template-columns:1fr}
  .fm-resumen{grid-template-columns:1fr;padding:18px}
  .fm-metas{grid-template-columns:1fr}
  .fm-barra,.fm-barra-g{width:100%}
  .fm-barra-g .btn{flex:1;justify-content:center}
  .fm-previa-dia .fm-plato:nth-child(n+4){display:none}
}
@media (prefers-reduced-motion:reduce){
  .fm-vacio-sello,.fm-grilla.fm-entra .fm-plato,.fm-plato.fm-cambio{animation:none}
}
@media print{
  body.fa-imprime .fm-lista .fa-check-lista input{appearance:none;width:12px;height:12px;border:1px solid #333}
  body.fa-imprime .fm-tabla{min-width:0;font-size:9pt}
  body.fa-imprime .fm-tabla thead th{background:#eee;color:#000}
}

/* cabecera de las ventanas sin ilustración */
.fa-ficha-lista .fa-ficha-cab,.fm-elegir .fa-ficha-cab{grid-template-columns:1fr}
