#koalaMediaBrowserOverlay {
  position: fixed;
  inset: 0;
  z-index: 999999;

  display: flex;
  align-items: center;
  justify-content: center;

  padding:
    max(16px, env(safe-area-inset-top))
    max(16px, env(safe-area-inset-right))
    max(16px, env(safe-area-inset-bottom))
    max(16px, env(safe-area-inset-left));

  background: rgba(0, 0, 0, 0);
  backdrop-filter: blur(0);
  -webkit-backdrop-filter: blur(0);

  visibility: hidden;
  pointer-events: none;

  transition:
    background 200ms ease,
    backdrop-filter 200ms ease,
    visibility 0s linear 200ms;
}

#koalaMediaBrowserOverlay.is-open {
  background: rgba(0, 0, 0, 0.68);

  backdrop-filter: blur(14px);
  -webkit-backdrop-filter: blur(14px);

  visibility: visible;
  pointer-events: auto;

  transition:
    background 200ms ease,
    backdrop-filter 200ms ease,
    visibility 0s linear 0s;
}

.koala-media-browser {
  width: min(1120px, 94vw);
  height: min(780px, 92vh);

  display: flex;
  flex-direction: column;

  color: #ffffff;

  background:
    linear-gradient(
      145deg,
      rgba(42, 52, 45, 0.94),
      rgba(12, 18, 14, 0.96)
    );

  border: 1px solid rgba(124, 255, 0, 0.34);
  border-radius: 26px;

  box-shadow:
    0 30px 90px rgba(0, 0, 0, 0.65),
    0 0 38px rgba(124, 255, 0, 0.08),
    inset 0 1px 0 rgba(255, 255, 255, 0.08);

  overflow: hidden;

  opacity: 0;
  transform: translateY(18px) scale(0.985);

  transition:
    opacity 200ms ease,
    transform 200ms ease;
}

#koalaMediaBrowserOverlay.is-open .koala-media-browser {
  opacity: 1;
  transform: translateY(0) scale(1);
}

.koala-media-header {
  min-height: 76px;

  display: flex;
  align-items: center;
  justify-content: space-between;

  gap: 20px;
  padding: 14px 18px 14px 22px;

  background: rgba(255, 255, 255, 0.045);
  border-bottom: 1px solid rgba(255, 255, 255, 0.1);
}

.koala-media-heading {
  min-width: 0;

  display: flex;
  align-items: center;

  gap: 14px;
}

.koala-media-heading-icon {
  width: 42px;
  height: 42px;

  flex: 0 0 42px;

  display: grid;
  place-items: center;

  color: #7cff00;
  font-size: 25px;

  background: rgba(124, 255, 0, 0.1);
  border: 1px solid rgba(124, 255, 0, 0.28);
  border-radius: 13px;

  box-shadow: inset 0 0 18px rgba(124, 255, 0, 0.06);
}

.koala-media-title {
  margin: 0;

  color: #ffffff;
  font-size: 20px;
  font-weight: 650;
  line-height: 1.15;
  letter-spacing: 0.01em;
}

.koala-media-subtitle {
  margin-top: 4px;

  color: rgba(255, 255, 255, 0.58);
  font-size: 12px;
  line-height: 1.3;
}

.koala-media-close {
  width: 44px;
  height: 44px;

  flex: 0 0 44px;

  display: grid;
  place-items: center;

  padding: 0;

  color: rgba(255, 255, 255, 0.88);
  font: inherit;
  font-size: 29px;
  font-weight: 300;
  line-height: 1;

  background: rgba(255, 255, 255, 0.07);
  border: 1px solid rgba(255, 255, 255, 0.12);
  border-radius: 14px;

  cursor: pointer;

  transition:
    color 150ms ease,
    background 150ms ease,
    border-color 150ms ease,
    transform 150ms ease;
}

.koala-media-close:hover,
.koala-media-close:focus-visible {
  color: #7cff00;

  background: rgba(124, 255, 0, 0.11);
  border-color: rgba(124, 255, 0, 0.4);

  outline: none;
  transform: scale(1.04);
}

.koala-media-content {
  min-height: 0;
  flex: 1;

  display: flex;
}

.koala-media-preview {
  min-width: 0;
  min-height: 0;
  overflow: hidden;
  flex: 1;

  display: grid;
  place-items: center;

  padding: 28px;

  background:
    radial-gradient(
      circle at center,
      rgba(124, 255, 0, 0.045),
      transparent 58%
    );
}

.koala-media-empty-state {
  max-width: 420px;

  padding: 32px;

  text-align: center;

  color: rgba(255, 255, 255, 0.7);

  background: rgba(255, 255, 255, 0.025);
  border: 1px dashed rgba(255, 255, 255, 0.13);
  border-radius: 22px;
}

.koala-media-empty-icon {
  width: 72px;
  height: 72px;

  display: grid;
  place-items: center;

  margin: 0 auto 16px;

  color: #7cff00;
  font-size: 39px;

  background: rgba(124, 255, 0, 0.08);
  border: 1px solid rgba(124, 255, 0, 0.2);
  border-radius: 21px;
}

.koala-media-empty-title {
  color: #ffffff;
  font-size: 18px;
  font-weight: 600;
}

.koala-media-empty-copy {
  margin-top: 8px;

  color: rgba(255, 255, 255, 0.5);
  font-size: 13px;
  line-height: 1.5;
}

.koala-media-inspector {
  width: 300px;
  flex: 0 0 300px;

  padding: 22px;

  background: rgba(0, 0, 0, 0.18);
  border-left: 1px solid rgba(255, 255, 255, 0.09);
}

.koala-media-strip {
  min-height: 148px;

  display: flex;
  align-items: center;

  gap: 12px;
  padding: 14px 18px;

  background: rgba(0, 0, 0, 0.2);
  border-top: 1px solid rgba(255, 255, 255, 0.1);
}

.koala-media-strip-placeholder {
  width: 100%;

  color: rgba(255, 255, 255, 0.38);
  font-size: 13px;
  text-align: center;
}

.koala-media-strip-arrow {
  width: 44px;
  height: 58px;

  flex: 0 0 44px;

  display: grid;
  place-items: center;

  padding: 0;

  color: rgba(255, 255, 255, 0.66);
  font: inherit;
  font-size: 31px;
  line-height: 1;

  background: rgba(255, 255, 255, 0.055);
  border: 1px solid rgba(255, 255, 255, 0.09);
  border-radius: 14px;
}

.koala-media-strip-arrow:disabled {
  opacity: 0.35;
  cursor: default;
}

/* ---------------------------------------------------------
   Single-image gallery

   No filmstrip or navigation rail is required when the
   gallery contains only one image.
   --------------------------------------------------------- */

#koalaMediaBrowserOverlay.koala-media-gallery-mode.koala-media-single-item-gallery
.koala-media-strip {
  display: none !important;
}

/* ---------------------------------------------------------
   Single-image gallery — orientation-aware presentation

   Only applies when there is exactly one gallery image.
   Multi-image gallery geometry remains untouched.
   --------------------------------------------------------- */


/*
 * Remove the fixed full-stage image geometry used by the
 * multi-image gallery.
 */

#koalaMediaBrowserOverlay.koala-media-gallery-mode.koala-media-single-item-gallery
.koala-media-preview-image {
  position: relative !important;

  inset: auto !important;

  width: auto !important;
  height: auto !important;

  max-width: 100% !important;
  max-height: 100% !important;

  object-fit: contain !important;
  object-position: center center !important;
}


/*
 * PORTRAIT
 *
 * Height is the limiting dimension.
 * This lets a tall photograph use as much of the phone's
 * vertical real estate as possible.
 */

#koalaMediaBrowserOverlay.koala-media-gallery-mode.koala-media-single-portrait
.koala-media-preview-stage {
  width: auto !important;

  max-width: calc(100vw - 24px) !important;

  height: 100% !important;
  max-height: calc(100dvh - 24px) !important;

  margin: auto !important;
}


#koalaMediaBrowserOverlay.koala-media-gallery-mode.koala-media-single-portrait
.koala-media-preview-image {
  width: auto !important;
  height: 100% !important;

  max-width: 100% !important;
  max-height: 100% !important;
}


/*
 * LANDSCAPE
 *
 * Width is the limiting dimension.
 * This lets a wide photograph use the available horizontal
 * viewport rather than retaining portrait-oriented geometry.
 */

#koalaMediaBrowserOverlay.koala-media-gallery-mode.koala-media-single-landscape
.koala-media-preview-stage {
  width: 100% !important;
  max-width: calc(100vw - 24px) !important;

  height: auto !important;
  max-height: calc(100dvh - 24px) !important;

  margin: auto !important;
}


#koalaMediaBrowserOverlay.koala-media-gallery-mode.koala-media-single-landscape
.koala-media-preview-image {
  width: 100% !important;
  height: auto !important;

  max-width: 100% !important;
  max-height: 100% !important;
}

@media (max-width: 700px) {
  #koalaMediaBrowserOverlay {
    align-items: stretch;

    padding:
      max(8px, env(safe-area-inset-top))
      max(8px, env(safe-area-inset-right))
      max(8px, env(safe-area-inset-bottom))
      max(8px, env(safe-area-inset-left));
  }

  .koala-media-browser {
    width: 100%;
    height: 100%;

    border-radius: 22px;
  }

  .koala-media-preview {
    padding: 14px;
  }

  .koala-media-empty-state {
    padding: 24px 18px;
  }

  .koala-media-strip {
    min-height: 126px;

    gap: 8px;
    padding: 10px;
  }

  .koala-media-thumbnails {
    min-height: 108px;
    padding: 8px 7px;
    scroll-padding-inline: 7px;
  }

  .koala-media-strip-arrow {
    width: 38px;
    height: 52px;

    flex-basis: 38px;
  }
}

@media (prefers-reduced-motion: reduce) {
  #koalaMediaBrowserOverlay,
  .koala-media-browser,
  .koala-media-close {
    transition: none;
  }
}

.koala-media-preview-video {
  position: absolute;
  inset: 0;

  display: block;

  width: 100%;
  height: 100%;

  max-width: 100%;
  max-height: 100%;

  margin: auto;

  object-fit: contain;
  object-position: center;

  background: #000;
}

.koala-media-preview-stage {
  position: relative;

  width: 100%;
  height: 100%;
  min-width: 0;

  overflow: hidden;

  background: rgba(0, 0, 0, 0.16);
}

.koala-media-preview-image {
    position: absolute;
    inset: 0;

    display: block;

    width: 100%;
    height: 100%;

    object-fit: contain;
    object-position: center;
  }

.koala-media-thumbnails::-webkit-scrollbar {
  display: none;
}

.koala-media-thumbnails {
  min-width: 0;
  min-height: 116px;

  flex: 1;

  display: flex;
  align-items: center;
  gap: 12px;

  padding: 10px 8px;
  box-sizing: border-box;

  overflow-x: auto;
  overflow-y: hidden;

  scroll-behavior: smooth;
  scroll-padding-inline: 8px;

  scrollbar-width: none;
  border-radius: 16px;
}

.koala-media-thumbnail {
  position: relative;
  z-index: 1;
  flex: 0 0 auto;

  width: 132px;
  height: 94px;

  padding: 0;
  overflow: hidden;

  background: rgba(255, 255, 255, 0.035);
  border: 1px solid rgba(255, 255, 255, 0.08);
  border-radius: 14px;

  cursor: pointer;

  transform: scale(1);
  transform-origin: center;

  transition:
    transform 160ms cubic-bezier(.22, .61, .36, 1),
    border-color 160ms ease,
    box-shadow 160ms ease;

  will-change: transform;
}

.koala-media-thumbnail:hover,
.koala-media-thumbnail.is-selected {
  z-index: 10;
}

.koala-media-thumbnail:hover,
.koala-media-thumbnail:focus-visible {
  outline: none;

  transform: scale(1.045);
  border-color: rgba(255, 255, 255, 0.22);

  box-shadow:
    0 8px 18px rgba(0, 0, 0, 0.22);
}

.koala-media-thumbnail.is-selected {
  transform: scale(1.06);
  border-color: #7cff00;

  box-shadow:
    0 0 0 2px rgba(124, 255, 0, 0.18),
    0 12px 28px rgba(0, 0, 0, 0.30);
}

.koala-media-thumbnail.is-selected:hover,
.koala-media-thumbnail.is-selected:focus-visible {
  transform: scale(1.06);
}

.koala-media-thumbnail img {
  display: block;

  width: 100%;
  height: 100%;

  object-fit: cover;
}

.koala-media-strip-arrow:not(:disabled) {
  cursor: pointer;

  transition:
    color 150ms ease,
    background 150ms ease,
    border-color 150ms ease,
    transform 150ms ease;
}

.koala-media-strip-arrow:not(:disabled):hover,
.koala-media-strip-arrow:not(:disabled):focus-visible {
  color: #7cff00;

  background: rgba(124, 255, 0, 0.1);
  border-color: rgba(124, 255, 0, 0.35);

  outline: none;
  transform: scale(1.04);
}

@media (max-width: 700px) {
  .koala-media-thumbnail {
    width: 118px;
    min-width: 118px;
    height: 88px;
  }

  .koala-media-preview-caption {
    left: 10px;
    right: 10px;
    bottom: 10px;
  }
}

/* =========================================================
   MEDIA LIBRARY HEADER ACTIONS
   ========================================================= */

.koala-media-header-actions {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 10px;
  flex-wrap: nowrap;
}

.koala-media-upload,
.koala-media-select,
.koala-media-delete {
  cursor: pointer;

  transition:
    transform 120ms ease,
    filter 150ms ease,
    opacity 150ms ease;
}

.koala-media-upload:not(:disabled):hover,
.koala-media-select:not(:disabled):hover {
  filter: brightness(1.12);
}

.koala-media-delete:not(:disabled):hover {
  filter: brightness(1.12);
}

.koala-media-upload:not(:disabled):active,
.koala-media-select:not(:disabled):active,
.koala-media-delete:not(:disabled):active {
  transform: scale(0.97);
}

.koala-media-upload:disabled,
.koala-media-select:disabled,
.koala-media-delete:disabled {
  opacity: 0.38;
  cursor: default;
  filter: saturate(0.55);
}

/* =========================================================
   MOBILE MEDIA BROWSER HEADER
   ========================================================= */

@media (max-width: 700px) {

  .koala-media-header {
    position: relative;

    display: block;

    min-height: 0;

    padding:
      18px
      16px
      16px;
  }

  .koala-media-heading {
    min-width: 0;

    display: flex;
    align-items: center;

    gap: 12px;

    /*
     * Reserve space for the close button.
     */
    padding-right: 58px;
  }

  .koala-media-heading-icon {
    width: 44px;
    height: 44px;

    flex: 0 0 44px;

    font-size: 23px;

    border-radius: 13px;
  }

  .koala-media-heading > div:last-child {
    min-width: 0;
  }

  .koala-media-title {
    margin: 0;

    font-size: 1.22rem;
    line-height: 1.12;

    white-space: normal;
  }

  .koala-media-subtitle {
    display: block;

    margin-top: 5px;

    font-size: 0.76rem;
    line-height: 1.3;
  }


  /* -----------------------------------------
     Mobile action layout
     ----------------------------------------- */

  .koala-media-header-actions {
    display: grid;

    grid-template-columns:
      repeat(2, minmax(0, 1fr));

    gap: 10px;

    width: 100%;

    margin-top: 18px;
  }


  /*
   * Upload gets its own full-width row.
   */

  .koala-media-upload {
    grid-column: 1 / -1;

    width: 100% !important;
    min-width: 0 !important;

    height: 46px !important;

    padding: 0 14px !important;

    font-size: 0.95rem !important;
  }


  /*
   * Select and Delete share the second row.
   */

  .koala-media-select,
  .koala-media-delete {
    width: 100% !important;
    min-width: 0 !important;

    height: 46px !important;

    padding: 0 12px !important;

    font-size: 0.92rem !important;
  }


  /*
   * Close belongs independently in the
   * upper-right corner rather than competing
   * with the action buttons.
   */

  .koala-media-close {
    position: absolute;

    top: 16px;
    right: 16px;

    width: 46px;
    height: 46px;

    margin: 0;

    z-index: 2;
  }
}

/* Koala Media Upload Preview and Status */

.koala-media-upload-status {
  grid-column: 1 / -1;

  margin: 0 18px 16px;
  padding: 16px;

  border:
    1px solid rgba(124, 255, 0, 0.28);
  border-radius: 16px;

  background:
    rgba(8, 24, 10, 0.92);

  box-shadow:
    0 12px 28px
      rgba(0, 0, 0, 0.28);
}

.koala-media-upload-status[hidden] {
  display: none;
}

.koala-media-upload-status p {
  margin:
    0 0 10px;

  color:
    rgba(255, 255, 255, 0.94);
}

.koala-media-upload-status .upload-preview {
  display: block;

  width: 100%;
  max-width: 280px;
  max-height: 180px;

  margin:
    14px auto 0;

  object-fit: contain;

  border-radius: 12px;
}

.koala-media-upload-status
.upload-progress-wrap {
  overflow: hidden;

  width: 100%;
  height: 12px;

  border-radius: 999px;

  background:
    rgba(255, 255, 255, 0.12);
}

/* =========================================================
   UPLOAD MODE — HIDE NORMAL MEDIA BROWSER PANES
   Keep this at the end of the stylesheet.
   ========================================================= */

#koalaMediaBrowserOverlay.is-uploading
.koala-media-preview,

#koalaMediaBrowserOverlay.is-uploading
.koala-media-inspector,

#koalaMediaBrowserOverlay.is-uploading
.koala-media-strip {
  display: none !important;
}

#koalaMediaBrowserOverlay.is-uploading
.koala-media-content {
  display: block !important;
  overflow: auto;
}

#koalaMediaBrowserOverlay.is-uploading
.koala-media-upload-status {
  display: flex;
  flex-direction: column;

  width:
    calc(100% - 32px);

  max-width:
    none;

  height:
    auto;

  min-height:
    0;

  margin:
    16px auto;

  padding:
    24px 26px;

  box-sizing:
    border-box;

  overflow:
    hidden;

  border-radius:
    22px;
}

#koalaMediaBrowserOverlay.is-uploading
.koala-media-upload-status
.upload-preview {
  display: block;

  width: auto;
  height: auto;

  max-width: 100%;
  max-height: min(520px, 58vh);

  margin:
    24px auto 0;

  object-fit:
    contain;

  border-radius:
    16px;
}

@media (max-width: 700px) {

  #koalaMediaBrowserOverlay.is-uploading
  .koala-media-upload-status {
    width:
      calc(100% - 24px);

    margin:
      12px auto;

    padding:
      20px 18px;
  }

  #koalaMediaBrowserOverlay.is-uploading
  .koala-media-upload-status
  .upload-preview {
    max-width:
      100%;

    max-height:
      58vh;

    margin-top:
      20px;
  }
}

/* =========================================================
   GUEST GALLERY MODE
   Uses KoalaMediaBrowser as the shared rendering engine,
   but presents media using the clean Partner-image style.
   KEEP THIS AT THE END OF THE STYLESHEET.
   ========================================================= */


/* ---------------------------------------------------------
   Full-screen guest backdrop
   --------------------------------------------------------- */

#koalaMediaBrowserOverlay.koala-media-gallery-mode {
  align-items: center !important;
  justify-content: center !important;

  padding:
    max(18px, env(safe-area-inset-top))
    max(18px, env(safe-area-inset-right))
    max(18px, env(safe-area-inset-bottom))
    max(18px, env(safe-area-inset-left))
    !important;

  background:
    rgba(0, 0, 0, 0.85)
    !important;

  backdrop-filter:
    blur(8px)
    !important;

  -webkit-backdrop-filter:
    blur(8px)
    !important;
}


/* ---------------------------------------------------------
   Main glass panel

   Mirrors the current Partner primary-image viewer:
   auto-sized around its actual content rather than being
   a fixed Media Library window.
   --------------------------------------------------------- */

#koalaMediaBrowserOverlay.koala-media-gallery-mode
.koala-media-browser {
  position: relative !important;

  width: auto !important;
  height: auto !important;

  max-width: 96vw !important;
  max-height: 94dvh !important;

  min-width: 0 !important;
  min-height: 0 !important;

  padding: 8px !important;

  overflow: hidden !important;

  background:
    rgba(255, 255, 255, 0.12)
    !important;

  border:
    0
    !important;

  border-radius:
    20px
    !important;

  box-shadow:
    none
    !important;
}


/* ---------------------------------------------------------
   Remove Media Library header presentation
   --------------------------------------------------------- */

#koalaMediaBrowserOverlay.koala-media-gallery-mode
.koala-media-header {
  position: static !important;

  display: block !important;

  width: 0 !important;
  height: 0 !important;

  min-height: 0 !important;

  margin: 0 !important;
  padding: 0 !important;

  overflow: visible !important;

  background:
    transparent
    !important;

  border:
    0
    !important;
}


#koalaMediaBrowserOverlay.koala-media-gallery-mode
.koala-media-heading {
  display:
    none
    !important;
}


#koalaMediaBrowserOverlay.koala-media-gallery-mode
.koala-media-header-actions {
  position: static !important;

  display: block !important;

  width: 0 !important;
  height: 0 !important;

  margin: 0 !important;
  padding: 0 !important;
}


/* ---------------------------------------------------------
   Close button

   Same minimal treatment as the existing Partner image
   lightbox rather than an admin-browser button.
   --------------------------------------------------------- */

#koalaMediaBrowserOverlay.koala-media-gallery-mode
.koala-media-close {
  position: fixed !important;

  top:
    max(
      18px,
      env(safe-area-inset-top)
    )
    !important;

  right:
    max(
      18px,
      env(safe-area-inset-right)
    )
    !important;

  z-index:
    2147483647
    !important;

  display:
    flex
    !important;

  align-items:
    center
    !important;

  justify-content:
    center
    !important;

  width:
    44px
    !important;

  height:
    44px
    !important;

  min-width:
    44px
    !important;

  margin:
    0
    !important;

  padding:
    0
    !important;

  color:
    #ffffff
    !important;

  font-size:
    38px
    !important;

  font-weight:
    300
    !important;

  line-height:
    1
    !important;

  background:
    rgba(0, 0, 0, 0.38)
    !important;

  border:
    1px solid
    rgba(255, 255, 255, 0.20)
    !important;

  border-radius:
    50%
    !important;

  box-shadow:
    0 4px 16px
    rgba(0, 0, 0, 0.24)
    !important;

  backdrop-filter:
    blur(8px)
    !important;

  -webkit-backdrop-filter:
    blur(8px)
    !important;

  transform:
    none
    !important;
}


#koalaMediaBrowserOverlay.koala-media-gallery-mode
.koala-media-close:hover,

#koalaMediaBrowserOverlay.koala-media-gallery-mode
.koala-media-close:focus-visible {
  color:
    #ffffff
    !important;

  background:
    transparent
    !important;

  border:
    0
    !important;

  box-shadow:
    none
    !important;

  transform:
    none
    !important;
}


/* ---------------------------------------------------------
   Remove admin content-shell behaviour
   --------------------------------------------------------- */

#koalaMediaBrowserOverlay.koala-media-gallery-mode
.koala-media-content {
  flex:
    0 0 auto
    !important;

  display:
    block
    !important;

  width:
    auto
    !important;

  height:
    auto
    !important;

  min-width:
    0
    !important;

  min-height:
    0
    !important;

  margin:
    0
    !important;

  padding:
    0
    !important;

  overflow:
    visible
    !important;
}


#koalaMediaBrowserOverlay.koala-media-gallery-mode
.koala-media-inspector {
  display:
    none
    !important;
}


#koalaMediaBrowserOverlay.koala-media-gallery-mode
.koala-media-upload-status {
  display:
    none
    !important;
}


/* ---------------------------------------------------------
   Stable gallery viewport

   The panel no longer resizes when moving between
   portrait and landscape images.
   --------------------------------------------------------- */

#koalaMediaBrowserOverlay.koala-media-gallery-mode
.koala-media-preview {
  flex: 0 0 auto !important;

  display: block !important;

  width: min(92vw, 1100px) !important;
  height: min(72dvh, 760px) !important;

  min-width: 0 !important;
  min-height: 0 !important;

  margin: 0 !important;
  padding: 0 !important;

  overflow: hidden !important;

  background: transparent !important;
}


#koalaMediaBrowserOverlay.koala-media-gallery-mode
.koala-media-preview-stage {
  position: relative !important;

  display: flex !important;
  align-items: center !important;
  justify-content: center !important;

  width: 100% !important;
  height: 100% !important;

  min-width: 0 !important;
  min-height: 0 !important;

  margin: 0 !important;
  padding: 0 !important;

  overflow: hidden !important;

  background: transparent !important;

  border-radius: 16px !important;
}


#koalaMediaBrowserOverlay.koala-media-gallery-mode
.koala-media-preview-image {
  position: absolute !important;

  inset: 0 !important;

  display: block !important;

  width: 100% !important;
  height: 100% !important;

  max-width: none !important;
  max-height: none !important;

  object-fit: contain !important;
  object-position: center center !important;

  border-radius: 16px !important;

  box-shadow: none !important;
}

/* ---------------------------------------------------------
   Gallery strip

   Keep this inside the SAME glass panel rather than
   creating another heavy browser-style footer.
   --------------------------------------------------------- */

#koalaMediaBrowserOverlay.koala-media-gallery-mode
.koala-media-strip {
  flex:
    0 0 auto
    !important;

  display:
    flex
    !important;

  align-items:
    center
    !important;

  width:
    min(
      88vw,
      760px
    )
    !important;

  min-height:
    0
    !important;

  max-width:
    100%
    !important;

  gap:
    7px
    !important;

  margin:
    8px auto 0
    !important;

  padding:
    5px 6px
    !important;

  background:
    rgba(0, 0, 0, 0.20)
    !important;

  border:
    0
    !important;

  border-radius:
    12px
    !important;

  box-shadow:
    none
    !important;
}


/* ---------------------------------------------------------
   Thumbnail rail
   --------------------------------------------------------- */

#koalaMediaBrowserOverlay.koala-media-gallery-mode
.koala-media-thumbnails {
  flex:
    1 1 auto
    !important;

  display:
    flex
    !important;

  align-items:
    center
    !important;

  gap:
    7px
    !important;

  min-width:
    0
    !important;

  min-height:
    0
    !important;

  height:
    auto
    !important;

  padding:
    2px
    !important;

  overflow-x:
    auto
    !important;

  overflow-y:
    hidden
    !important;

  scroll-padding-inline:
    2px
    !important;

  border-radius:
    0
    !important;

  scrollbar-width:
    none
    !important;

  -webkit-overflow-scrolling:
    touch;
}


#koalaMediaBrowserOverlay.koala-media-gallery-mode
.koala-media-thumbnails::-webkit-scrollbar {
  display:
    none
    !important;
}


/* ---------------------------------------------------------
   Guest thumbnails
   --------------------------------------------------------- */

#koalaMediaBrowserOverlay.koala-media-gallery-mode
.koala-media-thumbnail {
  position:
    relative
    !important;

  flex:
    0 0 74px
    !important;

  width:
    74px
    !important;

  height:
    auto
    !important;

  aspect-ratio:
    4 / 3
    !important;

  margin:
    0
    !important;

  padding:
    0
    !important;

  overflow:
    hidden
    !important;

  background:
    rgba(255, 255, 255, 0.06)
    !important;

  border:
    1px solid
    rgba(255, 255, 255, 0.15)
    !important;

  border-radius:
    8px
    !important;

  box-shadow:
    none
    !important;

  transform:
    none
    !important;
}


#koalaMediaBrowserOverlay.koala-media-gallery-mode
.koala-media-thumbnail:hover,

#koalaMediaBrowserOverlay.koala-media-gallery-mode
.koala-media-thumbnail:focus-visible {
  transform:
    none
    !important;

  box-shadow:
    none
    !important;
}


#koalaMediaBrowserOverlay.koala-media-gallery-mode
.koala-media-thumbnail.is-selected {
  transform:
    none
    !important;

  border-color:
    rgba(
      124,
      255,
      0,
      0.9
    )
    !important;

  box-shadow:
    0 0 7px
    rgba(
      124,
      255,
      0,
      0.28
    )
    !important;
}


#koalaMediaBrowserOverlay.koala-media-gallery-mode
.koala-media-thumbnail img {
  display:
    block
    !important;

  width:
    100%
    !important;

  height:
    100%
    !important;

  object-fit:
    cover
    !important;
}


/* ---------------------------------------------------------
   Gallery strip arrows
   --------------------------------------------------------- */

#koalaMediaBrowserOverlay.koala-media-gallery-mode
.koala-media-strip-arrow {
  flex:
    0 0 28px
    !important;

  width:
    28px
    !important;

  min-width:
    28px
    !important;

  height:
    42px
    !important;

  padding:
    0
    !important;

  color:
    rgba(
      255,
      255,
      255,
      0.90
    )
    !important;

  font-size:
    26px
    !important;

  background:
    transparent
    !important;

  border:
    0
    !important;

  border-radius:
    0
    !important;

  box-shadow:
    none
    !important;

  transform:
    none
    !important;
}


#koalaMediaBrowserOverlay.koala-media-gallery-mode
.koala-media-strip-arrow:not(:disabled):hover,

#koalaMediaBrowserOverlay.koala-media-gallery-mode
.koala-media-strip-arrow:not(:disabled):focus-visible {
  color:
    #ffffff
    !important;

  background:
    transparent
    !important;

  border:
    0
    !important;

  box-shadow:
    none
    !important;

  transform:
    none
    !important;
}


/* =========================================================
   MOBILE GALLERY MODE
   ========================================================= */

@media (max-width: 700px) {

  #koalaMediaBrowserOverlay.koala-media-gallery-mode {
    align-items: center !important;
    justify-content: flex-start !important;

    padding:
      max(8px, env(safe-area-inset-top))
      max(8px, env(safe-area-inset-right))
      max(8px, env(safe-area-inset-bottom))
      max(8px, env(safe-area-inset-left))
      !important;
  }


  #koalaMediaBrowserOverlay.koala-media-gallery-mode
  .koala-media-browser {
    width:
      auto
      !important;

    height:
      auto
      !important;

    max-width:
      98vw
      !important;

    max-height:
      96dvh
      !important;

    padding:
      6px
      !important;

    border-radius:
      18px
      !important;
  }


  #koalaMediaBrowserOverlay.koala-media-gallery-mode
  .koala-media-preview-image {
    width:
      auto
      !important;

    height:
      auto
      !important;

    max-width:
      94vw
      !important;

    max-height:
      76dvh
      !important;

    border-radius:
      14px
      !important;
  }


  #koalaMediaBrowserOverlay.koala-media-gallery-mode
  .koala-media-strip {
    width:
      100%
      !important;

    gap:
      5px
      !important;

    margin-top:
      6px
      !important;

    padding:
      4px
      !important;

    border-radius:
      10px
      !important;
  }


  #koalaMediaBrowserOverlay.koala-media-gallery-mode
  .koala-media-thumbnail {
    flex-basis:
      62px
      !important;

    width:
      62px
      !important;

    min-width:
      62px
      !important;
  }


  #koalaMediaBrowserOverlay.koala-media-gallery-mode
  .koala-media-strip-arrow {
    flex-basis:
      24px
      !important;

    width:
      24px
      !important;

    min-width:
      24px
      !important;
  }

}

/* =========================================================
   GALLERY IMAGE CROSSFADE
   ========================================================= */

#koalaMediaBrowserOverlay.koala-media-gallery-mode
.koala-media-preview-stage {
  opacity: 1;

  transition:
    opacity 110ms ease !important;

  will-change:
    opacity;
}


#koalaMediaBrowserOverlay.koala-media-gallery-mode
.koala-media-preview-stage.is-changing {
  opacity: 0;
}


@media (prefers-reduced-motion: reduce) {

  #koalaMediaBrowserOverlay.koala-media-gallery-mode
  .koala-media-preview-stage {
    transition:
      none !important;
  }

}

#koalaMediaBrowserOverlay.koala-media-gallery-mode
.koala-media-preview-stage {
  position: relative !important;

  display: flex !important;

  align-items: center !important;
  justify-content: center !important;
}


#koalaMediaBrowserOverlay.koala-media-gallery-mode
.koala-media-preview-image {
  position: absolute !important;

  inset: 0 !important;

  width: 100% !important;
  height: 100% !important;

  margin: auto !important;

  object-fit: contain !important;
  object-position: center center !important;
}

@media (max-width: 700px) {

  #koalaMediaBrowserOverlay.koala-media-gallery-mode
  .koala-media-close {
    top:
      max(
        12px,
        env(safe-area-inset-top)
      )
      !important;

    right:
      max(
        12px,
        env(safe-area-inset-right)
      )
      !important;

    width:
      42px
      !important;

    height:
      42px
      !important;

    min-width:
      42px
      !important;

    font-size:
      34px
      !important;
  }

}

#koalaMediaBrowserOverlay.koala-media-gallery-mode
.koala-media-browser {
  max-width:
    calc(
      100vw -
      env(safe-area-inset-left) -
      env(safe-area-inset-right) -
      16px
    )
    !important;

  max-height:
    calc(
      100dvh -
      env(safe-area-inset-top) -
      env(safe-area-inset-bottom) -
      16px
    )
    !important;
}


/* =========================================================
   PHONE LANDSCAPE GALLERY
   ========================================================= */

@media
  (orientation: landscape)
  and
  (max-height: 600px) {

  /*
   * Use the available landscape screen.
   */

  #koalaMediaBrowserOverlay.koala-media-gallery-mode {
    padding:
      8px
      max(10px, env(safe-area-inset-right))
      8px
      max(10px, env(safe-area-inset-left))
      !important;
  }


  #koalaMediaBrowserOverlay.koala-media-gallery-mode
  .koala-media-browser {

    width:
      min(94vw, 1100px)
      !important;

    height:
      calc(100dvh - 16px)
      !important;

    max-width:
      none
      !important;

    max-height:
      none
      !important;

    padding:
      6px
      !important;

    display:
      flex
      !important;

    flex-direction:
      row
      !important;

    gap:
      6px
      !important;
  }


  /*
   * Main image gets almost all available space.
   */

  #koalaMediaBrowserOverlay.koala-media-gallery-mode
  .koala-media-content {

    flex:
      1 1 auto
      !important;

    width:
      auto
      !important;

    min-width:
      0
      !important;

    min-height:
      0
      !important;

    display:
      flex
      !important;
  }


  #koalaMediaBrowserOverlay.koala-media-gallery-mode
  .koala-media-preview {

    flex:
      1 1 auto
      !important;

    width:
      100%
      !important;

    height:
      100%
      !important;

    min-width:
      0
      !important;

    min-height:
      0
      !important;
  }


  #koalaMediaBrowserOverlay.koala-media-gallery-mode
  .koala-media-preview-stage {

    width:
      100%
      !important;

    height:
      100%
      !important;

    min-height:
      0
      !important;
  }


  /*
   * Existing contain behaviour remains important:
   * portrait stays portrait; landscape fills the stage.
   */

  #koalaMediaBrowserOverlay.koala-media-gallery-mode
  .koala-media-preview-image {

    width:
      100%
      !important;

    height:
      100%
      !important;

    object-fit:
      contain
      !important;

    object-position:
      center center
      !important;
  }


  /*
   * Turn filmstrip into a vertical rail.
   */

  #koalaMediaBrowserOverlay.koala-media-gallery-mode
  .koala-media-strip {

    flex:
      0 0 82px
      !important;

    width:
      82px
      !important;

    height:
      100%
      !important;

    min-height:
      0
      !important;

    margin:
      0
      !important;

    padding:
      4px
      !important;

    display:
      flex
      !important;

    flex-direction:
      column
      !important;

    gap:
      4px
      !important;

    border-radius:
      12px
      !important;
  }


  #koalaMediaBrowserOverlay.koala-media-gallery-mode
  .koala-media-thumbnails {

    flex:
      1 1 auto
      !important;

    width:
      100%
      !important;

    height:
      auto
      !important;

    min-height:
      0
      !important;

    display:
      flex
      !important;

    flex-direction:
      column
      !important;

    overflow-x:
      hidden
      !important;

    overflow-y:
      auto
      !important;

    gap:
      5px
      !important;

    padding:
      2px
      !important;

    scrollbar-width:
      none;
  }


  #koalaMediaBrowserOverlay.koala-media-gallery-mode
  .koala-media-thumbnails::-webkit-scrollbar {
    display:
      none;
  }


  #koalaMediaBrowserOverlay.koala-media-gallery-mode
  .koala-media-thumbnail {

    flex:
      0 0 68px
      !important;

    width:
      68px
      !important;

    min-width:
      68px
      !important;

    height:
      54px
      !important;

    aspect-ratio:
      auto
      !important;

    border-radius:
      8px
      !important;
  }


  /*
   * Existing strip arrows now scroll vertically.
   * The JS can continue using the same controls;
   * we only rotate their visual direction.
   */

  #koalaMediaBrowserOverlay.koala-media-gallery-mode
  .koala-media-strip-arrow {

    flex:
      0 0 26px
      !important;

    width:
      100%
      !important;

    min-width:
      0
      !important;

    height:
      26px
      !important;

    min-height:
      26px
      !important;
  }


  #koalaMediaBrowserOverlay.koala-media-gallery-mode
  .koala-media-strip-arrow-left {
    transform:
      rotate(90deg);
  }


  #koalaMediaBrowserOverlay.koala-media-gallery-mode
  .koala-media-strip-arrow-right {
    transform:
      rotate(90deg);
  }


  /*
   * Close remains outside the photograph.
   */

  #koalaMediaBrowserOverlay.koala-media-gallery-mode
  .koala-media-close {

    top:
      max(8px, env(safe-area-inset-top))
      !important;

    right:
      calc(
        max(10px, env(safe-area-inset-right)) +
        90px
      )
      !important;

    width:
      38px
      !important;

    height:
      38px
      !important;

    min-width:
      38px
      !important;

    font-size:
      31px
      !important;
  }

}

/* =========================================================
   VIDEO EDITOR
   ========================================================= */

.koala-video-editor-layer {
  position: absolute;
  inset: 0;
  z-index: 50;

  display: flex;
  align-items: center;
  justify-content: center;

  padding: 18px;

  box-sizing: border-box;

  background:
    rgba(0, 0, 0, 0.74);

  backdrop-filter:
    blur(16px);

  -webkit-backdrop-filter:
    blur(16px);
}


/* ---------------------------------------------------------
   Main editor panel
   --------------------------------------------------------- */

.koala-video-editor {
  width:
    min(820px, 94vw);

  max-height:
    calc(100dvh - 36px);

  display: flex;
  flex-direction: column;

  overflow-x: hidden;
  overflow-y: auto;

  color: #ffffff;

  background:
    linear-gradient(
      145deg,
      rgba(42, 52, 45, 0.98),
      rgba(12, 18, 14, 0.99)
    );

  border:
    1px solid
    rgba(124, 255, 0, 0.28);

  border-radius: 24px;

  box-shadow:
    0 30px 90px
      rgba(0, 0, 0, 0.64),

    0 0 36px
      rgba(124, 255, 0, 0.055),

    inset 0 1px 0
      rgba(255, 255, 255, 0.08);

  scrollbar-width: none;
}


.koala-video-editor::-webkit-scrollbar {
  display: none;
}


/* ---------------------------------------------------------
   Header
   --------------------------------------------------------- */

.koala-video-editor-header {
  flex: 0 0 auto;

  display: flex;
  align-items: center;
  justify-content: space-between;

  gap: 18px;

  padding:
    18px 20px 15px;

  border-bottom:
    1px solid
    rgba(255, 255, 255, 0.08);
}


.koala-video-editor-header h3 {
  margin: 0;

  color: #ffffff;

  font-size: 1.12rem;
  font-weight: 680;
  line-height: 1.15;
  letter-spacing: 0.01em;
}


.koala-video-editor-subtitle {
  margin-top: 5px;

  color:
    rgba(255, 255, 255, 0.56);

  font-size: 0.78rem;
  line-height: 1.35;
}


.koala-video-editor-close {
  width: 42px;
  height: 42px;

  flex:
    0 0 42px;

  display: grid;
  place-items: center;

  padding: 0;

  color:
    rgba(255, 255, 255, 0.88);

  font: inherit;
  font-size: 27px;
  font-weight: 300;
  line-height: 1;

  background:
    rgba(255, 255, 255, 0.065);

  border:
    1px solid
    rgba(255, 255, 255, 0.12);

  border-radius: 13px;

  cursor: pointer;

  transition:
    color 150ms ease,
    background 150ms ease,
    border-color 150ms ease,
    transform 150ms ease;
}


.koala-video-editor-close:hover,
.koala-video-editor-close:focus-visible {
  color: #7cff00;

  background:
    rgba(124, 255, 0, 0.10);

  border-color:
    rgba(124, 255, 0, 0.34);

  outline: none;

  transform:
    scale(1.035);
}


/* ---------------------------------------------------------
   Video preview
   --------------------------------------------------------- */

.koala-video-editor-preview {
  flex: 0 0 auto;

  display: flex;
  align-items: center;
  justify-content: center;

  min-height: 0;

  padding:
    16px 20px 0;

  overflow: hidden;
}


.koala-video-editor-video-source {
  position: absolute;

  width: 1px;
  height: 1px;

  opacity: 0;

  pointer-events: none;
}


.koala-video-editor-poster-canvas {
  display: block;

  width: auto;
  height: auto;

  max-width: 100%;
  max-height: min(
    36dvh,
    360px
  );

  object-fit: contain;

  background:
    #000000;

  border:
    1px solid
    rgba(255, 255, 255, 0.10);

  border-radius: 16px;

  box-shadow:
    0 14px 36px
    rgba(0, 0, 0, 0.28);
}


/* ---------------------------------------------------------
   Poster heading
   --------------------------------------------------------- */

.koala-video-editor-controls {
  flex: 0 0 auto;

  padding:
    16px 20px 9px;
}


.koala-video-poster-heading {
  display: flex;
  align-items: center;
  justify-content: space-between;

  gap: 14px;

  color: #ffffff;

  font-size: 0.88rem;
  font-weight: 660;
}


.koala-video-poster-heading-actions {
  display: flex;
  align-items: center;

  gap: 10px;
}


.koala-video-poster-status {
  color:
    rgba(190, 255, 151, 0.82);

  font-size: 0.72rem;
  font-weight: 600;
}


.koala-video-poster-reset {
  min-height: 30px;

  padding:
    0 11px;

  color:
    rgba(211, 255, 184, 0.90);

  font: inherit;
  font-size: 0.72rem;
  font-weight: 620;

  background:
    rgba(124, 255, 0, 0.065);

  border:
    1px solid
    rgba(124, 255, 0, 0.20);

  border-radius: 999px;

  cursor: pointer;

  transition:
    background 150ms ease,
    border-color 150ms ease,
    transform 120ms ease;
}


.koala-video-poster-reset:hover,
.koala-video-poster-reset:focus-visible {
  background:
    rgba(124, 255, 0, 0.11);

  border-color:
    rgba(124, 255, 0, 0.38);

  outline: none;
}


.koala-video-poster-reset:active {
  transform:
    scale(0.97);
}


/* ---------------------------------------------------------
   Preparation region
   --------------------------------------------------------- */

.koala-video-preparation-controls {
  flex: 0 0 auto;

  padding:
    0 20px 18px;
}


/* ---------------------------------------------------------
   Timeline heading
   --------------------------------------------------------- */

.koala-video-timeline-section {
  width: 100%;
}


.koala-video-timeline-heading {
  display: flex;
  align-items: center;
  justify-content: space-between;

  gap: 12px;

  margin-bottom: 8px;

  color:
    rgba(255, 255, 255, 0.70);

  font-size: 0.76rem;
  font-weight: 620;
}


.koala-video-trim-duration {
  color:
    rgba(255, 255, 255, 0.43);

  font-variant-numeric:
    tabular-nums;
}


/* ---------------------------------------------------------
   SINGLE-ROW FILMSTRIP
   --------------------------------------------------------- */

.koala-video-timeline {
  position: relative;

  width: 100%;
  height: 88px;

  box-sizing: border-box;

  overflow: hidden;

  background:
    rgba(0, 0, 0, 0.52);

  border:
    1px solid
    rgba(255, 255, 255, 0.14);

  border-radius: 13px;

  box-shadow:
    inset 0 1px 0
      rgba(255, 255, 255, 0.04),

    0 8px 20px
      rgba(0, 0, 0, 0.18);

  touch-action: none;

  user-select: none;
  -webkit-user-select: none;
}


.koala-video-filmstrip {
  position: absolute;
  inset: 0;

  z-index: 1;

  display: flex;
  flex-direction: row;
  flex-wrap: nowrap;

  width: 100%;
  height: 100%;

  overflow: hidden;

  pointer-events: none;
}


.koala-video-filmstrip img {
  display: block;

  /*
   * Every captured frame receives exactly one equal
   * segment of the single timeline row.
   */

  flex:
    1 1 0;

  width: 0;
  min-width: 0;

  height: 100%;

  object-fit: cover;

  border-right:
    1px solid
    rgba(0, 0, 0, 0.25);

  pointer-events: none;

  -webkit-user-drag: none;
}


.koala-video-filmstrip img:last-child {
  border-right: 0;
}


.koala-video-filmstrip-loading {
  width: 100%;
  height: 100%;

  display: flex;
  align-items: center;
  justify-content: center;

  color:
    rgba(255, 255, 255, 0.46);

  font-size: 0.76rem;
}


/* ---------------------------------------------------------
   Discarded regions
   --------------------------------------------------------- */

.koala-video-trim-shade {
  position: absolute;

  top: 0;
  bottom: 0;

  z-index: 3;

  background:
    rgba(0, 0, 0, 0.66);

  pointer-events: none;
}


.koala-video-trim-shade-left {
  left: 0;
}


/* ---------------------------------------------------------
   TRIM BRACKETS

   These are deliberately recognisable as:

       [                     ]

   rather than generic slider handles.
   --------------------------------------------------------- */

.koala-video-trim-handle {
  position: absolute;

  top: 0;

  z-index: 8;

  width: 32px;
  height: 100%;

  box-sizing: border-box;

  cursor: ew-resize;

  touch-action: none;

  filter:
    drop-shadow(
      0 0 5px
      rgba(124, 255, 0, 0.45)
    );
}


/*
 * LEFT [
 *
 * Keep the full hit target INSIDE the timeline when
 * trimStart is exactly zero.
 */

.koala-video-trim-handle-start {
  transform:
    translateX(0);

  border-left:
    5px solid
    #7cff00;

  border-top:
    5px solid
    #7cff00;

  border-bottom:
    5px solid
    #7cff00;

  border-radius:
    7px 0 0 7px;
}


/*
 * RIGHT ]
 *
 * At 100%, pull the full control back inside the
 * filmstrip instead of clipping half the handle.
 */

.koala-video-trim-handle-end {
  transform:
    translateX(-100%);

  border-right:
    5px solid
    #7cff00;

  border-top:
    5px solid
    #7cff00;

  border-bottom:
    5px solid
    #7cff00;

  border-radius:
    0 7px 7px 0;
}


.koala-video-trim-handle > span {
  position: absolute;

  top: 50%;

  width: 3px;
  height: 26px;

  transform:
    translateY(-50%);

  border-radius: 999px;

  background:
    rgba(225, 255, 207, 0.92);

  pointer-events: none;
}


.koala-video-trim-handle-start > span {
  left: 10px;
}


.koala-video-trim-handle-end > span {
  right: 10px;
}


/* ---------------------------------------------------------
   Poster playhead
   --------------------------------------------------------- */

.koala-video-poster-playhead {
  position: absolute;

  top: 0;
  bottom: 0;

  z-index: 7;

  width: 2px;

  transform:
    translateX(-50%);

  background:
    rgba(255, 255, 255, 0.98);

  box-shadow:
    0 0 6px
      rgba(255, 255, 255, 0.62);

  pointer-events: none;
}


.koala-video-poster-playhead-head {
  position: absolute;

  top: 3px;
  left: 50%;

  width: 11px;
  height: 11px;

  transform:
    translateX(-50%)
    rotate(45deg);

  background:
    #ffffff;

  border-radius: 2px;

  box-shadow:
    0 0 7px
      rgba(255, 255, 255, 0.50);
}


/* ---------------------------------------------------------
   Timeline values
   --------------------------------------------------------- */

.koala-video-timeline-values {
  display: grid;

  grid-template-columns:
    1fr auto 1fr;

  align-items: center;

  gap: 10px;

  margin-top: 7px;

  color:
    rgba(255, 255, 255, 0.48);

  font-size: 0.70rem;
  line-height: 1.2;

  font-variant-numeric:
    tabular-nums;
}


.koala-video-poster-time {
  color:
    rgba(211, 255, 184, 0.82);

  font-weight: 600;
  text-align: center;
}


.koala-video-trim-end-value {
  text-align: right;
}


/* ---------------------------------------------------------
   Output controls
   --------------------------------------------------------- */

.koala-video-resolution {
  grid-template-columns:
    repeat(
      4,
      minmax(0, 1fr)
    );
}

.koala-video-custom-size {
  margin-top: 9px;

  padding: 12px;

  background:
    rgba(255, 255, 255, 0.035);

  border:
    1px solid
    rgba(255, 255, 255, 0.08);

  border-radius: 12px;
}


.koala-video-custom-size[hidden] {
  display: none;
}


.koala-video-custom-dimensions {
  display: grid;

  grid-template-columns:
    minmax(0, 1fr)
    auto
    minmax(0, 1fr);

  align-items: end;

  gap: 9px;
}


.koala-video-custom-dimensions label {
  min-width: 0;

  display: grid;

  gap: 5px;

  color:
    rgba(255, 255, 255, 0.50);

  font-size: 0.68rem;
  font-weight: 600;
}


.koala-video-dimension-input {
  min-height: 39px;

  display: flex;
  align-items: center;

  overflow: hidden;

  background:
    rgba(0, 0, 0, 0.22);

  border:
    1px solid
    rgba(255, 255, 255, 0.11);

  border-radius: 9px;
}


.koala-video-dimension-input:focus-within {
  border-color:
    rgba(124, 255, 0, 0.42);

  box-shadow:
    0 0 0 2px
    rgba(124, 255, 0, 0.06);
}


.koala-video-dimension-input input {
  min-width: 0;
  width: 100%;

  padding:
    0 8px;

  color:
    rgba(255, 255, 255, 0.92);

  font: inherit;
  font-size: 0.79rem;
  font-weight: 650;

  background:
    transparent;

  border: 0;
  outline: 0;

  appearance: textfield;
  -webkit-appearance: none;
}


.koala-video-dimension-input > span {
  padding-right: 8px;

  color:
    rgba(255, 255, 255, 0.30);

  font-size: 0.64rem;
}


.koala-video-dimension-times {
  padding-bottom: 11px;

  color:
    rgba(255, 255, 255, 0.31);

  font-size: 0.82rem;
}


.koala-video-aspect-lock {
  display: inline-flex;
  align-items: center;

  gap: 9px;

  margin-top: 11px;

  color:
    rgba(255, 255, 255, 0.58);

  font-size: 0.69rem;
  font-weight: 600;

  cursor: pointer;
}


.koala-video-aspect-lock input {
  position: absolute;

  width: 1px;
  height: 1px;

  opacity: 0;

  pointer-events: none;
}


.koala-video-aspect-switch {
  position: relative;

  width: 34px;
  height: 20px;

  flex:
    0 0 34px;

  background:
    rgba(61, 126, 39, 0.72);

  border:
    1px solid
    rgba(124, 255, 0, 0.36);

  border-radius: 999px;
}


.koala-video-aspect-switch > span {
  position: absolute;

  top: 3px;
  left: 15px;

  width: 12px;
  height: 12px;

  background:
    #d9ffc4;

  border-radius: 50%;

  transition:
    left 150ms ease,
    background 150ms ease;
}


.koala-video-aspect-lock
input:not(:checked)
+
.koala-video-aspect-switch {
  background:
    rgba(255, 255, 255, 0.07);

  border-color:
    rgba(255, 255, 255, 0.12);
}


.koala-video-aspect-lock
input:not(:checked)
+
.koala-video-aspect-switch
> span {
  left: 4px;

  background:
    rgba(255, 255, 255, 0.60);
}

.koala-video-settings-panel {
  display: grid;

  grid-template-columns:
    repeat(
      2,
      minmax(0, 1fr)
    );

  gap: 14px;

  margin-top: 18px;
  
  align-items: start;
}


.koala-video-setting-group {
  min-width: 0;

  display: grid;

  gap: 7px;
  
  align-content: start;
}


.koala-video-setting-label {
  color:
    rgba(255, 255, 255, 0.58);

  font-size: 0.72rem;
  font-weight: 620;

  letter-spacing: 0.015em;
}


.koala-video-segmented-control {
  display: grid;

  grid-template-columns:
    repeat(
      3,
      minmax(0, 1fr)
    );

  gap: 3px;

  padding: 4px;

  background:
    rgba(255, 255, 255, 0.045);

  border:
    1px solid
    rgba(255, 255, 255, 0.11);

  border-radius: 13px;

  box-shadow:
    inset 0 1px 0
      rgba(255, 255, 255, 0.035);

  backdrop-filter:
    blur(10px);

  -webkit-backdrop-filter:
    blur(10px);
}


.koala-video-segment {
  min-width: 0;
  min-height: 42px;

  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;

  gap: 2px;

  padding:
    6px 8px;

  color:
    rgba(255, 255, 255, 0.52);

  font: inherit;
  font-size: 0.77rem;
  font-weight: 620;
  line-height: 1.1;

  background:
    transparent;

  border:
    1px solid
    transparent;

  border-radius: 9px;

  cursor: pointer;

  appearance: none;
  -webkit-appearance: none;

  transition:
    color 150ms ease,
    background 150ms ease,
    border-color 150ms ease,
    box-shadow 150ms ease,
    transform 120ms ease;
}


.koala-video-segment strong {
  color: inherit;

  font-size: 0.80rem;
  font-weight: 680;
}


.koala-video-segment span {
  color:
    rgba(255, 255, 255, 0.34);

  font-size: 0.61rem;
  font-weight: 520;
}


.koala-video-segment:hover,
.koala-video-segment:focus-visible {
  color:
    rgba(255, 255, 255, 0.90);

  background:
    rgba(255, 255, 255, 0.06);

  outline: none;
}


.koala-video-segment.is-selected {
  color:
    #d9ffc4;

  background:
    linear-gradient(
      180deg,
      rgba(59, 126, 38, 0.92),
      rgba(24, 72, 17, 0.96)
    );

  border-color:
    rgba(124, 255, 0, 0.36);

  box-shadow:
    inset 0 1px 0
      rgba(255, 255, 255, 0.11),

    0 0 0 1px
      rgba(124, 255, 0, 0.06),

    0 4px 12px
      rgba(0, 0, 0, 0.18);
}


.koala-video-segment.is-selected span {
  color:
    rgba(218, 255, 198, 0.58);
}


.koala-video-segment:active {
  transform:
    scale(0.975);
}


/* ---------------------------------------------------------
   Audio switch
   --------------------------------------------------------- */

.koala-video-audio-control {
  grid-column:
    1 / -1;

  justify-self: start;

  display: inline-flex;
  align-items: center;

  gap: 10px;

  min-height: 34px;

  color:
    rgba(255, 255, 255, 0.70);

  font-size: 0.76rem;
  font-weight: 600;

  cursor: pointer;
}


.koala-video-audio-control
input {
  position: absolute;

  width: 1px;
  height: 1px;

  opacity: 0;

  pointer-events: none;
}


.koala-video-audio-switch {
  position: relative;

  width: 38px;
  height: 22px;

  flex:
    0 0 38px;

  display: block;

  box-sizing: border-box;

  background:
    rgba(255, 255, 255, 0.10);

  border:
    1px solid
    rgba(255, 255, 255, 0.16);

  border-radius: 999px;

  transition:
    background 160ms ease,
    border-color 160ms ease,
    box-shadow 160ms ease;
}


.koala-video-audio-switch > span {
  position: absolute;

  top: 3px;
  left: 3px;

  width: 14px;
  height: 14px;

  border-radius: 50%;

  background:
    rgba(255, 255, 255, 0.78);

  box-shadow:
    0 2px 5px
      rgba(0, 0, 0, 0.34);

  transition:
    transform 160ms ease,
    background 160ms ease;
}


.koala-video-audio-control
input:checked
+
.koala-video-audio-switch {
  background:
    rgba(61, 126, 39, 0.76);

  border-color:
    rgba(124, 255, 0, 0.42);

  box-shadow:
    0 0 10px
      rgba(124, 255, 0, 0.08);
}


.koala-video-audio-control
input:checked
+
.koala-video-audio-switch
> span {
  transform:
    translateX(16px);

  background:
    #d9ffc4;
}


/* ---------------------------------------------------------
   Estimated output
   --------------------------------------------------------- */

.koala-video-output-summary {
  display: grid;

  grid-template-columns:
    auto auto 1fr;

  align-items: center;

  gap: 10px;

  margin-top: 15px;

  padding:
    11px 13px;

  color:
    rgba(255, 255, 255, 0.48);

  font-size: 0.72rem;

  background:
    rgba(255, 255, 255, 0.035);

  border:
    1px solid
    rgba(255, 255, 255, 0.08);

  border-radius: 12px;
}


.koala-video-output-size {
  color:
    rgba(255, 255, 255, 0.94);

  font-size: 0.88rem;
  font-weight: 680;
}


.koala-video-output-target {
  justify-self: end;

  color:
    rgba(190, 255, 151, 0.80);

  font-size: 0.69rem;
  font-weight: 600;
}


.koala-video-output-target.is-over-target {
  color:
    #ffcc66;
}


/* ---------------------------------------------------------
   Footer actions
   --------------------------------------------------------- */

.koala-video-editor-footer {
  flex: 0 0 auto;

  display: flex;
  align-items: center;
  justify-content: flex-end;

  gap: 10px;

  padding:
    0 20px 20px;
}


.koala-video-editor-cancel,
.koala-video-editor-confirm {
  min-height: 44px;

  display: inline-flex;
  align-items: center;
  justify-content: center;

  padding:
    0 20px;

  font: inherit;
  font-size: 0.82rem;
  font-weight: 680;
  line-height: 1;

  border-radius: 12px;

  cursor: pointer;

  appearance: none;
  -webkit-appearance: none;

  transition:
    color 150ms ease,
    background 150ms ease,
    border-color 150ms ease,
    box-shadow 150ms ease,
    transform 120ms ease,
    filter 150ms ease;
}


.koala-video-editor-cancel {
  color:
    rgba(255, 255, 255, 0.78);

  background:
    rgba(255, 255, 255, 0.055);

  border:
    1px solid
    rgba(255, 255, 255, 0.13);

  box-shadow:
    inset 0 1px 0
      rgba(255, 255, 255, 0.04);
}


.koala-video-editor-cancel:hover,
.koala-video-editor-cancel:focus-visible {
  color: #ffffff;

  background:
    rgba(255, 255, 255, 0.09);

  border-color:
    rgba(255, 255, 255, 0.22);

  outline: none;
}


.koala-video-editor-confirm {
  min-width: 148px;

  color:
    #d9ffc4;

  background:
    linear-gradient(
      180deg,
      rgba(45, 104, 29, 0.98),
      rgba(16, 54, 13, 0.99)
    );

  border:
    1px solid
    rgba(124, 255, 0, 0.76);

  box-shadow:
    inset 0 1px 0
      rgba(255, 255, 255, 0.10),

    0 0 12px
      rgba(124, 255, 0, 0.08);
}


.koala-video-editor-confirm:hover,
.koala-video-editor-confirm:focus-visible {
  filter:
    brightness(1.12);

  outline: none;

  box-shadow:
    inset 0 1px 0
      rgba(255, 255, 255, 0.12),

    0 0 18px
      rgba(124, 255, 0, 0.14);
}


.koala-video-editor-cancel:active,
.koala-video-editor-confirm:active {
  transform:
    scale(0.975);
}

/* =========================================================
   VIDEO PLAY INDICATORS
   Transparent glass circle + play triangle
   ========================================================= */

.koala-media-video-poster {
  position: absolute;
  inset: 0;

  width: 100%;
  height: 100%;

  display: flex;
  align-items: center;
  justify-content: center;

  overflow: hidden;
}

.koala-media-video-poster
.koala-media-preview-image {
  display: block;

  width: 100%;
  height: 100%;

  object-fit: contain;
  object-position: center;

  margin: 0;
  padding: 0;
}


/*
 * Main poster play button
 */

.koala-media-video-play {
  position: absolute;
  left: 50%;
  top: 50%;

  transform:
    translate(-50%, -50%);

  width:
    clamp(64px, 10vw, 96px);

  aspect-ratio:
    1 / 1;

  display:
    flex;

  align-items:
    center;

  justify-content:
    center;

  padding:
    0;

  border:
    2px solid
    rgba(255, 255, 255, 0.82);

  border-radius:
    50%;

  background:
    rgba(0, 0, 0, 0.18);

  color:
    rgba(255, 255, 255, 0.96);

  font-size:
    clamp(28px, 4vw, 42px);

  line-height:
    1;

  cursor:
    pointer;

  z-index:
    5;

  backdrop-filter:
    blur(5px);

  -webkit-backdrop-filter:
    blur(5px);

  box-shadow:
    0 4px 18px
    rgba(0, 0, 0, 0.22);

  transition:
    transform 140ms ease,
    background 140ms ease,
    border-color 140ms ease;
}


/*
 * Optical correction:
 * the ▶ glyph naturally appears slightly left-heavy.
 */

.koala-media-video-play {
  text-indent:
    0.12em;
}


.koala-media-video-play:hover {
  background:
    rgba(0, 0, 0, 0.28);

  border-color:
    rgba(255, 255, 255, 1);

  transform:
    translate(-50%, -50%)
    scale(1.05);
}


.koala-media-video-play:active {
  transform:
    translate(-50%, -50%)
    scale(0.94);
}


/*
 * Filmstrip / thumbnail indicator
 */

.koala-media-thumbnail-video {
  position:
    relative;
}


.koala-media-video-play-badge {
  position:
    absolute;

  left:
    50%;

  top:
    50%;

  transform:
    translate(-50%, -50%);

  width:
    34px;

  height:
    34px;

  display:
    flex;

  align-items:
    center;

  justify-content:
    center;

  border:
    1.5px solid
    rgba(255, 255, 255, 0.9);

  border-radius:
    50%;

  background:
    rgba(0, 0, 0, 0.18);

  color:
    rgba(255, 255, 255, 0.96);

  font-size:
    15px;

  line-height:
    1;

  text-indent:
    0.1em;

  pointer-events:
    none;

  z-index:
    3;

  backdrop-filter:
    blur(3px);

  -webkit-backdrop-filter:
    blur(3px);

  box-shadow:
    0 2px 8px
    rgba(0, 0, 0, 0.22);
}


/* =========================================================
   MOBILE VIDEO EDITOR
   ========================================================= */

@media (max-width: 700px) {

    .koala-video-editor-poster-canvas {
      max-height:
        31dvh;

      border-radius:
        13px;
    }
    
  .koala-video-editor-layer {
    align-items: stretch;

    padding:
      max(
        8px,
        env(safe-area-inset-top)
      )
      max(
        8px,
        env(safe-area-inset-right)
      )
      max(
        8px,
        env(safe-area-inset-bottom)
      )
      max(
        8px,
        env(safe-area-inset-left)
      );
  }

  .koala-video-dimension-input input {
    font-size: 16px;

    line-height: 1;

    -webkit-text-size-adjust: 100%;
  }

  .koala-video-editor {
    width: 100%;

    /*
     * Keep the editor geometry stable when iOS opens
     * the numeric keyboard.
     *
     * The editor scrolls internally instead of being
     * recomputed against the reduced visual viewport.
     */
    height:
      calc(
        100svh -
        max(
          16px,
          env(safe-area-inset-top)
        ) -
        max(
          16px,
          env(safe-area-inset-bottom)
        )
      );

    max-height:
      none;

      overflow-x:
        hidden;

      overflow-y:
        auto;

      overscroll-behavior:
        contain;

      -webkit-overflow-scrolling:
        touch;

    border-radius:
      20px;
  }

  
  
  .koala-video-editor-header {
    padding:
      15px 15px 13px;
  }


  .koala-video-editor-preview {
    position: relative;
    padding:
      12px 14px 0;
  }


  .koala-video-editor-video {
    max-height:
      31dvh;

    border-radius: 13px;
  }


  .koala-video-editor-controls {
    padding:
      14px 14px 8px;
  }


  .koala-video-preparation-controls {
    padding:
      0 14px 14px;
  }


  .koala-video-timeline {
    height: 76px;
  }


  .koala-video-resolution
  .koala-video-segment {
    padding-left: 4px;
    padding-right: 4px;
  }

  .koala-video-resolution
  .koala-video-segment strong {
    font-size: 0.74rem;
  }

  .koala-video-resolution
  .koala-video-segment span {
    font-size: 0.56rem;
  }
  
  /*
   * Deliberately retain large trim-handle hit areas.
   */

  .koala-video-trim-handle {
    width: 34px;
  }


  .koala-video-settings-panel {
    grid-template-columns:
      1fr;

    gap: 12px;

    margin-top: 15px;
  }


  .koala-video-audio-control {
    grid-column:
      auto;
  }


  .koala-video-output-summary {
    grid-template-columns:
      1fr auto;

    gap:
      3px 10px;
  }


  .koala-video-output-summary
  > div:first-child {
    grid-column:
      1;
  }


  .koala-video-output-size {
    grid-column:
      2;

    grid-row:
      1;
  }


  .koala-video-output-target {
    grid-column:
      1 / -1;

    justify-self:
      start;
  }


  .koala-video-editor-footer {
    display: grid;

    grid-template-columns:
      repeat(
        2,
        minmax(0, 1fr)
      );

    padding:
      0 14px
      max(
        14px,
        env(safe-area-inset-bottom)
      );
  }


  .koala-video-editor-cancel,
  .koala-video-editor-confirm {
    width: 100%;

    min-width: 0;

    padding:
      0 12px;
  }

  .koala-media-video-play {
    width:
      68px;

    font-size:
      30px;
  }


  .koala-media-video-play-badge {
    width:
      30px;

    height:
      30px;

    font-size:
      13px;
  }
}
