/* ===============================
/var/www/app2/static/css/base.css
APP2 – Global base
================================ */

body {
  font-family: "Inter", "Segoe UI", Arial, sans-serif;
  font-size: .95rem;
  background-color: #f8f9fa;
  color: #212529;
}

.container,
.content-wrapper {
  margin-top: 1rem;
  margin-bottom: 1rem;
}

/* Utility nhỏ */
.text-muted-small {
  font-size: .8rem;
  color: #6c757d;
}

/* Raw text area */
#raw_text {
  min-height: 6rem;
  box-sizing: border-box;
  overflow-y: hidden;
}

/* ===============================
User login status on navbar
================================ */
.qnb-user-nav {
  gap: .45rem;
  white-space: nowrap;
}

.qnb-user-label {
  display: inline-flex;
  align-items: center;
  gap: .15rem;
  padding: .25rem .55rem;
  border: 1px solid #dee2e6;
  border-radius: 999px;
  background: #fff;
  color: #495057;
  font-size: .875rem;
  line-height: 1.2;
}

.qnb-user-label small {
  font-size: .75rem;
}

.qnb-user-action {
  padding: .25rem .55rem !important;
  border-radius: 999px;
  background: #f1f3f5;
  color: #212529 !important;
  font-size: .875rem;
  line-height: 1.2;
}

.qnb-user-action:hover {
  background: #e9ecef;
  color: #000 !important;
}

@media (max-width: 991.98px) {
  .qnb-user-nav {
    align-items: flex-start !important;
    margin-bottom: .25rem;
  }

  .qnb-user-label,
  .qnb-user-action {
    width: max-content;
  }
}

/* ===============================
Back to top button
================================ */
.qnb-back-to-top {
  position: fixed;
  right: 18px;
  bottom: 18px;
  z-index: 1050;

  width: 42px;
  height: 42px;
  border-radius: 999px;

  border: 1px solid rgba(13, 110, 253, .25);
  background: #0d6efd;
  color: #fff;

  display: none;
  align-items: center;
  justify-content: center;

  box-shadow: 0 8px 22px rgba(0, 0, 0, .18);
  cursor: pointer;

  transition: opacity .18s ease, transform .18s ease;
}

.qnb-back-to-top:hover {
  transform: translateY(-2px);
}

.qnb-back-to-top.is-visible {
  display: flex;
}

@media (max-width: 576px) {
  .qnb-back-to-top {
    right: 14px;
    bottom: 14px;
    width: 40px;
    height: 40px;
  }
}

/* ===============================
Dashboard
================================ */
.qnb-stat-card {
  border: 1px solid rgba(0, 0, 0, .06) !important;
  transition: transform .15s ease, box-shadow .15s ease;
}

.qnb-stat-card:hover {
  transform: translateY(-1px);
  box-shadow: 0 .5rem 1.25rem rgba(0, 0, 0, .08) !important;
}

.qnb-stat-icon {
  width: 42px;
  height: 42px;
  border-radius: 14px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: 1.25rem;
  flex: 0 0 auto;
}

.qnb-module-card {
  display: flex;
  align-items: center;
  gap: .65rem;
  min-height: 46px;
  padding: .75rem .9rem;
  border: 1px solid #e5e7eb;
  border-radius: .75rem;
  background: #fff;
  color: #212529;
  text-decoration: none;
  font-weight: 500;
  transition: background .15s ease, border-color .15s ease, transform .15s ease;
}

.qnb-module-card:hover {
  background: #f8fafc;
  border-color: #cbd5e1;
  color: #0d6efd;
  transform: translateY(-1px);
}

.qnb-module-card i {
  font-size: 1.15rem;
}

.qnb-dashboard-table thead th {
  font-size: .82rem;
  text-transform: uppercase;
  color: #6c757d;
  letter-spacing: .02em;
}

.qnb-dashboard-table tbody td {
  border-color: #edf0f2;
}

.qnb-dashboard-table code {
  color: #0d6efd;
  background: #f1f6ff;
  border: 1px solid #dbeafe;
  padding: .12rem .35rem;
  border-radius: .35rem;
}

@media (max-width: 767.98px) {
  .qnb-stat-icon {
    width: 38px;
    height: 38px;
    border-radius: 12px;
    font-size: 1.1rem;
  }

  .qnb-dashboard-table {
    min-width: 760px;
  }
}


/* APP2_GEOMETRY_UTILITIES_V1 */
.app2-geo-minw-110px {
  min-width: 110px !important;
}
.app2-geo-minw-120px {
  min-width: 120px !important;
}
.app2-geo-minw-130px {
  min-width: 130px !important;
}
.app2-geo-minw-140px {
  min-width: 140px !important;
}
.app2-geo-minw-160px {
  min-width: 160px !important;
}
.app2-geo-minw-220px {
  min-width: 220px !important;
}
.app2-geo-minw-260px {
  min-width: 260px !important;
}
.app2-geo-w-110px {
  width: 110px !important;
}
.app2-geo-w-120px {
  width: 120px !important;
}
.app2-geo-w-130px {
  width: 130px !important;
}
.app2-geo-w-140px {
  width: 140px !important;
}
.app2-geo-w-150px {
  width: 150px !important;
}
.app2-geo-w-160px {
  width: 160px !important;
}
.app2-geo-w-170px {
  width: 170px !important;
}
.app2-geo-w-220px {
  width: 220px !important;
}
.app2-geo-w-30pct {
  width: 30% !important;
}
.app2-geo-w-44px {
  width: 44px !important;
}
.app2-geo-w-50px {
  width: 50px !important;
}
.app2-geo-w-55px {
  width: 55px !important;
}
.app2-geo-w-60px {
  width: 60px !important;
}
.app2-geo-w-70px {
  width: 70px !important;
}
.app2-geo-w-80px {
  width: 80px !important;
}
.app2-geo-w-85px {
  width: 85px !important;
}
.app2-geo-w-90px {
  width: 90px !important;
}
/* /APP2_GEOMETRY_UTILITIES_V1 */


/* APP2_SPECIAL_STYLE_CLEANUP_V1 */
.app2-hidden-print-frame {
  display: none;
  width: 0;
  height: 0;
  border: 0;
  position: absolute;
  left: -9999px;
  top: -9999px;
}
/* /APP2_SPECIAL_STYLE_CLEANUP_V1 */


/* APP2_UNIQUE_SEMANTIC_BASE_V1 */
.auth-login-container {
  max-width: 400px;
}

.users-status-col {
  width: 190px;
}

.users-role-change-col {
  width: 270px;
}

.users-password-reset-col {
  width: 290px;
}
/* /APP2_UNIQUE_SEMANTIC_BASE_V1 */


/* APP2_UNIQUE_REMAINING_BASE_V1 */
.text-import-discount-col {
  min-width: 75px;
}
/* /APP2_UNIQUE_REMAINING_BASE_V1 */


/* APP2_FINAL_STYLE_BASE_V1 */
.auth-login-form {
  max-width: 360px;
  margin: auto;
}

.company-print-fallback-logo {
  font-size: 52px;
  font-weight: 800;
  color: #ffc400;
}
/* /APP2_FINAL_STYLE_BASE_V1 */
