:root{color-scheme:light;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-synthesis:none;text-rendering:optimizeLegibility;--bg: #f4f6f8;--panel: #ffffff;--panel-soft: #f8fafc;--text: #172033;--muted: #667085;--line: #d9e0e8;--primary: #1d4ed8;--primary-hover: #1e40af;--danger: #b42318;--danger-soft: #fee4e2;--focus: #84adff;--radius: 12px;--shadow: 0 16px 40px rgba(16, 24, 40, .12)}*{box-sizing:border-box}html,body,#root{min-height:100%;margin:0}body{background:var(--bg);color:var(--text)}button,input,textarea,select{font:inherit}button,input,textarea,select,dialog{color:inherit}button{touch-action:manipulation}h1,h2,p{margin-top:0}h1{font-size:clamp(1.8rem,4vw,2.35rem);margin-bottom:.6rem}h2{font-size:1.1rem;margin-bottom:0}.muted{color:var(--muted);line-height:1.55}.eyebrow{color:var(--primary);font-size:.72rem;font-weight:800;letter-spacing:.12em;margin:0 0 .3rem;text-transform:uppercase}.stack{display:grid;gap:1rem}.button{align-items:center;border:1px solid transparent;border-radius:9px;cursor:pointer;display:inline-flex;font-weight:700;gap:.45rem;justify-content:center;min-height:42px;padding:.64rem 1rem;transition:background .15s ease,border-color .15s ease,transform .15s ease}.button:hover:not(:disabled){transform:translateY(-1px)}.button:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible{outline:3px solid var(--focus);outline-offset:2px}.button:disabled{cursor:not-allowed;opacity:.58}.button--small{min-height:36px;padding:.44rem .68rem}.button--primary{background:var(--primary);color:#fff}.button--primary:hover:not(:disabled){background:var(--primary-hover)}.button--secondary{background:#fff;border-color:var(--line)}.button--secondary:hover:not(:disabled),.button--ghost:hover:not(:disabled){background:#eef2f6}.button--ghost{background:transparent}.button--danger{background:var(--danger);color:#fff}.login-shell{display:grid;min-height:100vh;place-items:center;padding:1rem}.login-card{background:var(--panel);border:1px solid var(--line);border-radius:18px;box-shadow:var(--shadow);max-width:390px;padding:clamp(1.25rem,5vw,2rem);width:100%}.brand-mark{align-items:center;background:var(--primary);border-radius:12px;color:#fff;display:inline-flex;height:44px;justify-content:center;width:44px}.field{display:grid;gap:.42rem;min-width:0}.field__label{font-size:.86rem;font-weight:750}.field__hint{color:var(--muted);font-size:.75rem;line-height:1.4}input,textarea,select{background:#fff;border:1px solid #bdc7d4;border-radius:8px;min-height:42px;padding:.6rem .72rem;width:100%}textarea{min-height:100px;resize:vertical}input[type=color]{cursor:pointer;padding:.25rem}.form-error,.page-error{background:var(--danger-soft);border:1px solid #fda29b;border-radius:8px;color:#912018;padding:.72rem}.form-grid{display:grid;gap:1rem}.checkbox-field{align-items:center;align-self:end;display:flex;font-weight:700;gap:.55rem;min-height:42px}.checkbox-field input,.calendar-toggle input{height:18px;min-height:0;width:18px}.app-shell{height:100dvh;min-height:560px;overflow:hidden}.app-header{align-items:center;background:var(--panel);border-bottom:1px solid var(--line);display:flex;height:64px;justify-content:space-between;padding:0 .75rem;position:relative;z-index:20}.app-header__brand,.app-header__actions{align-items:center;display:flex;gap:.55rem}.app-header__brand>div{display:grid}.app-header__brand strong{line-height:1.1}.connection-status{border:0;border-radius:999px;color:var(--muted);display:none;font-size:.68rem;font-weight:700;max-width:230px;overflow:hidden;padding:.26rem .55rem;text-overflow:ellipsis;white-space:nowrap}button.connection-status{cursor:pointer;font-family:inherit}.connection-status:before{background:#16a34a;border-radius:50%;content:"";display:inline-block;height:7px;margin-right:.38rem;width:7px}.connection-status--offline{background:#fff7ed;color:#9a3412}.connection-status--offline:before{background:#ea580c}.connection-status--blocked{background:var(--danger-soft);color:var(--danger)}.connection-status--blocked:before{background:var(--danger)}.app-header__brand span:not(.brand-mark){color:var(--muted);font-size:.72rem;max-width:110px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.brand-mark{display:none;height:38px;width:38px}.workspace{display:flex;height:calc(100dvh - 64px);min-height:0}.calendar-main{flex:1;min-width:0;padding:.5rem;position:relative}.calendar-canvas{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);height:100%;min-height:0;overflow:hidden;padding:.45rem}.sync-indicator{background:#172033e6;border-radius:999px;bottom:1rem;color:#fff;font-size:.76rem;padding:.4rem .7rem;position:absolute;right:1rem;z-index:10}.sync-indicator--offline{background:#9a3412}.sync-indicator--blocked{background:var(--danger);border:0;cursor:pointer;font-family:inherit}.sync-issues__intro{color:var(--muted);line-height:1.5;margin:0 0 1rem}.sync-issues{display:grid;gap:.75rem}.sync-issue{border:1px solid var(--line);border-radius:10px;display:grid;gap:.8rem;padding:.85rem}.sync-issue h3,.sync-issue p{margin:.25rem 0 0}.sync-issue p{color:var(--danger);font-size:.82rem}.sync-issue__kind{color:var(--muted);font-size:.72rem;font-weight:700;text-transform:uppercase}.sync-issue__actions{display:flex;flex-wrap:wrap;gap:.45rem}.calendar-sidebar{background:var(--panel);border-right:1px solid var(--line);bottom:0;left:0;overflow-y:auto;padding:1rem;position:fixed;top:64px;transform:translate(-105%);transition:transform .2s ease;width:min(88vw,330px);z-index:40}.calendar-sidebar--open{transform:translate(0)}.drawer-backdrop{background:#10182885;border:0;inset:64px 0 0;padding:0;position:fixed;width:100%;z-index:35}.calendar-sidebar__header{align-items:center;display:flex;justify-content:space-between;margin-bottom:1rem}.calendar-sidebar__toolbar{border-bottom:1px solid var(--line);margin-bottom:.7rem;padding-bottom:.8rem}.calendar-list{display:grid;gap:.3rem}.calendar-list__item{align-items:center;border-radius:8px;display:flex;gap:.3rem;min-height:45px;padding:.2rem .1rem .2rem .35rem}.calendar-list__item:hover{background:var(--panel-soft)}.calendar-toggle{align-items:center;cursor:pointer;display:flex;flex:1;gap:.55rem;min-width:0}.calendar-toggle__name{flex:1;font-size:.9rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.calendar-swatch{border-radius:50%;flex:0 0 auto;height:12px;width:12px}.calendar-list__actions{display:flex}.calendar-list__actions .button{padding-inline:.42rem}.badge{background:#eef2f6;border-radius:999px;color:var(--muted);font-size:.63rem;padding:.2rem .42rem;white-space:nowrap}.sidebar-note,.empty-state{color:var(--muted);font-size:.78rem;line-height:1.45;margin:1.1rem 0 0}.dialog{background:transparent;border:0;height:100%;margin:0;max-height:none;max-width:none;padding:0;width:100%}.dialog::backdrop{background:#1018288c}.dialog__panel{background:var(--panel);display:flex;flex-direction:column;height:100%;width:100%}.dialog__header{align-items:center;border-bottom:1px solid var(--line);display:flex;justify-content:space-between;padding:.9rem 1rem}.dialog__body{flex:1;overflow-y:auto;padding:1rem}.dialog__footer{align-items:center;border-top:1px solid var(--line);display:flex;flex-wrap:wrap;gap:.55rem;justify-content:flex-end;padding:.8rem 1rem}.dialog__delete{margin-right:auto}.loading{align-items:center;color:var(--muted);display:flex;gap:.7rem;justify-content:center;min-height:80px}.loading__spinner{animation:rotate .8s linear infinite;border:3px solid #d0d5dd;border-radius:50%;border-top-color:var(--primary);height:24px;width:24px}.app-loading{display:grid;min-height:100vh;place-items:center}.spin{animation:rotate .8s linear infinite}@keyframes rotate{to{transform:rotate(360deg)}}.toast-stack{bottom:1rem;display:grid;gap:.5rem;left:1rem;position:fixed;right:1rem;z-index:100}.toast{background:#172033;border-radius:9px;box-shadow:var(--shadow);color:#fff;margin-left:auto;max-width:430px;padding:.75rem .9rem;width:fit-content}.toast--error{background:#912018}.toast--info{background:#344054}.pwa-prompt{align-items:center;background:#172033;bottom:0;color:#fff;display:flex;flex-wrap:wrap;gap:.7rem;justify-content:space-between;left:0;padding:.8rem 1rem;position:fixed;right:0;z-index:90}.pwa-prompt__actions{display:flex;gap:.45rem}.mobile-only{display:inline-flex}.button-label{display:none}.fc{--fc-border-color: var(--line);--fc-button-bg-color: var(--primary);--fc-button-border-color: var(--primary);--fc-button-hover-bg-color: var(--primary-hover);--fc-button-hover-border-color: var(--primary-hover);--fc-button-active-bg-color: #173da4;--fc-button-active-border-color: #173da4;--fc-today-bg-color: #eff6ff;color:var(--text);font-size:.85rem}.fc .fc-toolbar{gap:.35rem;margin-bottom:.55rem}.fc .fc-toolbar-title{font-size:clamp(.95rem,4vw,1.25rem);text-align:center}.fc .fc-button{border-radius:7px;box-shadow:none;font-size:.76rem;padding:.4rem .54rem;text-transform:none}.fc .fc-event{border-radius:5px;cursor:pointer}.fc .fc-list-event-title a,.fc .fc-list-event-time{color:var(--text)}.fc-theme-standard .fc-list{border:0}@media(min-width:560px){.button-label{display:inline}.brand-mark{display:inline-flex}.connection-status{display:inline-block}.form-grid--two{grid-template-columns:repeat(2,minmax(0,1fr))}.field--wide{grid-column:1 / -1}.dialog{align-items:center;display:none;justify-content:center;padding:1rem}.dialog[open]{display:flex}.dialog__panel{border-radius:14px;box-shadow:var(--shadow);height:auto;max-height:min(88dvh,850px);max-width:540px}.dialog--wide .dialog__panel{max-width:820px}.toast-stack{left:auto;width:450px}}@media(min-width:900px){.app-header{padding-inline:1rem}.calendar-main{padding:.75rem}.calendar-sidebar{flex:0 0 280px;position:static;transform:none;width:280px;z-index:auto}.drawer-backdrop,.mobile-only{display:none}.calendar-canvas{padding:.7rem}.fc{font-size:.9rem}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{transition:none}.loading__spinner,.spin{animation-duration:1.8s}}
