/**
 *
 * (c) Copyright Ascensio System SIA 2021
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 *
 */

/* Global anti-overflow rule (safety) */
* {
    box-sizing: border-box;
}

img, video, iframe {
    max-width: 100%;
}

/* ============================================
   Slick styles
   ============================================ */

/* Slider */

.slick-slider {
    box-sizing: border-box;
    -webkit-touch-callout: none;
    -webkit-user-select: none;
    -khtml-user-select: none;
    -moz-user-select: none;
    -ms-user-select: none;
    user-select: none;
    -ms-touch-action: pan-y;
    touch-action: pan-y;
    -webkit-tap-highlight-color: transparent;
}
.slick-list {
    position: relative;
    overflow: hidden;
    display: block;
    margin: 0;
    padding: 0;
}

.slick-list:focus {
    outline: none;
}

.slick-list.dragging {
    cursor: pointer;
    cursor: hand;
}

.slick-slider .slick-track,
.slick-slider .slick-list {
    -webkit-transform: translate3d(0, 0, 0);
    -moz-transform: translate3d(0, 0, 0);
    -ms-transform: translate3d(0, 0, 0);
    -o-transform: translate3d(0, 0, 0);
    transform: translate3d(0, 0, 0);
}

.slick-track {
    position: relative;
    left: 0;
    top: 0;
    display: block;
    margin-left: auto;
    margin-right: auto;
}

.slick-track:before,
.slick-track:after {
    content: "";
    display: table;
}

.slick-track:after {
    clear: both;
}

.slick-loading .slick-track {
    visibility: hidden;
}

.slick-slide {
    float: left;
    height: 100%;
    min-height: 1px;
    display: none;
}

[dir="rtl"] .slick-slide {
    float: right;
}

.slick-slide img {
    display: block;
}

.slick-slide.slick-loading img {
    display: none;
}

.slick-slide.dragging img {
    pointer-events: none;
}

.slick-initialized .slick-slide {
    display: block;
}

.slick-loading .slick-slide {
    visibility: hidden;
}

.slick-vertical .slick-slide {
    display: block;
    height: auto;
    border: 1px solid transparent;
}

.slick-arrow.slick-hidden {
    display: none;
}

/* ============================================
   Slick Override
   ============================================ */

.media-thumbs .slick-track .slick-slide {
  opacity: .5;
}

.media-thumbs .slick-track .slick-slide.slick-current {
  opacity: 1;
}

/* Onboarding carousel styles */
.onboarding-dots {
  display: flex !important;
  justify-content: center;
  gap: 12px;
  padding: 20px 0;
  list-style: none;
  margin: 0;
}

.onboarding-dots li {
  margin: 0;
}

.onboarding-dots li button {
  padding: 0;
  width: 10px;
  height: 10px;
  border: none;
  background: transparent;
  text-indent: -9999px;
  overflow: hidden;
}

.onboarding-dots li button::before {
  display: none;
}

.onboarding-dots li .onboarding-dot {
  display: block;
  width: 10px;
  height: 10px;
  border: 1px solid rgba(2, 132, 199, 0.3); /* sky-600 with opacity */
  border-radius: 9999px;
  transition: all 0.3s;
  background: transparent;
  cursor: pointer;
}

.onboarding-dots li.slick-active .onboarding-dot {
  background: rgb(2, 132, 199); /* sky-600 */
  border-color: rgb(2, 132, 199);
}

/* Dark mode support for onboarding dots */
.dark .onboarding-dots li .onboarding-dot {
  border-color: rgba(255, 255, 255, 0.3);
}

.dark .onboarding-dots li.slick-active .onboarding-dot {
  background: white;
  border-color: white;
}

/* ============================================
   Flip styles
   ============================================ */

.wrap {
  perspective: 1000px;
  position: relative;
  min-height: 300px;
}

.card {
  height: auto;
  transform-style: preserve-3d;
  transition: transform 600ms cubic-bezier(.2, .8, .2, 1);
}

.card.is-flipped {
  transform: rotateY(180deg);
}

.side {
  inset: 0;
  backface-visibility: hidden;
  -webkit-backface-visibility: hidden; /* Safari */
}

.side.front {
  position: relative;
}

.side.back {
  transform: rotateY(180deg);
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  min-height: 100%;
}

/* When card is not flipped, show front normally and hide back */
.card:not(.is-flipped) .side.back {
  visibility: hidden;
  pointer-events: none;
}

/* When card is flipped, hide front and show back */
.card.is-flipped .side.front {
  visibility: hidden;
  pointer-events: none;
}

.card.is-flipped .side.back {
  visibility: visible;
  pointer-events: auto;
}

/* Respect reduced motion */
@media (prefers-reduced-motion: reduce) {
  .card {
    transition: none;
  }
  .side {
    transform: none !important;
  }
  .card:not(.is-flipped) .back {
    display: none;
  }
  .card.is-flipped .front {
    display: none;
  }
}

/* ============================================
   User Card Front
   ============================================ */

.bg-card-light .drawer-wrapper {
  display: none;
}

/* ============================================
   Dropdown
   ============================================ */

[data-dropdown-target="menu"] {
    position: fixed;   /* 🔑 avoids clipping in WebView */
}

.dropdown--open [data-dropdown-target="menu"] {
    display: block;
}

/* ============================================
   Custom styles
   ============================================ */

.button_to{
  width: -webkit-fill-available;
  width: -moz-available;
  width: stretch;
}

turbo-cable-stream-source {
  display: none !important;
}

/* Force width for iOS / WebView */
.w-fill-available {
  width: -webkit-fill-available;
  width: -moz-available;
  width: stretch;
}

/* Hide scrollbar but keep scroll */
.scrollbar-hide {
  -ms-overflow-style: none;      /* IE / Edge */
  scrollbar-width: none;         /* Firefox */
}
.scrollbar-hide::-webkit-scrollbar {
  display: none;                 /* Chrome / Safari */
}

/* ============================================
   Feeds index page
 ── Masonry feed layout ─────────────────────────────────────────────────────
   Uses CSS columns for a Pinterest-style masonry.  Each direct child of
   #user_feeds (turbo-frame during lazy-load, or the bare post/event div
   after turbo_stream.replace) must not break across columns.
   The parent infinite-scroll wrapper has overflow-x-auto for other views;
   override it here so the feed only scrolls vertically.
  ============================================ */
#user_feeds {
    overflow-x: hidden;
}

#user_feeds > * {
    break-inside: avoid;
    margin-bottom: 1rem;
}
