/* RiffCalendar widget styles (module M7). Uses site.css tokens; pair with assets/js/riff-calendar/calendar.js. */
:root { --block: #8A96A6; --block-ink: #0F1B2D; }
.fc { --fc-border-color: var(--line-ink); --fc-page-bg-color: var(--ink-2);
  --fc-neutral-bg-color: var(--ink-3); --fc-today-bg-color: rgba(224, 174, 78, 0.07);
  --fc-now-indicator-color: var(--ember); --fc-highlight-color: rgba(138, 150, 166, 0.35);
  --fc-non-business-color: rgba(5, 11, 20, 0.55);
  --fc-button-bg-color: transparent; --fc-button-border-color: rgba(233, 238, 243, 0.35);
  --fc-button-text-color: var(--chalk); --fc-button-hover-bg-color: var(--ink-3);
  --fc-button-hover-border-color: var(--chalk); --fc-button-active-bg-color: var(--brass);
  --fc-button-active-border-color: var(--brass);
  font-family: var(--font-body); color: var(--chalk); }
.fc .fc-toolbar-title { font-family: var(--font-display); font-weight: 600; font-size: var(--t-md); letter-spacing: -0.01em; }
.fc .fc-button { border-radius: var(--r-pill); font-weight: 600; font-size: var(--t-sm); padding: .45rem .9rem; box-shadow: none !important; text-transform: none; }
.fc .fc-button-primary:not(:disabled).fc-button-active { color: var(--brass-ink); }
.fc .fc-button-group > .fc-button { border-radius: 0; }
.fc .fc-button-group > .fc-button:first-child { border-radius: var(--r-pill) 0 0 var(--r-pill); }
.fc .fc-button-group > .fc-button:last-child { border-radius: 0 var(--r-pill) var(--r-pill) 0; }
.fc .fc-col-header-cell-cushion { color: var(--chalk-2); font-size: var(--t-xs); font-weight: 600; text-decoration: none; padding: 6px 2px; }
.fc .fc-day-today .fc-col-header-cell-cushion { color: var(--brass); }
.fc .fc-timegrid-slot-label-cushion { color: var(--chalk-2); font-size: .72rem; }
.fc .fc-timegrid-slot { height: 2.4rem; }
.fc .fc-timegrid-slot-minor { border-top-style: dotted; }
.fc-theme-standard .fc-scrollgrid { border-radius: 10px; overflow: hidden; }
.fc .fc-event { border-radius: var(--r-tag); border-width: 0; padding: 2px 4px; cursor: pointer; }
.fc .fc-event-title { font-weight: 600; }
.fc .fc-event-time { font-size: .7rem; opacity: .85; }
.fc .ev-job { background: var(--brass); color: var(--brass-ink); }
.fc .ev-job .fc-event-main { color: var(--brass-ink); }
.fc .ev-block { background: repeating-linear-gradient(135deg, var(--block) 0 8px, #7E8A9A 8px 16px); }
.fc .ev-block .fc-event-main { color: var(--block-ink); }
.fc .ev-open { background: #1F424F /* verdigris 22% over ink-2 */; border: 1px dashed var(--verdigris) !important; }
.fc .ev-open .fc-event-main { color: var(--chalk); }
.fc .ev-pending { opacity: .55; }
.fc .fc-highlight { border-radius: var(--r-tag); }
.fc .fc-non-business { background: repeating-linear-gradient(135deg, rgba(3, 7, 14, 0.78) 0 10px, rgba(3, 7, 14, 0.66) 10px 20px); }
/* Pretend jobs never look like receipts: brass fill is for a receipt-backed booking only (live-step-layout.md 7). */
.fc .ev-example { background: transparent !important; border: 1.5px dashed rgba(184, 196, 209, .55) !important; opacity: 1; }
.fc .ev-example .fc-event-main, .fc .ev-example .fc-event-main * { color: var(--chalk-2, #B8C4D1) !important; }
.fc .ev-example .fc-event-title::before { content: "EXAMPLE · "; font-size: .62rem; letter-spacing: .08em; font-weight: 700; }
.fc .ev-offer { background: transparent; border: 2px solid var(--brass) !important; animation: riffcal-pulse 1.4s ease-in-out infinite; }
.fc .ev-offer .fc-event-main { color: var(--brass-2); }
.fc .ev-landed { box-shadow: 0 0 0 3px rgba(224, 174, 78, 0.45); animation: riffcal-land .6s cubic-bezier(0.2, 0.7, 0.2, 1); }
@keyframes riffcal-pulse { 0%, 100% { opacity: 1; } 50% { opacity: .55; } }
@keyframes riffcal-land { 0% { transform: scale(.85); opacity: 0; } 100% { transform: scale(1); opacity: 1; } }
@media (prefers-reduced-motion: reduce) { .fc .ev-offer, .fc .ev-landed { animation: none; } }
@media (min-width: 1024px) { .fc .fc-timegrid-slot { height: 2.1rem; } }
@media (min-width: 1400px) { .fc .fc-timegrid-slot { height: 2.4rem; } }
@media (max-width: 720px) {
  .fc .fc-toolbar { flex-wrap: wrap; gap: 8px; }
  .fc .fc-toolbar-chunk:nth-child(2) { order: -1; width: 100%; }
  .fc .fc-toolbar-title { font-size: var(--t-base); }
  .fc .fc-button { padding: .5rem .8rem; }
  .fc .fc-timegrid-slot { height: 2.8rem; } /* bigger rows for thumbs */
}
/* Build page placement */
.riffcal-live { margin-top: 18px; background: var(--ink-2); border: 1px solid var(--line-ink); border-radius: var(--r-card); padding: 12px; color: var(--chalk); }
.riffcal-live__title { font-family: var(--font-display); font-size: var(--t-md); margin: 0 0 4px; color: var(--chalk); }
.riffcal-live__note { color: var(--chalk-2); font-size: var(--t-sm); margin: 0 0 10px; }
/* Open time as background shading (setOpen) */
.fc .fc-bg-event.ev-open-bg { background: rgba(63, 167, 150, 0.2); opacity: 1; border-left: 3px solid var(--verdigris); }
.fc .ev-offer { z-index: 2; }
/* RiffHours (riff-hours.js): the hours question, reusable on any page */
.riff-hours { margin: 14px 0; padding: 12px; border: 1px solid var(--line-ink); border-radius: var(--r-card); background: var(--ink-2); color: var(--chalk); }
.riff-hours__title { font-family: var(--font-display); font-size: var(--t-md); margin: 0 0 4px; color: var(--chalk); }
.riff-hours__note, .riff-hours__status { color: var(--chalk-2); font-size: var(--t-sm); margin: 0 0 10px; }
.riff-hours__chips { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 10px; }
.riff-hours .chip { background: transparent; color: var(--chalk); border: 1.5px solid rgba(233, 238, 243, 0.35); border-radius: var(--r-pill); min-height: 44px; padding: 0 14px; font-weight: 600; font-size: var(--t-sm); cursor: pointer; }
.riff-hours .chip[aria-pressed="true"] { background: var(--brass); color: var(--brass-ink); border-color: var(--brass); }
.riff-hours__custom { display: grid; gap: 10px; margin-bottom: 10px; }
.riff-hours__days { display: flex; flex-wrap: wrap; gap: 6px 14px; font-size: var(--t-sm); }
.riff-hours__times select { font: inherit; font-size: 16px; color: var(--chalk); background: var(--ink); border: 1px solid var(--line-ink); border-radius: 8px; padding: 6px; }
.riff-hours__custom[hidden] { display: none; }
.riff-hours[aria-busy="true"] .chip, .riff-hours[aria-busy="true"] .btn { opacity: .55; pointer-events: none; }
