.month-calendar[data-v-22e5bd48]{display:flex;flex-direction:column;gap:var(--spacing-md)}.month-calendar__head[data-v-22e5bd48]{display:flex;align-items:center;justify-content:space-between;gap:var(--spacing-md);flex-wrap:wrap}.month-calendar__title[data-v-22e5bd48]{font-family:var(--font-heading);font-size:var(--font-size-lg);font-weight:var(--font-weight-semibold);color:var(--ink)}.month-calendar__nav[data-v-22e5bd48]{display:flex;align-items:center;gap:var(--spacing-xs)}.month-calendar__grid[data-v-22e5bd48],.month-calendar__weekdays[data-v-22e5bd48]{display:grid;grid-template-columns:repeat(7,minmax(0,1fr))}.month-calendar__grid[data-v-22e5bd48]{grid-auto-rows:minmax(var(--month-calendar-day-min-height,84px),auto)}.month-calendar__weekdays[data-v-22e5bd48]{gap:1px}.month-calendar__weekday[data-v-22e5bd48]{padding:var(--spacing-xs) 0;text-align:center;font-size:var(--font-size-xs);font-weight:var(--font-weight-semibold);color:var(--ink-3)}.month-calendar__grid[data-v-22e5bd48]{gap:1px;background:var(--line);border:1px solid var(--line);border-radius:var(--radius-md);overflow:hidden}.month-calendar__day[data-v-22e5bd48]{display:flex;flex-direction:column;gap:var(--spacing-2xs);min-width:0;padding:var(--spacing-xs);background:var(--surface);cursor:pointer;transition:background var(--duration-base) var(--ease-out-strong)}.month-calendar__day[data-v-22e5bd48]:hover{background:var(--hover)}.month-calendar__day[data-v-22e5bd48]:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}.month-calendar__day--outside[data-v-22e5bd48]{background:var(--inset)}.month-calendar__day--outside .month-calendar__number[data-v-22e5bd48]{color:var(--ink-3)}.month-calendar__day--today .month-calendar__number[data-v-22e5bd48]{background:var(--accent-fill);color:var(--surface);border-radius:var(--radius-full)}.month-calendar__day--selected[data-v-22e5bd48]{background:var(--accent-tint)}.month-calendar__number[data-v-22e5bd48]{align-self:flex-end;min-width:20px;height:20px;display:inline-flex;align-items:center;justify-content:center;font-size:var(--font-size-xs);font-weight:var(--font-weight-medium);color:var(--ink-2)}.month-calendar__events[data-v-22e5bd48]{display:flex;flex-direction:column;gap:2px;min-width:0;overflow:hidden}.month-calendar__more[data-v-22e5bd48]{align-self:flex-start;min-width:20px;padding:0 var(--spacing-2xs);border-radius:var(--radius-full);background:var(--inset);color:var(--ink-2);font-size:var(--font-size-xs);font-weight:var(--font-weight-semibold);line-height:16px;text-align:center;cursor:pointer}.month-calendar__more[data-v-22e5bd48]:hover{background:var(--accent-tint);color:var(--accent-ink)}.month-calendar__more[data-v-22e5bd48]:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}.month-calendar__event[data-v-22e5bd48]{display:flex;align-items:center;gap:var(--spacing-2xs);padding:1px var(--spacing-2xs);border-radius:var(--radius-sm);color:var(--surface);font-size:var(--font-size-xs);line-height:var(--line-height-tight);cursor:pointer;min-width:0}.month-calendar__event[data-v-22e5bd48]:hover{filter:brightness(1.1)}.month-calendar__event--done[data-v-22e5bd48],.month-calendar__more--done[data-v-22e5bd48]{background:var(--inset)!important;color:var(--ink-3);box-shadow:inset 0 0 0 1px var(--line);text-decoration:line-through}.month-calendar__event-dot[data-v-22e5bd48]{flex:0 0 auto;width:6px;height:6px;border-radius:var(--radius-full);box-shadow:0 0 0 1px var(--surface)}.month-calendar__event-text[data-v-22e5bd48]{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.time-picker[data-v-5e219ec3]{position:relative;display:flex;flex-direction:column;gap:var(--spacing-xs);width:100%;min-width:0}.time-picker__label[data-v-5e219ec3]{font-size:var(--font-size-xs);font-weight:var(--font-weight-medium);color:var(--ink);line-height:var(--line-height-normal)}.time-picker__required[data-v-5e219ec3]{color:var(--red-ink)}.time-picker__wrapper[data-v-5e219ec3]{display:flex;align-items:center;border:1px solid var(--line);border-radius:var(--radius-md);background:var(--surface);height:40px;padding:0 var(--spacing-sm);cursor:text;transition:border-color var(--duration-fast) var(--ease-out-strong);gap:var(--spacing-xs)}.time-picker__wrapper[data-v-5e219ec3]:hover{border-color:var(--line-strong)}.time-picker__field[data-v-5e219ec3]{flex:1;min-width:0;border:none;outline:none;background:transparent;font-family:var(--font-body);font-size:var(--font-size-sm);color:var(--ink);line-height:var(--line-height-normal)}.time-picker__field[data-v-5e219ec3]::-moz-placeholder{color:var(--ink-2)}.time-picker__field[data-v-5e219ec3]::placeholder{color:var(--ink-2)}.time-picker__icon[data-v-5e219ec3]{color:var(--ink-3);font-size:var(--font-size-sm);flex-shrink:0}.time-picker__icon-btn[data-v-5e219ec3]{display:flex;align-items:center;padding:0;border:none;background:none;cursor:pointer;flex-shrink:0}.time-picker__icon-btn[data-v-5e219ec3]:disabled{cursor:default}.time-picker__error[data-v-5e219ec3]{display:flex;align-items:center;gap:var(--spacing-xs);font-size:var(--font-size-xs);color:var(--red-ink);line-height:var(--line-height-normal)}.time-picker__helper[data-v-5e219ec3]{font-size:var(--font-size-xs);color:var(--ink-2);line-height:var(--line-height-normal)}.time-picker--disabled[data-v-5e219ec3]{opacity:.6;pointer-events:none}.time-picker--error .time-picker__wrapper[data-v-5e219ec3]{border-color:var(--red)}.time-picker--open .time-picker__wrapper[data-v-5e219ec3]{border-color:var(--accent);box-shadow:var(--shadow-focus)}.time-grid[data-v-88ae1638]{display:flex;flex-direction:column;gap:var(--spacing-md);min-width:0}.time-grid__head[data-v-88ae1638]{display:flex;align-items:center;justify-content:space-between;gap:var(--spacing-md);flex-wrap:wrap}.time-grid__title[data-v-88ae1638]{font-family:var(--font-heading);font-size:var(--font-size-lg);font-weight:var(--font-weight-semibold);color:var(--ink)}.time-grid__nav[data-v-88ae1638]{display:flex;align-items:center;gap:var(--spacing-xs)}.time-grid__body[data-v-88ae1638]{overflow:auto;border:1px solid var(--line);border-radius:var(--radius-md);background:var(--surface)}.time-grid__body--dragging[data-v-88ae1638]{-webkit-user-select:none;-moz-user-select:none;user-select:none;cursor:grabbing}.time-grid__grid[data-v-88ae1638]{display:grid;position:relative}.time-grid__corner[data-v-88ae1638]{left:0;z-index:5;border-right:1px solid var(--line)}.time-grid__col-head[data-v-88ae1638],.time-grid__corner[data-v-88ae1638]{position:sticky;top:0;background:var(--surface);border-bottom:1px solid var(--line)}.time-grid__col-head[data-v-88ae1638]{z-index:4;display:flex;flex-direction:column;align-items:center;gap:2px;padding:var(--spacing-xs) var(--spacing-2xs);border-left:1px solid var(--line);min-width:0}.time-grid__col-head--weekend[data-v-88ae1638]{background:var(--inset)}.time-grid__col-head--selected[data-v-88ae1638]{background:var(--accent-tint)}.time-grid__col-head--today .time-grid__col-sub[data-v-88ae1638]{background:var(--accent-fill);color:var(--surface);border-radius:var(--radius-full)}.time-grid__col-head[data-v-88ae1638]:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}.time-grid__col-sub[data-v-88ae1638]{min-width:22px;height:22px;display:inline-flex;align-items:center;justify-content:center;font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);color:var(--ink)}.time-grid__col-name[data-v-88ae1638]{display:flex;align-items:center;justify-content:center;gap:var(--spacing-xs);min-width:0;max-width:100%;font-size:var(--font-size-xs);color:var(--ink-2)}.time-grid__col-dot[data-v-88ae1638]{flex:0 0 auto;width:8px;height:8px;border-radius:var(--radius-full)}.time-grid__col-text[data-v-88ae1638]{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.time-grid__allday-gutter[data-v-88ae1638]{position:sticky;left:0;z-index:3;display:flex;flex-direction:column;gap:2px;padding:var(--spacing-2xs);background:var(--surface);border-right:1px solid var(--line);border-bottom:1px solid var(--line);font-size:var(--font-size-xs);color:var(--ink-3)}.time-grid__allday-toggle[data-v-88ae1638]{color:var(--accent-ink);cursor:pointer;text-decoration:underline}.time-grid__allday-toggle[data-v-88ae1638]:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.time-grid__allday[data-v-88ae1638]{grid-column:2/-1;display:grid;gap:2px 0;padding:var(--spacing-2xs) 0;border-bottom:1px solid var(--line);min-width:0}.time-grid__allday-day[data-v-88ae1638]{border-left:1px solid var(--line);cursor:pointer}.time-grid__allday-day[data-v-88ae1638]:hover{background:var(--hover)}.time-grid__allday-day--weekend[data-v-88ae1638]{background:var(--inset)}.time-grid__allday-bar[data-v-88ae1638]{display:flex;align-items:center;gap:var(--spacing-2xs);margin:0 2px;padding:0 var(--spacing-xs);border-radius:var(--radius-sm);color:var(--surface);font-size:var(--font-size-xs);line-height:var(--line-height-tight);overflow:hidden;cursor:pointer;position:relative;z-index:1}.time-grid__allday-bar[data-v-88ae1638]:hover{filter:brightness(1.1)}.time-grid__allday-bar--clipped-start[data-v-88ae1638]{margin-left:0;border-top-left-radius:0;border-bottom-left-radius:0}.time-grid__allday-bar--clipped-end[data-v-88ae1638]{margin-right:0;border-top-right-radius:0;border-bottom-right-radius:0}.time-grid__allday-text[data-v-88ae1638]{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.time-grid__allday-more[data-v-88ae1638]{position:relative;z-index:2;align-self:center;justify-self:start;margin-left:var(--spacing-xs);padding:0 var(--spacing-2xs);border-radius:var(--radius-full);background:var(--inset);color:var(--ink-2);font-size:var(--font-size-xs);font-weight:var(--font-weight-semibold);cursor:pointer}.time-grid__allday-more[data-v-88ae1638]:hover{background:var(--accent-tint);color:var(--accent-ink)}.time-grid__gutter[data-v-88ae1638]{position:sticky;left:0;z-index:3;display:flex;flex-direction:column;background:var(--surface);border-right:1px solid var(--line)}.time-grid__hour[data-v-88ae1638]{position:relative;flex:0 0 auto}.time-grid__hour-label[data-v-88ae1638]{position:absolute;top:2px;right:var(--spacing-2xs);font-size:var(--font-size-xs);color:var(--ink-3)}.time-grid__now-label[data-v-88ae1638]{position:absolute;right:var(--spacing-2xs);transform:translateY(-50%);padding:0 2px;background:var(--red);color:var(--surface);border-radius:var(--radius-sm);font-size:var(--font-size-xs);font-weight:var(--font-weight-medium)}.time-grid__col[data-v-88ae1638]{position:relative;border-left:1px solid var(--line);min-width:0}.time-grid__slot[data-v-88ae1638]{border-top:1px dashed var(--line);cursor:pointer}.time-grid__slot--hour[data-v-88ae1638]{border-top-style:solid}.time-grid__slot--past[data-v-88ae1638]{background:var(--inset)}.time-grid__slot[data-v-88ae1638]:hover{background:var(--hover)}.time-grid__slot[data-v-88ae1638]:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}.time-grid__events[data-v-88ae1638]{position:absolute;inset:0;pointer-events:none}.time-grid__event[data-v-88ae1638]{position:absolute;pointer-events:auto;display:flex;align-items:flex-start;gap:var(--spacing-2xs);padding:var(--spacing-xs);border-radius:var(--radius-sm);color:var(--surface);font-size:var(--font-size-xs);line-height:var(--line-height-tight);overflow:hidden;cursor:pointer}.time-grid__event[data-v-88ae1638]:hover{filter:brightness(1.1);z-index:2}.time-grid__event--movable[data-v-88ae1638]{cursor:grab;touch-action:none}.time-grid__event--dragging[data-v-88ae1638]{opacity:.4;cursor:grabbing}.time-grid__event--clipped-top[data-v-88ae1638]{border-top-left-radius:0;border-top-right-radius:0;-webkit-mask-image:linear-gradient(180deg,transparent 0,#000 4px);mask-image:linear-gradient(180deg,transparent 0,#000 4px)}.time-grid__event--clipped-bottom[data-v-88ae1638]{border-bottom-left-radius:0;border-bottom-right-radius:0;-webkit-mask-image:linear-gradient(0deg,transparent 0,#000 4px);mask-image:linear-gradient(0deg,transparent 0,#000 4px)}.time-grid__event--done[data-v-88ae1638],.time-grid__more--done[data-v-88ae1638]{background:var(--inset)!important;color:var(--ink-3);box-shadow:inset 0 0 0 1px var(--line);text-decoration:line-through}.time-grid__event-dot[data-v-88ae1638]{flex:0 0 auto;width:6px;height:6px;border-radius:var(--radius-full);box-shadow:0 0 0 1px var(--surface)}.time-grid__event-text[data-v-88ae1638]{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.time-grid__bars[data-v-88ae1638]{position:absolute;inset:0;pointer-events:none;z-index:1}.time-grid__bar[data-v-88ae1638]{position:absolute;left:0;right:0;pointer-events:none}.time-grid__bar--movable .time-grid__bar-label[data-v-88ae1638]{cursor:grab;touch-action:none}.time-grid__bar--dragging[data-v-88ae1638]{opacity:.4}.time-grid__bar--done .time-grid__bar-label[data-v-88ae1638]{background:var(--inset)!important;color:var(--ink-3);box-shadow:inset 0 0 0 1px var(--line);text-decoration:line-through}.time-grid__bar-label[data-v-88ae1638]{position:absolute;top:0;display:inline-flex;align-items:center;gap:var(--spacing-xs);max-width:100%;padding:0 var(--spacing-xs);border-radius:var(--radius-sm);background:var(--accent-fill);color:var(--surface);font-size:var(--font-size-xs);font-weight:var(--font-weight-medium);line-height:16px;overflow:hidden;white-space:nowrap;cursor:pointer;pointer-events:auto}.time-grid__bar-label[data-v-88ae1638]:hover{filter:brightness(1.1)}.time-grid__ghost[data-v-88ae1638]{position:absolute;left:2px;right:2px;border-radius:var(--radius-sm);background:var(--accent-tint);box-shadow:inset 0 0 0 2px var(--accent);pointer-events:none;z-index:3}.time-grid__handle[data-v-88ae1638]{position:absolute;left:0;right:0;bottom:0;height:8px;cursor:ns-resize;touch-action:none}.time-grid__handle[data-v-88ae1638]:hover{background:hsla(0,0%,100%,.35)}.time-grid__now[data-v-88ae1638]{position:absolute;left:0;right:0;height:2px;background:var(--red);pointer-events:none;z-index:2}.time-grid__now[data-v-88ae1638]:before{content:"";position:absolute;left:0;top:-3px;width:7px;height:7px;border-radius:var(--radius-full);background:var(--red)}.otc-time-picker-portal{pointer-events:auto}.otc-time-picker-portal .otc-tp-panel{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-lg);box-shadow:var(--shadow-md);overflow:hidden}.otc-time-picker-portal .otc-tp-columns{display:flex}.otc-time-picker-portal .otc-tp-column{display:flex;flex-direction:column;flex:1;min-width:0}.otc-time-picker-portal .otc-tp-column:first-child{border-right:1px solid var(--line)}.otc-time-picker-portal .otc-tp-column-header{font-family:var(--font-heading);font-size:var(--font-size-xs);font-weight:var(--font-weight-semibold);color:var(--ink-2);text-align:center;padding:var(--spacing-sm);border-bottom:1px solid var(--line)}.otc-time-picker-portal .otc-tp-scroll{overflow-y:auto;max-height:200px;padding:var(--spacing-xs) 0}.otc-time-picker-portal .otc-tp-option{display:flex;align-items:center;justify-content:center;padding:var(--spacing-xs) var(--spacing-sm);font-family:var(--font-body);font-size:var(--font-size-sm);color:var(--ink);cursor:pointer;transition:background var(--duration-fast) var(--ease-out-strong)}.otc-time-picker-portal .otc-tp-option:hover{background:var(--accent-tint)}.otc-time-picker-portal .otc-tp-option--selected{background:var(--accent-fill);color:var(--fill-ink);font-weight:var(--font-weight-semibold)}.otc-time-picker-portal .otc-tp-option--selected:hover{background:var(--accent-fill)}