/* OBSL module isolation layer — v3.0108-stable
   Loaded after legacy CSS. Each feature owns a single root/state/style/render namespace. */

/* Events */
.obsl-module--events{--obsl-events-font-size:16px;--obsl-events-font-family:system-ui,sans-serif;isolation:isolate}
.obsl-module--events :is(.upcoming-box,#event-motion-v23,.obsl-event-copy-v23,.obsl-event-incoming-v23){font-family:var(--obsl-events-font-family)!important;font-size:var(--obsl-events-font-size)!important}
.obsl-module--events .event-content{color:var(--event-content-color,#111)!important}.obsl-module--events .event-name{color:var(--event-name-color,#111)!important}.obsl-module--events .event-date{color:var(--event-date-color,#d32f2f)!important}.obsl-module--events :is(.event-label-text,.event-weekday){color:var(--event-label-color,#374151)!important}.obsl-module--events .highlight{color:var(--event-highlight-color,#d32f2f)!important}

/* Birthday */
.obsl-module--birthday,#birthday-motion-v23{isolation:isolate}.obsl-module--birthday .birthday-name,#birthday-motion-v23 .birthday-name{color:var(--birthday-name-color,inherit)!important}.obsl-module--birthday .birthday-date,#birthday-motion-v23 .birthday-date{color:var(--birthday-date-color,inherit)!important}

/* Google Calendar */
.obsl-module--google-calendar,#calendar-motion-v23{isolation:isolate}.obsl-module--google-calendar{--calendar-brand-image-size:34px}
#calendar-motion-v23 .calendar-event-name{color:var(--calendar-event-color,inherit)!important}#calendar-motion-v23 .calendar-date{color:var(--calendar-date-color,inherit)!important}#calendar-motion-v23 .calendar-weekday{color:var(--calendar-weekday-color,inherit)!important}
.obsl-module--google-calendar .calendar-brand-image{display:block!important;inline-size:auto!important;block-size:auto!important;max-inline-size:min(var(--calendar-brand-image-size,34px),64px,100%)!important;max-block-size:min(var(--calendar-brand-image-size,34px),42px)!important;object-fit:contain!important;border-radius:8px!important;flex:0 0 auto!important}
.google-calendar-image-preview{display:flex;align-items:center;min-height:50px;margin:5px 0 8px}.calendar-image-preview-bubble{display:inline-flex;align-items:center;justify-content:center;min-width:90px;min-height:46px;padding:5px 12px;border:1px solid var(--line,#d1d5db);border-radius:14px;background:var(--panel,#fff);overflow:hidden}.calendar-image-preview-bubble img{display:block;width:auto;height:auto;max-width:min(var(--calendar-brand-image-size,34px),64px);max-height:min(var(--calendar-brand-image-size,34px),42px);object-fit:contain}
.google-calendar-direct-save{display:flex;align-items:center;flex-wrap:wrap;gap:8px;padding:10px 12px;margin-top:8px;border-top:1px solid var(--line,#d1d5db)}.google-calendar-direct-save .system-menu-button{flex:1 1 180px}.google-calendar-direct-save .admin-form-message{flex:2 1 220px;min-height:1.2em}

/* Moments */
.obsl-module--moment,.moments-layout,.moment-detail-dialog{isolation:isolate}.moment-detail-dialog .moment-article-content{color:var(--moment-content-color,inherit)}

/* Market */
.obsl-module--market{isolation:isolate}

/* Toast / Notification */
.obsl-module--toast{isolation:isolate}#obsl-toast-stack>.obsl-toast-item{--obsl-toast-content-color:#111;--obsl-toast-font-family:system-ui,sans-serif;--obsl-toast-font-size:13px}#obsl-toast-stack>.obsl-toast-item .obsl-toast-item-track{color:var(--obsl-toast-content-color)!important;font-family:var(--obsl-toast-font-family)!important;font-size:var(--obsl-toast-font-size)!important}#obsl-toast-stack>.obsl-toast-item .obsl-toast-item-track>*:not(.obsl-notify-tag){color:inherit!important;font-family:inherit!important;font-size:inherit!important}

/* Countdown, Weather, Perpetual Calendar */
.obsl-module--countdown,.obsl-module--weather,.obsl-module--perpetual-calendar{isolation:isolate;contain:layout style paint}
.obsl-module--countdown .cd-page{backface-visibility:hidden;-webkit-backface-visibility:hidden;will-change:transform,opacity}

/* Admin media helper */
.obsl-media-clear-row{display:flex;gap:8px;align-items:center;margin-top:6px}.obsl-media-clear-button{width:auto!important;min-height:36px!important;padding:7px 12px!important}
