.ds-calendar[data-v-b3a6f1c6]{display:grid;gap:var(--space-md);padding:var(--space-md);border:1px solid var(--color-border);border-radius:var(--radius-lg);background:var(--color-surface)}.ds-calendar__header[data-v-b3a6f1c6]{display:grid}.ds-calendar__today[data-v-b3a6f1c6]{display:flex;justify-content:center}.ds-calendar__nav[data-v-b3a6f1c6]{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:var(--space-sm)}.ds-calendar__nav-btn[data-v-b3a6f1c6]:first-child{justify-self:start}.ds-calendar__nav-btn[data-v-b3a6f1c6]:last-child{justify-self:end}.ds-calendar__nav-btn[data-v-b3a6f1c6]{display:grid;place-items:center;width:2rem;height:2rem;padding:0;border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface);color:var(--color-text);cursor:pointer}.ds-calendar__nav-btn[data-v-b3a6f1c6]:hover{background:var(--color-border-subtle)}.ds-calendar__nav-btn[data-v-b3a6f1c6]:focus-visible{outline:none;box-shadow:var(--focus-ring)}.ds-calendar__title[data-v-b3a6f1c6]{margin:0;min-width:10rem;text-align:center;font-size:var(--text-md);font-weight:600;color:var(--color-text)}.ds-calendar__weekdays[data-v-b3a6f1c6]{display:grid;grid-template-columns:repeat(7,1fr);gap:var(--space-xs)}.ds-calendar__weekday[data-v-b3a6f1c6]{text-align:center;font-size:var(--text-xs);font-weight:600;color:var(--color-muted);padding:var(--space-xs) 0}.ds-calendar__grid[data-v-b3a6f1c6]{display:grid;grid-template-columns:repeat(7,1fr);gap:var(--space-xs)}.ds-calendar__day[data-v-b3a6f1c6]{display:grid;grid-template-rows:auto 1fr;gap:var(--space-xs);min-height:5.5rem;padding:var(--space-xs);border:1px solid transparent;border-radius:var(--radius-md);background:transparent;text-align:left;cursor:pointer;transition:background-color var(--transition-fast),border-color var(--transition-fast)}.ds-calendar__day[data-v-b3a6f1c6]:hover{background:var(--color-border-subtle)}.ds-calendar__day[data-v-b3a6f1c6]:focus-visible{outline:none;box-shadow:var(--focus-ring)}.ds-calendar__day--outside[data-v-b3a6f1c6]{opacity:.4}.ds-calendar__day--today .ds-calendar__day-num[data-v-b3a6f1c6]{display:inline-grid;place-items:center;width:1.5rem;height:1.5rem;border-radius:var(--radius-sm);background:var(--color-primary);color:var(--color-on-primary);font-weight:600}.ds-calendar__day--today-highlight[data-v-b3a6f1c6]{animation:ds-calendar-today-highlight-b3a6f1c6 1.2s ease-in-out 2;outline:2px solid var(--color-primary);outline-offset:2px}.ds-calendar__day-num[data-v-b3a6f1c6]{font-size:var(--text-sm);font-weight:500;color:var(--color-text);line-height:1.5rem}.ds-calendar__events[data-v-b3a6f1c6]{display:grid;gap:2px;align-content:start;min-width:0}.ds-calendar__event[data-v-b3a6f1c6]{padding:1px var(--space-xs);border:none;border-radius:var(--radius-sm);font-size:.65rem;font-weight:500;line-height:1.3;text-align:left;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;cursor:pointer}.ds-calendar__event[data-v-b3a6f1c6]:focus-visible{outline:none;box-shadow:var(--focus-ring)}.ds-calendar__event--default[data-v-b3a6f1c6]{background:var(--color-border-subtle);color:var(--color-text)}.ds-calendar__event--primary[data-v-b3a6f1c6]{background:var(--color-primary-subtle);color:var(--color-primary)}.ds-calendar__event--success[data-v-b3a6f1c6]{background:var(--color-success-subtle);color:var(--color-success)}.ds-calendar__event--warning[data-v-b3a6f1c6]{background:var(--color-warning-subtle);color:var(--color-warning)}.ds-calendar__event--danger[data-v-b3a6f1c6]{background:var(--color-danger-subtle);color:var(--color-danger)}.ds-calendar__event--info[data-v-b3a6f1c6]{background:var(--color-info-subtle);color:var(--color-info)}.ds-calendar__event--active[data-v-b3a6f1c6]{position:relative;z-index:2;outline:2px solid var(--color-primary);outline-offset:1px;font-weight:600}.ds-calendar__event--hovered[data-v-b3a6f1c6]{position:relative;z-index:2;outline:2px dashed var(--color-primary);outline-offset:1px;font-weight:600}.ds-calendar__overflow[data-v-b3a6f1c6]{font-size:.65rem;color:var(--color-muted);padding:0 var(--space-xs)}@media(prefers-reduced-motion:reduce){.ds-calendar__day--today-highlight[data-v-b3a6f1c6]{animation:none}}@keyframes ds-calendar-today-highlight-b3a6f1c6{0%,to{box-shadow:0 0 0 0 transparent}50%{box-shadow:0 0 0 6px color-mix(in srgb,var(--color-primary) 30%,transparent)}}
