.ops-month { margin-top: 1rem; min-width: 0; }
.ops-month-toolbar { display: flex; align-items: center; justify-content: space-between; gap: 1rem; flex-wrap: wrap; margin-bottom: .8rem; }
.ops-month-toolbar h2 { margin: 0; font-size: 1.2rem; }
.ops-month-toolbar p { margin: .25rem 0 0; color: var(--muted, #586879); }
.ops-month-controls { display: flex; align-items: center; gap: .4rem; flex-wrap: wrap; }
.ops-month-controls button, .ops-month-links button { min-height: 44px; border: 1px solid #aebbc9; background: #fff; border-radius: .55rem; padding: .45rem .65rem; color: inherit; cursor: pointer; }
.ops-month-controls label { display: flex; align-items: center; gap: .35rem; font-size: .85rem; }
.ops-month-controls input, .ops-month-controls select { min-height: 44px; max-width: 13rem; padding: .4rem; border: 1px solid #aebbc9; border-radius: .5rem; background: #fff; color: inherit; }
.ops-month-calendar { display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); gap: 1px; background: #cad4de; border: 1px solid #cad4de; border-radius: .7rem; overflow: hidden; }
.ops-month-calendar > strong { background: #edf2f6; padding: .5rem; text-align: center; font-size: .8rem; }
.ops-month-day { background: #fff; min-height: 5.7rem; padding: .38rem; position: relative; min-width: 0; }
.ops-month-day.is-outside { background: #f3f5f7; color: #647587; }
.ops-month-day.is-today { box-shadow: inset 0 0 0 2px #246d9e; }
.ops-month-day time { font-weight: 700; font-size: .85rem; }
.ops-month-day-count { float: right; font-size: .72rem; padding: .12rem .38rem; background: #e1edf5; border-radius: 1rem; }
.ops-month-day-items { display: grid; gap: .2rem; margin-top: .35rem; }
.ops-month-day-items button { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; text-align: left; border: 0; border-radius: .3rem; background: #d7eafa; padding: .2rem .3rem; color: #174b72; cursor: pointer; }
.ops-month-day-items small { font-size: .68rem; }
.ops-month-list { display: grid; gap: .5rem; margin-top: .85rem; }
.ops-month-package { display: flex; align-items: center; justify-content: space-between; gap: .7rem; border: 1px solid #d2dce6; border-radius: .65rem; padding: .65rem .8rem; background: #fff; }
.ops-month-package > div:first-child { min-width: 0; display: grid; gap: .16rem; }
.ops-month-package span, .ops-month-package small { overflow-wrap: anywhere; }
.ops-month-package small { color: var(--muted, #586879); }
.ops-month-links { display: flex; gap: .35rem; flex-wrap: wrap; }
.ops-month-missing { margin-top: .9rem; border: 1px solid #c9d5df; border-radius: .7rem; background: #f7fafc; padding: .2rem .75rem .7rem; }
.ops-month-missing summary { min-height: 44px; display: list-item; align-content: center; cursor: pointer; font-weight: 700; }
.ops-month-missing > p { margin: .2rem 0 .6rem; color: var(--muted, #586879); font-size: .85rem; }
.ops-month-missing > div { display: grid; gap: .45rem; }
.ops-month-missing-row { display: flex; align-items: center; justify-content: space-between; gap: .65rem; border: 1px solid #d2dce6; border-radius: .55rem; background: #fff; padding: .55rem .65rem; }
.ops-month-missing-row > div:first-child { min-width: 0; display: grid; gap: .12rem; overflow-wrap: anywhere; }
.ops-month-missing-row small { color: var(--muted, #586879); }
.ops-month-missing-row button { min-height: 44px; border: 1px solid #aebbc9; background: #fff; border-radius: .55rem; padding: .45rem .65rem; color: inherit; cursor: pointer; }
@media (max-width: 640px) {
  .ops-month-toolbar, .ops-month-controls { align-items: stretch; }
  .ops-month-controls { width: 100%; }
  .ops-month-controls label { width: 100%; justify-content: space-between; }
  .ops-month-controls input, .ops-month-controls select { flex: 1; min-width: 0; max-width: none; }
  .ops-month-day { min-height: 3.2rem; padding: .22rem; }
  .ops-month-day-items button, .ops-month-day-items small { display: none; }
  .ops-month-calendar > strong { padding: .35rem .1rem; }
  .ops-month-day-count { float: none; display: block; width: fit-content; margin-top: .2rem; }
  .ops-month-package { display: grid; }
  .ops-month-links button { flex: 1; }
  .ops-month-missing-row { display: grid; }
  .ops-month-missing-row .ops-month-links { display: grid; grid-template-columns: repeat(auto-fit, minmax(8rem, 1fr)); }
}
