/* ============================================================
   staff-v2.css
   ส่วนขยายของ public-theme-v2.css สำหรับหน้าเจ้าหน้าที่ / ฟอร์ม / ตาราง / CRUD
   ใช้ตัวแปรสีและฟอนต์ชุดเดียวกัน — โหลดหลัง public-theme-v2.css เสมอ
   ครอบคลุม: ปุ่ม, ฟอร์ม (รวม markup ของ Yii ActiveForm), GridView, DetailView,
   LinkPager, แถบเมนูเจ้าหน้าที่, หน้า login, แบนเนอร์ศูนย์ผู้บริหาร/เจ้าหน้าที่
   ============================================================ */

/* ---------- staff sub-navigation (แทน tabbar เดิม) ---------- */
.pv2-subnav{background:var(--band);border-bottom:1px solid var(--rule);overflow-x:auto;white-space:nowrap;}
.pv2-subnav-in{max-width:1180px;margin:0 auto;padding:0 24px;display:flex;gap:2px;}
.pv2 .pv2-subnav a{padding:10px 13px;font-size:13px;color:var(--ink-soft);text-decoration:none;border-bottom:2px solid transparent;flex:none;}
.pv2 .pv2-subnav a:hover{color:var(--green-deep);}
.pv2 .pv2-subnav a.active{color:var(--green-deep);border-bottom-color:var(--gold);font-weight:600;}
.pv2 .pv2-subnav a.zone{font-weight:600;color:var(--gold-deep);}
.pv2-usernav{display:flex;align-items:center;gap:10px;font-size:13px;color:var(--ink-soft);flex-wrap:wrap;}
.pv2-role{font-family:'IBM Plex Mono',monospace;font-size:11px;color:var(--gold-deep);border:1px solid var(--gold);background:var(--gold-tint);padding:1px 8px;}
.pv2-usernav form{display:inline;margin:0;}

/* ---------- flash ---------- */
.pv2-flash.error,.pv2-flash.danger{background:var(--red-tint);color:var(--red);border-color:var(--red);}
.pv2-flash.warning{background:var(--gold-tint);color:var(--gold-deep);border-color:var(--gold);}
.pv2-flash.info{background:var(--teal-tint);color:var(--teal-deep);border-color:var(--teal);}

/* ---------- page head ---------- */
.pv2-pagehead{display:flex;justify-content:space-between;align-items:flex-end;gap:16px;flex-wrap:wrap;margin:22px 0 10px;}
.pv2-pagehead h1.pv2-title{margin:0;}
.pv2-pagehead .pv2-actions{display:flex;gap:8px;flex-wrap:wrap;}
.pv2-lede{font-size:14px;color:var(--ink-soft);margin:0 0 18px;max-width:none;}

/* ---------- buttons ---------- */
.pv2 .pv2-btn,.pv2 a.pv2-btn,.pv2 button.pv2-btn{
  display:inline-block;border:1px solid var(--green-deep);background:var(--green-deep);color:#fff;
  padding:8px 18px;font-family:'Sarabun',sans-serif;font-size:13.5px;font-weight:500;line-height:1.4;
  cursor:pointer;text-decoration:none;text-align:center;
}
.pv2 .pv2-btn:hover{background:var(--green);border-color:var(--green);color:#fff;}
.pv2 .pv2-btn.ghost{background:transparent;color:var(--green-deep);border-color:var(--green);}
.pv2 .pv2-btn.ghost:hover{background:var(--green-tint);color:var(--green-deep);}
.pv2 .pv2-btn.gold{background:var(--gold);border-color:var(--gold);}
.pv2 .pv2-btn.gold:hover{background:var(--gold-deep);border-color:var(--gold-deep);}
.pv2 .pv2-btn.danger{background:var(--red);border-color:var(--red);}
.pv2 .pv2-btn.sm{padding:4px 12px;font-size:12.5px;}
.pv2 .pv2-btn.block{display:block;width:100%;}

/* ---------- forms (รองรับ markup ของ Yii ActiveForm ทั้งแบบ widgets และ bootstrap5) ---------- */
.pv2-form{background:var(--card);border:1px solid var(--rule);padding:22px 24px;}
.pv2-form-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:4px 22px;}
.pv2-form-grid .wide,.pv2-form-grid .field-wide{grid-column:1/-1;}
.pv2-form-actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:20px;padding-top:16px;border-top:1px solid var(--rule-soft);}
.pv2 .form-group,.pv2 .pv2-field,.pv2 .mb-3{margin-bottom:14px;}
.pv2 label,.pv2 .control-label,.pv2 .form-label{display:block;font-size:12px;font-weight:600;color:var(--ink-soft);margin-bottom:5px;}
.pv2 .form-control,.pv2 .pv2-input,
.pv2 input[type=text],.pv2 input[type=search],.pv2 input[type=number],.pv2 input[type=date],
.pv2 input[type=email],.pv2 input[type=password],.pv2 input[type=url],.pv2 input[type=datetime-local],
.pv2 select,.pv2 textarea{
  display:block;width:100%;border:1px solid var(--rule);background:var(--card);color:var(--ink);
  padding:8px 12px;font-family:'Sarabun',sans-serif;font-size:14px;line-height:1.5;border-radius:0;
}
.pv2 textarea{min-height:90px;resize:vertical;}
.pv2 .form-control:focus,.pv2 input:focus,.pv2 select:focus,.pv2 textarea:focus{outline:2px solid var(--green-tint);border-color:var(--green);}
.pv2 input[type=checkbox],.pv2 input[type=radio]{accent-color:var(--green);margin-right:6px;}
.pv2 .has-error .form-control,.pv2 .is-invalid{border-color:var(--red);}
.pv2 .help-block,.pv2 .invalid-feedback,.pv2 .form-text{font-size:12px;color:var(--ink-faint);margin-top:3px;display:block;}
.pv2 .has-error .help-block,.pv2 .invalid-feedback,.pv2 .help-block-error{color:var(--red);}
.pv2 .hint-block{font-size:12px;color:var(--ink-faint);margin-top:3px;}
.pv2-filter{background:var(--card);border:1px solid var(--rule);padding:14px 18px;margin-bottom:18px;}
.pv2-filter-row{display:flex;flex-wrap:wrap;gap:10px 14px;align-items:flex-end;}
.pv2-filter-row > *{flex:1 1 180px;min-width:0;}
.pv2-filter-row > .pv2-btn,.pv2-filter-row > button,.pv2-filter-row > .pv2-filter-actions{flex:none;}
.pv2-filter-row .form-group,.pv2-filter-row .mb-3{margin-bottom:0;}

/* ---------- GridView / DetailView / LinkPager (markup กลางของ Yii) ---------- */
.pv2 .grid-view{margin:0 0 6px;}
.pv2 .grid-view .summary,.pv2 .summary{font-size:12.5px;color:var(--ink-faint);margin:0 0 10px;}
.pv2 .grid-view table,.pv2 table.pv2-grid{width:100%;min-width:560px;border-collapse:collapse;background:var(--card);border:1px solid var(--rule);}
.pv2 .grid-view thead th{background:var(--band);color:var(--ink-soft);font-size:10.5px;font-weight:600;text-transform:uppercase;letter-spacing:.03em;text-align:left;padding:9px 14px;border-bottom:1px solid var(--rule);white-space:nowrap;}
.pv2 .grid-view thead th a{text-decoration:none;color:inherit;}
.pv2 .grid-view thead th a.asc::after{content:" ▲";font-size:9px;}
.pv2 .grid-view thead th a.desc::after{content:" ▼";font-size:9px;}
.pv2 .grid-view tbody td{padding:10px 14px;font-size:13px;color:var(--ink);vertical-align:middle;border-bottom:1px solid var(--rule-soft);}
.pv2 .grid-view tbody tr:last-child td{border-bottom:none;}
.pv2 .grid-view tbody tr:hover td{background:var(--band);}
.pv2 .grid-view td a{color:var(--green-deep);}
.pv2 .grid-view .filters td{background:var(--paper);padding:6px 10px;}
.pv2 .grid-view .empty{text-align:center;color:var(--ink-faint);padding:30px 0;}
.pv2 .grid-view .action-column{white-space:nowrap;text-align:right;}
.pv2 .grid-view .action-column a{margin-left:8px;text-decoration:none;}
.pv2-scroll{overflow-x:auto;}
.pv2 table.detail-view{width:100%;border-collapse:collapse;background:var(--card);border:1px solid var(--rule);}
.pv2 table.detail-view th{width:26%;text-align:left;vertical-align:top;background:var(--band);color:var(--ink-soft);font-size:12px;font-weight:600;padding:10px 16px;border-bottom:1px solid var(--rule);}
.pv2 table.detail-view td{padding:10px 16px;font-size:13.5px;border-bottom:1px solid var(--rule-soft);word-break:break-word;}
.pv2 ul.pagination{display:flex;flex-wrap:wrap;gap:4px;list-style:none;padding:0;margin:16px 0;}
.pv2 ul.pagination li a,.pv2 ul.pagination li span{display:block;border:1px solid var(--rule);background:var(--card);color:var(--ink);padding:5px 12px;font-size:13px;text-decoration:none;}
.pv2 ul.pagination li a:hover{background:var(--green-tint);}
.pv2 ul.pagination li.active a,.pv2 ul.pagination li.active span{background:var(--green-deep);border-color:var(--green-deep);color:#fff;}
.pv2 ul.pagination li.disabled span,.pv2 ul.pagination li.disabled a{color:var(--ink-faint);background:var(--paper);}

/* ---------- tables (hand-written) helpers ---------- */
table.pv2-table th.tl,table.pv2-table td.tl{text-align:left;}
table.pv2-table td.c,table.pv2-table th.c{text-align:center;}
table.pv2-table td.r,table.pv2-table th.r{text-align:right;}
table.pv2-table tbody tr.clickable{cursor:pointer;}
table.pv2-table tfoot td{padding:10px 16px;font-size:13px;font-weight:600;background:var(--band);border-top:1px solid var(--rule);}

/* ---------- badges / notes / bars ---------- */
.pv2-badge.b-teal{background:var(--teal);}
.pv2-badge.b-faint{background:var(--ink-faint);}
.pv2-badge.b-ink{background:var(--ink-soft);}
.pv2-badge.b-out{background:transparent;color:var(--green-deep);border:1px solid var(--green);}
.pv2-note{background:var(--gold-tint);border-left:3px solid var(--gold);padding:10px 16px;font-size:13px;color:var(--gold-deep);margin:0 0 18px;}
.pv2-note.info{background:var(--teal-tint);border-left-color:var(--teal);color:var(--teal-deep);}
.pv2-note.ok{background:var(--green-tint);border-left-color:var(--green);color:var(--green-deep);}
.pv2-note.bad{background:var(--red-tint);border-left-color:var(--red);color:var(--red);}
.pv2-bar{height:8px;background:var(--rule-soft);min-width:70px;}
.pv2-bar > i{display:block;height:100%;background:var(--green);}
.pv2-bar.gold > i{background:var(--gold);}
.pv2-bar.red > i{background:var(--red);}
.pv2-kpi-row.auto{grid-template-columns:repeat(auto-fit,minmax(150px,1fr));}
.pv2-kpi-cell.k-teal .pv2-kpi-num{color:var(--teal);}
.pv2-kpi-cell.k-faint .pv2-kpi-num{color:var(--ink-faint);}
a.pv2-kpi-cell{text-decoration:none;color:inherit;display:block;}
a.pv2-kpi-cell:hover{background:var(--band);}
.pv2-panel{background:var(--card);border:1px solid var(--rule);padding:18px 22px;margin-bottom:18px;}
.pv2-panel h3{font-family:'Taviraj',serif;font-size:16px;font-weight:600;color:var(--green-deep);margin:0 0 12px;}
.pv2-panel-half{max-width:50%;}
@media (max-width:767.98px){.pv2-panel-half{max-width:none;}}
.pv2-cols{display:grid;grid-template-columns:repeat(auto-fit,minmax(340px,1fr));gap:18px;}
.pv2-linklist{list-style:none;padding:0;margin:0;}
.pv2-linklist li{border-top:1px solid var(--rule-soft);}
.pv2-linklist li:first-child{border-top:none;}
.pv2 .pv2-linklist a{display:flex;justify-content:space-between;gap:12px;padding:8px 0;font-size:13.5px;text-decoration:none;}
.pv2 .pv2-linklist a:hover{color:var(--green-deep);}
.pv2-linklist .cnt{font-family:'IBM Plex Mono',monospace;font-size:12px;color:var(--ink-faint);flex:none;}
.pv2-tags{display:flex;flex-wrap:wrap;gap:6px;}
.pv2-tag{font-size:12px;border:1px solid var(--rule);background:var(--card);padding:2px 10px;color:var(--ink-soft);text-decoration:none;}
.pv2 a.pv2-tag:hover{background:var(--green-tint);color:var(--green-deep);}

/* ---------- zone banners (ศูนย์ผู้บริหาร / เจ้าหน้าที่ผู้รับผิดชอบ) ---------- */
.pv2-zone{background:var(--green-deep);color:#fff;padding:22px 26px;margin:22px 0 18px;border-top:4px solid var(--gold);}
.pv2-zone.teal{background:var(--teal-deep);}
.pv2-zone-eyebrow{font-family:'IBM Plex Mono',monospace;font-size:11.5px;letter-spacing:.08em;text-transform:uppercase;color:#E8D9B0;}
.pv2-zone h1{font-family:'Taviraj',serif;font-weight:600;font-size:26px;margin:4px 0 6px;color:#fff;}
.pv2-zone p{margin:0;font-size:14px;color:#D5E3D9;}
.pv2-zone-nav{display:flex;flex-wrap:wrap;gap:8px;margin-top:14px;}
.pv2 .pv2-zone-nav a{border:1px solid rgba(255,255,255,.4);color:#fff;padding:4px 14px;font-size:13px;text-decoration:none;}
.pv2 .pv2-zone-nav a:hover,.pv2 .pv2-zone-nav a.active{background:#fff;color:var(--green-deep);}

/* ---------- auth (login / signup / reset) ---------- */
.pv2-auth{max-width:440px;margin:44px auto 60px;background:var(--card);border:1px solid var(--rule);border-top:4px solid var(--green);padding:28px 30px;}
.pv2-auth h1{font-family:'Taviraj',serif;font-weight:600;font-size:24px;color:var(--green-deep);margin:0 0 6px;}
.pv2-auth .pv2-lede{margin-bottom:20px;}
.pv2-auth .pv2-links{margin-top:16px;font-size:13px;color:var(--ink-soft);display:flex;flex-direction:column;gap:4px;}
.pv2-auth .pv2-links a{color:var(--green-deep);}

@media (max-width:640px){
  .pv2-pagehead{align-items:flex-start;}
  .pv2-form{padding:16px;}
  .pv2-cols{grid-template-columns:1fr;}
}

/* ---------- list rows (งานมอบหมาย / ความคิดเห็น / รายการย่อย) ---------- */
.pv2-row{display:flex;justify-content:space-between;align-items:flex-start;gap:14px;padding:11px 0;border-bottom:1px solid var(--rule-soft);}
.pv2-row:last-child{border-bottom:none;}
.pv2-row b{font-size:13.5px;font-weight:600;}
.pv2-row .sub{font-size:12.5px;color:var(--ink-soft);margin-top:3px;}
.pv2-row .sub.faint{font-size:11.5px;color:var(--ink-faint);}
.pv2-row form{margin:0;flex:none;}
.pv2-empty-line{text-align:center;color:var(--ink-faint);padding:22px 0;font-size:13.5px;}
.pv2-stack{display:flex;gap:10px;flex-wrap:wrap;margin-top:16px;}
.pv2-filter > input[type=text]{margin-bottom:10px;max-width:none;}
.pv2 .grid-view td:has(> a[aria-label]){white-space:nowrap;text-align:right;}
.pv2 .grid-view td > a[aria-label]{display:inline-block;margin:0 4px;color:var(--green-deep);}
.pv2 .field-rememberme label,.pv2 .form-check label{display:inline;font-weight:400;font-size:13px;}
