/* Quality Partner — theme baseline. Primary purple, blue links, gold accent only. */
@font-face {
  font-family: "Google Sans";
  src: url("../fonts/GoogleSans-Thai-Latin-VF.woff2") format("woff2");
  font-weight: 400 700;
  font-style: normal;
  font-display: swap;
}

:root {
  --qp-primary: #4B235E;
  --qp-primary-dark: #3a1b49;
  --qp-text: #20242C;
  --qp-link: #2F66A3;
  --qp-bg: #FFFFFF;
  --qp-accent: #F2B544;
  --qp-border: #e6e1ea;
  --qp-soft: #f7f4f9;

  --bs-body-font-family: "Google Sans", system-ui, sans-serif;
  --bs-body-color: var(--qp-text);
  --bs-body-bg: var(--qp-bg);
  --bs-link-color: var(--qp-link);
  --bs-link-hover-color: #24507f;
  --bs-primary: var(--qp-primary);
  --bs-primary-rgb: 75, 35, 94;
  --bs-border-color: var(--qp-border);
  --bs-heading-color: var(--qp-primary);
}

body { font-family: var(--bs-body-font-family); color: var(--qp-text); background: var(--qp-bg); }
h1, h2, h3, h4, h5, h6, .qp-heading { color: var(--qp-primary); font-weight: 700; }
a { color: var(--qp-link); }

.btn-primary {
  --bs-btn-bg: var(--qp-primary); --bs-btn-border-color: var(--qp-primary);
  --bs-btn-hover-bg: var(--qp-primary-dark); --bs-btn-hover-border-color: var(--qp-primary-dark);
  --bs-btn-active-bg: var(--qp-primary-dark); --bs-btn-active-border-color: var(--qp-primary-dark);
  --bs-btn-disabled-bg: var(--qp-primary); --bs-btn-disabled-border-color: var(--qp-primary);
}
.btn-outline-primary {
  --bs-btn-color: var(--qp-primary); --bs-btn-border-color: var(--qp-primary);
  --bs-btn-hover-bg: var(--qp-primary); --bs-btn-hover-border-color: var(--qp-primary);
  --bs-btn-active-bg: var(--qp-primary); --bs-btn-active-border-color: var(--qp-primary);
}
.form-control:focus, .form-select:focus, .form-check-input:focus {
  border-color: var(--qp-primary); box-shadow: 0 0 0 .2rem rgba(75, 35, 94, .15);
}
.form-check-input:checked { background-color: var(--qp-primary); border-color: var(--qp-primary); }

.qp-navbar { border-bottom: 3px solid var(--qp-accent); background: #fff; }
.qp-navbar .navbar-brand { color: var(--qp-primary); font-weight: 700; }
.qp-brand-sub { color: var(--qp-text); font-weight: 400; }
.qp-navbar .nav-link { color: var(--qp-text); }
.qp-navbar .nav-link.active { color: var(--qp-primary); font-weight: 700; }
.qp-footer { border-top: 1px solid var(--qp-border); margin-top: 2rem; }

.qp-card { border: 1px solid var(--qp-border); border-radius: .75rem; background: #fff; }
.qp-card .card-header { background: var(--qp-soft); border-bottom: 1px solid var(--qp-border); color: var(--qp-primary); font-weight: 700; }

.qp-stat { border-left: 4px solid var(--qp-accent); }
.qp-stat .qp-stat-num { font-size: 2rem; font-weight: 700; color: var(--qp-primary); line-height: 1; }

.qp-login-wrap { min-height: 100vh; display: flex; align-items: center; background: var(--qp-soft); }
.qp-login-card { max-width: 420px; width: 100%; margin: 0 auto; }

.qp-table th { color: var(--qp-primary); white-space: nowrap; }
pre.qp-json { white-space: pre-wrap; word-break: break-word; font-size: .8rem; margin: 0; }

/* honeypot field: invisible to people, tempting to bots (not display:none, which some bots skip) */
.qp-hp { position: absolute; left: -10000px; top: auto; width: 1px; height: 1px; overflow: hidden; }
