/* A production's Schedule (features/curbstomp-schedule.js, features/calendar.js): the side menu (Show slots / deadlines / task
   deadlines, task types), the slot pop-up and drawer (task-type pill, date pills, any colour), deadlines drawn as an outline. */
.slot-any { position: relative; width: 24px; height: 24px; border-radius: 50%; cursor: pointer; overflow: hidden;
  background: conic-gradient(#ff3b30, #ff9500, #ffcc00, #34c759, #30b0c7, #0a84ff, #af52de, #ff2d55, #ff3b30); }
.slot-any[aria-checked="true"] { background: var(--sw); box-shadow: 0 0 0 2px light-dark(#fff, var(--card)), 0 0 0 4px var(--sw); }
.slot-any input { position: absolute; inset: 0; opacity: 0; cursor: pointer; width: 100%; height: 100%; }
.slot-tt-field { position: relative; }
.slot-tt { display: inline-flex; align-items: center; gap: 8px; height: 34px; padding: 0 10px 0 12px; border: 1px solid var(--border-strong, #d2d2d7); border-radius: 999px; background: var(--card); font: inherit; font-size: 13.5px; color: var(--text, #1d1d1f); cursor: pointer; justify-self: start; transition: border-color .15s; }
.slot-tt:hover { border-color: light-dark(#a1a1a6, #6b6b71); }
.slot-tt.none { color: var(--text-3, #86868b); }
.slot-tt svg { width: 14px; height: 14px; color: var(--text-2); }
.slot-tt-dot { width: 10px; height: 10px; border-radius: 50%; flex: none; }
.sched-layout { display: grid; grid-template-columns: 190px minmax(0, 1fr); gap: 20px; align-items: start; }
.sched-side { padding-top: 4px; }
@media (max-width: 900px) { .sched-layout { grid-template-columns: 1fr; } }
.cal-weeks .cal-pill.kind-deadline { background: var(--card); color: var(--cal-deadline, #d1242f); box-shadow: inset 0 0 0 2px var(--cal-deadline, #d1242f); }
.cal-weeks .cal-pill.kind-deadline.tinted { background: var(--card); color: var(--ev-dark); box-shadow: inset 0 0 0 2px var(--ev); }
.cal-weeks .cal-pill.kind-deadline svg, .cal-weeks .cal-pill.kind-deadline .sub { color: inherit; opacity: .8; }
.slot-dates { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }
.slot-arrow { color: var(--text-3, #86868b); }
.slot-drawer .slot-form .actions { display: flex; justify-content: space-between; align-items: center; margin-top: 6px; }
.slot-drawer .slot-sub { display: flex; align-items: center; justify-content: space-between; margin-top: 8px; padding-top: 16px; border-top: 1px solid var(--border, #ececee); }

/* Export PDF preview (features/schedule-deck.js): the drawn 16:9 pages, stacked, in the invoice's wide pop-up */
.modal.sched-pdf-modal { width: min(1000px, 100%); }
.sched-pdf-stage { display: flex; flex-direction: column; align-items: center; gap: 18px; }
.sched-pdf-page { display: block; width: 100%; max-width: 920px; height: auto; border-radius: 4px; box-shadow: 0 2px 14px rgba(0, 0, 0, .14); background: #000; }
.sched-pdf-wait { padding: 60px 0; }

/* the Schedule's one control row: view switch · the view's own controls · Export PDF (features/calendar.js) */
.sched-head { margin-bottom: 0; }
.sched-head > .toolbar { flex: 1 1 auto; min-width: 0; margin: 0; }
.sched-head .cal-title { font-size: 18px; }
/* Weekends: a small switch instead of a checkbox */
.cal-switch { display: inline-flex; align-items: center; gap: 8px; height: 28px; padding: 0 11px 0 5px; border: 1px solid var(--border-strong, #e5e5ea); border-radius: 999px;
  background: var(--subtle, #f5f5f7); font-size: 12px; font-weight: 500; color: var(--text-2, #86868b); cursor: pointer; transition: background .15s, color .15s; }
.cal-switch:hover { color: var(--text, #1d1d1f); }
.cal-switch .knob { position: relative; width: 26px; height: 16px; border-radius: 999px; background: light-dark(#d1d1d6, #414146); transition: background .18s; flex: none; }
.cal-switch .knob::after { content: ''; position: absolute; top: 2px; left: 2px; width: 12px; height: 12px; border-radius: 50%; background: var(--card); box-shadow: 0 1px 2px rgba(0, 0, 0, .25); transition: transform .18s; }
.cal-switch[aria-pressed="true"] { background: var(--card); color: var(--text, #1d1d1f); }
.cal-switch[aria-pressed="true"] .knob { background: var(--blue, #0071e3); }
.cal-switch[aria-pressed="true"] .knob::after { transform: translateX(10px); }
@media (prefers-reduced-motion: reduce) { .cal-switch .knob, .cal-switch .knob::after { transition: none; } }

/* the title row: "<Production> Schedule" + the Schedule's controls on one line (curbstomp-schedule.js page) */
.prod-head.sched-page-head { padding-bottom: 18px; flex-wrap: wrap; row-gap: 12px; }
.sched-page-head h1 { white-space: nowrap; }
.sched-page-tools { flex: 1 1 640px; min-width: 0; }
.sched-page-tools .sched-head { width: 100%; }

/* the production's start and end days (its Settings) on the month grid: an outline + a small tag (features/calendar.js) */
.cal-day.prod-start { outline: 2px solid #16a34a; outline-offset: -2px; }
.cal-day.prod-end { outline: 2px solid #e5484d; outline-offset: -2px; }
.prod-edge-tag { margin-left: 6px; font-size: 10px; font-weight: 600; text-transform: uppercase; letter-spacing: .04em; padding: 2px 6px; border-radius: 4px; }
.cal-day.prod-start .prod-edge-tag { color: light-dark(#15803d, #99eeb9); background: rgba(22, 163, 74, .12); }
.cal-day.prod-end .prod-edge-tag { color: light-dark(#c62a2f, #dd6165); background: rgba(229, 72, 77, .12); }
