@media (prefers-reduced-motion:reduce){.shale-immersive *,.shale-immersive :before,.shale-immersive :after{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}.calendar-module{gap:var(--shale-space-4);padding:var(--shale-space-4);color:var(--shale-text-on-light);flex-direction:column;display:flex}.calendar-module__summary{gap:var(--shale-space-3);grid-template-columns:repeat(auto-fit,minmax(180px,1fr));display:grid}.calendar-module__summary-card{background:var(--surface,#fff);border:1px solid var(--shale-border);border-radius:var(--shale-radius-lg);box-shadow:var(--shale-shadow-md);padding:var(--shale-space-4)}.calendar-module__summary-label{color:var(--shale-text-muted);font-size:var(--shale-font-caption);margin:0 0 var(--shale-space-1)}.calendar-module__summary-value{font-size:var(--shale-font-heading);font-weight:var(--shale-weight-heading);color:var(--shale-text-on-light);margin:0}.calendar-module__panel{background:var(--surface,#fff);border:1px solid var(--shale-border);border-radius:var(--shale-radius-lg);box-shadow:var(--shale-shadow-md);padding:var(--shale-space-4)}.calendar-module__panel-title{font-size:var(--shale-font-body);font-weight:var(--shale-weight-heading);margin:0 0 var(--shale-space-3);color:var(--shale-text-on-light)}.calendar-module__status{color:var(--shale-text-muted);font-size:var(--shale-font-caption)}.calendar-module__event-list{gap:var(--shale-space-3);flex-direction:column;display:flex}.calendar-module__event-card{border:1px solid var(--shale-border);border-radius:var(--shale-radius-lg);padding:var(--shale-space-3);background:var(--surface,#fff);box-shadow:var(--shale-shadow)}.calendar-module__event-header{justify-content:space-between;align-items:center;gap:var(--shale-space-3);display:flex}.calendar-module__event-title{font-size:var(--shale-font-body);font-weight:var(--shale-weight-heading);color:var(--shale-text-on-light);margin:0}.calendar-module__event-source{color:var(--shale-text-muted);font-size:var(--shale-font-caption);text-transform:uppercase}.calendar-module__event-meta{gap:var(--shale-space-3);color:var(--shale-text-muted);font-size:var(--shale-font-caption);margin-top:var(--shale-space-1);flex-wrap:wrap;display:flex}.calendar-module__event-description{margin:var(--shale-space-1) 0 0;font-size:var(--shale-font-caption);color:var(--shale-text-on-light)}.calendar-module__event-tags{gap:var(--shale-space-1);margin-top:var(--shale-space-1);flex-wrap:wrap;display:flex}.calendar-module__tag{background:var(--shale-light);border-radius:var(--shale-radius-pill);font-size:var(--shale-font-caption);padding:var(--shale-space-1) var(--shale-space-2);color:var(--shale-text-muted)}:root{--shale-light:var(--lsos-shale-light,#f2f3f5);--shale:var(--lsos-shale,#e6e7ea);--shale-medium:var(--lsos-shale-medium,#d9dbdf);--shale-midnight:var(--lsos-midnight,#0a1a2f);--shale-midnight-dark:var(--lsos-midnight-dark,#06121f);--shale-cyan:var(--lsos-cyan,#3fe0ff);--shale-border:var(--lsos-border,#c8ccd2);--shale-silver-soft:var(--border-light,#dde0e5);--shale-muted:#6b7a7d;--shale-accent-teal:#4a7c6f;--shale-text-on-light:var(--text,#0a0a0a);--shale-text-muted:var(--text-tertiary,#4a4f57);--shale-dark-bg:#0f1419;--shale-dark-bg-muted:#1a2224;--shale-dark-bg-gradient-end:#1a2428;--shale-dark-bg-gradient-alt:#1a1f2e;--shale-dark-surface:#2a3638;--shale-dark-surface-soft:color-mix(in srgb, var(--shale-dark-surface) 70%, transparent);--shale-dark-accent:#3d4f52;--shale-dark-accent-light:#4a5f63;--shale-dark-silver:#b8c4c8;--shale-dark-silver-muted:#95b0b8;--shale-dark-text:#e8eef0;--shale-text-subtle:#dce4e6;--shale-text-muted-immersive:#c5d2d6;--shale-text-bright:#f0f4f5;--shale-text-on-midnight:#f2f3f5;--shale-canvas-void:#0a0e12;--shale-dark-border:#b8c4c826;--shale-dark-border-strong:#b8c4c82e;--shale-dark-border-subtle:#b8c4c81f;--shale-dark-border-faint:#b8c4c81a;--shale-dark-border-mid:#b8c4c833;--shale-dark-border-highlight:#b8c4c840;--shale-dark-border-emphasis:#b8c4c859;--shale-midnight-soft:#1a1d21;--shale-hub-gradient-end:#1f2a2e;--shale-radius-sm:var(--radius-md,.5rem);--shale-radius-card:.625rem;--shale-radius:var(--radius-lg,.75rem);--shale-radius-panel:.875rem;--shale-radius-lg:var(--radius-xl,1rem);--shale-radius-pill:var(--radius-full,9999px);--shale-shadow:var(--shadow-sm,0 1px 2px #0000000d);--shale-shadow-md:var(--shadow-md,0 4px 6px #00000012);--shale-shadow-lg:var(--shadow-lg,0 10px 15px #0000001a);--shale-shadow-elevated:var(--card-shadow-elevated,0 4px 12px #0000001f);--shale-shadow-dark:0 8px 24px #00000038;--shale-font-heading:var(--font-size-lg,1.125rem);--shale-font-subtitle:var(--font-size-sm,.875rem);--shale-font-body:var(--font-size-body,.9375rem);--shale-font-caption:var(--font-size-xs,.75rem);--shale-weight-heading:var(--font-weight-semibold,600);--shale-weight-body:var(--font-weight-medium,500);--shale-space-0:var(--space-0,0);--shale-space-1:var(--space-1,.25rem);--shale-space-2:var(--space-2,.5rem);--shale-space-3:var(--space-3,.75rem);--shale-space-4:var(--space-4,1rem);--shale-space-5:var(--space-5,1.25rem);--shale-space-6:var(--space-6,1.5rem);--shale-space-8:var(--space-8,2rem);--shale-space-10:var(--space-10,2.5rem);--shale-shell-padding-x:var(--shale-space-6);--shale-shell-padding-y:var(--shale-space-5);--shale-shell-padding-bottom:var(--shale-space-8);--shale-gap:var(--shale-space-4);--shale-gap-sm:var(--shale-space-3);--shale-btn-height-sm:36px;--shale-btn-height-md:var(--shale-min-touch);--shale-btn-height-lg:48px;--shale-btn-gap:var(--space-2);--shale-btn-icon-gap:var(--space-2);--shale-btn-icon-size:1.125rem;--shale-card-padding:var(--space-4);--shale-card-padding-sm:var(--space-3);--shale-card-padding-lg:var(--space-6);--shale-modal-backdrop:var(--modal-bg);--shale-min-touch:44px;--shale-safe-top:env(safe-area-inset-top,0px);--shale-safe-bottom:env(safe-area-inset-bottom,0px);--shale-safe-left:env(safe-area-inset-left,0px);--shale-safe-right:env(safe-area-inset-right,0px);--shale-focus-ring:2px solid var(--shale-cyan);--shale-focus-offset:2px;--shale-transition:var(--transition-normal,.2s ease-in-out);--shale-motion-duration-fast:var(--motion-duration-sm,.12s);--shale-motion-duration-normal:var(--motion-duration-md,.18s);--shale-motion-duration-slow:var(--motion-duration-lg,.24s);--shale-motion-easing-standard:var(--motion-easing-standard,cubic-bezier(.2, 0, 0, 1));--shale-motion-easing-enter:var(--motion-easing-decelerate,cubic-bezier(0, 0, 0, 1));--shale-motion-easing-exit:var(--motion-easing-accelerate,cubic-bezier(.3, 0, 1, 1));--shale-motion-scale-press:var(--motion-scale-active,.98);--shale-motion-slide-distance:var(--motion-slide-distance,8px);--shale-status-success:#6db89a;--shale-status-success-bright:#6ee7b7;--shale-status-success-soft:#9ec4b0;--shale-status-warning:#c4a86a;--shale-status-error:#fca5a5;--shale-status-error-soft:#f0c4c4;--shale-status-error-muted:#d4a0a0;--shale-status-neutral:#64748b;--shale-status-danger-bg:#8b3a3a;--shale-status-danger-text:#fce8e8;--shale-breakpoint-sm:var(--breakpoint-sm,640px);--shale-breakpoint-md:var(--breakpoint-md,768px);--shale-breakpoint-lg:var(--breakpoint-lg,1024px);--shale-breakpoint-xl:var(--breakpoint-xl,1280px)}.shale-immersive{--module-shale:var(--shale-dark-accent);--module-shale-soft:var(--shale-dark-surface);--module-shale-light:var(--shale-dark-accent-light);--module-silver:var(--shale-dark-silver);--module-midnight:var(--shale-dark-bg);--module-accent:var(--shale-dark-silver-muted);--module-radius:var(--shale-radius-lg);--module-radius-sm:var(--shale-radius);min-height:100%;padding-top:var(--shale-safe-top);padding-bottom:var(--shale-safe-bottom);padding-left:var(--shale-safe-left);padding-right:var(--shale-safe-right);background:linear-gradient(180deg, var(--module-midnight) 0%, var(--shale-dark-bg-gradient-end) 100%);color:var(--module-silver)}.shale-immersive :focus-visible{outline:var(--shale-focus-ring);outline-offset:var(--shale-focus-offset)}@media (prefers-reduced-motion:reduce){.shale-immersive *,.shale-immersive :before,.shale-immersive :after{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}.calendar-a8{gap:var(--shale-gap);color:var(--shale-text-on-light);flex-direction:column;padding:0;display:flex}.calendar-a8__filters{gap:var(--shale-space-3);flex-wrap:wrap;align-items:flex-end;display:flex}.calendar-a8__select-label{font-size:var(--shale-font-caption);color:var(--shale-text-muted);margin-bottom:var(--shale-space-1);display:block}.calendar-a8__select select{padding:var(--shale-space-2) var(--shale-space-3);border-radius:var(--shale-radius-sm);border:1px solid var(--shale-border);background:var(--surface,#fff);color:var(--shale-text-on-light);font-size:var(--shale-font-body)}.calendar-a8__toolbar{gap:var(--shale-space-3);flex-wrap:wrap;justify-content:space-between;align-items:center;display:flex}.calendar-a8__view-switch{border:1px solid var(--shale-border);border-radius:var(--shale-radius-card);box-shadow:var(--shale-shadow);display:inline-flex;overflow:hidden}.calendar-a8__view-btn{padding:var(--shale-space-2) var(--shale-space-4);background:var(--surface,#fff);cursor:pointer;font-size:var(--shale-font-subtitle);color:var(--shale-text-on-light);transition:background var(--shale-transition), color var(--shale-transition);border:none}.calendar-a8__view-btn--active{background:var(--button-primary-bg,var(--primary));color:var(--button-primary-text,#fff)}.calendar-a8__nav{align-items:center;gap:var(--shale-space-2);display:flex}.calendar-a8__nav-label{text-align:center;min-width:10rem;font-weight:var(--shale-weight-heading);color:var(--shale-text-on-light)}.calendar-a8__search{flex:1;min-width:12.5rem}.calendar-a8__search input{width:100%;padding:var(--shale-space-2) var(--shale-space-3);border-radius:var(--shale-radius-card);border:1px solid var(--shale-border);background:var(--surface,#fff);color:var(--shale-text-on-light);font-size:var(--shale-font-body)}.calendar-a8__legend{gap:var(--shale-space-2);font-size:var(--shale-font-caption);color:var(--shale-text-muted);flex-wrap:wrap;display:flex}.calendar-a8__layout{gap:var(--shale-space-4);grid-template-columns:1fr 18.75rem;align-items:start;display:grid}@media (width<=1024px){.calendar-a8__layout{grid-template-columns:1fr}}.calendar-a8__main{background:var(--surface,#fff);border:1px solid var(--shale-border);border-radius:var(--shale-radius-lg);box-shadow:var(--shale-shadow-md);padding:var(--shale-space-4);min-height:30rem;position:relative}.calendar-a8__month-grid{gap:var(--shale-space-2);grid-template-columns:repeat(7,minmax(0,1fr));width:100%;display:grid}.calendar-a8__month-head{text-align:center;font-size:var(--shale-font-caption);font-weight:var(--shale-weight-heading);color:var(--shale-text-muted);padding-bottom:var(--shale-space-1);min-width:0}.calendar-a8__month-day{min-width:0;min-height:5.5rem;padding:var(--shale-space-2);border-radius:var(--shale-radius-sm);border:1px solid var(--shale-silver-soft);background:var(--shale-light)}.calendar-a8__month-day--muted{opacity:.45}.calendar-a8__month-day--today .calendar-a8__month-date{background:var(--primary);color:var(--button-primary-text,#fff);border-radius:var(--shale-radius-pill);justify-content:center;align-items:center;width:1.5rem;height:1.5rem;display:inline-flex}.calendar-a8__month-date{font-size:var(--shale-font-body);font-weight:var(--shale-weight-heading);color:var(--shale-text-on-light)}.calendar-a8__chip{align-items:center;gap:var(--shale-space-1);width:100%;min-width:0;margin-top:var(--shale-space-1);padding:var(--shale-space-1) var(--shale-space-2);border-radius:var(--shale-radius-sm);font-size:var(--shale-font-caption);text-align:left;cursor:pointer;border:1px solid #0000;display:flex;overflow:hidden}.calendar-a8__chip--selected{box-shadow:0 0 0 2px var(--primary)}.calendar-a8__chip--anchor{font-weight:var(--shale-weight-heading)}.calendar-a8__chip-label{white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.calendar-a8__chip-more{margin-top:var(--shale-space-1);font-size:var(--shale-font-caption);color:var(--shale-text-muted);display:block}.calendar-a8__week,.calendar-a8__day{position:relative}.calendar-a8__week-days-header{gap:var(--shale-space-1);margin-bottom:var(--shale-space-1);grid-template-columns:3.5rem repeat(7,minmax(0,1fr));display:grid}.calendar-a8__week-gutter--header{padding-top:0}.calendar-a8__week-col-head{text-align:center;font-size:var(--shale-font-caption);margin-bottom:var(--shale-space-1);align-items:center;gap:var(--shale-space-1);flex-direction:column;display:flex}.calendar-a8__week-col-weekday{font-size:var(--shale-font-caption);font-weight:var(--shale-weight-heading);color:var(--shale-text-muted);text-transform:uppercase;letter-spacing:.03em}.calendar-a8__week-col-date{min-width:1.75rem;min-height:1.75rem;font-size:var(--shale-font-heading);color:var(--shale-text-on-light);justify-content:center;align-items:center;line-height:1;display:inline-flex}.calendar-a8__week-col-date--compact{font-size:var(--shale-font-body);min-width:1.5rem;min-height:1.5rem}.calendar-a8__week-col-head--today .calendar-a8__week-col-date{background:var(--primary);color:var(--button-primary-text,#fff);border-radius:var(--shale-radius-pill)}.calendar-a8__day-head{align-items:baseline;gap:var(--shale-space-3);margin-bottom:var(--shale-space-3);padding-bottom:var(--shale-space-2);border-bottom:1px solid var(--shale-silver-soft);flex-wrap:wrap;display:flex}.calendar-a8__day-head-weekday{font-size:var(--shale-font-body);font-weight:var(--shale-weight-heading);color:var(--shale-text-muted);margin:0}.calendar-a8__day-head-date{align-items:baseline;gap:var(--shale-space-2);display:flex}.calendar-a8__day-head-month,.calendar-a8__day-head-year{font-size:var(--shale-font-body);font-weight:var(--shale-weight-heading);color:var(--shale-text-muted)}.calendar-a8__day-head-day{color:var(--shale-text-on-light);font-size:2.25rem;font-weight:800;line-height:1}.calendar-a8__day-head--today .calendar-a8__day-head-day{color:var(--primary)}.calendar-a8__week-allday{gap:var(--shale-space-1);margin-bottom:var(--shale-space-2);grid-template-columns:3.5rem repeat(7,minmax(0,1fr));display:grid}.calendar-a8__week-gutter{font-size:var(--shale-font-caption);color:var(--shale-text-muted);padding-top:var(--shale-space-2)}.calendar-a8__week-body{gap:var(--shale-space-1);grid-template-columns:3.5rem repeat(7,minmax(0,1fr));height:35rem;display:grid}.calendar-a8__week-hours,.calendar-a8__day-hours{flex-direction:column;display:flex}.calendar-a8__week-hour,.calendar-a8__day-hour{font-size:var(--shale-font-caption);color:var(--shale-text-muted);border-top:1px solid var(--shale-silver-soft);padding-top:var(--shale-space-1);flex:1}.calendar-a8__week-col,.calendar-a8__day-track{border-left:1px solid var(--shale-silver-soft);position:relative}.calendar-a8__week-slot,.calendar-a8__day-slot{border-top:1px solid var(--shale-silver-soft);height:7.14286%}.calendar-a8__week-block,.calendar-a8__day-block{padding:var(--shale-space-2);border-radius:var(--shale-radius-sm);text-align:left;cursor:pointer;z-index:1;border:none;border-left:3px solid;position:absolute;left:2px;right:2px;overflow:hidden}.calendar-a8__week-block--selected,.calendar-a8__day-block--selected{box-shadow:0 0 0 2px var(--primary);z-index:2}.calendar-a8__week-block-title{font-size:var(--shale-font-caption);font-weight:var(--shale-weight-heading);display:block}.calendar-a8__week-block-meta{gap:var(--shale-space-1);margin-top:var(--shale-space-1);display:flex}.calendar-a8__day-allday{gap:var(--shale-space-2);margin-bottom:var(--shale-space-3);flex-wrap:wrap;display:flex}.calendar-a8__day-grid{grid-template-columns:3.5rem 1fr;height:35rem;display:grid}.calendar-a8__day-block-head{justify-content:space-between;align-items:center;gap:var(--shale-space-2);display:flex}.calendar-a8__day-block-time,.calendar-a8__day-block-loc{font-size:var(--shale-font-caption);color:var(--shale-text-muted);display:block}.calendar-a8__day-block-foot{gap:var(--shale-space-1);margin-top:var(--shale-space-2);display:flex}.calendar-a8__now-line{background:var(--primary);z-index:3;pointer-events:none;height:2px;position:absolute;left:0;right:0}.calendar-a8__now-dot{border-radius:var(--shale-radius-pill);background:var(--primary);width:10px;height:10px;position:absolute;top:-4px;left:-5px}.calendar-a8__avatar{border-radius:var(--shale-radius-pill);color:#fff;width:1.5rem;height:1.5rem;font-size:var(--shale-font-caption);font-weight:var(--shale-weight-heading);justify-content:center;align-items:center;display:inline-flex}.calendar-a8__avatar--xs{width:1.125rem;height:1.125rem;font-size:.5rem}.calendar-a8__avatar-more{font-size:var(--shale-font-caption);color:var(--shale-text-muted)}.calendar-a8__sync-dot{border-radius:var(--shale-radius-pill);background:var(--shale-status-success);width:.5rem;height:.5rem;display:inline-block}.calendar-a8__context{background:var(--surface,#fff);border:1px solid var(--shale-border);border-radius:var(--shale-radius-lg);box-shadow:var(--shale-shadow-md);padding:var(--shale-space-4);top:var(--shale-space-4);position:sticky}.calendar-a8__context--empty{color:var(--shale-text-muted)}.calendar-a8__context-hint{font-size:var(--shale-font-body);line-height:1.5}.calendar-a8__context-header{justify-content:space-between;align-items:center;display:flex}.calendar-a8__context-header h3{font-size:var(--shale-font-heading);color:var(--shale-text-on-light);margin:0}.calendar-a8__context-close{font-size:var(--shale-font-heading);cursor:pointer;color:var(--shale-text-muted);background:0 0;border:none}.calendar-a8__context-title-row{align-items:flex-start;gap:var(--shale-space-2);margin-top:var(--shale-space-3);display:flex}.calendar-a8__context-dot{border-radius:var(--shale-radius-pill);width:10px;height:10px;margin-top:var(--shale-space-2);flex-shrink:0}.calendar-a8__context-title-row h4{font-size:var(--shale-font-heading);color:var(--shale-text-on-light);margin:0}.calendar-a8__context-time,.calendar-a8__context-location{font-size:var(--shale-font-body);color:var(--shale-text-muted);margin:var(--shale-space-2) 0 0}.calendar-a8__context-attendees{gap:var(--shale-space-1);margin:var(--shale-space-3) 0;display:flex}.calendar-a8__context-actions{gap:var(--shale-space-2);margin-bottom:var(--shale-space-4);display:flex}.calendar-a8__context-section{margin-bottom:var(--shale-space-4);padding-top:var(--shale-space-3);border-top:1px solid var(--shale-silver-soft)}.calendar-a8__context-section h5{margin:0 0 var(--shale-space-2);font-size:var(--shale-font-caption);text-transform:uppercase;letter-spacing:.04em;color:var(--shale-text-muted)}.calendar-a8__context-section ul{margin:0;padding:0;list-style:none}.calendar-a8__qty-low{color:var(--shale-status-error-muted);font-weight:var(--shale-weight-heading)}.calendar-a8__link-btn,.calendar-a8__action-list button{color:var(--primary);cursor:pointer;font-size:var(--shale-font-body);padding:var(--shale-space-1) 0;background:0 0;border:none}.calendar-a8__sync-row{font-size:var(--shale-font-body);padding:var(--shale-space-1) 0;justify-content:space-between;display:flex}.calendar-a8__sync-ok{color:var(--shale-status-success);font-weight:var(--shale-weight-heading)}.calendar-a8__sync-pending{color:var(--shale-status-warning)}.calendar-a8__context-meta{font-size:var(--shale-font-caption);color:var(--shale-text-muted);margin:0}.calendar-a8__metrics{gap:var(--shale-space-3);grid-template-columns:repeat(auto-fit,minmax(10rem,1fr));display:grid}.calendar-a8__metric{gap:var(--shale-space-3);padding:var(--shale-space-3) var(--shale-space-4);border-radius:var(--shale-radius-lg);border:1px solid var(--shale-border);background:var(--surface,#fff);box-shadow:var(--shale-shadow);align-items:center;display:flex}.calendar-a8__metric--purple{border-left:4px solid #7c3aed}.calendar-a8__metric--green{border-left:4px solid var(--shale-status-success)}.calendar-a8__metric--orange{border-left:4px solid var(--shale-status-warning)}.calendar-a8__metric--red{border-left:4px solid var(--shale-status-error-muted)}.calendar-a8__metric--blue{border-left:4px solid var(--primary)}.calendar-a8__metric-icon{font-size:var(--shale-font-heading)}.calendar-a8__metric-label{font-size:var(--shale-font-caption);color:var(--shale-text-muted);display:block}.calendar-a8__metric strong{font-size:var(--shale-font-heading);color:var(--shale-text-on-light)}.calendar-a8__metric-delta{font-size:var(--shale-font-caption);color:var(--shale-text-muted);display:block}.calendar-a8__main--refreshing{pointer-events:none}.calendar-a8__loading-overlay{background:color-mix(in srgb, var(--surface,#fff) 82%, transparent);color:var(--shale-text-muted);z-index:2;border-radius:inherit;justify-content:center;align-items:center;display:flex;position:absolute;inset:0}.calendar-a8__main--refreshing:after{content:"";background:color-mix(in srgb, var(--surface,#fff) 55%, transparent);pointer-events:none;z-index:1;border-radius:inherit;position:absolute;inset:0}@media (prefers-reduced-motion:reduce){.calendar-a8__view-btn,.calendar-a8__main--refreshing:after,.calendar-a8__loading-overlay{transition:none}.calendar-a8 *{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}.event-form-modal{z-index:var(--z-modal,1050);padding:var(--space-md);justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.event-form-modal .modal-backdrop{position:absolute;inset:0}.event-form-modal .modal-panel{z-index:1;background:var(--surface);border:1px solid var(--card-border,#e5e7eb);border-radius:var(--radius-xl,12px);width:min(480px,100%);max-height:90vh;box-shadow:var(--shadow-2xl);position:relative;overflow:auto}
