/* ============================================================
   udhr-theme.css — กรุงเทพมหานคร เมืองสิทธิมนุษยชน บนธีม pv2 (ต้นแบบ: bmaxsdg)
   โหลดท้ายสุด (assets/ThemeAsset) — ปรับ markup เดิมของ udhr ให้เข้าธีม:
   Bootstrap 4 (card / btn / badge / alert / jumbotron / table / nav-tabs), panel แบบ BS3, kartik GridView
   ============================================================ */

/* ---------- โครงหน้า: กว้างกว่า bmaxsdg เพราะตาราง GridView มีหลายคอลัมน์ ---------- */
.pv2 .pv2-wrap.ud-wrap { max-width: 1400px; }
.pv2 .pv2-breadcrumb.ud-wrap { max-width: 1400px; }
.pv2 .pv2-wrap.ud-wrap > .container, .pv2 .pv2-wrap.ud-wrap > .container-fluid { max-width: none; padding: 0; }
.pv2 { font-size: 15px; }

/* ---------- แบรนด์บน header ---------- */
.pv2 .bx-brand-txt b { font-size: 14.5px; }
@media (max-width: 520px) { .pv2 .bx-brand-txt { display: none; } }
.pv2 nav.pv2-topnav .ud-login { border: 1px solid rgba(255, 255, 255, .6); padding: 4px 14px; border-radius: var(--ui-r-sm, 4px); white-space: nowrap; }
.pv2 nav.pv2-topnav .ud-login:hover { background: rgba(255, 255, 255, .12); }
.pv2 nav.pv2-topnav .pv2-dd-menu form { margin: 0; }
.pv2 nav.pv2-topnav .pv2-dd-menu button.ud-logout { display: block; width: 100%; text-align: left; border: 0; background: none; padding: 8px 16px; font: 400 13.5px var(--ui-sans, 'Sarabun', sans-serif); color: var(--red, #9A3324); cursor: pointer; }
.pv2 nav.pv2-topnav .pv2-dd-menu button.ud-logout:hover { background: var(--red-tint, #F5E4E0); }
@media (max-width: 860px) { .pv2 nav.pv2-topnav .pv2-dd-menu button.ud-logout { color: #fff; } }

/* ---------- หัวเรื่อง / ลิงก์ในเนื้อหา ---------- */
.pv2 .pv2-wrap h1 { font: 600 28px/1.3 var(--ui-serif, 'Taviraj', serif); color: var(--ui-accent-deep, #123B27); margin: 4px 0 14px; }
.pv2 .pv2-wrap h2 { font-size: 22px; }
.pv2 .pv2-wrap h3 { font-size: 18px; }
.pv2 .pv2-wrap h4, .pv2 .pv2-wrap h5, .pv2 .pv2-wrap h6 { font-family: var(--ui-sans, 'Sarabun', sans-serif); font-weight: 700; color: var(--ui-accent-deep, #123B27); }
.pv2 .pv2-wrap a:not(.btn):not(.page-link):not(.ui-btn):not(.ud-qcard):not(.dropdown-item) { color: var(--green-deep, #123B27); }
.pv2 .pv2-wrap a:not(.btn):not(.page-link):not(.ui-btn):not(.ud-qcard):not(.dropdown-item):hover { color: var(--ui-accent, #00703C); }
.pv2 hr { border-top-color: var(--ui-border, #CFDACB); opacity: 1; }
@media (max-width: 640px) { .pv2 .pv2-wrap h1 { font-size: 23px; } }

/* ---------- ปุ่ม Bootstrap ---------- */
.pv2 .btn { border-radius: var(--ui-r-sm, 4px); font-weight: 600; }
.pv2 .btn-lg { font-size: 15px; padding: 9px 20px; }
.pv2 .btn-primary { background: var(--ui-accent, #00703C); border-color: var(--ui-accent, #00703C); color: #fff; }
.pv2 .btn-primary:hover { background: var(--bma-green-dark, #005A30); border-color: var(--bma-green-dark, #005A30); }
.pv2 .btn-success { background: var(--green, #1F6D45); border-color: var(--green, #1F6D45); color: #fff; }
.pv2 .btn-info { background: var(--teal, #2C6B72); border-color: var(--teal, #2C6B72); color: #fff; }
.pv2 .btn-warning { background: var(--gold, #A97D2F); border-color: var(--gold, #A97D2F); color: #fff; }
.pv2 .btn-warning:hover { background: var(--gold-deep, #7A5A1F); border-color: var(--gold-deep, #7A5A1F); color: #fff; }
.pv2 .btn-danger:hover { background: #7d2a1d; border-color: #7d2a1d; }
.pv2 .btn-secondary, .pv2 .btn-light, .pv2 .btn-default { background: var(--ui-surface, #fff); border-color: var(--ui-border, #CFDACB); color: var(--ui-accent-deep, #123B27); }
.pv2 .btn-secondary:hover, .pv2 .btn-light:hover, .pv2 .btn-default:hover { background: var(--ui-hover, #F5F8F2); border-color: var(--ui-accent, #00703C); color: var(--ui-accent-deep, #123B27); }
.pv2 .btn-outline-success, .pv2 .btn-outline-primary { color: var(--green-deep, #123B27); border-color: var(--green, #1F6D45); background: transparent; }
.pv2 .btn-outline-success:hover, .pv2 .btn-outline-primary:hover { background: var(--green-tint, #E4F0E8); color: var(--green-deep, #123B27); }
/* ปุ่ม <button> ซ้อนใน <a class="btn ..."> (GridView ของ udhr) — ไม่ให้เป็นปุ่มสองชั้น */
.pv2 a.btn > button.btn { margin: -1px; }
.pv2 a.btn-outline-success:has(> button.btn), .pv2 a.btn-outline-primary:has(> button.btn) { border: 0; padding: 0; background: none; }

/* ---------- การ์ด / panel (BS3) / alert / jumbotron ---------- */
.pv2 .card { border-radius: var(--ui-r, 6px); border-color: var(--ui-border, #CFDACB); box-shadow: var(--ui-shadow); overflow: hidden; }
.pv2 .card-header { background: var(--ui-head, #F1F5EE); border-bottom-color: var(--ui-border, #CFDACB); font-weight: 700; color: var(--ui-accent-deep, #123B27); }
.pv2 .card-img, .pv2 .card-img-top { border-radius: 0; }
.pv2 .card > a:has(> .card-img) { display: block; transition: transform .15s; }
.pv2 .card:has(> a > .card-img):hover { box-shadow: var(--ui-shadow-h); border-color: var(--ui-accent, #00703C); }
.pv2 .card:has(> a > .card-img):hover > a { transform: scale(1.015); }
.pv2 .mb-20 { margin-bottom: 20px; }
.pv2 .mb-30 { margin-bottom: 30px; }

.pv2 .panel { background: var(--ui-surface, #fff); border: 1px solid var(--ui-border, #CFDACB); border-radius: var(--ui-r, 6px); box-shadow: var(--ui-shadow); margin-bottom: 20px; }
.pv2 .panel-heading { background: var(--ui-head, #F1F5EE); border-bottom: 1px solid var(--ui-border, #CFDACB); padding: 10px 16px; border-radius: var(--ui-r, 6px) var(--ui-r, 6px) 0 0; }
.pv2 .panel-heading .panel-title { margin: 0; font: 700 16px/1.5 var(--ui-sans, 'Sarabun', sans-serif); color: var(--ui-accent-deep, #123B27); }
.pv2 .panel-body { padding: 16px; }
.pv2 .glyphicon { display: none; }   /* ไอคอน BS3 ไม่มีฟอนต์ใน BS4 — ซ่อนไว้ไม่ให้เป็นกล่องว่าง */

.pv2 .alert { border-radius: var(--ui-r, 6px); font-size: 14px; }
.pv2 .alert-light { background: transparent; border: 0; padding: 0; }
.pv2 .alert-success { background: var(--green-tint, #E4F0E8); border-color: var(--green, #1F6D45); color: var(--green-deep, #123B27); }
.pv2 .alert-info { background: var(--teal-tint, #E1EEEF); border-color: var(--teal, #2C6B72); color: var(--teal-deep, #1B454A); }
.pv2 .alert-warning { background: var(--gold-tint, #F3EAD6); border-color: var(--gold, #A97D2F); color: var(--gold-deep, #7A5A1F); }
.pv2 .alert-danger { background: var(--ui-head, #F1F5EE); border: 0; border-left: 4px solid var(--bma-gold, #F2C230); color: var(--ui-accent-deep, #123B27); }
.pv2 .alert .panel-title { margin: 0; font: 700 16px/1.5 var(--ui-sans, 'Sarabun', sans-serif); color: inherit; }
.pv2 .jumbotron { background: transparent; padding: 0; margin: 0; }

/* ---------- badge / progress ---------- */
.pv2 .badge { font: 600 11.5px/1.3 var(--ui-mono, 'IBM Plex Mono', monospace); padding: 4px 8px; border-radius: 999px; }
.pv2 .progress { height: 18px; border-radius: 999px; background: var(--ui-border-soft, #E3EAE0); }
.pv2 .progress-bar { background: var(--ui-accent, #00703C); font: 600 11px var(--ui-mono, 'IBM Plex Mono', monospace); }

/* ---------- ตาราง (Bootstrap / Yii GridView / kartik GridView / DetailView) ---------- */
.pv2 .grid-view, .pv2 .kv-grid-container { font-size: 13.5px; }
.pv2 .grid-view table, .pv2 table.table { border: 1px solid var(--ui-border, #CFDACB); border-radius: var(--ui-r, 6px); border-collapse: separate; border-spacing: 0; overflow: hidden; background: var(--ui-surface, #fff); min-width: 0; }
.pv2 .grid-view thead th, .pv2 table.table thead th, .pv2 table.kv-grid-table thead th {
  background: var(--ui-head, #F1F5EE); color: var(--ui-accent-deep, #123B27); font: 700 12.5px/1.45 var(--ui-sans, 'Sarabun', sans-serif);
  text-transform: none; letter-spacing: .01em; white-space: normal; vertical-align: middle; border-bottom: 1px solid var(--ui-border, #CFDACB); padding: 9px 12px;
}
.pv2 .grid-view thead th a, .pv2 table.table thead th a { color: inherit; }
.pv2 .grid-view tbody td, .pv2 table.table td { padding: 9px 12px; font-size: 13.5px; vertical-align: top; border-top: 0; border-bottom: 1px solid var(--ui-border-soft, #E3EAE0); }
.pv2 .table-bordered td, .pv2 .table-bordered th { border-color: var(--ui-border-soft, #E3EAE0); }
.pv2 .table-striped tbody tr:nth-of-type(odd) td { background: #FBFCFA; }
.pv2 .grid-view tbody tr:hover td, .pv2 table.table-hover tbody tr:hover td { background: var(--ui-hover, #F5F8F2); }
.pv2 .grid-view .filters td, .pv2 .grid-view tr.filters td { background: var(--paper, #FAF9F4); padding: 6px 8px; }
.pv2 .grid-view .filters :is(input, select) { height: 34px; padding: 4px 8px; font-size: 13px; border-radius: var(--ui-r-sm, 4px); }
.pv2 .grid-view .summary { font-size: 12.5px; color: var(--ink-faint, #8A9389); }
.pv2 .grid-view .action-column, .pv2 .kv-grid-table .kv-align-center { text-align: center; }
.pv2 table.detail-view th { width: 26%; background: var(--ui-head, #F1F5EE); color: var(--ui-accent-deep, #123B27); font-weight: 700; font-size: 13px; }
/* kartik panel / toolbar */
.pv2 .kv-panel-before, .pv2 .kv-panel-after { background: var(--ui-surface, #fff); border-color: var(--ui-border, #CFDACB); }
.pv2 .grid-view .card-header, .pv2 .grid-view .panel-heading { background: var(--ui-accent, #00703C); color: #fff; }
.pv2 .grid-view .card-header :is(h3, .panel-title, .card-title) { color: #fff; margin: 0; font: 700 15px var(--ui-sans, 'Sarabun', sans-serif); }

/* LinkPager (Bootstrap 4) */
.pv2 .pagination { gap: 4px; flex-wrap: wrap; }
.pv2 .pagination .page-link { border-radius: var(--ui-r-sm, 4px) !important; border-color: var(--ui-border, #CFDACB); color: var(--ui-accent-deep, #123B27); font-size: 13px; }
.pv2 .pagination .page-item.active .page-link { background: var(--ui-accent, #00703C); border-color: var(--ui-accent, #00703C); color: #fff; }
.pv2 .pagination .page-item.disabled .page-link { color: var(--ink-faint, #8A9389); }

/* ---------- ฟอร์ม ---------- */
.pv2 .form-control, .pv2 select.form-control, .pv2 .custom-select { border-radius: var(--ui-r-sm, 4px); }
.pv2 .form-control:focus, .pv2 .custom-select:focus { box-shadow: var(--ui-focus); outline: none; border-color: var(--ui-accent, #00703C); }
.pv2 .form-check-label, .pv2 .custom-control-label, .pv2 .checkbox label, .pv2 .radio label { display: inline; font-size: 14px; font-weight: 400; color: var(--ink, #17251C); }
.pv2 .form-check-input { position: static; margin-left: 0; }
.pv2 .input-group > .form-control { width: 1%; flex: 1 1 auto; }
.pv2 .select2-container .select2-selection { border-color: var(--ui-border, #CFDACB); border-radius: var(--ui-r-sm, 4px); min-height: 38px; }
.pv2 .help-block-error, .pv2 .invalid-feedback { color: var(--red, #9A3324); }

/* ---------- nav-tabs (ทับสีจาก site.css) ---------- */
.pv2 .nav-tabs { border-bottom: 1px solid var(--ui-border, #CFDACB); }
.pv2 .nav-tabs .nav-link { border: 0; border-bottom: 3px solid transparent; background: none; color: var(--ink-soft, #4B5B4F); font-weight: 600; border-radius: 0; }
.pv2 .nav-tabs .nav-link:hover { color: var(--ui-accent-deep, #123B27); background: none; }
.pv2 .nav-tabs .nav-link.active, .pv2 .nav-tabs .nav-item.show .nav-link { color: var(--ui-accent-deep, #123B27); background: none; border-bottom-color: var(--ui-accent, #00703C); }

/* ---------- หน้าแรก ---------- */
.pv2 .ud-hero { border-radius: var(--ui-r, 6px); color: #fff; padding: 40px 40px 34px; margin: 0 0 26px; position: relative; overflow: hidden;
  background: radial-gradient(circle at 88% 12%, rgba(242, 194, 48, .25), transparent 42%), linear-gradient(135deg, #005A30 0%, #00703C 55%, #1F6D45 100%);
  box-shadow: 0 10px 28px rgba(0, 90, 48, .18); }
.pv2 .ud-hero .ud-eyebrow { font: 600 12px/1.4 var(--ui-mono, 'IBM Plex Mono', monospace); letter-spacing: .08em; text-transform: uppercase; color: var(--bma-gold, #F2C230); }
.pv2 .ud-hero h1 { color: #fff; font-size: 36px; margin: 8px 0 10px; }
.pv2 .ud-hero p { color: rgba(255, 255, 255, .88); max-width: 760px; font-size: 15.5px; margin: 0 0 22px; }
.pv2 .ud-hero .ud-actions { display: flex; flex-wrap: wrap; gap: 10px; }
.pv2 .ud-hero .ud-actions a { display: inline-flex; align-items: center; gap: 6px; height: 40px; padding: 0 18px; border-radius: var(--ui-r-sm, 4px); font: 600 14px var(--ui-sans, 'Sarabun', sans-serif); text-decoration: none; background: #fff; color: var(--ui-accent-deep, #123B27); border: 1px solid #fff; }
.pv2 .ud-hero .ud-actions a:hover { background: var(--ui-accent-tint, #E4F0E8); }
.pv2 .ud-hero .ud-actions a.ghost { background: transparent; color: #fff; border-color: rgba(255, 255, 255, .6); }
.pv2 .ud-hero .ud-actions a.ghost:hover { background: rgba(255, 255, 255, .12); }
.pv2 .ud-hero .ud-actions a.gold { background: var(--bma-gold, #F2C230); border-color: var(--bma-gold, #F2C230); color: #3b2c06; }
.pv2 .ud-hero .ud-actions a.gold:hover { background: #ffd95a; }
@media (max-width: 640px) { .pv2 .ud-hero { padding: 26px 20px; } .pv2 .ud-hero h1 { font-size: 26px; } }

.pv2 .ud-quick { display: grid; grid-template-columns: repeat(auto-fill, minmax(240px, 1fr)); gap: 14px; margin: 0 0 8px; }
.pv2 a.ud-qcard { display: flex; gap: 12px; align-items: flex-start; padding: 16px 18px; background: var(--ui-surface, #fff); border: 1px solid var(--ui-border, #CFDACB); border-top: 3px solid var(--ui-accent, #00703C);
  border-radius: var(--ui-r, 6px); box-shadow: var(--ui-shadow); text-decoration: none; color: var(--ink, #17251C); transition: box-shadow .15s, transform .15s, border-color .15s; }
.pv2 a.ud-qcard:hover { box-shadow: var(--ui-shadow-h); transform: translateY(-2px); color: var(--ink, #17251C); }
.pv2 a.ud-qcard .n { flex: none; width: 34px; height: 34px; border-radius: 50%; background: var(--ui-accent-tint, #E4F0E8); color: var(--ui-accent-deep, #123B27); display: flex; align-items: center; justify-content: center; font: 700 14px var(--ui-mono, 'IBM Plex Mono', monospace); }
.pv2 a.ud-qcard b { display: block; font-size: 15px; color: var(--ui-accent-deep, #123B27); line-height: 1.45; }
.pv2 a.ud-qcard small { display: block; font-size: 12.5px; color: var(--ink-soft, #4B5B4F); margin-top: 3px; line-height: 1.5; }

.pv2 .ud-banner { display: block; width: 100%; height: auto; border-radius: var(--ui-r, 6px); border: 1px solid var(--ui-border, #CFDACB); margin: 6px 0 18px; }
.pv2 .ud-embed { border: 1px solid var(--ui-border, #CFDACB); border-radius: var(--ui-r, 6px); overflow: hidden; background: var(--ui-surface, #fff); box-shadow: var(--ui-shadow); }
.pv2 .ud-embed iframe { display: block; width: 100%; height: 900px; border: 0; }
@media (max-width: 720px) { .pv2 .ud-embed iframe { height: 620px; } }

/* ---------- หน้า login ---------- */
.pv2 .site-login { max-width: 460px; margin: 30px auto 0; background: var(--ui-surface, #fff); border: 1px solid var(--ui-border, #CFDACB); border-top: 4px solid var(--ui-accent, #00703C); border-radius: var(--ui-r, 6px); padding: 26px 28px; box-shadow: var(--ui-shadow); }
.pv2 .site-login .row > [class*="col-"] { flex: 0 0 100%; max-width: 100%; }
