/* VIRS WebAdmin - Tabler fluid vertical layout overrides */

/* tw-* legacy component mapping */
.tw-input {
  display: block;
  width: 100%;
  padding: 0.4375rem 0.75rem;
  font-size: 0.875rem;
  line-height: 1.5;
  color: var(--tblr-body-color);
  background-color: var(--tblr-bg-forms, #fff);
  border: 1px solid var(--tblr-border-color);
  border-radius: var(--tblr-border-radius);
  box-shadow: var(--tblr-box-shadow-input);
}
.tw-input:focus {
  border-color: var(--tblr-primary);
  outline: 0;
  box-shadow: 0 0 0 0.25rem rgba(var(--tblr-primary-rgb), 0.15);
}
.tw-input:disabled { background-color: var(--tblr-gray-100); color: var(--tblr-muted); }
.tw-select {
  display: block;
  width: 100%;
  padding: 0.4375rem 2rem 0.4375rem 0.75rem;
  font-size: 0.875rem;
  line-height: 1.5;
  color: var(--tblr-body-color);
  background-color: var(--tblr-bg-forms, #fff);
  border: 1px solid var(--tblr-border-color);
  border-radius: var(--tblr-border-radius);
  appearance: none;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20' fill='%236b7280'%3E%3Cpath d='M5.23 7.21a.75.75 0 011.06.02L10 11.168l3.71-3.938a.75.75 0 111.08 1.04l-4.25 4.5a.75.75 0 01-1.08 0l-4.25-4.5a.75.75 0 01.02-1.06z'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: right 0.5rem center;
  background-size: 1.25rem;
}
.tw-label { display: block; margin-bottom: 0.25rem; font-size: 0.875rem; font-weight: 500; color: var(--tblr-secondary); }
.tw-btn {
  display: inline-flex; align-items: center; justify-content: center;
  padding: 0.4375rem 1rem; font-size: 0.875rem; font-weight: 500;
  border-radius: var(--tblr-border-radius); border: 1px solid transparent;
  cursor: pointer; text-decoration: none;
}
.tw-btn-primary {
  display: inline-flex; align-items: center; justify-content: center;
  padding: 0.4375rem 1rem; font-size: 0.875rem; font-weight: 500;
  border-radius: var(--tblr-border-radius); border: 1px solid transparent;
  cursor: pointer; text-decoration: none; color: #fff; background-color: var(--tblr-primary);
}
.tw-btn-primary:hover { filter: brightness(0.92); color: #fff; }
.tw-btn-secondary { display: inline-flex; align-items: center; justify-content: center; padding: 0.4375rem 1rem; font-size: 0.875rem; font-weight: 500; border-radius: var(--tblr-border-radius); border: 1px solid var(--tblr-border-color); cursor: pointer; text-decoration: none; color: var(--tblr-body-color); background-color: var(--tblr-gray-100); }
.tw-btn-secondary:hover { background-color: var(--tblr-gray-200); color: var(--tblr-body-color); }
.tw-btn-success { display: inline-flex; align-items: center; justify-content: center; padding: 0.4375rem 1rem; font-size: 0.875rem; font-weight: 500; border-radius: var(--tblr-border-radius); border: 1px solid transparent; cursor: pointer; text-decoration: none; color: #fff; background-color: var(--tblr-success); }
.tw-btn-danger { display: inline-flex; align-items: center; justify-content: center; padding: 0.4375rem 1rem; font-size: 0.875rem; font-weight: 500; border-radius: var(--tblr-border-radius); border: 1px solid transparent; cursor: pointer; text-decoration: none; color: #fff; background-color: var(--tblr-danger); }
.tw-btn-warn { display: inline-flex; align-items: center; justify-content: center; padding: 0.4375rem 1rem; font-size: 0.875rem; font-weight: 500; border-radius: var(--tblr-border-radius); border: 1px solid transparent; cursor: pointer; text-decoration: none; color: #fff; background-color: var(--tblr-warning); }
.tw-btn-sm { padding: 0.25rem 0.75rem; font-size: 0.75rem; }
.tw-btn-xs { padding: 0.125rem 0.5rem; font-size: 0.75rem; }
.tw-input-sm { padding: 0.25rem 0.5rem; font-size: 0.75rem; }
.tw-card { background: var(--tblr-card-bg, #fff); border: 1px solid var(--tblr-border-color); border-radius: var(--tblr-border-radius-lg); box-shadow: var(--tblr-box-shadow-card); }
.tw-badge { display: inline-flex; align-items: center; padding: 0.125rem 0.625rem; font-size: 0.75rem; font-weight: 500; border-radius: 9999px; }

/* 页面主标题下方分隔线 */
.page-wrapper .page-header {
  border-bottom: var(--tblr-border-width) var(--tblr-border-style) var(--tblr-border-color);
  padding-bottom: var(--tblr-page-padding-y, 1.25rem);
  margin-bottom: 0;
}
.page-wrapper .page-header .page-subtitle {
  font-size: 0.875rem;
  margin-top: 0.25rem;
  line-height: 1.5;
}

/* Sidebar: Tabler 默认 overflow-y:scroll 会始终显示滚动条，改为 auto */
#admin-sidebar.navbar-vertical {
  overflow-y: auto;
  scrollbar-width: thin;
  scrollbar-color: rgba(255, 255, 255, 0.2) transparent;
}
#admin-sidebar.navbar-vertical::-webkit-scrollbar {
  width: 6px;
}
#admin-sidebar.navbar-vertical::-webkit-scrollbar-thumb {
  background: rgba(255, 255, 255, 0.2);
  border-radius: 3px;
}
#admin-sidebar.navbar-vertical::-webkit-scrollbar-thumb:hover {
  background: rgba(255, 255, 255, 0.35);
}

#admin-sidebar .container-fluid {
  display: flex;
  flex-direction: column;
  min-height: 100%;
}

/* Vertical navbar dropdown submenu in sidebar（与 Tabler 官方缩进一致，避免分组标题错位） */
#admin-sidebar {
  --admin-sidebar-subnav-indent: calc(calc(calc(var(--tblr-page-padding) * 2) / 2) + 1.75rem);
}

.navbar-vertical .navbar-nav .dropdown-menu {
  position: static !important;
  transform: none !important;
  box-shadow: none;
  background: transparent;
  border: 0;
  padding: 0;
  margin: 0;
}

#admin-sidebar.navbar-vertical.navbar-expand-lg .navbar-collapse .dropdown-menu .dropdown-item,
.navbar-vertical .navbar-nav .dropdown-item {
  border-radius: var(--tblr-border-radius);
  padding-top: 0.35rem;
  padding-bottom: 0.35rem;
  padding-right: 0.75rem;
  padding-left: var(--admin-sidebar-subnav-indent);
  color: rgba(255, 255, 255, 0.72);
}
.navbar-vertical .navbar-nav .dropdown-item:hover,
.navbar-vertical .navbar-nav .dropdown-item:focus {
  color: #fff;
  background: rgba(255, 255, 255, 0.08);
}
.navbar-vertical .navbar-nav .dropdown-item.active {
  color: #fff;
  background: rgba(255, 255, 255, 0.14);
  font-weight: 500;
}
.navbar-vertical .navbar-nav .dropdown-header {
  color: rgba(255, 255, 255, 0.45);
  font-size: 0.65rem;
  font-weight: 600;
  letter-spacing: 0.03em;
  padding: 0.45rem 0.75rem 0.15rem var(--admin-sidebar-subnav-indent);
  margin: 0;
}
.navbar-vertical .navbar-nav .dropdown-divider {
  margin: 0.35rem 0.75rem 0.35rem var(--admin-sidebar-subnav-indent);
  border-color: rgba(255, 255, 255, 0.1);
  opacity: 1;
}
.navbar-vertical .navbar-collapse {
  display: flex;
  flex-direction: column;
  flex: 1 1 auto;
}

#admin-sidebar .navbar-nav {
  flex: 1 1 auto;
}

/* Sidebar brand */
#admin-sidebar .sidebar-brand-link { color: inherit; text-decoration: none; font-weight: 700; font-size: 1.125rem; }
#admin-sidebar .sidebar-brand-suffix { margin-left: 0.25rem; }

/* 侧栏图标：官方 demo 为 24px SVG，ti 字体图标需显式放大 */
#admin-sidebar .nav-link-icon {
  width: 1.5rem;
  height: 1.5rem;
  margin-right: 0.5rem;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
}
#admin-sidebar .nav-link-icon .ti {
  font-size: 1.5rem;
  width: 1.5rem;
  height: 1.5rem;
  line-height: 1;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  stroke-width: 0;
}

#admin-sidebar .nav-link {
  padding-top: 0.55rem;
  padding-bottom: 0.55rem;
}

/* 侧栏底部用户区 */
#admin-sidebar .sidebar-footer {
  border-top: 1px solid rgba(255, 255, 255, 0.08);
  flex-shrink: 0;
}
#admin-sidebar .sidebar-footer .btn-ghost-danger {
  color: rgba(255, 255, 255, 0.72);
}
#admin-sidebar .sidebar-footer .btn-ghost-danger:hover {
  color: var(--tblr-danger);
  background: rgba(var(--tblr-danger-rgb), 0.12);
}

/* 页面主卡片：内嵌筛选区/表格区 */
.page-main-card {
  box-shadow: var(--tblr-box-shadow-card);
}
.page-main-card > .card-body > .card {
  box-shadow: none;
  border: 1px solid var(--tblr-border-color);
  margin-bottom: 1rem;
}
.page-main-card > .card-body > .card:last-child {
  margin-bottom: 0;
}
.page-main-card .card .table {
  margin-bottom: 0;
}
.page-main-card .card .table thead th {
  background: var(--tblr-gray-50);
  font-size: 0.75rem;
  text-transform: uppercase;
  color: var(--tblr-secondary);
  border-bottom-width: 1px;
}

/* Lightbox dark backdrop */
#lb-overlay.show { background: rgba(0, 0, 0, 0.85); }
#lb-overlay .modal-content { background: transparent; }

/* Login / auth pages (Tabler sign-up layout) */
.page-center {
  min-height: 100vh;
}
.auth-page .card-md {
  box-shadow: var(--tblr-box-shadow-card);
}
.page-center .container-tight {
  max-width: 30rem;
}
.page-center .input-group-flat .input-group-text {
  background: transparent;
}
.page-center .validation-summary-valid {
  display: none;
}
.page-center .alert:empty {
  display: none;
}

/* Legacy tables inside cards */
.tw-card table thead { background: var(--tblr-gray-50); }
.tw-card table th, .tw-card table td { border-bottom: 1px solid var(--tblr-border-color); }
