/* BTGV › Tấm tiêu chuẩn D-Plate (frontend/btgv-standard-plate.js). Theo mockup bản 8 đã chốt 2026-10-12; dùng token BMS. */
.btgv-sp-btn{display:inline-flex;align-items:center;gap:8px;border-color:var(--bms-primary)!important;color:var(--bms-primary)!important;background:var(--bms-primary-soft)!important}
.btgv-sp-btn svg{width:16px;height:16px;fill:currentColor}
.btgv-sp-btn[hidden],.btgv-sp-foot[hidden]{display:none!important}
.cost-add-row td .btgv-sp-foot{width:auto!important;white-space:nowrap;color:var(--bms-primary)!important}
.btgv-sp-chip{display:inline-flex;align-items:center;gap:8px;margin:0 auto 0 12px;padding:4px 6px 4px 14px;min-height:36px;border:1px solid color-mix(in srgb,var(--bms-primary) 32%,transparent);border-radius:999px;background:var(--bms-primary-soft);color:var(--bms-primary-active,var(--bms-primary));font-size:12px}
.btgv-sp-chip strong{font-size:13px}
.btgv-sp-chip small{color:var(--bms-text-muted)}
.btgv-sp-chip button{height:28px;padding:0 12px;border:0;border-radius:999px;background:var(--bms-primary);color:#fff;font:600 12px var(--bms-font-ui,inherit);cursor:pointer}
.btgv-sp-tag{display:block;margin-top:2px;color:var(--bms-primary-active,var(--bms-primary));font-size:10px;white-space:nowrap}
.btgv-sp-tag.edited{color:var(--bms-warning);font-weight:700}

/* Hộp thoại chọn tấm */
.btgv-sp-dialog{width:min(800px,calc(100vw - 32px));max-width:none;max-height:calc(100dvh - 48px);padding:0;overflow:hidden;border:1px solid var(--bms-border);border-radius:16px;color:var(--bms-text);background:var(--bms-surface);box-shadow:var(--bms-shadow-overlay)}
.btgv-sp-dialog[open]{display:flex;flex-direction:column}
.btgv-sp-dialog::backdrop{background:var(--bms-backdrop);backdrop-filter:blur(2px)}
.btgv-sp-dialog>header{display:flex;align-items:center;gap:16px;padding:14px 18px 12px;border-bottom:1px solid var(--bms-border)}
.btgv-sp-dialog>header>div{flex:1;min-width:0}
.btgv-sp-dialog h3{margin:0;font-size:16px}
.btgv-sp-dialog>header p{margin:2px 0 0;color:var(--bms-text-muted);font-size:12px;overflow-wrap:anywhere}
.btgv-sp-link{padding:0;border:0;background:none;color:var(--bms-primary);font:600 12.5px var(--bms-font-ui,inherit);cursor:pointer}
.btgv-sp-link[hidden]{display:none}
.btgv-sp-x{flex:0 0 auto;width:32px;height:32px;border:1px solid var(--bms-border);border-radius:999px;background:var(--bms-surface);color:var(--bms-text);font-size:18px;cursor:pointer}
.btgv-sp-body{display:flex;flex:1;flex-direction:column;gap:12px;min-height:0;padding:14px 18px;overflow:auto}
.btgv-sp-dialog>footer{display:flex;align-items:center;gap:10px;padding:12px 18px;border-top:1px solid var(--bms-border)}
.btgv-sp-dialog>footer .btn{height:44px;padding:0 22px;border-radius:999px}
.btgv-sp-grow{flex:1}
.btgv-sp-sum{display:flex;flex-wrap:wrap;align-items:baseline;gap:4px 10px;margin:0;color:var(--bms-text-muted);font-size:12.5px}
.btgv-sp-sum b{color:var(--bms-text);font-size:16px}
.btgv-sp-sum small{color:var(--bms-warning);font-weight:600}
.btgv-sp-types{display:flex;flex-wrap:wrap;gap:5px}
.btgv-sp-types button{flex:1 1 0;min-width:44px;height:36px;padding:0 4px;border:1px solid var(--bms-border);border-radius:999px;background:var(--bms-surface);color:var(--bms-text);font:600 12.5px var(--bms-font-ui,inherit);cursor:pointer}
.btgv-sp-types button:hover{border-color:var(--bms-primary)}
.btgv-sp-types button[aria-checked="true"]{border-color:var(--bms-primary);background:var(--bms-primary);color:#fff}
.btgv-sp-ctl{display:flex;flex-wrap:wrap;align-items:center;gap:10px}
.btgv-sp-qty{display:inline-flex;align-items:center;height:36px;overflow:hidden;border:1px solid var(--bms-border);border-radius:999px;background:var(--bms-surface)}
.btgv-sp-qty label{display:flex;align-items:center;height:100%;padding:0 10px 0 14px;border-right:1px solid var(--bms-border);background:var(--bms-surface-subtle);color:var(--bms-text-muted);font-size:12.5px;font-weight:600}
.btgv-sp-qty button{width:30px;height:36px;border:0;background:transparent;color:var(--bms-primary);font-size:16px;cursor:pointer}
.btgv-sp-qty button:hover{background:var(--bms-primary-soft)}
.btgv-sp-dialog .btgv-sp-qty input{width:52px!important;min-width:0!important;height:34px;padding:0!important;border:0!important;box-shadow:none!important;background:transparent;color:var(--bms-text);text-align:center;font:700 14px var(--bms-font-ui,inherit)}
.btgv-sp-note{padding:3px 9px;border-radius:999px;background:var(--bms-primary-soft);color:var(--bms-primary-active,var(--bms-primary));font-size:12px;font-weight:600}
.btgv-sp-note.warn{background:var(--bms-warning-soft);color:var(--bms-warning)}
.btgv-sp-seg{display:inline-flex;gap:2px;height:36px;padding:2px;border:1px solid var(--bms-border);border-radius:999px;background:var(--bms-surface-subtle)}
.btgv-sp-seg button{height:30px;padding:0 14px;border:0;border-radius:999px;background:transparent;color:var(--bms-text-muted);font:600 12.5px var(--bms-font-ui,inherit);cursor:pointer}
.btgv-sp-seg button[aria-checked="true"]{background:var(--bms-surface);color:var(--bms-primary);box-shadow:0 1px 3px rgb(0 0 0/.16)}
.btgv-sp-prev-wrap{max-height:340px;overflow:auto;border:1px solid var(--bms-border);border-radius:10px}
.btgv-sp-prev{width:100%;border-collapse:collapse;font-size:12.5px;font-variant-numeric:tabular-nums}
.btgv-sp-prev th{position:sticky;top:0;z-index:1;padding:8px 10px;border-bottom:1px solid var(--bms-border);background:var(--bms-surface-subtle);color:var(--bms-text-muted);font-size:11px;letter-spacing:.02em;text-align:left;text-transform:uppercase}
.btgv-sp-prev td{padding:6px 10px;border-bottom:1px solid var(--bms-border)}
.btgv-sp-prev .n{text-align:right;white-space:nowrap}
.btgv-sp-prev td b{font-weight:500}
.btgv-sp-prev td small{margin-left:6px;color:var(--bms-text-muted);font-size:10.5px}
.btgv-sp-prev td i{color:var(--bms-text-muted);font-style:normal}
.btgv-sp-prev td.q{font-weight:700}
.btgv-sp-prev td.q i{font-weight:400}
.btgv-sp-prev tr.grp td{background:var(--bms-surface-subtle);color:var(--bms-text-muted);font-size:11px;font-weight:700;letter-spacing:.03em;padding:5px 10px;text-transform:uppercase}
.btgv-sp-prev tr.grp td span{margin-left:4px;padding:0 6px;border-radius:999px;background:var(--bms-primary-soft);color:var(--bms-primary)}
.btgv-sp-none{color:var(--bms-warning);font-size:11px}
.btgv-sp-skip{margin:-4px 0 0;color:var(--bms-text-muted);font-size:12px}
.btgv-sp-error{margin:0;color:var(--bms-danger);font-weight:600}

/* Cài đặt › Định mức tấm tiêu chuẩn */
.btgv-sp-settings{display:grid;gap:14px;min-width:0}
.btgv-sp-settings-head h3{margin:0;font-size:16px}
.btgv-sp-settings-head p{max-width:1100px;margin:4px 0 0;color:var(--bms-text-muted);font-size:12.5px}
.btgv-sp-norm-wrap{max-height:calc(100dvh - 300px);overflow:auto;border:1px solid var(--bms-border);border-radius:12px}
.btgv-sp-norm{min-width:100%;border-collapse:separate;border-spacing:0;font-size:12.5px}
.btgv-sp-norm th{position:sticky;top:0;z-index:2;padding:8px 6px;border-bottom:1px solid var(--bms-border-strong,var(--bms-border));background:var(--bms-warning-soft);color:var(--bms-text);font-size:13px;white-space:nowrap}
.btgv-sp-norm td{padding:3px 4px;border-bottom:1px solid var(--bms-border);background:var(--bms-surface)}
.btgv-sp-norm .sticky{position:sticky;z-index:1}
.btgv-sp-norm th.sticky{z-index:3}
.btgv-sp-norm .c1{left:0;width:44px;text-align:center;white-space:nowrap}
.btgv-sp-norm .c2{left:44px;min-width:200px}
.btgv-sp-norm .c3{width:56px;color:var(--bms-text-muted);text-align:center}
.btgv-sp-norm .c2 small{display:block;color:var(--bms-text-muted);font-size:10.5px}
.btgv-sp-norm .c2 small.warn{color:var(--bms-warning)}
.btgv-sp-norm input.btgv-sp-num,.btgv-sp-norm input.btgv-sp-unit,.btgv-sp-norm input.btgv-sp-name{box-sizing:border-box;height:30px!important;min-height:0!important;margin:0;padding:0 6px!important;border:1px solid var(--bms-border)!important;border-radius:8px!important;background:var(--bms-surface);color:var(--bms-text);box-shadow:none!important;font:13px var(--bms-font-ui,inherit)!important}
.btgv-sp-norm input.btgv-sp-num{width:64px!important;min-width:64px!important;text-align:right}
.btgv-sp-norm input.btgv-sp-unit{width:52px!important;min-width:52px!important;text-align:center}
.btgv-sp-norm input.btgv-sp-name{width:100%!important;min-width:170px!important}
.btgv-sp-norm input:focus{border-color:var(--bms-primary);outline:2px solid var(--bms-focus,var(--bms-primary))}
.btgv-sp-norm tr.kg td{background:var(--bms-success-soft)}
.btgv-sp-norm tr.kg input.btgv-sp-num{font-weight:700!important}
.btgv-sp-norm tr.grp td{padding:7px 10px;background:var(--bms-surface-subtle);color:var(--bms-text-muted);font-weight:700}
.btgv-sp-norm tr.picker td{background:var(--bms-primary-soft)}
.btgv-sp-add{height:32px;padding:0 14px;border:1px dashed var(--bms-primary);border-radius:999px;background:var(--bms-surface);color:var(--bms-primary);font:600 12px var(--bms-font-ui,inherit);white-space:nowrap;cursor:pointer}
.btgv-sp-del{width:20px;height:20px;margin-left:4px;padding:0;border:0;border-radius:999px;background:transparent;color:var(--bms-text-muted);font-size:14px;line-height:1;cursor:pointer;vertical-align:middle}
.btgv-sp-del:hover{background:var(--bms-danger-soft);color:var(--bms-danger)}
.btgv-sp-mini{padding:0;border:0;background:none;color:var(--bms-primary);font:600 10.5px var(--bms-font-ui,inherit);cursor:pointer}
.btgv-sp-picker{display:grid;gap:8px;min-width:340px;padding:6px 0}
.btgv-sp-picker .bms-search{--bms-search-width:100%}
.btgv-sp-results{display:grid;gap:2px;max-height:220px;margin:0;padding:0;overflow:auto;list-style:none}
.btgv-sp-results button{display:block;width:100%;min-height:0;height:auto;padding:6px 10px;border:0;border-radius:8px;background:var(--bms-surface);color:var(--bms-text);text-align:left;font:12.5px var(--bms-font-ui,inherit);cursor:pointer}
.btgv-sp-results button:hover,.btgv-sp-results button:focus-visible{background:var(--bms-surface-selected,var(--bms-primary-soft))}
.btgv-sp-results small{color:var(--bms-text-muted)}
.btgv-sp-settings-foot{display:flex;flex-wrap:wrap;align-items:center;gap:10px}
.btgv-sp-foot-note{color:var(--bms-text-muted);font-size:12px}

@media (max-width:640px){
  .btgv-sp-dialog{width:100vw;max-height:100dvh;border-radius:0}
  .btgv-sp-types button{flex:0 0 calc(25% - 4px)}
  .btgv-sp-seg{width:100%}
  .btgv-sp-seg button{flex:1}
  .btgv-sp-chip{margin-left:0}
}
