:root{
  --bs-body-font-family: "Noto Sans Lao", system-ui, -apple-system, "Segoe UI", Roboto, Arial, sans-serif;
  --lf-bg: #0b1324;
  --lf-glow-green: rgba(34,197,94,.18);
  --lf-glow-blue: rgba(59,130,246,.16);
}

/* Background */
body{
  background:
    radial-gradient(1200px circle at 18% 0%, var(--lf-glow-green) 0%, rgba(11,19,36,0) 55%),
    radial-gradient(900px circle at 88% 12%, var(--lf-glow-blue) 0%, rgba(11,19,36,0) 55%),
    linear-gradient(180deg, var(--lf-bg), var(--lf-bg));
  min-height: 100vh;
}

/* If owner uploaded a background, keep it and add subtle overlay glows */
body.lf-bg-img{
  background:
    radial-gradient(1200px circle at 18% 0%, var(--lf-glow-green) 0%, rgba(11,19,36,0) 55%),
    radial-gradient(900px circle at 88% 12%, var(--lf-glow-blue) 0%, rgba(11,19,36,0) 55%),
    linear-gradient(180deg, rgba(11,19,36,.70), rgba(11,19,36,.86)),
    var(--lf-brand-bg);
  background-repeat: no-repeat;
  background-size: auto, auto, auto, cover;
  background-position: 18% 0%, 88% 12%, 0 0, center;
  background-attachment: scroll, scroll, scroll, fixed;
}

/* Cards */
.card,
.lf-card{
  border-radius: 18px !important;
  border: 1px solid rgba(255,255,255,.10);
  box-shadow: 0 14px 40px rgba(0,0,0,.22);
}

/* Make classic cards slightly translucent when on dark background */
.card{
  background: rgba(255,255,255,.96);
}

/* Many internal pages use .lf-card without Bootstrap's .card */
.lf-card{
  background: rgba(255,255,255,.96);
}

/* Pills */
.lf-pill{
  display:inline-flex;
  align-items:center;
  gap:.35rem;
  padding:.16rem .6rem;
  border-radius: 999px;
  font-size: .78rem;
  font-weight: 600;
  background: rgba(34,197,94,.12);
  border: 1px solid rgba(34,197,94,.26);
  color: #166534;
}

/* Forms */
.form-control,
.form-select{
  border-radius: 12px;
}

/* Tables */
.table{
  border-color: rgba(0,0,0,.06);
}

/* Progress bars - rounded + gradient */
.progress{
  border-radius: 999px;
  overflow: hidden;
  background: rgba(15,23,42,.12);
}
.progress-bar{
  border-radius: 999px;
  font-weight: 700;
}
.progress-bar.bg-success{
  background: linear-gradient(90deg, #22c55e, #16a34a);
}
.progress-bar.bg-danger{
  background: linear-gradient(90deg, #ef4444, #b91c1c);
}
.progress-bar.bg-warning{
  background: linear-gradient(90deg, #f59e0b, #d97706);
}

/* Buttons */
.btn{
  border-radius: 12px;
}
.btn-success{
  border: 0;
  background: linear-gradient(90deg, #22c55e, #16a34a);
  box-shadow: 0 10px 20px rgba(34,197,94,.22);
}
.btn-success:hover{
  filter: brightness(.98);
}
.btn-primary{
  border: 0;
  background: linear-gradient(90deg, #3b82f6, #2563eb);
  box-shadow: 0 10px 20px rgba(59,130,246,.22);
}
.btn-primary:hover{ filter: brightness(.98); }

.btn-outline-secondary{
  border-radius: 12px;
}

/* Small helper */
.lf-muted{
  color: rgba(0,0,0,.62);
}

/* Print improvements */
@media print{
  body{ background: #fff !important; }
  .card, .lf-card{ box-shadow:none !important; border:1px solid #ddd !important; }
}
