.app-root .menu.floating.ecal-ed,.app-root .scrim.ecal-ed{font-family:var(--font);color:var(--text);-webkit-font-smoothing:antialiased}.app-root .scrim.ecal-ed{font-size:14px;line-height:1.45}.app-root .editor.ecal-ed{font-family:var(--font);color:var(--text);-webkit-font-smoothing:antialiased;font-size:12.5px;line-height:1.45}.app-root .ecal-ed :is(table,td,th,s){font-family:inherit}.app-root .ecal-ed :is(button,input,textarea,select){font:inherit;color:inherit}.app-root .ecal-ed{--ease:cubic-bezier(.2, .8, .2, 1);--check-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='none' stroke='black' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3.5 8.4l3 3 6-6.6'/%3E%3C/svg%3E")}.app-root .ecal-ed .kbd,.app-root .kbd.ecal-ed{border-radius:var(--radius-4);min-width:18px;height:18px;font-family:var(--mono);color:var(--text-2);background:var(--bg-sunken);border:1px solid var(--line);box-shadow:inset 0 -1px 0 var(--line);white-space:nowrap;justify-content:center;align-items:center;padding:0 5px;font-size:11px;line-height:1;display:inline-flex}.app-root .ecal-ed .btn,.app-root .btn.ecal-ed{border-radius:var(--radius-6);height:28px;color:var(--text);background:var(--bg-hover);box-shadow:none;transition:background var(--hover-t), border-color var(--hover-t), transform 80ms;white-space:nowrap;border:1px solid #0000;align-items:center;gap:6px;padding:0 10px;font-size:13px;font-weight:400;display:inline-flex}@media (hover:hover){.app-root .ecal-ed .btn:hover,.app-root .btn:hover.ecal-ed{background:var(--bg-active)}}.app-root .ecal-ed .btn:active,.app-root .btn:active.ecal-ed{transform:translateY(.5px)}.app-root .ecal-ed .btn.primary,.app-root .btn.primary.ecal-ed{background:var(--accent);color:var(--accent-text);border-color:var(--accent)}@media (hover:hover){.app-root .ecal-ed .btn.primary:hover,.app-root .btn.primary:hover.ecal-ed{filter:brightness(1.12)}}.app-root .ecal-ed .btn.ghost,.app-root .btn.ghost.ecal-ed{box-shadow:none;background:0 0;border-color:#0000}@media (hover:hover){.app-root .ecal-ed .btn.ghost:hover,.app-root .btn.ghost:hover.ecal-ed{background:var(--bg-hover)}}.app-root .ecal-ed .btn.danger,.app-root .btn.danger.ecal-ed{color:var(--danger)}.app-root .ecal-ed .btn.sm,.app-root .btn.sm.ecal-ed{height:26px;padding:0 9px;font-size:12.5px}.app-root .ecal-ed .btn.lg:active,.app-root .btn.lg:active.ecal-ed{transform:scale(.97)}.app-root .ecal-ed .btn:disabled,.app-root .btn:disabled.ecal-ed{opacity:.45;pointer-events:none}.app-root .ecal-ed .icon-btn,.app-root .icon-btn.ecal-ed{border-radius:var(--radius-7);width:28px;height:28px;color:var(--text-2);transition:background var(--hover-t), color var(--hover-t), transform 90ms ease;justify-content:center;align-items:center;display:inline-flex}@media (hover:hover){.app-root .ecal-ed .icon-btn:hover,.app-root .icon-btn:hover.ecal-ed{background:var(--bg-hover);color:var(--text)}}.app-root .ecal-ed .icon-btn:active,.app-root .icon-btn:active.ecal-ed{background:var(--bg-active);transform:scale(.94)}.app-root .ecal-ed .icon-btn.active,.app-root .icon-btn.active.ecal-ed{background:var(--bg-active);color:var(--text)}.app-root .ecal-ed .input,.app-root .input.ecal-ed{border-radius:var(--radius-7);border:1px solid var(--line);background:var(--surface);width:100%;height:32px;transition:border-color var(--hover-t), box-shadow var(--hover-t);outline:none;padding:0 10px}@media (hover:hover){.app-root .ecal-ed .input:hover,.app-root .input:hover.ecal-ed{border-color:var(--line-strong)}}.app-root .ecal-ed .input:focus,.app-root .input:focus.ecal-ed,.app-root .ecal-ed .input:focus-within,.app-root .input:focus-within.ecal-ed{border-color:var(--focus);box-shadow:0 0 0 3px color-mix(in srgb, var(--focus) 18%, transparent)}.app-root .ecal-ed textarea.input,.app-root textarea.input.ecal-ed{resize:vertical;height:auto;padding:8px 10px}.app-root .ecal-ed .muted,.app-root .muted.ecal-ed{color:var(--text-3)}.app-root .ecal-ed .scroll-thin,.app-root .scroll-thin.ecal-ed{scrollbar-width:thin;scrollbar-color:var(--line-strong) transparent}.app-root .ecal-ed .menu.floating,.app-root .menu.floating.ecal-ed{--check-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='none' stroke='black' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3.5 8.4l3 3 6-6.6'/%3E%3C/svg%3E")}.app-root .ecal-ed .link,.app-root .link.ecal-ed{color:var(--text-2);text-underline-offset:2px;text-decoration:underline;-webkit-text-decoration-color:var(--line-strong);text-decoration-color:var(--line-strong);font-size:inherit}@media (hover:hover){.app-root .ecal-ed .link:hover,.app-root .link:hover.ecal-ed{color:var(--text)}}.app-root .ecal-ed .btn.wide,.app-root .btn.wide.ecal-ed{justify-content:center;width:calc(100% - 20px);margin:0 10px 10px}.app-root .ecal-ed .avatar,.app-root .avatar.ecal-ed{color:#fff;border-radius:50%;flex:none;place-items:center;width:24px;height:24px;font-size:11px;font-style:normal;font-weight:600;display:inline-grid}.app-root .ecal-ed .avatar.sm,.app-root .avatar.sm.ecal-ed{width:20px;height:20px;font-size:10px}.app-root .ecal-ed .avatar.xs,.app-root .avatar.xs.ecal-ed{width:16px;height:16px;font-size:9px}.app-root .ecal-ed .dot,.app-root .dot.ecal-ed{border-radius:50%;flex:none;width:9px;height:9px;display:inline-block}.app-root .ecal-ed .menu,.app-root .menu.ecal-ed{z-index:60;border-radius:var(--radius-10);background:var(--surface);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);min-width:184px;box-shadow:var(--raised-shadow);color:var(--text);text-align:left;-webkit-user-select:none;user-select:none;animation:menu-in .12s var(--ease) both;padding:4px;font-size:13px;font-weight:400;line-height:1.077;position:absolute;top:calc(100% + 6px);right:0}.app-root .ecal-ed .menu.floating.flip,.app-root .menu.floating.flip.ecal-ed{animation-name:menu-in-up}@media (prefers-reduced-motion:reduce){.app-root .ecal-ed .menu,.app-root .menu.ecal-ed,.app-root .ecal-ed .ed-pop,.app-root .ed-pop.ecal-ed{animation:none!important}}.app-root .ecal-ed .menu.left,.app-root .menu.left.ecal-ed{left:0;right:auto}.app-root .ecal-ed .menu-item,.app-root .menu-item.ecal-ed{border-radius:var(--radius-6);width:100%;min-width:0;min-height:26px;color:var(--text);text-align:left;white-space:nowrap;cursor:pointer;align-items:center;gap:8px;padding:6px 8px;font-size:13px;font-weight:400;display:flex}.app-root .ecal-ed .menu-item>svg,.app-root .menu-item>svg.ecal-ed,.app-root .menu-item.ecal-ed>svg{width:14px;height:14px;color:var(--text);flex:none}.app-root .ecal-ed .menu-item>svg.muted,.app-root .menu-item>svg.muted.ecal-ed,.app-root .menu-item.ecal-ed>svg.muted{color:var(--text-3)}.app-root .ecal-ed .menu-item .kbd,.app-root .menu-item .kbd.ecal-ed,.app-root .menu-item.ecal-ed .kbd{margin-left:auto}@media (hover:hover){.app-root .ecal-ed .menu-item:hover,.app-root .menu-item:hover.ecal-ed,.app-root .ecal-ed .menu-item.active,.app-root .menu-item.active.ecal-ed{background:var(--menu-hover)}}.app-root .ecal-ed .menu-item:active,.app-root .menu-item:active.ecal-ed{background:var(--menu-press)}.app-root .ecal-ed .menu-item[aria-disabled=true],.app-root .menu-item[aria-disabled=true].ecal-ed,.app-root .ecal-ed .menu-item:disabled,.app-root .menu-item:disabled.ecal-ed{opacity:.45;pointer-events:none}.app-root .ecal-ed .menu-item.on:after,.app-root .menu-item.on.ecal-ed:after{content:"";width:14px;height:14px;-webkit-mask:var(--check-mask) center / 14px no-repeat;-webkit-mask:var(--check-mask) center / 14px no-repeat;mask:var(--check-mask) center / 14px no-repeat;background:currentColor;flex:none;margin-left:auto}.app-root .ecal-ed .menu-item.two,.app-root .menu-item.two.ecal-ed{align-items:center}.app-root .ecal-ed .menu .dot,.app-root .menu .dot.ecal-ed,.app-root .menu.ecal-ed .dot{width:8px;height:8px}.app-root .ecal-ed .menu-item>.dot,.app-root .menu-item>.dot.ecal-ed,.app-root .menu-item.ecal-ed>.dot{margin:0 3px}.app-root .ecal-ed .menu-sep,.app-root .menu-sep.ecal-ed{background:var(--line);height:1px;margin:4px 0}.app-root .ecal-ed .selbox,.app-root .selbox.ecal-ed{text-align:left;cursor:pointer;align-items:center;gap:6px;min-width:0;display:inline-flex}.app-root .ecal-ed .selbox.input,.app-root .selbox.input.ecal-ed{color:var(--text);padding:0 8px 0 10px;font-size:13px;display:flex}@media (hover:hover){.app-root .ecal-ed .selbox.input:hover,.app-root .selbox.input:hover.ecal-ed{border-color:var(--line-strong)}}.app-root .ecal-ed .ed-select.selbox.open,.app-root .ed-select.selbox.open.ecal-ed{background:var(--bg-hover)}.app-root .ecal-ed .selbox.input.open,.app-root .selbox.input.open.ecal-ed{border-color:var(--focus);box-shadow:0 0 0 3px color-mix(in srgb, var(--focus) 18%, transparent)}.app-root .ecal-ed .selbox:disabled,.app-root .selbox:disabled.ecal-ed{opacity:.45;cursor:default}.app-root .ecal-ed .ed-select.selbox,.app-root .ed-select.selbox.ecal-ed{margin:0 -4px;display:inline-flex}.app-root .ecal-ed .mini-cell:focus-visible,.app-root .mini-cell:focus-visible.ecal-ed{outline:2px solid var(--focus);outline-offset:1px}.app-root .ecal-ed .menu.floating,.app-root .menu.floating.ecal-ed{z-index:400;overscroll-behavior:contain;scrollbar-width:thin;scrollbar-color:var(--line-strong) transparent;position:fixed;top:0;left:0;right:auto;overflow-y:auto}.app-root .ecal-ed .menu.floating:focus,.app-root .menu.floating:focus.ecal-ed{outline:none}.app-root .ecal-ed .mini-head,.app-root .mini-head.ecal-ed{justify-content:space-between;align-items:center;margin-bottom:6px;font-size:13px;display:flex}.app-root .ecal-ed .mini-head .icon-btn,.app-root .mini-head .icon-btn.ecal-ed,.app-root .mini-head.ecal-ed .icon-btn{width:24px;height:24px}.app-root .ecal-ed .mini-grid,.app-root .mini-grid.ecal-ed{grid-template-columns:repeat(7,1fr);gap:1px;display:grid}.app-root .ecal-ed .mini-dow,.app-root .mini-dow.ecal-ed{height:22px;color:var(--text-3);place-items:center;font-size:10.5px;display:grid}.app-root .ecal-ed .mini-cell,.app-root .mini-cell.ecal-ed{border-radius:var(--radius-6);font-variant-numeric:tabular-nums;height:30px;transition:background var(--hover-t);font-size:12.5px}@media (hover:hover){.app-root .ecal-ed .mini-cell:hover,.app-root .mini-cell:hover.ecal-ed{background:var(--menu-hover)}}.app-root .ecal-ed .mini-cell.out,.app-root .mini-cell.out.ecal-ed{color:var(--text-4)}.app-root .ecal-ed .mini-cell.sel,.app-root .mini-cell.sel.ecal-ed{background:var(--bg-active);color:var(--text)}.app-root .ecal-ed .mini-cell.today,.app-root .mini-cell.today.ecal-ed{background:var(--accent);color:var(--accent-text)}.app-root .ecal-ed .editor,.app-root .editor.ecal-ed{scrollbar-width:none;z-index:40;border-radius:var(--radius-12);background:var(--raised);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);width:min(500px,100% - 32px);max-height:calc(100dvh - 96px);box-shadow:var(--raised-shadow);-webkit-user-select:text;user-select:text;margin-inline:auto;position:absolute;bottom:20px;left:0;right:0;overflow-y:auto}.app-root .ecal-ed .ed-head,.app-root .ed-head.ecal-ed{border-bottom:1px solid var(--line);align-items:flex-start;gap:10px;padding:12px 14px 8px;display:flex}.app-root .ecal-ed .ed-titles,.app-root .ed-titles.ecal-ed{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.app-root .ecal-ed .ed-title,.app-root .ed-title.ecal-ed{font:inherit;resize:none;scrollbar-width:none;overflow-wrap:anywhere;background:0 0;border:0;outline:0;max-height:4.05em;padding:0;font-size:15px;font-weight:600;line-height:1.35;overflow:hidden auto}.app-root .ecal-ed .ed-title::-webkit-scrollbar{display:none}.app-root .ed-title.ecal-ed::-webkit-scrollbar{display:none}.app-root .ecal-ed .ed-title::placeholder,.app-root .ed-title.ecal-ed::placeholder{color:var(--text-4)}.app-root .ecal-ed .ed-add-notes,.app-root .ed-add-notes.ecal-ed{color:var(--text-3);align-self:flex-start;font-size:12.5px}@media (hover:hover){.app-root .ecal-ed .ed-add-notes:hover,.app-root .ed-add-notes:hover.ecal-ed{color:var(--text-2)}}.app-root .ecal-ed .ed-notes,.app-root .ed-notes.ecal-ed{resize:none;color:var(--text-2);background:0 0;border:0;outline:0;padding:0;font-size:12.5px}.app-root .ecal-ed .ed-row,.app-root .ed-row.ecal-ed{border-bottom:1px solid var(--line);min-height:38px;color:var(--text-2);align-items:center;gap:10px;padding:4px 14px;font-size:13px;display:flex}.app-root .ecal-ed .ed-row>svg,.app-root .ed-row>svg.ecal-ed,.app-root .ed-row.ecal-ed>svg{color:var(--text-3);flex:none}.app-root .ecal-ed .ed-field,.app-root .ed-field.ecal-ed{background:0 0;border:0;outline:0;flex:1;min-width:0;font-size:13px}.app-root .ecal-ed .ed-field::placeholder,.app-root .ed-field.ecal-ed::placeholder{color:var(--text-4)}.app-root .ecal-ed .ed-select,.app-root .ed-select.ecal-ed{border-radius:var(--radius-6);cursor:pointer;font-variant-numeric:tabular-nums;appearance:none;transition:background var(--hover-t);background:0 0;border:0;outline:none;margin:0 -4px;padding:3px 4px;font-size:13px}@media (hover:hover){.app-root .ecal-ed .ed-select:hover,.app-root .ed-select:hover.ecal-ed{background:var(--bg-hover)}}.app-root .ecal-ed .ed-select:focus-visible,.app-root .ed-select:focus-visible.ecal-ed{outline:2px solid var(--focus);outline-offset:1px}.app-root .ecal-ed .ed-select.date,.app-root .ed-select.date.ecal-ed{width:130px}.app-root .ecal-ed .ed-arrow,.app-root .ed-arrow.ecal-ed{color:var(--text-4)}.app-root .ecal-ed .ed-dur,.app-root .ed-dur.ecal-ed{color:var(--text-3);font-size:12px}.app-root .ecal-ed .ed-static,.app-root .ed-static.ecal-ed{color:var(--text)}.app-root .ecal-ed .ed-tz,.app-root .ed-tz.ecal-ed{color:var(--text-3);white-space:nowrap;margin-left:auto;font-size:12px}.app-root .ecal-ed .ed-repeat,.app-root .ed-repeat.ecal-ed{color:var(--text-3);align-items:center;gap:4px;display:inline-flex}.app-root .ecal-ed .ed-repeat select,.app-root .ed-repeat select.ecal-ed,.app-root .ecal-ed .ed-cal select,.app-root .ed-cal select.ecal-ed,.app-root .ecal-ed .ed-bell select,.app-root .ed-bell select.ecal-ed,.app-root .ecal-ed .ed-chip-select select,.app-root .ed-chip-select select.ecal-ed,.app-root .ed-repeat.ecal-ed select,.app-root .ed-cal.ecal-ed select,.app-root .ed-bell.ecal-ed select,.app-root .ed-chip-select.ecal-ed select{cursor:pointer;appearance:none;color:var(--text-2);background:0 0;border:0;outline:none;max-width:150px;padding:0;font-size:12.5px}.app-root .ecal-ed .ed-switch,.app-root .ed-switch.ecal-ed{cursor:pointer;align-items:center;gap:7px;margin-left:auto;font-size:12.5px;display:inline-flex}.app-root .ecal-ed .ed-switch input,.app-root .ed-switch input.ecal-ed,.app-root .ed-switch.ecal-ed input{opacity:0;pointer-events:none;position:absolute}.app-root .ecal-ed .ed-switch-ui,.app-root .ed-switch-ui.ecal-ed{border-radius:var(--radius-pill);background:var(--bg-active);width:32px;height:18px;box-shadow:inset 0 0 0 1px var(--line-strong);flex:none;transition:background .22s,box-shadow .22s;position:relative}.app-root .ecal-ed .ed-switch-ui:after,.app-root .ed-switch-ui.ecal-ed:after{content:"";background:#fff;border-radius:50%;width:14px;height:14px;transition:transform .32s cubic-bezier(.3,1.5,.5,1);position:absolute;top:2px;left:2px;box-shadow:0 1px 2px #00000038}.app-root .ecal-ed .ed-switch input:checked+.ed-switch-ui,.app-root .ed-switch input:checked+.ed-switch-ui.ecal-ed,.app-root .ed-switch.ecal-ed input:checked+.ed-switch-ui{background:var(--accent);box-shadow:none}.app-root .ecal-ed .ed-switch input:checked+.ed-switch-ui:after,.app-root .ed-switch input:checked+.ed-switch-ui.ecal-ed:after,.app-root .ed-switch.ecal-ed input:checked+.ed-switch-ui:after{transform:translate(14px)}.app-root .ecal-ed .ed-switch input:focus-visible+.ed-switch-ui,.app-root .ed-switch input:focus-visible+.ed-switch-ui.ecal-ed,.app-root .ed-switch.ecal-ed input:focus-visible+.ed-switch-ui{outline:2px solid var(--focus);outline-offset:2px}.app-root .ecal-ed .ed-booking,.app-root .ed-booking.ecal-ed{color:var(--text-2);border-bottom:1px solid var(--line);align-items:center;gap:6px;padding:8px 14px;font-size:12px;display:flex}.app-root .ecal-ed .ed-foot,.app-root .ed-foot.ecal-ed{align-items:center;gap:4px;padding:6px 8px 6px 14px;font-size:12.5px;display:flex}.app-root .ecal-ed .ed-foot .grow,.app-root .ed-foot .grow.ecal-ed,.app-root .ed-foot.ecal-ed .grow{flex:1}.app-root .ecal-ed .ed-foot .icon-btn,.app-root .ed-foot .icon-btn.ecal-ed,.app-root .ed-foot.ecal-ed .icon-btn{width:28px;height:28px}@media (hover:hover){.app-root .ecal-ed .ed-foot .icon-btn.danger:hover,.app-root .ed-foot .icon-btn.danger:hover.ecal-ed,.app-root .ed-foot.ecal-ed .icon-btn.danger:hover{color:var(--danger)}}.app-root .ecal-ed .ed-cal,.app-root .ed-cal.ecal-ed,.app-root .ecal-ed .ed-bell,.app-root .ed-bell.ecal-ed,.app-root .ecal-ed .ed-chip-select,.app-root .ed-chip-select.ecal-ed{border-radius:var(--radius-7);height:28px;color:var(--text-3);cursor:pointer;transition:background var(--hover-t);align-items:center;gap:6px;padding:0 7px;display:inline-flex}@media (hover:hover){.app-root .ecal-ed .ed-cal:hover,.app-root .ed-cal:hover.ecal-ed,.app-root .ecal-ed .ed-bell:hover,.app-root .ed-bell:hover.ecal-ed,.app-root .ecal-ed .ed-chip-select:hover,.app-root .ed-chip-select:hover.ecal-ed{background:var(--bg-hover)}}.app-root .ecal-ed .ed-cal select,.app-root .ed-cal select.ecal-ed,.app-root .ed-cal.ecal-ed select{text-overflow:ellipsis;max-width:130px}.app-root .ecal-ed .ed-bell select,.app-root .ed-bell select.ecal-ed,.app-root .ed-bell.ecal-ed select{opacity:0;width:18px;position:absolute}.app-root .ecal-ed .ed-bell,.app-root .ed-bell.ecal-ed{position:relative}.app-root .ecal-ed .seg,.app-root .seg.ecal-ed{border-radius:var(--radius-7);background:var(--bg-hover);gap:2px;padding:2px;display:inline-flex}.app-root .ecal-ed .seg-btn,.app-root .seg-btn.ecal-ed{border-radius:var(--radius-6);height:24px;color:var(--text-2);transition:background var(--hover-t), color var(--hover-t), transform 80ms;white-space:nowrap;padding:0 9px;font-size:12.5px}@media (hover:hover){.app-root .ecal-ed .seg-btn:hover,.app-root .seg-btn:hover.ecal-ed{color:var(--text)}}.app-root .ecal-ed .seg-btn:active,.app-root .seg-btn:active.ecal-ed{transform:translateY(.5px)}.app-root .ecal-ed .seg-btn.on,.app-root .seg-btn.on.ecal-ed{background:var(--surface);color:var(--text);box-shadow:0 1px 2px #00000014}.app-root .ecal-ed .scrim,.app-root .scrim.ecal-ed{z-index:100;background:var(--scrim);justify-content:center;align-items:flex-start;display:flex;position:fixed;inset:0}.app-root .ecal-ed .modal,.app-root .modal.ecal-ed{border-radius:var(--radius-12);background:var(--raised);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);max-width:calc(100vw - 96px);max-height:min(440px,64vh);box-shadow:var(--raised-shadow);-webkit-user-select:text;user-select:text;flex-direction:column;margin-top:18vh;display:flex;overflow:hidden}.app-root .ecal-ed .small,.app-root .small.ecal-ed{font-size:12px}.app-root .ecal-ed .kbd.dark,.app-root .kbd.dark.ecal-ed{background:var(--bg-sunken)}.app-root .ecal-ed .grow-label,.app-root .grow-label.ecal-ed{flex:1}.app-root .ecal-ed .ed-save,.app-root .ed-save.ecal-ed{border-radius:var(--radius-pill);background:var(--accent);height:24px;color:var(--accent-text);align-items:center;gap:6px;padding:0 4px 0 9px;font-size:12px;font-weight:500;display:inline-flex}.app-root .ecal-ed .ed-save .kbd.dark,.app-root .ed-save .kbd.dark.ecal-ed,.app-root .ed-save.ecal-ed .kbd.dark{background:color-mix(in srgb, var(--accent-text) 18%, transparent);height:16px;color:var(--accent-text);border-color:#0000}.app-root .ecal-ed .ed-chips,.app-root .ed-chips.ecal-ed{flex-wrap:wrap;flex:1;align-items:center;gap:4px;min-width:0;padding:4px 0;display:flex}.app-root .ecal-ed .ed-chips .ed-field,.app-root .ed-chips .ed-field.ecal-ed,.app-root .ed-chips.ecal-ed .ed-field{min-width:140px}.app-root .ecal-ed .ed-guest,.app-root .ed-guest.ecal-ed{border-radius:var(--radius-pill);background:var(--bg-hover);align-items:center;gap:5px;height:22px;padding:0 4px 0 2px;font-size:12px;display:inline-flex}.app-root .ecal-ed .ed-guest button,.app-root .ed-guest button.ecal-ed,.app-root .ed-guest.ecal-ed button{width:15px;height:15px;color:var(--text-3);border-radius:50%;place-items:center;display:grid}@media (hover:hover){.app-root .ecal-ed .ed-guest button:hover,.app-root .ed-guest button:hover.ecal-ed,.app-root .ed-guest.ecal-ed button:hover{background:var(--bg-active);color:var(--text)}}.app-root .ecal-ed .ed-guests,.app-root .ed-guests.ecal-ed{flex-wrap:wrap}.app-root .ecal-ed .ed-guest-sum,.app-root .ed-guest-sum.ecal-ed{color:var(--text-3);flex-basis:100%;padding-left:24px;font-size:11px}.app-root .ecal-ed .ed-loc,.app-root .ed-loc.ecal-ed,.app-root .ecal-ed .ed-pop-anchor,.app-root .ed-pop-anchor.ecal-ed{position:relative}.app-root .ecal-ed .ed-mini,.app-root .ed-mini.ecal-ed{color:var(--text-2);border-radius:var(--radius-6);background:var(--bg-hover);padding:2px 6px;font-size:11px}.app-root .ecal-ed .ed-time-input,.app-root .ed-time-input.ecal-ed,.app-root .ecal-ed .ed-date-input,.app-root .ed-date-input.ecal-ed{border-radius:var(--radius-6);font-variant-numeric:tabular-nums;width:74px;transition:background var(--hover-t);background:0 0;border:0;outline:0;margin:0 -4px;padding:3px 4px;font-size:13px}.app-root .ecal-ed .ed-date-input,.app-root .ed-date-input.ecal-ed{width:104px}@media (hover:hover){.app-root .ecal-ed .ed-time-input:hover,.app-root .ed-time-input:hover.ecal-ed,.app-root .ecal-ed .ed-date-input:hover,.app-root .ed-date-input:hover.ecal-ed,.app-root .ecal-ed .ed-time-input:focus,.app-root .ed-time-input:focus.ecal-ed,.app-root .ecal-ed .ed-date-input:focus,.app-root .ed-date-input:focus.ecal-ed{background:var(--bg-hover)}}.app-root .ecal-ed .ed-chip-btn,.app-root .ed-chip-btn.ecal-ed{border-radius:var(--radius-6);height:24px;color:var(--text-2);white-space:nowrap;transition:background var(--hover-t);align-items:center;gap:5px;padding:0 7px;font-size:12px;display:inline-flex}@media (hover:hover){.app-root .ecal-ed .ed-chip-btn:hover,.app-root .ed-chip-btn:hover.ecal-ed{background:var(--bg-hover)}}.app-root .ecal-ed .ed-date,.app-root .ed-date.ecal-ed{flex-wrap:wrap}.app-root .ecal-ed .ed-date .ed-zone-anchor,.app-root .ed-date .ed-zone-anchor.ecal-ed,.app-root .ed-date.ecal-ed .ed-zone-anchor{margin-left:auto}.app-root .ecal-ed .ed-hint,.app-root .ed-hint.ecal-ed{color:var(--text-3);border-bottom:1px solid var(--line);margin-top:-4px;padding:0 14px 6px 38px;font-size:11px}.app-root .ecal-ed .ed-foot-btn,.app-root .ed-foot-btn.ecal-ed{border-radius:var(--radius-7);height:28px;color:var(--text-2);transition:background var(--hover-t), color var(--hover-t);align-items:center;gap:5px;padding:0 7px;display:inline-flex}@media (hover:hover){.app-root .ecal-ed .ed-foot-btn:hover,.app-root .ed-foot-btn:hover.ecal-ed,.app-root .ecal-ed .ed-foot-btn[aria-expanded=true],.app-root .ed-foot-btn[aria-expanded=true].ecal-ed{background:var(--bg-hover);color:var(--text)}}.app-root .ecal-ed .ed-foot-btn.active,.app-root .ed-foot-btn.active.ecal-ed{color:var(--text);background:var(--bg-active)}.app-root .ecal-ed .ed-foot-label,.app-root .ed-foot-label.ecal-ed{text-overflow:ellipsis;white-space:nowrap;align-items:center;gap:5px;max-width:120px;font-size:12.5px;display:inline-flex;overflow:hidden}.app-root .ecal-ed .dot.lg,.app-root .dot.lg.ecal-ed{width:12px;height:12px}.app-root .ecal-ed .ed-pop,.app-root .ed-pop.ecal-ed{z-index:60;border-radius:var(--radius-10);background:var(--surface);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);width:236px;max-height:320px;box-shadow:var(--raised-shadow);scrollbar-width:thin;animation:menu-in-up .12s var(--ease) both;padding:4px;line-height:1.077;position:absolute;bottom:calc(100% + 6px);left:0;overflow-y:auto}.app-root .ecal-ed .ed-pop.below,.app-root .ed-pop.below.ecal-ed{animation-name:menu-in;top:calc(100% + 4px);bottom:auto;left:24px}.app-root .ecal-ed .ed-time-list,.app-root .ed-time-list.ecal-ed{max-height:240px;margin:-4px;padding:4px;overflow-y:auto}.app-root .ecal-ed .pop-item,.app-root .pop-item.ecal-ed{border-radius:var(--radius-6);text-align:left;white-space:nowrap;font-variant-numeric:tabular-nums;align-items:center;gap:8px;width:100%;min-height:26px;padding:6px 8px;font-size:13px;display:flex}@media (hover:hover){.app-root .ecal-ed .pop-item:hover,.app-root .pop-item:hover.ecal-ed{background:var(--menu-hover)}}.app-root .ecal-ed .pop-item:active,.app-root .pop-item:active.ecal-ed{background:var(--menu-press)}.app-root .ecal-ed .pop-item.on:after,.app-root .pop-item.on.ecal-ed:after{content:"";width:14px;height:14px;-webkit-mask:var(--check-mask) center / 14px no-repeat;-webkit-mask:var(--check-mask) center / 14px no-repeat;mask:var(--check-mask) center / 14px no-repeat;background:currentColor;flex:none;margin-left:auto}.app-root .ecal-ed .pop-item.on:has(.pop-kbd):after{margin-left:8px}.app-root .pop-item.on:has(.pop-kbd).ecal-ed:after{margin-left:8px}.app-root .ecal-ed .ed-time-list .pop-item.on,.app-root .ed-time-list .pop-item.on.ecal-ed,.app-root .ed-time-list.ecal-ed .pop-item.on{background:var(--menu-hover)}.app-root .ecal-ed .ed-time-list .pop-item.on:after,.app-root .ed-time-list .pop-item.on.ecal-ed:after,.app-root .ed-time-list.ecal-ed .pop-item.on:after{content:none}.app-root .ecal-ed .gutter .pop-item,.app-root .gutter.ecal-ed .pop-item,.app-root .ecal-ed .gutter .menu-item,.app-root .gutter.ecal-ed .menu-item{padding-left:28px;position:relative}.app-root .ecal-ed .gutter .pop-item.on:after,.app-root .gutter.ecal-ed .pop-item.on:after,.app-root .ecal-ed .gutter .menu-item.checked:after,.app-root .gutter.ecal-ed .menu-item.checked:after{margin:0;position:absolute;left:8px}.app-root .ecal-ed .gutter .menu-item.checked:after,.app-root .gutter.ecal-ed .menu-item.checked:after{content:"";width:14px;height:14px;-webkit-mask:var(--check-mask) center / 14px no-repeat;-webkit-mask:var(--check-mask) center / 14px no-repeat;mask:var(--check-mask) center / 14px no-repeat;background:currentColor}.app-root .ecal-ed .gutter .pop-item>svg:first-child,.app-root .gutter.ecal-ed .pop-item>svg:first-child,.app-root .ecal-ed .gutter .menu-item>svg:first-child,.app-root .gutter.ecal-ed .menu-item>svg:first-child{position:absolute;left:8px}.app-root .ecal-ed .pop-item.two,.app-root .pop-item.two.ecal-ed{flex-direction:column;align-items:flex-start;gap:0}.app-root .ecal-ed .pop-item.two small,.app-root .pop-item.two small.ecal-ed,.app-root .pop-item.two.ecal-ed small{color:var(--text-3);font-size:11px}.app-root .ecal-ed .pop-kbd,.app-root .pop-kbd.ecal-ed{color:var(--text-3);margin-left:auto;padding-left:8px;font-size:12px}.app-root .ecal-ed .pop-kbd.left,.app-root .pop-kbd.left.ecal-ed{min-width:70px;margin-left:0}.app-root .ecal-ed .pop-label,.app-root .pop-label.ecal-ed{color:var(--text-2);padding:6px 8px;font-size:12px}.app-root .ecal-ed .pop-search,.app-root .pop-search.ecal-ed{border:1px solid var(--line);border-radius:var(--radius-7);background:var(--surface);width:100%;height:32px;transition:border-color var(--hover-t), box-shadow var(--hover-t);outline:0;margin-bottom:4px;padding:0 8px;font-size:13px}@media (hover:hover){.app-root .ecal-ed .pop-search:hover,.app-root .pop-search:hover.ecal-ed{border-color:var(--line-strong)}}.app-root .ecal-ed .pop-search:focus,.app-root .pop-search:focus.ecal-ed{border-color:var(--focus);box-shadow:0 0 0 3px color-mix(in srgb, var(--focus) 18%, transparent)}.app-root .ecal-ed .pop-search::placeholder,.app-root .pop-search.ecal-ed::placeholder{color:var(--text-3)}.app-root .ecal-ed .ed-rem-pills,.app-root .ed-rem-pills.ecal-ed{flex-wrap:wrap;gap:4px;padding:2px 2px 6px;display:flex}.app-root .ecal-ed .ed-rem-pill,.app-root .ed-rem-pill.ecal-ed{border-radius:var(--radius-pill);background:var(--bg-hover);align-items:center;gap:4px;height:22px;padding:0 4px 0 8px;font-size:12px;display:inline-flex}.app-root .ecal-ed .ed-rem-pill button,.app-root .ed-rem-pill button.ecal-ed,.app-root .ed-rem-pill.ecal-ed button{width:15px;height:15px;color:var(--text-3);border-radius:50%;place-items:center;display:grid}.app-root .ecal-ed .ed-mini .mini-head,.app-root .ed-mini .mini-head.ecal-ed,.app-root .ed-mini.ecal-ed .mini-head{margin-bottom:4px}.app-root .ecal-ed .task-mode .ed-head,.app-root .task-mode .ed-head.ecal-ed,.app-root .task-mode.ecal-ed .ed-head{border-bottom:1px solid var(--line)}.app-root .ecal-ed .modal.custom-repeat,.app-root .modal.custom-repeat.ecal-ed{gap:12px;width:320px;margin-top:22vh;padding:16px}.app-root .ecal-ed .custom-repeat h3,.app-root .custom-repeat h3.ecal-ed,.app-root .custom-repeat.ecal-ed h3{margin:0;font-size:14px}.app-root .ecal-ed .cr-row,.app-root .cr-row.ecal-ed{align-items:center;gap:8px;font-size:13px;display:flex}.app-root .ecal-ed .cr-num,.app-root .cr-num.ecal-ed{height:28px;width:56px!important}.app-root .ecal-ed .cr-unit,.app-root .cr-unit.ecal-ed{width:110px;height:28px}.app-root .ecal-ed .cr-days,.app-root .cr-days.ecal-ed{gap:4px;display:flex}.app-root .ecal-ed .cr-day,.app-root .cr-day.ecal-ed{background:var(--bg-hover);border-radius:50%;width:28px;height:28px;font-size:11px}.app-root .ecal-ed .cr-day.on,.app-root .cr-day.on.ecal-ed{background:var(--accent);color:var(--accent-text)}.app-root .ecal-ed .cr-ends,.app-root .cr-ends.ecal-ed{flex-direction:column;gap:6px;font-size:13px;display:flex}.app-root .ecal-ed .cr-ends label,.app-root .cr-ends label.ecal-ed,.app-root .cr-ends.ecal-ed label{align-items:center;gap:6px;display:flex}.app-root .ecal-ed .cr-ends .input,.app-root .cr-ends .input.ecal-ed,.app-root .cr-ends.ecal-ed .input{width:140px;height:28px}.app-root .ecal-ed .cr-actions,.app-root .cr-actions.ecal-ed{justify-content:flex-end;gap:6px;display:flex}.app-root .ecal-ed .dlg-radio,.app-root .dlg-radio.ecal-ed{align-items:center;gap:8px;padding:3px 0;font-size:13px;display:flex}@media (pointer:coarse){.app-root .ecal-ed .dlg-radio,.app-root .dlg-radio.ecal-ed{min-height:44px;font-size:15px}}.app-root .ecal-ed .scrim.center,.app-root .scrim.center.ecal-ed{align-items:center}.app-root .ecal-ed .scrim.center .modal,.app-root .scrim.center .modal.ecal-ed,.app-root .scrim.center.ecal-ed .modal{margin-top:0}.app-root .ecal-ed .modal.dialog,.app-root .modal.dialog.ecal-ed{gap:8px;width:320px;padding:16px}.app-root .ecal-ed .modal.dialog h3,.app-root .modal.dialog h3.ecal-ed,.app-root .modal.dialog.ecal-ed h3{margin:0 0 4px;font-size:14px}.app-root .ecal-ed .editor>*,.app-root .editor>.ecal-ed,.app-root .editor.ecal-ed>*{opacity:var(--ed-content,1);filter:var(--ed-blur,none)}.app-root .ecal-ed .editor.leaving,.app-root .editor.leaving.ecal-ed{pointer-events:none;z-index:39}.app-root .ecal-ed .menu-item.danger,.app-root .menu-item.danger.ecal-ed{color:var(--danger)}.app-root .ecal-ed a.menu-item,.app-root a.menu-item.ecal-ed{color:inherit;text-decoration:none}.app-root .ecal-ed .seg.sm .seg-btn,.app-root .seg.sm .seg-btn.ecal-ed,.app-root .seg.sm.ecal-ed .seg-btn{height:22px;padding:0 8px;font-size:12px}.app-root .ecal-ed .modal.dialog.confirm,.app-root .modal.dialog.confirm.ecal-ed{width:440px}.app-root .ecal-ed .diff,.app-root .diff.ecal-ed{border-collapse:collapse;width:100%;margin:4px 0 8px;font-size:13px}.app-root .ecal-ed .diff td,.app-root .diff td.ecal-ed,.app-root .diff.ecal-ed td{border-bottom:1px solid var(--line);vertical-align:top;padding:6px 4px}.app-root .ecal-ed .diff td:first-child,.app-root .diff td:first-child.ecal-ed,.app-root .diff.ecal-ed td:first-child{width:60px}.app-root .ecal-ed .diff s,.app-root .diff s.ecal-ed,.app-root .diff.ecal-ed s{font-size:12px}.app-root .ecal-ed .push-left,.app-root .push-left.ecal-ed{margin-right:auto}.app-root .ecal-ed .guest-line,.app-root .guest-line.ecal-ed{align-items:center;gap:8px;padding:4px 6px;font-size:12.5px;display:flex}.app-root .ecal-ed .guest-line .icon-btn,.app-root .guest-line .icon-btn.ecal-ed,.app-root .guest-line.ecal-ed .icon-btn{width:22px;height:22px}.app-root .ecal-ed .tag,.app-root .tag.ecal-ed{border-radius:var(--radius-pill);background:var(--bg-hover);color:var(--text-2);padding:1px 6px;font-size:10.5px}.app-root .ecal-ed .guest-menu,.app-root .guest-menu.ecal-ed{min-width:160px;top:calc(100% + 2px);left:auto;right:0}.app-root .ecal-ed .perm,.app-root .perm.ecal-ed{align-items:center;gap:8px;padding:4px 6px;font-size:12.5px;display:flex}.app-root .ecal-ed .ed-pop-sheet,.app-root .ed-pop-sheet.ecal-ed{width:236px}.app-root .ecal-ed .ed-pop-sheet.wide,.app-root .ed-pop-sheet.wide.ecal-ed{width:300px}.app-root .ecal-ed .pop-item.active,.app-root .pop-item.active.ecal-ed{background:var(--menu-hover)}.app-root .ecal-ed .rsvp,.app-root .rsvp.ecal-ed{margin-right:4px}.app-root .ecal-ed .ed-meet .ed-chip-btn,.app-root .ed-meet .ed-chip-btn.ecal-ed,.app-root .ed-meet.ecal-ed .ed-chip-btn{gap:6px}.app-root .ecal-ed .pop-note,.app-root .pop-note.ecal-ed{max-width:240px;color:var(--text-3);padding:6px 8px;font-size:12px;line-height:1.45}.app-root .ecal-ed .ed-split,.app-root .ed-split.ecal-ed{gap:1px;display:inline-flex}.app-root .ecal-ed .ed-split .ed-save:first-child,.app-root .ed-split .ed-save:first-child.ecal-ed,.app-root .ed-split.ecal-ed .ed-save:first-child{border-top-right-radius:0;border-bottom-right-radius:0}.app-root .ecal-ed .ed-split-more,.app-root .ed-split-more.ecal-ed{border-top-left-radius:0!important;border-bottom-left-radius:0!important;padding:0 7px!important}.app-root .ecal-ed .rsvp-note,.app-root .rsvp-note.ecal-ed{flex-direction:column;gap:6px;width:240px;display:flex}.app-root .ecal-ed .ed-range-pill,.app-root .ed-range-pill.ecal-ed{border-radius:var(--radius-7);background:var(--bg-hover);width:100%;color:var(--text);justify-content:space-between;align-items:center;margin-bottom:6px;padding:6px 8px;font-size:12.5px;display:flex}.app-root .ecal-ed .ed-notes.rich,.app-root .ed-notes.rich.ecal-ed{-webkit-user-select:text;user-select:text;cursor:text;white-space:pre-wrap;min-height:34px;max-height:160px;line-height:1.5;overflow-y:auto}.app-root .ecal-ed .ed-notes.rich:empty:before,.app-root .ed-notes.rich:empty.ecal-ed:before{content:attr(data-placeholder);color:var(--text-4)}.app-root .ecal-ed .ed-notes.rich a,.app-root .ed-notes.rich a.ecal-ed,.app-root .ed-notes.rich.ecal-ed a{color:var(--focus);text-decoration:underline}.app-root .ecal-ed .ed-notes.rich ul,.app-root .ed-notes.rich ul.ecal-ed,.app-root .ecal-ed .ed-notes.rich ol,.app-root .ed-notes.rich ol.ecal-ed,.app-root .ed-notes.rich.ecal-ed ul,.app-root .ed-notes.rich.ecal-ed ol{margin:2px 0;padding-left:18px}.app-root .ecal-ed .ed-guest-input,.app-root .ed-guest-input.ecal-ed{flex:1;min-width:140px}.app-root .ecal-ed .ed-guest-input .ed-field,.app-root .ed-guest-input .ed-field.ecal-ed,.app-root .ed-guest-input.ecal-ed .ed-field{width:100%}.app-root .ecal-ed :is(.ed-title,.ed-field,.ed-time-input,.ed-date-input,.pop-search,.ed-notes):focus,.app-root .ecal-ed :is(.ed-title,.ed-field,.ed-notes):focus-visible{box-shadow:none;outline:0}.app-root:has(.editor.ecal-ed:not(.leaving)) .askbar{visibility:hidden;opacity:0;transition:none}.app-root .editor.ecal-ed>.ed-head{z-index:1;background:var(--raised-solid);position:sticky;top:0}.app-root .editor.ecal-ed>.ed-foot{z-index:1;background:var(--raised-solid);box-shadow:0 -1px 0 var(--line);position:sticky;bottom:0}.app-root .editor.ecal-ed[data-squeezed]>:is(.ed-row,.ed-foot),.app-root .app-shell[data-layout=phone] .editor.ecal-ed .ed-foot{flex-wrap:wrap;row-gap:6px}.app-root .app-shell[data-layout=phone] .editor.ecal-ed{width:calc(100% - 16px);bottom:calc(var(--bottom-bar-h) + 8px + env(safe-area-inset-bottom,0px));max-height:calc(100% - var(--bottom-bar-h) - 16px - env(safe-area-inset-bottom,0px))}.app-root .scrim.ecal-ed .modal.dialog.confirm{width:min(440px,100vw - 32px);max-width:none}.app-root .scrim.ecal-ed .modal.dialog.confirm .cr-actions{flex-wrap:wrap;row-gap:8px}@media (pointer:coarse){.app-root .ecal-ed :is(.ed-add-notes,.ed-chip-btn,.ed-foot-btn,.icon-btn,.ed-save,.seg-btn,.ed-guest button,.mini-cell,.cr-day,.btn){position:relative}.app-root .ecal-ed :is(.ed-add-notes,.ed-chip-btn,.ed-foot-btn,.icon-btn,.ed-save,.seg-btn,.ed-guest button,.mini-cell,.cr-day,.btn):before{content:"";position:absolute;inset:-12px -9px}.app-root .ecal-ed button.ed-add-notes:before{top:-14px;bottom:-14px}.app-root .ecal-ed .ed-guest>button:before,.app-root .ed-guest.ecal-ed>button:before{inset:-15px}.app-root .ecal-ed .ed-title{margin-block:-12px;padding-block:12px;font-size:16px}.app-root .ecal-ed :is(.ed-field,.ed-time-input,.ed-date-input,.pop-search){min-height:44px;margin-block:-2px;font-size:16px}.app-root .ecal-ed .ed-time-input{width:86px}.app-root .ecal-ed .ed-date-input{width:118px}}.app-root .pp-menu.ecal-list-menu{min-width:184px;font-size:13px;line-height:1.077}.app-root .pp-menu.ecal-list-menu .menu-item{min-height:26px;font-size:13px;line-height:14px}.app-root .pp-menu.ecal-list-menu :is(.pp-icon,.pp-icon svg,.pp-gutter,svg.pp-check,.pp-check svg){width:14px;height:14px}.app-root .pp-menu.ecal-list-menu .pp-dot{width:8px;height:8px}.app-root .pp-menu.ecal-list-menu :is(.pp-hint,.pp-desc,.pp-sub){font-size:12px}.app-root .pp-menu.ecal-list-menu input{height:26px;font-size:13px}
