.work-page { max-width: 1120px; margin: 0 auto; padding: 30px 18px 82px; }
.work-page h1, .work-modal h2 { margin: 0; color: var(--charcoal); font-family: Marcellus, serif; font-weight: 400; }
.work-page h1 { font-size: 1.9rem; }
.work-sub { margin: 3px 0 16px; color: var(--muted); }
.work-toolbar { display: flex; gap: 10px; align-items: center; flex-wrap: wrap; margin: 16px 0; }
.work-toolbar .spacer { flex: 1; }
.work-btn, .work-select { min-height: 38px; padding: 8px 11px; border: 1px solid var(--line); border-radius: 7px; background: #fff; color: var(--charcoal); font: inherit; text-decoration: none; }
.work-btn { font-weight: 700; cursor: pointer; }
.work-btn:hover { background: var(--cream); }
.work-btn.primary { border-color: var(--terracotta); background: var(--terracotta); color: #fff; }
.work-btn.compact { align-self: end; min-height: 34px; padding: 6px 9px; }
.work-btn:disabled { opacity: .6; cursor: wait; }
.work-state { color: var(--muted); font-size: .78rem; }
.work-state.error { color: var(--rust); font-weight: 700; }
.work-notice { margin: 14px 0; padding: 10px 12px; border: 1px solid var(--line); border-left: 4px solid var(--mustard); border-radius: 7px; background: var(--cream); color: var(--muted); font-size: .86rem; }
.work-list { border-top: 1px solid var(--line); }
.work-row { display: grid; grid-template-columns: auto minmax(0, 1fr) auto; gap: 12px; align-items: start; padding: 13px 8px; border-bottom: 1px solid var(--line); cursor: pointer; }
.work-row:hover, .work-row:focus { outline: 0; background: var(--cream); }
.work-row h2 { margin: 0; font-size: 1rem; font-weight: 700; }
.work-meta { margin-top: 3px; color: var(--muted); font-size: .8rem; }
.work-badges { display: flex; gap: 5px; justify-content: flex-end; flex-wrap: wrap; }
.work-status, .work-kind { padding: 3px 7px; border: 1px solid var(--line); border-radius: 12px; font-size: .67rem; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; white-space: nowrap; }
.work-status.doing, .work-status.ready_to_schedule, .work-status.scheduled, .work-status.approved, .work-status.published { border-color: var(--green); color: var(--green); }
.work-status.needs_review, .work-status.blocked, .work-status.failed { border-color: var(--amber); color: var(--amber); }
.work-status.cancelled, .work-status.paused, .work-status.done { color: var(--muted); }
.work-empty { padding: 32px 10px; color: var(--muted); text-align: center; }
.work-week-nav { display: flex; gap: 7px; align-items: center; flex-wrap: wrap; }
.work-week-label { min-width: 118px; color: var(--muted); font-size: .8rem; font-weight: 700; text-align: center; }
.work-capacity { flex: 1 0 100%; color: var(--muted); font-size: .8rem; }

.work-modal-backdrop { position: fixed; inset: 0; z-index: 120; display: flex; justify-content: center; align-items: flex-end; background: rgba(43, 39, 36, .45); }
.work-modal { width: 100%; max-width: 900px; max-height: 94vh; overflow: auto; padding: 20px; border-radius: 14px 14px 0 0; background: #fff; }
.work-modal-head { display: flex; gap: 12px; justify-content: space-between; align-items: start; }
.work-close { border: 0; background: none; font-size: 1.55rem; cursor: pointer; }
.work-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0 12px; }
.work-effort-note, .editor-capacity { grid-column: 1 / -1; margin: 2px 0 8px; }
.work-field { display: block; min-width: 0; margin: 10px 0; }
.work-label { display: block; margin-bottom: 4px; color: var(--muted); font-size: .72rem; font-weight: 700; letter-spacing: .07em; text-transform: uppercase; }
.work-field input, .work-field textarea, .work-field select { box-sizing: border-box; width: 100%; min-height: 38px; padding: 9px; border: 1px solid var(--line); border-radius: 7px; background: #fff; font: inherit; }
.work-field textarea { min-height: 82px; resize: vertical; }
.work-section { margin-top: 18px; padding-top: 15px; border-top: 1px solid var(--line); }
.work-disclosure > summary { color: var(--charcoal); font-family: Marcellus, serif; font-size: 1.08rem; cursor: pointer; }
.work-disclosure[open] > summary { margin-bottom: 8px; }
.work-section h3 { margin: 16px 0 5px; color: var(--charcoal); font-family: Marcellus, serif; font-weight: 400; }
.work-section > h3:first-child { margin-top: 0; }
.work-section p { margin: 4px 0; color: var(--muted); font-size: .84rem; }
.work-checks { display: flex; gap: 8px 18px; flex-wrap: wrap; margin: 8px 0; }
.work-checks label { min-height: 34px; cursor: pointer; }
.work-repeat-row, .work-publication { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0 10px; margin: 9px 0; padding: 10px; border: 1px solid var(--line); border-radius: 8px; background: var(--cream); }
.work-repeat-row > .work-field:only-child { grid-column: 1 / -1; }
.work-slide { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) 80px auto; gap: 8px; align-items: end; margin: 8px 0; padding: 10px; border: 1px solid var(--line); border-radius: 8px; background: var(--cream); }
.work-approved { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 8px 12px; align-items: center; margin: 12px 0; padding: 12px; border: 1px solid var(--line); border-left: 4px solid var(--green); border-radius: 8px; }
.work-approved > b { grid-column: 1 / -1; }
.work-approved-copy { white-space: pre-wrap; }
.work-foot { position: sticky; bottom: -20px; display: flex; gap: 10px; justify-content: flex-end; align-items: center; margin: 18px -20px -20px; padding: 14px 20px; border-top: 1px solid var(--line); background: #fff; }

.calendar-grid { display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); overflow: hidden; border: 1px solid var(--line); border-radius: 8px; }
.cal-day { min-width: 0; min-height: 146px; padding: 7px; border-left: 1px solid var(--line); }
.cal-day:first-child { border-left: 0; }
.cal-date { margin-bottom: 6px; color: var(--muted); font-size: .73rem; font-weight: 700; }
.cal-event { display: block; width: 100%; margin: 5px 0; padding: 5px; overflow: hidden; border: 0; border-left: 3px solid var(--terracotta); background: var(--cream); color: var(--charcoal); font: inherit; font-size: .74rem; line-height: 1.25; text-align: left; text-overflow: ellipsis; cursor: pointer; }
.cal-event > span { display: block; overflow: hidden; text-overflow: ellipsis; }
.cal-event.shoot { border-color: var(--sage); }
.cal-event.milestone { border-color: var(--mustard); }
.cal-event small { display: block; margin-top: 2px; overflow: hidden; color: var(--muted); text-overflow: ellipsis; white-space: nowrap; }
.cal-more { margin-top: 5px; padding: 2px 0; border: 0; background: transparent; color: var(--muted); font: inherit; font-size: .75rem; font-weight: 700; cursor: pointer; }
.agenda { display: none; }
.sync-card { margin: 14px 0; padding: 12px; border: 1px solid var(--line); border-radius: 8px; background: #fff; font-size: .86rem; }
.sync-card b { display: block; margin-bottom: 3px; }
.sync-card button { margin-top: 9px; }
.calendar-actions { display: flex; gap: 5px; flex-wrap: wrap; margin: 5px 0 9px; }
.calendar-actions .work-btn { min-height: 29px; padding: 4px 7px; font-size: .7rem; }
.calendar-sync-message { width: 100%; color: var(--muted); font-size: .72rem; }
.calendar-sync-message.error { color: var(--rust); font-weight: 700; }
.calendar-conflict { margin: 8px 0; padding: 9px; border: 1px solid var(--amber); border-left-width: 4px; border-radius: 7px; background: var(--cream); font-size: .76rem; }
.calendar-conflict p { margin: 4px 0; }
.calendar-manual-work { margin-top: 16px; padding: 12px; border: 1px solid var(--line); border-radius: 8px; background: #fff; }
.calendar-manual-work summary { cursor: pointer; font-family: Marcellus, serif; font-size: 1.05rem; }
.calendar-manual-item { margin-top: 10px; padding-top: 10px; border-top: 1px solid var(--line); }
.calendar-manual-item b, .calendar-manual-item > span { display: block; }

@media (min-width: 720px) {
  .work-modal-backdrop { align-items: center; padding: 20px; }
  .work-modal { border-radius: 12px; }
}

@media (max-width: 720px) {
  .work-page { padding: 22px 14px 72px; }
  .work-grid, .work-repeat-row, .work-publication, .work-slide, .work-approved { grid-template-columns: 1fr; }
  .work-approved > b { grid-column: auto; }
  .calendar-grid { display: none; }
  .agenda { display: block; }
  .agenda-day { padding: 12px 0; border-top: 1px solid var(--line); }
  .agenda-day:first-child { border-top: 0; }
  .work-toolbar .spacer { display: none; }
  .work-toolbar { align-items: stretch; }
  .work-toolbar > .work-btn, .work-toolbar > a.work-btn { flex: 1; text-align: center; }
  .work-week-nav { flex: 1 0 100%; }
  .work-week-nav .work-btn { flex: 1; padding-inline: 7px; font-size: .8rem; }
  .work-week-label { flex: 1 0 100%; }
  .work-row { grid-template-columns: minmax(0, 1fr) auto; }
  .work-row .work-kind { display: none; }
  .work-badges { max-width: 115px; }
}
