/* =====================================================================
   GoldBroker : ธีมหลัก
   ---------------------------------------------------------------------
   ฟอนต์ Kanit โหลดจาก Google Fonts ผ่านแท็ก <link> ในไฟล์เลย์เอาต์
   (inc/layout_agent.php, inc/layout_admin.php, login.php, admin/login.php)
   ===================================================================== */
:root{
  --gb-gold:#c9962b;
  --gb-gold-dark:#a67c1f;
  --gb-navy:#16233c;
  --gb-navy-2:#1f2f4f;
  --gb-bg:#f4f6fa;
  --gb-line:#e6e9f0;
}

/* ---------- ฟอนต์หลักของระบบ : Kanit ----------
   ใช้ !important เพื่อให้ชนะกฎของ Bootstrap ที่ตั้ง --bs-body-font-family ไว้
   ยกเว้นไอคอน Bootstrap Icons ที่ต้องใช้ฟอนต์ของตัวเอง                     */
:root{ --gb-font:'Kanit',system-ui,-apple-system,'Segoe UI',sans-serif; }

html, body,
h1,h2,h3,h4,h5,h6, p, span, div, a, li, label, small, strong, b, em,
input, select, textarea, button, optgroup, option,
table, thead, tbody, tr, th, td,
.btn, .form-control, .form-select, .form-label, .form-text, .input-group-text,
.modal, .modal-title, .dropdown-menu, .dropdown-item, .nav-link, .nav-tabs,
.badge, .alert, .card, .card-header, .pagination, .breadcrumb, .list-group-item,
.tooltip, .popover, .accordion{
  font-family: var(--gb-font) !important;
}

/* ไอคอนต้องไม่ถูกทับ */
.bi, .bi::before, [class^="bi-"]::before, [class*=" bi-"]::before{
  font-family: bootstrap-icons !important;
}

body{
  background:var(--gb-bg); color:#24303f;
  font-size:.92rem; font-weight:300; letter-spacing:.1px;
}

h1,h2,h3,h4,h5,h6,.fw-bold,.fw-semibold,strong,b,th,.btn{ font-weight:500; }
.fw-bold,strong,b{ font-weight:600; }

a{ text-decoration:none; }

/* ---------- Brand & Logo ---------- */
.gb-brand{ font-weight:600; letter-spacing:.3px; }
.gb-brand span{ color:var(--gb-gold); }

.gb-logo-nav{ max-height:38px; max-width:170px; object-fit:contain; }
.gb-logo-side{ max-height:44px; max-width:190px; object-fit:contain; }
.gb-logo-login{ max-height:74px; max-width:230px; object-fit:contain; margin:0 auto 1rem; display:block; }
.gb-logo-print{ max-height:64px; max-width:220px; object-fit:contain; }

/* ---------- โลโก้บริษัทประกัน ---------- */
.ins-logo{ display:inline-flex; align-items:center; justify-content:center;
  width:104px; background:#fff; border:1px solid var(--gb-line); border-radius:8px;
  overflow:hidden; padding:4px; }
.ins-logo img{ max-width:100%; max-height:100%; object-fit:contain; }
.ins-logo-text{ background:linear-gradient(135deg,#16233c,#3b527d); color:#fff;
  border:0; font-weight:600; font-size:.82rem; text-align:center; line-height:1.15; padding:4px 6px; }

/* ---------- ตารางเลือกบริษัทประกัน ---------- */
.ins-table thead th{ background:#f7f9fc; font-weight:500; }
.ins-table td{ vertical-align:middle; }
.ins-table tbody tr:hover{ background:#fffdf7; }
.ins-amount{ font-size:1.02rem; font-weight:500; font-variant-numeric:tabular-nums; }
.ins-amount.zero{ color:#d13b3b; }
.ins-amount.ok{ color:#1f7a3d; }
.badge-open{ background:#4a9d5f; color:#fff; font-weight:500; padding:.4rem .7rem; border-radius:5px; }
.badge-closed{ background:#adb5bd; color:#fff; font-weight:500; padding:.4rem .7rem; border-radius:5px; }
.btn-issue{ background:#2f7fd8; border-color:#2f7fd8; color:#fff; font-weight:500;
  padding:.42rem 1.05rem; border-radius:5px; white-space:nowrap; }
.btn-issue:hover{ background:#2468b4; border-color:#2468b4; color:#fff; }
.ins-note{ color:#5b6875; font-size:.86rem; }

/* ---------- ฟอร์มกรมธรรม์ (สไตล์เดียวกับระบบบริษัทประกัน) ---------- */
.pol-wrap{ background:#fff; border:1px solid #d9dde5; border-radius:6px; overflow:hidden;
  box-shadow:0 2px 10px rgba(20,30,50,.06); }
.pol-titlebar{ background:#3c3c3c; color:#fff; padding:.5rem .9rem; font-size:.86rem;
  display:flex; align-items:center; gap:.5rem; flex-wrap:wrap; }
.pol-titlebar .t-main{ font-weight:500; }
.pol-titlebar .t-credit{ color:#ffd479; }
.pol-titlebar .t-right{ margin-left:auto; display:flex; gap:.4rem; align-items:center; opacity:.75; }
.pol-body{ padding:1.1rem 1.15rem .4rem; background:#fff; }
.pol-sec{ color:#c0392b; font-weight:500; margin:1.4rem 0 .35rem; }
.pol-sec-blue{ color:#2f7fd8; font-weight:500; margin:1.4rem 0 .35rem; }
.pol-hr{ border-top:1px dashed #d0d5de; margin:.15rem 0 1rem; }
.pol-body label.form-label{ font-size:.82rem; color:#4a5568; margin-bottom:.15rem; font-weight:400; }
.pol-body .req{ color:#e03131; letter-spacing:-1px; }
.pol-body .form-control,
.pol-body .form-select{ font-size:.86rem; padding:.42rem .6rem; border-color:#ced4da; border-radius:3px; }
.pol-body .form-control:disabled,
.pol-body .form-control[readonly]{ background:#eceff3; color:#5b6875; }
.pol-body .input-group-text{ background:#f1f3f6; border-color:#ced4da; border-radius:3px;
  padding:.42rem .55rem; color:#7b8794; }
.pol-body .row{ --bs-gutter-y:.65rem; }
.pol-foot{ background:#f4f6f9; border-top:1px solid #dfe3ea; padding:.7rem .9rem;
  display:flex; gap:.5rem; align-items:center; }
.btn-save{ background:#2f7fd8; border-color:#2f7fd8; color:#fff; min-width:86px; }
.btn-save:hover{ background:#2468b4; border-color:#2468b4; color:#fff; }
.btn-back{ background:#f0a52b; border-color:#f0a52b; color:#fff; min-width:70px; }
.btn-back:hover{ background:#d68f1e; border-color:#d68f1e; color:#fff; }
.premium-box .form-control{ color:#c0392b; font-weight:500; text-align:left; }
.th-year{ font-size:.75rem; color:#8d99a6; }

/* ---------- กรอบกลุ่มข้อมูลในฟอร์มกรมธรรม์ ---------- */
.pol-group{ border:1px solid #d7dce4; border-radius:8px; margin-bottom:1.15rem; background:#fff; }
.pol-group > .pg-head{
  background:#f5f7fa; border-bottom:1px solid #e2e6ec; border-radius:8px 8px 0 0;
  padding:.55rem .9rem; font-weight:500; color:#2c3a4d;
  display:flex; align-items:center; gap:.5rem; flex-wrap:wrap; }
.pol-group > .pg-head .pg-ico{ width:26px; height:26px; border-radius:6px; display:grid; place-items:center;
  background:var(--gb-navy); color:#fff; font-size:.85rem; }
.pol-group > .pg-head .pg-hint{ margin-left:auto; font-weight:300; font-size:.8rem; color:#8d99a6; }
.pol-group > .pg-body{ padding:.9rem .9rem .95rem; }

/* กลุ่มย่อยภายในกรอบ */
.pol-sub{ border:1px dashed #d7dce4; border-radius:6px; padding:.75rem .8rem .8rem; margin-top:.85rem;
  background:#fbfcfe; }
.pol-sub > .ps-title{ font-size:.84rem; font-weight:500; color:#5b6875; margin-bottom:.5rem;
  display:flex; align-items:center; gap:.4rem; }
.pol-sub-corp{ border-color:#bcd6f2; background:#f5f9fe; }
.pol-sub-corp > .ps-title{ color:#2f7fd8; }
.pol-sub-premium{ border-color:#f0d3a8; background:#fffaf1; }
.pol-sub-premium > .ps-title{ color:#a67c1f; }

/* ---------- ปุ่มเช็คค่าเบี้ย + แผงความคุ้มครอง (ภาคสมัครใจ) ---------- */
.btn-quote{ background:#8b1a2b; border-color:#8b1a2b; color:#fff; font-weight:500; min-width:110px; }
.btn-quote:hover{ background:#71121f; border-color:#71121f; color:#fff; }
.quote-panel{ background:#f7f8fa; border:1px solid #dfe3ea; border-radius:6px;
  margin-top:1rem; padding:1rem .95rem .3rem; }
.quote-panel .cov-title{ color:#2f7fd8; font-weight:500; margin:.9rem 0 .2rem; }
.quote-panel .cov-hr{ border-top:1px solid #e2e6ec; margin:.1rem 0 .9rem; }
.quote-panel .form-control{ background:#eceff3; color:#3a4657; font-weight:500; }
.plan-pick{ cursor:pointer; }
.plan-pick.selected{ box-shadow:0 0 0 2px #2f7fd8 inset; }

/* ---------- Navbar (หน้าบ้าน) ---------- */
.gb-navbar{
  background:linear-gradient(100deg,var(--gb-navy) 0%,var(--gb-navy-2) 100%);
  box-shadow:0 2px 14px rgba(22,35,60,.18);
}
.gb-navbar .nav-link{ color:rgba(255,255,255,.82); font-weight:500; border-radius:8px; padding:.45rem .85rem; }
.gb-navbar .nav-link:hover{ color:#fff; background:rgba(255,255,255,.10); }
.gb-navbar .nav-link.active{ color:#fff; background:rgba(201,150,43,.9); }

/* ---------- Sidebar (หลังบ้าน) ---------- */
.gb-sidebar{
  width:250px; min-height:100vh; position:fixed; top:0; left:0; z-index:1040;
  background:linear-gradient(180deg,var(--gb-navy) 0%,#101a2e 100%);
  padding:0 0 2rem; overflow-y:auto;
}
.gb-sidebar .sb-head{ padding:1.15rem 1.25rem; border-bottom:1px solid rgba(255,255,255,.08); }
.gb-sidebar .sb-head .gb-brand{ color:#fff; font-size:1.2rem; }
.gb-sidebar .sb-title{ color:rgba(255,255,255,.35); font-size:.72rem; letter-spacing:1px;
  text-transform:uppercase; padding:1.1rem 1.25rem .35rem; }
.gb-sidebar a.sb-link{
  display:flex; align-items:center; gap:.7rem; color:rgba(255,255,255,.72);
  padding:.6rem 1.25rem; font-size:.92rem; border-left:3px solid transparent;
}
.gb-sidebar a.sb-link:hover{ background:rgba(255,255,255,.06); color:#fff; }
.gb-sidebar a.sb-link.active{ background:rgba(201,150,43,.16); color:#fff; border-left-color:var(--gb-gold); }
.gb-sidebar a.sb-link i{ width:20px; text-align:center; font-size:1rem; }

.gb-main{ margin-left:250px; }
@media (max-width:991.98px){
  .gb-sidebar{ transform:translateX(-100%); transition:.25s; }
  .gb-sidebar.show{ transform:none; }
  .gb-main{ margin-left:0; }
}

.gb-topbar{ background:#fff; border-bottom:1px solid var(--gb-line); padding:.7rem 1.25rem; }

/* ---------- Card ---------- */
.card{ border:1px solid var(--gb-line); border-radius:14px; box-shadow:0 1px 3px rgba(20,30,50,.04); }
.card-header{ background:#fff; border-bottom:1px solid var(--gb-line); font-weight:600;
  border-radius:14px 14px 0 0 !important; padding:.85rem 1.1rem; }

/* ---------- Stat tile ---------- */
.stat{ border-radius:14px; padding:1.15rem 1.25rem; background:#fff;
  border:1px solid var(--gb-line); height:100%; }
.stat .lbl{ color:#7b8794; font-size:.82rem; margin-bottom:.35rem; }
.stat .val{ font-size:1.6rem; font-weight:700; line-height:1.15; }
.stat .sub{ font-size:.8rem; color:#94a1ae; }
.stat .ico{ width:44px; height:44px; border-radius:12px; display:grid; place-items:center;
  font-size:1.25rem; }
.stat-gold{ background:linear-gradient(120deg,#c9962b,#e0b354); color:#fff; border:0; }
.stat-gold .lbl,.stat-gold .sub{ color:rgba(255,255,255,.85); }
.stat-navy{ background:linear-gradient(120deg,#16233c,#2c4062); color:#fff; border:0; }
.stat-navy .lbl,.stat-navy .sub{ color:rgba(255,255,255,.8); }

/* ---------- Table ---------- */
.table{ font-size:.9rem; }
.table > thead th{ background:#f7f9fc; color:#5b6875; font-weight:600;
  border-bottom:1px solid var(--gb-line); white-space:nowrap; }
.table > tbody td{ vertical-align:middle; }

/* ---------- Button ---------- */
.btn-gold{ background:var(--gb-gold); border-color:var(--gb-gold); color:#fff; font-weight:600; }
.btn-gold:hover{ background:var(--gb-gold-dark); border-color:var(--gb-gold-dark); color:#fff; }
.btn-navy{ background:var(--gb-navy); border-color:var(--gb-navy); color:#fff; }
.btn-navy:hover{ background:#0e1729; color:#fff; }

/* ---------- Login ---------- */
.gb-login{ min-height:100vh; display:grid; place-items:center;
  background:linear-gradient(135deg,#16233c 0%,#243a63 55%,#0f1828 100%); padding:2rem 1rem; }
.gb-login .box{ width:100%; max-width:420px; background:#fff; border-radius:18px;
  padding:2.2rem 2rem; box-shadow:0 22px 60px rgba(0,0,0,.32); }
.gb-login .logo{ width:64px; height:64px; border-radius:18px; display:grid; place-items:center;
  background:linear-gradient(135deg,#c9962b,#e6c069); color:#fff; font-size:1.8rem; margin:0 auto 1rem; }

/* ---------- Product card ---------- */
.prod-card{ border:1px solid var(--gb-line); border-radius:14px; background:#fff; padding:1.1rem;
  height:100%; transition:.18s; cursor:pointer; }
.prod-card:hover{ border-color:var(--gb-gold); box-shadow:0 8px 22px rgba(201,150,43,.16); transform:translateY(-2px); }
.prod-card .ptype{ font-size:.75rem; color:#8d99a6; }
.prod-card .pname{ font-weight:600; margin:.3rem 0 .5rem; }
.prod-card .pprice{ color:var(--gb-gold-dark); font-weight:700; font-size:1.2rem; }

.rate-row{ cursor:pointer; }
.rate-row:hover{ background:#fffaf0 !important; }
.rate-row.selected{ background:#fff4dc !important; box-shadow:inset 3px 0 0 var(--gb-gold); }

/* ---------- misc ---------- */
.text-money{ font-variant-numeric:tabular-nums; }
.badge{ font-weight:600; }
.small-muted{ font-size:.82rem; color:#8d99a6; }
.credit-pill{ background:rgba(255,255,255,.12); border:1px solid rgba(255,255,255,.2);
  color:#fff; border-radius:999px; padding:.3rem .9rem; font-weight:600; }
.print-only{ display:none; }
@media print{
  .no-print,.gb-sidebar,.gb-navbar,.gb-topbar{ display:none !important; }
  .gb-main{ margin-left:0; }
  .print-only{ display:block; }
  body{ background:#fff; }
}

/* ---------- หน้ายกเลิกกรมธรรม์ ---------- */
.cancel-wrap{ background:#fff; border:1px solid var(--gb-line); border-radius:12px;
  padding:2rem 2.2rem 2.2rem; max-width:900px; margin:0 auto; }
.cancel-title{ font-weight:500; margin-bottom:1.4rem; }
.cancel-title i{ color:#e0a800; margin-right:.4rem; }
.cancel-title span{ font-weight:600; letter-spacing:.3px; }
.cancel-rules{ padding-left:1.4rem; margin-bottom:1.5rem; }
.cancel-rules li{ margin-bottom:.45rem; color:#3a4657; }
.cancel-info{ background:#f7f9fc; border:1px solid var(--gb-line); border-radius:8px;
  padding:.85rem 1rem; font-size:.9rem; }
.cancel-info > div{ display:flex; gap:.6rem; padding:.2rem 0; flex-wrap:wrap; }
.cancel-info .lb{ min-width:130px; color:#8d99a6; }
.cancel-wrap .form-label{ font-size:.88rem; color:#5b6875; }
.cancel-wrap .btn-back,
.cancel-wrap .btn-save{ min-width:96px; }

/* ==================== v1.6 : โปรแกรมบริหาร ตรอ. ==================== */
.tro-wrap{background:#fff;border:1px solid #dbe2ea;border-radius:12px;overflow:hidden;
  box-shadow:0 2px 10px rgba(13,59,102,.06)}
/* ข้อความตัวอย่างในช่องกรอก (placeholder) ให้จางกว่าข้อมูลจริงชัดเจน
   ไม่หนาตามคลาส fw-semibold ของช่อง จะได้ไม่เข้าใจผิดว่ามีข้อมูลอยู่แล้ว */
.form-control::placeholder,
.form-select::placeholder,
input::placeholder,
textarea::placeholder{color:#b6bfc9 !important;font-weight:300 !important;opacity:1}
.form-control::-webkit-input-placeholder{color:#b6bfc9 !important;font-weight:300 !important}
.form-control:-ms-input-placeholder{color:#b6bfc9 !important;font-weight:300 !important}

.tro-titlebar{background:linear-gradient(90deg,#0d3b66,#14507f);color:#fff;
  padding:.6rem 1rem;font-weight:500;display:flex;justify-content:space-between;align-items:center;
  gap:.5rem;flex-wrap:wrap}
.tro-group{border:1px solid #d7dee6;border-radius:10px;padding:1rem;margin-bottom:1rem;position:relative;background:#fff}
.tro-group-title{position:absolute;top:-.72rem;left:.9rem;background:#fff;padding:0 .5rem;
  font-weight:500;color:#0d3b66;font-size:.9rem}
.tro-group .form-label{font-size:.82rem;margin-bottom:.15rem;color:#5b6b7c}

/* กล่องรายการชำระเงิน (เขียว) */
.tro-money{border:1px solid #9fd3ab;border-radius:10px;overflow:hidden;margin-bottom:1rem}
.tro-money-head{background:#1f7a3f;color:#fff;padding:.45rem 1rem;font-weight:500}
.tro-money-body{background:#eefaf1;padding:.75rem 1rem}
.tro-line{padding:.28rem 0;border-bottom:1px dashed #bfe3c8}
.tro-line:last-of-type{border-bottom:0}
.tro-lbl{font-weight:500;color:#14401f}
.tro-money-body .form-control,.tro-money-body .form-select{background:#fff}
.tro-total-row{margin-top:.5rem;padding-top:.6rem;border-top:2px solid #1f7a3f}
.tro-total{font-size:1.8rem;font-weight:700;color:#c1121f;line-height:1.1}

/* แผงด้านขวา */
.tro-panel{border:1px solid #d7dee6;border-radius:10px;overflow:hidden;margin-bottom:1rem;background:#fff}
.tro-panel-head{background:#f1f5f9;border-bottom:1px solid #d7dee6;padding:.45rem .85rem;
  font-weight:500;color:#0d3b66}
.tro-panel-body{padding:.85rem}
.tro-panel .form-label{font-size:.78rem;margin-bottom:.1rem;color:#5b6b7c}

/* ---- v1.7 : รายงานสรุปประจำวัน ตรอ. ---- */
.tro-report-head{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:.5rem;
  border-bottom:2px solid #0d3b66;padding-bottom:.5rem}
.tro-day-table{font-size:.83rem}
.tro-day-table th{white-space:nowrap;font-weight:500;background:#f1f5f9}
.tro-day-table td{vertical-align:middle}
@media print{
  .no-print,.navbar,footer{display:none!important}
  .card{border:1px solid #999!important;break-inside:avoid}
  .tro-day-table{font-size:.7rem}
  body{background:#fff}
}

/* บิลที่ยกเลิก — แสดงจาง ๆ และไม่ถูกนับในยอดรวม */
.tro-void-row td{opacity:.5}
.tro-void-row .text-money{text-decoration:line-through}

/* ช่องที่เพิ่งถูกเติมจากกรมธรรม์ — ไฮไลต์ให้เห็นสั้น ๆ */
.is-filled{animation:gbFill 1.6s ease-out}
@keyframes gbFill{0%{background:#fff3cd;box-shadow:0 0 0 3px rgba(255,193,7,.35)}100%{background:#fff;box-shadow:none}}

/* ---- ป้ายอายุการใช้งานโปรแกรม ตรอ. ---- */
.lic-pill{display:inline-flex;align-items:center;font-size:.78rem;font-weight:500;
  padding:.2rem .6rem;border-radius:999px;white-space:nowrap;border:1px solid transparent}
.lic-ok  {background:#e7f5ec;color:#146c43;border-color:#a8ddbb}
.lic-warn{background:#fff3cd;color:#8a5a00;border-color:#ffd964}
.lic-bad {background:#fde2e2;color:#a71d2a;border-color:#f5a3a3}
.lic-none{background:#eef1f4;color:#5b6b7c;border-color:#d7dee6}
/* ในแถบสีเข้ม (titlebar) ให้อ่านง่ายบนพื้นน้ำเงิน */
.lic-compact{background:rgba(255,255,255,.15);color:#fff;border-color:rgba(255,255,255,.35)}
.lic-compact.lic-warn{background:#ffc107;color:#3d2c00;border-color:#ffc107}
.lic-compact.lic-bad {background:#dc3545;color:#fff;border-color:#dc3545}
@media print{.lic-pill{display:none}}

/* ---- แถบเครื่องมือด้านบนของหน้าโมดูล ตรอ. : บังคับให้อยู่แถวเดียว ---- */
.tro-toolbar{display:flex;align-items:center;gap:.5rem;flex-wrap:nowrap;
  max-width:100%;overflow-x:auto;padding-bottom:2px}
.tro-toolbar::-webkit-scrollbar{height:4px}
.tro-toolbar::-webkit-scrollbar-thumb{background:#cbd5e1;border-radius:4px}
.tro-toolbar .btn,.tro-toolbar label,.tro-toolbar .input-group-text{white-space:nowrap}
.tro-toolbar .btn{display:inline-flex;align-items:center}
.gb-datenav{width:auto;flex:0 0 auto}
.gb-datenav .form-control{width:150px;flex:0 0 auto}

/* ---- แถบเมนูหลัก : ไม่ให้ชื่อเมนูตกบรรทัด ---- */
.gb-navbar .navbar-nav .nav-link{white-space:nowrap;padding-left:.6rem;padding-right:.6rem}
.gb-navbar .credit-pill{white-space:nowrap}
.gb-navbar .dropdown-toggle{white-space:nowrap}
@media (min-width:992px) and (max-width:1500px){
  .gb-navbar .navbar-nav .nav-link{font-size:.9rem;padding-left:.45rem;padding-right:.45rem}
  .gb-navbar .navbar-nav{gap:0!important}
  .gb-navbar .credit-pill{font-size:.85rem}
}
@media (min-width:992px) and (max-width:1200px){
  .gb-navbar .navbar-nav .nav-link{font-size:.84rem}
  .gb-navbar .navbar-nav .nav-link i{display:none}
}
