.mssl-meals {
  --ink: #3f373a;
  --muted: #776e71;
  --line: #e6dedb;
  --paper: #ffffff;
  --ivory: #fff8f1;
  --blush: #f8e9df;
  --terracotta: #b86f52;
  --terracotta-dark: #965640;
  --dusty-blue: #788e9b;
  --dusty-blue-dark: #617885;
  --lavender: #f3f1f5;
  box-sizing: border-box;
  max-width: 1160px;
  margin: 0 auto;
  padding: 28px 16px 42px;
  color: var(--ink);
  font-family: Inter, ui-sans-serif, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
}

.mssl-meals *, .mssl-meals *::before, .mssl-meals *::after { box-sizing: border-box; }
.mssl-meals-intro { max-width: 700px; margin: 0 auto 22px; text-align: center; }
.mssl-meals-eyebrow { display: inline-block; padding: 6px 11px; border: 1px solid #ead2c6; border-radius: 999px; background: #fff7f1; color: #a45f47; font-size: 10px; font-weight: 800; letter-spacing: .16em; }
.mssl-meals-intro h2 { margin: 10px 0 8px; color: #584a4f; font-size: clamp(32px, 4vw, 48px); line-height: 1.06; letter-spacing: -.035em; }
.mssl-meals-intro p { margin: 0; color: var(--muted); font-size: 15px; line-height: 1.5; }

.mssl-today-card { display: grid; grid-template-columns: 160px 1fr; overflow: hidden; margin: 0 0 14px; border: 1px solid #e4d9d4; border-radius: 20px; background: linear-gradient(120deg, var(--ivory), #f7f4f6 56%, #eef3f6); box-shadow: 0 13px 32px rgba(89, 70, 76, .12); }
.mssl-today-date { position: relative; display: flex; flex-direction: column; justify-content: center; padding: 20px; border-right: 1px solid #e6d8d0; background: linear-gradient(150deg, #fae8dd, #f7efea); }
.mssl-today-date::before { content: ""; width: 32px; height: 4px; margin-bottom: 10px; border-radius: 4px; background: linear-gradient(90deg, var(--terracotta), #daa080); }
.mssl-today-date span { color: #9a5d47; font-size: 9px; font-weight: 800; letter-spacing: .14em; text-transform: uppercase; }
.mssl-today-date strong { margin: 4px 0 0; color: #5b4743; font-size: 24px; line-height: 1.1; letter-spacing: -.02em; }
.mssl-today-date small { margin-top: 3px; color: #7a6964; font-size: 12px; }
.mssl-today-date em { align-self: flex-start; margin-top: 12px; padding: 4px 8px; border: 1px solid #e5d7d0; border-radius: 999px; background: rgba(255,255,255,.75); color: #796159; font-size: 7px; font-style: normal; font-weight: 800; letter-spacing: .09em; text-transform: uppercase; }
.mssl-today-content { display: flex; flex-direction: column; justify-content: center; padding: 16px 19px; }
.mssl-today-heading { display: flex; align-items: center; justify-content: space-between; gap: 14px; margin-bottom: 9px; }
.mssl-today-heading > div > span { display: block; margin-bottom: 3px; color: #a65f47; font-size: 8px; font-weight: 800; letter-spacing: .13em; text-transform: uppercase; }
.mssl-today-heading h3 { margin: 0; color: #54464b; font-size: 21px; line-height: 1.2; letter-spacing: -.02em; }
.mssl-today-heading i { display: grid; place-items: center; flex: 0 0 40px; height: 40px; border: 1px solid #e3dadd; border-radius: 50%; background: rgba(255,255,255,.7); color: #9c695d; font-size: 8px; font-style: normal; font-weight: 900; letter-spacing: .07em; }
.mssl-today-schedule { display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); gap: 6px; }
.mssl-today-schedule > div { min-height: 54px; padding: 8px; border: 1px solid #e6dfe0; border-radius: 9px; background: rgba(255,255,255,.75); }
.mssl-today-schedule span { display: block; margin-bottom: 3px; color: #a65e46; font-size: 7px; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }
.mssl-today-schedule p { margin: 0; color: #554d50; font-size: 9px; line-height: 1.3; }

.mssl-this-week { margin: 0 0 19px; padding: 14px; border: 1px solid #e4dfe2; border-radius: 17px; background: linear-gradient(145deg, #fff, #f8f6f8); box-shadow: 0 8px 23px rgba(75, 66, 79, .08); }
.mssl-widget-heading { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin: 0 2px 10px; }
.mssl-widget-heading span, .mssl-fixed-heading > span { display: block; color: #82676f; font-size: 8px; font-weight: 800; letter-spacing: .13em; text-transform: uppercase; }
.mssl-widget-heading h3, .mssl-fixed-heading h3 { margin: 3px 0 0; color: #51464b; font-size: 19px; line-height: 1.2; letter-spacing: -.015em; }
.mssl-widget-heading small { padding: 6px 9px; border: 1px solid #e5dfe1; border-radius: 999px; background: #fff; color: #71666a; font-size: 9px; font-weight: 700; }
.mssl-widget-heading small b { color: var(--terracotta); }
.mssl-week-strip { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 7px; }
.mssl-week-tile { position: relative; display: grid; grid-template: auto auto auto / 42px 1fr; column-gap: 8px; min-height: 96px; padding: 8px; border: 1px solid #e3dfe4; border-radius: 11px; background: var(--lavender); transition: transform .18s ease, box-shadow .18s ease; }
.mssl-week-tile:hover { transform: translateY(-2px); box-shadow: 0 8px 18px rgba(79, 70, 83, .1); }
.mssl-week-tile header { grid-row: 1 / 4; display: flex; flex-direction: column; align-items: center; justify-content: center; padding: 5px; border-radius: 8px; background: linear-gradient(150deg, #92a4af, #718795); color: #fff; }
.mssl-week-tile header span { font-size: 7px; font-weight: 800; letter-spacing: .07em; text-transform: uppercase; }
.mssl-week-tile header strong { font-size: 19px; line-height: 1; }
.mssl-week-tile h4 { align-self: end; margin: 0 0 3px; color: #51464b; font-size: 10px; line-height: 1.25; }
.mssl-week-tile > p { align-self: start; margin: 0; font-size: 7.5px; line-height: 1.25; }
.mssl-week-veggies { color: #665d61; }
.mssl-week-fruit { color: #a05f48; }
.mssl-week-tile > p b { font-weight: 800; }
.mssl-week-tile.is-today { border: 2px solid #bd7457; background: #fff2e9; }
.mssl-week-tile.is-today::after { content: "TODAY"; position: absolute; top: 5px; right: 6px; color: #9a5a42; font-size: 6px; font-weight: 900; letter-spacing: .08em; }
.mssl-week-tile.is-today header { background: linear-gradient(150deg, #ca8264, #a95f45); }
.mssl-week-tile.is-closed { background: #f8f1ee; }
.mssl-week-closed { align-self: center !important; color: #8c5e4d !important; line-height: 1.25; }

.mssl-meals-toolbar { display: grid; grid-template-columns: 118px 1fr 118px; align-items: center; margin: 23px 0 10px; }
.mssl-meals-toolbar > div { text-align: center; }
.mssl-meals-toolbar > div span { color: #a15d46; font-size: 8px; font-weight: 800; letter-spacing: .14em; text-transform: uppercase; }
.mssl-meals-toolbar h3 { margin: 2px 0 0; color: #54464b; font-size: 27px; line-height: 1.1; letter-spacing: -.025em; }
.mssl-month-button { display: inline-flex; align-items: center; justify-content: center; gap: 4px; min-height: 39px; border: 1px solid #e3dadd; border-radius: 999px; background: #fff; color: #6d5961 !important; font-size: 12px; font-weight: 700; text-decoration: none !important; }
.mssl-month-button:hover { border-color: #ca8b72; color: #a45f46 !important; }

.mssl-month-calendar { overflow-x: auto; border: 1px solid #e4dcda; border-radius: 14px; background: #fff; box-shadow: 0 9px 25px rgba(86, 69, 75, .09); }
.mssl-calendar-days, .mssl-month-grid { display: grid; grid-template-columns: repeat(5, minmax(140px, 1fr)); min-width: 700px; }
.mssl-calendar-days { background: linear-gradient(100deg, #bd785c, #9c5f4a); }
.mssl-calendar-days span { padding: 9px 5px; border-left: 1px solid rgba(255,255,255,.13); color: #fff; font-size: 8px; font-weight: 800; letter-spacing: .1em; text-align: center; text-transform: uppercase; }
.mssl-calendar-days span:first-child { border-left: 0; }
.mssl-meal-day, .mssl-empty-day { min-width: 0; min-height: 107px; border-right: 1px solid #ebe4e1; border-bottom: 1px solid #ebe4e1; background: #fff; }
.mssl-month-grid > *:nth-child(5n) { border-right: 0; }
.mssl-month-grid > *:nth-child(10n+6), .mssl-month-grid > *:nth-child(10n+7), .mssl-month-grid > *:nth-child(10n+8), .mssl-month-grid > *:nth-child(10n+9), .mssl-month-grid > *:nth-child(10n+10) { background: #fcfafb; }
.mssl-empty-day { background: linear-gradient(145deg, #faf8f7, #f4f1f2); }
.mssl-meal-day { overflow: hidden; }
.mssl-meal-day header { display: flex; align-items: center; justify-content: space-between; padding: 5px 8px; border-bottom: 1px solid #eee7e4; }
.mssl-meal-day header div { display: flex; align-items: baseline; gap: 5px; }
.mssl-meal-day header span { color: #8a7d80; font-size: 7px; font-weight: 800; letter-spacing: .07em; text-transform: uppercase; }
.mssl-meal-day header strong { color: #5c4d52; font-size: 16px; }
.mssl-meal-day header em { padding: 3px 5px; border-radius: 999px; background: var(--terracotta); color: #fff; font-size: 6px; font-style: normal; font-weight: 800; letter-spacing: .07em; text-transform: uppercase; }
.mssl-meal-day.is-today { box-shadow: inset 0 0 0 2px var(--terracotta); }
.mssl-compact-lunch { position: relative; padding: 6px 8px 7px 10px; background: linear-gradient(90deg, #f7f2f4, #fff); }
.mssl-compact-lunch::before { content: ""; position: absolute; top: 0; bottom: 0; left: 0; width: 3px; background: var(--terracotta); }
.mssl-compact-lunch h4 { margin: 0 0 4px; color: #4e4549; font-size: 10.5px; line-height: 1.2; }
.mssl-compact-lunch p { margin: 2px 0; color: #665d60; font-size: 8px; line-height: 1.25; }
.mssl-closed-state { display: flex; min-height: 77px; align-items: center; justify-content: center; flex-direction: column; padding: 9px; background: #f8f1ee; color: #8a5c4b; text-align: center; }
.mssl-closed-state span { font-size: 25px; }
.mssl-closed-state strong { font-size: 10px; }

.mssl-fixed-services { margin-top: 14px; padding: 14px; border: 1px solid #e4dfe2; border-radius: 16px; background: linear-gradient(145deg, #fff, #f8f6f8); box-shadow: 0 8px 22px rgba(75, 66, 79, .07); }
.mssl-fixed-heading { margin: 0 2px 9px; }
.mssl-fixed-heading > span { color: #a65e45; }
.mssl-fixed-grid { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 7px; }
.mssl-fixed-day { padding: 8px; border: 1px solid #e6e1e7; border-radius: 9px; background: var(--lavender); }
.mssl-fixed-day h4 { margin: 0 0 5px; color: #584b51; font-size: 10.5px; }
.mssl-fixed-day > div { padding: 4px 0; border-top: 1px solid #e2dde3; }
.mssl-fixed-day > div:first-of-type { border-top: 0; }
.mssl-fixed-day span { display: block; color: #9c614e; font-size: 6.5px; font-weight: 800; letter-spacing: .07em; text-transform: uppercase; }
.mssl-fixed-day p { margin: 2px 0 0; color: #595155; font-size: 8.5px; line-height: 1.23; }

.mssl-menu-note { display: flex; align-items: flex-start; gap: 9px; margin-top: 14px; padding: 11px 13px; border: 1px solid #eee2d9; border-radius: 11px; background: var(--ivory); }
.mssl-menu-note span { display: grid; place-items: center; flex: 0 0 20px; height: 20px; border-radius: 50%; background: var(--terracotta); color: #fff; font-family: Georgia, serif; font-weight: 800; }
.mssl-menu-note p { margin: 1px 0 0; color: #746a6c; font-size: 11px; line-height: 1.4; }
.mssl-menu-actions { display: flex; justify-content: center; flex-wrap: wrap; gap: 9px; margin-top: 13px; }
.mssl-print-menu, .mssl-download-pdf { display: inline-flex; align-items: center; justify-content: center; margin: 0; padding: 10px 17px; border: 0; border-radius: 999px; background: var(--dusty-blue); color: #fff !important; font-size: 12px; font-weight: 700; line-height: 1.2; text-decoration: none !important; box-shadow: 0 6px 16px rgba(91, 111, 122, .16); cursor: pointer; }
.mssl-print-menu:hover, .mssl-download-pdf:hover { background: var(--dusty-blue-dark); }

@media (max-width: 980px) {
  .mssl-today-schedule { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .mssl-week-strip, .mssl-fixed-grid { grid-template-columns: repeat(5, minmax(145px, 1fr)); overflow-x: auto; padding-bottom: 4px; }
}

@media (max-width: 700px) {
  .mssl-meals { padding: 22px 10px 35px; }
  .mssl-today-card { grid-template-columns: 1fr; }
  .mssl-today-date { border-right: 0; border-bottom: 1px solid #e6d8d0; }
  .mssl-today-date em { position: absolute; right: 18px; bottom: 18px; }
  .mssl-today-schedule { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .mssl-week-strip { grid-template-columns: repeat(5, minmax(160px, 1fr)); }
  .mssl-widget-heading { align-items: flex-end; }
  .mssl-meals-toolbar { grid-template-columns: 43px 1fr 43px; }
  .mssl-month-button { min-height: 38px; }
  .mssl-month-button span { display: none; }
  .mssl-meals-toolbar h3 { font-size: 23px; }
}

@media print {
  @page { size: letter landscape; margin: .25in; }
  .mssl-meals { max-width: none; padding: 0; }
  .mssl-meals-intro p, .mssl-today-card, .mssl-this-week, .mssl-month-button, .mssl-fixed-services, .mssl-menu-actions { display: none !important; }
  .mssl-meals-toolbar { grid-template-columns: 1fr; margin: 4px 0 8px; }
  .mssl-month-calendar { overflow: visible; border-radius: 0; box-shadow: none; }
  .mssl-calendar-days, .mssl-month-grid { min-width: 0; grid-template-columns: repeat(5, 1fr); }
  .mssl-meal-day, .mssl-empty-day { min-height: 0; }
  .mssl-menu-note { margin-top: 6px; padding: 6px; }
}
