/* === Custom Navbar Open Library === */
nav#layout-navbar {
  background-color: #DC2626 !important;
}

/* Warna teks brand (Vuexy / nanti jadi Open Library) */
nav#layout-navbar .app-brand-text,
nav#layout-navbar .app-brand-text span {
  color: #fff !important;
}

/* Semua link & icon di kanan (search, language, theme, shortcuts, notifikasi, user) */
nav#layout-navbar .navbar-nav .nav-link,
nav#layout-navbar .navbar-nav .btn-icon,
nav#layout-navbar .navbar-nav i{
  color: #fff !important;
  border-color: #DC2626 !important;
}

nav#layout-navbar .navbar-nav .btn{
  background-color: #DC2626 !important;
  color: #fff !important;
  border-color: #DC2626 !important;
}


/* Hilangkan efek hover yang balik ke warna abu/primary */
nav#layout-navbar .navbar-nav .nav-link:hover,
nav#layout-navbar .navbar-nav .btn:hover,
nav#layout-navbar .navbar-nav .btn-icon:hover {
  background-color: #DC2626 !important;
  color: #fff !important;
}

/* Dropdown header (misal "Notification", "Shortcuts") */
nav#layout-navbar .dropdown-menu-header h6,
nav#layout-navbar .dropdown-menu-header span {
  color: #DC2626; /* kalau mau merah juga, bisa #fff kalau background dropdown ikut diubah */
}

/* Khusus tombol search Algolia */
nav#layout-navbar .aa-DetachedSearchButtonIcon,
nav#layout-navbar .aa-DetachedSearchButtonIcon svg,
nav#layout-navbar .aa-SubmitIcon {
  color: #fff !important;
  stroke: #fff !important;
  fill: #fff !important;
}
/* Semua font-icon/tabler icon di navbar */
nav#layout-navbar .navbar-nav .icon-base.tabler-layout-grid-add,
nav#layout-navbar .navbar-nav .tabler-sun.icon-base,
nav#layout-navbar .navbar-nav .icon-base.tabler-language {
  color: #fff !important;
}

.menu-vertical .menu-item .menu-link > div:not(.badge) {
    overflow: hidden;
    line-height: 1.467;
    text-overflow: ellipsis;
    white-space: normal !important;
}


/* Mengubah warna teks menjadi merah */
.validation-invalid-label {
    color: #DC2626; /* Merah cerah */
    display: block;
    margin-top: 5px;
    font-size: 85%;
    font-weight: 500;
}


/* Membuat border input ikut berwarna merah */
input.error, select.error, textarea.error {
    border-color: #DC2626 !important;
    }

    input.error::before,
    select.error::before,
    textarea.error::before {
      content: '';
      display: inline-block;
      margin-right: 5px;
    }

    input.error,
    select.error,
    textarea.error {
      background-image: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="%23DC2626" stroke-width="2"><circle cx="12" cy="12" r="10"></circle><line x1="12" y1="8" x2="12" y2="12"></line><line x1="12" y1="16" x2="12.01" y2="16"></line></svg>');
      background-repeat: no-repeat;
      background-position: right 10px center;
      background-size: 20px;
      padding-right: 35px;
}

.card-header {
  --bs-card-cap-padding-y: 0.7rem !Important;
}

.select2-container--open {
  z-index: 9999 !important;
}
.select2-dropdown {
  z-index: 9999 !important;
}



/*Loading*/
.loading-container {
  width:375px;
  height: 300px;
  background-color: #fff;
  border-radius: 10px;
  box-shadow: 0 0.31rem 1.25rem 0 rgba(75, 70, 92, 0.4);
  z-index: 1099;
  margin-right: auto;
  margin-left: auto;
  margin-top: 8%;
  padding-top: 100px;
}
.loading-text {
  font-size: 17px;
  font-weight: bold;
  color: #DE2E31;
  margin-right: auto;
  margin-left: auto;
  margin-top: 30px;
  text-align: center;
}
.loading-book {
  --color: #DE2E31;
  --duration: 6.8s;
  width: 32px;
  height: 12px;
  position: relative;
  margin-right: auto;
  margin-left: auto;
  margin-top: 50px;
  zoom: 1.5;
  background-color: #fff;
}

.loading-book .inner {
  width: 32px;
  height: 12px;
  position: relative;
  transform-origin: 2px 2px;
  transform: rotateZ(-90deg);
  -webkit-animation: loading-book var(--duration) ease infinite;
  animation: loading-book var(--duration) ease infinite;
}

.loading-book .inner .left,
.loading-book .inner .right {
  width: 60px;
  height: 4px;
  top: 0;
  border-radius: 2px;
  background: var(--color);
  position: absolute;
}

.loading-book .inner .left:before,
.loading-book .inner .right:before {
  content: "";
  width: 48px;
  height: 4px;
  border-radius: 2px;
  background: inherit;
  position: absolute;
  top: -10px;
  left: 6px;
}

.loading-book .inner .left {
  right: 28px;
  transform-origin: 58px 2px;
  transform: rotateZ(90deg);
  -webkit-animation: left var(--duration) ease infinite;
  animation: left var(--duration) ease infinite;
}

.loading-book .inner .right {
  left: 28px;
  transform-origin: 2px 2px;
  transform: rotateZ(-90deg);
  -webkit-animation: right var(--duration) ease infinite;
  animation: right var(--duration) ease infinite;
}

.loading-book .inner .middle {
  width: 32px;
  height: 12px;
  border: 4px solid var(--color);
  border-top: 0;
  border-radius: 0 0 9px 9px;
  transform: translateY(2px);
}

.loading-book ul {
  margin: 0;
  padding: 0;
  list-style: none;
  position: absolute;
  left: 50%;
  top: 0;
}

.loading-book ul li {
  height: 4px;
  border-radius: 2px;
  transform-origin: 100% 2px;
  width: 48px;
  right: 0;
  top: -10px;
  position: absolute;
  background: var(--color);
  transform: rotateZ(0deg) translateX(-18px);
  -webkit-animation-duration: var(--duration);
  animation-duration: var(--duration);
  -webkit-animation-timing-function: ease;
  animation-timing-function: ease;
  -webkit-animation-iteration-count: infinite;
  animation-iteration-count: infinite;
}

.loading-book ul li:nth-child(0) {
  -webkit-animation-name: page-0;
  animation-name: page-0;
}

.loading-book ul li:nth-child(1) {
  -webkit-animation-name: page-1;
  animation-name: page-1;
}

.loading-book ul li:nth-child(2) {
  -webkit-animation-name: page-2;
  animation-name: page-2;
}

.loading-book ul li:nth-child(3) {
  -webkit-animation-name: page-3;
  animation-name: page-3;
}

.loading-book ul li:nth-child(4) {
  -webkit-animation-name: page-4;
  animation-name: page-4;
}

.loading-book ul li:nth-child(5) {
  -webkit-animation-name: page-5;
  animation-name: page-5;
}

.loading-book ul li:nth-child(6) {
  -webkit-animation-name: page-6;
  animation-name: page-6;
}

.loading-book ul li:nth-child(7) {
  -webkit-animation-name: page-7;
  animation-name: page-7;
}

.loading-book ul li:nth-child(8) {
  -webkit-animation-name: page-8;
  animation-name: page-8;
}

.loading-book ul li:nth-child(9) {
  -webkit-animation-name: page-9;
  animation-name: page-9;
}

.loading-book ul li:nth-child(10) {
  -webkit-animation-name: page-10;
  animation-name: page-10;
}

.loading-book ul li:nth-child(11) {
  -webkit-animation-name: page-11;
  animation-name: page-11;
}

.loading-book ul li:nth-child(12) {
  -webkit-animation-name: page-12;
  animation-name: page-12;
}

.loading-book ul li:nth-child(13) {
  -webkit-animation-name: page-13;
  animation-name: page-13;
}

.loading-book ul li:nth-child(14) {
  -webkit-animation-name: page-14;
  animation-name: page-14;
}

.loading-book ul li:nth-child(15) {
  -webkit-animation-name: page-15;
  animation-name: page-15;
}

.loading-book ul li:nth-child(16) {
  -webkit-animation-name: page-16;
  animation-name: page-16;
}

.loading-book ul li:nth-child(17) {
  -webkit-animation-name: page-17;
  animation-name: page-17;
}

.loading-book ul li:nth-child(18) {
  -webkit-animation-name: page-18;
  animation-name: page-18;
}

@-webkit-keyframes page-0 {
  4% {
      transform: rotateZ(0deg) translateX(-18px);
  }

  13%,
  54% {
      transform: rotateZ(180deg) translateX(-18px);
  }

  63% {
      transform: rotateZ(0deg) translateX(-18px);
  }
}

@keyframes page-0 {
  4% {
      transform: rotateZ(0deg) translateX(-18px);
  }

  13%,
  54% {
      transform: rotateZ(180deg) translateX(-18px);
  }

  63% {
      transform: rotateZ(0deg) translateX(-18px);
  }
}

@-webkit-keyframes page-1 {
  5.86% {
      transform: rotateZ(0deg) translateX(-18px);
  }

  14.74%,
  55.86% {
      transform: rotateZ(180deg) translateX(-18px);
  }

  64.74% {
      transform: rotateZ(0deg) translateX(-18px);
  }
}

@keyframes page-1 {
  5.86% {
      transform: rotateZ(0deg) translateX(-18px);
  }

  14.74%,
  55.86% {
      transform: rotateZ(180deg) translateX(-18px);
  }

  64.74% {
      transform: rotateZ(0deg) translateX(-18px);
  }
}

@-webkit-keyframes page-2 {
  7.72% {
      transform: rotateZ(0deg) translateX(-18px);
  }

  16.48%,
  57.72% {
      transform: rotateZ(180deg) translateX(-18px);
  }

  66.48% {
      transform: rotateZ(0deg) translateX(-18px);
  }
}

@keyframes page-2 {
  7.72% {
      transform: rotateZ(0deg) translateX(-18px);
  }

  16.48%,
  57.72% {
      transform: rotateZ(180deg) translateX(-18px);
  }

  66.48% {
      transform: rotateZ(0deg) translateX(-18px);
  }
}

@-webkit-keyframes page-3 {
  9.58% {
      transform: rotateZ(0deg) translateX(-18px);
  }

  18.22%,
  59.58% {
      transform: rotateZ(180deg) translateX(-18px);
  }

  68.22% {
      transform: rotateZ(0deg) translateX(-18px);
  }
}

@keyframes page-3 {
  9.58% {
      transform: rotateZ(0deg) translateX(-18px);
  }

  18.22%,
  59.58% {
      transform: rotateZ(180deg) translateX(-18px);
  }

  68.22% {
      transform: rotateZ(0deg) translateX(-18px);
  }
}

@-webkit-keyframes page-4 {
  11.44% {
      transform: rotateZ(0deg) translateX(-18px);
  }

  19.96%,
  61.44% {
      transform: rotateZ(180deg) translateX(-18px);
  }

  69.96% {
      transform: rotateZ(0deg) translateX(-18px);
  }
}

@keyframes page-4 {
  11.44% {
      transform: rotateZ(0deg) translateX(-18px);
  }

  19.96%,
  61.44% {
      transform: rotateZ(180deg) translateX(-18px);
  }

  69.96% {
      transform: rotateZ(0deg) translateX(-18px);
  }
}

@-webkit-keyframes page-5 {
  13.3% {
      transform: rotateZ(0deg) translateX(-18px);
  }

  21.7%,
  63.3% {
      transform: rotateZ(180deg) translateX(-18px);
  }

  71.7% {
      transform: rotateZ(0deg) translateX(-18px);
  }
}

@keyframes page-5 {
  13.3% {
      transform: rotateZ(0deg) translateX(-18px);
  }

  21.7%,
  63.3% {
      transform: rotateZ(180deg) translateX(-18px);
  }

  71.7% {
      transform: rotateZ(0deg) translateX(-18px);
  }
}

@-webkit-keyframes page-6 {
  15.16% {
      transform: rotateZ(0deg) translateX(-18px);
  }

  23.44%,
  65.16% {
      transform: rotateZ(180deg) translateX(-18px);
  }

  73.44% {
      transform: rotateZ(0deg) translateX(-18px);
  }
}

@keyframes page-6 {
  15.16% {
      transform: rotateZ(0deg) translateX(-18px);
  }

  23.44%,
  65.16% {
      transform: rotateZ(180deg) translateX(-18px);
  }

  73.44% {
      transform: rotateZ(0deg) translateX(-18px);
  }
}

@-webkit-keyframes page-7 {
  17.02% {
      transform: rotateZ(0deg) translateX(-18px);
  }

  25.18%,
  67.02% {
      transform: rotateZ(180deg) translateX(-18px);
  }

  75.18% {
      transform: rotateZ(0deg) translateX(-18px);
  }
}

@keyframes page-7 {
  17.02% {
      transform: rotateZ(0deg) translateX(-18px);
  }

  25.18%,
  67.02% {
      transform: rotateZ(180deg) translateX(-18px);
  }

  75.18% {
      transform: rotateZ(0deg) translateX(-18px);
  }
}

@-webkit-keyframes page-8 {
  18.88% {
      transform: rotateZ(0deg) translateX(-18px);
  }

  26.92%,
  68.88% {
      transform: rotateZ(180deg) translateX(-18px);
  }

  76.92% {
      transform: rotateZ(0deg) translateX(-18px);
  }
}

@keyframes page-8 {
  18.88% {
      transform: rotateZ(0deg) translateX(-18px);
  }

  26.92%,
  68.88% {
      transform: rotateZ(180deg) translateX(-18px);
  }

  76.92% {
      transform: rotateZ(0deg) translateX(-18px);
  }
}

@-webkit-keyframes page-9 {
  20.74% {
      transform: rotateZ(0deg) translateX(-18px);
  }

  28.66%,
  70.74% {
      transform: rotateZ(180deg) translateX(-18px);
  }

  78.66% {
      transform: rotateZ(0deg) translateX(-18px);
  }
}

@keyframes page-9 {
  20.74% {
      transform: rotateZ(0deg) translateX(-18px);
  }

  28.66%,
  70.74% {
      transform: rotateZ(180deg) translateX(-18px);
  }

  78.66% {
      transform: rotateZ(0deg) translateX(-18px);
  }
}

@-webkit-keyframes page-10 {
  22.6% {
      transform: rotateZ(0deg) translateX(-18px);
  }

  30.4%,
  72.6% {
      transform: rotateZ(180deg) translateX(-18px);
  }

  80.4% {
      transform: rotateZ(0deg) translateX(-18px);
  }
}

@keyframes page-10 {
  22.6% {
      transform: rotateZ(0deg) translateX(-18px);
  }

  30.4%,
  72.6% {
      transform: rotateZ(180deg) translateX(-18px);
  }

  80.4% {
      transform: rotateZ(0deg) translateX(-18px);
  }
}

@-webkit-keyframes page-11 {
  24.46% {
      transform: rotateZ(0deg) translateX(-18px);
  }

  32.14%,
  74.46% {
      transform: rotateZ(180deg) translateX(-18px);
  }

  82.14% {
      transform: rotateZ(0deg) translateX(-18px);
  }
}

@keyframes page-11 {
  24.46% {
      transform: rotateZ(0deg) translateX(-18px);
  }

  32.14%,
  74.46% {
      transform: rotateZ(180deg) translateX(-18px);
  }

  82.14% {
      transform: rotateZ(0deg) translateX(-18px);
  }
}

@-webkit-keyframes page-12 {
  26.32% {
      transform: rotateZ(0deg) translateX(-18px);
  }

  33.88%,
  76.32% {
      transform: rotateZ(180deg) translateX(-18px);
  }

  83.88% {
      transform: rotateZ(0deg) translateX(-18px);
  }
}

@keyframes page-12 {
  26.32% {
      transform: rotateZ(0deg) translateX(-18px);
  }

  33.88%,
  76.32% {
      transform: rotateZ(180deg) translateX(-18px);
  }

  83.88% {
      transform: rotateZ(0deg) translateX(-18px);
  }
}

@-webkit-keyframes page-13 {
  28.18% {
      transform: rotateZ(0deg) translateX(-18px);
  }

  35.62%,
  78.18% {
      transform: rotateZ(180deg) translateX(-18px);
  }

  85.62% {
      transform: rotateZ(0deg) translateX(-18px);
  }
}

@keyframes page-13 {
  28.18% {
      transform: rotateZ(0deg) translateX(-18px);
  }

  35.62%,
  78.18% {
      transform: rotateZ(180deg) translateX(-18px);
  }

  85.62% {
      transform: rotateZ(0deg) translateX(-18px);
  }
}

@-webkit-keyframes page-14 {
  30.04% {
      transform: rotateZ(0deg) translateX(-18px);
  }

  37.36%,
  80.04% {
      transform: rotateZ(180deg) translateX(-18px);
  }

  87.36% {
      transform: rotateZ(0deg) translateX(-18px);
  }
}

@keyframes page-14 {
  30.04% {
      transform: rotateZ(0deg) translateX(-18px);
  }

  37.36%,
  80.04% {
      transform: rotateZ(180deg) translateX(-18px);
  }

  87.36% {
      transform: rotateZ(0deg) translateX(-18px);
  }
}

@-webkit-keyframes page-15 {
  31.9% {
      transform: rotateZ(0deg) translateX(-18px);
  }

  39.1%,
  81.9% {
      transform: rotateZ(180deg) translateX(-18px);
  }

  89.1% {
      transform: rotateZ(0deg) translateX(-18px);
  }
}

@keyframes page-15 {
  31.9% {
      transform: rotateZ(0deg) translateX(-18px);
  }

  39.1%,
  81.9% {
      transform: rotateZ(180deg) translateX(-18px);
  }

  89.1% {
      transform: rotateZ(0deg) translateX(-18px);
  }
}

@-webkit-keyframes page-16 {
  33.76% {
      transform: rotateZ(0deg) translateX(-18px);
  }

  40.84%,
  83.76% {
      transform: rotateZ(180deg) translateX(-18px);
  }

  90.84% {
      transform: rotateZ(0deg) translateX(-18px);
  }
}

@keyframes page-16 {
  33.76% {
      transform: rotateZ(0deg) translateX(-18px);
  }

  40.84%,
  83.76% {
      transform: rotateZ(180deg) translateX(-18px);
  }

  90.84% {
      transform: rotateZ(0deg) translateX(-18px);
  }
}

@-webkit-keyframes page-17 {
  35.62% {
      transform: rotateZ(0deg) translateX(-18px);
  }

  42.58%,
  85.62% {
      transform: rotateZ(180deg) translateX(-18px);
  }

  92.58% {
      transform: rotateZ(0deg) translateX(-18px);
  }
}

@keyframes page-17 {
  35.62% {
      transform: rotateZ(0deg) translateX(-18px);
  }

  42.58%,
  85.62% {
      transform: rotateZ(180deg) translateX(-18px);
  }

  92.58% {
      transform: rotateZ(0deg) translateX(-18px);
  }
}

@-webkit-keyframes page-18 {
  37.48% {
      transform: rotateZ(0deg) translateX(-18px);
  }

  44.32%,
  87.48% {
      transform: rotateZ(180deg) translateX(-18px);
  }

  94.32% {
      transform: rotateZ(0deg) translateX(-18px);
  }
}

@keyframes page-18 {
  37.48% {
      transform: rotateZ(0deg) translateX(-18px);
  }

  44.32%,
  87.48% {
      transform: rotateZ(180deg) translateX(-18px);
  }

  94.32% {
      transform: rotateZ(0deg) translateX(-18px);
  }
}

@-webkit-keyframes left {
  4% {
      transform: rotateZ(90deg);
  }

  10%,
  40% {
      transform: rotateZ(0deg);
  }

  46%,
  54% {
      transform: rotateZ(90deg);
  }

  60%,
  90% {
      transform: rotateZ(0deg);
  }

  96% {
      transform: rotateZ(90deg);
  }
}

@keyframes left {
  4% {
      transform: rotateZ(90deg);
  }

  10%,
  40% {
      transform: rotateZ(0deg);
  }

  46%,
  54% {
      transform: rotateZ(90deg);
  }

  60%,
  90% {
      transform: rotateZ(0deg);
  }

  96% {
      transform: rotateZ(90deg);
  }
}

@-webkit-keyframes right {
  4% {
      transform: rotateZ(-90deg);
  }

  10%,
  40% {
      transform: rotateZ(0deg);
  }

  46%,
  54% {
      transform: rotateZ(-90deg);
  }

  60%,
  90% {
      transform: rotateZ(0deg);
  }

  96% {
      transform: rotateZ(-90deg);
  }
}

@keyframes right {
  4% {
      transform: rotateZ(-90deg);
  }

  10%,
  40% {
      transform: rotateZ(0deg);
  }

  46%,
  54% {
      transform: rotateZ(-90deg);
  }

  60%,
  90% {
      transform: rotateZ(0deg);
  }

  96% {
      transform: rotateZ(-90deg);
  }
}

@-webkit-keyframes loading-book {
  4% {
      transform: rotateZ(-90deg);
  }

  10%,
  40% {
      transform: rotateZ(0deg);
      transform-origin: 2px 2px;
  }

  40.01%,
  59.99% {
      transform-origin: 30px 2px;
  }

  46%,
  54% {
      transform: rotateZ(90deg);
  }

  60%,
  90% {
      transform: rotateZ(0deg);
      transform-origin: 2px 2px;
  }

  96% {
      transform: rotateZ(-90deg);
  }
}

@keyframes loading-book {
  4% {
      transform: rotateZ(-90deg);
  }

  10%,
  40% {
      transform: rotateZ(0deg);
      transform-origin: 2px 2px;
  }

  40.01%,
  59.99% {
      transform-origin: 30px 2px;
  }

  46%,
  54% {
      transform: rotateZ(90deg);
  }

  60%,
  90% {
      transform: rotateZ(0deg);
      transform-origin: 2px 2px;
  }

  96% {
      transform: rotateZ(-90deg);
  }
}

html {
  box-sizing: border-box;
  -webkit-font-smoothing: antialiased;
}

* {
  box-sizing: inherit;
}

*:before,
*:after {
  box-sizing: inherit;
}
/*End Loading*/



/*footer custom*/
  .footer-wrapper {
    background-color: #ffffff;
    border-top: 1px solid #e9ecef; /* Garis batas tipis dengan bagian atas */
  }
  .footer-section-title {
    font-size: 1.1rem;
    font-weight: 700;
    color: #2b2c40;
    margin-bottom: 1.5rem;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    border-bottom: 2px solid #DC2626; /* Garis aksen merah ala referensi */
    display: inline-block;
    padding-bottom: 0.4rem;
  }
  .footer-card {
    background-color: #f8f9fa; /* Warna abu-abu super terang */
    border: none; /* Hilangkan garis pinggir agar lebih elegan */
    border-radius: 8px;
    padding: 1.5rem;
    height: 100%;
    box-shadow: 0 4px 12px rgba(0,0,0,0.02);
    transition: transform 0.2s;
  }
  .footer-card:hover {
    transform: translateY(-3px);
    box-shadow: 0 6px 15px rgba(0,0,0,0.05);
  }
  .footer-card-title {
    font-size: 1rem;
    font-weight: 700;
    color: #333;
    margin-bottom: 1rem;
  }
  .footer-info-item {
    display: flex;
    align-items: flex-start;
    margin-bottom: 0.8rem;
    font-size: 0.85rem;
    color: #555;
  }
  .footer-info-icon {
    color: #DC2626;
    margin-right: 0.6rem;
    margin-top: 0.15rem;
    font-size: 1.1rem;
  }
  .footer-link-item {
    color: #555;
    text-decoration: none;
    font-size: 0.9rem;
    display: block;
    margin-bottom: 0.6rem;
    transition: color 0.2s;
  }
  .footer-link-item:hover {
    color: #DC2626;
  }
  .op-hours {
    font-size: 0.8rem;
    border-top: 1.5px dashed #fca5a5;
    padding-top: 1rem;
    margin-top: 1rem;
  }
  .social-btn-full {
    background: linear-gradient(135deg, #833ab4, #fd1d1d, #fcb045);
    color: white;
    border: none;
    font-weight: 600;
    font-size: 0.85rem;
    transition: opacity 0.2s;
  }
  .social-btn-full:hover {
    opacity: 0.9;
    color: white;
  }


/*end footer custom*/
