.msp { box-sizing: border-box; }
.msp *, .msp *::before, .msp *::after { box-sizing: inherit; }
.msp .msp-controls { display: flex; flex-wrap: wrap; gap: .75rem; align-items: center; margin: 1rem 0; }
.msp .msp-controls a, .msp button { padding: .5rem .75rem; }
.msp .msp-table-scroll { overflow-x: auto; }
.msp table { width: 100%; border-collapse: collapse; }
.msp th, .msp td { border: 1px solid #777; padding: .4rem; vertical-align: top; text-align: left; }
.msp .msp-notice { border-left: 4px solid #a33; padding: .6rem; background: #fff2eb; color: #601c13; }
.msp ul { list-style: none; padding: 0; margin: 0 0 .75rem; }
.msp .msp-item { display: flex; gap: .5rem; line-height: 1.3; break-inside: avoid; padding: .15rem 0; }
.msp .msp-item input { flex: 0 0 auto; width: 1em; height: 1em; margin: .15em 0 0; appearance: auto; }
.msp .msp-item label { font-weight: normal; margin: 0; }
.msp .msp-recipe { display: block; color: #555; font-size: .9em; }
.msp .msp-ingredients { columns: 2; column-gap: 2rem; }
.msp .msp-category { break-inside: avoid; break-after: avoid; }
.msp .msp-category h2 { font-size: 1.15em; margin: .8rem 0 .25rem; }
.msp .msp-gap { height: .65rem; }
.msp .msp-recipes section { margin-bottom: 1rem; }
.msp .msp-recipes h2 { font-size: 1.15em; margin: .5rem 0 .25rem; break-after: avoid; }
body.msp-print { font: 12px Arial, sans-serif; margin: 0; padding: 5mm; color: #111; background: #fff; }
.msp-print .msp > h1, .msp-print .msp > h2, .msp-print .msp > p { text-align: center; }
.msp-print .msp > h1 { font-size: 18px; margin: 6px 0; }
.msp-print .msp > h2 { font-size: 14px; margin: 2px 0 10px; }
@media (max-width: 600px) {
    .msp .msp-ingredients { columns: 1; }
}
@media print {
    body.msp-print { padding: 0; }
    .msp .msp-controls { display: none !important; }
    .msp .msp-table-scroll { overflow: visible; }
    .msp table { font-size: 10px; }
    .msp thead { display: table-header-group; }
    .msp tr, .msp .msp-notice { break-inside: avoid; }
    .msp .msp-ingredients { columns: 2; }
    .msp-print .msp { zoom: .94; }
}
