.cal-layout{height:100dvh;display:flex}.cal-sidebar{border-right:1px solid #8883;flex-direction:column;flex-shrink:0;width:15rem;padding:1rem;display:flex;overflow-y:auto}.cal-version{color:#8888;align-items:center;gap:.5rem;margin-top:auto;padding-top:1rem;font-size:.75rem;display:flex}.cal-version-status{font-style:italic}.cal-version-update{font:inherit;color:#4457c5;cursor:pointer;background:0 0;border:1px solid #4457c5;border-radius:.4rem;padding:.15rem .5rem;font-size:.75rem}.cal-sidebar h2{margin:0 0 .5rem;font-size:1rem}.cal-sidebar ul{margin:0 0 1rem;padding:0;list-style:none}.cal-sidebar li label{cursor:pointer;align-items:center;gap:.5rem;padding:.3rem 0;display:flex}.cal-dot{border-radius:50%;flex-shrink:0;width:.75rem;height:.75rem}.cal-role{opacity:.6;font-size:.75rem}.cal-add,.cal-add-form input{width:100%}.cal-palette{gap:.35rem;margin:.5rem 0;display:flex}.cal-palette button{cursor:pointer;border:2px solid #0000;border-radius:50%;width:1.4rem;height:1.4rem}.cal-palette button.selected{border-color:currentColor}.editor-color-default{box-shadow:0 0 0 2px canvas,0 0 0 3px #8888}.cal-main{flex-direction:column;flex:1;min-width:0;display:flex}.cal-header{border-bottom:1px solid #8883;flex-wrap:wrap;align-items:center;gap:.5rem;padding:.6rem 1rem;display:flex}.cal-header h1{margin:0 auto 0 .5rem;font-size:1.15rem}.cal-header button,.cal-add,.cal-add-form button,.event-editor button,.share-dialog button{font:inherit;color:inherit;cursor:pointer;background:0 0;border:1px solid #8885;border-radius:.4rem;padding:.35rem .7rem}.cal-header button.active,button.primary{color:#fff;background:#4457c5;border-color:#4457c5}button.danger{color:#c53030;border-color:#c5303080}.cal-view-switch{display:flex}.cal-view-switch button{border-radius:0}.cal-view-switch button:first-child{border-radius:.4rem 0 0 .4rem}.cal-view-switch button:last-child{border-radius:0 .4rem .4rem 0}.cal-error,.cal-loading{margin:0;padding:.5rem 1rem}.cal-error{color:#c53030}.cal-view-wrap{flex:1;min-height:0;display:flex}.month-grid{flex-direction:column;flex:1;display:flex;overflow:auto}.month-head,.month-week{grid-template-columns:2.2rem repeat(7,1fr);display:grid}.month-head{text-align:center;border-bottom:1px solid #8883;padding:.25rem 0;font-size:.8rem;position:sticky;top:0}.month-week{border-bottom:1px solid #8882;flex:1;align-content:start;min-height:5rem}.wk-gutter{opacity:.55;text-align:center;border-right:1px solid #8882;padding-top:.35rem;font-size:.72rem}.month-day{cursor:pointer;border-right:1px solid #8882;min-width:0}.outside{opacity:.45}.day-number{width:1.6rem;height:1.6rem;color:inherit;font:inherit;cursor:pointer;background:0 0;border:none;border-radius:50%;justify-content:center;place-self:start;align-items:center;margin:.15rem;padding:0;font-size:.85rem;display:flex}.day-number.today{color:#fff;background:#4457c5}.month-day-chips{cursor:pointer;flex-direction:column;gap:3px;min-width:0;padding:3px .15rem .15rem;display:flex;overflow:hidden}.month-bar{margin:2px 0}.event-chip{text-align:left;width:100%;color:inherit;cursor:pointer;white-space:nowrap;text-overflow:ellipsis;background:0 0;border:none;border-radius:.2rem;padding:.1rem .3rem;font-size:.75rem;display:block;overflow:hidden}.event-chip--allday{border-left:3px solid var(--chip-border,#4457c5);background:color-mix(in srgb, var(--chip-fill,#4457c5) 28%, transparent)}.event-chip--timed{align-items:center;gap:.3rem;display:flex}.chip-dot{background:var(--chip-fill,#4457c5);border-radius:50%;flex-shrink:0;width:.4rem;height:.4rem}.chip-time{opacity:.7;flex-shrink:0}.chip-description{opacity:.7}.event-more{color:inherit;opacity:.7;text-align:left;cursor:pointer;background:0 0;border:none;padding:0 .3rem;font-size:.72rem}.time-grid{flex-direction:column;flex:1;display:flex;overflow:auto}.time-head,.time-allday{grid-template-columns:3.2rem repeat(auto-fit,minmax(0,1fr));display:grid}.time-head{text-align:center;z-index:2;background:inherit;border-bottom:1px solid #8883;padding:.3rem 0;font-size:.85rem;position:sticky;top:0}.time-head .today{color:#4457c5;font-weight:700}.time-allday{border-bottom:1px solid #8883;min-height:1.6rem}.time-allday .time-gutter{opacity:.55;text-align:right;padding-right:.3rem;font-size:.7rem}.allday-cell{border-left:1px solid #8882;padding:1px 2px}.time-body{grid-template-columns:3.2rem repeat(auto-fit,minmax(0,1fr));display:grid;position:relative}.time-body .time-gutter{position:relative}.time-body .time-gutter span{opacity:.55;font-size:.7rem;position:absolute;right:.3rem;transform:translateY(-50%)}.time-col{cursor:pointer;border-left:1px solid #8882;position:relative}.hour-line{pointer-events:none;border-top:1px solid #8881;position:absolute;left:0;right:0}.event-block{border:none;border-left:3px solid var(--chip-border,#4457c5);background:color-mix(in srgb, var(--chip-fill,#4457c5) 18%, Canvas);color:inherit;text-align:left;cursor:pointer;z-index:1;border-radius:.25rem;flex-direction:column;padding:.15rem .3rem;font-size:.75rem;display:flex;position:absolute;left:2px;right:4px;overflow:hidden}.modal-backdrop{z-index:10;background:#0006;justify-content:center;align-items:center;padding:1rem;display:flex;position:fixed;inset:0}.event-editor{color:canvastext;background:canvas;border-radius:.75rem;flex-direction:column;gap:.7rem;width:100%;max-width:24rem;max-height:90vh;padding:1.25rem;display:flex;overflow-y:auto}@media (width>=640px){.event-editor{max-width:36rem}}.event-editor h2{margin:0;font-size:1.1rem}.event-editor label{flex-direction:column;gap:.25rem;font-size:.85rem;font-weight:600;display:flex}.event-editor label.row,.cal-add-form .row{flex-direction:row;align-items:center;gap:.5rem}.editor-row{flex-wrap:wrap;gap:.7rem;display:flex}.editor-row-top{align-items:flex-start}.editor-grow{flex:12rem;min-width:0}.editor-datetime{gap:.4rem;display:flex}.editor-datetime input[type=date]{flex:8rem;min-width:0}.editor-datetime input[type=time]{flex:0 6.5rem;min-width:0}.editor-allday{white-space:nowrap;flex:none;align-self:flex-end;padding-bottom:.45rem}.event-editor input,.event-editor select,.event-editor textarea,.cal-add-form input{font:inherit;color:inherit;background:0 0;border:1px solid #8884;border-radius:.4rem;padding:.45rem .6rem}.event-editor select,.share-dialog select,.event-editor select option,.share-dialog select option{color:canvastext;background:canvas}.event-editor .error{color:#c53030;margin:0;font-size:.85rem}.editor-actions{gap:.5rem;display:flex}.editor-actions .spacer{flex:1}@media (width<=640px){.cal-sidebar{display:none}.modal-backdrop:has(.event-editor){align-items:stretch;padding:0}.event-editor{border-radius:0;max-width:none;height:100dvh;max-height:none}}.recurrence-editor,.reminder-picker{flex:12rem;min-width:0}.recurrence-editor{flex-direction:column;gap:.4rem;display:flex}.recurrence-details{border:1px solid #8883;border-radius:.4rem;flex-direction:column;gap:.5rem;padding:.6rem;display:flex}.recurrence-details input[type=number]{width:4rem}.weekday-picker{gap:.25rem;display:flex}.weekday-picker button{color:inherit;cursor:pointer;background:0 0;border:1px solid #8885;border-radius:.3rem;flex:1;padding:.25rem 0;font-size:.75rem}.weekday-picker button.active{color:#fff;background:#4457c5;border-color:#4457c5}button.link{color:#4457c5;cursor:pointer;font:inherit;text-align:left;background:0 0;border:none;padding:.2rem 0;font-size:.85rem}.scope-dialog{color:canvastext;background:canvas;border-radius:.75rem;flex-direction:column;gap:.6rem;width:100%;max-width:20rem;padding:1.25rem;display:flex}.scope-dialog h3{margin:0}.scope-dialog button{font:inherit;color:inherit;cursor:pointer;background:0 0;border:1px solid #8885;border-radius:.4rem;padding:.55rem}.scope-note{opacity:.75;margin:0;font-size:.78rem}.cal-row{justify-content:space-between;align-items:center;gap:.4rem;display:flex}.cal-row-main{flex:1;align-items:center;gap:.4rem;min-width:0;display:flex}.cal-name{text-overflow:ellipsis;white-space:nowrap;cursor:default;flex:1;min-width:0;overflow:hidden}.cal-rename-input{min-width:0;font:inherit;color:inherit;background:0 0;border:1px solid #4457c5;border-radius:.3rem;flex:1;padding:.1rem .3rem}.cal-menu{flex-shrink:0;position:relative}button.cal-menu-toggle{border:none;padding:0;font-size:1.25rem;line-height:1}.cal-menu-dropdown{z-index:5;color:canvastext;background:canvas;border:1px solid #8884;border-radius:.5rem;flex-direction:column;min-width:8rem;margin-top:.25rem;padding:.3rem;display:flex;position:absolute;top:100%;right:0;box-shadow:0 .25rem .75rem #0003}.cal-menu-dropdown button{font:inherit;text-align:left;color:inherit;cursor:pointer;background:0 0;border:none;border-radius:.3rem;padding:.4rem .5rem;font-size:.8rem}.cal-menu-dropdown button:hover:not(:disabled){background:#8882}.cal-menu-dropdown button.cal-menu-danger{color:#c53030}.cal-menu-dropdown button:disabled{opacity:.6;cursor:default}.icon-btn{color:inherit;opacity:.7;cursor:pointer;background:0 0;border:1px solid #8884;border-radius:.3rem;padding:.15rem .4rem;font-size:.7rem}.icon-btn:hover{opacity:1}.import-dialog{color:canvastext;background:canvas;border-radius:.75rem;flex-direction:column;gap:.7rem;width:100%;max-width:24rem;padding:1.25rem;display:flex}.import-dialog h2{margin:0;font-size:1.1rem}.import-dialog progress{width:100%}.import-warnings{opacity:.8;margin:0;padding-left:1.1rem;font-size:.8rem}.invitations-list{border-bottom:1px solid #8883;margin-bottom:1rem;padding-bottom:1rem}.invitations-list h2{text-transform:uppercase;opacity:.65;margin:0 0 .5rem;font-size:.85rem}.invitations-list ul{flex-direction:column;gap:.5rem;margin:0;padding:0;list-style:none;display:flex}.invitations-list li{flex-wrap:wrap;align-items:center;gap:.4rem;font-size:.8rem;display:flex}.invite-text{flex:1;min-width:8rem}.invitations-list button{padding:.2rem .5rem;font-size:.75rem}.share-dialog{color:canvastext;background:canvas;border-radius:.75rem;flex-direction:column;gap:.8rem;width:100%;max-width:26rem;padding:1.25rem;display:flex}.share-dialog h2{margin:0;font-size:1.1rem}.member-list{flex-direction:column;gap:.4rem;max-height:12rem;margin:0;padding:0;list-style:none;display:flex;overflow-y:auto}.member-list li{align-items:center;gap:.5rem;display:flex}.member-email{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;font-size:.85rem;overflow:hidden}.member-empty{opacity:.65;font-size:.85rem}.invite-form{gap:.4rem;display:flex}.invite-form input{min-width:0;font:inherit;color:inherit;background:0 0;border:1px solid #8884;border-radius:.4rem;flex:1;padding:.45rem .6rem}.share-dialog label{align-items:center;gap:.5rem;font-size:.85rem;display:flex}.share-dialog select{font:inherit;color:inherit;background:0 0;border:1px solid #8884;border-radius:.4rem;padding:.3rem .4rem}.reminder-picker{flex-direction:column;gap:.4rem;display:flex}.reminder-label{font-size:.85rem;font-weight:600}.reminder-options{flex-direction:column;gap:.3rem;display:flex}.reminder-picker .reminder-option{flex-direction:row;align-items:center;gap:.5rem;font-size:.85rem;font-weight:400;display:flex}.notification-toggle{align-items:center;gap:.4rem;display:flex}.notification-toggle button.active{color:#fff;background:#00875a;border-color:#00875a}.notification-error{color:#c53030;max-width:12rem;font-size:.75rem}.cal-offline{background:#b0880029;margin:0;padding:.5rem 1rem;font-size:.85rem}.auth-page{flex-direction:column;gap:1rem;max-width:26rem;margin:10vh auto 0;padding:1.5rem;display:flex}.auth-page h1{margin:0}.auth-page form{flex-direction:column;gap:1rem;display:flex}.auth-page label{flex-direction:column;gap:.35rem;font-weight:600;display:flex}.auth-page input{font:inherit;color:inherit;background:0 0;border:1px solid #8884;border-radius:.5rem;padding:.6rem .75rem}.auth-page button{font:inherit;color:inherit;cursor:pointer;background:0 0;border:1px solid #8886;border-radius:.5rem;padding:.65rem 1rem}.auth-page button.primary{color:#fff;background:#4457c5;border-color:#4457c5}.auth-page button:disabled{opacity:.5;cursor:default}.auth-page .error{color:#c53030}.recovery-key{letter-spacing:.05em;word-break:break-all;-webkit-user-select:all;user-select:all;border:1px dashed #8888;border-radius:.5rem;padding:1rem;font-size:1.05rem;display:block}.update-toast{color:canvastext;z-index:20;background:canvas;border:1px solid #8885;border-radius:.6rem;align-items:center;gap:.7rem;max-width:calc(100vw - 2rem);padding:.7rem 1rem;font-size:.9rem;display:flex;position:fixed;bottom:1rem;left:50%;transform:translate(-50%);box-shadow:0 4px 16px #0004}.update-toast button{font:inherit;color:inherit;cursor:pointer;white-space:nowrap;background:0 0;border:1px solid #8885;border-radius:.4rem;padding:.3rem .7rem}.update-toast button.primary{color:#fff;background:#4457c5;border-color:#4457c5}:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light dark;font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif;line-height:1.5}@media (prefers-color-scheme:dark){:root{--lightningcss-light: ;--lightningcss-dark:initial}}*{box-sizing:border-box}body{min-height:100vh;margin:0}a{color:#4457c5}
