/* KEMREX v2.0.0 CRM — ใช้ CI tokens (--kx-*) จาก theme.css เท่านั้น */
.crm .crm-card{padding-bottom:4px}
.crm-toolbar{display:flex;flex-wrap:wrap;gap:10px;align-items:flex-end;padding:18px 22px 14px}
:is(.crm,.crm-modal) .crm-toolbar input[type=search]{flex:1 1 240px;max-width:380px}
:is(.crm,.crm-modal) .crm-toolbar select,:is(.crm,.crm-modal) .crm-toolbar input[type=date]{width:auto;min-width:150px;max-width:220px;flex:0 1 auto}
:is(.crm,.crm-modal) .crm-table td:first-child{white-space:nowrap}
.crm-toolbar label.small-label{display:flex;flex-direction:column;gap:4px}
.crm-toolbar label.small-label input,.crm-toolbar label.small-label select{margin-top:0}
.crm-pager{display:flex;align-items:center;justify-content:flex-end;gap:10px;padding:12px 22px;font-size:12px;color:var(--kx-gray-500);flex-wrap:wrap}
.crm-pager span:first-child{margin-right:auto}
:is(.crm,.crm-modal) .crm-table td.num,.crm .crm-table th.num,:is(.crm,.crm-modal) .num{text-align:right;white-space:nowrap}
:is(.crm,.crm-modal) .crm-table th.num .sort-btn{justify-content:flex-end}
:is(.crm,.crm-modal) .crm-table.compact td{padding:9px 12px}
:is(.crm,.crm-modal) .crm-table.compact{min-width:0}
.crm-rev{display:inline-block;font-size:10px;font-weight:600;color:var(--kx-orange-700);background:var(--kx-orange-50);border:1px solid var(--kx-orange-100);border-radius:4px;padding:0 5px;margin-left:4px}

/* dialogs */
#app-dialog.crm-dialog-wide{width:min(1040px,calc(100% - 22px))}
.crm-modal .form-grid{gap:12px}
.crm-modal .crm-quick{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:16px}
.crm-detail-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px 18px;padding:14px;background:var(--kx-navy-50);border:1px solid var(--kx-navy-100);margin-bottom:12px;font-size:13px;color:var(--kx-gray-900);overflow-wrap:anywhere}
.crm-detail-grid > div > div{white-space:pre-wrap}
.crm-h3{font-size:14px;color:var(--kx-navy);margin:18px 0 8px;font-weight:600}
.crm-history{display:grid;gap:8px;max-height:360px;overflow:auto}
.crm-history-row{padding:8px 10px;border-left:3px solid var(--kx-orange);background:#fff;border-bottom:1px solid var(--kx-gray-100);font-size:12px}
.crm-history-row .sub{overflow-wrap:anywhere}
.crm-lookup-filters{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin:0 22px 10px}
.crm-modal .crm-toolbar{padding:0 0 12px}
.crm-modal .crm-lookup-filters{margin:0 0 12px}
.crm-modal .crm-pager{padding:10px 0 0}
.crm-pick-list{max-height:420px;overflow:auto}
.crm-user-checks{max-height:230px}
.crm-send-box{border:1px solid var(--kx-gray-200);padding:14px;display:grid;gap:10px}
.crm-send-box .crm-h3{margin:0}
.crm-sign-thumb{max-height:38px;max-width:140px;background:repeating-conic-gradient(#f3f4f5 0 25%,#fff 0 50%) 0 0/12px 12px;border:1px solid var(--kx-gray-100)}
.crm-sign-preview{max-height:90px;max-width:100%;display:block;margin:0 0 14px;padding:6px;border:1px dashed var(--kx-gray-300);background:repeating-conic-gradient(#f3f4f5 0 25%,#fff 0 50%) 0 0/14px 14px}
.crm-audit-detail{max-width:520px;font-size:11px;color:var(--kx-gray-700);overflow-wrap:anywhere;white-space:pre-wrap}

/* tabs */
.crm-tabs{display:flex;flex-wrap:wrap;gap:4px;border-bottom:2px solid var(--kx-gray-200);margin:0 0 16px}
.crm-tabs button{border:0;background:transparent;padding:10px 16px;font-weight:500;color:var(--kx-gray-500);border-bottom:3px solid transparent;margin-bottom:-2px}
.crm-tabs button.on{color:var(--kx-navy);border-bottom-color:var(--kx-orange)}
.crm-tabs button:hover{color:var(--kx-navy)}

/* document editor */
.crm-doc-actions{display:flex;flex-wrap:wrap;gap:8px;margin:-10px 0 14px}
.crm-links{font-size:12px;color:var(--kx-gray-700)}
.crm-revs{display:flex;flex-wrap:wrap;align-items:center;gap:6px;font-size:12px;color:var(--kx-gray-700);margin-bottom:12px}
.crm .tag{cursor:default}
.crm button.tag{cursor:pointer}
.crm .tag.on{background:var(--kx-navy);color:#fff;border-color:var(--kx-navy)}
.crm-doc{display:grid;gap:16px}
.crm-box{border:1px solid var(--kx-gray-200);background:#fff;padding:14px 18px 18px;margin:0;min-width:0}
.crm-box legend{font-weight:600;color:var(--kx-navy);padding:0 8px;font-size:14px}
.crm .crm-box[disabled] input,.crm .crm-box[disabled] select,.crm .crm-box[disabled] textarea{background:var(--kx-gray-100);color:var(--kx-gray-900);opacity:1}
.crm-cust-actions{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin-bottom:12px}
.form-grid.three{grid-template-columns:repeat(3,minmax(0,1fr))}
.crm-line-table{min-width:980px}
.crm .crm-line-table td{padding:8px 6px;vertical-align:top}
.crm .crm-line-table input,.crm .crm-line-table textarea{min-height:36px;padding:6px 8px;font-size:13px}
.crm .crm-line-table input.num{text-align:right}
.crm .crm-line-table td:nth-child(2){width:175px}
.crm .crm-line-table td:nth-child(4),.crm .crm-line-table td:nth-child(7){width:95px}
.crm .crm-line-table td:nth-child(5){width:80px}
.crm .crm-line-table td:nth-child(6){width:120px}
.crm .crm-line-table td:nth-child(8){width:120px;font-weight:600;color:var(--kx-navy);padding-top:16px}
.crm .crm-line-table .sub-input{margin-top:4px;font-size:12px;min-height:30px;color:var(--kx-gray-700)}
.crm-ln-no{color:var(--kx-gray-500);padding-top:16px!important}
.crm-line-actions{display:flex;gap:8px;flex-wrap:wrap;margin:12px 0}
.crm-sum-grid{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(280px,1fr);gap:20px;margin-top:12px}
.crm-sum-grid > div{display:grid;gap:12px;align-content:start}
.crm-term-btns{display:flex;gap:8px;flex-wrap:wrap;margin-top:-4px}
:is(.crm,.crm-modal) .crm-totals{width:100%;min-width:0;border:1px solid var(--kx-gray-200);font-size:13px}
:is(.crm,.crm-modal) .crm-totals th{background:#fff;color:var(--kx-gray-700);text-transform:none;letter-spacing:0;font-weight:500;font-size:13px;padding:9px 12px;border-color:var(--kx-gray-100)}
:is(.crm,.crm-modal) .crm-totals td{text-align:right;padding:9px 12px;color:var(--kx-gray-900);font-variant-numeric:tabular-nums}
:is(.crm,.crm-modal) .crm-totals tr.grand th,.crm .crm-totals tr.grand td{background:var(--kx-navy);color:#fff;font-weight:600;font-size:15px}
.crm-trail{margin-top:18px;background:#fff;border:1px solid var(--kx-gray-200);padding:4px 18px 16px}

/* reports */
.crm-bars{display:grid;gap:10px}
.crm-bar-row{display:grid;grid-template-columns:70px minmax(0,1fr) 120px;align-items:center;gap:10px;font-size:12px}
.crm-bar{position:relative;height:16px;background:var(--kx-navy-50)}
.crm-bar i,.crm-bar b{position:absolute;left:0;top:0;bottom:0}
.crm-bar i{background:var(--kx-navy-300)}
.crm-bar b{background:var(--kx-orange);top:4px;bottom:4px}
.crm-funnel{display:grid;grid-template-columns:minmax(0,1fr) 50px 130px;gap:10px;align-items:center;padding:7px 0;border-bottom:1px solid var(--kx-gray-100);font-size:13px}

@media(max-width:970px){
  .form-grid.three{grid-template-columns:repeat(2,minmax(0,1fr))}
  .crm-sum-grid{grid-template-columns:minmax(0,1fr)}
  .crm-detail-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:580px){
  .crm-toolbar{padding:14px 16px 10px}
  :is(.crm,.crm-modal) .crm-toolbar input[type=search],:is(.crm,.crm-modal) .crm-toolbar select,:is(.crm,.crm-modal) .crm-toolbar input[type=date],.crm-toolbar label.small-label{flex:1 1 100%;max-width:none;min-width:0}
  .crm-pager{padding:10px 16px}
  .form-grid.three,.crm-detail-grid,.crm-lookup-filters{grid-template-columns:minmax(0,1fr)}
  .crm-box{padding:10px 12px 14px}
  .crm-doc-actions .btn{flex:1 1 45%}
  .crm-bar-row{grid-template-columns:56px minmax(0,1fr) 92px}
  .crm-funnel{grid-template-columns:minmax(0,1fr) 36px 100px}
  /* line editor: one card per line on phones */
  .crm .crm-line-table.editing{min-width:0}
  .crm .crm-line-table.editing thead{display:none}
  .crm .crm-line-table tr[data-line]{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:6px;padding:10px 0;border-bottom:1px solid var(--kx-gray-200)}
  .crm .crm-line-table tr[data-line] td{display:block;width:auto!important;padding:0!important;border:0}
  .crm .crm-line-table tr[data-line] td:nth-child(1){display:none}
  .crm .crm-line-table tr[data-line] td:nth-child(2){grid-column:1/-1}
  .crm .crm-line-table tr[data-line] td:nth-child(3){grid-column:1/-1}
  .crm .crm-line-table tr[data-line] td:nth-child(8){grid-column:1/3;align-self:center}
  .crm .crm-line-table tr[data-line] td:nth-child(9){grid-column:3/-1;text-align:right;align-self:center}
}

/* v2.0.0 ส่งเข้า WINSpeed */
.crm-ws{margin-top:4px}
.crm-series input{width:100%;min-width:0}
.crm-ws-check{margin-top:12px}

/* v2.1.0 กระดิ่งแจ้งเตือน / ผูก LINE / ตั้งค่าการแจ้งเตือน / คอลัมน์รวม VAT */
.top-actions{position:relative}
.crm-bell{position:relative;width:40px;height:40px;border:1px solid var(--kx-gray-200);border-radius:var(--kx-radius-btn);background:var(--kx-white);display:inline-flex;align-items:center;justify-content:center;cursor:pointer;flex:0 0 auto}
.crm-bell svg{width:20px;height:20px;fill:var(--kx-navy)}
.crm-bell:hover{background:var(--kx-navy-50)}
.crm-bell-count{position:absolute;top:-6px;right:-6px;min-width:18px;height:18px;padding:0 5px;border-radius:9px;background:var(--kx-red);color:var(--kx-white);font-size:11px;line-height:18px;font-weight:600;text-align:center}
.crm-bell-panel{position:absolute;top:48px;right:0;z-index:60;width:min(380px,calc(100vw - 24px));max-height:min(70vh,560px);display:flex;flex-direction:column;background:var(--kx-white);border:1px solid var(--kx-gray-200);box-shadow:0 12px 32px rgba(1,31,68,.18)}
.crm-bell-panel[hidden]{display:none}
.crm-bell-head{display:flex;justify-content:space-between;align-items:center;gap:8px;padding:10px 14px;border-bottom:1px solid var(--kx-gray-100);color:var(--kx-navy)}
.crm-bell-head span{display:flex;gap:12px}
.crm-bell-list{overflow-y:auto;overscroll-behavior:contain}
.crm-bell-item{display:flex;flex-direction:column;gap:3px;width:100%;text-align:left;padding:10px 14px;border:0;border-bottom:1px solid var(--kx-gray-100);background:var(--kx-white);cursor:pointer;font-size:13px;color:var(--kx-gray-900)}
.crm-bell-item:hover{background:var(--kx-navy-50)}
.crm-bell-item.unread{background:var(--kx-orange-50);border-left:3px solid var(--kx-orange)}
.crm-bell-title{font-weight:600;color:var(--kx-navy)}
.crm-bell-body{color:var(--kx-gray-700);font-size:12.5px}
.crm-bell-empty{padding:18px 14px;margin:0}
.crm-steps{margin:0 0 4px;padding-left:20px;display:grid;gap:6px}
.crm-line-code{display:flex;flex-direction:column;gap:4px;align-items:flex-start}
.crm-line-code strong{font-size:28px;letter-spacing:4px;color:var(--kx-navy);background:var(--kx-navy-50);padding:6px 14px;border:1px dashed var(--kx-navy-300)}
.crm-nt-table .crm-nt-cell{width:72px;text-align:center}
.crm-nt-table .crm-nt-mod th{background:var(--kx-navy-50);color:var(--kx-navy);text-align:left}
.crm-nt-groups{display:flex;flex-wrap:wrap;gap:6px 16px;margin-top:4px}
.crm-nt-status{margin:8px 0 12px;display:flex;flex-wrap:wrap;gap:6px;align-items:center;font-size:13px}
.crm .crm-line-table.with-vat td:nth-child(9){width:120px;padding-top:16px;color:var(--kx-gray-700);white-space:nowrap}
@media (max-width:970px){.crm-bell{width:36px;height:36px}.crm-bell-panel{position:fixed;top:60px;right:12px;left:12px;width:auto}}
.crm-nt-groups .checkbox-label{display:inline-flex;flex-direction:row;align-items:center;gap:6px;margin:0}
.crm-nt-groups .checkbox-label input{width:auto;min-height:0}

/* v2.3.0 Prefix โครงการ พิมพ์เป็นตัวพิมพ์ใหญ่ */
input.crm-upper{text-transform:uppercase}

/* v2.4.0 ชื่อสินค้าภาษาอังกฤษ (ค้นหาสินค้า) · ไฟล์แนบ · ลิงก์ลูกค้าเซ็นยืนยัน · เมนูตรวจสอบการส่งเข้า WINSpeed · ผู้ส่ง / ผู้ตรวจสอบ */
.crm-en{font-size:12px;color:var(--kx-navy-500)}
.crm-files,.crm-sign{margin-top:16px}
.crm-file-tools{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:8px}
.crm-file-tools .checkbox-label{display:inline-flex;flex-direction:row;align-items:center;gap:6px;margin:0}
.crm-file-tools .checkbox-label input,.crm-file-table input[type=checkbox]{width:auto;min-height:0;margin:0}
.crm-file-table a{color:var(--kx-navy);overflow-wrap:anywhere}
.crm-file-upload{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(0,1fr) auto;gap:10px;align-items:end;margin-top:12px}
.crm-file-upload input[type=file]{display:block;margin-top:6px;max-width:100%}
.crm-sign-actions{display:grid;grid-template-columns:minmax(0,160px) minmax(0,160px) auto;gap:10px;align-items:end;margin-bottom:10px}
.crm-sign-url input{margin:6px 0 8px}
.crm-sign-log summary{cursor:pointer;color:var(--kx-navy);font-weight:500;margin:10px 0 6px}
.crm-mon-cards{grid-template-columns:repeat(8,minmax(0,1fr))}
.crm-mon-card{font:inherit;text-align:left;cursor:pointer;background:var(--kx-white)}
.crm-mon-card:hover{background:var(--kx-navy-50)}
.crm-mon-card.on{background:var(--kx-navy-50);box-shadow:inset 0 -3px 0 var(--kx-orange)}
.crm-mon-card.st-error .value{color:var(--kx-red)}
.crm-mon-card.st-posted .value{color:var(--kx-success)}
.crm-mon-card.st-wait .value,.crm-mon-card.st-review .value{color:var(--kx-orange-700)}
.crm-mon-error{color:var(--kx-red-700);font-size:12px;max-width:380px;overflow-wrap:anywhere}
.crm-ws-people .crm-user-checks{max-height:200px}
@media(max-width:1250px){.crm-mon-cards{grid-template-columns:repeat(4,minmax(0,1fr))}}
@media(max-width:640px){.crm-file-upload,.crm-sign-actions{grid-template-columns:1fr}.crm-mon-cards{grid-template-columns:repeat(2,minmax(0,1fr))}}
.crm-sign-actions .btn,.crm-file-upload .btn{justify-self:start;min-height:42px}
.crm-file-table td:first-child,.crm-file-table th:first-child{width:40px}

/* v2.10.0 กิจกรรมติดตามงานขาย (crm_activities.js) — สีจากโทเคน CI เท่านั้น */
.cact-chips{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-bottom:16px}
.cact-chip{display:flex;flex-direction:column;align-items:flex-start;gap:4px;padding:14px 16px;border:1px solid var(--kx-gray-200);background:var(--kx-white);color:var(--kx-navy);text-align:left;border-radius:var(--kx-radius-none)}
.cact-chip span{font-size:12px;color:var(--kx-gray-700)}
.cact-chip strong{font-size:24px;font-weight:600;line-height:1.1}
.cact-chip.on{border-color:var(--kx-orange);box-shadow:inset 0 -3px 0 var(--kx-orange)}
.cact-chip.late strong{color:var(--kx-red)}
.cact-tabs{display:flex;gap:10px;flex-wrap:wrap;padding:16px 18px 0}
.cact-toolbar{flex-wrap:wrap;align-items:flex-end}
.cact-toolbar .cact-search{flex:1 1 240px;max-width:420px}
.cact-date{display:flex;align-items:center;gap:6px;white-space:nowrap}
.cact-date input{margin-top:0;min-width:150px}
.cact-table td{vertical-align:top}
.cact-table tr.cact-late td:first-child{box-shadow:inset 3px 0 0 var(--kx-red)}
.cact-table tr.cact-cancelled td{color:var(--kx-gray-500)}
.cact-type{gap:4px}
.cact-late-text{color:var(--kx-red)}
.cact-cal-head{display:flex;align-items:center;gap:10px;flex-wrap:wrap;padding:4px 18px 12px}
.cact-cal-head h2{margin:0 6px;color:var(--kx-navy);font-size:18px}
.cact-cal{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));border-top:1px solid var(--kx-gray-200);border-left:1px solid var(--kx-gray-200);margin:0 18px 18px}
.cact-wd{background:var(--kx-navy);color:var(--kx-white);font-size:12px;font-weight:500;padding:8px;text-align:center;border-right:1px solid var(--kx-navy-700)}
.cact-day{min-height:112px;min-width:0;border-right:1px solid var(--kx-gray-200);border-bottom:1px solid var(--kx-gray-200);padding:6px;display:flex;flex-direction:column;gap:4px;background:var(--kx-white)}
.cact-day.out{background:var(--kx-gray-100)}
.cact-day.out .cact-day-head strong{color:var(--kx-gray-500)}
.cact-day.today{box-shadow:inset 0 0 0 2px var(--kx-orange)}
.cact-day-head{display:flex;align-items:center;gap:6px}
.cact-day-head strong{color:var(--kx-navy);font-size:14px}
.cact-day-name{display:none;font-size:12px;color:var(--kx-gray-500)}
.cact-day-add{margin-left:auto;border:1px solid var(--kx-gray-200);background:var(--kx-white);color:var(--kx-navy);width:24px;height:24px;line-height:20px;border-radius:var(--kx-radius-btn);padding:0;font-size:15px;opacity:.55}
.cact-day:hover .cact-day-add,.cact-day-add:focus{opacity:1}
.cact-ev{display:block;width:100%;text-align:left;border:0;border-left:3px solid var(--kx-navy-300);background:var(--kx-navy-50);color:var(--kx-navy-900);font-size:11px;padding:3px 6px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;border-radius:0}
.cact-ev span{font-weight:600}
.cact-ev.green{border-left-color:var(--kx-success);background:var(--kx-success-50)}
.cact-ev.amber{border-left-color:var(--kx-orange);background:var(--kx-orange-50)}
.cact-ev.gray{border-left-color:var(--kx-gray-300);background:var(--kx-gray-100)}
.cact-ev.late{border-left-color:var(--kx-red);background:var(--kx-red-50)}
.cact-ev.closed{opacity:.6;text-decoration:line-through}
.cact-more{text-align:left;padding:0 4px;color:var(--kx-navy)}
.cact-links .cact-link-chips{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:10px}
.cact-chipline{max-width:none;display:inline-flex;align-items:center;gap:4px}
.cact-chipline .text-btn{color:var(--kx-red);font-size:15px;padding:0 2px}
.cact-link-search{display:flex;gap:8px;flex-wrap:wrap;align-items:center}
.cact-link-search select{flex:0 1 200px;width:auto}
.cact-link-search input{flex:1 1 220px;width:auto}
.cact-link-results{display:grid;gap:4px;margin-top:8px;max-height:220px;overflow:auto;overscroll-behavior:contain}
.cact-link-item{display:flex;justify-content:space-between;gap:10px;text-align:left;border:1px solid var(--kx-gray-200);background:var(--kx-white);padding:8px 10px;color:var(--kx-navy);border-radius:var(--kx-radius-btn)}
.cact-link-item:hover{border-color:var(--kx-orange)}
.cact-past{display:flex;align-items:center;gap:8px;margin-top:12px}
.cact-past input{margin:0}
.cact-text{white-space:pre-wrap;overflow-wrap:anywhere;font-size:13px;color:var(--kx-gray-900)}
.cact-linkline{display:flex;flex-wrap:wrap;gap:6px}
.cact-linkline .tag{cursor:pointer;max-width:none}
.cact-photo-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:10px}
.cact-photo{margin:0;border:1px solid var(--kx-gray-200);background:var(--kx-white);min-width:0}
.cact-photo img{display:block;width:100%;height:130px;object-fit:cover;background:var(--kx-gray-100)}
.cact-photo figcaption{font-size:11px;color:var(--kx-gray-700);padding:6px;overflow-wrap:anywhere}
.cact-photo-actions{display:flex;gap:10px;flex-wrap:wrap;align-items:center;margin-top:10px}
.cact-upload{cursor:pointer;display:inline-flex;align-items:center}
.cact-panel-head{display:flex;justify-content:space-between;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:8px}
.cact-panel .table-wrap{max-height:340px;overflow:auto;overscroll-behavior:contain}
.cact-related{display:flex;flex-wrap:wrap;gap:6px}
.cact-related .tag{cursor:pointer;max-width:none}
@media(max-width:900px){.cact-chips{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:700px){
  .cact-cal{grid-template-columns:minmax(0,1fr);margin:0 12px 12px}
  .cact-wd,.cact-day.empty{display:none}
  .cact-day{min-height:0}
  .cact-day-name{display:inline}
  .cact-ev{white-space:normal;font-size:12px;padding:6px 8px}
  .cact-day-add{opacity:1}
  .cact-toolbar .cact-search,.cact-date,.cact-date input{flex:1 1 100%;max-width:none}
  /* ตารางกิจกรรมบนมือถือ = การ์ดทีละรายการ (ไม่บีบคอลัมน์) */
  .cact-table{min-width:0}
  .cact-table thead{display:none}
  .cact-table tbody tr{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:4px 12px;padding:12px 14px;border-bottom:1px solid var(--kx-gray-200)}
  .cact-table tbody td{display:block;padding:0;border:0;min-width:0;overflow-wrap:anywhere}
  .cact-table tbody td[data-label="หัวข้อ / ลูกค้า"],.cact-table tbody td[data-label="เชื่อมกับ"],.cact-table tbody td.row-actions{grid-column:1/-1}
  .cact-table tbody td[data-label="เชื่อมกับ"]:has(> .sub:only-child){display:none}
  .cact-table tbody td.row-actions{white-space:normal;padding-top:6px}
  .cact-table tr.cact-late td:first-child{box-shadow:none}
  .cact-table tr.cact-late{box-shadow:inset 3px 0 0 var(--kx-red)}
}
/* v2.11.0 ดึงข้อมูลกลับจาก WINSpeed (crm_ar.js) — สถานะใบสั่งขาย / ยอดค้างชำระ / ลูกหนี้ */
.car-box{margin:16px 0}
.car-head{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:8px}
.car-head .crm-h3{margin:0}
.car-now{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin:10px 0}
.car-steps{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:0;list-style:none;margin:14px 0;padding:0;counter-reset:none}
.car-step{position:relative;display:flex;flex-direction:column;align-items:center;gap:6px;text-align:center;font-size:12px;color:var(--kx-gray-500);min-width:0}
.car-step::before{content:'';position:absolute;top:14px;left:-50%;width:100%;height:2px;background:var(--kx-gray-200);z-index:0}
.car-step:first-child::before{display:none}
.car-step.done::before{background:var(--kx-navy)}
.car-dot{position:relative;z-index:1;display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;border-radius:50%;
  border:2px solid var(--kx-gray-300);background:var(--kx-white);font-weight:600;color:var(--kx-gray-500)}
.car-step.done{color:var(--kx-navy)}
.car-step.done .car-dot{background:var(--kx-navy);border-color:var(--kx-navy);color:var(--kx-white)}
.car-step.now .car-dot{box-shadow:0 0 0 4px var(--kx-orange-100);border-color:var(--kx-orange);background:var(--kx-orange)}
.car-sums{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:10px;margin:12px 0}
.car-sums>div{display:flex;flex-direction:column;gap:2px;padding:10px 12px;border:1px solid var(--kx-gray-200);background:var(--kx-gray-100);min-width:0}
.car-sums>div strong{font-size:18px;color:var(--kx-navy)}
.car-sums>div.late{border-color:var(--kx-red);background:var(--kx-red-50)}
.car-sums>div.late strong{color:var(--kx-red-700)}
.car-install{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:10px}
.car-install>div{display:flex;flex-direction:column;gap:4px;padding:10px 12px;border:1px solid var(--kx-gray-200);min-width:0}
.car-tabs{display:flex;flex-wrap:wrap;gap:8px;margin:10px 0}
.car-table td,.car-table th{white-space:nowrap}
.car-table tr.car-late td:first-child{box-shadow:inset 3px 0 0 var(--kx-red)}
.car-late-text{color:var(--kx-red-700);font-weight:600}
.car-warn{margin:10px 0}
.car-stage{margin-left:4px}
.car-cards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-bottom:16px}
.car-card{display:flex;flex-direction:column;align-items:flex-start;gap:4px;padding:14px 16px;border:1px solid var(--kx-gray-200);background:var(--kx-white);
  color:var(--kx-navy);text-align:left;border-radius:var(--kx-radius-none);cursor:pointer}
.car-card strong{font-size:22px}
.car-card>span:first-child{font-size:12px;color:var(--kx-gray-700)}
.car-card.on{border-color:var(--kx-orange);box-shadow:inset 0 -3px 0 var(--kx-orange)}
.car-card.late strong{color:var(--kx-red-700)}
.car-sync-state{padding:10px 12px;margin-bottom:12px;border:1px solid var(--kx-gray-200);background:var(--kx-gray-100);line-height:1.9}
.car-codes{display:grid;gap:8px;margin:12px 0}
@media(max-width:700px){
  .car-cards{grid-template-columns:minmax(0,1fr)}
  .car-steps{grid-template-columns:minmax(0,1fr);gap:8px}
  .car-step{flex-direction:row;text-align:left}
  .car-step::before{display:none}
  .car-ar-table{min-width:0}
  .car-ar-table thead{display:none}
  .car-ar-table tbody tr{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:4px 12px;padding:12px 14px;border-bottom:1px solid var(--kx-gray-200)}
  .car-ar-table tbody td,.car-ar-table tbody td.num{display:block;padding:0;border:0;min-width:0;overflow-wrap:anywhere;text-align:left}
  .car-ar-table tbody td[data-label]::before{content:attr(data-label);display:block;font-size:11px;color:var(--kx-gray-500)}
  .car-ar-table tbody td:first-child,.car-ar-table tbody td.row-actions{grid-column:1/-1}
}
/* v2.12.0 เป้าหมาย / พยากรณ์ (crm_targets.js + กล่อง Dashboard) */
.ctg-period{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin:0 0 14px}
.ctg-period select,.ctg-period input{width:auto;min-width:140px}
.ctg-cards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-bottom:16px}
.ctg-cards>div{display:flex;flex-direction:column;gap:6px;padding:14px 16px;border:1px solid var(--kx-gray-200);background:var(--kx-white);min-width:0}
.ctg-cards>div>span:first-child{font-size:12px;color:var(--kx-gray-700)}
.ctg-cards strong{font-size:22px;color:var(--kx-navy)}
.ctg-bar{position:relative;height:10px;background:var(--kx-gray-200);border-radius:var(--kx-radius-btn);overflow:visible;min-width:80px}
.ctg-bar>span{display:block;height:100%;background:var(--kx-navy);border-radius:var(--kx-radius-btn)}
.ctg-bar.done>span{background:var(--kx-success)}
.ctg-bar.behind>span{background:var(--kx-orange)}
.ctg-bar>i{position:absolute;top:-3px;bottom:-3px;width:2px;background:var(--kx-gray-700)}
.ctg-pcol{min-width:160px}
.ctg-amount{max-width:150px;text-align:right}
.ctg-note{max-width:180px;margin-top:4px}
.ctg-actions{display:flex;flex-wrap:wrap;gap:8px}
.ctg-chart{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:12px;height:220px;align-items:end;padding-top:10px}
.ctg-col{display:flex;flex-direction:column;align-items:center;gap:6px;height:100%;min-width:0}
.ctg-stack{position:relative;flex:1;width:60%;display:flex;flex-direction:column-reverse;border-bottom:1px solid var(--kx-gray-300)}
.ctg-actual{display:block;background:var(--kx-navy)}
.ctg-weighted{display:block;background:var(--kx-orange-300)}
.ctg-target{position:absolute;left:-8px;right:-8px;height:0;border-top:2px dashed var(--kx-red)}
.ctg-label{font-size:12px;color:var(--kx-gray-700);white-space:nowrap}
.ctg-legend{display:flex;flex-wrap:wrap;gap:16px;margin-top:10px;font-size:12px;color:var(--kx-gray-700)}
.ctg-legend i{display:inline-block;width:12px;height:12px;margin-right:6px;vertical-align:-1px}
.ctg-legend i.ctg-target-key{height:0;border-top:2px dashed var(--kx-red);vertical-align:3px}
.ctg-table tr.ctg-late td:first-child{box-shadow:inset 3px 0 0 var(--kx-red)}
.ctg-reasons{display:grid;gap:10px;padding:0 20px 18px}
.ctg-reason{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(0,1fr) 48px;gap:12px;align-items:center}
.ctg-reason>div:first-child{display:flex;flex-direction:column;min-width:0}
.ctg-rpct{text-align:right;font-weight:600;color:var(--kx-navy)}
.sdash-target{margin-bottom:14px}
.sdash-target-head{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:6px}
.sdash-target-head strong{font-size:20px;color:var(--kx-navy)}
@media(max-width:700px){
  .ctg-cards{grid-template-columns:minmax(0,1fr)}
  .ctg-chart{gap:4px;height:180px}
  .ctg-label{font-size:10px;white-space:normal;text-align:center}
  .ctg-table{min-width:0}
  .ctg-table thead{display:none}
  .ctg-table tbody tr{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:6px 12px;padding:12px 14px;border-bottom:1px solid var(--kx-gray-200)}
  .ctg-table tbody td,.ctg-table tbody td.num{display:block;padding:0;border:0;min-width:0;text-align:left;overflow-wrap:anywhere}
  .ctg-table tbody td:first-child,.ctg-table tbody td.ctg-pcol,.ctg-table tbody td:has(.ctg-amount){grid-column:1/-1}
  .ctg-table tbody td:has(.ctg-amount){display:flex;flex-wrap:wrap;gap:6px}
  .ctg-table tbody td:has(.ctg-amount)::before{flex-basis:100%}
  .ctg-table tbody td:has(.ctg-amount) .ctg-amount,.ctg-table tbody td:has(.ctg-amount) .ctg-note{flex:1 1 140px;margin:0}
  .ctg-table tbody td[data-label]::before{content:attr(data-label);display:block;font-size:11px;color:var(--kx-gray-500)}
  .ctg-amount,.ctg-note{max-width:none}
  .ctg-reason{grid-template-columns:minmax(0,1fr) 48px}
  .ctg-reason .ctg-bar{grid-column:1/-1;grid-row:2}
}
.ctg-reasons-dash{padding:0 0 10px}
.cact-rep-chips{margin:0 20px 16px}
.cact-week-h{margin:22px 20px 10px}
@media(max-width:700px){.cact-rep-chips{margin:0 12px 12px}.cact-week-h{margin:18px 12px 8px}}

/* ---------------------------------------------------------------- v2.14.0 Kanban โอกาสการขาย / ประวัติลูกค้า / รวมลูกค้าซ้ำ / PWA */
.cbd-toggle{display:inline-flex;border:1px solid var(--kx-gray-200);border-radius:var(--kx-radius-btn);overflow:hidden;background:var(--kx-white)}
.cbd-toggle button{border:0;background:transparent;padding:9px 16px;font-weight:500;color:var(--kx-gray-500);min-height:40px}
.cbd-toggle button.on{background:var(--kx-navy);color:var(--kx-white)}
.cbd-wrap{padding-bottom:16px}
.cbd-hint{margin:0 20px 12px}
.cbd-board{display:grid;grid-auto-flow:column;grid-auto-columns:minmax(250px,1fr);gap:12px;overflow-x:auto;padding:0 20px 8px;overscroll-behavior-x:contain;scroll-snap-type:x proximity}
.cbd-col{background:var(--kx-navy-50);border-top:3px solid var(--kx-navy-300);display:flex;flex-direction:column;min-height:240px;min-width:0;scroll-snap-align:start}
.cbd-col.cbd-proposal,.cbd-col.cbd-negotiation{border-top-color:var(--kx-navy)}
.cbd-col.cbd-won{border-top-color:var(--kx-success);background:var(--kx-success-50)}
.cbd-col.cbd-lost{border-top-color:var(--kx-gray-300);background:var(--kx-gray-100)}
.cbd-col.over{outline:2px dashed var(--kx-orange);outline-offset:-4px}
.cbd-col-head{padding:10px 12px 8px;border-bottom:1px solid var(--kx-navy-100)}
.cbd-col-head>div:first-child{display:flex;align-items:center;justify-content:space-between;gap:8px;color:var(--kx-navy)}
.cbd-count{background:var(--kx-white);border:1px solid var(--kx-navy-100);border-radius:var(--kx-radius-btn);padding:0 8px;font-size:13px;font-weight:500}
.cbd-list{display:flex;flex-direction:column;gap:8px;padding:10px;flex:1 1 auto;max-height:calc(100dvh - 300px);overflow-y:auto;overscroll-behavior:contain}
.cbd-card{background:var(--kx-white);border:1px solid var(--kx-gray-200);border-left:4px solid var(--kx-navy-300);padding:10px 10px 8px;display:flex;flex-direction:column;gap:6px;box-shadow:0 1px 2px rgba(1,31,68,.06)}
.cbd-card[draggable="true"]{cursor:grab}
.cbd-card.dragging{opacity:.45}
.cbd-card.late{border-left-color:var(--kx-red)}
.cbd-card-open{all:unset;cursor:pointer;display:flex;flex-direction:column;gap:2px;min-width:0}
.cbd-card-open:focus-visible{outline:2px solid var(--kx-orange);outline-offset:2px}
.cbd-no{font-size:12px;color:var(--kx-gray-500)}
.cbd-name{font-weight:500;color:var(--kx-navy);overflow-wrap:anywhere}
.cbd-cust{font-size:13px;color:var(--kx-gray-700);overflow-wrap:anywhere}
.cbd-meta{display:flex;flex-wrap:wrap;gap:4px 10px;font-size:13px;color:var(--kx-gray-700)}
.cbd-meta strong{color:var(--kx-gray-900)}
.cbd-late{color:var(--kx-red)}
.cbd-foot{display:flex;flex-wrap:wrap;align-items:center;gap:6px}
.cbd-foot .sub{flex:1 1 auto;min-width:0}
.cbd-idle{background:var(--kx-orange-50);border-color:var(--kx-orange-100);color:var(--kx-orange-700)}
.cbd-move{border:1px solid var(--kx-gray-200);background:var(--kx-white);border-radius:var(--kx-radius-btn);padding:4px 10px;font-size:13px;color:var(--kx-navy);white-space:nowrap;min-height:32px}
.cbd-move:hover{background:var(--kx-navy-50)}
.cbd-empty{color:var(--kx-gray-500);font-size:13px;text-align:center;margin:8px 0}
.cbd-stage-pick{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:8px;padding-bottom:8px}
.cbd-stage-pick .btn{min-height:44px}
.cbd-stats{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:10px;margin:0 0 16px}
.cbd-stat{border:1px solid var(--kx-gray-200);border-top:3px solid var(--kx-navy);padding:10px 12px;display:flex;flex-direction:column;gap:2px;min-width:0}
.cbd-stat strong{font-size:20px;color:var(--kx-navy);font-weight:500}
.cbd-stat.bad{border-top-color:var(--kx-red)}.cbd-stat.bad strong{color:var(--kx-red)}
.cbd-stat.good{border-top-color:var(--kx-success)}
.cbd-chips{display:flex;flex-wrap:wrap;gap:6px;margin:0 0 12px}
.cbd-chips button{border:1px solid var(--kx-gray-200);background:var(--kx-white);border-radius:var(--kx-radius-btn);padding:6px 12px;color:var(--kx-gray-700);min-height:36px}
.cbd-chips button.on{background:var(--kx-navy);border-color:var(--kx-navy);color:var(--kx-white)}
.cbd-chips button span{opacity:.75;font-size:12px}
.cbd-timeline{list-style:none;margin:0;padding:0 0 0 6px;border-left:2px solid var(--kx-navy-100)}
.cbd-ev{display:flex;align-items:flex-start;gap:10px;padding:8px 0 10px 0;margin-left:-16px}
.cbd-ev-sep{list-style:none;margin:6px 0 2px -6px;padding:2px 10px;background:var(--kx-navy-50);color:var(--kx-navy);font-weight:500;font-size:13px;display:inline-block}
.cbd-ev-icon{flex:0 0 28px;height:28px;border-radius:var(--kx-radius-round);background:var(--kx-white);border:2px solid var(--kx-navy-300);display:flex;align-items:center;justify-content:center;font-size:13px;color:var(--kx-navy)}
.cbd-ev.good .cbd-ev-icon{border-color:var(--kx-success);color:var(--kx-success)}
.cbd-ev.bad .cbd-ev-icon{border-color:var(--kx-red);color:var(--kx-red)}
.cbd-ev.activity .cbd-ev-icon{border-color:var(--kx-orange)}
.cbd-ev-body{flex:1 1 auto;min-width:0;overflow-wrap:anywhere}
.cbd-ev-top strong{color:var(--kx-gray-900);font-weight:500}
.cbd-ev-at{font-size:12px}
.cbd-ev .table-action{flex:0 0 auto;white-space:nowrap}
.cbd-group{border:1px solid var(--kx-gray-200);margin:0 0 14px;padding:10px 12px}
.cbd-group-head{margin-bottom:6px;color:var(--kx-navy)}
.cbd-group-foot{display:flex;justify-content:flex-end;margin-top:8px}
.cbd-list-plain{margin:0 0 8px;padding-left:20px}
.pwa-install{display:inline-flex;align-items:center;gap:6px;border:1px solid var(--kx-orange-300);background:var(--kx-orange-50);color:var(--kx-orange-700);border-radius:var(--kx-radius-btn);padding:6px 12px;font-weight:500;min-height:36px;white-space:nowrap}
.pwa-install svg{width:18px;height:18px}
.pwa-install:hover{background:var(--kx-orange-100)}
.pwa-help{padding:0 0 12px}
.pwa-steps{padding-left:22px;line-height:1.7}
@media(max-width:700px){
  .cbd-board{grid-auto-columns:minmax(78vw,1fr);padding:0 12px 8px}
  .cbd-hint{margin:0 12px 10px}
  .cbd-list{max-height:none}
  .cbd-stats{grid-template-columns:repeat(2,minmax(0,1fr))}
  .pwa-install span{display:none}
  .pwa-install{padding:6px 8px}
}
/* v2.15.0 WINSpeed · ข้อมูลหลัก › ทะเบียนสินค้า (ws_master.js) — โทเคน CI เท่านั้น */
.wsm-toolbar select{width:auto;min-width:150px;max-width:240px}
.wsm-table tbody tr.wsm-row{cursor:pointer}
.wsm-table td[data-col="name"]{min-width:240px}
.wsm-table td[data-col="name_en"]{min-width:160px}
.wsm-table td[data-col="code"],.wsm-table td.num,.wsm-table .pill{white-space:nowrap}
.wsm-table tbody tr.wsm-row:hover td,.wsm-table tbody tr.wsm-row:focus-visible td{background:var(--kx-navy-50)}
.wsm-table tbody tr.wsm-row:focus-visible{outline:2px solid var(--kx-orange);outline-offset:-2px}
.wsm-grid{margin:0 0 16px}
.wsm-tabs{margin-top:8px}
.wsm-tab-body{min-height:120px}
.wsm-tab-body .table-wrap{max-height:52dvh;overflow:auto;overscroll-behavior:contain}
@media(max-width:700px){
  .wsm-toolbar select{max-width:none;flex:1 1 140px}
  .wsm-table{min-width:0}
  .wsm-table thead{display:none}
  .wsm-table tbody tr{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:4px 12px;padding:12px 14px;border-bottom:1px solid var(--kx-gray-200)}
  .wsm-table tbody td,.wsm-table tbody td.num,.wsm-table td[data-col]{display:block;min-width:0;padding:0;border:0;min-width:0;overflow-wrap:anywhere;text-align:left}
  .wsm-table tbody td[data-label]::before{content:attr(data-label);display:block;font-size:11px;color:var(--kx-gray-500)}
  .wsm-table tbody td[data-col="code"],.wsm-table tbody td[data-col="name"],.wsm-table tbody td.row-actions{grid-column:1/-1}
}
/* v2.16.0 ฟอร์มเพิ่มสินค้าใน WINSpeed (ws_master.js openNew) — โทเคน CI เท่านั้น */
.wsm-units{margin-top:12px}
.wsm-units select{min-width:180px}
.wsm-units input[data-uf=rate]{max-width:140px}
@media(max-width:700px){
  .wsm-units table{min-width:0}
  .wsm-units thead{display:none}
  .wsm-units tbody tr{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:8px 12px;padding:10px 0;border-bottom:1px solid var(--kx-gray-200)}
  .wsm-units tbody td{display:block;min-width:0;padding:0;border:0}
  .wsm-units tbody td[data-label]::before{content:attr(data-label);display:block;font-size:11px;color:var(--kx-gray-500)}
  .wsm-units tbody td:first-child,.wsm-units tbody td.row-actions{grid-column:1/-1}
  .wsm-units tbody td.row-actions{text-align:right}
  .wsm-units select,.wsm-units input[data-uf=rate]{min-width:0;max-width:none;width:100%}
}
/* v2.17.0 ฟอร์มเพิ่มสินค้าครบทุกคอลัมน์ EMGood — แท็บในหน้าต่าง (โทเคน CI เท่านั้น) */
.wsm-ftabs{margin:4px 0 12px;flex-wrap:wrap}
.wsm-fpanel .form-grid label .sub{font-weight:400}
.wsm-presets{display:flex;flex-wrap:wrap;align-items:center;gap:8px}
.wsm-system{font-size:13px;color:var(--kx-gray-500)}
.wsm-system ul{margin:6px 0 0;padding-left:18px}
/* v2.18.0 WINSpeed จัดหมวดแบบ Enterprise Manager + ตารางโล่ง (เลือกคอลัมน์ / Popup ชี้เมาส์) — โทเคน CI เท่านั้น */
.wsm-crumbs{display:flex;align-items:center;gap:8px;flex-wrap:wrap;font-size:12px;color:var(--kx-gray-500);margin:-10px 0 12px}
.wsm-crumbs .text-btn{padding:0;color:var(--kx-navy);font-weight:500;font-size:12px}
.wsm-crumbs strong{color:var(--kx-navy);font-weight:600}
.wsm-toolbar{align-items:center}
.wsm-toolbar input[type=search]{flex:1 1 260px}
.wsm-colwrap{position:relative}
.wsm-colpick{position:absolute;right:0;top:calc(100% + 6px);z-index:30;background:var(--kx-white);border:1px solid var(--kx-gray-200);box-shadow:0 12px 32px rgba(1,39,86,.18);padding:12px 14px;min-width:250px;display:grid;gap:6px}
.wsm-colpick[hidden],.wsm-filters[hidden],.wsm-pop[hidden]{display:none}
.wsm-colpick-head{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-bottom:2px;color:var(--kx-navy)}
.wsm-colpick .checkbox-label{display:flex;align-items:center;gap:8px;font-size:13px;color:var(--kx-navy);font-weight:400;white-space:nowrap}
.wsm-colpick .checkbox-label input{margin:0}
.wsm-colpick .sub{margin:4px 0 0;white-space:normal}
.wsm-filters{display:flex;flex-wrap:wrap;align-items:center;gap:8px;padding:0 0 14px}
.wsm-filters select{width:auto;min-width:160px;max-width:240px;min-height:38px;font-size:13px;padding:6px 10px}
.wsm-pager{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.wsm-pager select{width:auto;min-height:31px;padding:4px 8px;font-size:12px}
.wsm-table tbody tr.wsm-row:not(.wsm-click){cursor:default}
@media(min-width:701px){
  .wsm-table td.num,.wsm-table th.num{text-align:right}
  .wsm-table tbody td{padding:9px 14px;line-height:1.5}
  .wsm-table thead th{padding:10px 14px}
}
.wsm-pop{position:fixed;z-index:200;width:max-content;max-width:min(380px,calc(100vw - 16px));min-width:240px;background:var(--kx-white);border:1px solid var(--kx-gray-200);border-top:3px solid var(--kx-navy);box-shadow:0 16px 40px rgba(1,39,86,.22);padding:12px 14px;font-size:12px;line-height:1.6;pointer-events:none}
.wsm-pop-title{font-weight:600;color:var(--kx-navy);font-size:13px}
.wsm-pop-name{color:var(--kx-navy-700);margin-top:2px}
.wsm-pop-grid{display:grid;gap:2px;margin-top:8px;padding-top:8px;border-top:1px solid var(--kx-gray-100)}
.wsm-pop-row{display:grid;grid-template-columns:104px minmax(0,1fr);gap:10px}
.wsm-pop-row span{color:var(--kx-gray-500)}
.wsm-pop-row b{font-weight:500;color:var(--kx-navy);overflow-wrap:anywhere}
.wsm-pop-hint{margin-top:8px;color:var(--kx-orange-700);font-size:11px}
.wsm-grid-main{margin-bottom:10px}
.wsm-more{margin:0 0 14px;border:1px solid var(--kx-gray-200);padding:0 14px}
.wsm-more>summary{cursor:pointer;padding:10px 0;color:var(--kx-navy);font-size:13px;font-weight:500}
.wsm-more[open]>summary{border-bottom:1px solid var(--kx-gray-100);margin-bottom:12px}
/* หน้าหลัก Enterprise Manager / ข้อมูลหลัก: รายการหมวดด้านซ้าย + เนื้อหาด้านขวา */
.wsm-em-body{padding:20px 22px;margin:0}
.wsm-em-title{margin-bottom:14px}
.wsm-em-title h2{margin:0;color:var(--kx-navy)}
.wsm-em-title .sub{margin:4px 0 0;font-size:12px}
.wsm-em-note{font-size:12px;color:var(--kx-gray-500);margin:16px 0 0;border-left:3px solid var(--kx-navy-200);padding:6px 12px;background:var(--kx-gray-100)}
.wsm-em-links{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px}
.wsm-tiles{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:12px}
.wsm-tile{display:flex;flex-direction:column;align-items:center;justify-content:flex-start;gap:6px;min-height:118px;padding:16px 10px 12px;border:1px solid var(--kx-gray-200);background:var(--kx-white);color:var(--kx-navy);text-align:center;font-size:13px;border-radius:var(--kx-radius-btn)}
button.wsm-tile:hover{border-color:var(--kx-orange);box-shadow:0 6px 18px rgba(1,39,86,.10)}
button.wsm-tile:focus-visible{outline:2px solid var(--kx-orange);outline-offset:2px}
.wsm-tile-icon{display:flex;align-items:center;justify-content:center;width:42px;height:42px;background:var(--kx-navy-50);color:var(--kx-navy);font-size:20px}
.wsm-tile-label{font-weight:500;line-height:1.35}
.wsm-tile-sub{font-size:11px;color:var(--kx-gray-500);line-height:1.35}
.wsm-tile.off{color:var(--kx-gray-500);background:var(--kx-gray-100);border-style:dashed;cursor:not-allowed}
.wsm-tile.off .wsm-tile-icon{background:var(--kx-gray-200);color:var(--kx-gray-500)}
.wsm-mtable td[data-col="name"]{min-width:220px}
@media(max-width:700px){
  .wsm-em-body{padding:14px}
  .wsm-tiles{grid-template-columns:repeat(auto-fill,minmax(100px,1fr));gap:8px}
  .wsm-tile{min-height:104px;padding:12px 6px 10px;font-size:12px}
  .wsm-filters select{max-width:none;flex:1 1 140px}
  .wsm-colpick{position:fixed;left:12px;right:12px;top:auto;bottom:12px;max-height:70dvh;overflow:auto}
  .wsm-table tbody tr{grid-template-columns:repeat(3,minmax(0,1fr));padding:10px 14px}
  .wsm-table tbody td[data-col="code"]::before,.wsm-table tbody td[data-col="name"]::before{display:none}
  .wsm-table tbody td[data-col="name"]{margin-bottom:4px}
}
/* v2.18.0 แผนภาพหน้าแรก Enterprise Manager (แบบ WINSpeed) */
.wsm-flow{position:relative;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));grid-template-rows:repeat(4,minmax(112px,auto));gap:18px 28px;padding:6px 0}
.wsm-flow-lines{position:absolute;inset:0;width:100%;height:100%;pointer-events:none}
.wsm-flow-lines polyline{fill:none;stroke:var(--kx-navy-300);stroke-width:2;vector-effect:non-scaling-stroke}
.wsm-flow-node{position:relative;z-index:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;padding:12px 8px;border:1px solid var(--kx-gray-200);background:var(--kx-white);color:var(--kx-navy);border-radius:var(--kx-radius-btn);text-align:center;font-size:13px}
.wsm-flow-node.live{border-color:var(--kx-orange)}
.wsm-flow-node:hover{box-shadow:0 6px 18px rgba(1,39,86,.10);border-color:var(--kx-orange)}
.wsm-flow-node:focus-visible{outline:2px solid var(--kx-orange);outline-offset:2px}
@media(max-width:700px){
  .wsm-flow{grid-template-columns:repeat(2,minmax(0,1fr));grid-template-rows:none;gap:8px}
  .wsm-flow-node{grid-column:auto!important;grid-row:auto!important}
  .wsm-flow-lines{display:none}
}
/* v2.18.0 Data Structure — ตารางคอลัมน์ในหน้าต่าง */
.wsm-dd-wrap{max-height:62dvh;overflow:auto;overscroll-behavior:contain}
.wsm-ddcols td{vertical-align:top}
.wsm-ddcols td[data-col="name"]{min-width:200px}

/* v2.18.0 (2026-11-08 00:24) Sidebar WINSpeed: เมนูหลัก (Enterprise Manager / Modules) › เมนูย่อย (Setup / Module) — ws_master.js renderNav() */
.ws-nav{gap:2px}
.ws-nav-group{display:grid;gap:2px}
.ws-nav-row{display:flex;align-items:stretch}
.ws-nav-row .ws-nav-head{flex:1;min-width:0;color:var(--kx-white);font-weight:500}
.ws-nav-head.has-active-child .nav-child-icon{color:var(--kx-orange)}
.ws-nav-caret{flex:none;width:34px;border:0;background:transparent;color:var(--kx-navy-100);cursor:pointer;display:flex;align-items:center;justify-content:center;padding:0}
.ws-nav-caret:hover,.ws-nav-caret:focus-visible{background:rgba(255,255,255,.07);color:var(--kx-white)}
.ws-nav-caret .nav-chevron{width:14px;height:14px}
.ws-nav-caret[aria-expanded="false"] .nav-chevron{transform:rotate(-90deg)}
.ws-nav-sub{display:grid;gap:1px;margin:0 0 6px 13px;padding-left:8px;border-left:1px solid rgba(255,255,255,.14)}
.ws-nav-sub[hidden]{display:none}
.ws-nav-sub .nav-child{min-height:32px;padding:5px 8px;font-size:12px}
.ws-nav-sub .nav-child-icon{font-size:13px;min-width:16px}
.ws-nav-dot{flex:none;width:6px;height:6px;border-radius:50%;background:var(--kx-orange);margin-left:auto}
@media(min-width:971px){
  .shell.sidebar-collapsed .ws-nav .ws-nav-sub,.shell.sidebar-collapsed .ws-nav .ws-nav-caret{display:none}
  .shell.sidebar-collapsed .ws-nav .ws-nav-head{justify-content:center}
}
@media(max-width:970px){
  .ws-nav-sub .nav-child{min-height:38px}
  .ws-nav-caret{width:42px}
}
.wsm-em-page{max-width:1280px}
.wsm-em-icon{display:inline-block;margin-right:8px;color:var(--kx-orange)}
.wsm-em-page>.wsm-crumbs{margin:0 0 10px}
.wsm-pickrow{display:flex;flex-wrap:wrap;gap:10px;align-items:flex-end;margin:0 0 14px}
.wsm-pick{display:grid;gap:4px;min-width:min(340px,100%)}
.wsm-pick select{min-height:40px}
/* v2.19.0 ลบข้อมูลหลัก / สินค้า WINSpeed — รายการตารางที่ยังใช้อยู่ */
.wsm-blockers{margin:10px 0 0;padding-left:20px;display:grid;gap:4px;font-size:13px}
.wsm-blockers code{color:var(--kx-navy)}

/* v2.20.0 คัดลอกใบเสนอราคาเป็นใบใหม่ */
.crm-copy-opts{display:grid;gap:10px;margin:4px 0 12px}
.crm-copy-opts .checkbox-label{display:flex;flex-wrap:nowrap;width:100%;align-items:flex-start;gap:10px;padding:10px 12px;border:1px solid var(--kx-gray);border-radius:10px;cursor:pointer}
.crm-copy-opts .checkbox-label input{margin-top:3px;flex:0 0 auto}
.crm-copy-opts .checkbox-label:has(input:checked){border-color:var(--kx-navy);background:var(--kx-navy-50)}
.crm-copy-note .sub{margin-top:4px}
