.meal-wrapper {
font-family: var(--meal-font);
font-size: var(--meal-font-size);
color: var(--meal-text);
background: var(--meal-bg);
line-height: 1.6;
} .meal-header {
background: var(--meal-header-bg);
color: var(--meal-header-text);
padding: 0 24px;
display: flex;
align-items: center;
justify-content: space-between;
height: 52px;
border-bottom: 3px solid var(--meal-primary);
}
.meal-logo {
font-size: 1.15rem;
text-transform: uppercase;
letter-spacing: .12em;
color: var(--meal-header-accent);
}
.meal-nav { display: flex; gap: 16px; }
.meal-nav-link {
color: var(--meal-header-text);
text-decoration: none;
font-size: .88rem;
letter-spacing: .06em;
text-transform: uppercase;
opacity: .85;
transition: opacity .15s;
}
.meal-nav-link:hover { opacity: 1; color: var(--meal-header-accent); } .meal-container {
max-width: 960px;
margin: 0 auto;
padding: 28px 20px;
} .meal-title {
font-size: 1.4rem;
text-transform: uppercase;
letter-spacing: .1em;
color: var(--meal-heading);
border-bottom: 2px solid var(--meal-primary);
padding-bottom: 8px;
margin-bottom: 24px;
} .meal-tabs {
display: flex;
border-bottom: 2px solid var(--meal-primary);
}
.meal-tab {
display: inline-block;
padding: 7px 20px;
font-size: .82rem;
text-transform: uppercase;
letter-spacing: .08em;
text-decoration: none;
color: var(--meal-muted);
border: 1px solid var(--meal-border);
border-bottom: none;
background: var(--meal-bg-alt);
cursor: pointer;
transition: background .12s, color .12s;
margin-right: 2px;
position: relative;
bottom: -2px;
}
.meal-tab:hover { background: var(--meal-primary-pale); color: var(--meal-primary); }
.meal-tab--active {
background: var(--meal-bg-card);
color: var(--meal-primary);
font-weight: bold;
border-color: var(--meal-primary);
padding-bottom: 9px;
} .meal-nav-month {
display: flex;
align-items: center;
gap: 16px;
margin: 20px 0;
}
.meal-nav-month a {
font-size: .88rem;
text-decoration: none;
color: var(--meal-primary);
}
.meal-nav-month a.meal-disabled { color: var(--meal-disabled); pointer-events: none; }
.meal-nav-month h2 {
flex: 1;
text-align: center;
font-size: 1.1rem;
text-transform: uppercase;
letter-spacing: .1em;
color: var(--meal-heading);
} .meal-cal-scroll {
overflow-x: auto;
-webkit-overflow-scrolling: touch;
}
.meal-cal-grid {
display: grid;
grid-template-columns: repeat(7, 1fr);
gap: var(--meal-grid-gap);
background: var(--meal-border);
border: 2px solid var(--meal-grid-border);
min-width: 560px;
}
.meal-cal-head {
background: var(--meal-header-bg);
color: var(--meal-header-text);
text-align: center;
padding: 6px 4px;
font-size: .78rem;
text-transform: uppercase;
letter-spacing: .08em;
}
.meal-cal-cell {
background: var(--meal-cell-empty);
min-height: 72px;
padding: 6px 8px;
transition: background .12s;
}
.meal-cal-cell.weekend { background: var(--meal-cell-weekend); }
.meal-cal-cell.vacation { background: var(--meal-cell-vacation); }
.meal-cal-cell.holiday { background: var(--meal-cell-holiday); }
.meal-cal-cell.has-menu { background: var(--meal-cell-has-menu); }
.meal-cal-cell.today { outline: 2px solid var(--meal-primary); outline-offset: -2px; }
.meal-cal-cell.empty { background: var(--meal-cell-filler); }
.meal-cal-day { font-size: 1.15rem; font-weight: bold; color: var(--meal-text); }
.meal-cal-cell.has-menu .meal-cal-day { color: var(--meal-success); }
.meal-cal-link {
font-size: .72rem;
color: var(--meal-primary);
text-transform: uppercase;
letter-spacing: .05em;
margin-top: 4px;
display: inline-block;
text-decoration: none;
}
.meal-cal-link:hover { color: var(--meal-primary-light); text-decoration: underline; }
.meal-holiday-label { font-size: .72rem; color: var(--meal-muted); margin-top: 4px; }
@media (max-width: 600px) {
.meal-cal-grid { min-width: 0; }
.meal-cal-cell { min-height: 48px; padding: 4px 5px; }
.meal-cal-cell.has-menu { position: relative; cursor: pointer; }
.meal-cal-link {
position: absolute; inset: 0;
font-size: 0;
display: block;
margin: 0;
}
.meal-cal-link::after {
content: '';
position: absolute; inset: 0;
}
.meal-cal-day { font-size: 1rem; }
.meal-holiday-label { font-size: .65rem; }
} .meal-legend {
display: flex;
gap: 20px;
margin-top: 14px;
flex-wrap: wrap;
}
.meal-legend-item {
display: flex;
align-items: center;
gap: 7px;
font-size: .8rem;
color: var(--meal-muted);
}
.meal-legend-dot {
width: 14px;
height: 14px;
border: 1px solid var(--meal-border);
}
.meal-legend-dot.has-menu  { background: var(--meal-cell-has-menu); }
.meal-legend-dot.no-menu   { background: var(--meal-cell-empty); }
.meal-legend-dot.holiday   { background: var(--meal-cell-holiday); }
.meal-legend-dot.vacation  { background: var(--meal-cell-vacation); } .meal-footer {
text-align: center;
padding: 16px;
font-size: .8rem;
color: var(--meal-muted);
}
.meal-footer a { color: var(--meal-primary); } .meal-back-link {
font-size: .88rem;
color: var(--meal-primary);
text-decoration: none;
}
.meal-back-link:hover { color: var(--meal-primary-light); } .meal-notice {
padding: 10px 16px;
margin-bottom: 16px;
border-left: 4px solid var(--meal-error);
background: var(--meal-error-bg);
color: var(--meal-error);
font-size: .9rem;
} .meal-download-btn {
display: inline-block;
padding: 4px 12px;
font-family: inherit;
font-size: .8rem;
letter-spacing: .06em;
text-transform: uppercase;
text-decoration: none;
cursor: pointer;
border: 2px solid var(--meal-primary);
border-radius: var(--meal-radius);
color: var(--meal-primary);
background: transparent;
transition: background .15s, color .15s;
}
.meal-download-btn:hover { background: var(--meal-primary); color: #fff; } .meal-block { margin-bottom: 28px; }
.meal-block-title {
background: var(--meal-header-bg);
color: var(--meal-block-title-text);
padding: 7px 14px;
font-size: .82rem;
text-transform: uppercase;
letter-spacing: .1em;
margin-bottom: 1px;
}
.meal-table {
width: 100%;
border-collapse: collapse;
font-size: .85rem;
}
.meal-table th {
background: var(--meal-bg-panel);
color: var(--meal-muted);
padding: 5px 3px;
text-align: center;
font-size: .6rem;
text-transform: uppercase;
letter-spacing: .06em;
border: 1px solid var(--meal-border);
}
.meal-table td {
padding: 6px 10px;
border: 1px solid var(--meal-border);
}
.meal-table .section-row td {
background: var(--meal-bg-panel);
font-size: .78rem;
text-transform: uppercase;
letter-spacing: .08em;
color: var(--meal-muted);
}
.meal-table .num {
text-align: right;
font-variant-numeric: tabular-nums;
} .meal-date { font-size: .9rem; color: var(--meal-muted); margin-bottom: 16px; } @media (max-width: 600px) {
.meal-modal-body {
padding: 12px;
}
.meal-modal-body .meal-table {
display: block;
overflow-x: auto;
-webkit-overflow-scrolling: touch;
white-space: nowrap;
}
.meal-modal-body .meal-table th,
.meal-modal-body .meal-table td {
white-space: nowrap;
}
} .meal-modal-overlay {
position: fixed;
inset: 0;
background: rgba(0,0,0,.45);
z-index: 10000;
display: flex;
align-items: center;
justify-content: center;
}
.meal-modal-dialog {
background: var(--meal-modal-bg, #fff);
border-top: 3px solid var(--meal-primary);
width: 95%;
max-width: 800px;
max-height: 85vh;
display: flex;
flex-direction: column;
box-shadow: 0 8px 30px rgba(0,0,0,.25);
}
.meal-modal-header {
display: flex;
justify-content: space-between;
align-items: center;
padding: 14px 20px;
border-bottom: 1px solid var(--meal-border);
}
.meal-modal-title {
font-size: 1rem;
text-transform: uppercase;
letter-spacing: .08em;
color: var(--meal-heading);
}
.meal-modal-close {
background: none;
border: none;
font-size: 1.4rem;
cursor: pointer;
color: var(--meal-muted);
line-height: 1;
}
.meal-modal-close:hover { color: var(--meal-text); }
.meal-modal-body {
padding: 20px;
overflow-y: auto;
flex: 1;
}
.meal-modal-body .meal-wrapper {
background: transparent;
}
.meal-modal-loader {
text-align: center;
padding: 40px 0;
color: var(--meal-muted);
}@font-face {
font-family: 'Source Serif 4';
font-style: normal;
font-weight: 400;
font-display: swap;
src: url(//ivyshka.spb.ru/wp-content/plugins/meal-menu/assets/fonts/SourceSerif4-Regular.ttf) format('truetype');
}
@font-face {
font-family: 'Source Serif 4';
font-style: normal;
font-weight: 700;
font-display: swap;
src: url(//ivyshka.spb.ru/wp-content/plugins/meal-menu/assets/fonts/SourceSerif4-Bold.ttf) format('truetype');
} .meal-wrapper { } .palette-retro {
--meal-primary: #c8580a;
--meal-primary-light: #e8720f;
--meal-primary-pale: #f5d5b0;
--meal-bg: #fdf4e3;
--meal-bg-alt: #f5e6c8;
--meal-bg-card: #ffffff;
--meal-bg-panel: #f5e6c8;
--meal-text: #2d1800;
--meal-heading: #1a1100;
--meal-muted: #7a5c3a;
--meal-border: #c8a070;
--meal-success: #4a7a2a;
--meal-error: #a02020;
--meal-disabled: #aaaaaa;
--meal-header-bg: #1a1100;
--meal-header-text: #fdf4e3;
--meal-header-accent: #e8720f;
--meal-block-title-text: #f5d5b0;
--meal-grid-border: #1a1100;
--meal-cell-empty: #ffffff;
--meal-cell-weekend: #f5f0ea;
--meal-cell-vacation: #dde8f5;
--meal-cell-holiday: #fce4d6;
--meal-cell-has-menu: #dff0d8;
--meal-cell-filler: #fdf4e3;
--meal-error-bg: #fdf0f0;
--meal-modal-bg: #ffffff;
} .palette-futuristic {
--meal-primary: #00d4ff;
--meal-primary-light: #66e5ff;
--meal-primary-pale: #003344;
--meal-bg: #0a0a1a;
--meal-bg-alt: #111128;
--meal-bg-card: #1a1a35;
--meal-bg-panel: #222244;
--meal-text: #e0e0ff;
--meal-heading: #ffffff;
--meal-muted: #8888aa;
--meal-border: #333366;
--meal-success: #00ff88;
--meal-error: #ff4466;
--meal-disabled: #444466;
--meal-header-bg: #000011;
--meal-header-text: #e0e0ff;
--meal-header-accent: #00d4ff;
--meal-block-title-text: #88ddff;
--meal-grid-border: #333366;
--meal-cell-empty: #1a1a35;
--meal-cell-weekend: #111128;
--meal-cell-vacation: #1a2a55;
--meal-cell-holiday: #3a1a2a;
--meal-cell-has-menu: #003d2a;
--meal-cell-filler: #0a0a1a;
--meal-error-bg: #220022;
--meal-modal-bg: #1a1a35;
} .palette-minimal {
--meal-primary: #333333;
--meal-primary-light: #666666;
--meal-primary-pale: #eeeeee;
--meal-bg: #ffffff;
--meal-bg-alt: #f8f8f8;
--meal-bg-card: #ffffff;
--meal-bg-panel: #f0f0f0;
--meal-text: #222222;
--meal-heading: #111111;
--meal-muted: #888888;
--meal-border: #dddddd;
--meal-success: #2a7a4a;
--meal-error: #cc3333;
--meal-disabled: #cccccc;
--meal-header-bg: #222222;
--meal-header-text: #ffffff;
--meal-header-accent: #ffffff;
--meal-block-title-text: #dddddd;
--meal-grid-border: #cccccc;
--meal-cell-empty: #ffffff;
--meal-cell-weekend: #f2f2f2;
--meal-cell-vacation: #e8ecf5;
--meal-cell-holiday: #fce8e8;
--meal-cell-has-menu: #dff0df;
--meal-cell-filler: #f8f8f8;
--meal-error-bg: #fdf0f0;
--meal-modal-bg: #ffffff;
} .palette-nature {
--meal-primary: #4a7a2a;
--meal-primary-light: #6a9a3a;
--meal-primary-pale: #d4e8c0;
--meal-bg: #f5f8f0;
--meal-bg-alt: #eef4e8;
--meal-bg-card: #ffffff;
--meal-bg-panel: #e0ecd4;
--meal-text: #2a3a1a;
--meal-heading: #1a2a0a;
--meal-muted: #6a7a5a;
--meal-border: #b0c8a0;
--meal-success: #2a7a4a;
--meal-error: #8a3a2a;
--meal-disabled: #b0b8a8;
--meal-header-bg: #2a3a1a;
--meal-header-text: #f0f8ea;
--meal-header-accent: #8aba5a;
--meal-block-title-text: #c8d8b8;
--meal-grid-border: #6a8a4a;
--meal-cell-empty: #ffffff;
--meal-cell-weekend: #eef4e8;
--meal-cell-vacation: #e4eaf5;
--meal-cell-holiday: #f8e8e0;
--meal-cell-has-menu: #c8e8b8;
--meal-cell-filler: #f5f8f0;
--meal-error-bg: #f8f0ee;
--meal-modal-bg: #ffffff;
} .palette-school {
--meal-primary: #1a56db;
--meal-primary-light: #3a76fb;
--meal-primary-pale: #d0ddf5;
--meal-bg: #f4f6fa;
--meal-bg-alt: #e8ecf5;
--meal-bg-card: #ffffff;
--meal-bg-panel: #dce4f0;
--meal-text: #1a2030;
--meal-heading: #0a1020;
--meal-muted: #5a6a80;
--meal-border: #b0c0d8;
--meal-success: #1a7a3a;
--meal-error: #cc3344;
--meal-disabled: #aab0c0;
--meal-header-bg: #0a1a3a;
--meal-header-text: #e8ecf8;
--meal-header-accent: #8ab0f8;
--meal-block-title-text: #c0d0e8;
--meal-grid-border: #2a4a7a;
--meal-cell-empty: #ffffff;
--meal-cell-weekend: #eef0f5;
--meal-cell-vacation: #dce6f5;
--meal-cell-holiday: #fce8e0;
--meal-cell-has-menu: #d8f0d8;
--meal-cell-filler: #f4f6fa;
--meal-error-bg: #fcf0f1;
--meal-modal-bg: #ffffff;
} .palette-warm {
--meal-primary: #8a2020;
--meal-primary-light: #b04040;
--meal-primary-pale: #f0d8d8;
--meal-bg: #faf3ea;
--meal-bg-alt: #f5ece0;
--meal-bg-card: #ffffff;
--meal-bg-panel: #ede0d0;
--meal-text: #2a1a10;
--meal-heading: #1a0a00;
--meal-muted: #7a6a5a;
--meal-border: #d0b8a0;
--meal-success: #5a7a2a;
--meal-error: #aa2020;
--meal-disabled: #b8aaa0;
--meal-header-bg: #2a0a00;
--meal-header-text: #f5e8d8;
--meal-header-accent: #d4a050;
--meal-block-title-text: #e8d0c0;
--meal-grid-border: #6a4030;
--meal-cell-empty: #ffffff;
--meal-cell-weekend: #f0e8e0;
--meal-cell-vacation: #e8e0f0;
--meal-cell-holiday: #f8d8d0;
--meal-cell-has-menu: #d8ecd0;
--meal-cell-filler: #faf3ea;
--meal-error-bg: #faf0ee;
--meal-modal-bg: #ffffff;
} .palette-ocean {
--meal-primary: #0a7a7a;
--meal-primary-light: #2a9a9a;
--meal-primary-pale: #c8ecec;
--meal-bg: #f0f8f5;
--meal-bg-alt: #e4f0ec;
--meal-bg-card: #ffffff;
--meal-bg-panel: #d0e8e0;
--meal-text: #1a2a28;
--meal-heading: #0a1a18;
--meal-muted: #5a7a72;
--meal-border: #a0c8b8;
--meal-success: #2a7a5a;
--meal-error: #cc4455;
--meal-disabled: #a8b8b0;
--meal-header-bg: #0a2a28;
--meal-header-text: #e0f4ee;
--meal-header-accent: #5ab8a8;
--meal-block-title-text: #b8d8d0;
--meal-grid-border: #2a6a5a;
--meal-cell-empty: #ffffff;
--meal-cell-weekend: #eaf0ec;
--meal-cell-vacation: #dde8f0;
--meal-cell-holiday: #f8e8e0;
--meal-cell-has-menu: #cce8d8;
--meal-cell-filler: #f0f8f5;
--meal-error-bg: #fcf0f1;
--meal-modal-bg: #ffffff;
}  .layout-classic {
--meal-font: 'Source Serif 4', Georgia, serif;
--meal-font-size: 15px;
--meal-radius: 2px;
--meal-grid-gap: 1px;
} .layout-modern {
--meal-font: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen, Ubuntu, sans-serif;
--meal-font-size: 14px;
--meal-radius: 8px;
--meal-grid-gap: 4px;
}
.layout-modern .meal-cal-grid { border-radius: var(--meal-radius); overflow: hidden; }
.layout-modern .meal-cal-cell { border-radius: 4px; min-height: 80px; }
.layout-modern .meal-block-title { border-radius: var(--meal-radius) var(--meal-radius) 0 0; }
.layout-modern .meal-table { border-collapse: separate; border-spacing: 1px; } .layout-air {
--meal-font: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen, Ubuntu, sans-serif;
--meal-font-size: 14px;
--meal-radius: 0;
--meal-grid-gap: 4px;
}
.layout-air .meal-cal-grid { border: none; background: transparent; }
.layout-air .meal-cal-head { background: transparent; color: var(--meal-muted); font-weight: bold; padding-bottom: 10px; }
.layout-air .meal-cal-cell { border: none; min-height: 60px; padding: 4px; }
.layout-air .meal-cal-cell.today { outline-color: var(--meal-primary); }
.layout-air .meal-cal-day { font-size: .95rem; }
.layout-air .meal-table { border-collapse: separate; border-spacing: 0 4px; }
.layout-air .meal-table th { border: none; background: transparent; padding: 4px 2px; }
.layout-air .meal-table td { border: none; border-bottom: 1px solid var(--meal-border); padding: 6px 2px; }
.layout-air .meal-block-title { border-bottom: 2px solid var(--meal-primary); background: transparent; color: var(--meal-heading); padding-left: 0; }
.layout-air .meal-header { box-shadow: 0 1px 3px rgba(0,0,0,.1); }
.layout-air .meal-container { padding: 40px 20px; }