:root{
  /* โทนสีกรมราชทัณฑ์ */
  --brand:        #8B2332;   /* แดงเลือดหมู (พื้นหลังโลโก้) */
  --brand-2:      #A52A3A;   /* แดงสว่างขึ้นสำหรับ gradient */
  --brand-dark:   #6B1B27;   /* แดงเข้มสุดสำหรับ hover */
  --accent:       #C9A227;   /* ทองตามรูปสัญลักษณ์ */
  --accent-2:     #D4B447;   /* ทองสว่าง */
  --bg:           #F7F4EE;   /* ครีมอ่อนเข้ากับโทน */
  --paper:        #ffffff;
  --ink:          #2a1a1d;
}
body{
  font-family: "Sarabun", "Noto Sans Thai", system-ui, -apple-system, sans-serif;
  background:var(--bg);
  color:var(--ink);
}
.navbar-brand{ font-weight:700; }
.navbar-brand img{ height:36px; width:auto; vertical-align:middle; margin-right:.5rem; }

.brand-bg{
  background: linear-gradient(135deg, var(--brand-dark), var(--brand) 55%, var(--brand-2));
  color:#fff;
  border-bottom:3px solid var(--accent);
}
.btn-brand{
  background:var(--brand);
  border-color:var(--brand);
  color:#fff;
}
.btn-brand:hover, .btn-brand:focus{
  background:var(--brand-dark);
  border-color:var(--brand-dark);
  color:#fff;
}
.btn-outline-brand{
  color:var(--brand);
  border-color:var(--brand);
}
.btn-outline-brand:hover{
  background:var(--brand);
  color:#fff;
}
.btn-accent{
  background:var(--accent);
  border-color:var(--accent);
  color:#3c2d04;
  font-weight:600;
}
.btn-accent:hover{
  background:var(--accent-2);
  border-color:var(--accent-2);
  color:#3c2d04;
}
.text-brand{ color:var(--brand); }
.text-accent{ color:var(--accent); }
.bg-brand{ background:var(--brand)!important; color:#fff; }
.bg-accent{ background:var(--accent)!important; color:#3c2d04; }

.card-menu{ transition:transform .15s, box-shadow .15s; border:1px solid #efe5d6; }
.card-menu:hover{
  transform:translateY(-3px);
  box-shadow:0 .5rem 1rem rgba(139,35,50,.12);
  border-color:var(--accent);
}
.menu-img{ height:180px; object-fit:cover; background:#efe5d6; }
.menu-img.placeholder{
  display:flex; align-items:center; justify-content:center;
  color:#b89967; font-size:3rem;
}
.price-tag{
  color:var(--brand);
  font-weight:700;
  font-size:1.15rem;
}
.qty-control input{ width:60px; text-align:center; }
.status-badge{ font-size:.85rem; padding:.4em .7em; }
.cart-badge{ font-size:.7rem; }

.empty-state{
  text-align:center; padding:3rem 1rem; color:#8a6d4f;
}
/* icon ใหญ่ตัวแรกเท่านั้นที่จาง — ไม่ apply กับ icon ในปุ่ม */
.empty-state > i:first-child{
  font-size:4rem; opacity:.4; color:var(--brand);
  display:block; margin-bottom:.5rem;
}
.empty-state .btn i{ opacity:1; color:inherit; font-size:inherit; }

.receipt-page{
  background:#fff; padding:2rem; max-width:760px;
  margin:1rem auto; box-shadow:0 .25rem .75rem rgba(0,0,0,.08);
  border-top:6px solid var(--brand);
}
.receipt-page .receipt-logo{ height:80px; }

@media print{
  .no-print{ display:none!important; }
  body{ background:#fff; }
  .receipt-page{ box-shadow:none; margin:0; padding:1rem; border-top:6px solid var(--brand); }
}

/* ปุ่ม LINE คงสีเขียวประจำแบรนด์ LINE */
.line-btn{
  background:#06c755; color:#fff; border:0;
  padding:.6rem 1.5rem; border-radius:.5rem; font-weight:600;
}
.line-btn:hover{ background:#05a647; color:#fff; }

.qr-box{
  background:#fff; padding:1rem;
  border:2px solid var(--accent); border-radius:.5rem;
  text-align:center;
}
.slip-thumb{ max-height:220px; max-width:100%; border-radius:.5rem; }

/* Prisoner radio picker */
.prisoner-pick{
  position:relative;
  border-color:#e6dccb !important;
  background:#fff;
  transition:border-color .15s, background .15s, box-shadow .15s;
  margin-bottom:.5rem;
  padding-right:3rem !important;          /* เผื่อที่ให้เครื่องหมายถูก */
}
.prisoner-pick:hover{ border-color:var(--accent) !important; background:#fbf7f0; }
.prisoner-pick:has(input:checked){
  border-color:var(--brand) !important;
  background:#fbf3f4;
  box-shadow:0 0 0 2px rgba(139,35,50,.1);
}
.prisoner-pick .form-check-input{
  accent-color:var(--brand);
}
.prisoner-pick .form-check-input:checked{
  background-color:var(--brand);
  border-color:var(--brand);
}
/* เครื่องหมายถูก ✓ มุมขวา (เมื่อเลือก) */
.prisoner-pick::after{
  content:"\F26B";                        /* Bootstrap Icons check-circle-fill */
  font-family:"bootstrap-icons" !important;
  position:absolute;
  right:.75rem;
  top:50%;
  transform:translateY(-50%) scale(0);
  color:var(--brand);
  font-size:1.6rem;
  background:#fff;
  border-radius:50%;
  line-height:1;
  transition:transform .2s cubic-bezier(.34,1.56,.64,1);
  pointer-events:none;
}
.prisoner-pick:has(input:checked)::after{
  transform:translateY(-50%) scale(1);
}

/* Toast — โทนเข้ากับแบรนด์แดง-ทอง (override Bootstrap defaults) */
.toast-container .toast.text-bg-success,
.toast.text-bg-success{
  background-color:#1f6f4a !important;    /* เขียวเข้มอมเทา */
  background-image:none !important;
  color:#fff !important;
  border:0 !important;
  border-left:4px solid #C9A227 !important;
  --bs-bg-opacity:1 !important;
}
.toast-container .toast.text-bg-primary,
.toast.text-bg-primary{
  background-color:#8B2332 !important;    /* แดงเลือดหมู */
  background-image:none !important;
  color:#fff !important;
  border:0 !important;
  border-left:4px solid #C9A227 !important;
  --bs-bg-opacity:1 !important;
}
.toast-container .toast.text-bg-warning,
.toast.text-bg-warning{
  background-color:#b8870b !important;    /* ทองเข้ม */
  background-image:none !important;
  color:#fff !important;
  border:0 !important;
  border-left:4px solid #fff !important;
  --bs-bg-opacity:1 !important;
}
.toast-container .toast.text-bg-danger,
.toast.text-bg-danger{
  background-color:#7a1b25 !important;    /* แดงเข้มสุด */
  background-image:none !important;
  color:#fff !important;
  border:0 !important;
  border-left:4px solid #C9A227 !important;
  --bs-bg-opacity:1 !important;
}
/* ปุ่ม close ใน toast — สีขาวเสมอ */
.toast .btn-close{
  filter: invert(1) grayscale(100%) brightness(200%);
}

/* นาฟบาร์/footer link */
.navbar-dark .nav-link{ color:rgba(255,255,255,.92); }
.navbar-dark .nav-link:hover{ color:var(--accent-2); }
.navbar-dark .navbar-toggler{ border-color:rgba(255,255,255,.4); }

/* Table tweaks */
.table > :not(caption) > * > * { vertical-align: middle; }
thead.table-light th{ background:#f3eadb; color:#3a2925; }
.table-secondary{ background:#f3eadb !important; }

/* Badge accent variant */
.badge.bg-brand{ background:var(--brand)!important; }
.badge.bg-accent{ background:var(--accent)!important; color:#3c2d04; }

/* รายงาน */
.report-header{
  border-bottom:3px double var(--brand);
  padding-bottom:.75rem;
  margin-bottom:1rem;
}
.report-header img{ height:64px; }
