html {
  font-size: 1.05rem !important;
}

@media (min-width: 768px) {
  html {
    font-size: 1.05rem !important;
  }
}

.btn:focus, .btn:active:focus, .btn-link.nav-link:focus, .form-control:focus, .form-check-input:focus, .form-select:focus {
  box-shadow: 0 0 0 0.06rem white, 0 0 0 0.12rem #258cfb;
}

.jinshan-search-input,
.jinshan-search-input:focus {
  border-color: #dee2e6 !important;
  box-shadow: none !important;
  outline: none !important;
}

.jinshan-search-input:focus {
  background-color: #fff;
}

.jinshan-visit-date-input {
  width: 220px;
  min-width: 220px;
}

.jinshan-flatpickr-input,
.jinshan-flatpickr-input:focus {
  cursor: pointer;
}

.jinshan-visit-keyword-input {
    width: 420px;
    min-width: 420px;
}

.jinshan-member-search-input {
    width: 340px;
    min-width: 340px;
}

.jinshan-visit-date-input.flatpickr-input,
.jinshan-visit-date-input.input,
.jinshan-flatpickr-input.flatpickr-input,
.jinshan-flatpickr-input.input {
  width: 220px;
  min-width: 220px;
}

.flatpickr-calendar .flatpickr-current-month {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 0.5rem;
  padding-inline: 2rem;
}

.flatpickr-calendar .flatpickr-current-month .flatpickr-monthDropdown-months {
  width: auto;
  padding-right: 1.2rem;
}

.flatpickr-calendar .flatpickr-current-month .numInputWrapper {
  display: inline-flex;
  align-items: center;
  width: 4.8rem;
}

.flatpickr-calendar .flatpickr-current-month .numInputWrapper .numInput.cur-year {
  display: inline-block;
  width: 100%;
  min-width: 4.8rem;
  text-align: center;
}

.jinshan-page-header-toolbar {
  flex-wrap: nowrap;
}

html {
  position: relative;
  min-height: 100%;
}

body {
  margin-bottom: 60px;
  font-size: 1.05rem !important;
  line-height: 1.65;
}

.form-floating > .form-control-plaintext::placeholder, .form-floating > .form-control::placeholder {
  color: var(--bs-secondary-color);
  text-align: end;
}

.form-floating > .form-control-plaintext:focus::placeholder, .form-floating > .form-control:focus::placeholder {
  text-align: start;
}

/* Shared list and table presentation */
#kt_app_content table.table {
  font-size: 1.05rem;
  line-height: 1.55;
}

#kt_app_content table.table > :not(caption) > * > * {
  padding: 0.6rem 1.25rem;
  vertical-align: middle;
}

#kt_app_content table.table thead th {
  color: #1f4b99;
  font-size: 1.05rem;
  font-weight: 700;
  letter-spacing: 0.01em;
}

#kt_app_content table.table tbody td {
  font-size: 1.05rem;
  font-weight: 500;
}

#kt_app_content table.table > tbody > tr:nth-of-type(odd) > * {
  background-color: #f8fbff;
}

#kt_app_content table.table tbody tr {
  min-height: 70px;
  transition: background-color 0.18s ease, box-shadow 0.18s ease;
}

#kt_app_content table.table tbody tr:hover {
  background-color: #eef5ff;
  box-shadow: inset 0 0 0 9999px rgba(31, 128, 255, 0.04);
}

#kt_app_content table.table tbody tr:hover > td,
#kt_app_content table.table tbody tr:hover > th {
  background-color: transparent;
}

#kt_app_content table.table img {
  border-radius: 0.75rem;
  object-fit: cover;
}

#kt_app_content table.table .badge {
  font-size: 1.05rem;
  padding: 0.55rem 1rem;
  line-height: 1.1;
}

#kt_app_content table.table .form-check-input {
  width: 1.15rem;
  height: 1.15rem;
  margin-top: 0;
}

#kt_app_content .table-responsive {
  border: 1px solid rgba(226, 232, 240, 0.95);
  border-radius: 1rem;
  overflow: hidden;
  background: #fff;
}

#kt_app_content .table-responsive.member-list-table {
  border: 0;
  border-radius: 0;
  background: transparent;
  overflow: visible;
}

#kt_app_content .table-responsive > .table {
  margin-bottom: 0;
}

#kt_app_content .jinshan-scroll-table {
  overflow-y: auto;
  overflow-x: auto;
  scrollbar-gutter: stable;
}

#kt_app_content .jinshan-scroll-table table thead th {
  position: sticky;
  top: 0;
  z-index: 2;
  background: #ffffff;
}

#kt_app_content .jinshan-scroll-table--permissions {
  max-height: 640px;
}

#kt_app_content .jinshan-scroll-table--accounts {
  max-height: 360px;
}

#kt_app_content .jinshan-scroll-table--visits {
  max-height: 520px;
}

#kt_app_content .jinshan-scroll-table--members {
  max-height: 520px;
}

#kt_app_content .jinshan-scroll-table--settings {
  max-height: 420px;
}

#kt_app_content .jinshan-members-table thead th {
  text-align: center;
}

#kt_app_content .jinshan-members-table td.min-w-180px {
  min-width: 180px;
}

/* DataTables layout */
#kt_app_content .dataTables_wrapper,
#kt_app_content .dt-container {
  font-size: 1.05rem;
}

#kt_app_content .dataTables_wrapper .dataTables_info,
#kt_app_content .dataTables_wrapper .dataTables_length,
#kt_app_content .dataTables_wrapper .dataTables_filter,
#kt_app_content .dataTables_wrapper .dataTables_paginate,
#kt_app_content .dt-container .dt-length,
#kt_app_content .dt-container .dt-search,
#kt_app_content .dt-container .dt-info,
#kt_app_content .dt-container .dt-paging {
  font-size: 1.05rem;
}

#kt_app_content .card-header .card-title,
#kt_app_content .card-body h1,
#kt_app_content .card-body h2,
#kt_app_content .card-body h3 {
  font-size: 1.05rem;
}

#kt_app_content .dataTables_wrapper .dataTables_length label,
#kt_app_content .dataTables_wrapper .dataTables_filter label,
#kt_app_content .dt-container .dt-length label,
#kt_app_content .dt-container .dt-search label {
  font-size: 1.05rem;
  font-weight: 600;
}

#kt_app_content .dataTables_wrapper .dataTables_length label,
#kt_app_content .dt-container .dt-length label {
  font-size: 0;
}

#kt_app_content .dataTables_wrapper .dataTables_length label.jinshan-length-menu,
#kt_app_content .dt-container .dt-length label.jinshan-length-menu {
  margin-left: 2.5rem;
}

#kt_app_content .dataTables_wrapper .dataTables_length label select,
#kt_app_content .dt-container .dt-length label select {
  font-size: 1.05rem;
}

#kt_app_content .dataTables_wrapper .dataTables_paginate .paginate_button,
#kt_app_content .dt-container .dt-paging .dt-paging-button {
  border-radius: 0.85rem;
  border: 1px solid transparent;
  background: transparent;
  color: #475467 !important;
  font-weight: 600;
  min-width: 2.8rem;
  height: 2.8rem;
  line-height: 2.8rem;
  padding: 0 0.95rem;
  margin: 0 0.15rem;
  font-size: 0;
}

#kt_app_content .dataTables_wrapper .dataTables_paginate .paginate_button.previous,
#kt_app_content .dataTables_wrapper .dataTables_paginate .paginate_button.next,
#kt_app_content .dataTables_wrapper .dataTables_paginate .paginate_button.first,
#kt_app_content .dataTables_wrapper .dataTables_paginate .paginate_button.last,
#kt_app_content .dt-container .dt-paging .dt-paging-button.previous,
#kt_app_content .dt-container .dt-paging .dt-paging-button.next,
#kt_app_content .dt-container .dt-paging .dt-paging-button.first,
#kt_app_content .dt-container .dt-paging .dt-paging-button.last {
  font-size: 1.25rem;
  line-height: 1;
  padding-top: 0.15rem;
}

#kt_app_content .dataTables_wrapper .dataTables_paginate .paginate_button.previous::before,
#kt_app_content .dataTables_wrapper .dataTables_paginate .paginate_button.next::before,
#kt_app_content .dataTables_wrapper .dataTables_paginate .paginate_button.first::before,
#kt_app_content .dataTables_wrapper .dataTables_paginate .paginate_button.last::before,
#kt_app_content .dt-container .dt-paging .dt-paging-button.previous::before,
#kt_app_content .dt-container .dt-paging .dt-paging-button.next::before,
#kt_app_content .dt-container .dt-paging .dt-paging-button.first::before,
#kt_app_content .dt-container .dt-paging .dt-paging-button.last::before {
  display: inline-block;
  font-size: 1.25rem;
  line-height: 1;
}

#kt_app_content .dataTables_wrapper .dataTables_paginate .paginate_button.previous::before,
#kt_app_content .dt-container .dt-paging .dt-paging-button.previous::before {
  content: "‹";
}

#kt_app_content .dataTables_wrapper .dataTables_paginate .paginate_button.next::before,
#kt_app_content .dt-container .dt-paging .dt-paging-button.next::before {
  content: "›";
}

#kt_app_content .dataTables_wrapper .dataTables_paginate .paginate_button.first::before,
#kt_app_content .dt-container .dt-paging .dt-paging-button.first::before {
  content: "«";
}

#kt_app_content .dataTables_wrapper .dataTables_paginate .paginate_button.last::before,
#kt_app_content .dt-container .dt-paging .dt-paging-button.last::before {
  content: "»";
}

#kt_app_content .dataTables_wrapper .dataTables_paginate .paginate_button.current,
#kt_app_content .dt-container .dt-paging .dt-paging-button.current {
  background: #1f80ff !important;
  border-color: #1f80ff !important;
  color: #fff !important;
  box-shadow: 0 10px 24px rgba(31, 128, 255, 0.25);
}

#kt_app_content .dataTables_wrapper .dataTables_paginate .paginate_button:hover,
#kt_app_content .dt-container .dt-paging .dt-paging-button:hover {
  background: transparent !important;
  border-color: transparent !important;
  color: inherit !important;
}

#kt_app_content .dataTables_wrapper .dataTables_paginate .paginate_button.disabled,
#kt_app_content .dt-container .dt-paging .dt-paging-button.disabled {
  opacity: 0.45;
  background: transparent !important;
  border-color: transparent !important;
}

#kt_app_content .dataTables_wrapper .dataTables_filter input,
#kt_app_content .dt-container .dt-search input {
  border-radius: 0.85rem;
  min-height: 3rem;
  padding: 0.75rem 1rem;
  border-color: #d0d5dd;
  font-size: 1.05rem;
}

/* Non-table list rows used in cards */
#kt_app_content .card-body .border-bottom.py-3,
#kt_app_content .card-body .border-bottom.py-4 {
  font-size: 1.05rem;
  padding-top: 0.5rem !important;
  padding-bottom: 0.5rem !important;
}

#kt_app_content .card-body .border-bottom.py-3 .fw-bold,
#kt_app_content .card-body .border-bottom.py-4 .fw-bold {
  font-size: 1.05rem;
}

#kt_app_content .card-body .border-bottom.py-3,
#kt_app_content .card-body .border-bottom.py-4,
#kt_app_content .card-body .d-flex.justify-content-between.border-bottom.py-3,
#kt_app_content .card-body .d-flex.justify-content-between.border-bottom.py-4 {
  transition: background-color 0.18s ease, box-shadow 0.18s ease;
  padding-top: 0.5rem !important;
  padding-bottom: 0.5rem !important;
}

#kt_app_content .card-body .border-bottom.py-3:hover,
#kt_app_content .card-body .border-bottom.py-4:hover,
#kt_app_content .card-body .d-flex.justify-content-between.border-bottom.py-3:hover,
#kt_app_content .card-body .d-flex.justify-content-between.border-bottom.py-4:hover {
  background-color: #eef5ff;
  box-shadow: inset 0 0 0 9999px rgba(31, 128, 255, 0.04);
}

/* Global navigation text */
#kt_app_sidebar,
#kt_app_header {
  font-size: 1.05rem;
}

#kt_app_sidebar .menu-link,
#kt_app_sidebar .menu-title,
#kt_app_sidebar .menu-state-bg .menu-link,
#kt_app_sidebar .menu-state-title .menu-link,
#kt_app_header .menu-link,
#kt_app_header .menu-title,
#kt_app_header .app-navbar .btn,
#kt_app_header .app-navbar [class*="btn-"] {
  font-size: 1.05rem;
}

#kt_app_sidebar .app-sidebar-brand-text {
  white-space: nowrap;
}

#kt_app_header .app-navbar .symbol-label {
  font-size: 1.05rem;
}

.jinshan-role-avatar {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  height: 100%;
  border-radius: 50%;
  border: 1px solid rgba(255, 255, 255, 0.82);
  box-shadow: 0 10px 24px rgba(15, 23, 42, 0.16), inset 0 1px 0 rgba(255, 255, 255, 0.32);
  overflow: hidden;
}

.jinshan-role-avatar__icon {
  width: 68%;
  height: 68%;
}

.jinshan-role-avatar--boss {
  background: linear-gradient(135deg, #1d4ed8 0%, #2563eb 46%, #fbbf24 100%);
  color: #fff8db;
}

.jinshan-role-avatar--manager {
  background: linear-gradient(135deg, #0f766e 0%, #14b8a6 55%, #99f6e4 100%);
  color: #ecfeff;
}

.jinshan-role-avatar--staff {
  background: linear-gradient(135deg, #475569 0%, #64748b 52%, #cbd5e1 100%);
  color: #f8fafc;
}

/* Shared sidebar density and stacking fixes */
@media (min-width: 992px) {
  #kt_app_sidebar {
    z-index: 111;
  }

  #kt_app_sidebar_logo {
    position: relative;
    z-index: 2;
    padding-top: 0.25rem;
    padding-bottom: 0.25rem;
  }

  [data-kt-app-sidebar-minimize="on"][data-kt-app-sidebar-hoverable="true"] .app-sidebar:not(:hover) .app-sidebar-brand-text {
    display: none;
  }

  #kt_app_sidebar_menu_scroll {
    margin-top: 0.75rem !important;
    margin-bottom: 0.75rem !important;
    margin-left: 0.75rem !important;
    margin-right: 0.75rem !important;
  }

  #kt_app_sidebar_menu .menu-item.pt-5 {
    padding-top: 0.75rem !important;
  }

  #kt_app_sidebar_menu .menu-content {
    padding-top: 0.125rem;
    padding-bottom: 0.125rem;
  }

  #kt_app_sidebar_menu .menu-heading {
    line-height: 1.15;
  }
}

/* User search modal */
#kt_modal_users_search .modal-title,
#kt_modal_users_search h1,
#kt_modal_users_search h3,
#kt_modal_users_search .fs-5,
#kt_modal_users_search .fs-6,
#kt_modal_users_search .text-muted,
#kt_modal_users_search .text-gray-800,
#kt_modal_users_search .badge,
#kt_modal_users_search .btn {
  font-size: 1.05rem;
}

#kt_modal_users_search [data-kt-search-element="results"] a,
#kt_modal_users_search [data-kt-search-element="suggestions"] a {
  font-size: 1.05rem;
}

#kt_modal_users_search [data-kt-search-element="results"] .fw-semibold,
#kt_modal_users_search [data-kt-search-element="suggestions"] .fw-semibold {
  font-size: 1.05rem;
}

#kt_modal_users_search [data-kt-search-element="results"] .form-select,
#kt_modal_users_search [data-kt-search-element="suggestions"] .form-select {
  font-size: 1.05rem;
}

#kt_modal_users_search [data-kt-search-element="empty"] .fs-3,
#kt_modal_users_search [data-kt-search-element="empty"] .fs-6 {
  font-size: 1.05rem;
}

/* Member modals */
#kt_modal_create_member,
#kt_modal_edit_member {
  font-size: 1.05rem;
}

#kt_modal_create_member .modal-title,
#kt_modal_edit_member .modal-title,
#kt_modal_create_member h1,
#kt_modal_create_member h2,
#kt_modal_edit_member h1,
#kt_modal_edit_member h2,
#kt_modal_create_member label,
#kt_modal_edit_member label,
#kt_modal_create_member .form-control,
#kt_modal_create_member .form-select,
#kt_modal_create_member .form-check-label,
#kt_modal_edit_member .form-control,
#kt_modal_edit_member .form-select,
#kt_modal_edit_member .form-check-label,
#kt_modal_create_member .btn,
#kt_modal_edit_member .btn {
  font-size: 1.05rem;
}

#kt_modal_create_member .form-control,
#kt_modal_create_member .form-select,
#kt_modal_edit_member .form-control,
#kt_modal_edit_member .form-select {
  min-height: 3rem;
}

#kt_modal_create_member .modal-dialog,
#kt_modal_edit_member .modal-dialog {
  max-width: 760px;
}

#kt_app_root,
#kt_app_root * {
  font-size: 1.05rem !important;
}

/* Member toggle buttons */
.member-toggle-group {
  display: flex;
  align-items: center;
  min-height: 2.75rem;
}

.member-toggle-btn {
  min-width: 7.5rem;
  padding: 0.7rem 1rem;
  border-radius: 0.85rem;
  font-weight: 700;
  line-height: 1.1;
}

.member-toggle-btn.btn-outline-warning {
  color: #b78103;
}

.btn-check:checked + .member-toggle-btn.btn-outline-danger,
.btn-check:active + .member-toggle-btn.btn-outline-danger,
.member-toggle-btn.btn-outline-danger:active,
.member-toggle-btn.btn-outline-danger:focus {
  color: #fff;
  background-color: #dc3545;
  border-color: #dc3545;
}

.btn-check:checked + .member-toggle-btn.btn-outline-warning,
.btn-check:active + .member-toggle-btn.btn-outline-warning,
.member-toggle-btn.btn-outline-warning:active,
.member-toggle-btn.btn-outline-warning:focus {
  color: #212529;
  background-color: #ffc107;
  border-color: #ffc107;
}

.btn-check:checked + .member-toggle-btn.btn-outline-success,
.btn-check:active + .member-toggle-btn.btn-outline-success,
.member-toggle-btn.btn-outline-success:active,
.member-toggle-btn.btn-outline-success:focus {
  color: #fff;
  background-color: #198754;
  border-color: #198754;
}

#kt_app_content .member-action-btn {
  width: 2.25rem;
  height: 2.25rem;
  padding: 0;
  border-radius: 0.65rem;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  line-height: 1;
  font-size: 0.875rem;
  flex-shrink: 0;
  overflow: visible;
}

#kt_app_content .member-action-btn * {
  margin: 0;
  padding: 0;
}

#kt_app_content .member-action-btn .ki-duotone,
#kt_app_content .member-action-btn .ki-outline,
#kt_app_content .member-action-btn .ki-solid,
#kt_app_content .member-action-btn i,
#kt_app_content .member-action-btn svg {
  width: 1.25rem;
  height: 1.25rem;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  line-height: 1 !important;
  margin: 0 !important;
  padding: 0 !important;
  font-size: 1.25rem !important;
  vertical-align: middle !important;
  position: relative !important;
}

#kt_app_content .member-action-btn .ki-duotone span,
#kt_app_content .member-action-btn i span {
  position: absolute !important;
  left: 0 !important;
  top: 0 !important;
  width: 100% !important;
  height: 100% !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
}

#kt_app_content .member-action-btn i {
  width: 1.25rem !important;
  height: 1.25rem !important;
}

#kt_app_content .member-action-btn.fs-2 {
  font-size: 0.875rem !important;
}

#kt_app_content .member-action-btn.btn-light-primary,
#kt_app_content .member-action-btn.btn-light-danger {
  border-width: 1px;
  border-style: solid;
}

#kt_app_content .member-action-btn.btn-light-primary {
  background-color: #f0f6ff !important;
  border-color: #c9dcff !important;
  color: #0d6efd !important;
}

#kt_app_content .member-action-btn.btn-light-primary:hover,
#kt_app_content .member-action-btn.btn-light-primary:focus,
#kt_app_content .member-action-btn.btn-light-primary:active,
#kt_app_content .member-action-btn.btn-light-primary.active {
  background-color: #d8e8ff !important;
  border-color: #9fc0ff !important;
  color: #084298 !important;
}

#kt_app_content .member-action-btn.btn-light-danger {
  background-color: #fff1f3 !important;
  border-color: #f7c7cf !important;
  color: #dc3545 !important;
}

#kt_app_content .member-action-btn.btn-light-danger:hover,
#kt_app_content .member-action-btn.btn-light-danger:focus,
#kt_app_content .member-action-btn.btn-light-danger:active,
#kt_app_content .member-action-btn.btn-light-danger.active {
  background-color: #ffdbe1 !important;
  border-color: #f1aeb5 !important;
  color: #a61b2b !important;
}
