/* Kho hàng + Xuất vật tư (stock-desk.mjs, parts-desk.mjs, work-parts.mjs, stock-print.mjs; PLAN-KHO-XUAT-VAT-TU-001, the drawings
   the Owner approved 29/10/2026). On top of intake-desk.css and quotes.css: the desks are .intake-desk.quote-desk, the windows
   their .intake-window. */
.kx-red{color:#b3261e!important;font-weight:700}.kx-green{color:#2f6b48!important;font-weight:700}.kx-amber{color:#9a5410!important}
.qd-state[data-state=part]{background:#fbf0dc;color:#7a5414}
#module-panel .stock-desk .stock-body{flex:1;min-height:0;display:flex;flex-direction:column;gap:10px}
#module-panel .stock-desk .stock-body>.qd-table-wrap{flex:1;min-height:120px;border:1px solid var(--intake-line);border-radius:10px;background:#fff}
#module-panel .stock-desk .intake-desk-head .intake-desk-actions{display:flex;gap:8px;flex-wrap:wrap}
#module-panel .stock-desk .intake-status[data-kind=error]{color:var(--intake-red)}
:is(#module-panel .stock-desk,.intake-window) .stock-table td{vertical-align:middle}
:is(#module-panel .stock-desk,.intake-window) .stock-table .qd-desc{min-width:200px}
:is(#module-panel .stock-desk,.intake-window) .stock-table tr.stock-done td{color:#7b8a80}
:is(#module-panel .stock-desk,.intake-window) .stock-table tr.stock-extra td{background:#fffaf0}
:is(#module-panel .stock-desk,.intake-window) .stock-strong{font-weight:750}
:is(#module-panel .stock-desk,.intake-window) .stock-muted{color:var(--intake-muted)}
:is(#module-panel .stock-desk,.intake-window) input:is(.stock-qty,.stock-price){display:inline-block;width:78px;min-height:30px;margin:0;padding:3px 7px;font-size:13px;text-align:right}
:is(#module-panel .stock-desk,.intake-window) input.stock-price{width:112px}
:is(#module-panel .stock-desk,.intake-window) .qd-del{width:28px;height:28px;min-height:0;margin:0;padding:0;border:1px solid #d9b8ad;border-radius:6px;background:#fff;color:#8a3b2b;font-size:12px;cursor:pointer}
:is(#module-panel .stock-desk,.intake-window) .stock-total{margin-left:auto;font-weight:750;color:#1f3a2c;font-size:13.5px}
:is(#module-panel .stock-desk,.intake-window) .stock-add-label{font-size:12.5px;font-weight:650;color:var(--intake-muted);white-space:nowrap}
:is(#module-panel .stock-desk,.intake-window) .stock-empty-row td{padding:16px;text-align:center}
/* tags */
.stock-tag,.stock-kind{display:inline-block;padding:1px 8px;border-radius:9px;font-size:11.5px;font-weight:700;white-space:nowrap}
.stock-tag[data-s=low]{background:#fbf0dc;color:#7a5414}.stock-tag[data-s=out]{background:#fde6e1;color:#9a2f1c}.stock-tag[data-s=neg]{background:#9a2f1c;color:#fff}
.stock-kind{background:#e3f2e8;color:#245b3a}.stock-kind[data-k=out]{background:#fde6e1;color:#9a2f1c}
.stock-wait{font-size:11px;font-weight:700;color:#7a5414}
/* the goods finder: typed code or name, the stock beside it */
.stock-finder{position:relative;flex:1;min-width:220px;max-width:460px}
.stock-finder input{min-height:32px}
.stock-finder-list{position:absolute;left:0;right:0;top:100%;z-index:20;margin:2px 0 0;padding:4px;list-style:none;max-height:300px;overflow:auto;border:1px solid var(--intake-line);border-radius:8px;background:#fff;box-shadow:0 10px 30px #14302130}
.stock-finder-item{display:grid;grid-template-columns:auto 1fr;gap:0 8px;width:100%;min-height:0;margin:0;padding:6px 8px;border:0;border-radius:6px;background:none;color:var(--intake-ink);text-align:left;font-size:12.5px;cursor:pointer}
.stock-finder-item:is(:hover,:focus){background:var(--intake-soft)}
.stock-finder-item b{font-weight:750}.stock-finder-item small{grid-column:1/3;color:var(--intake-muted);font-size:11.5px}
.stock-finder-none{padding:8px;color:var(--intake-muted);font-size:12.5px}
.stock-finder-add{border-top:1px solid #e1e8e3;border-radius:0 0 6px 6px;color:var(--intake-green-dark)}.stock-finder-add b{color:var(--intake-green)}
.stock-picked{display:flex;align-items:center;gap:10px;flex-wrap:wrap;min-height:22px;font-size:13px}
.stock-picked .qd-link{margin:0}
/* forms */
:is(#module-panel .stock-desk,.intake-window) .stock-form{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin-top:8px}
:is(#module-panel .stock-desk,.intake-window) .stock-form label{display:grid;gap:3px;align-content:start;margin:0;font-size:12px;font-weight:650;color:#4b5f53}
:is(#module-panel .stock-desk,.intake-window) .stock-form .intake-button{min-height:32px}
#module-panel .stock-desk .stock-form-costing{grid-template-columns:1fr 2.2fr 1fr .8fr;margin:0;padding:10px 12px;border:1px solid var(--intake-line);border-radius:10px;background:#fff}
#module-panel .stock-desk .stock-form-journal{grid-template-columns:2.2fr 1fr 1fr;margin:0;padding:10px 12px;border:1px solid var(--intake-line);border-radius:10px;background:#fff}
#module-panel .stock-desk .stock-form-journal .stock-finder{max-width:none}
#module-panel .stock-desk .stock-form-doc{grid-template-columns:1.6fr 1fr 1fr 1fr}
.intake-window .stock-form2{grid-template-columns:1fr 2fr}
:is(#module-panel .stock-desk,.intake-window) .stock-check{display:flex;align-items:center;gap:8px;margin:4px 0;font-size:13.5px;font-weight:650}
:is(#module-panel .stock-desk,.intake-window) .stock-check input,:is(#module-panel .stock-desk,.intake-window) .stock-inline input{display:inline-block;width:18px;height:18px;min-height:0;margin:0;padding:0}
:is(#module-panel .stock-desk,.intake-window) .stock-inline{display:flex;align-items:center;gap:6px;margin:0;font-size:13px;white-space:nowrap}
#module-panel .stock-desk .qd-actions.end>input{width:280px}
#module-panel .stock-desk .stock-source{display:flex;flex-wrap:wrap;gap:4px 14px;align-items:center}
#module-panel .stock-desk .stock-source .qd-link{margin:0}
#module-panel .stock-desk .stock-source:empty{display:none}
/* The lines of a new phiếu (Owner 05/11/2026 "Ô làm việc trong Phiếu nhập cho lớn hơn để xem nhiều dòng hoặc có thể mở thành cửa
   sổ khác"): the table takes the height of the page (rows a little tighter, a few always shown, the pane scrolls on a short
   screen); under it ＋ Dòng with Tổng and ⤢ Mở rộng, the line keys with the hint, and the foot (the message, Đọc phiếu NCC,
   Không lưu, Lưu). The parts found open upwards, over the rows. */
#module-panel .stock-desk .stock-lines>.qd-table-wrap{min-height:150px}
#module-panel .stock-desk .stock-lines .stock-table td{padding-top:3px;padding-bottom:3px}
#module-panel .stock-desk .stock-lines .stock-table input:is(.stock-qty,.stock-price){min-height:28px;padding-top:2px;padding-bottom:2px}
#module-panel .stock-desk .stock-lines .stock-table .qd-del{width:26px;height:26px}
#module-panel .stock-desk .stock-lines .stock-add-row .stock-total{white-space:nowrap}
#module-panel .stock-desk .stock-lines .stock-finder-list{top:auto;bottom:100%;margin:0 0 2px;max-height:min(300px,45vh)}
#module-panel .stock-desk .stock-lines .intake-button.stock-grow{flex:none;min-height:30px;padding:3px 10px;font-size:12.5px}
#module-panel .stock-desk .stock-lines .stock-line-keys{align-items:center}
#module-panel .stock-desk .stock-lines .stock-line-keys .intake-button{flex:none}
#module-panel .stock-desk .stock-lines .stock-line-keys .qd-hint{flex:1 1 260px;min-width:0;margin:0 0 0 6px;font-size:11.5px;line-height:1.35}
#module-panel .stock-desk .stock-lines .stock-lines-foot{flex-wrap:wrap}
#module-panel .stock-desk .stock-lines .stock-lines-foot>.qd-err{flex:1 1 160px;min-width:0;margin:0 auto 0 0;font-size:12.5px;line-height:1.35}
#module-panel .stock-desk .stock-lines .stock-lines-foot>.qd-err:empty{flex-basis:0}
/* ⤢ Mở rộng: the same pane over the page (a class, the same inputs), the page dimmed under it; its title and ⤡ Thu nhỏ (Esc). */
#module-panel .stock-desk .stock-lines-head{display:none}
#module-panel .stock-desk .qd-pane.stock-lines.stock-max{position:fixed;inset:12px;z-index:71;margin:0;padding:0 16px 12px;border-radius:12px;box-shadow:0 24px 70px #0b1f1455;overflow:auto}
#module-panel .stock-desk .stock-lines.stock-max>.stock-lines-head{display:flex;flex:none;align-items:center;justify-content:space-between;gap:16px;margin:0 -16px;padding:10px 16px;border-bottom:1px solid var(--intake-line);background:#f7f9f8;border-radius:12px 12px 0 0}
#module-panel .stock-desk .stock-lines-head h2{margin:0;font-size:16px;font-weight:800;color:#1f3a2c}
#module-panel .stock-desk .stock-lines-who{margin:2px 0 0;font-size:12.5px;color:var(--intake-muted)}
#module-panel .stock-desk .stock-lines.stock-max>.qd-table-wrap{flex:1;min-height:0}
#module-panel .stock-desk .stock-lines.stock-max .stock-grow{display:none}
#module-panel .stock-desk .stock-lines.stock-max .stock-finder{max-width:620px}
#module-panel .stock-desk .stock-veil{position:fixed;inset:0;z-index:70;background:#0f1f1766}
/* With the box NCC ĐÃ GIAO above, a phiếu being made keeps most of the height for its lines (the box scrolls). */
#module-panel .stock-desk .ar-right:has(.stock-lines)>.ar-box{max-height:30%}
/* … beside Nhà cung cấp: the form of Danh mục › Nhà cung cấp */
:is(#module-panel .stock-desk,.intake-window) .stock-with-add{display:flex;gap:6px;align-items:stretch}
:is(#module-panel .stock-desk,.intake-window) .stock-with-add select{flex:1;min-width:0}
:is(#module-panel .stock-desk,.intake-window) .stock-with-add .stock-more{flex:none;min-width:42px;min-height:0;margin:0;padding:0 10px;font-size:17px;font-weight:800;line-height:1;letter-spacing:.04em}
/* Phím tắt (stock-keys.mjs): the key on its button, Carsoft's line buttons, the line of keys under the screen */
.stock-kbd{display:inline-block;margin-left:7px;padding:0 5px;border:1px solid currentColor;border-radius:4px;font-family:inherit;font-size:10.5px;font-weight:650;line-height:16px;opacity:.72;vertical-align:1px;white-space:nowrap}
#module-panel .stock-desk .stock-line-keys{gap:6px}
#module-panel .stock-desk .stock-line-keys .intake-button{min-height:30px;padding:3px 10px;font-size:12.5px}
#module-panel .stock-desk .stock-keys{flex:none;margin:0;padding:2px 2px 0;font-size:11.5px;color:var(--intake-muted)}
@media (hover:none) and (pointer:coarse){.stock-kbd,#module-panel .stock-desk .stock-keys{display:none}}
/* summary boxes */
.stock-boxes{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:8px}
.stock-boxes:empty{display:none}
.stock-boxes>div{display:grid;gap:2px;padding:8px 10px;border:1px solid #dbe5df;border-radius:9px;background:#fff}
.stock-boxes span{font-size:11.5px;font-weight:650;color:#5d6f64;text-transform:uppercase;letter-spacing:.02em}
.stock-boxes b{font-size:17px;color:#1f3a2c;font-variant-numeric:tabular-nums}
/* Xem nhanh hàng tồn kho */
.stock-filters{display:flex;align-items:center;gap:12px;flex-wrap:wrap}
#module-panel .stock-desk .stock-filters input[type=search]{width:280px}
:is(#module-panel .stock-desk) .stock-editable{cursor:pointer;text-decoration:underline dotted #8fb39d;text-underline-offset:3px}
:is(#module-panel .stock-desk) .stock-editable:focus{outline:2px solid var(--intake-green);outline-offset:-2px}
/* Cập nhật giá vốn xuất kho */
.stock-cost th.stock-grp{text-align:center;border-bottom:1px solid #cfdcd4}
.stock-history{display:grid;gap:4px;padding:10px 12px;border:1px solid var(--intake-line);border-radius:10px;background:#fff}
.stock-history-row{margin:0;font-size:12.5px;color:#33473c}
/* Tồn đầu kỳ (Excel) */
.intake-window.stock-opening{width:min(980px,calc(100vw - 24px))}
.intake-window .stock-opening input[type=file],.intake-window.stock-opening input[type=file]{min-height:0;padding:6px}
.stock-map{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}
.stock-map label{display:grid;gap:3px;margin:0;font-size:12px;font-weight:650;color:#4b5f53}
.stock-map select{background:#f3f8f5;border-color:#8fb39d}
.stock-sum{margin:4px 0;padding-left:18px;font-size:13.5px;display:grid;gap:3px}
/* Xuất vật tư (parts-desk.mjs) */
#module-panel .stock-desk .stock-issue{display:flex;align-items:end;gap:10px 14px;flex-wrap:wrap}
#module-panel .stock-desk .stock-issue label{display:grid;gap:3px;margin:0;font-size:12px;font-weight:650;color:#4b5f53}
#module-panel .stock-desk .stock-issue select{min-width:220px}
#module-panel .stock-desk .stock-issue input{width:260px}
.stock-warn{font-size:12.5px;color:#9a2f1c;font-weight:600}
.stock-docs{list-style:none;margin:0;padding:0;display:grid;gap:6px}
.stock-doc{display:flex;align-items:center;gap:6px 14px;flex-wrap:wrap;padding:8px 10px;border:1px solid #dbe5df;border-radius:8px;background:#fff;font-size:13px}
.stock-doc>div{flex:1;min-width:220px;display:grid;gap:1px}
.stock-doc small{color:var(--intake-muted);font-size:12px}
#module-panel .stock-desk .stock-doc .qd-link{margin:0}
.stock-doc-lines{grid-column:1/-1;margin:0;font-size:12px;color:#33473c}
.stock-code-in{display:flex;gap:4px;align-items:center}
#module-panel .stock-desk .stock-code-in .qd-link{margin:0;white-space:nowrap}
/* the goods picker of the parts desk and the quote (Tồn column) */
.qd-pick-stock{white-space:nowrap}
.intake-window .qd-pick-filters:has(>.qd-pick-stocked){grid-template-columns:1fr 200px auto auto}
.intake-window .qd-pick-filters label.qd-pick-stocked{margin-left:6px}
/* the phone: parts of the car (work-parts.mjs, in the lệnh card of work-repairs.mjs) */
.stock-receive{display:grid;gap:6px;padding:10px 12px;border-radius:10px;background:#fff1e0;border:1px solid #f1d2a8}
.stock-receive strong{font-size:15px;color:#7a4510}.stock-receive p{margin:0;font-size:13.5px;color:#7a4510}
.stock-parts{list-style:none;margin:4px 0 0;padding:0;display:grid;gap:4px}
.stock-parts li{display:grid;grid-template-columns:1fr auto;gap:2px 10px;padding:7px 9px;border:1px solid #dbe5df;border-radius:8px;background:#fff;font-size:14px}
.stock-parts li[data-s=got]{background:#f1f7f3}
.stock-pname{min-width:0;overflow-wrap:anywhere}.stock-parts b{white-space:nowrap}
.stock-pstate{grid-column:1/3;font-size:12.5px;font-weight:650}
.stock-pstate[data-s=got]{color:#2f6b48}.stock-pstate:is([data-s=half],[data-s=taken]){color:#7a5414}.stock-pstate[data-s=wait]{color:#9a2f1c}.stock-pstate[data-s=none]{color:#5d6f64}
.stock-phone-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:6px}
.stock-ret{display:grid;grid-template-columns:24px 1fr 76px;gap:10px;align-items:center;padding:8px 0;border-bottom:1px solid #edf2ef;margin:0;font-weight:400}
.stock-ret input[type=checkbox]{width:22px;height:22px;min-height:22px;margin:0}
.stock-ret span{display:grid;font-size:15px}.stock-ret small{font-size:12.5px;color:#5d6f64}
.stock-ret input.stock-qty{width:72px;min-height:38px;margin:0;padding:4px 8px;font-size:15px;text-align:right}
.stock-sheet{display:grid;gap:10px}
.stock-sheet textarea{min-height:70px}
/* the printed Phiếu yêu cầu phụ tùng (stock-print.mjs): as Carsoft's, quotes.css .cs-sheet. */
@media(max-width:1100px){.stock-boxes{grid-template-columns:repeat(3,minmax(0,1fr))}#module-panel .stock-desk .stock-form-costing,:is(#module-panel .stock-desk,.intake-window) .stock-form{grid-template-columns:1fr 1fr}}
@media(max-width:760px){.stock-boxes{grid-template-columns:1fr 1fr}.stock-map,#module-panel .stock-desk .stock-form-journal,#module-panel .stock-desk .stock-form-costing,:is(#module-panel .stock-desk,.intake-window) .stock-form,.intake-window .stock-form2{grid-template-columns:1fr}}
/* Phiếu xuất lập cùng lúc khi Thực hiện báo giá (issue-plan.mjs; PLAN-XUAT-THEO-BAO-GIA-002 drawings 01, 02, 03, 10): a green
   box in the window, a table on the computer, a card a line on the phone; Mã thay thế picked in amber, a line without a code red. */
.ip{border:2px solid #286548;border-radius:12px;padding:12px 14px;margin:12px 0;background:#f4faf6;display:grid;gap:8px;min-width:0}
.ip h3{margin:0;font-size:15px;font-weight:800;color:#1d3a2c;letter-spacing:.02em;display:flex;justify-content:space-between;align-items:baseline;gap:8px;flex-wrap:wrap}
.ip h3 small{font-size:12.5px;font-weight:700;color:#5d6f64;letter-spacing:0}
.ip-table{width:100%;border-collapse:collapse;font-size:14px;background:#fff;border-radius:8px;overflow:hidden}
.ip-table th{font-size:12px;font-weight:700;color:#5d6f64;text-align:left;padding:6px 8px;border-bottom:1px solid #d8e3dc;background:#eef4f0}
.ip-table td{padding:7px 8px;border-bottom:1px solid #edf2ee;vertical-align:top}
.ip-table td:nth-child(2){white-space:nowrap}
.ip-table :is(td,th).num{text-align:right;white-space:nowrap}
.ip-table td small{display:block;color:#5d6f64;font-size:12.5px}
.ip-table tr.bad td{background:#fff3f1}
.ip-table tr.sub .ip-subcell{background:#fbf6e6}
.ip .neg{color:#b3261e;font-weight:800}
.ip-sub{display:grid;gap:4px;justify-items:start}
.ip-picked b{color:#8a5a0c}
.ip-x{border:0;background:none;color:#b3261e;font-weight:800;font-size:15px;padding:0 4px;cursor:pointer;min-height:0}
.ip-btn{border:1.5px solid #9cc9ad;border-radius:8px;background:#fff;color:#1e5138;font-weight:700;font-size:13px;padding:3px 10px;cursor:pointer;min-height:0}
.ip-btn.bad{border-color:#c9a29d;color:#a3241b}
.ip-btn.use{padding:1px 8px}
.ip-hint,.ip-why{margin:0;color:#5d6f64;font-size:12.5px}
.ip-hint b{color:#1d3a2c}
.ip-link{border:0;background:none;color:#1e5138;text-decoration:underline;font-size:13px;padding:0;cursor:pointer;min-height:0}
.ip-sub .stock-finder{min-width:220px}
.ip-warn{margin:0;color:#b3261e;font-size:13.5px;font-weight:650}
.ip-warn.info{color:#5d4a00}
.ip-table td.ip-notecell{width:150px}
.ip-note{width:100%;min-width:0;box-sizing:border-box;border:1px solid #c5d6cb;border-radius:6px;padding:5px 8px;font:14px system-ui,sans-serif;background:#fff;color:#22352b}
.ip-card .ip-note{margin-top:6px;padding:9px 11px;font-size:15px;border-radius:10px}
.ip-note{margin:0;color:#5d6f64;font-size:13px}
.ip-stock{white-space:nowrap}
/* Kế toán: who bấm Đã nhận (Xác nhận · trừ kho), or Nhắc người lấy (stock-desk.mjs, drawings 08, 09, 12). */
/* Món không mã and Ghi chú (stock-free-lines.sql; Xuất vật tư, Kế toán). */
.stock-nocode{display:inline-block;border-radius:6px;padding:1px 7px;background:#eef1ef;color:#4d5f55;font:700 12.5px system-ui,sans-serif;white-space:nowrap}
.stock-note{width:100%;min-width:110px;box-sizing:border-box;border:1px solid #c5d6cb;border-radius:6px;padding:5px 8px;font:14px system-ui,sans-serif;background:#fff;color:#22352b}
.stock-note-text{color:#5d4a00;font-size:13px}
.stock-taken{border:2px solid #286548;border-radius:12px;padding:12px 16px;background:#f4faf6;display:grid;gap:6px;margin:8px 0}
.stock-taken h3{margin:0;font-size:15px;font-weight:800;color:#1d3a2c;display:flex;justify-content:space-between;gap:8px;flex-wrap:wrap}
.stock-taken h3 small{font-size:12.5px;font-weight:700;color:#5d6f64}
.stock-taken p{margin:0;font-size:14px}
.stock-taken.none{border-color:#d9a400;background:#fffaf0}
.stock-taken-row{display:flex;gap:12px;align-items:center;flex-wrap:wrap}
.stock-taken-note{color:#5d6f64;font-size:13px}
.stock-swap{display:grid;grid-template-columns:auto 1fr;gap:4px 10px;align-items:center;padding:8px 0;border-bottom:1px solid #edf2ee}
.stock-swap .stock-finder{grid-column:1/-1}
.ip-table :is(td,th){font-family:system-ui,'Segoe UI',sans-serif!important;letter-spacing:0!important}
.ip-table th{white-space:nowrap}
:is(#module-panel .stock-desk,.intake-window) .stock-table td.stock-code{white-space:nowrap}
/* Giao nhận phụ tùng (stock-handover.sql; PLAN-GIAO-NHAN-PHU-TUNG-001 drawings 12–16): the box on top of Xuất vật tư, the
   Người giao nhận of a phiếu, Đổi người. */
.gn-box{border:1px solid #d9e2dd;border-radius:12px;background:#fbfcfb;padding:10px 14px;margin:0;display:grid;gap:6px;flex:none}
.gn-box[data-missing="true"]{border-color:#e3b4ae;background:#fff7f6}
.gn-title{margin:0;font-size:12px;font-weight:700;letter-spacing:.06em;color:#3c5a49}
.gn-alarm{margin:0;padding:8px 10px;border-radius:8px;background:#fdeceb;color:#9b2c22;font-weight:600;font-size:14px}
.gn-row{display:flex;flex-wrap:wrap;align-items:center;gap:8px 12px}
.gn-row label{display:flex;align-items:center;gap:10px;font-weight:600}
.gn-row label span{min-width:150px}
.gn-row select,.gn-handler select,.gn-change select{min-height:36px;padding:4px 8px;border:1px solid #c9d5ce;border-radius:8px;background:#fff;font:inherit;max-width:100%}
.gn-row select:disabled{background:#f2f5f3;color:#2b3a32}
.gn-hint,.gn-note{color:#5c6f64;font-size:13px}
.gn-note{margin:0;font-size:12.5px}
/* With the box on top, the lines of the lệnh keep room for a few rows (the pane scrolls), not squeezed to the header. */
#module-panel .stock-desk[data-screen="parts"] .qd-fill>.qd-table-wrap{min-height:150px}
.gn-badge{display:inline-block;padding:2px 8px;border-radius:999px;font-size:12px;font-weight:700}
.gn-badge[data-kind="green"]{background:#e4f3e9;color:#1f6b3a}
.gn-badge[data-kind="red"]{background:#fdeceb;color:#9b2c22}
.gn-badge[data-kind="amber"]{background:#fdf2dc;color:#8a5a00}
.gn-handler{display:grid;gap:4px}
.gn-handler span{font-size:13px;color:#3c5a49;font-weight:600}
.gn-change{display:inline-flex;align-items:center;gap:6px}
.gn-box[data-layout="phone"]{margin:0 0 12px;padding:12px 16px;gap:8px}
.gn-box[data-layout="phone"] .gn-row label{display:grid;gap:4px;width:100%}
.gn-box[data-layout="phone"] .gn-row label span{min-width:0}
.gn-box[data-layout="phone"] .gn-row select{width:100%;min-height:44px}
.gn-box[data-layout="phone"] .gn-hint{display:none}
@media (max-width:720px){.gn-row label{display:grid;gap:4px;width:100%}.gn-row label span{min-width:0}.gn-row select{width:100%;min-height:44px}}
/* Gắn mã (stock-pick.mjs): the parts in stock that look like the line, then the catalog. */
.stock-pick{width:min(720px,calc(100vw - 32px));max-height:min(86vh,760px);padding:0;border:1px solid #cfdcd4;border-radius:14px;box-shadow:0 24px 60px #14302140;display:flex;flex-direction:column;overflow:hidden;color:#1d3a2c;font-size:14px}
.stock-pick:not([open]){display:none}
.stock-pick::backdrop{background:#0f1f1766}
.stock-pick-head{display:flex;align-items:center;justify-content:space-between;padding:12px 16px;background:#2c4a3b;color:#fff}
.stock-pick-head h3{margin:0;font-size:17px;font-weight:800}
.stock-pick-close{min-width:36px;min-height:36px;border:1px solid #ffffff55;border-radius:8px;background:transparent;color:#fff;font-size:20px;line-height:1;cursor:pointer}
.stock-pick-what{margin:12px 16px 6px}
/* width auto: the app's input{width:100%} plus the side margins would overflow, and the focus would scroll the dialog sideways. */
.stock-pick>input{width:auto;box-sizing:border-box;margin:0 16px;min-height:42px;padding:6px 12px;border:1px solid #c9d5ce;border-radius:10px;font:inherit}
.stock-pick{overflow-x:hidden}
.stock-pick-chips{display:flex;gap:8px;margin:10px 16px 0;flex-wrap:wrap}
.stock-pick-chip{min-height:34px;padding:4px 14px;border:1px solid #c9d5ce;border-radius:999px;background:#fff;color:#1d3a2c;font:inherit;font-weight:700;cursor:pointer}
.stock-pick-chip.on{background:#2c4a3b;border-color:#2c4a3b;color:#fff}
.stock-pick-note{margin:8px 16px 4px;color:#5c6f64;font-size:13px}
.stock-pick-list{list-style:none;margin:0;padding:0 8px 8px;overflow:auto;flex:1;min-height:120px}
.stock-pick-row{display:flex;justify-content:space-between;align-items:center;gap:12px;width:100%;margin:0;padding:10px 10px;border:0;border-bottom:1px solid #edf2ef;background:none;color:inherit;font:inherit;text-align:left;cursor:pointer}
.stock-pick-row:is(:hover,:focus){background:#eef5f1;outline:none}
.stock-pick-main{display:grid;gap:2px;min-width:0}
.stock-pick-main b{font-size:14.5px}
.stock-pick-main span{color:#33493d}
.stock-pick-side{display:grid;justify-items:end;gap:2px;flex:none;text-align:right}
.stock-pick-side small{color:#5c6f64;font-size:12.5px}
.stock-pick-stock{padding:2px 10px;border-radius:999px;font-weight:800;font-size:13px}
.stock-pick-stock[data-kind="ok"]{background:#e4f3e9;color:#1f6b3a}
.stock-pick-stock[data-kind="short"]{background:#fdf2dc;color:#8a5a00}
.stock-pick-stock[data-kind="out"]{background:#fdeceb;color:#9b2c22}
.stock-pick-unit{color:#9b2c22!important;font-weight:700}
.stock-pick-foot{margin:0;padding:10px 16px;border-top:1px solid #e3ebe6;color:#5c6f64;font-size:12.5px}
@media (max-width:720px){.stock-pick{width:100vw;max-width:100vw;max-height:92vh;margin:auto 0 0;border-radius:16px 16px 0 0}.stock-pick-row{padding:12px 8px}}
/* Nhận phụ tùng NCC (GN4; arrival-phone.mjs, arrival-box.mjs, receipt-phone.mjs; PLAN-NHAN-PHU-TUNG-NCC-001 drawings 01–05). The
   workshop's phone: photos, the lines waiting (a tick and a stepper), other parts, Báo Kế toán, the recent reports. The office:
   NCC ĐÃ GIAO · CHỜ NHẬP KHO (amber box), its supplier, its lines, Lập phiếu nhập từ báo nhận (a window), Huỷ. */
.ar-form,.ar-recent{display:grid;gap:12px}
.ar-photos{display:grid;gap:8px}
.ar-strip{display:flex;flex-wrap:wrap;gap:10px}
.ar-thumb{position:relative;width:84px;height:84px;border-radius:12px;overflow:hidden;background:#eef1ef;display:grid;place-items:center;border:1px solid #d8e3dc}
.ar-thumb img{width:100%;height:100%;object-fit:cover}
:is(#module-panel,dialog) .ar-thumb.ar-add{border:2px dashed #9aaaa1;background:#fff;color:#286548;font-weight:800;display:grid;align-content:center;justify-items:center;gap:2px;padding:0;margin:0}
.ar-thumb.ar-add span{font-size:22px;line-height:1}.ar-thumb.ar-add small{font-size:14px}
:is(#module-panel,dialog) .ar-thumb-x{position:absolute;top:3px;right:3px;width:26px;height:26px;min-height:0;padding:0;margin:0;border-radius:50%;border:0;background:rgba(0,0,0,.6);color:#fff;font-size:17px;line-height:1}
.ar-thumb-ok{position:absolute;bottom:3px;right:3px;width:22px;height:22px;border-radius:50%;background:#286548;color:#fff;display:grid;place-items:center;font-size:13px;font-weight:900}
.ar-warn{margin:0;color:#a3241b;font-weight:700}
.ar-lines,.ar-others{display:grid;gap:8px}
.ar-car{margin:6px 0 0;font-weight:800;color:#1d3a2c;letter-spacing:.02em}
.ar-line{display:grid;grid-template-columns:auto 1fr auto;gap:10px;align-items:center;padding:12px;border:1px solid #d8e3dc;border-radius:12px;background:#fff}
.ar-line:not(.on){background:#fffaf8;border-color:#ecd6d1}
:is(#module-panel,dialog) .ar-tick{margin:0;padding:0;min-height:0;cursor:pointer}
.ar-line.on .ar-tick{background:#286548;color:#fff}
.ar-what{display:grid;gap:2px;min-width:0}.ar-what b{font-size:16px;color:#1d3a2c}
.ar-code b{font-size:13.5px}.ar-nocode{display:inline-block;padding:1px 8px;border-radius:6px;background:#eef1ef;color:#4d5f55;font-size:12.5px;font-weight:700}
.ar-wait{color:#8a5a0c;font-weight:700}
.ar-side{display:grid;justify-items:end;gap:2px}.ar-unit{color:#4d5f55}
.ar-step{display:inline-grid;grid-template-columns:36px 46px 36px;align-items:center;border:1px solid #c9d6ce;border-radius:10px;background:#f4f7f5;overflow:hidden}
:is(#module-panel,dialog) .ar-step-b{margin:0;min-height:38px;padding:0;border:0;background:transparent;font-size:20px;font-weight:800;color:#1d3a2c}
:is(#module-panel,dialog) .ar-step input{width:46px;min-height:38px;margin:0;padding:0 2px;border:0;border-inline:1px solid #c9d6ce;border-radius:0;text-align:center;font-size:17px;font-weight:800;background:#fff}
.ar-other{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:6px;align-items:center;padding:10px;border:1.5px dashed #b9c7bf;border-radius:12px;background:#fff}
.ar-other>input:first-child{grid-column:1/-1}
:is(#module-panel,dialog) .ar-other input{min-height:40px;margin:0}
:is(#module-panel,dialog) .ar-other-x{margin:0;min-height:36px;width:36px;padding:0;border:0;background:transparent;font-size:20px;color:#7b8a80}
.ar-note{display:grid;gap:6px}:is(#module-panel,dialog) .ar-note input{margin:0;min-height:44px}
.ar-msg{margin:0}
.ar-item{display:grid;gap:4px}.ar-cancelled{color:#a3241b}
.ar-why{display:grid;grid-template-columns:1fr auto;gap:6px;align-items:center;margin-top:4px}
.ar-why .pp-msg,.ar-why-msg{grid-column:1/-1;margin:0;color:#a3241b}
:is(#module-panel,dialog) .ar-why input{margin:0;min-height:40px}
/* The office's box. */
.ar-box{display:grid;gap:10px;padding:14px 16px;border:2px solid #e2b04a;border-radius:14px;background:#fffbf1}
.ar-box[hidden]{display:none}
.ar-box-title{margin:0;font-size:14px;letter-spacing:.06em;color:#5b4310}
.ar-box-hint{margin:0;color:#6b5a33;font-size:13px}
.ar-error{margin:0;color:#a3241b}
.ar-report{display:grid;gap:8px;padding-bottom:10px;border-bottom:1px solid #f0dfb8}
.ar-report:last-of-type{border-bottom:0}
.ar-report-head{display:flex;flex-wrap:wrap;gap:6px 10px;align-items:center}
.ar-report-meta{color:#4d5f55}
:is(.ar-box,.ar-item) .work-photo-list{gap:6px}
:is(#module-panel,dialog) :is(.ar-box,.ar-item) .work-photo-thumb{display:grid;place-items:center;width:56px;height:56px;min-height:0;margin:0;padding:0;overflow:hidden;border:1px solid #dbe5df;border-radius:8px;background:#f6f9f7;cursor:zoom-in}
:is(.ar-box,.ar-item) .work-photo-thumb img{width:100%;height:100%;object-fit:cover}
.ar-box-phone .ar-report-head{display:grid;gap:4px}
.ar-supplier{display:flex;flex-wrap:wrap;gap:6px 8px;align-items:center}
.ar-supplier-label{font-weight:800}
.ar-supplier select{width:auto;flex:0 1 380px;min-width:200px;max-width:100%}
.ar-supplier select.ar-red,.ar-red{color:#b3261e;font-weight:700;border-color:#e3a39c}
.ar-supplier-by{color:#6b7a70;font-size:13px}
.ar-table tr.mine td{background:#eef6f1}
.ar-report-foot{display:flex;flex-wrap:wrap;gap:8px 16px;align-items:center}
.ar-report-note{color:#4d5f55;flex:1}
:is(#module-panel,dialog) .ar-cancel{color:#a3241b;margin-left:auto}
#module-panel .intake-desk .intake-button.ar-cancel{color:#a3241b;border-color:#e3b1ab}
.ar-plines{display:grid;gap:6px}
.ar-pline{display:grid;gap:2px;padding:8px 10px;border-radius:10px;background:#fff;border:1px solid #efe2c2}
.ar-pline.mine{border-color:#9cc9ad;background:#f3faf5}
.ar-pline-top{display:flex;justify-content:space-between;gap:8px}.ar-pline-meta{color:#4d5f55;font-size:13.5px}
.ar-code-b{font-weight:800}
.ar-box-phone .ar-supplier select{min-width:0;flex:1 1 0;width:auto}
#module-panel .stock-desk .ar-right{display:flex;flex-direction:column;gap:10px;min-height:0;min-width:0}
#module-panel .stock-desk .ar-right>.ar-box{max-height:70%;overflow:auto;flex:none}
#module-panel .stock-desk .ar-right>.intake-desk-main{flex:1}
#module-panel .stock-desk .intake-desk-main>.ar-box{flex:none;max-height:38%;overflow:auto}
/* Lập phiếu nhập từ báo nhận. */
.intake-window.ar-receive{width:min(920px,96vw)}
.ar-receive-body{display:grid;gap:12px;padding:14px 18px;max-height:70vh;overflow:auto}
.ar-receive-fields{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}
.ar-field{display:grid;gap:4px;font-size:13px;color:#4d5f55}.ar-field input,.ar-field select{min-height:38px}
.ar-receive-lines{display:grid;gap:8px}
.ar-rline{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(0,1.2fr) minmax(0,1fr);gap:10px;align-items:center;padding:10px;border:1px solid #e3e8e5;border-radius:10px;background:#fbfcfb}
.ar-rline.coded{background:#fff;border-color:#c9dccf}
.ar-rline-what{display:grid;gap:2px}.ar-rline-meta{color:#4d5f55;font-size:13px}
.ar-rline-code{display:flex;flex-wrap:wrap;gap:6px;align-items:center}
.ar-rline-price{display:grid;gap:2px}.ar-rline-price input{min-height:38px;text-align:right}.ar-rline-total{text-align:right;color:#1f5135;font-weight:700}
.ar-receive-plan{margin:0;font-weight:700;color:#1d3a2c}
.stock-pick-add{margin-left:6px;border:0;background:none;color:#286548;font-weight:800;text-decoration:underline;cursor:pointer}
@media(max-width:760px){
  .ar-receive-fields{grid-template-columns:1fr 1fr}
  .ar-rline{grid-template-columns:1fr}
  .intake-window.ar-receive{width:100vw;max-width:100vw;height:100dvh;max-height:100dvh;margin:0;border-radius:0}
  .ar-receive-body{max-height:calc(100dvh - 140px)}
}
/* Nhập kho on the phone (receipt-phone.mjs, PLAN-QLDV-DIEN-THOAI-005). */
.rp-arrivals{display:grid}
:is(#module-panel,dialog) .rp-add{justify-self:start}
.rp-doc{display:grid;gap:3px;width:100%;text-align:left}
.rp-value{font-weight:800;color:#1f5135}
.rp-title{margin:4px 0 0}
.rp-fields{display:grid;gap:8px}
.rp-supplier{display:flex;gap:6px}.rp-supplier select{flex:1;min-width:0}
.rp-rows{display:grid;gap:8px}
.rp-row{display:grid;gap:3px;width:100%;text-align:left;padding:10px 12px;border:1px solid #d8e3dc;border-radius:12px;background:#fff}
.rp-row-top{display:flex;justify-content:space-between;gap:8px}.rp-row-amount{font-weight:800;color:#1f5135;white-space:nowrap}
.rp-total{margin:0;font-weight:800;font-size:16px;text-align:right}
.rp-actions{display:grid;grid-template-columns:1fr 2fr;gap:8px}
.rp-amount,.rp-after{margin:0;font-weight:700}
.rp-tools{display:grid;grid-template-columns:1fr 1fr;gap:8px}.rp-tools .service-sheet-save{grid-column:1/-1}
.rp-found{list-style:none;margin:0;padding:0;display:grid;gap:6px;max-height:55vh;overflow:auto}
.rp-found-row{display:grid;grid-template-columns:auto 1fr;gap:2px 8px;width:100%;text-align:left;padding:10px;border:1px solid #d8e3dc;border-radius:10px;background:#fff}
.rp-found-row small{grid-column:1/-1;color:#4d5f55}
.rp-lines li{display:block;margin:4px 0}
:is(#module-panel,dialog) :is(.rp-row,.rp-found-row,.rp-doc) b{color:#1d3a2c;background:none;padding:0;min-width:0;border-radius:0}
:is(#module-panel,dialog) :is(.rp-row,.rp-found-row){color:#1d3a2c;font-weight:400;margin:0;min-height:0}
/* Đọc phiếu NCC bằng AI (slip-box.mjs; PLAN-DOC-PHIEU-NCC-001): the strip, the window to check, Xem phiếu NCC, 5A. */
.sl-strip{display:grid;gap:8px;margin-top:8px;padding:10px 12px;border:2px dashed #e0a800;border-radius:12px;background:#fffdf6;color:#22352b;font-size:14px}
.sl-strip[hidden]{display:none}
.sl-strip.sl-drop{background:#fff4d6;border-style:solid}
/* compact (the computer's Phiếu nhập, Owner 05/11/2026 "Nút nhấn nhỏ phía dưới"): a small button beside Không lưu that says where
   the slip is; the strip in a panel over the page above it (placed by slip-box.mjs), closed by ✕, Esc or a click outside. */
.sl-compact{display:inline-flex;flex:none}
.sl-compact[hidden]{display:none}
:is(#module-panel .intake-desk,.intake-window) .intake-button.sl-trigger{min-height:30px;padding:3px 10px;border:1.5px dashed #e0a800;background:#fffdf6;color:#5b4310;font-size:12.5px;font-weight:700}
:is(#module-panel .intake-desk,.intake-window) .intake-button.sl-trigger:hover{background:#fff4d6}
:is(#module-panel .intake-desk,.intake-window) .intake-button.sl-trigger:is([data-state=applied],[data-state=read],[data-state=busy],[data-state=files]){border-style:solid}
:is(#module-panel .intake-desk,.intake-window) .intake-button.sl-trigger[data-state=applied]{border-color:#9cc9ad;background:#f1f8f3;color:#1f5135}
:is(#module-panel .intake-desk,.intake-window) .intake-button.sl-trigger[data-state=off]{border-color:#cfd6d1;background:#fff;color:#6b7a70;font-weight:600}
:is(#module-panel .intake-desk,.intake-window) .intake-button.sl-trigger.sl-alert{border-color:#c8463b;color:#a3241b}
:is(#module-panel .intake-desk,.intake-window) .intake-button.sl-trigger[aria-expanded=true]{background:#fff4d6;border-style:solid}
.sl-strip.sl-pop{position:fixed;z-index:80;box-sizing:border-box;margin:0;overflow:auto;border-style:solid;box-shadow:0 18px 50px #14302140;text-align:left;white-space:normal;font-weight:400}
.sl-strip.sl-pop[hidden]{display:none}
.sl-strip.sl-pop:focus{outline:none}
.sl-pop-head{display:flex;align-items:center;justify-content:space-between;gap:8px}
:is(#module-panel,dialog) .sl-pop-close{min-height:0;margin:0;padding:2px 7px;border:0;border-radius:6px;background:none;color:#5b4310;font-size:14px;line-height:1;cursor:pointer}
.sl-pop-close:hover{background:#fff1cc}
.sl-off{color:#6b5a33;font-size:13px}
.sl-title{font-size:13px;letter-spacing:.06em;color:#5b4310}
.sl-row{display:flex;flex-wrap:wrap;gap:8px 12px;align-items:center}
.sl-hint{color:#5d6f64;font-size:13px;margin:0}
.sl-msg{margin:0;color:#a3241b;font-weight:600;font-size:13.5px}
.sl-done{font-weight:600;color:#1f5135}
.sl-wait{font-weight:600;color:#8a5a0c}
.sl-pick{cursor:pointer;display:inline-flex;align-items:center;gap:6px}
.sl-pick input{display:none}
.sl-pick>span{color:inherit;font-weight:inherit}
.sl-big{width:100%;justify-content:center;font-size:16px;padding:12px;box-sizing:border-box}
.sl-thumbs{display:flex;gap:8px;flex-wrap:wrap}
.sl-thumb{position:relative;width:76px;height:96px;border:1px solid #c5d6cb;border-radius:8px;overflow:hidden;background:#fff;display:grid;place-items:center;padding:0}
.sl-thumb img{width:100%;height:100%;object-fit:cover}
.sl-thumb small{position:absolute;left:0;right:0;bottom:0;background:rgba(255,255,255,.9);font-size:11px;text-align:center}
.sl-thumb.bad{border:2px solid #c8463b}
.sl-x{position:absolute;top:2px;right:2px;border:0;border-radius:50%;width:22px;height:22px;background:rgba(0,0,0,.55);color:#fff;font-size:12px;cursor:pointer;padding:0}
.sl-pdf{font-weight:800;color:#a3241b}
.sl-mini{font-size:12.5px;padding:2px 8px;min-height:0}
.sl-link{border:0;background:none;color:#1e5138;text-decoration:underline;font:inherit;font-size:13px;cursor:pointer;padding:0 2px;text-align:left}
.sl-window{width:min(1500px,96vw);max-height:94vh}
.sl-review{display:grid;grid-template-columns:minmax(240px,400px) minmax(0,1fr);gap:16px;padding:12px 18px;overflow:auto;max-height:calc(94vh - 84px);box-sizing:border-box}
.sl-slip{display:grid;gap:8px;align-content:start}
.sl-slip img{width:100%;border:1px solid #cfd6d1;border-radius:6px;cursor:zoom-in}
.sl-cap{margin:0;font-size:12.5px;font-weight:800;letter-spacing:.06em;color:#4d5f55}
.sl-read{display:grid;gap:10px;align-content:start;min-width:0}
.sl-facts{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px 12px}
.sl-field{display:grid;gap:3px;font-size:13px;min-width:0}
.sl-field>span{color:#5d6f64}
.sl-field:first-child{grid-column:1/-1}
.sl-field select,.sl-field input{min-width:0}
.sl-ncc{display:flex;gap:8px;flex-wrap:wrap;align-items:center}
.sl-on-slip{font-weight:600;color:#22352b}
.sl-chip{border-radius:6px;padding:2px 8px;font-weight:700;font-size:12.5px;white-space:nowrap;background:#e3f1e8;color:#1f5135}
.sl-chip.blue{background:#e2edf8;color:#1d4f7a}
.sl-chip.new{background:#fbf0d9;color:#8a5a0c}
.sl-table-wrap{overflow:auto;border:1px solid #e0e8e2;border-radius:8px}
.sl-table{border-collapse:collapse;width:100%;font-size:13.5px}
.sl-table th{position:sticky;top:0;background:#edf3ef;text-align:left;padding:6px;font-size:12px;white-space:nowrap}
.sl-table th.num{text-align:right}
.sl-table td{padding:6px;border-top:1px solid #eef1ef;vertical-align:top;font-family:inherit;max-width:none;overflow-wrap:normal}
.sl-table td.num{text-align:right;white-space:nowrap}
.sl-table td.sl-code{white-space:nowrap}
.sl-table tr.bad td{background:#fff6f5}
.sl-table tr.off td{opacity:.5}
.sl-num{width:64px;text-align:right}
.sl-price{width:104px}
.sl-goods{display:flex;flex-wrap:wrap;gap:4px 8px;align-items:center;min-width:220px}
.sl-goods-text{color:#5d6f64;font-size:12.5px}
.sl-bad{display:block;color:#a3241b;font-size:12px;font-weight:600}
.sl-sums{display:grid;grid-template-columns:1fr auto;gap:2px 16px;max-width:560px;margin-left:auto;font-size:13.5px}
.sl-sums b{text-align:right}
.sl-sums .bad{color:#a3241b}
.sl-foot{display:flex;flex-wrap:wrap;gap:8px 12px;align-items:center}
.sl-finder{display:grid;grid-template-columns:1fr auto;gap:4px;width:100%}
.sl-found{grid-column:1/-1;list-style:none;margin:0;padding:0;max-height:180px;overflow:auto;border:1px solid #e0e8e2;border-radius:6px}
.sl-found:empty{display:none}
.sl-found-row{display:block;width:100%;text-align:left;border:0;background:#fff;padding:5px 8px;cursor:pointer;font-size:13px}
.sl-found-row:hover,.sl-found-row:focus{background:#f1f5f2}
.sl-cands{display:flex;flex-wrap:wrap;gap:4px 8px;align-items:center;width:100%}
.sl-window-phone{width:100vw;max-width:100vw;height:100dvh;max-height:100dvh;margin:0;border-radius:0}
.sl-window-phone .sl-review{grid-template-columns:minmax(0,1fr);padding:10px 12px;max-height:calc(100dvh - 76px)}
.sl-window-phone .sl-facts{grid-template-columns:minmax(0,1fr)}
.sl-window-phone .sl-sums{max-width:none;margin:0}
.sl-card{display:grid;gap:5px;padding:10px;border:1px solid #d8e3dc;border-radius:12px;background:#fff;margin-bottom:8px}
.sl-card.bad{border:2px solid #c8463b;background:#fff8f7}
.sl-card.new{border:2px solid #e0a800;background:#fffdf6}
.sl-card.off{opacity:.55}
.sl-card-top{display:flex;gap:8px;align-items:flex-start}
.sl-card-top input{width:22px;height:22px;flex:none}
.sl-card-top b:nth-of-type(1){flex:1;min-width:0}
.sl-amount{white-space:nowrap}
.sl-meta{margin:0;color:#5d6f64;font-size:13px}
.sl-card-nums{display:grid;grid-template-columns:auto minmax(0,1fr) auto minmax(0,1fr);gap:6px;align-items:center;font-size:13px}
.sl-card-nums input{width:100%;min-width:0;box-sizing:border-box}
.sl-phone-thumbs{display:flex;gap:6px;flex-wrap:wrap}
.sl-phone-thumbs .sl-thumb{width:56px;height:70px}
.sl-viewer{width:min(900px,96vw)}
.sl-viewer-body{display:grid;gap:10px;padding:12px 16px;max-height:80vh;overflow:auto}
.sl-viewer-body img{width:100%;border:1px solid #cfd6d1;border-radius:6px}
.ar-extras{display:grid;gap:6px}
.ar-extras:empty{display:none}
.ar-extras-cap{margin:6px 0 0;font-size:12.5px;font-weight:800;letter-spacing:.06em;color:#5b4310}
.ar-extra{display:flex;gap:8px;justify-content:space-between;align-items:center;flex-wrap:wrap;padding:6px 8px;border:1px dashed #e2b04a;border-radius:8px;font-size:13.5px}
.ar-extra.on{border-style:solid;border-color:#3f8a5f;background:#f1f8f3}
.ar-suggest{border-radius:6px;padding:1px 6px;background:#e2edf8;color:#1d4f7a;font-size:12px;font-weight:700}
.ar-slip-qty{display:block;color:#a3241b;font-size:12.5px;font-weight:600}
/* Sửa / Huỷ phiếu nhập (stock-desk.mjs, receipt-phone.mjs; PLAN-KHO-SUA-PHIEU-NHAP-001, the six drawings the Owner approved
   05/11/2026 "ok mẫu kho sửa"): Đã sửa (amber) and Đã huỷ (red) chips; ✎ Sửa phiếu / Huỷ phiếu at the right of the phiếu; the
   voided struck through with its red band; the marks of a line being edited (mới, bỏ, đổi SL / đổi giá, the one before, the
   difference); Lý do sửa at the foot; Lịch sử sửa and Huỷ phiếu windows. */
.qd-state[data-state=edited]{background:#fdf0d8;color:#8a5a0c}
.qd-state[data-state=void]{background:#f6dedb;color:#923e31}
#module-panel .stock-desk .qd-sum-top .re-acts{margin-left:auto;display:flex;gap:8px;align-items:center}
#module-panel .stock-desk .qd-sum-top .re-acts .qd-link{margin:0 6px 0 0}
#module-panel .stock-desk .qd-sum-top .qd-link.re-hist{margin:0}
#module-panel .stock-desk .qd-sum-top .re-acts .intake-button{min-height:32px;padding:4px 14px}
#module-panel .stock-desk .intake-desk-row.re-void strong,#module-panel .stock-desk .intake-desk-row.re-void .intake-desk-row-meta>span:first-child{text-decoration:line-through;color:#8a8f8c}
:is(#module-panel .stock-desk,.intake-window) .stock-table tr.re-new td{background:#eef7f0}
:is(#module-panel .stock-desk,.intake-window) .stock-table tr.re-gone td{color:#9aa19d;text-decoration:line-through;background:#f7f4f3}
:is(#module-panel .stock-desk,.intake-window) .stock-table tr.re-gone td:last-child{text-decoration:none}
:is(#module-panel .stock-desk,.intake-window) .stock-table tr.re-gone input{background:#efefed;color:#8a8f8c;text-decoration:line-through}
:is(#module-panel .stock-desk,.intake-window) .stock-table td.re-cell{background:#fff4dc}
:is(#module-panel .stock-desk,.intake-window) .stock-table .re-was{display:block;font-size:11px;color:#8a5a0c;margin-top:2px;white-space:nowrap}
:is(#module-panel .stock-desk,.intake-window) .stock-table .re-was:empty{display:none}
.re-tags{display:block;line-height:1}.re-tags:empty{display:none}
.re-tag{display:inline-block;font-size:10.5px;font-weight:700;border-radius:8px;padding:1px 6px;margin:1px 4px 0 0;text-decoration:none}
.re-tag[data-k=new]{background:#e2f1e7;color:#22613c}.re-tag[data-k=gone]{background:#f6dedb;color:#923e31}.re-tag[data-k=changed]{background:#fdf0d8;color:#8a5a0c}
#module-panel .stock-desk .stock-table .intake-button.re-undo{min-height:0;margin:0;padding:2px 8px;font-size:12px;white-space:nowrap}
#module-panel .stock-desk .stock-form input.re-locked{background:#eef1ef;color:#5d6b63;cursor:not-allowed}
#module-panel .stock-desk .stock-form select:disabled{background:#eef1ef;color:#5d6b63;cursor:not-allowed}
#module-panel .stock-desk .stock-lines .stock-lines-foot .re-why-in{flex:1 1 300px;min-width:240px;margin:0 4px 0 0}
#module-panel .stock-desk .stock-lines .stock-lines-foot.re-editing>.qd-err{order:-1;flex:1 1 100%;margin:0}
#module-panel .stock-desk .stock-lines .stock-lines-foot.re-editing>.qd-err:empty{display:none}
.re-banner{margin:8px 0 0;padding:8px 12px;border:1px solid #dcb6ad;border-radius:8px;background:#fbefec;color:#7c2f24;font-size:13px}
.re-banner b{margin-right:2px}
#module-panel .stock-desk .qd-pane .re-note{margin:6px 0 0}
.intake-window.re-wide{width:min(900px,calc(100vw - 24px))}
.re-body{display:grid;gap:10px;padding:14px 18px 16px;font-size:13.5px;max-height:calc(100dvh - 150px);overflow:auto}
.re-body p{margin:0}
.re-conds{list-style:none;margin:0;padding:0;display:grid;gap:6px}
.re-conds li{display:grid;grid-template-columns:22px 1fr;gap:4px;align-items:start;padding:7px 10px;border-radius:8px;background:#f3f6f4}
.re-conds li::before{font-weight:800}
.re-conds li[data-ok=true]::before{content:'✓';color:#22613c}
.re-conds li[data-ok=false]{background:#fbefec}.re-conds li[data-ok=false]::before{content:'✕';color:#a33a2c}
.re-conds li[data-ok=unknown]{background:#fffaf0}.re-conds li[data-ok=unknown]::before{content:'?';color:#8a5a0c}
.re-conds small{display:block;color:#6b756f;margin-top:2px;font-size:12px}
.re-conds li[data-ok=false] small{color:#7c2f24}
.re-reason{display:grid;gap:4px;margin:0}
.re-reason span{font-weight:650}
.re-reason textarea{width:100%;min-height:58px;box-sizing:border-box;font:inherit;padding:7px 9px;border:1px solid #c9d2cc;border-radius:8px}
.re-err{color:#a33a2c;font-weight:650;margin-right:auto}
.re-foot{display:flex;justify-content:flex-end;gap:8px;align-items:center;flex-wrap:wrap}
:is(.intake-window,#module-panel .intake-desk) .intake-button.re-red{background:#a33a2c;border-color:#a33a2c;color:#fff}
:is(.intake-window,#module-panel .intake-desk) .intake-button.re-red:hover{background:#8c2f23}
:is(.intake-window,#module-panel .intake-desk) .intake-button.re-red:disabled{opacity:.45;cursor:not-allowed;background:#a33a2c}
.re-rev{display:grid;gap:8px;padding:10px 12px;border:1px solid #dfe5e1;border-radius:10px}
.re-rev-head{display:flex;gap:10px;align-items:baseline;flex-wrap:wrap}
.re-rev-head b{font-size:14px}.re-rev-head span{color:#5f6b64;font-size:12.5px}
.intake-window .re-rev-head .qd-link{margin:0;min-height:0;padding:0;border:0;background:none;color:var(--intake-green,#22613c);font-weight:650;font-size:12.5px;text-decoration:underline;cursor:pointer}
.re-why{font-size:13px}.re-why i{font-style:normal;color:#6b756f;margin-right:4px}
.re-head-change{font-size:12.5px;color:#33473c}
.re-rev table{width:100%;border-collapse:collapse;font-size:12.5px;font-variant-numeric:tabular-nums}
.re-rev :is(th,td){padding:5px 8px;border-bottom:1px solid #edf0ee;text-align:left}
.re-rev th{color:#5f6b64;font-weight:650;background:#f6f8f7}
.re-rev .num{text-align:right;white-space:nowrap}
/* desktop.css sets every third table cell in monospace (an older read-back table): not here. */
.re-rev td:nth-child(3){font-family:inherit;max-width:none;overflow-wrap:normal}
.re-rev tr.re-sum td{font-weight:700;border-bottom:0}
.re-rev .re-up{color:#22613c}.re-rev .re-down{color:#a33a2c}
/* the phone: Đã sửa n lần / Đã huỷ on a phiếu nhập (no buttons: Sửa / Huỷ on the computer) */
.rp-doc .rp-chips{display:flex;gap:6px;flex-wrap:wrap}.rp-doc .rp-chips:empty{display:none}
.rp-doc.re-void .sp-doc-top b,.rp-doc.re-void .rp-value{text-decoration:line-through;color:#7c8a82}
.rp-lines li.re-gone{text-decoration:line-through;color:#7c8a82}
/* Phụ trách (work-parts.mjs; PLAN-LAP-PHU-TUNG-001): the box to tick on the left, the people as chips, Chưa ai phụ trách red. */
.stock-parts.stock-fit-list li{position:relative;padding-left:46px}
.stock-fit-box{position:absolute;left:9px;top:7px;width:28px;height:28px;min-height:28px;margin:0;padding:0;border:2px solid #6f8a7a;border-radius:7px;background:#fff;cursor:pointer}
.stock-fit-box[aria-pressed=true]{background:#2f6b48;border-color:#2f6b48}
.stock-fit-box[aria-pressed=true]::after{content:"";position:absolute;left:8px;top:3px;width:7px;height:13px;border:solid #fff;border-width:0 3px 3px 0;transform:rotate(45deg)}
.stock-fit-box:disabled{border-color:#cdd8d1;background:#eef2ef;cursor:default}
.stock-fit-box[aria-pressed]:disabled{opacity:.6}
.stock-parts li[data-fit=wait]{background:#f8f9f8}.stock-parts li[data-fit=wait] .stock-pname{color:#5d6f64}
.stock-fit-hint,.stock-fit-chips,.stock-fit-edit{grid-column:1/3}
.stock-fit-hint{font-size:12.5px;font-weight:650;color:#2f6b48}
.stock-fit-chips{display:flex;flex-wrap:wrap;gap:4px;margin-top:2px}
.stock-fit-who{display:inline-flex;align-items:baseline;gap:4px;padding:2px 9px;border:1px solid #b9d3c3;border-radius:999px;background:#eaf4ee;color:#1f4d33;font-size:12.5px;font-weight:650}
.stock-fit-who[data-me]{background:#2f6b48;border-color:#2f6b48;color:#fff}
.stock-fit-who small{font-weight:500;opacity:.85}
.stock-fit-none{padding:2px 9px;border:1px solid #e3a497;border-radius:999px;background:#fff;color:#9a2f1c;font-size:12.5px;font-weight:700}
button.stock-fit-edit{justify-self:start;min-height:0;margin:0;padding:2px 0;border:0;background:none;color:#1f5f9e;font:inherit;font-size:12.5px;font-weight:700;text-decoration:underline;cursor:pointer}
.stock-fit-missing{margin:6px 0 0;padding:8px 10px;border:1px solid #f1d2a8;border-radius:8px;background:#fff7ec;color:#7a4510;font-size:13px}
.stock-fit-said{margin:6px 0 0}
@media(max-width:700px){.stock-fit-who small{display:none}}
/* Review of Kho hàng (Owner 09/11/2026 "Sửa cả 11"). The table of a phiếu xuất fits its pane from 1280 px: the code on one line
   (td.stock-code), Phụ tùng from 124 px, Ghi chú 76 px, the titles of the number columns on two lines (Giá vốn and Tiền vốn were
   cut at 1280–1439 px behind a 2 px scrollbar, the code broken on three lines). */
#module-panel .stock-desk .stock-issue-table .qd-desc{min-width:124px}
#module-panel .stock-desk .stock-issue-table th.num{white-space:normal;vertical-align:bottom;line-height:1.25}
#module-panel .stock-desk .stock-issue-table .stock-note{width:76px;min-width:0}
/* A link of the desk (Nhật ký ›, In lại phiếu, Lịch sử sửa, Gắn mã…) takes a 24 px tap, its place unchanged (it was 16 px). */
#module-panel .stock-desk.quote-desk .qd-link{padding-top:4px;padding-bottom:4px;margin-top:-4px;margin-bottom:-4px}
/* The fields of a row line up on their bottom whatever the length of their label (Theo phiếu nhập (không bắt buộc) took two lines
   and put its box 16 px below the others; Tính thử and Tra cứu nhật ký's dates sat above their row's boxes too). */
#module-panel .stock-desk .stock-form{align-items:end}
/* Tra cứu nhật ký: the numbers on one line (the time, Chứng từ and Mã are td.stock-code). */
#module-panel .stock-desk[data-screen=journal] .stock-table td.num{white-space:nowrap}
/* Phụ trách on the phone (review of the workshop, Owner 09/11/2026 "Sửa cả 12"): the box 36 px (28), Chạm để ghi người phụ trách a
   32 px tap (20) in the green of the other links (it was blue). */
.stock-parts.stock-fit-list li{padding-left:54px}
.stock-fit-box{left:9px;top:6px;width:36px;height:36px;min-height:36px;border-radius:8px}
.stock-fit-box[aria-pressed=true]::after{left:12px;top:5px;width:8px;height:15px}
button.stock-fit-edit{min-height:32px;padding:6px 0;color:#22613c}
