/* Keep card and control hover states tactile without shifting their layout. */
.cf-button:hover:not(:disabled),
.cf-auth-choice:hover,
.church-settings-modal .church-logo-upload:hover,
.primary-button:hover,
.announcement-row:hover,
.content-card:hover,
.mini-group:hover,
.group-card:hover,
.featured-library:hover,
.teaching-draft-row:hover,
.teaching-block-picker-grid button:hover,
.appointment-card:hover,
.choice-card:hover .choice-card-surface,
.group-calendar-event:hover,
.announcement-related-add:hover,
.group-create-compact:hover,
.church-space-card:hover,
#pageCreateFab > .page-create-fab:hover,
#eventDrawer .event-drawer-quick-button:hover,
#eventDrawer .event-attendance-menu .attendance-button:hover,
#prayerDetailPray.cf-prayer-pray-action:hover,
.local-test-choice:hover,
.local-test-choice:focus-visible {
  transform: none;
}

/* Anonymous requests keep no author/footer, while their action aligns with
   the lower-right action position of the other prayer cards. */
.prayer-item:has(> .pray-inline--anonymous) {
  display: flex;
  flex-direction: column;
}
.prayer-item .pray-inline--anonymous {
  margin: auto 0 3px auto;
}

/* Detail surfaces keep a close control on the right on desktop. */
#teachingPageHero > .teaching-page-close {
  position: absolute;
  top: 16px;
  right: 20px;
  z-index: 12;
  border-color: rgba(255,255,255,.14);
  color: #fff;
  background: rgba(8,9,12,.68);
  -webkit-backdrop-filter: blur(8px);
  backdrop-filter: blur(8px);
}

/* On mobile, detail pages follow the native reading direction: return on the
   left and management actions in the former close position on the right. */
@media (max-width: 720px) {
  .group-drawer > .drawer-close {
    left: max(18px, env(safe-area-inset-left));
    right: auto;
  }
  .group-discovery-drawer > header {
    padding-right: 0;
    padding-left: 56px;
  }
  .group-discovery-drawer .drawer-close {
    left: 0;
    right: auto;
  }
  #teachingPageHero > .teaching-page-close {
    top: 12px;
    left: max(12px, env(safe-area-inset-left));
    right: auto;
  }
  .group-drawer > .drawer-close svg,
  .group-discovery-drawer .drawer-close svg,
  #teachingPageHero > .teaching-page-close svg {
    display: none;
  }
  .group-drawer > .drawer-close::before,
  .group-discovery-drawer .drawer-close::before,
  #teachingPageHero > .teaching-page-close::before {
    content: "";
    position: absolute;
    top: 14px;
    left: 10px;
    width: 8px;
    height: 8px;
    border: solid currentColor;
    border-width: 0 2px 2px 0;
    transform: rotate(135deg);
  }
  .group-drawer > .drawer-close::after,
  .group-discovery-drawer .drawer-close::after,
  #teachingPageHero > .teaching-page-close::after {
    content: "";
    position: absolute;
    top: 18px;
    left: 11px;
    width: 16px;
    height: 2px;
    border-radius: 999px;
    background: currentColor;
  }
  .group-drawer > .cf-drawer-menu-trigger {
    right: max(18px, env(safe-area-inset-right));
    left: auto;
  }
  #page-teaching-detail > .cf-drawer-menu-trigger {
    top: 12px;
    right: max(12px, env(safe-area-inset-right));
    left: auto;
  }
}

/* Teaching detail is an immersive, app-wide reading surface. */
body.cf-teaching-immersive-open {
  overflow: hidden !important;
  padding-bottom: 0;
}
body.cf-teaching-immersive-open #sidebar,
body.cf-teaching-immersive-open .topbar,
body.cf-teaching-immersive-open .mobile-nav,
body.cf-teaching-immersive-open #pageCreateFab {
  visibility: hidden;
}
/* The teaching detail closes directly onto its origin page; do not replay the
   generic page-entry motion while the hidden shell is being restored. */
.page.cf-teaching-returned.active {
  animation: none;
}
#page-teaching-detail.active {
  position: fixed;
  z-index: 99;
  inset: 0;
  width: auto;
  min-width: 0;
  min-height: 100dvh;
  height: 100dvh;
  margin: 0;
  padding: 0;
  overflow-y: scroll;
  overscroll-behavior: contain;
  -webkit-overflow-scrolling: touch;
  color: var(--text);
  background: #101216;
  isolation: isolate;
  scrollbar-gutter: stable;
  -ms-overflow-style: auto !important;
  scrollbar-width: auto !important;
  scrollbar-color: rgba(240,223,187,.68) #0b0d11;
  animation: teachingImmersiveIn .32s cubic-bezier(.22,.8,.24,1) backwards;
}
#page-teaching-detail.active.is-closing {
  pointer-events: none;
  animation: teachingImmersiveOut .32s cubic-bezier(.22,.8,.24,1) both;
}
#page-teaching-detail.active::-webkit-scrollbar { display: block !important; width: 14px !important; }
#page-teaching-detail.active::-webkit-scrollbar-track { background: #0b0d11; border-left: 1px solid var(--line); }
#page-teaching-detail.active::-webkit-scrollbar-thumb { min-height: 56px; border: 4px solid #0b0d11; border-radius: 999px; background: rgba(240,223,187,.68); }
#page-teaching-detail.active::-webkit-scrollbar-thumb:hover { background: var(--cream); }
#page-teaching-detail.active .teaching-page-hero {
  border: 0;
  border-radius: 0;
}
#page-teaching-detail.active .teaching-page-content {
  width: min(1080px, calc(100% - 48px));
  padding-bottom: 112px;
}
#page-teaching-detail.active .teaching-page-tabs {
  top: 0;
}
@keyframes teachingImmersiveIn {
  from { transform: translateX(100%); }
  to { transform: translateX(0); }
}
@keyframes teachingImmersiveOut {
  from { transform: translateX(0); }
  to { transform: translateX(100%); }
}
@media (prefers-reduced-motion: reduce) {
  #page-teaching-detail.active,
  #page-teaching-detail.active.is-closing { animation: none; }
}
@media (max-width: 650px) {
  #page-teaching-detail.active .teaching-page-content {
    width: calc(100% - 28px);
  }
}

/* Mobile data details follow the finger and close with a rightward swipe.
   Editors and creation dialogs sit above these surfaces and keep ownership of
   their own gestures. */
@media (max-width: 720px) {
  .group-drawer.open,
  .group-discovery-drawer.open,
  #page-teaching-detail.active {
    touch-action: pan-y pinch-zoom;
  }

  :is(.group-drawer.open, .group-discovery-drawer.open, #page-teaching-detail.active).cf-detail-swipe-active {
    transform: translate3d(var(--cf-detail-swipe-x, 0), 0, 0) !important;
    transition: none !important;
  }

  :is(.group-drawer.open, .group-discovery-drawer.open, #page-teaching-detail.active).cf-detail-swipe-settling {
    transform: translate3d(0, 0, 0) !important;
    transition: transform .2s cubic-bezier(.22, .8, .24, 1) !important;
  }

  :is(.group-drawer.open, .group-discovery-drawer.open, #page-teaching-detail.active).cf-detail-swipe-committing {
    transform: translate3d(100%, 0, 0) !important;
    transition: transform .19s cubic-bezier(.4, 0, 1, 1) !important;
  }
}

/* Data items use the same discreet outline as announcement cards, without a lift. */
.prayer-item,
.cf-member-card,
.group-calendar-event {
  transition: border-color .2s ease, background .2s ease;
}
.prayer-item:is(:hover, :focus-within),
.cf-member-card:is(:hover, :focus-visible),
.group-calendar-event:is(:hover, :focus-visible) {
  border-color: var(--line-strong);
  transform: none;
}
.cf-member-card:is(:hover, :focus-visible) { background: #13171d; }
.group-calendar-event:is(:hover, :focus-visible) { background: rgba(255,255,255,.025); }

/* Calendar data retains its event colour and gains the same inner outline. */
.agenda-week-event,
.agenda-day-event,
.agenda-month-grid .calendar-day .cal-event {
  transition: box-shadow .2s ease, filter .2s ease;
}
.agenda-week-event:is(:hover, :focus-visible),
.agenda-day-event:is(:hover, :focus-visible),
.agenda-month-grid .calendar-day .cal-event:hover,
.agenda-month-grid .calendar-day:focus-visible .cal-event {
  box-shadow: inset 0 0 0 1px var(--line-strong);
  filter: brightness(1.06);
  transform: none;
}

/* Metadata remains read-only in the inline content editor. */
#page-teaching-detail.is-inline-editing [data-inline-teaching-field] {
  position: relative;
  z-index: 2;
  min-width: 1ch;
  border-radius: 8px;
  outline: 1px dashed rgba(240, 223, 187, .48);
  outline-offset: 5px;
  cursor: text;
}
#page-teaching-detail.is-inline-editing [data-inline-teaching-field]:focus {
  outline: 2px solid var(--cream);
  outline-offset: 6px;
}
#page-teaching-detail.is-inline-editing #closeTeachingPage,
#page-teaching-detail.is-inline-editing .cf-drawer-menu-trigger,
#page-teaching-detail.is-inline-editing .cf-drawer-menu { display: none !important; }
/* Edit commands deliberately stay with the pencil instead of interrupting the content. */
.teaching-inline-edit-controls {
  position: fixed;
  z-index: 17;
  right: 32px;
  bottom: 90px;
  display: grid;
  gap: 8px;
}
.teaching-inline-floating-action {
  display: grid;
  width: 42px;
  height: 42px;
  margin: 0;
  place-items: center;
  border: 1px solid var(--line-strong);
  border-radius: 50%;
  color: var(--text);
  background: rgba(35,39,46,.98);
  box-shadow: 0 10px 22px rgba(0,0,0,.3);
  cursor: pointer;
}
.teaching-inline-floating-action:hover:not(:disabled),
.teaching-inline-floating-action:focus-visible {
  border-color: rgba(240,223,187,.7);
  color: var(--cream);
  background: rgba(47,52,60,.98);
  outline: 0;
  transform: none;
}
.teaching-inline-floating-action:disabled { opacity: .38; cursor: not-allowed; }
.teaching-inline-floating-action svg { width: 17px; height: 17px; }
.teaching-inline-floating-action--save { color: var(--ink); border-color: var(--cream); background: var(--cream); }
.teaching-inline-floating-action--save:hover,
.teaching-inline-floating-action--save:focus-visible { color: var(--ink); background: #fff4d6; }

.teaching-inline-text-toolbar,
.teaching-inline-media-composer {
  position: fixed;
  z-index: 18;
  right: 94px;
  bottom: 90px;
  box-sizing: border-box;
  max-width: calc(100vw - 164px);
  padding: 6px;
  border: 1px solid var(--line-strong);
  border-radius: 12px;
  background: rgba(24,28,35,.98);
  box-shadow: 0 14px 32px rgba(0,0,0,.3);
}
.teaching-inline-text-toolbar:not([hidden]):not(.is-deploying):not(.is-retracting):not(.has-source-position),
.teaching-inline-media-composer:not([hidden]):not(.is-deploying):not(.is-retracting):not(.has-source-position) {
  animation: teaching-inline-palette-deploy .5s cubic-bezier(.22,.82,.2,1) both;
}
.teaching-inline-text-toolbar.has-source-position,
.teaching-inline-media-composer.has-source-position {
  top: var(--teaching-palette-top);
  bottom: auto;
}
.teaching-inline-text-toolbar.is-deploying,
.teaching-inline-media-composer.is-deploying {
  clip-path: polygon(100% 0,100% 0,100% 100%,100% 100%);
}
.teaching-inline-text-toolbar.is-deploying.is-deploying-active,
.teaching-inline-media-composer.is-deploying.is-deploying-active {
  animation: teaching-inline-palette-deploy .5s cubic-bezier(.22,.82,.2,1) both;
}
.teaching-inline-text-toolbar.is-retracting,
.teaching-inline-media-composer.is-retracting {
  pointer-events: none;
  animation: teaching-inline-palette-retract .5s cubic-bezier(.55,.02,.78,.22) both;
}
.teaching-inline-text-toolbar.is-retracting.is-switching,
.teaching-inline-media-composer.is-retracting.is-switching {
  animation-duration: .22s;
  animation-timing-function: cubic-bezier(.4,0,.25,1);
}
@keyframes teaching-inline-palette-deploy {
  from { clip-path: polygon(100% 0,100% 0,100% 100%,100% 100%); }
  to { clip-path: polygon(0 0,100% 0,100% 100%,0 100%); }
}
@keyframes teaching-inline-palette-retract {
  from { clip-path: polygon(0 0,100% 0,100% 100%,0 100%); }
  to { clip-path: polygon(100% 0,100% 0,100% 100%,100% 100%); }
}
.teaching-inline-text-toolbar {
  display: flex;
  width: max-content;
  max-width: calc(100vw - 110px);
  gap: 6px;
  align-items: center;
  overflow: visible;
  scrollbar-width: none;
}
.teaching-inline-text-toolbar::-webkit-scrollbar { display: none; }
.teaching-inline-text-toolbar__options {
  display: flex;
  min-width: max-content;
  align-items: center;
  gap: 5px;
}
.teaching-inline-text-toolbar__group {
  display: flex;
  gap: 5px;
  padding: 0;
  border: 0;
}
.teaching-inline-text-toolbar__group + .teaching-inline-text-toolbar__group {
  padding-left: 5px;
  border-left: 1px solid var(--line);
}
.teaching-inline-text-toolbar button {
  display: grid;
  width: 36px;
  height: 36px;
  box-sizing: border-box;
  margin: 0;
  place-items: center;
  border: 1px solid var(--line-strong);
  border-radius: 9px;
  color: var(--muted);
  background: rgba(35,39,46,.98);
  cursor: pointer;
}
.teaching-inline-text-toolbar [data-inline-text-field]:hover,
.teaching-inline-text-toolbar [data-inline-text-field]:focus-visible,
.teaching-inline-text-toolbar [data-inline-text-field].is-active,
.teaching-inline-text-toolbar [data-inline-text-toggle]:hover,
.teaching-inline-text-toolbar [data-inline-text-toggle]:focus-visible,
.teaching-inline-text-toolbar [data-inline-text-toggle].is-active { color: var(--ink); background: var(--cream); outline: 0; transform: none; }
.teaching-inline-text-toolbar [data-inline-text-toggle]:disabled,
.teaching-inline-text-toolbar [data-inline-text-toggle]:disabled:hover,
.teaching-inline-text-toolbar [data-inline-text-toggle]:disabled:focus-visible {
  border-color: var(--line-strong);
  color: rgba(190,194,203,.38);
  background: rgba(35,39,46,.98);
  cursor: not-allowed;
  opacity: .58;
}
.teaching-inline-text-toolbar__bold-cycle > span { font: 400 18px/1 "DM Sans", system-ui, sans-serif; }
.teaching-inline-text-toolbar__bold-cycle--bold > span,
.teaching-inline-text-toolbar__bold-cycle--header > span { font-weight: 800; }
.teaching-inline-text-toolbar button.teaching-inline-text-toolbar__bold-cycle--bold,
.teaching-inline-text-toolbar button.teaching-inline-text-toolbar__bold-cycle--header { color: var(--ink); background: var(--cream); }
.teaching-inline-text-toolbar__bold-cycle:hover,
.teaching-inline-text-toolbar__bold-cycle:focus-visible { border-color: rgba(240,223,187,.7); outline: 0; transform: none; }
.teaching-inline-text-toolbar button.teaching-inline-text-toolbar__bold-cycle--bold:hover,
.teaching-inline-text-toolbar button.teaching-inline-text-toolbar__bold-cycle--bold:focus-visible,
.teaching-inline-text-toolbar button.teaching-inline-text-toolbar__bold-cycle--header:hover,
.teaching-inline-text-toolbar button.teaching-inline-text-toolbar__bold-cycle--header:focus-visible { color: var(--ink); background: var(--cream); }
.teaching-inline-text-toolbar svg { width: 16px; height: 16px; }
.teaching-inline-text-toolbar b { font: 700 13px/1 "Manrope"; }
.teaching-inline-text-toolbar .text-size-xl { font-size: 17px; }
.teaching-inline-text-toolbar .text-size-large { font-size: 15px; }
.teaching-inline-text-toolbar .text-size-small { font-size: 10px; }
.teaching-inline-text-toolbar .text-style-underline { text-decoration: underline; text-decoration-thickness: 1.5px; text-underline-offset: 2px; }
.teaching-inline-color-swatch {
  width: 14px;
  height: 14px;
  box-sizing: border-box;
  border: 1px solid rgba(255,255,255,.36);
  border-radius: 50%;
  box-shadow: 0 0 0 1px rgba(0,0,0,.2);
}
.teaching-inline-color-swatch--white { background: #fff; }
.teaching-inline-color-swatch--gray { background: var(--muted); }
.teaching-inline-color-swatch--accent { background: var(--cream); }

.teaching-inline-palette-close,
.teaching-inline-palette-confirm,
.teaching-inline-palette-remove {
  display: grid;
  width: 36px;
  height: 36px;
  box-sizing: border-box;
  margin: 0;
  place-items: center;
  border: 1px solid var(--line-strong);
  border-radius: 9px;
  cursor: pointer;
}
.teaching-inline-palette-actions {
  display: flex;
  align-items: flex-start;
  gap: 5px;
}
.teaching-inline-palette-move-actions {
  display: grid;
  flex: 0 0 36px;
  width: 36px;
  height: 36px;
  grid-template-rows: repeat(2, minmax(0, 1fr));
  gap: 4px;
}
.teaching-inline-text-toolbar .teaching-inline-palette-move,
.teaching-inline-palette-move {
  display: grid;
  width: 36px;
  height: auto;
  min-height: 0;
  box-sizing: border-box;
  margin: 0;
  padding: 0;
  place-items: center;
  border: 1px solid var(--line-strong);
  border-radius: 6px;
  color: var(--muted);
  background: rgba(35,39,46,.98);
  cursor: pointer;
}
.teaching-inline-palette-move:hover,
.teaching-inline-palette-move:focus-visible { border-color: rgba(240,223,187,.7); color: var(--cream); outline: 0; transform: none; }
.teaching-inline-palette-move:disabled { opacity: .32; cursor: not-allowed; }
.teaching-inline-palette-move span { font: 600 12px/1 sans-serif; }
.teaching-inline-text-toolbar__actions {
  flex: 0 0 auto;
  flex-direction: row;
  padding-left: 6px;
  border-left: 1px solid var(--line);
}
.teaching-inline-palette-close {
  color: var(--muted);
  background: rgba(35,39,46,.98);
}
.teaching-inline-palette-close:hover,
.teaching-inline-palette-close:focus-visible { border-color: rgba(240,223,187,.7); color: var(--cream); outline: 0; transform: none; }
.teaching-inline-palette-close svg { width: 15px; height: 15px; }
.teaching-inline-palette-confirm,
.teaching-inline-text-toolbar button.teaching-inline-palette-confirm {
  color: var(--ink);
  border-color: var(--cream);
  background: var(--cream);
}
.teaching-inline-palette-confirm:hover,
.teaching-inline-palette-confirm:focus-visible { color: var(--ink); background: #fff4d6; outline: 0; transform: none; }
.teaching-inline-palette-confirm:disabled { opacity: .52; cursor: wait; }
.teaching-inline-palette-confirm svg { width: 16px; height: 16px; }
.teaching-inline-palette-remove {
  color: #f1aaa1;
  border-color: rgba(235,130,120,.32);
  background: rgba(54,25,27,.6);
}
.teaching-inline-palette-remove:hover,
.teaching-inline-palette-remove:focus-visible {
  border-color: rgba(241,170,161,.72);
  color: #fff0eb;
  background: rgba(96,39,42,.78);
  outline: 0;
  transform: none;
}
.teaching-inline-palette-remove svg { width: 15px; height: 15px; }
.teaching-inline-palette-remove span { font: 500 22px/1 sans-serif; transform: translateY(-1px); }

.teaching-inline-cancel-confirmation {
  position: fixed;
  z-index: 19;
  right: 82px;
  top: var(--teaching-inline-cancel-top, auto);
  display: flex;
  gap: 5px;
  box-sizing: border-box;
  padding: 6px;
  border: 1px solid var(--line-strong);
  border-radius: 12px;
  background: rgba(24,28,35,.98);
  box-shadow: 0 14px 32px rgba(0,0,0,.3);
}
.teaching-inline-cancel-confirmation.is-primed {
  clip-path: polygon(100% 0,100% 0,100% 100%,100% 100%);
}
.teaching-inline-cancel-confirmation.is-opening {
  animation: teaching-inline-palette-deploy .5s cubic-bezier(.22,.82,.2,1) both;
}
.teaching-inline-cancel-confirmation button {
  display: inline-flex;
  min-height: 36px;
  align-items: center;
  justify-content: center;
  gap: 5px;
  margin: 0;
  padding: 0 10px;
  border: 1px solid var(--line-strong);
  border-radius: 999px;
  cursor: pointer;
  font: 700 8px/1 "Manrope";
}
.teaching-inline-cancel-confirmation button svg { width: 13px; height: 13px; }
.teaching-inline-cancel-confirmation__confirm {
  color: var(--ink);
  border-color: var(--cream) !important;
  background: var(--cream);
}
.teaching-inline-cancel-confirmation__confirm:hover,
.teaching-inline-cancel-confirmation__confirm:focus-visible { color: var(--ink); background: #fff4d6; outline: 0; transform: none; }
.teaching-inline-cancel-confirmation__dismiss {
  color: var(--text);
  background: rgba(35,39,46,.98);
}
.teaching-inline-cancel-confirmation__dismiss:hover,
.teaching-inline-cancel-confirmation__dismiss:focus-visible { border-color: rgba(240,223,187,.7); color: var(--cream); outline: 0; transform: none; }

.teaching-inline-media-composer {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  width: min(340px, calc(100vw - 164px));
  min-width: 0;
  max-height: calc(100vh - 16px);
  gap: 8px;
  align-items: start;
  overflow-y: auto;
  overscroll-behavior: contain;
  scrollbar-width: thin;
}
.teaching-inline-media-composer.has-separated-actions {
  max-height: none;
  padding: 0;
  border: 0;
  background: transparent;
  box-shadow: none;
  overflow: visible;
}
.teaching-inline-media-composer__content {
  min-width: 0;
  box-sizing: border-box;
}
.teaching-inline-media-composer.has-separated-actions > .teaching-inline-media-composer__content {
  max-height: calc(100vh - 16px);
  padding: 6px;
  border: 1px solid var(--line-strong);
  border-radius: 12px;
  background: rgba(24,28,35,.98);
  box-shadow: 0 14px 32px rgba(0,0,0,.3);
  overflow-y: auto;
  overscroll-behavior: contain;
  scrollbar-width: thin;
}
.teaching-inline-media-composer__palette-actions { justify-self: end; }
.teaching-inline-media-composer.has-separated-actions > .teaching-inline-media-composer__palette-actions {
  padding: 6px;
  border: 1px solid var(--line-strong);
  border-radius: 12px;
  background: rgba(24,28,35,.98);
  box-shadow: 0 14px 32px rgba(0,0,0,.3);
}
.teaching-inline-media-composer__actions { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 5px; }
.teaching-inline-media-button {
  display: inline-flex;
  width: 100%;
  box-sizing: border-box;
  min-height: 36px;
  align-items: center;
  justify-content: center;
  gap: 5px;
  margin: 0;
  padding: 0 9px;
  border: 1px solid var(--line-strong);
  border-radius: 999px;
  color: var(--text);
  background: rgba(35,39,46,.98);
  cursor: pointer;
  font: 700 8px "Manrope";
}
.teaching-inline-media-button:hover,
.teaching-inline-media-button:focus-visible { border-color: rgba(240,223,187,.7); color: var(--cream); outline: 0; transform: none; }
.teaching-inline-media-button svg { width: 13px; height: 13px; }
.teaching-inline-media-button input { position: absolute; width: 1px; height: 1px; opacity: 0; overflow: hidden; }
.teaching-inline-image-source-actions { width: 100%; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 5px; }
.teaching-inline-image-source-input { display: none; }
.teaching-inline-image-source-button {
  display: inline-flex;
  width: 100%;
  min-width: 0;
  min-height: 36px;
  box-sizing: border-box;
  align-items: center;
  justify-content: center;
  gap: 5px;
  margin: 0;
  padding: 0 9px;
  border: 1px solid var(--line-strong);
  border-radius: 999px;
  color: var(--text);
  background: rgba(35,39,46,.98);
  cursor: pointer;
  font: 700 8px/1 "Manrope";
}
.teaching-inline-image-source-button:hover,
.teaching-inline-image-source-button:focus-visible { border-color: rgba(240,223,187,.7); color: var(--cream); outline: 0; transform: none; }
.teaching-inline-image-source-button:disabled { opacity: .45; cursor: wait; }
.teaching-inline-image-source-button svg { width: 13px; height: 13px; flex: 0 0 auto; }
.teaching-inline-image-attachment {
  width: 100%;
  min-height: 36px;
  box-sizing: border-box;
  display: grid;
  grid-template-columns: 26px minmax(0, 1fr) 24px;
  align-items: center;
  gap: 6px;
  padding: 4px 5px;
  border: 1px solid var(--line-strong);
  border-radius: 10px;
  color: var(--text);
  background: rgba(35,39,46,.98);
}
.teaching-inline-image-attachment > img { width: 26px; height: 26px; display: block; border-radius: 5px; object-fit: cover; background: #0d1116; }
.teaching-inline-image-attachment > span { min-width: 0; overflow: hidden; color: var(--muted); font-size: 8px; line-height: 1.25; text-overflow: ellipsis; white-space: nowrap; }
.teaching-inline-image-attachment > button {
  display: grid;
  width: 24px;
  height: 24px;
  margin: 0;
  place-items: center;
  padding: 0;
  border: 0;
  border-radius: 7px;
  color: var(--muted);
  background: transparent;
  cursor: pointer;
}
.teaching-inline-image-attachment > button:hover,
.teaching-inline-image-attachment > button:focus-visible { color: var(--text); background: rgba(255,255,255,.08); outline: 0; transform: none; }
.teaching-inline-image-attachment > button svg { width: 13px; height: 13px; }
.teaching-inline-image-link-panel { display: grid; grid-template-columns: minmax(0, 1fr) 36px 36px; gap: 5px; margin-top: 6px; }
.teaching-inline-image-link-panel input { width: 100%; min-width: 0; min-height: 36px; box-sizing: border-box; padding: 7px 9px; border: 1px solid var(--line-strong); border-radius: 8px; color: var(--text); background: rgba(7,9,12,.42); font: 500 9px "Manrope"; }
.teaching-inline-image-link-panel input:focus { border-color: var(--cream); outline: 2px solid rgba(240,223,187,.18); }
.teaching-inline-image-link-panel__cancel { display: grid; width: 36px; height: 36px; margin: 0; place-items: center; padding: 0; border: 1px solid var(--line-strong); border-radius: 9px; color: var(--muted); background: rgba(35,39,46,.98); cursor: pointer; }
.teaching-inline-image-link-panel__cancel:hover,
.teaching-inline-image-link-panel__cancel:focus-visible { border-color: rgba(240,223,187,.7); color: var(--cream); outline: 0; transform: none; }
.teaching-inline-image-link-panel__cancel svg { width: 15px; height: 15px; }
.teaching-inline-media-staged-file { display: flex; min-width: 0; align-items: center; gap: 6px; margin-top: 6px; color: var(--muted); font-size: 9px; }
.teaching-inline-media-staged-file img { width: 28px; height: 28px; flex: 0 0 auto; border-radius: 6px; object-fit: cover; }
.teaching-inline-media-staged-file span { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.teaching-inline-media-link-field { display: grid; gap: 4px; margin-top: 6px; }
.teaching-inline-media-link-field > span { color: var(--muted-2); font-size: 8px; font-weight: 700; letter-spacing: .5px; text-transform: uppercase; }
.teaching-inline-media-link-field--video { margin-top: 0; }
.teaching-inline-media-link-field input { width: 100%; min-width: 0; min-height: 36px; box-sizing: border-box; padding: 7px 9px; border: 1px solid var(--line-strong); border-radius: 8px; color: var(--text); background: rgba(7,9,12,.42); font: 500 9px "Manrope"; }
.teaching-inline-media-link-field input:focus { border-color: var(--cream); outline: 2px solid rgba(240,223,187,.18); }
.teaching-inline-media-layout-options { display: grid; gap: 5px; margin-top: 6px; padding-top: 6px; border-top: 1px solid var(--line); }
.teaching-inline-media-layout-group { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 5px; }
.teaching-inline-media-layout-group button {
  display: grid;
  min-width: 0;
  min-height: 30px;
  box-sizing: border-box;
  margin: 0;
  place-items: center;
  padding: 0 5px;
  border: 1px solid var(--line-strong);
  border-radius: 8px;
  color: var(--muted);
  background: rgba(35,39,46,.98);
  cursor: pointer;
  font: 700 8px/1 "Manrope";
}
.teaching-inline-media-layout-group button:hover,
.teaching-inline-media-layout-group button:focus-visible,
.teaching-inline-media-layout-group button.is-active { border-color: var(--cream); color: var(--ink); background: var(--cream); outline: 0; transform: none; }
.teaching-inline-media-layout-group button:disabled { opacity: .3; border-color: var(--line-strong); color: var(--muted); background: rgba(35,39,46,.98); cursor: not-allowed; }
.teaching-inline-media-layout-group--alignment button svg { width: 14px; height: 14px; }
.teaching-inline-carousel-composer-images { display: flex; gap: 7px; overflow-x: auto; margin-top: 8px; padding-bottom: 2px; }
.teaching-inline-carousel-composer-images figure { position: relative; flex: 0 0 58px; margin: 0; }
.teaching-inline-carousel-composer-images img { display: block; width: 58px; height: 40px; border-radius: 7px; object-fit: cover; }
.teaching-inline-carousel-composer-images button { position: absolute; top: -5px; right: -5px; display: grid; width: 20px; height: 20px; margin: 0; place-items: center; border: 1px solid rgba(235,130,120,.48); border-radius: 50%; color: #f1aaa1; background: rgba(29,18,20,.94); cursor: pointer; }
.teaching-inline-carousel-composer-images button:hover,
.teaching-inline-carousel-composer-images button:focus-visible { color: #fff0eb; border-color: rgba(241,170,161,.8); outline: 0; transform: none; }
.teaching-inline-carousel-composer-images button svg { width: 11px; height: 11px; }
.teaching-inline-image-composer-gallery {
  display: flex;
  min-width: 0;
  align-items: stretch;
  gap: 6px;
  overflow-x: auto;
  padding: 1px 1px 4px;
  scrollbar-width: thin;
}
.teaching-inline-image-composer-gallery figure {
  position: relative;
  display: grid;
  flex: 0 0 70px;
  gap: 3px;
  margin: 0;
}
.teaching-inline-image-composer-gallery figure > img {
  display: block;
  width: 70px;
  height: 43px;
  border: 1px solid var(--line-strong);
  border-radius: 7px;
  object-fit: cover;
  background: #0d1116;
}
.teaching-inline-image-composer-gallery figcaption {
  position: absolute;
  top: 3px;
  left: 3px;
  display: grid;
  min-width: 16px;
  height: 16px;
  box-sizing: border-box;
  margin: 0;
  place-items: center;
  padding: 0 4px;
  border-radius: 999px;
  color: #fff;
  background: rgba(8,9,12,.78);
  font: 700 7px/1 "Manrope";
}
.teaching-inline-image-composer-gallery__actions {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 2px;
}
.teaching-inline-image-composer-gallery__actions button {
  display: grid;
  min-width: 0;
  width: 100%;
  height: 24px;
  margin: 0;
  place-items: center;
  padding: 0;
  border: 1px solid var(--line-strong);
  border-radius: 5px;
  color: var(--text);
  background: rgba(43,48,56,.98);
  cursor: pointer;
  font: 700 9px/1 "Manrope";
}
.teaching-inline-image-composer-gallery__actions button:hover,
.teaching-inline-image-composer-gallery__actions button:focus-visible { border-color: rgba(240,223,187,.82); color: var(--ink); background: var(--cream); outline: 0; transform: none; }
.teaching-inline-image-composer-gallery__actions button.is-remove { border-color: rgba(235,130,120,.28); color: #f1aaa1; }
.teaching-inline-image-composer-gallery__actions button:disabled { opacity: .28; cursor: not-allowed; }
.teaching-inline-image-composer-gallery__actions button svg { width: 13px; height: 13px; }
.teaching-inline-image-composer-gallery__actions button.is-move-left svg { transform: rotate(180deg); }
.teaching-inline-image-composer-add {
  display: grid;
  flex: 0 0 42px;
  min-width: 42px;
  min-height: 66px;
  margin: 0;
  place-items: center;
  padding: 0;
  border: 1px dashed var(--line-strong);
  border-radius: 8px;
  color: var(--cream);
  background: rgba(255,255,255,.025);
  cursor: pointer;
  font: 500 20px/1 "Manrope";
}
.teaching-inline-image-composer-add:hover,
.teaching-inline-image-composer-add:focus-visible,
.teaching-inline-image-composer-add.is-active { border-color: var(--cream); color: var(--ink); background: var(--cream); outline: 0; transform: none; }
.teaching-inline-image-composer-add:disabled { opacity: .45; color: var(--muted); border-color: var(--line-strong); background: rgba(255,255,255,.025); cursor: wait; }
.teaching-inline-image-composer-gallery + .teaching-inline-image-source-actions { margin-top: 6px; }
.teaching-inline-media-edit-button { display: inline-flex; align-items: center; gap: 7px; min-height: 32px; margin-top: 14px; padding: 0 10px; border: 1px solid var(--line-strong); border-radius: 9px; color: var(--cream); background: rgba(255,255,255,.025); cursor: pointer; font: 700 8px "Manrope"; }
.teaching-inline-media-edit-button:hover,
.teaching-inline-media-edit-button:focus-visible { border-color: rgba(240,223,187,.6); outline: 0; transform: none; }
.teaching-inline-media-edit-button svg { width: 13px; height: 13px; }

.teaching-inline-block {
  position: relative;
  margin: 0 0 30px;
  padding: 0;
  border: 0;
  border-radius: 0;
  background: transparent;
}
.teaching-inline-insertion-slot { position: relative; height: 0; margin: 0; padding: 0; width: 100%; z-index: 6; }
.teaching-inline-insertion-slot > button {
  position: absolute; inset-inline: 0; top: -15px; height: 44px; width: 100%;
  display: block; min-height: 0; padding: 0; border: 0; border-radius: 0;
  background: transparent !important; color: var(--cream); box-shadow: none;
  transform: translateY(-50%); cursor: copy; touch-action: pan-y;
}
.teaching-inline-insertion-slot > button[hidden] { display: none !important; }
.teaching-inline-insertion-slot > button:hover { transform: translateY(-50%); }
.teaching-inline-insertion-slot > button::before {
  content: ""; position: absolute; inset-inline: 0; top: calc(50% - 1px);
  height: 2px; background: var(--cream); opacity: 0; transition: opacity .12s ease;
}
.teaching-inline-insertion-slot > button > span {
  position: absolute; left: 50%; top: 50%; transform: translate(-50%, -50%);
  padding: 4px 10px; border: 1px solid var(--cream); border-radius: 20px;
  color: var(--cream); background: var(--bg, #0f1216); white-space: nowrap;
  font: 600 10px/1.3 "DM Sans", sans-serif; opacity: 0; pointer-events: none;
}
.teaching-inline-insertion-slot > button:is(.is-active, .is-selected, :focus-visible)::before,
.teaching-inline-insertion-slot > button:is(.is-active, .is-selected, :focus-visible) > span { opacity: 1; }
.teaching-inline-insertion-slot > button:focus-visible { outline: 1px dashed var(--cream); outline-offset: -3px; }
.teaching-inline-insertion-slot > button:disabled { cursor: wait; }
.is-placing-inline-block .teaching-inline-block { cursor: copy !important; }
.is-placing-inline-block .teaching-inline-block iframe,
.is-placing-inline-block .teaching-inline-block video { pointer-events: none; }
.teaching-inline-insertion-hint {
  position: fixed; z-index: 16; left: 24px; bottom: 28px; max-width: calc(100vw - 130px);
  margin: 0; padding: 7px 10px; border-radius: 8px; color: var(--cream);
  background: rgba(15,18,22,.94); font: 500 11px/1.5 "DM Sans", sans-serif; pointer-events: none;
}
@media (hover: none), (pointer: coarse) {
  .is-placing-inline-block .teaching-inline-insertion-slot > button::before { opacity: .3; }
  .is-placing-inline-block .teaching-inline-insertion-slot > button:is(.is-active, .is-selected, :focus-visible)::before { opacity: 1; }
}
#page-teaching-detail.is-inline-editing .teaching-inline-block {
  border: 0;
}
#page-teaching-detail.is-inline-editing .teaching-inline-block--image,
#page-teaching-detail.is-inline-editing .teaching-inline-block--carousel,
#page-teaching-detail.is-inline-editing .teaching-inline-block--video { cursor: context-menu; }
#page-teaching-detail.is-inline-editing [data-inline-block-content] { cursor: text; outline: 0; }
#page-teaching-detail.is-inline-editing [data-inline-block-content]:focus { outline: 2px solid rgba(240,223,187,.76); outline-offset: 6px; }
#page-teaching-detail.is-inline-editing [data-inline-block-content][data-inline-block-placeholder]:empty::before { content: attr(data-inline-block-placeholder); color: rgba(224,225,229,.46); pointer-events: none; }
.teaching-inline-large-title,
.teaching-inline-title,
.teaching-inline-text { margin: 0; white-space: pre-wrap; }
.teaching-inline-large-title { color: #f7f3e9; font: 700 clamp(25px,4vw,38px)/1.12 "Manrope"; letter-spacing: -1px; }
.teaching-inline-title { color: #f2f3f5; font: 700 clamp(18px,2.4vw,25px)/1.24 "Manrope"; }
.teaching-inline-text { max-width: 780px; color: var(--muted); font-size: 13px; line-height: 1.75; white-space: pre-wrap; }
.teaching-inline-text--align-center { margin-inline: auto; text-align: center; }
.teaching-inline-text--align-right { margin-left: auto; text-align: right; }
.teaching-inline-text--size-xl { max-width: 920px; color: #f5f3ee; font-size: clamp(28px,4vw,42px); line-height: 1.18; letter-spacing: -.8px; }
.teaching-inline-text--size-large { color: #f1f2f4; font-size: clamp(20px,2.5vw,27px); line-height: 1.35; }
.teaching-inline-text--size-small { color: var(--muted-2); font-size: 10px; line-height: 1.65; }
.teaching-inline-text--style-bold { color: #f1f2f4; font-family: "DM Sans", system-ui, sans-serif; font-weight: 800; letter-spacing: normal; }
.teaching-inline-text--font-header { font-family: "DM Sans", system-ui, sans-serif; font-style: normal; font-weight: 800; letter-spacing: 1.4px; text-transform: uppercase; }
.teaching-inline-text--style-italic { font-style: italic; }
.teaching-inline-text--style-underline { text-decoration: underline; text-decoration-thickness: .06em; text-underline-offset: .14em; }
.teaching-inline-text--color-white { color: #fff; }
.teaching-inline-text--color-gray { color: var(--muted); }
.teaching-inline-text--color-accent { color: var(--cream); }
.teaching-inline-block--media-size-full { width: 100%; }
.teaching-inline-block--media-size-medium { width: min(72%, 760px); }
.teaching-inline-block--media-size-small { width: min(42%, 460px); }
.teaching-inline-block--media-align-left { margin-left: 0; margin-right: auto; }
.teaching-inline-block--media-align-center { margin-left: auto; margin-right: auto; }
.teaching-inline-block--media-align-right { margin-left: auto; margin-right: 0; }
.teaching-inline-image { display: grid; gap: 8px; margin: 0; }
.teaching-inline-image img { display: block; width: 100%; max-height: 620px; object-fit: cover; border-radius: 12px; }
.teaching-inline-start-edit-button {
  position: fixed;
  z-index: 15;
  right: 32px;
  bottom: 28px;
  display: grid;
  width: 50px;
  height: 50px;
  margin: 0;
  place-items: center;
  border: 1px solid rgba(255,255,255,.14);
  border-radius: 50%;
  color: #fff;
  background: rgba(8,9,12,.68);
  -webkit-backdrop-filter: blur(8px);
  backdrop-filter: blur(8px);
  box-shadow: 0 12px 26px rgba(0,0,0,.24);
  cursor: pointer;
}
.teaching-inline-start-edit-button:hover,
.teaching-inline-start-edit-button:focus-visible {
  color: #fff;
  background: #1a1d23;
  outline: 0;
  transform: none;
}
.teaching-inline-start-edit-button svg { width: 19px; height: 19px; }
.teaching-inline-image figcaption,
.teaching-inline-carousel figcaption { color: var(--muted-2); font-size: 9px; line-height: 1.45; }
.teaching-inline-media-empty,
.teaching-inline-video-empty {
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 180px;
  gap: 12px;
  border: 1px dashed rgba(255,255,255,.18);
  border-radius: 12px;
  color: var(--muted);
  background: rgba(255,255,255,.018);
}
.teaching-inline-media-empty > span { display: grid; width: 34px; height: 34px; place-items: center; border-radius: 50%; color: var(--ink); background: var(--cream); font-size: 20px; }
.teaching-inline-media-empty p { margin: 0; font-size: 10px; }
/* The carousel spans the content area; size choices apply to each slide,
   independently of the number of images, so following slides can peek in. */
.teaching-inline-block--carousel { width: 100%; --teaching-carousel-slide-width: 100%; }
.teaching-inline-block--carousel.teaching-inline-block--media-size-medium { --teaching-carousel-slide-width: min(72%, 760px); }
.teaching-inline-block--carousel.teaching-inline-block--media-size-small { --teaching-carousel-slide-width: min(42%, 460px); }
.teaching-inline-carousel-shell { position: relative; }
.teaching-inline-carousel {
  display: grid;
  grid-auto-flow: column;
  grid-auto-columns: var(--teaching-carousel-slide-width, 100%);
  gap: 12px;
  overflow-x: auto;
  overscroll-behavior-inline: contain;
  scroll-snap-type: x mandatory;
  scrollbar-width: none;
}
.teaching-inline-carousel::-webkit-scrollbar { display: none; }
.teaching-inline-carousel:focus-visible { outline: 2px solid rgba(240,223,187,.76); outline-offset: 5px; }
.teaching-inline-carousel > figure {
  display: grid;
  min-width: 0;
  gap: 8px;
  margin: 0;
  scroll-snap-align: start;
  scroll-snap-stop: always;
}
.teaching-inline-carousel > figure img { display: block; width: 100%; aspect-ratio: 16 / 10; object-fit: cover; border-radius: 12px; }
.teaching-inline-carousel-nav {
  position: absolute;
  z-index: 2;
  top: 50%;
  display: grid;
  width: 40px;
  height: 40px;
  margin: 0;
  place-items: center;
  padding: 0;
  border: 1px solid rgba(255,255,255,.18);
  border-radius: 50%;
  color: #fff;
  background: rgba(8,9,12,.72);
  -webkit-backdrop-filter: blur(8px);
  backdrop-filter: blur(8px);
  box-shadow: 0 8px 22px rgba(0,0,0,.24);
  cursor: pointer;
  transform: translateY(-50%);
}
.teaching-inline-carousel-nav--previous { left: 10px; }
.teaching-inline-carousel-nav--next { right: 10px; }
.teaching-inline-carousel-nav--previous svg { transform: rotate(180deg); }
.teaching-inline-carousel-nav:hover,
.teaching-inline-carousel-nav:focus-visible { border-color: var(--cream); color: var(--ink); background: var(--cream); outline: 0; }
.teaching-inline-carousel-nav:disabled { opacity: .35; cursor: default; }
.teaching-inline-carousel-nav[hidden],
.teaching-inline-carousel-dots[hidden] { display: none; }
.teaching-inline-carousel-nav svg { width: 17px; height: 17px; }
.teaching-inline-carousel-dots {
  display: flex;
  min-height: 20px;
  align-items: center;
  justify-content: center;
  gap: 7px;
  margin-top: 7px;
}
.teaching-inline-carousel-dots button {
  width: 8px;
  height: 8px;
  margin: 0;
  padding: 0;
  border: 0;
  border-radius: 999px;
  background: rgba(255,255,255,.28);
  cursor: pointer;
  transition: width .18s ease, background-color .18s ease;
}
.teaching-inline-carousel-dots button:hover,
.teaching-inline-carousel-dots button:focus-visible { background: rgba(240,223,187,.72); outline: 2px solid rgba(240,223,187,.3); outline-offset: 2px; }
.teaching-inline-carousel-dots button[aria-current="true"] { width: 20px; background: var(--cream); }
.teaching-inline-video { position: relative; aspect-ratio: 16 / 9; overflow: hidden; border-radius: 12px; background: #08090b; }
.teaching-inline-video iframe,
.teaching-inline-video video { width: 100%; height: 100%; border: 0; object-fit: contain; }
.teaching-inline-video-context { position: relative; }
.teaching-inline-video-edit-surface { position: absolute; inset: 0; width: 100%; height: 100%; margin: 0; padding: 0; border: 0; border-radius: 12px; background: transparent; cursor: context-menu; }
.teaching-inline-video-edit-surface:focus-visible { outline: 2px solid rgba(240,223,187,.76); outline-offset: 4px; }
.teaching-inline-video-empty > span { display: grid; width: 42px; height: 42px; place-items: center; border-radius: 50%; color: var(--ink); background: var(--cream); }
.teaching-inline-video-empty strong,
.teaching-inline-video-empty small { display: block; }
.teaching-inline-video-empty small { margin-top: 4px; color: var(--muted-2); font-size: 8px; }

.teaching-inline-field {
  display: grid;
  gap: 6px;
  margin-top: 15px;
}
.teaching-inline-field > span,
.teaching-inline-upload > span { color: var(--muted-2); font-size: 8px; font-weight: 700; letter-spacing: .55px; text-transform: uppercase; }
.teaching-inline-field textarea,
.teaching-inline-field input {
  width: 100%; min-height: 38px; box-sizing: border-box; padding: 10px 11px;
  border: 1px solid var(--line-strong); border-radius: 10px;
  color: var(--text); background: rgba(7,9,12,.42); font: inherit; font-size: 11px; line-height: 1.5;
  resize: vertical;
}
.teaching-inline-field textarea:focus,
.teaching-inline-field input:focus { border-color: var(--cream); outline: 2px solid rgba(240,223,187,.18); }
.teaching-inline-upload { display: inline-flex; align-items: center; gap: 8px; min-height: 37px; margin-top: 15px; padding: 0 11px; border: 1px solid var(--line-strong); border-radius: 10px; color: var(--cream); cursor: pointer; background: rgba(255,255,255,.025); }
.teaching-inline-upload:hover { border-color: rgba(240,223,187,.55); background: rgba(240,223,187,.06); transform: none; }
.teaching-inline-upload input { width: 1px; height: 1px; opacity: 0; overflow: hidden; position: absolute; }
.teaching-inline-carousel-edit { display: flex; gap: 9px; overflow-x: auto; margin-top: 13px; padding-bottom: 3px; }
.teaching-inline-carousel-edit figure { position: relative; flex: 0 0 132px; margin: 0; }
.teaching-inline-carousel-edit img { display: block; width: 132px; height: 84px; object-fit: cover; border-radius: 9px; }
.teaching-inline-carousel-edit .icon-button { position: absolute; top: 5px; right: 5px; width: 26px; height: 26px; color: #fff; background: rgba(10,12,15,.78); }
.teaching-inline-block-actions { display: flex; justify-content: flex-end; margin-top: 15px; }
.teaching-inline-block-actions .secondary-button { min-height: 32px; padding: 0 10px; color: #f1aaa1; border-color: rgba(235,130,120,.32); font-size: 8px; }
.teaching-inline-block-actions svg { width: 12px; }

.teaching-inline-add-button {
  position: fixed;
  z-index: 15;
  right: 32px;
  bottom: 28px;
  display: grid;
  width: 50px; height: 50px;
  margin: 0;
  place-items: center;
  border: 0; border-radius: 50%;
  color: var(--ink); background: var(--cream);
  box-shadow: 0 12px 26px rgba(0,0,0,.24);
  cursor: pointer;
}
.teaching-inline-add-button:hover { filter: brightness(1.05); transform: none; }
.teaching-inline-add-button span { display: grid; place-items: center; }
.teaching-inline-add-button svg { width: 19px; height: 19px; }
.teaching-inline-add-button b { display: none; }
.teaching-inline-add-button:focus-visible { outline: 2px solid #fff; outline-offset: 3px; }

.teaching-inline-block-picker {
  --teaching-picker-anchor-x: 91px;
  position: fixed;
  z-index: 14;
  right: 94px;
  bottom: 32px;
  width: max-content;
  padding: 0;
  border: 0;
  border-radius: 0;
  background: transparent;
  box-shadow: none;
}
.teaching-inline-block-picker:not([hidden]) { animation: none; }
.teaching-inline-picker-actions { display: grid; gap: 8px; }
.teaching-inline-picker-actions button {
  position: relative;
  min-width: 108px;
  min-height: 42px;
  padding: 0 14px;
  border: 1px solid var(--line-strong);
  border-radius: 999px;
  color: var(--text);
  background: rgba(20,24,31,.98);
  box-shadow: 0 9px 22px rgba(0,0,0,.28);
  cursor: pointer;
  font: 700 10px "Manrope";
  letter-spacing: .1px;
  will-change: transform, clip-path;
}
.teaching-inline-picker-actions button:hover,
.teaching-inline-picker-actions button:focus-visible {
  border-color: rgba(240,223,187,.68);
  outline: 0;
  color: var(--cream);
  background: rgba(37,42,49,.98);
  transform: none;
}
.teaching-inline-block-picker.is-opening .teaching-inline-picker-actions button:nth-child(3) {
  animation: teaching-inline-picker-anchor-in .5s cubic-bezier(.18,.78,.22,1) both;
}
.teaching-inline-block-picker.is-opening .teaching-inline-picker-actions button:nth-child(2) {
  animation: teaching-inline-picker-rise-middle .5s .5s cubic-bezier(.18,.78,.22,1) both;
}
.teaching-inline-block-picker.is-opening .teaching-inline-picker-actions button:nth-child(1) {
  animation: teaching-inline-picker-rise-top .5s .5s cubic-bezier(.18,.78,.22,1) both;
}
.teaching-inline-block-picker.is-collapsing .teaching-inline-picker-actions button { pointer-events: none; }
.teaching-inline-block-picker.is-collapsing .teaching-inline-picker-actions button:not(.is-selected) {
  animation: teaching-inline-picker-merge .22s cubic-bezier(.4,0,.25,1) both;
}
.teaching-inline-block-picker.is-collapsing .teaching-inline-picker-actions button.is-selected {
  z-index: 2;
  animation: teaching-inline-picker-selected .22s cubic-bezier(.18,.8,.24,1) both;
}
.teaching-inline-block-picker.is-restoring .teaching-inline-picker-actions button,
.teaching-inline-block-picker.is-closing .teaching-inline-picker-actions button { pointer-events: none; }
.teaching-inline-block-picker.is-restoring .teaching-inline-picker-actions button:not(.is-selected) {
  animation: teaching-inline-picker-restore .5s .5s cubic-bezier(.18,.78,.22,1) both;
}
.teaching-inline-block-picker.is-restoring .teaching-inline-picker-actions button.is-selected {
  z-index: 2;
  animation: teaching-inline-picker-anchor-in .5s cubic-bezier(.18,.78,.22,1) both;
}
.teaching-inline-block-picker.is-closing .teaching-inline-picker-actions button:not(.is-selected) {
  animation: teaching-inline-picker-merge .3s cubic-bezier(.4,0,.25,1) both;
}
.teaching-inline-block-picker.is-closing .teaching-inline-picker-actions button.is-selected {
  z-index: 2;
  animation: teaching-inline-picker-anchor-out .35s .15s cubic-bezier(.55,.02,.78,.22) both;
}
@keyframes teaching-inline-picker-anchor-in {
  from {
    clip-path: inset(0 50% 0 50%);
    transform: translateX(var(--teaching-picker-anchor-x));
  }
  to { clip-path: inset(0); transform: translateX(0); }
}
@keyframes teaching-inline-picker-rise-middle {
  from { opacity: 0; transform: translateY(50px) scale(.94); }
  to { opacity: 1; transform: translateY(0) scale(1); }
}
@keyframes teaching-inline-picker-rise-top {
  from { opacity: 0; transform: translateY(100px) scale(.92); }
  to { opacity: 1; transform: translateY(0) scale(1); }
}
@keyframes teaching-inline-picker-merge {
  from { opacity: 1; transform: translate(0,0) scale(1); }
  to {
    opacity: 0;
    transform: translate(var(--teaching-picker-merge-x, 0), var(--teaching-picker-merge-y, 0)) scale(.82);
  }
}
@keyframes teaching-inline-picker-selected {
  0% { transform: scale(1); }
  55% { transform: scale(1.045); }
  100% { transform: scale(1); }
}
@keyframes teaching-inline-picker-restore {
  from {
    opacity: 0;
    transform: translate(var(--teaching-picker-merge-x, 0), var(--teaching-picker-merge-y, 0)) scale(.82);
  }
  to { opacity: 1; transform: translate(0,0) scale(1); }
}
@keyframes teaching-inline-picker-anchor-out {
  from { clip-path: inset(0); transform: translateX(0); }
  to {
    clip-path: inset(0 50% 0 50%);
    transform: translateX(var(--teaching-picker-anchor-x));
  }
}
@keyframes teaching-floating-actions-in {
  from { opacity: 0; transform: translateX(8px); }
  to { opacity: 1; transform: translateX(0); }
}

@media (prefers-reduced-motion: reduce) {
  .teaching-inline-block-picker.is-opening .teaching-inline-picker-actions button,
  .teaching-inline-block-picker.is-collapsing .teaching-inline-picker-actions button,
  .teaching-inline-block-picker.is-restoring .teaching-inline-picker-actions button,
  .teaching-inline-block-picker.is-closing .teaching-inline-picker-actions button,
  .teaching-inline-text-toolbar.is-deploying.is-deploying-active,
  .teaching-inline-media-composer.is-deploying.is-deploying-active,
  .teaching-inline-text-toolbar.is-retracting,
  .teaching-inline-media-composer.is-retracting,
  .teaching-inline-cancel-confirmation.is-opening {
    animation: none !important;
    opacity: 1;
    transform: none;
  }
}

@media (max-width: 800px) {
  .teaching-inline-text-toolbar {
    right: 68px;
    bottom: 78px;
    width: min(410px,calc(100vw - 96px));
    max-width: calc(100vw - 96px);
    max-height: calc(100dvh - 106px);
    flex-direction: column;
    align-items: stretch;
    overflow-x: hidden;
    overflow-y: auto;
    overscroll-behavior: contain;
  }
  .teaching-inline-text-toolbar__options {
    min-width: 0;
    flex-wrap: wrap;
    align-items: flex-start;
  }
  .teaching-inline-text-toolbar__group { flex: 0 0 auto; }
  .teaching-inline-text-toolbar__group + .teaching-inline-text-toolbar__group {
    padding-left: 5px;
    border-left: 1px solid var(--line);
  }
  .teaching-inline-text-toolbar__actions {
    align-self: flex-end;
    flex-wrap: wrap;
    justify-content: flex-end;
    padding: 6px 0 0;
    border-top: 1px solid var(--line);
    border-left: 0;
  }
}

@media (max-width: 650px) {
  #page-teaching-detail.active .teaching-page-content { padding-bottom: 94px; }
  .teaching-inline-block { margin-bottom: 24px; }
  .teaching-inline-large-title { font-size: 27px; }
  .teaching-inline-carousel { gap: 10px; }
  .teaching-inline-carousel-nav { width: 36px; height: 36px; }
  .teaching-inline-carousel-nav--previous { left: 7px; }
  .teaching-inline-carousel-nav--next { right: 7px; }
  .teaching-inline-edit-controls { right: 16px; bottom: 78px; gap: 7px; }
  .teaching-inline-floating-action { width: 40px; height: 40px; }
  .teaching-inline-media-composer { right: 68px; bottom: 78px; max-width: calc(100vw - 96px); }
  .teaching-inline-media-composer { width: calc(100vw - 96px); min-width: 0; }
  .teaching-inline-cancel-confirmation { right: 64px; }
  .teaching-inline-media-link-field input { min-width: 0; }
  .teaching-inline-block-picker { --teaching-picker-anchor-x: 85px; right: 78px; bottom: 22px; }
  .teaching-inline-picker-actions { gap: 7px; }
  .teaching-inline-picker-actions button { min-width: 96px; min-height: 38px; padding: 0 12px; font-size: 9px; }
  .teaching-inline-add-button { right: 16px; bottom: 16px; }
  .teaching-inline-start-edit-button { right: 16px; bottom: 16px; }
}

@media (max-width: 360px) {
  .teaching-inline-text-toolbar { gap: 5px; }
  .teaching-inline-text-toolbar__options { display: grid; grid-template-columns: minmax(0,1fr); gap: 5px; }
  .teaching-inline-text-toolbar__group { display: grid; grid-template-columns: repeat(4,34px); gap: 4px; }
  .teaching-inline-text-toolbar button,
  .teaching-inline-palette-close,
  .teaching-inline-palette-confirm,
  .teaching-inline-palette-remove,
  .teaching-inline-image-link-panel__cancel { width: 34px; height: 34px; }
  .teaching-inline-palette-move-actions { flex-basis: 34px; width: 34px; height: 34px; }
  .teaching-inline-text-toolbar .teaching-inline-palette-move,
  .teaching-inline-palette-move { width: 34px; }
  .teaching-inline-image-link-panel { grid-template-columns: minmax(0, 1fr) 34px 34px; }
  .teaching-inline-palette-actions { gap: 4px; }
  .teaching-inline-media-composer { grid-template-columns: minmax(0, 1fr); }
  .teaching-inline-media-composer__palette-actions { grid-column: 1; grid-row: 1; justify-self: end; }
  .teaching-inline-media-composer__content { grid-column: 1; grid-row: 2; }
}

/* Teaching metadata stays in the studio, while the immersive header aligns
   with the shared page gutter. */
#page-teaching-detail .teaching-page-hero { padding-left: 24px; }

.teaching-cover-field { margin-bottom: 0; }
.teaching-cover-image-upload {
  position: relative;
  display: block;
  min-height: 106px;
  overflow: hidden;
  border: 1px dashed rgba(232,224,207,.25);
  border-radius: 13px;
  color: var(--text);
  background: rgba(255,255,255,.024);
  cursor: pointer;
  transition: border-color .18s ease, background .18s ease, transform .18s ease;
}
.teaching-cover-image-upload:hover { border-color: rgba(240,223,187,.52); background: rgba(240,223,187,.055); }
.teaching-cover-image-upload:has(input:focus-visible) { outline: 2px solid var(--cream); outline-offset: 3px; }
.teaching-cover-image-upload input {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  overflow: hidden;
  clip: rect(0 0 0 0);
  clip-path: inset(50%);
  white-space: nowrap;
  border: 0;
}
.teaching-cover-image-upload__preview {
  position: relative;
  z-index: 0;
  display: flex;
  align-items: center;
  gap: 12px;
  min-height: 106px;
  padding: 18px;
  isolation: isolate;
}
.teaching-cover-image-upload__preview::before {
  content: "";
  position: absolute;
  z-index: -2;
  inset: 0;
  opacity: 0;
  background: var(--teaching-cover-image) center / cover;
  transition: opacity .2s ease;
}
.teaching-cover-image-upload__preview::after {
  content: "";
  position: absolute;
  z-index: -1;
  inset: 0;
  background: linear-gradient(90deg, rgba(16,18,22,.88), rgba(16,18,22,.55));
}
.teaching-cover-image-upload.has-image .teaching-cover-image-upload__preview::before { opacity: 1; }
.teaching-cover-image-upload__preview > svg { width: 21px; height: 21px; flex: 0 0 auto; color: var(--cream); }
.teaching-cover-image-upload__preview > span { display: grid; gap: 4px; }
.teaching-cover-image-upload__preview strong { font: 700 11px "Manrope"; }
.teaching-cover-image-upload__preview small { color: var(--muted-2); font-size: 9px; }
.teaching-cover-image-upload.has-image .teaching-cover-image-upload__preview small { color: rgba(247,243,233,.78); }

@media (max-width: 650px) {
  #page-teaching-detail .teaching-page-hero { padding-left: 16px; }
}

/* Metadata editing uses the same compact modal overlay as creation. */
.teaching-studio-modal[data-studio-mode="edit"] {
  width: min(690px, calc(100% - 32px));
  min-height: 0;
  max-height: calc(100vh - 32px);
  border: 1px solid var(--line-strong);
  border-radius: 22px;
}
.teaching-studio-modal[data-studio-mode="edit"] .studio-header {
  min-height: 72px;
  padding: 18px 26px;
}
.teaching-studio-modal[data-studio-mode="edit"] form {
  width: calc(100% - 44px);
  padding: 22px 0 0;
}
.teaching-studio-modal[data-studio-mode="edit"] .studio-section { padding: 21px; }
.teaching-studio-modal .studio-footer {
  margin: 0;
  padding: 15px 0 20px;
  border-top: 0;
  background: #101216;
  box-shadow: none;
}
.teaching-studio-modal .studio-footer-actions {
  width: 100%;
  display: flex !important;
  justify-content: flex-end;
}
.teaching-studio-modal .studio-footer-actions .primary-button { min-width: 132px; }

@media (max-width: 650px) {
  .teaching-studio-modal[data-studio-mode="edit"] {
    width: 100%;
    min-height: 100vh;
    max-height: 100vh;
    border: 0;
    border-radius: 0;
  }
  .teaching-studio-modal .studio-footer { padding: 12px 0 16px; }
  .teaching-studio-modal .studio-footer-actions .primary-button { width: 100%; }
}
