/* Leaf Calendar — design tokens (ported from design_handoff_leaf_calendar/design/src/styles.css).
   Scoped under .leaf-calendar so other pages don't inherit these surfaces.
   The calendar component sets class="leaf-calendar" on its outer wrapper. */

.leaf-calendar {
    --bg: #f7f6f3;
    --surface: #ffffff;
    --surface-2: #faf9f6;
    --ink-1: #1b1a17;
    --ink-2: #5b5953;
    --ink-3: #8a8881;
    --ink-4: #c8c5be;
    --line: #e9e6df;
    --line-2: #efece5;

    --accent: #2f7a3a;
    --accent-soft: #e6f0e3;
    --accent-ink: #1f4e2a;
    --warn: #c67a06;

    /* status palette */
    --c-sched-bg: #e8f1e6;
    --c-sched-fg: #1f4e2a;
    --c-sched-bd: #c6dec0;

    --c-live-bg:  #e0ecff;
    --c-live-fg:  #0a3d8a;
    --c-live-bd:  #b9d1f5;

    --c-done-bg:  #ececea;
    --c-done-fg:  #4d4a45;
    --c-done-bd:  #d8d6d2;

    --c-warn-bg:  #fbeed0;
    --c-warn-fg:  #7a4a06;
    --c-warn-bd:  #efd58a;

    --c-conf-bg:  #f9dfde;
    --c-conf-fg:  #8a1b1a;
    --c-conf-bd:  #ebbab8;

    /* cancelled (7th status — extension over the handoff's 6) */
    --c-canc-bg:  #f0eeec;
    --c-canc-fg:  #807c75;
    --c-canc-bd:  #d8d4cd;

    --radius: 8px;
    --radius-sm: 5px;

    background: var(--bg);
    color: var(--ink-1);
    font: 13px/1.4 "Manrope", ui-sans-serif, system-ui, -apple-system, "Segoe UI", sans-serif;
    font-feature-settings: "ss01", "cv11";
    -webkit-font-smoothing: antialiased;
}

/* Status → pill variables (used by ShiftBar.razor.css via --pill-* vars).
   Each status sets its own bg/fg/bd triple. */
.leaf-calendar .status-scheduled { --pill-bg: var(--c-sched-bg); --pill-fg: var(--c-sched-fg); --pill-bd: var(--c-sched-bd); }
.leaf-calendar .status-live      { --pill-bg: var(--c-live-bg);  --pill-fg: var(--c-live-fg);  --pill-bd: var(--c-live-bd);  }
.leaf-calendar .status-completed { --pill-bg: var(--c-done-bg);  --pill-fg: var(--c-done-fg);  --pill-bd: var(--c-done-bd);  }
.leaf-calendar .status-exception { --pill-bg: var(--c-warn-bg);  --pill-fg: var(--c-warn-fg);  --pill-bd: var(--c-warn-bd);  }
.leaf-calendar .status-conflict  { --pill-bg: var(--c-conf-bg);  --pill-fg: var(--c-conf-fg);  --pill-bd: var(--c-conf-bd);  }
.leaf-calendar .status-cancelled { --pill-bg: var(--c-canc-bg);  --pill-fg: var(--c-canc-fg);  --pill-bd: var(--c-canc-bd);  }
.leaf-calendar .status-open      { --pill-bg: transparent;        --pill-fg: var(--ink-2);     --pill-bd: var(--ink-4);     }

@keyframes leafCalendarLivePulse {
    0%, 100% { box-shadow: 0 0 0 0 rgba(10,61,138,0); }
    50%      { box-shadow: 0 0 0 3px rgba(10,61,138,0.18); }
}

@keyframes leafCalendarConflictPulse {
    0%, 100% { box-shadow: 0 0 0 0 rgba(180,30,30,0); }
    50%      { box-shadow: 0 0 0 3px rgba(180,30,30,0.10); }
}

@keyframes leafCalendarLiveDotPulse {
    0%, 100% { opacity: 1;   box-shadow: 0 0 0 0 var(--c-live-fg); }
    50%      { opacity: 0.5; box-shadow: 0 0 0 4px transparent; }
}
