.quick-access { display: flex; flex-wrap: wrap; gap: 8px; margin: 0 0 16px; }
.quick-access button, .menu-shortcut { display: inline-flex; align-items: center; justify-content: center; gap: 8px; }
.quick-access svg, .menu-shortcut svg { width: 17px; height: 17px; flex-shrink: 0; }
.quick-access button { background: #fff; }
.view-switch { display: inline-flex; gap: 4px; border: 1px solid var(--line); padding: 4px; border-radius: 12px; max-width: 100%; flex-wrap: wrap; }
.view-switch button { border-color: transparent; background: transparent; }
.view-switch button[aria-pressed=true] { background: var(--accent); color: #fff; }
.calendar-view-bar { display: flex; align-items: center; gap: 16px; flex-wrap: wrap; padding-block: 12px; }
.calendar-view-bar label { margin: 0; flex: 1 1 180px; max-width: 280px; }
.calendar-view-bar > button { margin-left: auto; }
.calendar-view-bar { border-bottom: 0; border-radius: 14px 14px 0 0; margin-bottom: 0; }
.calendar-view-bar + section.panel { border-top: 0; border-radius: 0 0 14px 14px; padding-top: 6px; }
.calendar-options { margin-left: auto; min-width: 0; max-width: 100%; }
.calendar-options summary { cursor: pointer; min-height: 36px; padding: 8px; color: var(--accent); }
.calendar-options > div { display: flex; gap: 12px; flex-wrap: wrap; align-items: end; padding-top: 8px; }
.calendar-options label { max-width: none; }
.consultation-toolbar h2 { margin: 0; }
.consultation-toolbar .section-head p { margin: 8px 0 0; }
.consultation-filters { display: grid; grid-template-columns: repeat(auto-fit,minmax(min(190px,100%),1fr)); gap: 14px; align-items: end; }
.consultation-filters label { margin: 0; min-width: 0; }
.consultation-filters input, .consultation-filters select { width: 100%; min-width: 0; }
.period-actions { display: flex; gap: 6px; flex-wrap: wrap; align-items: center; }
.meal-grid { display: grid; grid-template-columns: repeat(auto-fit,minmax(min(270px,100%),1fr)); gap: 14px; align-items: start; margin-bottom: 16px; }
.meal-grid.meal-single { grid-template-columns: minmax(0,1fr); }
.meal-day { min-width: 0; border: 1px solid var(--line); background: white; border-radius: 14px; padding: 16px; }
.meal-day.is-today { border-color: #b67b9a; }
.meal-day > h2 { font-size: .9375rem; display: flex; gap: 8px; flex-wrap: wrap; margin: 0 0 14px; padding-bottom: 12px; border-bottom: 1px solid var(--line); }
.meal-day > h2 small { color: var(--muted); font-weight: 400; font-size: .75rem; }
.meal-card h3 { font-size: .875rem; margin: 0 0 8px; }
.meal-card + .meal-card { border-top: 1px solid var(--line); padding-top: 14px; margin-top: 14px; }
.meal-dishes { white-space: pre-wrap; overflow-wrap: anywhere; font-size: .8125rem; line-height: 1.6; margin: 0 0 12px; }
.meal-record + .meal-record { margin-top: 12px; }
.meal-source { font-size: .75rem; color: var(--accent); }
.meal-single .meal-card { max-width: 760px; }
.meal-single .meal-dishes { font-size: .9375rem; }
.menu-shortcut { margin-top: 12px; color: var(--accent); }
.family-month { display: grid; grid-template-columns: repeat(7,minmax(0,1fr)); gap: 5px; }
.family-month .weekday { text-align: center; color: var(--muted); font-size: .75rem; padding: 6px 0; }
.month-day { display: flex; flex-direction: column; align-items: stretch; text-align: left; justify-content: flex-start; min-width: 0; min-height: 95px; padding: 7px; border-radius: 8px; gap: 5px; overflow: hidden; }
.month-day.today { border-color: var(--accent); }
.month-day[aria-pressed=true] { background: #fbf2f7; box-shadow: inset 0 0 0 1px var(--accent); }
.month-markers { display: flex; flex-direction: column; gap: 3px; min-width: 0; }
.month-markers .calendar-category { font-size: .625rem; overflow: hidden; white-space: nowrap; text-overflow: ellipsis; max-width: 100%; }
.month-menu { color: var(--accent); font-size: .625rem; }
.calendar-day-detail { scroll-margin-top: 76px; }
.calendar-day-detail:focus { outline: 2px solid var(--accent); outline-offset: 3px; }
.payment-metrics { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 12px; margin-bottom: 16px; }
.payment-metrics .card { min-width: 0; }
.payment-metrics .metric { font-size: clamp(1rem,2vw,1.5rem); overflow-wrap: anywhere; }
.series-preview { background: #fbf2f7; border: 1px solid #ead8e3; padding: 12px; border-radius: 10px; line-height: 1.6; font-weight: 600; }
.child-consultation-links { display: flex; flex-wrap: wrap; gap: 8px; border-top: 1px solid var(--line); margin-top: 12px; padding-top: 12px; }
.consultation-manage > summary { cursor: pointer; font-size: .875rem; font-weight: 600; color: var(--accent); padding-block: 6px; }
.consultation-manage:not([open]) { padding-block: 6px; }
.consultation-manage[open] > p { margin-top: 10px; }
@media (min-width: 901px) {
 .quick-access { margin-bottom: 10px; gap: 6px; }
 .view-switch { padding: 3px; gap: 3px; border-radius: 9px; }
 .consultation-toolbar .section-head p { margin-top: 4px; font-size: .75rem; }
 .consultation-filters { gap: 10px; }
 .calendar-view-bar { gap: 10px; padding-block: 8px; }
 .calendar-options summary { min-height: 30px; padding-block: 5px; }
 .consultation-filters { gap: 8px; }
 .meal-grid { grid-template-columns: repeat(auto-fit,minmax(min(200px,100%),1fr)); gap: 10px; margin-bottom: 10px; }
 .meal-day { padding: 10px; border-radius: 10px; }
 .meal-day > h2 { margin-bottom: 8px; padding-bottom: 7px; font-size: .8125rem; }
 .meal-dishes, .meal-single .meal-dishes { font-size: .8125rem; line-height: 1.45; }
 .meal-card + .meal-card { padding-top: 10px; margin-top: 10px; }
 .month-day { min-height: 64px; }
 .payment-metrics { gap: 8px; margin-bottom: 10px; }
 .payment-metrics .metric { font-size: 1.125rem; }
}
@container family (min-width: 980px) {
 .family-week { grid-template-columns: repeat(7,minmax(0,1fr)); gap: 8px; }
 .week-day { padding: 8px; }
 .week-day > h3 { font-size: .8125rem; }
 .week-entry .row button.title { font-size: .75rem; }
}
@media (min-width: 901px) and (max-height: 700px) {
 .month-day { min-height: 54px; gap: 3px; padding: 5px; }
}
@media (min-width: 901px) and (pointer: coarse) {
 .calendar-options summary { min-height: 44px; }
 .month-day { min-height: 76px; }
}
@media (max-width: 900px) { .rail .local-nav button { flex-shrink: 0; } }
@media (max-width: 640px) {
 .quick-access { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 6px; }
 .quick-access button { padding-inline: 7px; }
 .calendar-view-bar { gap: 12px; }
 .calendar-view-bar > button { margin-left: 0; }
 .calendar-view-bar label { max-width: none; }
 .calendar-options { margin-left: 0; }
 .calendar-options summary { min-height: 44px; }
 .consultation-filters { grid-template-columns: minmax(0,1fr); }
 .consultation-toolbar .section-head > div:first-child > p { display: none; }
 .period-actions button { flex: 1; }
 .section-head > .period-actions { width: 100%; flex: 1 0 100%; }
 .meal-grid { grid-template-columns: minmax(0,1fr); }
 .family-month { gap: 3px; }
 .month-day { min-height: 62px; padding: 5px; }
 .month-markers { flex-direction: row; flex-wrap: wrap; }
 .month-markers .calendar-category { display: block; width: 6px; height: 6px; padding: 0; border: 0; border-radius: 50%; background: currentColor; font-size: 0; }
 .month-menu { font-size: .5625rem; }
 .payment-metrics { grid-template-columns: repeat(2,minmax(0,1fr)); gap: 8px; }
 .child-consultation-links button { flex: 1; }
}
@media (min-width: 381px) and (max-width: 640px) {
 .consultation-toolbar:has(#menu-date) .consultation-filters { grid-template-columns: repeat(2,minmax(0,1fr)); }
 .consultation-toolbar:has(#menu-date) .period-actions { grid-column: 1 / -1; }
 .consultation-toolbar:has(#calendar-date) .consultation-filters { grid-template-columns: repeat(2,minmax(0,1fr)); }
 .consultation-toolbar:has(#calendar-date) .consultation-filters > label:first-child { grid-column: 1 / -1; }
}
