/* ===== Base page / reset ===== */
html,
body {
  margin: 0;
  padding: 0;
}

.portal-body {
  background-color: #36393f;
  color: #fff;
  font-family: system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI",
    sans-serif;
  margin: 0;

  /* Layout Logic */
  display: none; /* Tetap sembunyi awal */
  flex-direction: column;
  min-height: 100vh; /* Memaksa tinggi layar penuh */
}

/* ==============================
   TOP NAVBAR (DESKTOP)
============================== */
.portal-nav {
  background: #202225;
  height: 60px;
  display: flex;
  align-items: center;
  padding: 0 30px;
  border-bottom: 2px solid #5865f2;
  justify-content: space-between;
  position: fixed;
  width: 100%;
  top: 0;
  z-index: 1000;
  box-sizing: border-box;
  box-shadow: 0 4px 10px rgba(0, 0, 0, 0.3);
}

.portal-nav-left,
.portal-nav-right {
  display: flex;
  align-items: center;
  gap: 20px;
}

/* Brand */
.portal-brand {
  font-weight: bold;
  color: #5865f2;
  letter-spacing: 1px;
  display: flex;
  align-items: center;
  gap: 10px;
}

.portal-brand-logo {
  width: 22px;
  height: 22px;
}

/* Desktop nav links on the right side */
.portal-nav-links {
  display: flex;
  align-items: center;
  gap: 5px;
}

.portal-nav-link {
  color: #b9bbbe;
  text-decoration: none;
  font-size: 0.9rem;
  font-weight: 500;
  padding: 8px 12px;
  border-radius: 4px;
  transition: 0.2s;
  display: flex;
  align-items: center;
  gap: 8px;
}

.portal-nav-link:hover {
  background: rgba(79, 84, 92, 0.4);
  color: #fff;
}

.portal-nav-link i {
  font-size: 1rem;
}

/* Divider + user info + actions */
.portal-divider {
  width: 1px;
  height: 24px;
  background: #4f545c;
}

.portal-user-info {
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  line-height: 1.2;
}

.portal-user-info #userNameDisplay,
.portal-user-info #userNameDisplayMobile {
  font-size: 0.85rem;
  font-weight: bold;
  color: #fff;
}

.portal-user-status {
  font-size: 0.65rem;
  color: #43b581;
  font-weight: bold;
  text-transform: uppercase;
}

.portal-nav-actions {
  display: flex;
  gap: 8px;
}

/* Buttons only in navbar */
.portal-icon-btn {
  background: #36393f;
  color: #faa61a;
  width: 35px;
  height: 35px;
  border-radius: 4px;
  border: 1px solid #4f545c;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: 0.2s;
}

.portal-icon-btn:hover {
  filter: brightness(1.1);
}

.portal-logout-btn {
  background: #ed4245;
  color: white;
  padding: 0 15px;
  height: 35px;
  font-size: 0.75rem;
  border-radius: 4px;
  font-weight: bold;
  border: none;
  cursor: pointer;
  display: flex;
  align-items: center;
  gap: 8px;
  transition: 0.2s;
}

.portal-logout-btn:hover {
  filter: brightness(1.1);
}

/* Hamburger (hidden on desktop) */
.portal-menu-toggle {
  display: none;
  background: transparent;
  border: none;
  color: #fff;
  font-size: 1.4rem;
  cursor: pointer;
}

/* ==============================
   MOBILE DROPDOWN MENU
   (ALL NAV INFO IN HAMBURGER)
============================== */
.portal-mobile-menu {
  display: none;
  position: fixed;
  top: 60px; /* just under the navbar */
  left: 0;
  right: 0;
  background: #202225;
  border-bottom: 2px solid #5865f2;
  padding: 10px 14px 12px 14px;
  box-sizing: border-box;
  z-index: 999;
  flex-direction: column;
  gap: 8px;
}

.portal-mobile-menu.open {
  display: flex;
}

.portal-mobile-section {
  display: flex;
  flex-direction: column;
  gap: 4px;
}

.portal-mobile-separator {
  border: none;
  border-top: 1px solid #4f545c;
  margin: 6px 0;
}

/* ==============================
   CONTENT AREA
============================== */

/* Old class name support (if still used) */
.content-container,
/* Area konten akan mengambil sisa ruang yang ada (push footer ke bawah) */
.portal-content {
  flex: 1 0 auto;
  padding-top: 100px;
  padding-bottom: 40px;
  width: 95%;
  max-width: 1200px;
  margin: 0 auto;
  box-sizing: border-box;
}

/* Loading placeholder style */
.loading-block,
.portal-loading-block {
  color: #b9bbbe;
  text-align: center;
  margin-top: 100px;
}

.loading-block i,
.portal-loading-block i {
  color: #5865f2;
}

.loading-block p,
.portal-loading-block p {
  margin-top: 20px;
  font-weight: 500;
  letter-spacing: 1px;
}

/* ==============================
   LISTING PAGE FORM
============================== */

/* Main card */
#myForm {
  background: #202225;
  border-radius: 12px;
  padding: 20px 18px;
  max-width: 640px;
  margin: 40px auto 40px auto;
  box-shadow: 0 10px 30px rgba(0, 0, 0, 0.5);
  box-sizing: border-box;
  color: #fff;
}

#myForm h3 {
  text-align: center;
  margin-bottom: 6px;
  color: #fff;
}

/* Labels & controls */
#myForm label {
  display: block;
  margin: 10px 0 4px;
  font-size: 0.9rem;
  color: #b9bbbe;
}

#myForm input[type="text"],
#myForm input[type="number"],
#myForm select {
  width: 100%;
  padding: 9px 10px;
  border-radius: 8px;
  border: 1px solid #2f3136;
  background: #18191c;
  color: #fff;
  font-size: 0.9rem;
  outline: none;
  box-sizing: border-box;
}

#myForm input[type="text"]:focus,
#myForm input[type="number"]:focus,
#myForm select:focus {
  border-color: #5865f2;
}

/* Autocomplete */
#myForm .autocomplete-wrapper {
  position: relative;
}

#autocomplete-list {
  position: absolute;
  left: 0;
  right: 0;
  top: 100%;
  margin-top: 3px;
  background: #2f3136;
  border-radius: 8px;
  max-height: 200px;
  overflow-y: auto;
  box-shadow: 0 4px 16px rgba(0, 0, 0, 0.7);
  z-index: 20;
}

.autocomplete-item {
  padding: 8px 10px;
  cursor: pointer;
  font-size: 0.85rem;
  border-bottom: 1px solid #26292e;
}

.autocomplete-item:last-child {
  border-bottom: none;
}

.autocomplete-item:hover {
  background: #3a3f45;
}

/* Checkbox / qty list area (non-bundling) */
#checkboxList {
  margin-top: 10px;
}

/* ==============================
   QTY CONTROL (+ / - BUTTONS)
============================== */
.qty-control {
  display: inline-flex;
  align-items: center;
  gap: 4px;
}

.qty-btn {
  width: 30px;
  height: 30px;
  border-radius: 6px;
  border: 1px solid #2f3136;
  background: #18191c;
  color: #fff;
  cursor: pointer;
  font-size: 0.85rem;
  line-height: 1;
}

.qty-btn:hover {
  background: #2b2d31;
}

/* Smaller number input */
.item-qty {
  width: 44px;
  text-align: center;
  background: #18191c;
  border: 1px solid #2f3136;
  border-radius: 6px;
  color: white;
  font-size: 0.8rem;
  padding: 3px 2px;
}

/* hide default arrows on number input */
.item-qty::-webkit-outer-spin-button,
.item-qty::-webkit-inner-spin-button {
  -webkit-appearance: none;
  margin: 0;
}

.item-qty {
  appearance: textfield;
  -moz-appearance: textfield;
}

/* Submit button */
#submitBtn {
  margin-top: 20px;
  width: 100%;
  padding: 10px 0;
  border-radius: 8px;
  border: none;
  background: #5865f2;
  color: white;
  font-weight: 600;
  cursor: pointer;
  font-size: 0.95rem;
  transition: background 0.2s, transform 0.05s;
}

#submitBtn:hover {
  background: #4752c4;
}

#submitBtn:active {
  transform: scale(0.98);
}

#submitBtn:disabled {
  opacity: 0.7;
  cursor: default;
}

/* ==============================
   RESPONSIVE (TABLET & MOBILE)
============================== */
@media (max-width: 768px) {
  .portal-nav {
    padding: 0 12px;
  }

  /* Hide ALL desktop nav info on mobile (links + user + buttons) */
  .portal-nav-right {
    display: none;
  }

  /* Show only hamburger on the right */
  .portal-menu-toggle {
    display: flex;
    align-items: center;
    justify-content: center;
  }

  .portal-content,
  .content-container {
    padding-top: 80px;
    width: 100%;
    margin: 0;
    padding-left: 10px;
    padding-right: 10px;
  }

  #myForm {
    margin: 110px auto 25px auto; /* push form down away from nav */
    padding: 16px 14px;
    max-width: 100%;
  }
}

@media (max-width: 480px) {
  .portal-logout-btn {
    padding: 0 10px;
    font-size: 0.7rem;
  }

  #myForm {
    margin-top: 120px;
  }
}

/* ==============================
    ESTHETIC CATEGORY GRID (HOME)
============================== */
.portal-welcome {
  margin-top: 20px;
  animation: fadeIn 0.5s ease;
}

.category-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
  gap: 20px;
  margin-bottom: 50px;
}

.cat-card {
  background: #2f3136;
  border-radius: 12px;
  padding: 24px;
  display: flex;
  align-items: center;
  cursor: pointer;
  transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
  border: 1px solid rgba(255, 255, 255, 0.05);
  position: relative;
  overflow: hidden;
}

.cat-card:hover {
  background: #36393f;
  transform: translateY(-5px);
  border-color: #5865f2;
  box-shadow: 0 12px 24px rgba(0, 0, 0, 0.3);
}

.cat-card::after {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background: linear-gradient(45deg, transparent, rgba(88, 101, 242, 0.05));
  pointer-events: none;
}

.cat-icon {
  font-size: 2.8rem;
  margin-right: 20px;
  width: 60px;
  display: flex;
  justify-content: center;
  align-items: center;
  transition: transform 0.3s ease;
}

.cat-card:hover .cat-icon {
  transform: scale(1.1) rotate(-5deg);
}

.cat-info h3 {
  margin: 0;
  font-size: 1.2rem;
  letter-spacing: 1px;
  color: #fff;
}

.cat-info p {
  margin: 4px 0 0 0;
  font-size: 0.85rem;
  color: #b9bbbe;
}

@keyframes fadeIn {
  from {
    opacity: 0;
    transform: translateY(10px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}

/* Penyesuaian Mobile untuk Grid */
@media (max-width: 480px) {
  .category-grid {
    grid-template-columns: 1fr;
    gap: 15px;
  }

  .cat-card {
    padding: 18px;
  }
}

/* ==============================
   CATEGORY SPECIFIC PAGE (Weapon, etc)
============================== */
.category-page {
  /* max-width: 600px; */
  margin: 20px auto;
  animation: fadeIn 0.4s ease;
}

.page-header {
  display: flex;
  align-items: center;
  gap: 15px;
  margin-bottom: 25px;
}

.back-btn {
  background: #4f545c;
  border: none;
  color: white;
  padding: 8px 12px;
  border-radius: 4px;
  cursor: pointer;
  font-size: 0.8rem;
  transition: 0.2s;
}

.back-btn:hover {
  background: #5d6269;
}

/* Modifikasi form agar lebih 'compact' di halaman kategori */
.category-order-card {
  background: #202225;
  border-radius: 12px;
  padding: 24px;
  box-shadow: 0 10px 30px rgba(0, 0, 0, 0.4);
}

.stock-status-box {
  background: #18191c;
  border: 1px solid #2f3136;
  border-radius: 8px;
  padding: 12px;
  margin-bottom: 20px;
  text-align: center;
  font-size: 0.9rem;
}

/* ==============================
   GENERAL CATEGORY PAGE STYLES
============================== */

/* Header utama yang tadinya page-header-weapon */
.category-header {
  display: flex;
  align-items: center;
  /* Gunakan variabel untuk warna tema, default ke oranye ammo */
  background: linear-gradient(
    90deg,
    var(--header-bg, rgba(250, 166, 26, 0.2)) 0%,
    transparent 100%
  );
  padding: 20px;
  border-radius: 15px;
  margin-bottom: 30px;
  border-left: 4px solid var(--header-color, #faa61a);
  position: relative;
}

/* Container utama yang tadinya weapon-main-container */
.category-main-content {
  width: 100%;
}

.back-btn-modern {
  background: #2f3136;
  border: 1px solid #4f545c;
  color: white;
  width: 40px;
  height: 40px;
  border-radius: 10px;
  cursor: pointer;
  margin-right: 15px;
  transition: 0.3s;
}

.back-btn-modern:hover {
  background: var(--header-color, #faa61a);
  border-color: var(--header-color, #faa61a);
}

.header-title h2 {
  margin: 0;
  font-size: 1.5rem;
  letter-spacing: 2px;
  color: #fff;
}

.header-subtitle {
  font-size: 0.8rem;
  color: #b9bbbe;
}

.header-icon-main {
  position: absolute;
  right: 20px;
  font-size: 2.5rem;
  color: rgba(255, 255, 255, 0.1);
}

/* Order Card Modern */
.order-card-modern {
  background: #2f3136;
  padding: 30px;
  border-radius: 20px;
  border: 1px solid rgba(255, 255, 255, 0.05);
  box-shadow: 0 20px 40px rgba(0, 0, 0, 0.3);
}

.input-group-modern {
  margin-bottom: 25px;
}

.input-group-modern label {
  display: block;
  color: #b9bbbe;
  margin-bottom: 10px;
  font-size: 0.85rem;
  font-weight: 600;
  text-transform: uppercase;
}

.input-group-modern input[type="text"] {
  background: #18191c !important;
  border: 1px solid #4f545c !important;
  padding: 15px !important;
  font-size: 1rem !important;
  border-radius: 12px !important;
}

/* Qty Style */
.qty-wrapper-modern {
  display: flex;
  align-items: center;
  background: #18191c;
  border-radius: 12px;
  padding: 5px;
  width: fit-content;
  border: 1px solid #4f545c;
}

.qty-ctrl {
  width: 45px;
  height: 45px;
  border: none;
  background: transparent;
  color: white;
  font-size: 1.2rem;
  cursor: pointer;
  transition: 0.2s;
}

.qty-ctrl:hover {
  color: #f04747;
}

.qty-wrapper-modern input {
  width: 60px !important;
  border: none !important;
  background: transparent !important;
  text-align: center !important;
  font-size: 1.2rem !important;
  font-weight: bold;
}

/* Badge & Button */
.stock-badge-modern {
  background: rgba(67, 181, 129, 0.1);
  color: #43b581;
  padding: 12px;
  border-radius: 10px;
  text-align: center;
  font-size: 0.9rem;
  margin-bottom: 25px;
  border: 1px dashed #43b581;
}

.btn-submit-weapon {
  width: 100%;
  padding: 18px;
  background: #f04747;
  border: none;
  border-radius: 12px;
  color: white;
  font-weight: bold;
  font-size: 1rem;
  cursor: pointer;
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 15px;
  transition: 0.3s;
  box-shadow: 0 5px 15px rgba(240, 71, 71, 0.3);
}

.btn-submit-weapon:hover {
  background: #d83c3e;
  transform: translateY(-2px);
  box-shadow: 0 8px 20px rgba(240, 71, 71, 0.4);
}

/* Weapon Catalog Styles */
.catalog-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(180px, 1fr));
  gap: 15px;
  padding-bottom: 50px;
}

.weapon-card {
  background: #2f3136;
  border-radius: 15px;
  padding: 20px;
  text-align: center;
  border: 1px solid rgba(255, 255, 255, 0.05);
  transition: 0.3s;
  position: relative;
  cursor: pointer;
}

.weapon-card.ready:hover {
  transform: translateY(-5px);
  border-color: #f04747;
  background: #36393f;
  box-shadow: 0 10px 20px rgba(0, 0, 0, 0.3);
}

.weapon-card.sold-out {
  opacity: 0.6;
  cursor: not-allowed;
  filter: grayscale(1);
}

.weapon-card-icon {
  font-size: 2rem;
  color: #f04747;
  margin-bottom: 15px;
}

.weapon-card h4 {
  margin: 0 0 10px 0;
  font-size: 0.95rem;
  color: #fff;
}

.badge-status {
  font-size: 0.7rem;
  font-weight: bold;
  padding: 5px 10px;
  border-radius: 20px;
  display: inline-block;
}

.badge-status.ready {
  background: rgba(67, 181, 129, 0.1);
  color: #43b581;
  border: 1px solid #43b581;
}

.badge-status.empty {
  background: rgba(240, 71, 71, 0.1);
  color: #f04747;
  border: 1px solid #f04747;
}

.click-hint {
  font-size: 0.65rem;
  color: #b9bbbe;
  margin-top: 10px;
  font-style: italic;
}

/* Form Helper Styles */
.selected-item-info {
  text-align: center;
  margin-bottom: 25px;
}

.selected-item-info .label {
  font-size: 0.8rem;
  color: #b9bbbe;
}

.selected-item-info .item-name-display {
  font-size: 1.8rem;
  color: #f04747;
  margin-top: 5px;
}

.btn-cancel-weapon {
  width: 100%;
  background: transparent;
  border: none;
  color: #b9bbbe;
  margin-top: 15px;
  cursor: pointer;
  text-decoration: underline;
  font-size: 0.9rem;
}

/* Card Container Grid */
.catalog-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
  gap: 20px;
  padding: 10px 0;
}

/* Base Card Style */
.item-card {
  background: #2f3136;
  border-radius: 12px;
  padding: 20px;
  border: 1px solid #40444b;
  display: flex;
  flex-direction: column;
  transition: all 0.2s ease-in-out;
}

.item-card:hover:not(.disabled) {
  transform: translateY(-5px);
  border-color: var(--header-color, #5865f2);
  box-shadow: 0 8px 15px rgba(0, 0, 0, 0.3);
}

.item-card.disabled {
  opacity: 0.6;
  filter: grayscale(0.8);
}

/* ==============================
    DISCLAIMER SECTION
============================== */
/* Styling Footer agar rapi di bawah */
.portal-disclaimer {
  flex-shrink: 0;
  background: #202225;
  padding: 30px 20px;
  border-top: 2px solid #5865f2;
  margin-top: auto;
}

/* Tambahan agar teks di dalam footer tidak berantakan */
.disclaimer-content {
  max-width: 1000px;
  margin: 0 auto;
  display: flex;
  gap: 20px;
  align-items: center;
  color: #b9bbbe;
  font-size: 0.85rem;
}

.disclaimer-icon {
  font-size: 2rem;
  color: #faa61a; /* Warna peringatan */
  opacity: 0.8;
}

.disclaimer-text {
  color: #72767d;
  font-size: 0.75rem;
  text-align: left;
  line-height: 1.6;
}

.disclaimer-text p {
  margin: 5px 0;
}

.disclaimer-text strong {
  color: #b9bbbe;
  letter-spacing: 0.5px;
}

/* Responsive Disclaimer */
@media (max-width: 600px) {
  .disclaimer-content {
    flex-direction: column;
    text-align: center;
  }

  .disclaimer-text {
    text-align: center;
  }
}

/* Container Utama */
.history-table-wrapper {
  background: #202225;
  border-radius: 15px;
  overflow: hidden;
  border: 1px solid rgba(255, 255, 255, 0.05);
  box-shadow: 0 15px 35px rgba(0, 0, 0, 0.4);
}

/* Header Table */
.history-table-header {
  display: flex;
  background: rgba(0, 0, 0, 0.2);
  padding: 15px 25px;
  font-size: 0.7rem;
  font-weight: 800;
  color: #72767d;
  letter-spacing: 2px;
  border-bottom: 1px solid rgba(255, 255, 255, 0.05);
}

/* Row Item */
.history-row-item {
  display: flex;
  align-items: center;
  padding: 20px 25px;
  border-bottom: 1px solid rgba(255, 255, 255, 0.02);
  transition: all 0.3s ease;
}

.history-row-item:hover {
  background: rgba(88, 101, 242, 0.05);
  padding-left: 30px; /* Efek geser sedikit saat hover */
}

/* Kolom-kolom */
.col-date {
  width: 100px;
  flex-shrink: 0;
}
.col-main {
  flex-grow: 1;
  padding: 0 20px;
}
.col-status {
  width: 140px;
  text-align: right;
  flex-shrink: 0;
}

/* Styling Text */
.date-txt {
  font-weight: 700;
  color: #fff;
  font-size: 0.9rem;
}
.time-txt {
  color: #72767d;
  font-size: 0.75rem;
  margin-top: 2px;
}

.item-type-tag {
  font-size: 0.6rem;
  color: #5865f2;
  font-weight: 900;
  margin-bottom: 4px;
  text-transform: uppercase;
}

.item-name-row {
  font-size: 1.1rem;
  color: #eee;
  font-weight: 600;
}
.qty-badge {
  color: #faa61a;
  font-size: 0.9rem;
  margin-left: 10px;
}
.item-price-row {
  color: #43b581;
  font-weight: bold;
  font-size: 0.85rem;
  margin-top: 3px;
}

/* Status Pill */
.status-pill {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 6px 14px;
  border-radius: 20px;
  font-size: 0.7rem;
  font-weight: 800;
  letter-spacing: 0.5px;
}

.st-pending {
  color: #faa61a;
  border: 1px solid #faa61a;
  background: rgba(250, 166, 26, 0.05);
}
.st-success {
  color: #43b581;
  border: 1px solid #43b581;
  background: rgba(67, 181, 129, 0.05);
}
.st-error {
  color: #f04747;
  border: 1px solid #f04747;
  background: rgba(240, 71, 71, 0.05);
}

/* State Kosong */
.empty-history {
  padding: 60px;
  text-align: center;
  color: #4f545c;
  font-family: monospace;
  font-size: 1rem;
  letter-spacing: 5px;
  text-transform: uppercase;
}

/* Responsive Mobile */
@media (max-width: 768px) {
  .history-table-header {
    display: none;
  }
  .history-row-item {
    flex-direction: column;
    align-items: flex-start;
    gap: 15px;
    position: relative;
  }
  .col-status {
    width: 100%;
    text-align: left;
  }
  .col-date {
    border-bottom: 1px solid #4f545c;
    width: 100%;
    padding-bottom: 10px;
  }
}

.swal2-input:focus {
  border-color: #faa61a !important;
  box-shadow: 0 0 5px rgba(250, 166, 26, 0.5) !important;
}

.swal2-validation-message {
  background: #f04747 !important;
  color: white !important;
  border-radius: 5px !important;
  margin-top: 10px !important;
}

/* Menghilangkan panah atas/bawah bawaan browser */
input::-webkit-outer-spin-button,
input::-webkit-inner-spin-button {
  -webkit-appearance: none;
  margin: 0;
}

input[type="number"] {
  -moz-appearance: textfield; /* Untuk Firefox */
}

/* Sembunyikan body saat loading access */
body {
  display: none;
}
body.access-granted {
  display: flex !important;
  flex-direction: column;
  min-height: 100vh;
}

.portal-content {
  flex: 1 0 auto;
}

.portal-disclaimer {
  margin-top: auto;
  flex-shrink: 0;
}

.swal2-input:focus {
  border-color: #43b581 !important;
  box-shadow: 0 0 0 2px rgba(67, 181, 129, 0.2) !important;
}

.swal2-validation-message {
  background: #f04747 !important;
  color: white !important;
  border-radius: 5px;
  margin-top: 10px !important;
}

/* Efek Glow pada input saat modal ganti password */
#p-portal-force:focus,
#p-1:focus,
#p-2:focus {
  border-color: #faa61a !important;
  box-shadow: 0 0 10px rgba(250, 166, 26, 0.2) !important;
  outline: none;
}

/* Animasi sederhana agar modal tidak kaku saat muncul */
.swal2-popup {
  border-radius: 15px !important;
  border: 1px solid #4f545c;
}

/* Tombol konfirmasi khusus untuk force change */
.portal-force-confirm-btn {
  width: 100% !important;
  font-weight: bold !important;
  letter-spacing: 1px !important;
  height: 45px !important;
  border-radius: 8px !important;
  transition: all 0.3s ease !important;
}

.portal-force-confirm-btn:hover {
  filter: brightness(1.1);
  transform: translateY(-1px);
}

/* Membuat transisi munculnya modal lebih smooth */
.swal2-show {
  animation: swal2-show 0.3s cubic-bezier(0.34, 1.56, 0.64, 1) !important;
}

@keyframes swal2-show {
  0% {
    transform: scale(0.9);
    opacity: 0;
  }
  100% {
    transform: scale(1);
    opacity: 1;
  }
}
