/* ============================================================================
 * Menü ajánlatok – modul stílus (Fázis 5). Minden .mo-app / .mo-modal alá
 * scope-olva. A globális zöld pirula-gomb + box-shadow szabályt a gombjainkon
 * explicit felül kell írni (style.css minden <button>-re húzza).
 * Akcentus: #00890a (lila). Világos/sötét semleges kártyák.
 * ==========================================================================*/

.mo-app{ clear:both; max-width:1080px; margin:0 auto; padding:0 4px 40px; box-sizing:border-box; }

/* ---- Vezérlő-sáv: nézetváltó (napi/heti) + étkezés-választó (fő/reggeli/nasi) egy sorban ---- */
.mo-toolbar{ display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:12px 18px; margin:0 0 14px; }

/* ---- Profil-kártya: gyors profilok + alap-adag + mentés/visszaállítás ------------
 * A böngésző-vezérlőktől (toolbar, szűrő) vizuálisan ELKÜLÖNÜLŐ, halvány, másodlagos
 * csoport – egy bekeretezett kártyában, hogy „ez a beállításaid" egyértelmű legyen. */
.mo-profile{ background:#fafafb; border:1px solid #ececf0; border-radius:14px; padding:11px 14px; margin:0 0 18px; }

/* Gyors profilok (presetek): felirat + chip-sor egy vonalban, tömör chipekkel */
.mo-presets{ display:flex; align-items:center; flex-wrap:wrap; gap:6px 10px; margin:0 0 10px; }
.mo-presets-label,
.mo-prof-lbl{ font-size:11px; font-weight:700; text-transform:uppercase; letter-spacing:.03em; color:#9a95a4; flex:0 0 auto; }
.mo-preset-chips{ display:flex; flex-wrap:wrap; gap:7px; }
.mo-app .mo-preset{
	display:inline-flex; align-items:center; gap:6px; flex:0 0 auto;
	border:1.5px solid #e3e3e8; background:#fff; color:#5a5566;
	border-radius:999px; padding:4px 12px 4px 9px; font-size:12.5px; font-weight:600; cursor:pointer;
	box-shadow:none; -webkit-tap-highlight-color:transparent; transition:background .15s, color .15s, border-color .15s;
}
.mo-app .mo-preset:hover{ border-color:#bde8c0; }
.mo-app .mo-preset.mo-preset-on{ background:#00890a; border-color:#00890a; color:#fff; }
.mo-preset-ico{ display:inline-flex; color:#00890a; }
.mo-preset-ico svg{ display:block; width:15px; height:15px; }
.mo-app .mo-preset.mo-preset-on .mo-preset-ico{ color:#fff; }
/* „Egyik sem" chip – semleges (nincs profil / szűrők törlése); aktív, ha nincs preset. */
.mo-app .mo-preset.mo-preset-none .mo-preset-ico{ color:#9a95a4; }
.mo-app .mo-preset.mo-preset-none:hover{ border-color:#c7c7cf; }
.mo-app .mo-preset.mo-preset-none.mo-preset-on{ background:#6b7280; border-color:#6b7280; color:#fff; }
.mo-app .mo-preset.mo-preset-none.mo-preset-on .mo-preset-ico{ color:#fff; }

/* ---- Gyors profilok összecsukó (a szűrő-panel .mo-filters-wrap mintájára) ---- */
.mo-presets-wrap{ margin:0 0 14px; }
.mo-presets-wrap.mo-pw-collapsed .mo-presets{ display:none; }
/* Nyitva: a toggle-sáv a panel teteje, alul összeér (lekerekítés csak fent). */
.mo-presets-wrap:not(.mo-pw-collapsed) .mo-fw-toggle{ border-radius:14px 14px 0 0; border-bottom:none; }
.mo-presets-wrap .mo-presets{ display:block; margin:0; padding:11px 14px; background:#fafafb; border:1px solid #e8f6e9; border-top:none; border-radius:0 0 14px 14px; }
/* Zárt sáv FELETTI összegzés (az aktív profil neve mini-címkeként). */
.mo-psel-summary{ display:flex; align-items:center; flex-wrap:wrap; gap:6px 8px; margin:0 0 8px; padding:0 2px; }
.mo-psel-summary-lbl{ font-size:11px; font-weight:700; text-transform:uppercase; letter-spacing:.03em; color:#9a95a4; }
.mo-psel-summary-tags{ display:flex; flex-wrap:wrap; gap:6px; }
.mo-psel-tag{ display:inline-flex; align-items:center; gap:5px; font-size:12px; font-weight:600; color:#fff; background:#00890a; border-radius:999px; padding:3px 10px 3px 8px; }
.mo-psel-tag .mo-preset-ico{ color:#fff; }
.mo-psel-tag .mo-preset-ico svg{ display:block; width:13px; height:13px; }
.mo-app .mo-psel-x{ display:inline-flex; align-items:center; justify-content:center; width:16px; height:16px; margin:0 -3px 0 1px; padding:0; border:0; border-radius:999px; background:rgba(255,255,255,.22); color:#fff; font-size:13px; line-height:1; font-weight:700; cursor:pointer; box-shadow:none; }
.mo-app .mo-psel-x:hover{ background:rgba(255,255,255,.4); }

/* Alap-adag + mentés/visszaállítás egy sorban (a presetek alatt, halvány elválasztóval) */
.mo-profile-row{ display:flex; align-items:center; flex-wrap:wrap; justify-content:space-between; gap:10px 16px; }
.mo-presets + .mo-profile-row{ border-top:1px solid #eeeef1; padding-top:10px; }
.mo-dose-row{ display:flex; align-items:center; flex-wrap:wrap; gap:8px; margin:0; }
.mo-prof-dose{ display:inline-flex; align-items:center; gap:5px; background:#fff; border:1px solid #e2e2e8; border-radius:999px; padding:2px 4px; }
.mo-app .mo-prof-dose-btn{
	width:22px; height:22px; padding:0; line-height:20px; text-align:center; font-size:15px; font-weight:700;
	color:#00890a; background:#ecfaed; border:1px solid #ddf0de; border-radius:50%; box-shadow:none; cursor:pointer;
}
.mo-app .mo-prof-dose-btn:hover{ background:#00890a; color:#fff; border-color:#00890a; }
.mo-prof-dose-val{ min-width:18px; text-align:center; font-size:14px; font-weight:700; color:#33303a; }
.mo-prof-dose-lbl{ font-size:12px; color:#8a8595; }

.mo-prof-actions{ display:flex; align-items:center; flex-wrap:wrap; gap:7px; margin:0; }
.mo-prof-ico{ flex:0 0 auto; display:block; }
/* „Mentés alapként" – kompakt, halvány-zöld pill (nem nagy tömör gomb). */
.mo-app .mo-prof-save{
	display:inline-flex; align-items:center; gap:6px; line-height:1;
	border:1.5px solid #cfe9d1; background:#ecfbed; color:#007e08; box-shadow:none;
	border-radius:9px; padding:5px 12px; font-size:12.5px; font-weight:600; cursor:pointer;
	-webkit-tap-highlight-color:transparent; transition:background .15s, border-color .15s, color .15s;
}
.mo-app .mo-prof-save svg, .mo-app .mo-prof-save span{ display:block; }
.mo-app .mo-prof-save:hover{ background:#e2f6e4; border-color:#bfe3c2; color:#007e08; }
.mo-app .mo-prof-save:disabled{ opacity:.55; cursor:default; }
/* „Alapbeállítások" – tercier, csendes ikon+szöveg gomb (a mentéstől elkülönítve). */
.mo-app .mo-prof-reset{
	display:inline-flex; align-items:center; gap:5px;
	border:none; background:none; color:#8a8595; box-shadow:none;
	border-radius:8px; padding:5px 9px; font-size:12.5px; font-weight:600; cursor:pointer;
	-webkit-tap-highlight-color:transparent; transition:background .15s, color .15s;
}
.mo-app .mo-prof-reset:hover{ background:#efeff2; color:#54505e; }
.mo-app .mo-prof-reset:disabled{ opacity:.55; cursor:default; }
.mo-prof-saved{
	display:inline-flex; align-items:center; gap:5px;
	font-size:12px; font-weight:700; color:#2e9e5b;
	background:#e9f7ee; border:1px solid #bfe6cd; border-radius:999px; padding:4px 11px;
}
.mo-prof-saved:before{ content:'\2713'; font-weight:900; }

/* ---- Étkezés-választó (slot-pillek, ikonnal) – kompakt, moderált méret ----
   Minden slot a NAPTÁR étkezés-színét hozza (ca_events, user_id=0):
   main=Ebéd zöld, breakfast=Reggeli kék (#2396f3), snack=Uzsonna korall (#ff546b).
   A gomb ikonja, kerete, halvány háttere és hovere is a saját étkezés-színe;
   aktív állapotban a teljes gomb telik ki a szín tömör árnyalatával. */
.mo-slots{ display:flex; gap:7px; flex-wrap:wrap; margin:0; }
.mo-app .mo-slot{
	display:inline-flex; align-items:center; gap:7px; flex:0 0 auto;
	border:1.5px solid #ddf0de; background:#fff; color:#4a4656;
	border-radius:10px; padding:7px 13px; font-size:13px; font-weight:600; cursor:pointer;
	box-shadow:none; -webkit-tap-highlight-color:transparent; transition:background .15s, color .15s, border-color .15s;
}
.mo-slot-ico{ display:inline-flex; color:#00890a; }
.mo-slot-ico svg{ display:block; width:16px; height:16px; }
.mo-app .mo-slot.mo-slot-active .mo-slot-ico{ color:#fff; }

/* main = Ebéd (zöld) */
.mo-app .mo-slot[data-slot="main"]{ border-color:#8ed392; background:#f5fdf5; }
.mo-app .mo-slot[data-slot="main"] .mo-slot-ico{ color:#01990e; }
.mo-app .mo-slot[data-slot="main"]:hover{ border-color:#01990e; }
.mo-app .mo-slot[data-slot="main"].mo-slot-active{ background:#01990e; border-color:#01990e; color:#fff; }

/* breakfast = Reggeli (kék) */
.mo-app .mo-slot[data-slot="breakfast"]{ border-color:#a1b9fd; background:#f6fbff; }
.mo-app .mo-slot[data-slot="breakfast"] .mo-slot-ico{ color:#2396f3; }
.mo-app .mo-slot[data-slot="breakfast"]:hover{ border-color:#2396f3; background:#e9efff; }
.mo-app .mo-slot[data-slot="breakfast"].mo-slot-active{ background:#2396f3; border-color:#2396f3; color:#fff; }

/* snack = Uzsonna (korall) */
.mo-app .mo-slot[data-slot="snack"]{ border-color:#ff9d93; background:#fff8f7; }
.mo-app .mo-slot[data-slot="snack"] .mo-slot-ico{ color:#ff546b; }
.mo-app .mo-slot[data-slot="snack"]:hover{ border-color:#ff546b; background:#fce9e7; }
.mo-app .mo-slot[data-slot="snack"].mo-slot-active{ background:#ff546b; border-color:#ff546b; color:#fff; }

/* Aktív slot ikonja MINDIG fehér – emelt specificitással üti a per-slot ikonszínt
   (az [data-slot] ico-szabályok azonos súlyúak, de később jönnek, ezért felülírnák). */
.mo-app .mo-slot[data-slot="main"].mo-slot-active .mo-slot-ico,
.mo-app .mo-slot[data-slot="breakfast"].mo-slot-active .mo-slot-ico,
.mo-app .mo-slot[data-slot="snack"].mo-slot-active .mo-slot-ico{ color:#fff; }

/* ---- Szűrő-panel összecsukó (CSAK a modul-oldalon; a setup mindig nyitva) ---- */
.mo-filters-wrap{ margin-bottom:8px; }
/* Zárt állapotban a teljes facet-panel rejtve. A wrap adja az alsó margót, a panel nem. */
.mo-filters-wrap .mo-filters{ margin-bottom:0; }
.mo-fw-collapsed .mo-filters{ display:none; }

/* Nyitó/záró sáv (a globális zöld-pirula button-stílus felülírva a .mo-app scope-ban). */
.mo-app .mo-fw-toggle{
	display:flex; align-items:center; gap:11px; width:100%;
	background:#f9fdf9; border:1px solid #e8f6e9; border-radius:14px;
	padding:11px 14px; margin:0; cursor:pointer; text-align:left;
	box-shadow:none; -webkit-tap-highlight-color:transparent;
	transition:background .13s, border-color .13s;
}
.mo-app .mo-fw-toggle:hover{ background:#f0faf1; border-color:#d7f0d9; }
/* Nyitva: a sáv a panel teteje, alul összeér (lekerekítés csak fent). */
.mo-filters-wrap:not(.mo-fw-collapsed) .mo-fw-toggle{ border-radius:14px 14px 0 0; border-bottom:none; }
.mo-filters-wrap:not(.mo-fw-collapsed) .mo-filters{ border-radius:0 0 14px 14px; border-top:none; }
.mo-fw-toggle-ico{ display:inline-flex; flex:0 0 auto; color:#00890a; }
.mo-fw-toggle-ico svg{ display:block; }
.mo-fw-toggle-txt{ display:flex; flex-direction:column; gap:1px; flex:1 1 auto; min-width:0; }
.mo-fw-toggle-title{ font-size:13.5px; font-weight:700; color:#403b4a; }
.mo-fw-toggle-hint{ font-size:12px; color:#8a8595; }
.mo-fw-toggle-arrow{ flex:0 0 auto; width:16px; height:16px; position:relative; }
.mo-fw-toggle-arrow:after{
	content:''; position:absolute; left:3px; top:4px; width:7px; height:7px;
	border-right:2px solid #adc0ae; border-bottom:2px solid #adc0ae;
	transform:rotate(45deg); transition:transform .15s, top .15s;
}
.mo-filters-wrap:not(.mo-fw-collapsed) .mo-fw-toggle-arrow:after{ transform:rotate(-135deg); top:7px; }

/* Zárt állapotú összegzés a sáv FELETT (a beállított szűrők mini-címkéi). */
.mo-fsel-summary{ display:flex; flex-wrap:wrap; align-items:center; gap:6px; margin-bottom:8px; padding:0 2px; }
.mo-fsel-summary-lbl{ font-size:12.5px; font-weight:700; color:#6b6b74; }
.mo-fsel-summary-tags{ display:flex; flex-wrap:wrap; gap:5px; }

/* ---- Szűrő-címkék: kinyitható facet-csoportok ---- */
.mo-filters{ background:#f9fdf9; border:1px solid #e8f6e9; border-radius:14px; padding:2px 14px; margin-bottom:8px; }

.mo-fgroup{ border-bottom:1px solid #e8f6e9; }
.mo-fgroup:last-of-type{ border-bottom:none; }

/* Csoport-fejléc (zárva ez látszik: ikon + név + kiválasztott mini-címkék + nyíl) */
.mo-fgroup-head{ display:flex; align-items:center; gap:9px; padding:11px 2px; cursor:pointer; -webkit-tap-highlight-color:transparent; }
.mo-fgroup-ico{ display:inline-flex; flex:0 0 auto; }
.mo-fgroup-ico svg{ display:block; }
.mo-fgroup-label{ font-size:13.5px; font-weight:700; color:#403b4a; flex:0 0 auto; }
.mo-fgroup-sel{ display:flex; flex-wrap:wrap; gap:5px; flex:1 1 auto; min-width:0; }
.mo-fgroup-hint{ color:#a8a2b4; font-size:12.5px; font-style:italic; align-self:center; }
.mo-fgroup-arrow{ flex:0 0 auto; width:16px; height:16px; position:relative; }
.mo-fgroup-arrow:after{
	content:''; position:absolute; left:3px; top:4px; width:7px; height:7px;
	border-right:2px solid #adc0ae; border-bottom:2px solid #adc0ae;
	transform:rotate(45deg); transition:transform .15s, top .15s;
}
.mo-fgroup-open .mo-fgroup-arrow:after{ transform:rotate(-135deg); top:7px; }

/* Kiválasztott mini-címke a fejlécben (×-el levehető). A szín a facet-csoport
   --fc/--fcbg változójából jön (kategóriánként más); az „Összes" gomb marad lila. */
.mo-fsel-tag{
	display:inline-flex; align-items:center; gap:5px;
	background:var(--fcbg, #e9fbea); color:var(--fc, #007108); border-radius:999px;
	padding:2px 3px 2px 8px; font-size:12px; font-weight:600; line-height:1.4;
}
.mo-fsel-tag .mo-flag{ width:16px; height:11px; }
.mo-fsel-tag .mo-chip-ico{ display:inline-flex; }
/* Kizáró (allergén) mini-címke: piros (a --fc úgyis piros, de a ✗ jelet is kirakjuk). */
.mo-fsel-excl .mo-fsel-txt:before{ content:'\2717\00a0'; }
.mo-app .mo-fsel-x{
	display:inline-flex; align-items:center; justify-content:center;
	width:16px; height:16px; padding:0; border:none; box-shadow:none;
	background:rgba(0,0,0,.06); color:inherit; border-radius:50%;
	font-size:13px; line-height:1; cursor:pointer;
}
.mo-app .mo-fsel-x:hover{ background:rgba(0,0,0,.16); }

/* Csoport-törzs (kinyitva): „Összes" + minden chip */
.mo-fgroup-body{ display:flex; flex-wrap:wrap; gap:6px; padding:1px 0 13px; }
/* „Összes" gomb: szándékosan MÁS mint a chipek (tömör, ikonos, kiemelt),
   hogy egyértelmű legyen a kijelöl-mind / töröl-mind vezérlő. */
.mo-app .mo-fall{
	display:inline-flex; align-items:center; gap:6px;
	border:1.5px solid #00890a; background:#eefcef; color:#007108;
	border-radius:999px; padding:5px 13px 5px 9px; font-size:13px; font-weight:700; cursor:pointer;
	box-shadow:none; -webkit-tap-highlight-color:transparent; transition:background .13s, border-color .13s, color .13s;
}
.mo-app .mo-fall:hover{ background:#e0fae2; border-color:#007e08; }
.mo-fall-ico{ display:inline-flex; align-items:center; justify-content:center; width:17px; height:17px; }
.mo-fall-ico svg{ width:16px; height:16px; }
.mo-fall-txt{ line-height:1; }
/* Aktív („minden be" toggle-nál, ill. üres diétánál): tömör lila. */
.mo-app .mo-fall.mo-fall-on{ background:#00890a; border-color:#00890a; color:#fff; }

.mo-app .mo-chip{
	display:inline-flex; align-items:center; gap:6px;
	border:1.5px solid #d9ecda; background:#fff; color:#54505e;
	border-radius:999px; padding:5px 13px; font-size:13px; font-weight:500; cursor:pointer;
	box-shadow:none; -webkit-tap-highlight-color:transparent; transition:background .13s, color .13s, border-color .13s;
}
.mo-app .mo-chip:hover{ border-color:#a9e6ad; }
/* Aktív chip: ugyanaz a halvány, kategória-színű pirula, mint a fejléc mini-címke
   (nem tömör kitöltés) – így a törzs-chip és a fejléc-címke egységes. */
.mo-app .mo-chip.mo-chip-on{ background:var(--fcbg, #e9fbea); border-color:var(--fc, #00890a); color:var(--fc, #007108); font-weight:600; }
/* Kizáró (allergén) chip: halvány piros pirula + ✗ – „ezt hagyd ki" */
.mo-app .mo-chip-excl.mo-chip-on{ background:#fdeaea; border-color:#e5484d; color:#c0393e; }
.mo-app .mo-chip-excl.mo-chip-on .mo-chip-txt:before{ content:'\2717\00a0'; }

/* Chip-ikon / zászló */
.mo-chip-ico{ display:inline-flex; flex:0 0 auto; }
.mo-chip-ico svg{ display:block; }
.mo-flag{ width:20px; height:14px; border-radius:3px; overflow:hidden; box-shadow:0 0 0 1px rgba(0,0,0,.12); flex:0 0 auto; }
.mo-flag svg{ display:block; width:100%; height:100%; }

.mo-filters-foot{ display:flex; justify-content:flex-end; padding:8px 0 10px; }
.mo-app .mo-clear{
	background:none; border:none; box-shadow:none; color:#a0616a; font-size:13px; font-weight:600;
	cursor:pointer; padding:2px 0;
}

/* ---- Feed (kártyarács) ---- */
.mo-feed{ display:grid; grid-template-columns:repeat(auto-fill, minmax(300px, 1fr)); gap:14px; }
.mo-loading, .mo-empty{ grid-column:1/-1; text-align:center; color:#8a8595; padding:30px 10px; font-size:14px; }

.mo-card{
	background:#fff; border:1px solid #e8f6e9; border-radius:16px; padding:16px 16px 14px;
	box-shadow:0 2px 10px rgba(60,40,110,.05); display:flex; flex-direction:column;
	transition:box-shadow .18s, transform .18s;
}
.mo-card:hover{ box-shadow:0 6px 20px rgba(60,40,110,.12); }

.mo-card-top{ position:relative; margin-bottom:10px; padding-right:30px; }
/* Eyebrow: „Menü" jelzés (tányér-ikonos, tömör zöld pill) + konyha-címke egy sorban.
   A tömör pill az identitás (ez egy MENÜ), a konyha halvány kísérő-címke. */
.mo-card-eyebrow{ display:flex; align-items:center; flex-wrap:wrap; gap:6px; margin-bottom:7px; }
.mo-card-kind{
	display:inline-flex; align-items:center; gap:5px; line-height:1;
	font-size:11px; font-weight:800; letter-spacing:.02em;
	color:#fff; background:#00890a; border-radius:6px; padding:4px 10px 4px 8px;
}
.mo-card-kind svg{ display:block; flex:0 0 auto; }
.mo-card-kind > span{ display:block; line-height:1; }
.mo-card-cuisine{
	display:inline-block; font-size:11px; font-weight:700; text-transform:uppercase; letter-spacing:.04em;
	color:#00890a; background:#ecfbed; border-radius:6px; padding:2px 8px;
}
.mo-card-title{ margin:12px 0 10px; font-size:18px; line-height:1.25; font-weight:700; color:#e5a900; }
/* „szem" ikon a kártya jobb felső sarkában → részletek.
   A recept „lila" árnyalatait viseli (mint a publikus heti-menü kapcsoló #7c3aed),
   hogy a recept-nézegetés vizuálisan elkülönüljön a zöld menü-vezérlőktől. */
.mo-app .mo-card-eye{
	position:absolute; top:-2px; right:-2px; width:30px; height:30px; padding:0; margin:0;
	display:flex; align-items:center; justify-content:center; cursor:pointer;
	background:none; border:1px solid #e3d6fb; border-radius:9px; color:#7c3aed;
	box-shadow:none; transition:background .15s, color .15s, border-color .15s;
}
.mo-app .mo-card-eye:hover{ background:#f4eefe; border-color:#e3d6fb; color:#7c3aed; }
.mo-card-nut{ margin-top:6px; font-size:12.5px; color:#6b6b74; display:flex; gap:12px; flex-wrap:wrap; }
.mo-nut-kcal{ font-weight:600; }

/* Fogáslista + „Fogások (N)" fejléc (menü-jelleg megerősítése) */
.mo-dishes-head{ display:flex; align-items:center; gap:6px; margin:2px 0 5px; font-size:11px; font-weight:700; text-transform:uppercase; letter-spacing:.04em; color:#9a94a6; }
.mo-dishes-count{ display:inline-flex; align-items:center; justify-content:center; min-width:18px; height:17px; padding:0 5px; border-radius:9px; background:#eef3ee; color:#5a6b5c; font-size:11px; font-weight:700; }
.mo-dishes, .mo-det-dishes{ list-style:none; margin:2px 0 12px; padding:0; }
.mo-dish{ display:flex; align-items:center; gap:8px; padding:4px 0; font-size:14px; color:#3d3946; border-bottom:1px solid #f1fbf2; }
.mo-dish:last-child{ border-bottom:none; }
.mo-dish-dot{ width:9px; height:9px; border-radius:50%; flex:0 0 9px; }
.mo-dish-name{ flex:1 1 auto; min-width:0; }
.mo-dish-head .mo-dish-name{ font-weight:700; }
.mo-dish-opt .mo-dish-name{ color:#8a8595; }
.mo-dish-optlbl{ font-size:11px; color:#a8a2b4; font-style:italic; flex:0 0 auto; }
.mo-dish-kcal{ font-size:11.5px; color:#9a94a6; flex:0 0 auto; }

/* Lábléc: badge-ek + „naptáramba teszem" gomb – margin-top:auto → MINDIG a kártya alján. */
.mo-card-foot{ margin-top:auto; }
/* Menü-szintű badge-ek (feed-kártya ÉS részletek-modal közös osztálya) */
.mo-card-badges{ display:flex; flex-wrap:wrap; gap:5px; padding-top:4px; }
/* A feed-kártya láblécében a badge-sáv alá térköz kell a gombig (a modalt ne érintse) */
.mo-card-foot .mo-card-badges{ margin-bottom:12px; }
.mo-badge{ font-size:11px; font-weight:600; border-radius:6px; padding:2px 8px; }
.mo-badge-occ{ background:#eaf3ff; color:#3b73c4; }
.mo-badge-sea{ background:#eafaf0; color:#2f9e59; }
.mo-badge-fla{ background:#fff2e8; color:#cc6a24; }
.mo-badge-etc{ background:#eef4ee; color:#6b6474; }

.mo-card-actions{ margin-top:0; }
.mo-app .mo-btn-detail{
	width:100%; background:#ecfbed; border:1.5px solid #d7f5d9; color:#007d08;
	border-radius:10px; padding:9px 12px; font-size:14px; font-weight:600; cursor:pointer;
	box-shadow:none; transition:background .15s, border-color .15s;
}
.mo-app .mo-btn-detail:hover{ background:#00890a; border-color:#00890a; color:#fff; }
/* „Naptárba teszem" – a fő művelet a naptár TERRAKOTTA PIROSÁT viseli (var(--d1-primary),
   fallback az oklch literál, mert a des1-token csak a naptár-oldalon él): FORDÍTOTT
   (outline) dizájn – piros ikon+keret, halvány piros háttér, fekete szöveg;
   hoveren kicsit sötétebb háttér. */
.mo-app .mo-btn-add{ display:flex; align-items:center; justify-content:center; gap:8px; }
.mo-app .mo-card-actions .mo-btn-add{
	margin-top:20px;
	background:#fdfaf9 !important;
	border:1.5px solid var(--d1-primary, oklch(0.58 0.16 40)) !important;
	color:#33303a !important;
}
.mo-app .mo-card-actions .mo-btn-add:hover{
	background:#f6ede9 !important;
	border-color: var(--d1-primary, oklch(0.58 0.16 40)) !important;
	color:#33303a !important;
}
.mo-app .mo-card-actions .mo-btn-add .mo-btn-add-ico{ color: var(--d1-primary, oklch(0.58 0.16 40)) !important; }
.mo-btn-add-ico{ flex:0 0 auto; }

/* „Még több" */
.mo-feed-foot{ text-align:center; margin-top:20px; }
.mo-app .mo-loadmore{
	background:#fff; border:1.5px solid #cff0d1; color:#007d08; border-radius:999px;
	padding:10px 28px; font-size:14px; font-weight:600; cursor:pointer; box-shadow:none; transition:background .15s;
}
.mo-app .mo-loadmore:hover{ background:#ecfbed; }

/* ---- Részletek modal ---- */
.mo-modal{
	position:fixed; inset:0; z-index:1200; background:rgba(30,20,50,.5);
	display:flex; align-items:flex-start; justify-content:center; padding:40px 14px; overflow:auto;
}
.mo-modal-box{
	position:relative; background:#fff; border-radius:18px; width:100%; max-width:520px;
	padding:22px 22px 20px; box-shadow:0 20px 60px rgba(0,0,0,.3);
}
.mo-modal-close{
	position:absolute; top:12px; right:16px; font-size:26px; line-height:1; color:#9a94a6;
	cursor:pointer; user-select:none;
}
.mo-modal-close:hover{ color:#54505e; }

.mo-det-head{ margin-bottom:14px; padding-right:28px; }
.mo-det-title{ margin:4px 0 8px; font-size:21px; font-weight:700; color:#273328; line-height:1.25; }
.mo-det-dishes .mo-dish{ padding:7px 0; }
.mo-det-nut{ margin-top:8px; background:#f9fdf9; border:1px solid #e8f6e9; border-radius:12px; padding:10px 14px; }
.mo-det-nut-label{ font-size:12px; font-weight:700; text-transform:uppercase; color:#8a8595; }
.mo-det-nut-tbl{ width:100%; border-collapse:collapse; margin-top:6px; }
.mo-det-nut-tbl td{ padding:3px 0; font-size:13.5px; color:#3d3946; }
.mo-det-nut-tbl td:last-child{ text-align:right; font-weight:600; }

/* ---- Naptárba-tétel modal (dózis + opcionális-kihagyás + nap/étkezés választó) ---- */
.mo-add-head{ margin:0 28px 4px 0; font-size:19px; font-weight:700; color:#273328; line-height:1.25; }
.mo-add-sub{ margin:0 0 14px; font-size:13px; color:#8a8595; }
.mo-add-menu{ margin-bottom:16px; }
/* A beágyazott naptári kártya (mo_cal_card) a modálban feszüljön ki teljes szélességre */
.mo-add-menu .mo-cal-card{ width:100%; box-sizing:border-box; }
.mo-add-picker{ margin-bottom:6px; display:flow-root; }
.mo-add-foot{ margin-top:18px; clear:both; }
.mo-app .mo-add-confirm, .mo-add-confirm{
	width:100%; background:#fdfaf9; border:1.5px solid var(--d1-primary, oklch(0.58 0.16 40)); color:#33303a;
	border-radius:11px; padding:12px 14px; font-size:15px; font-weight:700; cursor:pointer;
	box-shadow:none; transition:background .15s, border-color .15s;
	display:flex; align-items:center; justify-content:center; gap:8px;
}
.mo-app .mo-add-confirm:hover, .mo-add-confirm:hover{ background:#f6ede9; border-color:var(--d1-primary, oklch(0.58 0.16 40)); }
.mo-app .mo-add-confirm .mo-add-confirm-ico, .mo-add-confirm .mo-add-confirm-ico{ flex:0 0 auto; color:var(--d1-primary, oklch(0.58 0.16 40)); }
.mo-app .mo-add-confirm:disabled, .mo-add-confirm:disabled{ opacity:.6; cursor:default; }
.mo-add-msg{ margin-top:12px; font-size:13.5px; text-align:center; }
.mo-add-msg-err{ color:#c0393e; }
.mo-add-done{ text-align:center; padding:26px 10px; }
.mo-add-done-ico{ color:#2f9e59; margin-bottom:10px; }
.mo-add-done-txt{ font-size:15.5px; font-weight:600; color:#273328; }

/* ===================== NAPI / HETI NÉZETVÁLTÓ + HETI NÉZET ===================== */
/* Nézetváltó = a PUBLIKUS pm-mode-toggle mása (szín/forma/felirat): kör-pill keret,
   Napi = narancs (#e8890a), Heti = lila (#7c3aed); aktív = tömör, inaktív = kimenő szín. */
.mo-viewtabs{ display:inline-flex; border:1.5px solid #e2e2e8; border-radius:50px; overflow:hidden; background:#fff; padding:0; gap:0; margin:0; flex:0 0 auto; }
.mo-app .mo-viewtab{
	flex:1 1 0; margin:0; text-align:center; white-space:nowrap;
	border:none; background:#fff; font-weight:700; font-size:13.5px;
	padding:8px 20px; border-radius:0; cursor:pointer; box-shadow:none;
	-webkit-tap-highlight-color:transparent; transition:background .15s, color .15s;
}
.mo-app .mo-viewtab[data-view="daily"]{ color:#e8890a; }
.mo-app .mo-viewtab[data-view="daily"]:not(.mo-viewtab-active):hover{ background:#fdf3e8; }
.mo-app .mo-viewtab[data-view="daily"].mo-viewtab-active{ background:#e8890a; color:#fff; }
.mo-app .mo-viewtab[data-view="weekly"]{ color:#7c3aed; }
.mo-app .mo-viewtab[data-view="weekly"]:not(.mo-viewtab-active):hover{ background:#f4eefe; }
.mo-app .mo-viewtab[data-view="weekly"].mo-viewtab-active{ background:#7c3aed; color:#fff; }

/* Heti kezdő-nap navigáció (‹ tartomány • dátumugró ›) */
.mo-week-nav{ display:flex; align-items:center; justify-content:center; gap:12px; margin-bottom:16px; flex-wrap:wrap; }
/* A naptár des1 nav-nyila (.cal-nav-arrow): fehér kör, semleges szürke keret/ikon,
   finom árnyék; hoveren enyhén szürkül – nem zöld. */
.mo-app .mo-week-arrow{
	display:inline-flex; align-items:center; justify-content:center; width:40px; height:40px; flex:0 0 auto;
	padding:0; margin:0; box-sizing:border-box; line-height:normal; font-size:0;
	border:1px solid #e0e0e0; background:#fff; color:#8a8f98; border-radius:50%; cursor:pointer;
	box-shadow:0 2px 2px rgba(0,0,0,.07);
	-webkit-tap-highlight-color:transparent; transition:background .15s, color .15s, border-color .15s;
}
.mo-app .mo-week-arrow:hover{ background:#f7f7f7; border-color:#d0d0d0; color:#5a5f68; }
.mo-app .mo-week-arrow:disabled{ opacity:.4; cursor:default; }
.mo-app .mo-week-arrow:disabled:hover{ background:#fff; border-color:#e0e0e0; color:#8a8f98; }
/* Kezdő-nap ugró pill: a naptár .cal-date-pill mintája – fehér pill, #333 szöveg,
   a naptár des1 TERRAKOTTA PIROS (--d1-primary) naptár-ikon; fölé kifeszített
   ÁTLÁTSZÓ natív date-input. */
.mo-week-jump{ position:relative; display:inline-flex; align-items:center; gap:8px; border:1px solid #e0e0e0; border-radius:30px; padding:8px 16px; color:#333; cursor:pointer; background:#fff; box-sizing:border-box; box-shadow:0 2px 2px rgba(0,0,0,.07); }
.mo-week-jump:hover{ border-color:#d0d0d0; background:#f7f7f7; }
.mo-week-jump .mo-week-jump-ico{ flex:0 0 auto; width:18px; height:18px; color:var(--d1-primary, oklch(0.58 0.16 40)); }
.mo-week-range{ font-weight:600; color:#333; font-size:15px; white-space:nowrap; }
.mo-week-jump input[type=date]{
	position:absolute; left:0; top:0; width:100%; height:100%; margin:0; padding:0; border:0;
	background:transparent; opacity:0; cursor:pointer; z-index:2; -webkit-appearance:none; appearance:none;
}
.mo-week-jump input[type=date]::-webkit-calendar-picker-indicator{
	position:absolute; left:0; top:0; width:100%; height:100%; margin:0; opacity:0; cursor:pointer;
}

/* Napokra osztott heti feed (mint a napi rács, de nap-szekciókkal) */
.mo-week-days{ display:grid; grid-template-columns:repeat(auto-fill, minmax(300px, 1fr)); gap:14px; }
.mo-wday{ display:flex; flex-direction:column; border:1.5px solid #e2f2e3; border-radius:14px; background:#fff; overflow:hidden; }
.mo-wday-head{ display:flex; align-items:center; border-bottom:1px solid #e7f7e8; background:#fffbf1; }
.mo-wday-keep{ display:flex; align-items:center; gap:9px; cursor:pointer; padding:9px 12px; margin:0; flex:1 1 auto; min-width:0; }
.mo-wday-cb{ width:17px; height:17px; accent-color:#00890a; cursor:pointer; flex:0 0 auto; }
.mo-wday-name{ font-weight:700; color:#3d6940; font-size:14.5px; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.mo-wday-date{ margin-left:auto; color:#8a8595; font-size:13px; white-space:nowrap; }
/* Csere-gomb (másik menü) – a globális zöld-pirula <button> felülírva */
.mo-app .mo-wday-swap{
	display:inline-flex; align-items:center; gap:5px; flex:0 0 auto; margin:0 8px 0 0; padding:5px 10px;
	border:1.5px solid #ddf0de; background:#fff; color:#00890a; border-radius:20px; font-size:12px; font-weight:700;
	box-shadow:none; cursor:pointer; -webkit-tap-highlight-color:transparent; transition:background .15s, border-color .15s, color .15s;
}
.mo-app .mo-wday-swap:hover{ background:#00890a; border-color:#00890a; color:#fff; }
.mo-app .mo-wday-swap:disabled{ opacity:.5; cursor:default; }
.mo-app .mo-wday-swap:disabled:hover{ background:#fff; border-color:#ddf0de; color:#00890a; }
.mo-wday-swap svg{ flex:0 0 auto; }
.mo-wday-body{ padding:10px; }
.mo-wday-body .mo-cal-card{ width:100%; box-sizing:border-box; }
.mo-wday-none{ text-align:center; color:#a29db0; padding:22px 8px; font-size:13.5px; }
/* Kivett (pipa nélküli) nap: szürkítve, a menü inaktív – de a pipa kattintható marad.
   A csere-gombot is tiltjuk kivett napon (nincs értelme más menüt cserélni bele). */
.mo-wday-off{ opacity:.5; }
.mo-wday-off .mo-wday-name{ text-decoration:line-through; }
.mo-wday-off .mo-wday-body{ pointer-events:none; filter:grayscale(1); }
.mo-wday-off .mo-wday-swap{ pointer-events:none; opacity:.4; }

/* Teljes hét cseréje (a napok fölött, középen) – a globális zöld-pirula <button> felülírva */
.mo-week-tools{ text-align:center; margin-bottom:14px; }
.mo-app .mo-week-shuffle{
	display:inline-flex; align-items:center; gap:7px; margin:0; padding:8px 18px;
	border:1.5px solid #f4d3a8; background:#fdf3e8; color:#d1780a; border-radius:22px; font-size:13.5px; font-weight:700;
	box-shadow:none; cursor:pointer; -webkit-tap-highlight-color:transparent; transition:background .15s, border-color .15s, color .15s;
}
.mo-app .mo-week-shuffle:hover{ background:#fbe8cf; border-color:#efc088; color:#d1780a; }
.mo-week-shuffle svg{ flex:0 0 auto; }

/* Heti lábléc: „Egész hét a naptáramba" + üzenet/kész (a globális zöld-pilula felülírva) */
.mo-week-foot{ margin-top:18px; text-align:center; }
/* Heti felugró: kezdő nap-választó sor. */
.mo-week-startrow{ display:flex; align-items:center; justify-content:center; flex-wrap:wrap; gap:8px 12px; margin:16px 0; }
.mo-week-start-lbl{ font-size:13.5px; font-weight:600; color:#6a6478; }
.mo-app .mo-week-start-sel, .mo-week-start-sel{ font-size:14px; padding:8px 12px; border:1.5px solid #d9d4e4; border-radius:10px; background:#fff; color:#33303a; min-width:150px; cursor:pointer; }
.mo-app .mo-week-start-sel:focus, .mo-week-start-sel:focus{ outline:none; border-color:#01990e; }
/* Heti közös étkezés-választó (a felugróban, középen). Egy csoport látszik. */
.mo-week-meal{ display:flex; align-items:center; justify-content:center; flex-wrap:wrap; gap:8px 12px; margin-bottom:16px; }
.mo-week-meal-lbl{ font-size:13.5px; font-weight:600; color:#6a6478; }
.mo-week-meal-grp{ display:inline-flex; gap:6px; }
.mo-app .mo-wm-opt, .mo-wm-opt{
	background:#fff; border:1.5px solid #d9d4e4; color:#4a4658;
	border-radius:999px; padding:6px 16px; font-size:13.5px; font-weight:600; cursor:pointer;
	box-shadow:none; margin:0; transition:background .15s, border-color .15s, color .15s;
}
.mo-app .mo-wm-opt:hover, .mo-wm-opt:hover{ border-color:#bfe3c2; background:#f2fbf3; color:#007e08; }
.mo-app .mo-wm-opt.mo-wm-on, .mo-wm-opt.mo-wm-on{ background:#01990e; border-color:#01990e; color:#fff; }
.mo-app .mo-week-add, .mo-week-add{
	display:inline-flex; align-items:center; justify-content:center; gap:8px;
	min-width:260px; max-width:100%; background:#fdfaf9; border:1.5px solid var(--d1-primary, oklch(0.58 0.16 40)); color:#33303a;
	border-radius:12px; padding:12px 26px; font-size:15px; font-weight:700; cursor:pointer;
	box-shadow:none; -moz-box-shadow:none; -webkit-box-shadow:none; -webkit-tap-highlight-color:transparent; transition:background .15s, border-color .15s;
}
.mo-app .mo-week-add:hover, .mo-week-add:hover{ background:#f6ede9; border-color:var(--d1-primary, oklch(0.58 0.16 40)); }
.mo-app .mo-week-add:disabled, .mo-week-add:disabled{ opacity:.6; cursor:default; }
.mo-app .mo-week-add .mo-week-add-ico{ flex:0 0 auto; color:var(--d1-primary, oklch(0.58 0.16 40)); }
.mo-week-msg{ margin-top:12px; font-size:13.5px; text-align:center; color:#6a6478; }
.mo-week-msg-err{ color:#c0393e; }

/* ---- Mobil ---- */
@media only screen and (max-width:767px){
	.mo-feed{ grid-template-columns:1fr; }
	.mo-week-days{ grid-template-columns:1fr; }
	.mo-modal{ padding:20px 10px; }
	.mo-card-title{ font-size:17px; }
	.mo-week-range{ white-space:normal; }
	.mo-app .mo-week-add, .mo-week-add{ min-width:0; width:100%; }
	/* Szűk fejlécen a csere-gomb csak ikon (a szöveg elrejtve) */
	.mo-wday-swap-txt{ display:none; }
	.mo-app .mo-wday-swap{ padding:6px 8px; }

	/* --- Redizájn: vezérlő-sáv mobilon --- */
	/* Nézetváltó teljes szélességű szegmens (két egyenlő fél), a slotok alatta. */
	.mo-toolbar{ gap:10px; }
	.mo-viewtabs{ display:flex; width:100%; flex:1 1 100%; }
	.mo-app .mo-viewtab{ flex:1 1 0; text-align:center; }
	.mo-slots{ width:100%; }
	.mo-app .mo-slot{ flex:1 1 auto; justify-content:center; }
	/* Profil-kártya sorai balra zárva (ne szakadjon szét a hézag miatt). */
	.mo-profile-row{ justify-content:flex-start; }
	/* Az „Alapbeállítások" gomb mobilon is ikon + szöveg (a felirat ne tűnjön el). */
	.mo-app .mo-prof-reset{ padding:5px 8px; }
}
