/* ============================================================
 * Fatura Takip — PowerAdmin teması üstü uygulama-özel shim'i.
 * Buradaki kurallar PowerAdmin'in main.css'i ve admin-theme.css ile
 * birlikte yüklenir; sadece projeye özgü mini bileşenleri ve
 * eski sınıfların PowerAdmin temasına bağlanmasını yapar.
 * ============================================================ */

/* ----------------------------------------
 * Görsel sistem — marka turuncusu, yumuşak zemin, finans kartları
 * ---------------------------------------- */
.admin-app {
  --accent-color: #e56b12;
  --accent-color-deep: #c45a0c;
  --background-color: #f1f4f8;
  --surface-color: #ffffff;
  --heading-color: #0f172a;
  --default-color: #334155;
  --muted-color: #64748b;
  --light-color: #94a3b8;
  --border-color: #e2e8f0;
  --border-color-light: #eef2f6;
  --card-bg: #ffffff;
  --card-border: rgb(15 23 42 / 0.07);
  --card-shadow: 0 1px 2px rgb(15 23 42 / 0.04), 0 10px 28px rgb(15 23 42 / 0.05);
  --header-bg: rgb(255 255 255 / 0.92);
  --header-shadow: 0 1px 0 rgb(15 23 42 / 0.06);
  --sidebar-bg: #ffffff;
  --sidebar-hover-bg: #fff7f0;
  --sidebar-active-bg: rgb(229 107 18 / 0.1);
  --sidebar-active-color: #c45a0c;
  --success-color: #059669;
  --danger-color: #dc2626;
  --info-color: #0284c7;
  --warning-color: #d97706;
  --radius-md: 0.65rem;
  --radius-lg: 0.95rem;
  --bs-primary: #e56b12;
  --bs-primary-rgb: 229, 107, 18;
  --bs-success: #059669;
  --bs-success-rgb: 5, 150, 105;
  --bs-danger: #dc2626;
  --bs-danger-rgb: 220, 38, 38;
  --bs-info: #0284c7;
  --bs-warning: #d97706;
  --bs-body-bg: #f1f4f8;
  --bs-body-color: #334155;
  --bs-border-color: #e2e8f0;
  --bs-border-radius: 0.7rem;
  --bs-border-radius-lg: 0.95rem;
  --bs-link-color: #c45a0c;
  --bs-link-hover-color: #9a470a;
  scroll-behavior: smooth;
  font-family: "Plus Jakarta Sans", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;
  background: var(--background-color);
  color: var(--default-color);
}

.admin-app .main,
.admin-app .main-content {
  background: transparent;
}

.admin-app .header {
  background: var(--header-bg);
  backdrop-filter: saturate(1.2) blur(14px);
  -webkit-backdrop-filter: saturate(1.2) blur(14px);
  box-shadow: var(--header-shadow);
  border-bottom: 0;
}

.admin-app .sidebar-strip {
  background: linear-gradient(180deg, #fff7f0 0%, #ffffff 55%);
}

.admin-app .sidebar .panel-link.active {
  background: var(--sidebar-active-bg);
  color: var(--sidebar-active-color);
  font-weight: 650;
}

.admin-app .ft-panel-card,
.admin-app .card.ft-panel-card {
  background: var(--card-bg);
  border: 1px solid var(--card-border);
  border-radius: var(--radius-lg);
  box-shadow: var(--card-shadow);
}

.admin-app .ft-panel-card > .card-header {
  background: transparent;
  border-bottom-color: rgb(15 23 42 / 0.06);
  font-weight: 650;
}

.admin-app .page-header {
  margin-bottom: 1rem;
}

.admin-app .page-title {
  font-size: 1.42rem;
  font-weight: 750;
  letter-spacing: -0.03em;
  color: var(--heading-color);
}

.admin-app .btn-primary {
  --bs-btn-bg: #e56b12;
  --bs-btn-border-color: #d96510;
  --bs-btn-hover-bg: #c45a0c;
  --bs-btn-hover-border-color: #b45309;
  --bs-btn-color: #fff;
  font-weight: 650;
  box-shadow: 0 1px 2px rgb(229 107 18 / 0.28);
}

.admin-app .btn-outline-secondary {
  background: #fff;
  border-color: #dbe3ec;
  color: #475569;
}

.admin-app .btn-outline-secondary:hover {
  background: #f8fafc;
  border-color: #cbd5e1;
  color: #0f172a;
}

.admin-app .search-form input {
  background: #f8fafc;
  border-color: #e2e8f0;
}

.admin-app a.ft-stat-card {
  border: 1px solid rgb(15 23 42 / 0.06);
  box-shadow: 0 1px 2px rgb(15 23 42 / 0.03);
}

.admin-app a.ft-stat-card:hover {
  transform: translateY(-1px);
  box-shadow: 0 8px 22px rgb(15 23 42 / 0.08);
}

.admin-app .ft-stat-card--gelir {
  background: linear-gradient(165deg, #ecfdf5 0%, #ffffff 62%);
  border-left: 4px solid #059669;
}

.admin-app .ft-stat-card--gider {
  background: linear-gradient(165deg, #fef2f2 0%, #ffffff 62%);
  border-left: 4px solid #dc2626;
}

.admin-app .ft-stat-card--net-pos {
  background: linear-gradient(165deg, #f0fdf4 0%, #ffffff 62%);
  border-left: 4px solid #059669;
}

.admin-app .ft-stat-card--net-neg {
  background: linear-gradient(165deg, #fff1f2 0%, #ffffff 62%);
  border-left: 4px solid #dc2626;
}

.admin-app .ft-stat-card--tahsilat {
  background: linear-gradient(165deg, #f0f9ff 0%, #ffffff 62%);
  border-left: 4px solid #0284c7;
}

.admin-app .ft-stat-card--odeme {
  background: linear-gradient(165deg, #fffbeb 0%, #ffffff 62%);
  border-left: 4px solid #d97706;
}

.admin-app .ft-stat-icon {
  width: 2rem;
  height: 2rem;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: 0.65rem;
  background: rgb(15 23 42 / 0.04);
  font-size: 1.05rem;
  opacity: 1;
}

.admin-app .progress {
  background: #eef2f6;
}

.admin-app .ft-empty {
  background: #f8fafc;
  border-radius: 0.85rem;
}

.admin-app .table thead th {
  color: #64748b;
  font-weight: 650;
}

.admin-app .badge.text-bg-success {
  background-color: #059669 !important;
}

.admin-app .badge.text-bg-danger {
  background-color: #dc2626 !important;
}

/* Modern enhancements */
.admin-app .btn {
  transition: background-color 0.15s ease, border-color 0.15s ease, box-shadow 0.15s ease, color 0.15s ease, transform 0.15s ease;
}

.admin-app .btn-primary:hover,
.admin-app .btn-outline-primary:hover,
.admin-app .btn-outline-secondary:hover {
  box-shadow: 0 2px 8px rgba(15, 23, 42, 0.08);
}

/* Tipografi — Plus Jakarta Sans varsayılan body fontu */
.admin-app {
  font-family: "Plus Jakarta Sans", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;
}

/* Enhanced typography with better readability */
.admin-app h1, .admin-app h2, .admin-app h3, .admin-app h4, .admin-app h5, .admin-app h6 {
  font-weight: 700;
  letter-spacing: -0.02em;
  line-height: 1.3;
}

.admin-app .small {
  font-weight: 500;
  letter-spacing: 0.01em;
}

/* ----------------------------------------
 * Header logo — yazılı marka için kare ikon kutusu
 * ---------------------------------------- */
.header-logo-mark {
  width: 32px;
  height: 32px;
  border-radius: 9px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: transparent;
  color: #fff;
  font-size: 1.05rem;
  line-height: 1;
  flex-shrink: 0;
  overflow: hidden;
  box-shadow: 0 2px 8px rgba(229, 107, 18, 0.32);
  transition: transform 0.2s ease, box-shadow 0.2s ease;
}

.header-logo-mark img,
.admin-app .header-logo .header-logo-mark img,
.auth-brand-logo .header-logo-mark img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

.header-logo-mark:hover {
  transform: scale(1.05);
  box-shadow: 0 4px 16px rgba(229, 107, 18, 0.45);
}

.sidebar-strip-logo .header-logo-mark {
  width: 36px;
  height: 36px;
  font-size: 1.15rem;
  border-radius: 10px;
}

.auth-brand-logo .header-logo-mark {
  width: 44px;
  height: 44px;
  border-radius: 12px;
  box-shadow: 0 6px 18px rgba(0, 0, 0, 0.28);
}

/* ----------------------------------------
 * Avatar — kullanıcı baş harfi rozetleri
 * ---------------------------------------- */
.avatar {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: 50%;
  font-weight: 600;
  text-transform: uppercase;
  background: linear-gradient(135deg, color-mix(in srgb, var(--accent-color), transparent 80%) 0%, color-mix(in srgb, var(--accent-color), transparent 90%) 100%);
  color: var(--accent-color);
  width: 32px;
  height: 32px;
  font-size: 0.85rem;
  flex-shrink: 0;
  overflow: hidden;
  border: 2px solid rgba(255, 255, 255, 0.1);
  transition: all 0.3s ease;
}

.avatar:hover {
  transform: scale(1.05);
  border-color: var(--accent-color);
}

.avatar img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.avatar.avatar-lg {
  width: 44px;
  height: 44px;
  font-size: 1.1rem;
}

.avatar.avatar-sm {
  width: 24px;
  height: 24px;
  font-size: 0.7rem;
}

.admin-app .header {
  background: #fff;
  border-bottom: 1px solid var(--border-color-light);
  box-shadow: 0 1px 0 rgba(15, 23, 42, 0.03);
}

.admin-app .header-right {
  gap: 0.625rem;
}

@media (min-width: 768px) {
  .admin-app .header-right {
    padding-left: 0.875rem;
    margin-left: 0.875rem;
    border-left: 1px solid var(--border-color-light);
  }
}

.admin-app .header-actions-desktop {
  gap: 0.625rem;
}

.admin-app .sidebar-strip {
  background: #f8fafc;
  border-right: 1px solid var(--border-color-light);
}

.admin-app .sidebar-panel,
.admin-app .sidebar-panel-header {
  background: #fff;
}

.admin-app .sidebar-panel {
  border-right: 1px solid var(--border-color);
}

.sidebar-strip-avatar .avatar {
  width: 32px;
  height: 32px;
  font-size: 0.85rem;
}

/* ----------------------------------------
 * Sidebar paneli — grup başlığı (panel-nav-heading)
 * ---------------------------------------- */
.sidebar .panel-nav .panel-nav-group {
  list-style: none;
}

.sidebar .panel-nav .panel-nav-heading {
  list-style: none;
  width: 100%;
  padding: 10px 14px 4px;
  font-size: 0.65rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  color: var(--muted-color);
  margin-top: 2px;
  position: relative;
  background: none;
  border: none;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: space-between;
  text-align: left;
}

.sidebar .panel-nav .panel-nav-heading::after {
  content: '';
  position: absolute;
  bottom: 4px;
  left: 14px;
  right: 14px;
  height: 1px;
  background: var(--border-color-light);
  opacity: 1;
}

/* Ana menü — grup başlığı yok, doğrudan linkler */
.sidebar .panel-nav-group--flat {
  margin-bottom: 0.25rem;
}

.sidebar .panel-nav-sub--root {
  padding-top: 0.125rem;
}

/* Masaüstünde şeritte marka varken panel üst başlığını gizle */
@media (min-width: 1200px) {
  .sidebar-panel-header {
    display: none;
  }

  .sidebar .panel-nav {
    padding-top: 0.5rem;
  }
}

.sidebar .panel-nav .panel-nav-heading:first-child {
  margin-top: 0;
}

.sidebar .panel-nav .panel-nav-chevron {
  font-size: 0.75rem;
  transition: transform 0.3s ease;
  margin-left: auto;
}

.sidebar .panel-nav .panel-nav-heading.active .panel-nav-chevron {
  transform: rotate(180deg);
}

.sidebar .panel-nav .panel-nav-sub {
  list-style: none;
  padding: 0;
  margin: 0;
}

.sidebar .panel-nav .panel-nav-sub li {
  list-style: none;
}

/* Sidebar panel-link içinde Bootstrap d-flex / align-items-center
   uygulanırken ikon alanı padding'i */
.sidebar .panel-link .bi {
  font-size: 1rem;
  width: 1.25rem;
  text-align: center;
  flex-shrink: 0;
  opacity: 0.85;
  transition: all 0.3s ease;
}

.sidebar .panel-link.active .bi {
  opacity: 1;
  transform: none;
  color: var(--accent-color);
}

.sidebar .panel-link {
  border-radius: 12px;
  transition: background-color 0.2s ease, color 0.2s ease, box-shadow 0.2s ease;
}

.sidebar .panel-link:hover {
  transform: none;
  background: var(--background-color);
}

.admin-app .strip-item {
  background: #fff;
  border: 1px solid var(--border-color-light);
  box-shadow: 0 1px 2px rgba(15, 23, 42, 0.04);
}

.admin-app .strip-item.active {
  background: color-mix(in srgb, var(--accent-color), white 90%);
  color: var(--accent-color);
  border-color: color-mix(in srgb, var(--accent-color), white 72%);
  box-shadow: none;
}

.admin-app .sidebar-strip-bottom {
  border-top-color: var(--border-color-light);
}

.admin-app .sidebar-strip-avatar .avatar,
.admin-app .user-dropdown .avatar {
  border-color: var(--border-color-light);
  background: color-mix(in srgb, var(--accent-color), white 86%);
}

.admin-app .sidebar .panel-link.active {
  background: color-mix(in srgb, var(--accent-color), white 91%);
  color: var(--accent-color);
  font-weight: 600;
  box-shadow: inset 0 0 0 1px color-mix(in srgb, var(--accent-color), white 80%);
}

.admin-app .user-dropdown {
  margin-left: 0;
}

.admin-app .user-dropdown .dropdown-toggle {
  padding: 6px 12px 6px 6px;
  background: #fff;
  border: 1px solid var(--border-color-light);
  box-shadow: 0 1px 2px rgba(15, 23, 42, 0.04);
}

.admin-app .user-dropdown .dropdown-toggle:hover {
  background: #fff;
  border-color: var(--border-color);
  box-shadow: 0 4px 12px rgba(15, 23, 42, 0.08);
}

/* ----------------------------------------
 * Eski badge varyantları (.badge-gelir/-gider/-fis/-fatura/-diger/-bekliyor)
 * Görünüm: PowerAdmin'in badge-soft-* karşılıklarına eşler.
 * ---------------------------------------- */
.badge-gelir,
.badge-fis {
  display: inline-flex;
  align-items: center;
  padding: 0.25rem 0.5rem;
  border-radius: 6px;
  font-size: 0.75rem;
  font-weight: 600;
  background: linear-gradient(135deg, var(--success-color-light) 0%, rgba(52, 211, 122, 0.15) 100%);
  color: var(--success-color);
  border: 1px solid rgba(52, 211, 122, 0.2);
  transition: all 0.3s ease;
}

.badge-gelir:hover,
.badge-fis:hover {
  transform: translateY(-1px);
  box-shadow: 0 2px 8px rgba(52, 211, 122, 0.2);
}

.badge-gider {
  display: inline-flex;
  align-items: center;
  padding: 0.25rem 0.5rem;
  border-radius: 6px;
  font-size: 0.75rem;
  font-weight: 600;
  background: linear-gradient(135deg, var(--danger-color-light) 0%, rgba(248, 113, 113, 0.15) 100%);
  color: var(--danger-color);
  border: 1px solid rgba(248, 113, 113, 0.2);
  transition: all 0.3s ease;
}

.badge-gider:hover {
  transform: translateY(-1px);
  box-shadow: 0 2px 8px rgba(248, 113, 113, 0.2);
}

.badge-fatura {
  display: inline-flex;
  align-items: center;
  padding: 0.25rem 0.5rem;
  border-radius: 6px;
  font-size: 0.75rem;
  font-weight: 600;
  background: linear-gradient(135deg, color-mix(in srgb, var(--accent-color), transparent 85%) 0%, color-mix(in srgb, var(--accent-color), transparent 92%) 100%);
  color: var(--accent-color);
  border: 1px solid rgba(224, 120, 38, 0.2);
  transition: all 0.3s ease;
}

.badge-fatura:hover {
  transform: translateY(-1px);
  box-shadow: 0 2px 8px rgba(224, 120, 38, 0.2);
}

.badge-diger {
  display: inline-flex;
  align-items: center;
  padding: 0.25rem 0.5rem;
  border-radius: 6px;
  font-size: 0.75rem;
  font-weight: 600;
  background: color-mix(in srgb, var(--muted-color), transparent 85%);
  color: var(--muted-color);
}

.badge-bekliyor {
  display: inline-flex;
  align-items: center;
  padding: 0.25rem 0.5rem;
  border-radius: 6px;
  font-size: 0.75rem;
  font-weight: 600;
  background: linear-gradient(135deg, var(--warning-color-light) 0%, rgba(251, 191, 36, 0.15) 100%);
  color: var(--warning-color);
  border: 1px solid rgba(251, 191, 36, 0.2);
  transition: all 0.3s ease;
}

.badge-bekliyor:hover {
  transform: translateY(-1px);
  box-shadow: 0 2px 8px rgba(251, 191, 36, 0.2);
}

/* ----------------------------------------
 * btn-ghost — PowerAdmin'in outline-secondary stiline alias
 * ---------------------------------------- */
.btn-ghost {
  display: inline-flex;
  align-items: center;
  gap: 0.4rem;
  padding: 0.35rem 0.7rem;
  border-radius: 6px;
  border: 1px solid var(--border-color);
  background: transparent;
  color: var(--default-color);
  font-size: 0.875rem;
  font-weight: 500;
  cursor: pointer;
  transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
}

.btn-ghost:hover {
  border-color: var(--accent-color);
  color: var(--accent-color);
  background: color-mix(in srgb, var(--accent-color), transparent 92%);
  transform: translateY(-1px);
  box-shadow: 0 2px 8px rgba(224, 120, 38, 0.15);
}

.btn-ghost:active {
  filter: brightness(0.95);
}

/* ----------------------------------------
 * Page-fit (viewport'a sıkıştırılmış) sayfa modu
 *   <body class="admin-app ft-page-fit-host"> + <div class="main-content ft-layout-page-fit">
 * Dashboard, records, yeni-kayit, edit gibi sayfalarda kullanılır.
 * ---------------------------------------- */
body.admin-app.ft-page-fit-host {
  overflow: hidden;
  height: 100dvh;
  max-height: 100dvh;
}

body.admin-app.ft-page-fit-host .main {
  min-height: 0;
  height: calc(100dvh - var(--header-height, 64px));
  overflow: hidden;
  display: flex;
  flex-direction: column;
}

body.admin-app.ft-page-fit-host .main > .main-content.ft-layout-page-fit {
  flex: 1 1 auto;
  min-height: 0;
  overflow: hidden;
  display: flex;
  flex-direction: column;
  gap: 0.75rem;
  padding-top: 1rem;
  padding-bottom: 1rem;
}

body.admin-app.ft-page-fit-host .main > .main-content.ft-layout-page-fit > .footer,
body.admin-app.ft-page-fit-host .main > .footer,
body.admin-app.ft-page-fit-host .back-to-top {
  display: none !important;
}

.ft-layout-page-fit > .card.ft-page-fit-card,
.ft-layout-page-fit .ft-page-fit-card {
  flex: 1 1 auto;
  min-height: 0;
  display: flex;
  flex-direction: column;
}

.ft-layout-page-fit .ft-page-fit-card > .card-body {
  overflow: auto;
  flex: 1 1 auto;
  min-height: 0;
}

/* Yeni kayıt: içerik form içinde kayar; alt aksiyon çubuğu sabit kalır */
body.admin-app.ft-page-fit-host .ft-layout-page-fit .ft-yeni-kayit.ft-page-fit-card > .card-body {
  overflow: hidden;
}

.ft-layout-page-fit .dashboard-page-root,
.ft-layout-page-fit .records-page-wrap,
.ft-layout-page-fit .ft-edit-page-root,
.ft-layout-page-fit .ft-yeni-kayit {
  flex: 1 1 auto;
  min-height: 0;
}

.ft-layout-page-fit .dashboard-page-root {
  overflow-x: hidden;
  overflow-y: auto;
  -webkit-overflow-scrolling: touch;
  overscroll-behavior: contain;
  padding-bottom: 0.5rem;
}

body.admin-app.ft-page-fit-host .main > .main-content.ft-layout-page-fit > .page-header {
  flex-shrink: 0;
}

/* ----------------------------------------
 * Search bar üst yardımcılar
 * ---------------------------------------- */
.header-search .search-form input {
  transition: all 0.3s ease;
}

.header-search .search-form input:focus {
  outline: none;
  border-color: var(--accent-color);
  box-shadow: 0 0 0 3px color-mix(in srgb, var(--accent-color), transparent 80%);
  transform: none;
}

/* Enhanced form styling */
.admin-app .form-control,
.admin-app .form-select {
  transition: all 0.3s ease;
  border: 1px solid var(--border-color);
}

.admin-app .form-control:focus,
.admin-app .form-select:focus {
  border-color: var(--accent-color);
  box-shadow: 0 0 0 3px color-mix(in srgb, var(--accent-color), transparent 80%);
  transform: translateY(-1px);
}

/* ----------------------------------------
 * Form yığını (yeni-kayit / edit sayfalarındaki kart)
 * ---------------------------------------- */
.ft-form-card .card-header {
  background: transparent;
  border-bottom: 1px solid var(--card-border);
}

.ft-form-card .card-header h5 {
  margin: 0;
  font-size: 1rem;
  font-weight: 600;
}

/* ----------------------------------------
 * SimpleXLSXGen kaynaklı XML çıktısıyla alakası yok — sadece UI
 * Belge listesi & tablolarda satır vurgulama
 * ---------------------------------------- */
.ft-row-clickable {
  cursor: pointer;
  transition: all 0.2s ease;
}

.ft-row-clickable:hover {
  background-color: color-mix(in srgb, var(--accent-color), transparent 95%);
  transform: scale(1.005);
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);
}

/* Enhanced stat cards with pulse animation */
.admin-stat-card {
  transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
  position: relative;
  overflow: hidden;
}

.admin-stat-card::before {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  height: 3px;
  background: linear-gradient(90deg, var(--accent-color), transparent);
  opacity: 0;
  transition: opacity 0.3s ease;
}

.admin-stat-card:hover::before {
  opacity: 1;
}

.admin-stat-card:hover {
  transform: translateY(-4px);
  box-shadow: 0 8px 24px rgba(0, 0, 0, 0.15);
}

/* Chart container enhancements */
.chart-wrap {
  position: relative;
}

.chart-wrap::after {
  content: '';
  position: absolute;
  inset: 0;
  border-radius: inherit;
  pointer-events: none;
  box-shadow: inset 0 0 20px rgba(0, 0, 0, 0.05);
  opacity: 0;
  transition: opacity 0.3s ease;
}

.chart-wrap:hover::after {
  opacity: 1;
}

/* Enhanced table styling */
.admin-app .table {
  border-collapse: separate;
  border-spacing: 0;
}

.admin-app .table thead th {
  background: linear-gradient(180deg, var(--table-header-bg) 0%, color-mix(in srgb, var(--table-header-bg), transparent 50%) 100%);
  border-bottom: 2px solid var(--accent-color);
  position: sticky;
  top: 0;
  z-index: 10;
}

.admin-app .table tbody tr {
  transition: all 0.2s ease;
}

.admin-app .table tbody tr:hover {
  background: color-mix(in srgb, var(--accent-color), transparent 92%);
  transform: scale(1.005);
}

.admin-app .table tbody td {
  border-bottom: 1px solid var(--border-color);
}

/* Giriş sayfası: form alanı panel temasından bağımsız açık arka plan */
.auth-layout .auth-main {
  background: #ffffff !important;
  color: #1a202c;
}

.auth-layout .auth-main .auth-title,
.auth-layout .auth-main .form-label {
  color: #1a202c;
}

.auth-layout .auth-main .auth-subtitle,
.auth-layout .auth-main .text-muted {
  color: #64748b !important;
}

.auth-layout .auth-main .form-control {
  background: #fff;
  border-color: #e2e8f0;
  color: #1a202c;
}

.auth-brand-footer .auth-brand-footer-link {
  color: inherit;
  text-decoration: underline;
  text-underline-offset: 2px;
  transition: color 0.2s ease, opacity 0.2s ease;
}

.auth-brand-footer .auth-brand-footer-link:hover {
  color: var(--accent-color);
  opacity: 1;
}

/* ============================================================
 * Global compact system
 * Site geneline daha yogun, daha temiz ve daha profesyonel bir
 * yerlesim verir. Panel ve guest ekranlari ayni ritme cekilir.
 * ============================================================ */
:root {
  --spacing-xs: 0.2rem;
  --spacing-sm: 0.4rem;
  --spacing-md: 0.75rem;
  --spacing-lg: 1rem;
  --spacing-xl: 1.35rem;
  --spacing-2xl: 1.9rem;
  --radius-sm: 0.2rem;
  --radius-md: 0.45rem;
  --radius-lg: 0.65rem;
  --radius-xl: 0.85rem;
  --radius-2xl: 1rem;
  --header-height: 56px;
  --sidebar-icon-width: 58px;
  --sidebar-panel-width: 188px;
  --sidebar-width: 246px;
  --footer-height: 48px;
}

html {
  font-size: 15px;
}

body {
  letter-spacing: -0.01em;
}

.admin-app,
.auth-layout,
.centered-layout {
  font-size: 0.92rem;
}

.admin-app h1,
.admin-app h2,
.admin-app h3,
.admin-app h4,
.admin-app h5,
.admin-app h6,
.auth-layout h1,
.auth-layout h2,
.auth-layout h3,
.auth-layout h4,
.auth-layout h5,
.auth-layout h6 {
  letter-spacing: -0.025em;
}

.admin-app .main-content {
  padding: 0.85rem;
}

.admin-app .page-header,
.admin-app .pagetitle {
  margin-bottom: 0.8rem;
}

.admin-app .page-title {
  font-size: 1.28rem;
  line-height: 1.15;
  margin-bottom: 0.15rem;
}

.admin-app .page-header-desc,
.admin-app .page-header .text-muted,
.admin-app .pagetitle p {
  font-size: 0.78rem;
  line-height: 1.45;
}

.admin-app .breadcrumb {
  gap: 0.2rem;
  margin-bottom: 0;
  font-size: 0.72rem;
}

.admin-app .header {
  min-height: var(--header-height);
  padding-inline: 0.75rem;
}

.admin-app .header-left,
.admin-app .header-right {
  gap: 0.5rem;
}

.admin-app .header-search {
  max-width: 420px;
}

.admin-app .search-form {
  min-height: 36px;
}

.admin-app .search-form input,
.admin-app .search-form .form-control,
.admin-app .search-form .form-select {
  min-height: 36px;
  font-size: 0.84rem;
}

.header-logo-mark {
  width: 28px;
  height: 28px;
  border-radius: 8px;
  font-size: 0.95rem;
  box-shadow: 0 1px 4px rgba(229, 107, 18, 0.24);
}

.sidebar-strip-logo .header-logo-mark {
  width: 32px;
  height: 32px;
  border-radius: 9px;
}

.avatar {
  width: 28px;
  height: 28px;
  font-size: 0.76rem;
}

.avatar.avatar-lg {
  width: 38px;
  height: 38px;
  font-size: 0.95rem;
}

.avatar.avatar-sm {
  width: 22px;
  height: 22px;
  font-size: 0.64rem;
}

.admin-app .user-dropdown .dropdown-toggle {
  min-height: 36px;
  padding: 4px 10px 4px 4px;
  border-radius: 10px;
}

.admin-app .dropdown-menu {
  padding: 0.35rem;
  border-radius: 0.8rem;
}

.admin-app .dropdown-item,
.admin-app .user-dropdown-item {
  min-height: 34px;
  border-radius: 8px;
  font-size: 0.82rem;
}

.admin-app .sidebar-strip {
  width: var(--sidebar-icon-width);
}

.admin-app .strip-item {
  width: 34px;
  height: 34px;
  border-radius: 10px;
}

.sidebar-strip-avatar .avatar {
  width: 28px;
  height: 28px;
}

.sidebar .panel-nav {
  padding: 0.35rem 0.45rem 0.6rem;
}

.sidebar .panel-nav .panel-nav-heading {
  padding: 0.5rem 0.75rem 0.3rem;
  font-size: 0.6rem;
  letter-spacing: 0.08em;
}

.sidebar .panel-nav .panel-nav-heading::after {
  bottom: 2px;
  left: 12px;
  right: 12px;
}

.sidebar .panel-link {
  min-height: 34px;
  padding: 0.45rem 0.7rem;
  border-radius: 10px;
  font-size: 0.82rem;
}

.sidebar .panel-link .bi {
  width: 1.1rem;
  font-size: 0.92rem;
}

.admin-app .card {
  border-radius: 0.75rem;
  box-shadow: 0 1px 2px rgba(15, 23, 42, 0.04);
}

.admin-app .card-header {
  padding: 0.55rem 0.8rem;
  font-size: 0.8rem;
}

.admin-app .card-body {
  padding: 0.8rem;
}

.admin-app .card-footer {
  padding: 0.6rem 0.8rem;
}

.admin-app .ft-panel-card > .card-header,
.admin-app .ft-form-card .card-header,
.admin-app .admin-chart-card .card-header,
.admin-app .admin-stat-card .card-header {
  padding: 0.5rem 0.75rem;
}

.admin-app .ft-layout-page-fit,
body.admin-app.ft-page-fit-host .main > .main-content.ft-layout-page-fit {
  gap: 0.6rem;
  padding-top: 0.7rem;
  padding-bottom: 0.7rem;
}

.admin-app .dashboard-page-root,
.admin-app .records-page-wrap,
.admin-app .ft-edit-page-root,
.admin-app .ft-yeni-kayit {
  gap: 0.65rem;
}

.admin-app .dashboard-overview .chart-wrap,
.admin-app .dashboard-overview .chart-wrap.chart-wrap--sm {
  height: 172px;
}

.admin-app .dashboard-overview .admin-chart-card .card-body {
  padding: 0.45rem 0.65rem;
}

.admin-app .dashboard-overview .admin-chart-card .card-header {
  padding: 0.45rem 0.65rem;
  font-size: 0.68rem;
}

.admin-app .ft-stat-card,
.admin-app .admin-stat-card {
  min-height: 0;
}

.admin-app .ft-stat-card .card-body,
.admin-app .admin-stat-card .card-body {
  padding: 0.7rem 0.75rem;
}

.admin-app .ft-stat-label,
.admin-app .admin-stat-card .text-muted {
  font-size: 0.64rem;
  letter-spacing: 0.05em;
}

.admin-app .ft-stat-sub {
  font-size: 0.64rem;
}

.admin-app .ft-stat-value,
.admin-app .admin-stat-card .display-6 {
  font-size: clamp(1.05rem, 2.6vw, 1.35rem);
  line-height: 1.25;
  overflow: visible;
  font-variant-numeric: tabular-nums;
  letter-spacing: 0;
}

.admin-app .form-group,
.admin-app .mb-3 {
  margin-bottom: 0.75rem !important;
}

.admin-app .form-label {
  margin-bottom: 0.25rem;
  font-size: 0.76rem;
  font-weight: 600;
}

.admin-app .form-control,
.admin-app .form-select,
.admin-app .input-group-text,
.admin-app .ts-wrapper.form-select,
.admin-app .ts-wrapper.single .ts-control {
  min-height: 36px;
  font-size: 0.84rem;
  border-radius: 0.55rem;
}

.admin-app .form-control,
.admin-app .form-select {
  padding: 0.42rem 0.7rem;
}

.admin-app textarea.form-control {
  min-height: 88px;
  padding-top: 0.55rem;
  padding-bottom: 0.55rem;
}

.admin-app .input-group-text {
  padding-inline: 0.65rem;
}

.admin-app .btn {
  min-height: 36px;
  padding: 0.42rem 0.78rem;
  font-size: 0.82rem;
  border-radius: 0.55rem;
}

/* Compact yeni kayıt form stilleri */
.ft-yeni-sect {
  border-color: rgba(0, 0, 0, 0.05) !important;
}
.ft-yeni-sect__title {
  font-weight: 700;
  letter-spacing: 0.05em;
  color: var(--bs-secondary);
}
.ft-yeni-totals-bar {
  background: var(--bs-tertiary-bg);
  transition: all 0.3s ease;
}
.ft-yeni-totals-bar:hover {
  background: var(--bs-light);
}
.ft-yeni-totals-bar .vr {
  background-color: var(--bs-border-color);
  width: 1px;
}
.ft-yeni-accordion .accordion-button:not(.collapsed) {
  background-color: color-mix(in srgb, var(--accent-color) 8%, transparent);
  color: var(--accent-color);
}
.ft-yeni-accordion .accordion-button::after {
  transform: scale(0.8);
}
.ft-yeni-accordion .accordion-body {
  border-top: 1px solid var(--bs-border-color-translucent);
}

.admin-app .btn-sm,
.admin-app .btn-group-sm > .btn {
  min-height: 32px;
  padding: 0.32rem 0.62rem;
  font-size: 0.76rem;
}

.admin-app .btn-lg,
.admin-app .btn-group-lg > .btn {
  min-height: 40px;
  padding: 0.55rem 0.95rem;
  font-size: 0.88rem;
}

.admin-app .ft-icon-btn {
  width: 1.7rem;
  min-width: 1.7rem;
  height: 1.7rem;
  min-height: 1.7rem;
  padding: 0;
}

.btn-ghost {
  min-height: 34px;
  padding: 0.35rem 0.62rem;
  font-size: 0.8rem;
}

.admin-app .table {
  font-size: 0.82rem;
}

.admin-app .table > :not(caption) > * > * {
  padding: 0.4rem 0.55rem;
}

.admin-app .table thead th {
  font-size: 0.66rem;
  letter-spacing: 0.06em;
}

.admin-app .table-responsive {
  border-radius: 0.75rem;
}

.admin-app .badge,
.badge-gelir,
.badge-gider,
.badge-fatura,
.badge-diger,
.badge-bekliyor,
.badge-fis {
  font-size: 0.68rem;
  padding: 0.18rem 0.42rem;
  border-radius: 999px;
}

.admin-app .list-group-item,
.admin-app .accordion-button,
.admin-app .accordion-body,
.admin-app .modal-header,
.admin-app .modal-body,
.admin-app .modal-footer,
.admin-app .offcanvas-header,
.admin-app .offcanvas-body {
  padding: 0.75rem;
}

.admin-app .nav-tabs .nav-link,
.admin-app .nav-pills .nav-link {
  padding: 0.4rem 0.7rem;
  font-size: 0.8rem;
}

.admin-app .btn:hover,
.btn-ghost:hover,
.header-logo-mark:hover,
.avatar:hover,
.admin-app .admin-stat-card:hover,
.admin-app .card:hover,
.admin-app .table tbody tr:hover,
.ft-row-clickable:hover,
.sidebar .panel-link:hover {
  transform: none;
}

.admin-app a.ft-stat-card:hover {
  transform: translateY(-1px);
}

.admin-app .btn:hover,
.btn-ghost:hover,
.admin-app .admin-stat-card:hover,
.admin-app .card:hover {
  box-shadow: 0 4px 14px rgba(15, 23, 42, 0.08);
}

.admin-app .table tbody tr:hover,
.ft-row-clickable:hover {
  box-shadow: none;
}

.auth-layout {
  min-height: 100dvh;
}

.auth-brand {
  width: 40%;
  max-width: 500px;
}

.auth-brand-inner,
.auth-main {
  padding: 1.5rem;
}

.auth-brand-heading {
  font-size: 1.65rem;
  margin-bottom: 0.75rem;
}

.auth-brand-desc {
  font-size: 0.86rem;
  line-height: 1.55;
  margin-bottom: 1rem;
}

.auth-brand-features {
  gap: 0.6rem;
}

.auth-brand-features li {
  font-size: 0.82rem;
}

.auth-container {
  max-width: 390px;
}

.auth-card {
  margin-bottom: 1rem;
}

.auth-card-header {
  margin-bottom: 0.9rem;
}

.auth-title {
  font-size: 1.2rem;
}

.auth-subtitle {
  font-size: 0.8rem;
  line-height: 1.5;
}

.auth-form .form-group {
  margin-bottom: 0.8rem;
}

.auth-form .form-label {
  margin-bottom: 0.25rem;
  font-size: 0.76rem;
}

.auth-form .form-control,
.auth-form .input-group .btn {
  height: 40px;
  min-height: 40px;
  font-size: 0.84rem;
}

.auth-icon {
  width: 44px;
  height: 44px;
  margin-bottom: 0.9rem;
  font-size: 1.1rem;
}

.auth-avatar {
  width: 64px;
  height: 64px;
  margin-bottom: 0.9rem;
}

@media (max-width: 991.98px) {
  html {
    font-size: 14px;
  }

  .admin-app .main-content {
    padding: 0.7rem;
  }

  .admin-app .header {
    padding-inline: 0.6rem;
  }

  .admin-app .page-title {
    font-size: 1.15rem;
  }

  .auth-brand {
    width: 100%;
    max-width: none;
  }

  .auth-brand-inner,
  .auth-main {
    padding: 1.1rem;
  }
}

/* Global AJAX loading indicator */
body.ft-ajax-loading {
  cursor: wait;
}

body.ft-ajax-loading::after {
  content: '';
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  background: rgba(0, 0, 0, 0.1);
  z-index: 9999;
  pointer-events: none;
  opacity: 0;
  animation: ft-fadeIn 0.2s ease forwards;
}

@keyframes ft-fadeIn {
  to {
    opacity: 1;
  }
}

/* Ayarlar sayfası */
.ft-settings-page .ft-settings-link-card {
  transition: border-color 0.15s ease, box-shadow 0.15s ease;
}

.ft-settings-page .ft-settings-link-card:hover {
  border-color: color-mix(in srgb, var(--bs-primary, #0d6efd), transparent 55%);
  box-shadow: 0 2px 8px rgba(15, 23, 42, 0.06);
}

.ft-settings-page .ft-settings-link-card .card-body {
  padding: 0.85rem 1rem;
}

.ft-settings-page .ft-settings-save-bar {
  position: sticky;
  bottom: 0.75rem;
  z-index: 5;
  background: color-mix(in srgb, var(--bs-body-bg, #fff), transparent 8%);
  backdrop-filter: blur(6px);
  padding: 0.75rem 0 0.25rem;
  margin-top: 0.5rem;
  border-top: 1px solid var(--bs-border-color-translucent, rgba(0, 0, 0, 0.08));
  justify-content: flex-start;
}

.ft-settings-page .settings-section-header {
  margin-bottom: 1rem;
}

.ft-settings-page section.card {
  scroll-margin-top: 5.5rem;
}

/* ----------------------------------------
 * Ortak boş durum, filtre çubuğu, özet kısayolları
 * ---------------------------------------- */
.admin-app .footer {
  padding-block: 0.45rem;
}

.admin-app .footer-copyright {
  font-size: 0.75rem;
}

.admin-app .ft-empty {
  text-align: center;
  padding: 1.75rem 1rem;
  color: var(--muted-color, #64748b);
}

.admin-app .ft-empty__icon {
  font-size: 1.65rem;
  display: block;
  margin-bottom: 0.45rem;
  opacity: 0.5;
}

.admin-app .ft-empty p {
  margin-bottom: 0.75rem;
}

.admin-app a.ft-stat-card {
  display: flex;
  flex-direction: column;
  box-sizing: border-box;
  overflow: visible;
  min-width: 0;
  text-decoration: none;
  color: inherit;
}

.admin-app a.ft-stat-card:hover {
  transform: translateY(-1px);
  box-shadow: 0 8px 22px rgb(15 23 42 / 0.08);
}

.admin-app .ft-quick-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
}

.admin-app .ft-quick-actions .btn {
  min-height: 34px;
}

.admin-app .ft-period-nav {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.35rem;
  min-width: 0;
}

.admin-app .ft-period-year {
  width: 6rem;
  max-width: 100%;
}

.admin-app .ft-period-month {
  width: 8rem;
  max-width: 100%;
}

.admin-app .header-cta-yeni {
  white-space: nowrap;
  flex-shrink: 0;
}

.admin-app .ft-hub-card {
  transition: border-color 0.15s ease, box-shadow 0.15s ease;
}

.admin-app .ft-hub-card:hover {
  border-color: color-mix(in srgb, var(--accent-color), transparent 55%);
  box-shadow: 0 4px 14px rgba(15, 23, 42, 0.06);
}

.admin-app .table.table-sm > :not(caption) > * > * {
  padding: 0.4rem 0.55rem;
}

@media (max-width: 767.98px) {
  .admin-app .header-cta-yeni .header-cta-label {
    display: none;
  }
}

/* Kapalı menü overlay tıklamayı yutmasın */
.admin-app .sidebar-overlay {
  pointer-events: none;
}

.admin-app.sidebar-open .sidebar-overlay {
  pointer-events: auto;
}

/* ----------------------------------------
 * Mobil / dar ekran — dokunma, taşma, Özet
 * ---------------------------------------- */
@media (max-width: 767.98px) {
  html {
    -webkit-text-size-adjust: 100%;
    text-size-adjust: 100%;
  }

  .admin-app {
    overflow-x: clip;
  }

  .admin-app .header {
    padding-inline: max(0.5rem, env(safe-area-inset-left)) max(0.5rem, env(safe-area-inset-right));
    padding-top: env(safe-area-inset-top);
    gap: 0.35rem;
  }

  .admin-app .header-logo {
    min-width: 0;
    margin-right: 0.15rem;
    gap: 0.35rem;
  }

  .admin-app .header-logo > span:not(.header-logo-mark) {
    display: inline;
    font-size: 0.88rem;
    font-weight: 700;
    max-width: 9.5rem;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
  }

  .admin-app .header-logo-mark {
    display: inline-flex;
    width: 30px;
    height: 30px;
  }

  .admin-app .sidebar-strip {
    display: none;
  }

  .admin-app .sidebar {
    width: min(18.5rem, 88vw);
    max-width: 88vw;
  }

  .admin-app .sidebar-panel {
    width: 100%;
  }

  .admin-app .sidebar .panel-link {
    min-height: 44px;
  }

  .admin-app .header-cta-yeni {
    min-width: 44px;
    min-height: 44px;
    padding-inline: 0.55rem;
    display: inline-flex;
    align-items: center;
    justify-content: center;
  }

  .admin-app .header-cta-yeni .bi {
    margin-right: 0 !important;
  }

  .admin-app .sidebar-toggle,
  .admin-app .header-action,
  button.header-action,
  .admin-app .header-actions-mobile .header-action {
    min-width: 44px;
    min-height: 44px;
  }

  .admin-app .main-content {
    padding: 0.65rem max(0.65rem, env(safe-area-inset-right)) 0.85rem max(0.65rem, env(safe-area-inset-left));
  }

  .admin-app .page-header {
    margin-bottom: 0.75rem !important;
    gap: 0.5rem;
  }

  .admin-app .page-title {
    font-size: 1.2rem;
  }

  .admin-app .page-header > .min-w-0 > .text-muted.small {
    display: none;
  }

  .admin-app .form-control,
  .admin-app .form-select,
  .admin-app .search-form input,
  .mobile-search input {
    font-size: 16px;
    min-height: 44px;
  }

  .admin-app .btn {
    min-height: 44px;
    touch-action: manipulation;
  }

  .admin-app .btn-sm,
  .admin-app .btn-group-sm > .btn {
    min-height: 40px;
  }

  .admin-app .ft-icon-btn {
    width: 2.5rem;
    min-width: 2.5rem;
    height: 2.5rem;
    min-height: 2.5rem;
  }

  .admin-app .ft-quick-actions {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 0.5rem;
  }

  .admin-app .ft-quick-actions .btn {
    width: 100%;
    justify-content: center;
  }

  .admin-app .ft-period-nav {
    width: 100%;
  }

  .admin-app .ft-period-nav .btn {
    min-width: 44px;
  }

  .admin-app .ft-period-year,
  .admin-app .ft-period-month {
    flex: 1 1 auto;
    width: auto;
  }

  .admin-app .ft-dash-period-bar {
    flex-direction: column;
    align-items: stretch !important;
  }

  .admin-app .ft-dash-period-line {
    width: 100%;
  }

  .admin-app a.ft-stat-card {
    padding: 0.75rem 0.7rem !important;
  }

  .admin-app a.ft-stat-card .ft-stat-label {
    font-size: 0.62rem;
  }

  .admin-app a.ft-stat-card .ft-stat-value {
    font-size: clamp(0.88rem, 4.2vw, 1.15rem);
    white-space: nowrap;
  }

  .admin-app .dashboard-overview .chart-wrap,
  .admin-app .dashboard-overview .chart-wrap.chart-wrap--sm {
    height: 200px;
  }

  .admin-app .dashboard-overview .chart-wrap:has(.chart-empty-msg:not(.d-none)) {
    height: auto;
    min-height: 2.5rem;
  }

  .admin-app .table-responsive {
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
  }
}

@media (max-width: 575.98px) {
  .admin-app a.ft-stat-card .ft-stat-value {
    font-size: clamp(0.82rem, 4vw, 1.05rem);
  }
}

@media (max-width: 991.98px) {
  #dash-stat-cards > .col:last-child {
    flex: 0 0 100%;
    max-width: 100%;
  }
}

/* ----------------------------------------
 * Katmanlar — modal, SweetAlert, dropdown, Tom Select (mobil)
 * Bootstrap 5.3 fullscreen-sm-down davranışı tüm diyaloglara
 * ---------------------------------------- */
.admin-app .modal-content {
  display: flex;
  flex-direction: column;
  max-height: min(100dvh, 100%);
}

.admin-app .modal-header,
.admin-app .modal-footer {
  flex-shrink: 0;
}

.admin-app .modal-body:not(.ft-crop-modal-body) {
  overflow-y: auto;
  overscroll-behavior: contain;
  -webkit-overflow-scrolling: touch;
}

.admin-app .ft-doc-viewer-body {
  height: min(70vh, 70dvh);
  min-height: 12rem;
}

.admin-app .modal-footer {
  flex-wrap: wrap;
  gap: 0.5rem;
}

.swal2-container {
  padding: 0.75rem !important;
}

.swal2-popup.ft-swal-popup,
.swal2-popup {
  max-width: calc(100vw - 1.5rem);
}

@media (max-width: 767.98px) {
  .admin-app .modal {
    --bs-modal-margin: 0;
    padding: 0 !important;
  }

  .admin-app .modal-dialog,
  .admin-app .modal-dialog.modal-sm,
  .admin-app .modal-dialog.modal-lg,
  .admin-app .modal-dialog.modal-xl {
    width: 100%;
    max-width: none;
    height: 100%;
    margin: 0;
  }

  .admin-app .modal-dialog-centered {
    min-height: 100%;
    align-items: stretch;
  }

  .admin-app .modal-content {
    min-height: 100%;
    height: 100%;
    max-height: 100dvh;
    border: 0;
    border-radius: 0;
  }

  .admin-app .modal-header {
    padding: 0.85rem 1rem;
    padding-top: max(0.85rem, env(safe-area-inset-top));
  }

  .admin-app .modal-title {
    font-size: 1.05rem;
    line-height: 1.3;
    padding-right: 0.5rem;
  }

  .admin-app .modal-header .btn-close {
    width: 2.5rem;
    height: 2.5rem;
    margin: 0;
    padding: 0.65rem;
  }

  .admin-app .modal-body:not(.ft-crop-modal-body) {
    flex: 1 1 auto;
    min-height: 0;
    padding: 0.85rem 1rem;
  }

  .admin-app .ft-crop-modal-body {
    overflow: hidden;
    flex: 1 1 0;
    min-height: 0;
    padding: 0;
  }

  .admin-app .modal-footer {
    padding: 0.75rem 1rem;
    padding-bottom: max(0.75rem, env(safe-area-inset-bottom));
    justify-content: stretch;
  }

  .admin-app .modal-footer > * {
    margin: 0;
  }

  .admin-app .modal-footer .btn {
    min-height: 44px;
    flex: 1 1 calc(50% - 0.35rem);
  }

  .admin-app .ft-doc-viewer-body {
    height: auto;
    flex: 1 1 auto;
    min-height: 0;
    padding: 0;
  }

  .admin-app .ft-crop-modal-content .modal-footer .btn {
    min-height: 44px;
    font-size: 0.88rem;
    padding: 0.5rem 0.75rem;
  }

  .admin-app .dropdown-menu {
    max-width: calc(100vw - 1rem);
  }

  .admin-app .user-dropdown .dropdown-menu {
    width: min(18rem, calc(100vw - 1rem));
  }

  .admin-app .ts-dropdown,
  .admin-app .ts-dropdown.single {
    max-width: min(100vw - 1rem, 28rem);
  }

  .admin-app .offcanvas {
    max-width: min(22rem, 92vw);
  }

  .swal2-container {
    padding: 0.65rem !important;
    padding-bottom: max(0.65rem, env(safe-area-inset-bottom)) !important;
  }

  .swal2-popup {
    width: 100% !important;
    max-width: 100% !important;
    margin: 0 !important;
  }

  .swal2-actions {
    flex-wrap: wrap !important;
    width: 100%;
    gap: 0.45rem;
    margin: 1rem 0 0 !important;
  }

  .swal2-actions .swal2-styled,
  .swal2-actions button {
    min-height: 44px;
    flex: 1 1 auto;
    margin: 0 !important;
  }

  .swal2-html-container,
  .swal2-title {
    word-break: break-word;
  }
}


