/* ==================================================
   ASSAM MOTORS — WORKSHOP ERP STYLES (COMPLETE)
   ================================================== */

/* ========== RESET ========== */
* { margin: 0; padding: 0; box-sizing: border-box; font-family: 'Inter', -apple-system, sans-serif; }
html, body { max-width: 100%; overflow-x: hidden; }
body { background: #f0f2f5; color: #1a1a1a; line-height: 1.5; }
button { font-family: inherit; cursor: pointer; }
img { max-width: 100%; display: block; }

/* ========== APP ========== */
.ws-app { display: flex; height: 100vh; overflow: hidden; }

/* ========== SIDEBAR ========== */
.ws-sidebar { width: 250px; background: #0b2545; color: #fff; display: flex; flex-direction: column; flex-shrink: 0; }
.ws-logo { padding: 22px 20px; display: flex; align-items: center; gap: 12px; border-bottom: 1px solid rgba(255,255,255,0.1); }
.ws-logo-icon { font-size: 28px; }
.ws-logo strong { display: block; font-size: 15px; font-weight: 800; }
.ws-logo small { display: block; font-size: 11px; color: #94a3b8; }
.ws-nav { flex: 1; padding: 16px 12px; display: flex; flex-direction: column; gap: 4px; overflow-y: auto; }
.ws-nav-item { display: flex; align-items: center; gap: 12px; padding: 12px 16px; background: transparent; border: none; color: #cbd5e1; font-size: 14px; font-weight: 600; border-radius: 8px; cursor: pointer; transition: all 0.2s; text-align: left; font-family: inherit; width: 100%; text-decoration: none; }
.ws-nav-item:hover { background: rgba(255,255,255,0.08); color: #fff; }
.ws-nav-item.active { background: #e63946; color: #fff; box-shadow: 0 4px 12px rgba(230,57,70,0.4); }
.ws-nav-icon { font-size: 18px; }
.ws-sidebar-footer { padding: 16px 12px; border-top: 1px solid rgba(255,255,255,0.1); display: flex; flex-direction: column; gap: 6px; }
.ws-footer-btn { padding: 11px 16px; background: rgba(255,255,255,0.06); border: 1px solid rgba(255,255,255,0.12); color: #cbd5e1; font-size: 13px; font-weight: 600; border-radius: 8px; cursor: pointer; transition: all 0.2s; font-family: inherit; text-align: left; display: flex; align-items: center; gap: 12px; }
.ws-footer-btn:hover { background: rgba(255,255,255,0.12); color: #fff; }
.ws-footer-btn.logout { color: #fca5a5; border-color: rgba(252,165,165,0.3); }
.ws-footer-btn.logout:hover { background: #e63946; color: #fff; border-color: #e63946; }

/* ========== MAIN ========== */
.ws-main { flex: 1; display: flex; flex-direction: column; overflow: hidden; background: #f0f2f5; }
.ws-topbar { background: #fff; padding: 16px 28px; display: flex; justify-content: space-between; align-items: center; border-bottom: 1px solid #e5e7eb; flex-shrink: 0; }
.ws-topbar h2 { font-size: 20px; color: #0b2545; font-weight: 700; }
.ws-live-badge { background: #d1fae5; color: #065f46; padding: 4px 12px; border-radius: 20px; font-size: 11px; font-weight: 700; }
.ws-content-area { flex: 1; overflow-y: auto; padding: 24px 28px; }
.ws-page { display: none; }
.ws-page.active { display: block; }

/* ========== STATS ========== */
.ws-stats { display: grid; grid-template-columns: repeat(4, 1fr); gap: 16px; margin-bottom: 24px; }
.ws-stat-card { background: #fff; border-radius: 14px; padding: 20px; box-shadow: 0 2px 12px rgba(0,0,0,0.05); border: 1.5px solid transparent; transition: all 0.2s; }
.ws-stat-card:hover { transform: translateY(-4px); border-color: #e63946; }
.ws-stat-card .label { font-size: 11px; color: #64748b; font-weight: 700; text-transform: uppercase; letter-spacing: 0.5px; margin-bottom: 10px; }
.ws-stat-card .value { font-size: 30px; font-weight: 800; color: #0b2545; line-height: 1; }

/* ========== SECTION ========== */
.ws-section-box { background: #fff; border-radius: 14px; padding: 22px; box-shadow: 0 2px 12px rgba(0,0,0,0.05); margin-bottom: 20px; }
.ws-section-box h3 { font-size: 17px; color: #0b2545; margin-bottom: 16px; font-weight: 700; }
.ws-box-head { display: flex; justify-content: space-between; align-items: center; margin-bottom: 16px; flex-wrap: wrap; gap: 10px; }

/* ========== BUTTONS ========== */
.ws-btn { padding: 10px 18px; border-radius: 8px; font-size: 13px; font-weight: 700; border: none; cursor: pointer; transition: all 0.2s; font-family: inherit; }
.ws-btn.primary { background: #e63946; color: #fff; }
.ws-btn.primary:hover { background: #c92a37; transform: translateY(-2px); box-shadow: 0 8px 20px rgba(230,57,70,0.3); }
.ws-btn.secondary { background: #f1f5f9; color: #334155; }
.ws-btn.secondary:hover { background: #0b2545; color: #fff; }
.ws-btn.success { background: #10b981; color: #fff; }
.ws-btn.danger { background: #fef2f2; color: #e63946; }
.ws-btn.danger:hover { background: #e63946; color: #fff; }
.ws-search-input { padding: 10px 14px; border: 1.5px solid #e2e8f0; border-radius: 8px; font-size: 13px; background: #fff; font-family: inherit; outline: none; min-width: 250px; transition: all 0.2s; }
.ws-search-input:focus { border-color: #e63946; box-shadow: 0 0 0 3px rgba(230,57,70,0.1); }

/* ========== TABLE ========== */
.ws-table-wrap { overflow-x: auto; border-radius: 10px; border: 1px solid #e5e7eb; background: #fff; }
.ws-table { width: 100%; border-collapse: collapse; font-size: 13px; }
.ws-table th { text-align: left; padding: 12px; background: #f8fafc; border-bottom: 2px solid #e5e7eb; color: #64748b; font-weight: 700; font-size: 11px; text-transform: uppercase; letter-spacing: 0.5px; }
.ws-table td { padding: 12px; border-bottom: 1px solid #f1f5f9; color: #334155; vertical-align: middle; }
.ws-table tr:hover td { background: #f8fafc; }

/* ========== EMPTY ========== */
.ws-empty { text-align: center; padding: 60px 20px; color: #94a3b8; }
.ws-empty-icon { font-size: 64px; margin-bottom: 16px; opacity: 0.6; }
.ws-empty h4 { color: #0b2545; font-size: 18px; margin-bottom: 8px; }

/* ========== MODAL ========== */
.ws-modal-overlay { position: fixed; inset: 0; background: rgba(11,37,69,0.85); backdrop-filter: blur(6px); z-index: 4000; display: flex; align-items: center; justify-content: center; padding: 20px; opacity: 0; visibility: hidden; transition: all 0.3s; }
.ws-modal-overlay.open { opacity: 1; visibility: visible; }
.ws-modal { background: #fff; border-radius: 18px; width: 100%; max-width: 1300px; max-height: 92vh; overflow-y: auto; position: relative; box-shadow: 0 25px 70px rgba(0,0,0,0.4); transform: scale(0.9); transition: transform 0.3s; }
.ws-modal-overlay.open .ws-modal { transform: scale(1); }
.ws-modal.wide { max-width: 1400px; }
.ws-modal-close { position: absolute; top: 16px; right: 16px; background: #f1f5f9; border: none; width: 36px; height: 36px; border-radius: 50%; font-size: 16px; color: #64748b; cursor: pointer; z-index: 2; display: flex; align-items: center; justify-content: center; }
.ws-modal-close:hover { background: #e63946; color: #fff; }
.ws-modal-view { padding: 32px; }
.ws-modal-head { margin-bottom: 24px; }
.ws-modal-head h3 { font-size: 24px; color: #0b2545; margin-bottom: 6px; }
.ws-modal-head p { font-size: 14px; color: #64748b; }

/* ========== FORM ========== */
.ws-form-section { background: linear-gradient(135deg, #f8fafc 0%, #ffffff 100%); border: 1.5px solid #e2e8f0; border-radius: 14px; padding: 20px; margin-bottom: 18px; }
.ws-form-section-title { font-size: 14px; font-weight: 800; color: #0b2545; margin-bottom: 16px; padding-bottom: 10px; border-bottom: 2px solid #e2e8f0; display: flex; justify-content: space-between; align-items: center; gap: 10px; }
.ws-form-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; }
.ws-form-grid.col-3 { grid-template-columns: 1fr 1fr 1fr; }
.ws-form-group { display: flex; flex-direction: column; }
.ws-form-group.full { grid-column: 1 / -1; }
.ws-form-group label { font-size: 12px; color: #64748b; font-weight: 700; text-transform: uppercase; letter-spacing: 0.5px; margin-bottom: 6px; }
.ws-form-group input, .ws-form-group select, .ws-form-group textarea { padding: 11px 14px; border: 1.5px solid #e2e8f0; border-radius: 10px; font-size: 13.5px; background: #fff; font-family: inherit; outline: none; transition: all 0.2s; color: #0b2545; }
.ws-form-group input:focus, .ws-form-group select:focus, .ws-form-group textarea:focus { border-color: #e63946; box-shadow: 0 0 0 3px rgba(230,57,70,0.1); }
.ws-form-submit { width: 100%; background: linear-gradient(135deg, #e63946, #c92a37); color: #fff; border: none; padding: 15px; border-radius: 10px; font-size: 15px; font-weight: 700; transition: all 0.3s; margin-top: 8px; }
.ws-form-submit:hover { transform: translateY(-2px); box-shadow: 0 10px 25px rgba(230,57,70,0.4); }

/* ========== TOAST ========== */
.ws-toast { position: fixed; bottom: 30px; right: 30px; background: #2a9d8f; color: #fff; padding: 14px 24px; border-radius: 10px; box-shadow: 0 10px 30px rgba(0,0,0,0.2); font-weight: 600; z-index: 5000; opacity: 0; transform: translateY(20px); transition: all 0.3s; font-size: 14px; max-width: 350px; }
.ws-toast.show { opacity: 1; transform: translateY(0); }

/* ========== INSPECTION ========== */
.insp-status-btn { padding: 6px 14px; border: 1.5px solid #e2e8f0; border-radius: 20px; background: #fff; font-size: 12px; font-weight: 700; color: #64748b; cursor: pointer; transition: all 0.2s; font-family: inherit; }
.insp-status-btn:hover { border-color: #0b2545; color: #0b2545; }
.insp-status-btn.active.good { background: #d1fae5; border-color: #10b981; color: #065f46; }
.insp-status-btn.active.fair { background: #fef3c7; border-color: #f59e0b; color: #92400e; }
.insp-status-btn.active.poor { background: #fee2e2; border-color: #ef4444; color: #991b1b; }

/* ========== INSPECTION GATE ========== */
.inspection-report-btn { padding: 8px 16px; border-radius: 8px; font-size: 12px; font-weight: 700; border: 1.5px solid #fde68a; background: #fef3c7; color: #92400e; cursor: not-allowed; font-family: inherit; transition: all 0.2s; }
.inspection-report-btn:disabled { cursor: not-allowed; opacity: 0.7; }
.inspection-report-btn.ready { background: linear-gradient(135deg, #d1fae5, #a7f3d0); border-color: #10b981; color: #065f46; cursor: pointer; }
.inspection-report-btn.ready:hover { transform: translateY(-1px); box-shadow: 0 4px 12px rgba(16,185,129,0.25); }

.inspection-gate-notice { background: linear-gradient(135deg, #fef3c7, #fde68a); border-left: 4px solid #f59e0b; padding: 14px 18px; border-radius: 10px; margin-bottom: 18px; font-size: 13.5px; color: #78350f; font-weight: 600; display: flex; align-items: center; gap: 12px; flex-wrap: wrap; }
.inspection-skip-btn { padding: 6px 14px !important; font-size: 12px !important; margin-left: auto; }

.workflow-locked-panel { display: flex; align-items: center; gap: 16px; padding: 24px; background: #f8fafc; border: 2px dashed #cbd5e1; border-radius: 12px; }
.workflow-locked-panel .locked-icon { font-size: 42px; }
.workflow-locked-panel strong { display: block; color: #0b2545; font-size: 15px; margin-bottom: 4px; font-weight: 800; }
.workflow-locked-panel p { color: #64748b; font-size: 13px; }
.job-step-5.workflow-locked, .job-step-6.workflow-locked { opacity: 0.75; }

/* ==================================================
   PARTS & LABOUR EDITORS
   ================================================== */

/* ========== ITEM SEARCH BAR ========== */
.item-search-bar { position: relative; margin-bottom: 14px; }
.item-search-bar .ws-search-input { width: 100%; padding: 12px 16px; font-size: 14px; border: 2px solid #3b82f6; background: #fff; min-width: auto; }
.item-search-bar .ws-search-input:focus { border-color: #1e40af; box-shadow: 0 0 0 4px rgba(59,130,246,0.15); }
.search-results { position: absolute; top: 100%; left: 0; right: 0; background: #fff; border: 1.5px solid #e2e8f0; border-radius: 12px; box-shadow: 0 10px 40px rgba(11,37,69,0.15); max-height: 320px; overflow-y: auto; z-index: 100; display: none; margin-top: 4px; }
.search-results.show { display: block; }
.search-result-item { padding: 12px 16px; cursor: pointer; border-bottom: 1px solid #f1f5f9; display: flex; justify-content: space-between; align-items: center; gap: 12px; transition: all 0.15s; }
.search-result-item:hover { background: #eff6ff; }
.search-result-item:last-child { border-bottom: none; }
.search-result-item .sri-main { flex: 1; }
.search-result-item .sri-name { font-weight: 700; color: #0b2545; font-size: 13.5px; margin-bottom: 2px; }
.search-result-item .sri-meta { font-size: 11.5px; color: #64748b; }
.search-result-item .sri-price { font-weight: 800; color: #e63946; font-size: 14px; white-space: nowrap; }
.search-no-result { padding: 20px; text-align: center; color: #94a3b8; font-size: 13px; }

/* ========== ITEM LIST ========== */
.item-editor { padding: 4px 0; }
.item-grid-head { display:grid; gap:6px; padding:8px 8px; border-bottom:2px solid #d7e2ec; margin-bottom:6px; position:sticky; top:76px; z-index:16; background:#fff; box-shadow:0 4px 8px rgba(11,37,69,.06); border-radius:7px 7px 0 0; }
.item-grid-head span { font-size: 10.5px; font-weight: 800; color: #64748b; text-transform: uppercase; letter-spacing: 0.5px; }
.parts-grid-head { grid-template-columns:1.65fr .72fr .72fr .48fr .66fr .54fr .50fr .82fr 34px; }
.labour-grid-head { grid-template-columns:1.35fr .92fr 1fr 1fr .52fr .62fr .62fr .52fr .78fr 34px; }

.item-list { display:flex; flex-direction:column; gap:6px; }

.item-row { display:grid; gap:6px; align-items:center; padding:7px 8px; background: #f8fafc; border: 1.5px solid #e2e8f0; border-radius: 10px; transition: all 0.2s; }
.item-row:hover { border-color: #cbd5e1; background: #fff; }
.item-row.parts-row { grid-template-columns:1.65fr .72fr .72fr .48fr .66fr .54fr .50fr .82fr 34px; }
.item-row.labour-row { grid-template-columns:1.35fr .92fr 1fr 1fr .52fr .62fr .62fr .52fr .78fr 34px; }

.item-field { display: flex; flex-direction: column; gap: 4px; }
.mobile-field-label { display: none; font-size: 10px; font-weight: 800; color: #64748b; text-transform: uppercase; letter-spacing: 0.5px; }

.item-row input, .item-row select { padding:7px 8px; border: 1.5px solid #e2e8f0; border-radius: 8px; font-size: 13px; font-family: inherit; outline: none; width: 100%; min-height: 38px; background: #fff; color: #0b2545; transition: all 0.2s; }
.item-row input:focus, .item-row select:focus { border-color: #e63946; box-shadow: 0 0 0 3px rgba(230,57,70,0.1); }

.item-row .row-total { font-weight: 800; color: #0b2545; font-size: 14px; text-align: right; padding-right: 6px; white-space: nowrap; display: flex; align-items: center; justify-content: flex-end; min-height: 38px; }

.item-remove { background: #fef2f2; color: #e63946; border: none; width: 36px; height: 36px; border-radius: 8px; font-size: 14px; display: flex; align-items: center; justify-content: center; flex-shrink: 0; cursor: pointer; transition: all 0.2s; font-weight: 700; }
.item-remove:hover { background: #e63946; color: #fff; transform: scale(1.05); }


/* ===== SELECT ROW -> REPLACE FROM TOP SEARCH ===== */
.item-selection-bar{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:-4px 0 12px;padding:9px 11px;border:1px solid #bfdbfe;background:#eff6ff;border-radius:9px;color:#1e3a5f;font-size:11px}.item-selection-bar b{color:#0b2545}.item-selection-bar small{display:block;color:#64748b;margin-top:2px}.item-selection-actions{display:flex;gap:7px;flex-shrink:0}.selection-clear-btn,.selection-delete-btn{border:1px solid #cbd5e1;border-radius:7px;background:#fff;color:#334155;min-height:32px;padding:0 10px;font-size:10px;font-weight:800;cursor:pointer}.selection-delete-btn{border-color:#fecaca;background:#fff1f2;color:#b42318}.item-row.item-edit-selected{border-color:#2563eb!important;background:#eff6ff!important;box-shadow:0 0 0 2px rgba(37,99,235,.12)}.labour-row.item-edit-selected{border-color:#0f9f63!important;background:#f0fdf4!important;box-shadow:0 0 0 2px rgba(15,159,99,.12)}.rot-purpose-note{grid-column:1 / -1;display:grid;grid-template-columns:170px 1fr;gap:8px;align-items:center;padding-top:2px}.rot-purpose-note label{font-size:10px;font-weight:800;color:#64748b;text-transform:uppercase;letter-spacing:.4px}.rot-purpose-note input{min-height:34px!important;padding:7px 10px!important}.rot-delete-panel{grid-column:1 / -1;border:1px solid #fecaca;background:#fff7f7;border-radius:9px;padding:10px;margin-top:3px}.rot-delete-head{display:flex;justify-content:space-between;gap:8px;align-items:flex-start;margin-bottom:8px}.rot-delete-head strong{color:#991b1b;font-size:12px}.rot-delete-head span{display:block;color:#7f1d1d;font-size:10px;margin-top:2px}.rot-delete-grid{display:grid;grid-template-columns:1fr 1.4fr auto;gap:8px;align-items:end}.rot-delete-grid label{display:block;font-size:9px;font-weight:800;color:#7f1d1d;text-transform:uppercase;margin-bottom:4px}.rot-delete-grid select,.rot-delete-grid textarea{width:100%;border:1px solid #fecaca;border-radius:7px;background:#fff;padding:7px 8px;font-size:11px}.rot-delete-grid textarea{min-height:36px;resize:vertical}.rot-delete-confirm{min-height:36px;border:0;border-radius:7px;background:#b42318;color:#fff;padding:0 11px;font-size:10px;font-weight:900;cursor:pointer}.rot-delete-cancel{border:0;background:transparent;color:#7f1d1d;font-size:16px;font-weight:900;cursor:pointer}.rot-live-delete{background:#fff1f2!important;color:#b42318!important;border:1px solid #fecaca!important}.rot-live-delete:hover{background:#b42318!important;color:#fff!important}
@media(max-width:700px){.item-selection-bar{align-items:flex-start;flex-direction:column}.rot-purpose-note{grid-template-columns:1fr}.rot-delete-grid{grid-template-columns:1fr}.item-selection-actions{width:100%}.item-selection-actions button{flex:1}}

/* ===== COMPLETED ROT ADMIN ALTERATION (inline, no browser prompts) ===== */
.rot-admin-unlock { background:#fff4ce !important; color:#7a5200 !important; border:1px solid #f0c75e !important; }
.rot-admin-correction-row { border-color:#f0c75e !important; background:#fffdf5 !important; box-shadow:0 0 0 2px rgba(240,183,35,.08); }
.rot-alteration-panel { grid-column:1 / -1; margin-top:4px; border:1px solid #f0c75e; border-radius:9px; background:#fffaf0; padding:11px; }
.rot-alteration-title { display:flex; justify-content:space-between; align-items:flex-start; gap:10px; padding-bottom:9px; border-bottom:1px solid #f5df9e; }
.rot-alteration-title strong { display:block; color:#6f4a00; font-size:13px; }
.rot-alteration-title span { display:block; color:#806826; font-size:11px; margin-top:2px; }
.rot-panel-close { border:0; background:transparent; color:#806826; font-size:16px; font-weight:900; cursor:pointer; }
.rot-alteration-form { display:grid; grid-template-columns:1fr 1.6fr auto; gap:9px; align-items:end; margin-top:10px; }
.rot-alteration-field label,.rot-inline-search-wrap label { display:block; font-size:10px; font-weight:800; color:#73581a; text-transform:uppercase; letter-spacing:.4px; margin-bottom:5px; }
.rot-alteration-panel select,.rot-alteration-panel input,.rot-alteration-panel textarea { width:100%; border:1px solid #e3c86e; border-radius:7px; background:#fff; color:#0b2545; padding:8px 9px; font-size:12px; outline:none; }
.rot-alteration-panel textarea { min-height:38px; resize:vertical; }
.rot-unlock-inline { border:1px solid #0b2545; background:#0b2545; color:#fff; min-height:38px; border-radius:7px; padding:0 12px; font-size:11px; font-weight:800; cursor:pointer; white-space:nowrap; }
.rot-unlock-inline:disabled { opacity:.65; cursor:default; }
.rot-alteration-message { display:none; margin-top:8px; padding:7px 9px; border-radius:6px; font-size:11px; font-weight:700; }
.rot-alteration-message.success { display:block; background:#ecfdf5; border:1px solid #a7f3d0; color:#065f46; }
.rot-alteration-message.error { display:block; background:#fff1f2; border:1px solid #fecdd3; color:#9f1239; }
.rot-alteration-edit-tools { margin-top:9px; padding-top:9px; border-top:1px dashed #dfc366; }
.rot-inline-search-wrap { position:relative; }
.rot-inline-results { display:none; position:relative; max-height:220px; overflow:auto; margin-top:5px; border:1px solid #d8c273; border-radius:7px; background:#fff; box-shadow:0 6px 16px rgba(11,37,69,.08); }
.rot-inline-results.show { display:block; }
.rot-inline-result { width:100%; border:0; border-bottom:1px solid #edf0f3; background:#fff; color:#0b2545; padding:8px 9px; display:flex; justify-content:space-between; gap:10px; text-align:left; cursor:pointer; }
.rot-inline-result:hover { background:#f4f8ff; }
.rot-inline-result span { font-size:11px; }
.rot-inline-result small { color:#64748b; white-space:nowrap; }
.rot-inline-empty { padding:9px; color:#64748b; font-size:11px; }
.rot-save-hint { margin-top:7px; color:#35634a; font-size:11px; }
.rot-line-status.live-edit { background:#e8f3ff; color:#155a9c; border:1px solid #b9daf7; }
.rot-live-edit-row { border-color:#b8d8f5 !important; background:#f8fcff !important; }
.rot-live-edit-indicator { background:#e8f3ff !important; color:#155a9c !important; border:1px solid #b9daf7 !important; cursor:default !important; }
.rot-live-change { border:1px solid #9cc9ef; background:#eef7ff; color:#155a9c; border-radius:6px; padding:4px 7px; font-size:10px; font-weight:800; cursor:pointer; align-self:flex-start; }
.rot-live-change:hover { background:#dceeff; }
.rot-live-edit-panel { grid-column:1 / -1; margin-top:4px; border:1px solid #b9daf7; border-radius:9px; background:#f3f9ff; padding:11px; }
.rot-live-edit-title { display:flex; justify-content:space-between; align-items:flex-start; gap:10px; padding-bottom:9px; border-bottom:1px solid #d2e8fa; margin-bottom:9px; }
.rot-live-edit-title strong { display:block; color:#124d82; font-size:13px; }
.rot-live-edit-title span { display:block; color:#4b6f8e; font-size:11px; margin-top:2px; }
.rot-live-edit-panel .rot-inline-search-wrap label { color:#245f91; }
.rot-live-edit-panel .rot-live-search { width:100%; border:1px solid #a9cfea; border-radius:7px; background:#fff; color:#0b2545; padding:8px 9px; font-size:12px; outline:none; }
.rot-live-save-hint { margin-top:7px; color:#356b45; font-size:11px; font-weight:700; }

.item-action-buttons { display: flex; gap: 10px; flex-wrap: wrap; margin-top: 12px; }
.add-item-btn { flex: 1; min-width: 200px; justify-content: center; }

/* ========== SECTION TOTALS ========== */
.section-totals { background: #f8fafc; border: 1.5px solid #e2e8f0; border-radius: 10px; padding: 14px 18px; margin-top: 12px; display: flex; justify-content: space-between; align-items: center; }
.section-totals span { font-size: 13px; font-weight: 700; color: #64748b; }
.section-totals strong { font-size: 18px; color: #0b2545; }

/* ========== GRAND TOTAL ========== */
.grand-total-box { background: linear-gradient(135deg, #0b2545, #1e3a8a); color: #fff; border-radius: 14px; padding: 22px; margin-top: 16px; display: flex; justify-content: space-between; align-items: center; flex-wrap: wrap; gap: 14px; }
.grand-total-box .gt-label { font-size: 13px; color: #94a3b8; font-weight: 700; text-transform: uppercase; }
.grand-total-box .gt-value { font-size: 32px; font-weight: 800; color: #f39c12; }

/* ========== INVOICE / REPORT ========== */
.invoice-head { background: linear-gradient(135deg, #0b2545, #1e3a8a); color: #fff; padding: 24px; border-radius: 14px; margin-bottom: 20px; display: flex; justify-content: space-between; align-items: flex-start; flex-wrap: wrap; gap: 14px; }
.invoice-head h2 { font-size: 22px; font-weight: 800; margin-bottom: 4px; }
.invoice-head p { font-size: 13px; color: #94a3b8; }
.info-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; margin-bottom: 20px; }
.info-card { background: #f8fafc; border: 1.5px solid #e2e8f0; border-radius: 12px; padding: 16px; }
.info-card h4 { font-size: 12px; color: #64748b; text-transform: uppercase; letter-spacing: 0.5px; margin-bottom: 10px; font-weight: 700; }
.info-card p { font-size: 13px; color: #0b2545; margin-bottom: 4px; }
.invoice-table { width: 100%; border-collapse: collapse; font-size: 13px; margin-bottom: 16px; }
.invoice-table th { background: #0b2545; color: #fff; padding: 10px 12px; text-align: left; font-size: 11px; text-transform: uppercase; }
.invoice-table td { padding: 10px 12px; border-bottom: 1px solid #e5e7eb; color: #334155; }
.invoice-section-title { background: #e63946; color: #fff; padding: 8px 14px; border-radius: 8px; font-size: 13px; font-weight: 700; display: inline-block; margin-bottom: 12px; }
.invoice-section-title.labour { background: #0b2545; }
.invoice-footer { background: #f8fafc; border: 1.5px solid #e2e8f0; border-radius: 12px; padding: 18px; margin-top: 16px; }
.invoice-footer .row { display: flex; justify-content: space-between; padding: 6px 0; font-size: 13px; color: #334155; }
.invoice-footer .row.total { border-top: 2px solid #0b2545; margin-top: 8px; padding-top: 12px; font-size: 18px; font-weight: 800; color: #0b2545; }
.insp-summary { display: grid; grid-template-columns: repeat(3, 1fr); gap: 12px; margin-bottom: 18px; }
.insp-summary-card { border-radius: 12px; padding: 14px; text-align: center; }
.insp-summary-card .num { font-size: 26px; font-weight: 800; }
.insp-summary-card .lbl { font-size: 11px; font-weight: 700; text-transform: uppercase; }

/* ========== PRINT / GST INVOICE / JOB CARD SUMMARY ========== */
.am-print-actions{margin-bottom:14px;display:flex;gap:10px;flex-wrap:wrap}
.am-print-document{max-width:100%;background:#fff;color:#172033}
.am-print-company-header{border:1.5px solid #1d3557;border-radius:12px;overflow:hidden;margin:0 0 14px;display:grid;grid-template-columns:minmax(0,1fr) 270px;background:#fff}
.am-print-brand{display:flex;gap:16px;padding:16px 18px;align-items:flex-start}
.am-print-logo{width:92px;height:92px;object-fit:contain;flex:0 0 92px}
.am-print-company-copy h1{margin:0 0 5px;color:#0b2545;font-size:24px;line-height:1.05;letter-spacing:.03em}
.am-print-company-copy p{margin:3px 0;color:#334155;font-size:11.5px;line-height:1.45}
.am-print-company-lines p{margin:2px 0;line-height:1.28;white-space:nowrap;font-size:10.8px}
.am-print-company-lines .am-print-sep{display:inline-block;margin:0 5px;color:#94a3b8;font-weight:700}
.am-print-document-meta{background:#0b2545;color:#fff;padding:16px 18px;display:flex;flex-direction:column;justify-content:center;gap:10px}
.am-print-document-meta .am-print-doc-title{font-size:18px;font-weight:900;letter-spacing:.04em;border-bottom:1px solid rgba(255,255,255,.24);padding-bottom:9px}
.am-cost-summary .am-print-company-header{grid-template-columns:minmax(0,1fr) 320px}
.am-print-document-meta .am-print-cost-summary-title{font-size:13px;line-height:1.12;letter-spacing:.01em;padding-bottom:6px}.am-print-cost-summary-title span{display:block;white-space:nowrap;color:#fff;font-size:inherit;text-transform:none;letter-spacing:inherit;font-weight:900;margin:0 0 2px}.am-print-cost-summary-title span:last-child{font-size:11px;margin-bottom:0}.am-print-document-meta-cost-summary{gap:6px;padding-top:13px;padding-bottom:13px}.am-print-document-meta-cost-summary .am-print-meta-line{display:flex;align-items:baseline;gap:7px;white-space:nowrap;min-width:0}.am-print-document-meta-cost-summary .am-print-meta-line span,.am-print-document-meta-cost-summary .am-print-meta-line strong{display:inline;margin:0}.am-print-document-meta-cost-summary .am-print-meta-line span{flex:0 0 auto}.am-print-document-meta-cost-summary .am-print-meta-line strong{font-size:11px;min-width:0;overflow:hidden;text-overflow:ellipsis}
.am-tax-invoice .am-print-company-header{grid-template-columns:minmax(0,1fr) 320px}
.am-print-document-meta .am-print-tax-service-title{font-size:15px;line-height:1.08;letter-spacing:.01em;padding-bottom:6px}
.am-print-tax-service-title span{display:block;white-space:nowrap;color:#fff;font-size:inherit;text-transform:none;letter-spacing:inherit;font-weight:900;margin:0}
.am-print-document-meta-tax-service{gap:6px;padding-top:13px;padding-bottom:13px}
.am-print-document-meta-tax-service .am-print-meta-line{display:flex;align-items:baseline;gap:7px;white-space:nowrap;min-width:0}
.am-print-document-meta-tax-service .am-print-meta-line span,.am-print-document-meta-tax-service .am-print-meta-line strong{display:inline;margin:0}
.am-print-document-meta-tax-service .am-print-meta-line span{flex:0 0 auto}
.am-print-document-meta-tax-service .am-print-meta-line strong{font-size:11px;min-width:0;overflow:hidden;text-overflow:ellipsis}
.am-print-document-meta span{display:block;color:#cbd5e1;font-size:9px;text-transform:uppercase;letter-spacing:.08em;font-weight:800}
.am-print-document-meta strong{display:block;color:#fff;font-size:12px;margin-top:2px}
.am-print-info-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:0 0 14px}
.am-print-info-card{border:1px solid #d9e2ec;border-radius:9px;padding:11px 12px;background:#fff}
.am-print-info-card h4{margin:0 0 6px;color:#0b2545;font-size:10px;text-transform:uppercase;letter-spacing:.06em}
.am-print-info-card p{margin:3px 0;color:#334155;font-size:11px;line-height:1.4}
.am-print-notes{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:0 0 14px}
.am-print-notes>div{border:1px solid #d9e2ec;border-radius:9px;padding:10px 12px;min-height:62px}
.am-print-notes b{font-size:10px;color:#0b2545;text-transform:uppercase}.am-print-notes p{margin:5px 0 0;font-size:11px;color:#334155;white-space:pre-wrap}
.am-print-line-table th,.am-print-line-table td{vertical-align:top}.am-print-line-table td small{color:#64748b}.am-money{text-align:right!important;white-space:nowrap}
.am-print-totals{max-width:430px;margin-left:auto}.am-ledger-reference{text-align:center;color:#64748b;font-size:10px;margin:14px 0}
.am-print-compliance{margin-top:18px;border-top:2px solid #0b2545;padding-top:14px;color:#25364d}
.am-print-bottom-grid{display:grid;grid-template-columns:1.4fr .8fr;gap:16px}
.am-print-bank,.am-print-signature{border:1px solid #d9e2ec;border-radius:9px;padding:11px 13px}
.am-print-bank h4,.am-print-terms h4{margin:0 0 7px;color:#0b2545;font-size:12px}.am-print-bank p{margin:3px 0;font-size:10.5px}
.am-print-signature{text-align:center;display:flex;flex-direction:column;justify-content:flex-end;font-size:11px}.am-signature-space{height:46px}
.am-print-terms{margin-top:12px;border:1px solid #d9e2ec;border-radius:9px;padding:11px 13px}.am-print-terms p{margin:0 0 4px;font-size:10px}.am-print-terms ol{margin:4px 0 0 18px;padding:0}.am-print-terms li{font-size:10px;line-height:1.42;margin:2px 0}
.am-print-legal-note{margin-top:10px;text-align:center;background:#f1f5f9;border-radius:7px;padding:8px 10px;font-size:9.5px;font-weight:700;color:#475569}

@media print {
  html,body{height:auto!important;min-height:0!important;overflow:visible!important;background:#fff!important}
  body *{visibility:hidden!important}
  body > *:not(#inspectionReportModal){display:none!important}
  #inspectionReportModal,#inspectionReportModal *{visibility:visible!important}
  #inspectionReportModal{display:block!important;position:static!important;inset:auto!important;width:auto!important;height:auto!important;min-height:0!important;max-height:none!important;overflow:visible!important;background:#fff!important;padding:0!important;opacity:1!important;visibility:visible!important;backdrop-filter:none!important}
  #inspectionReportModal .ws-modal{display:block!important;position:static!important;width:100%!important;max-width:none!important;height:auto!important;min-height:0!important;max-height:none!important;overflow:visible!important;margin:0!important;padding:0!important;border:0!important;border-radius:0!important;box-shadow:none!important;transform:none!important}
  #inspectionReportModal .ws-modal-view{display:block!important;width:100%!important;height:auto!important;max-height:none!important;overflow:visible!important;padding:0!important;margin:0!important}
  .no-print,.ws-modal-close,.ws-sidebar,.ws-topbar{display:none!important}
  .am-print-document{width:100%!important;max-width:none!important;margin:0!important;padding:0!important}
  .am-print-company-header{break-inside:avoid;page-break-inside:avoid;border-radius:0!important}
  .am-print-company-copy h1{font-size:20pt}.am-print-company-copy p{font-size:8.5pt}.am-print-company-lines p{font-size:6.9pt;line-height:1.22;white-space:nowrap}.am-print-company-lines .am-print-sep{margin:0 1.2mm}.am-print-logo{width:24mm;height:24mm;flex-basis:24mm}
  .am-print-document-meta .am-print-doc-title{font-size:14pt}.am-print-document-meta strong{font-size:9pt}
  .am-cost-summary .am-print-company-header{grid-template-columns:minmax(0,1fr) 84mm!important}.am-print-document-meta .am-print-cost-summary-title{font-size:9.2pt!important;line-height:1.08;padding-bottom:1.4mm!important}.am-print-cost-summary-title span{font-size:inherit!important;white-space:nowrap}.am-print-cost-summary-title span:last-child{font-size:8pt!important}.am-print-document-meta-cost-summary{gap:1.25mm!important;padding-top:3mm!important;padding-bottom:3mm!important}.am-print-document-meta-cost-summary .am-print-meta-line{display:flex!important;align-items:baseline!important;gap:1.5mm!important;white-space:nowrap!important}.am-print-document-meta-cost-summary .am-print-meta-line span,.am-print-document-meta-cost-summary .am-print-meta-line strong{display:inline!important;margin:0!important}.am-print-document-meta-cost-summary .am-print-meta-line strong{font-size:8.2pt!important}
  .am-tax-invoice .am-print-company-header{grid-template-columns:minmax(0,1fr) 84mm!important}.am-print-document-meta .am-print-tax-service-title{font-size:10pt!important;line-height:1.08;padding-bottom:1.4mm!important}.am-print-tax-service-title span{font-size:inherit!important;white-space:nowrap}.am-print-document-meta-tax-service{gap:1.25mm!important;padding-top:3mm!important;padding-bottom:3mm!important}.am-print-document-meta-tax-service .am-print-meta-line{display:flex!important;align-items:baseline!important;gap:1.5mm!important;white-space:nowrap!important}.am-print-document-meta-tax-service .am-print-meta-line span,.am-print-document-meta-tax-service .am-print-meta-line strong{display:inline!important;margin:0!important}.am-print-document-meta-tax-service .am-print-meta-line strong{font-size:8.2pt!important}
  .am-print-info-grid{grid-template-columns:1fr 1fr;gap:2.5mm}.am-print-info-card{break-inside:avoid;page-break-inside:avoid;border-radius:0;padding:2.5mm}.am-print-info-card p{font-size:8.2pt}.am-print-info-card h4{font-size:7.7pt}
  .am-print-notes{break-inside:avoid;page-break-inside:avoid}.am-print-notes p{font-size:8pt}
  .invoice-section-title{break-after:avoid;page-break-after:avoid;margin-top:2mm;margin-bottom:2mm;border-radius:0!important;padding:2mm 3mm;font-size:8.5pt}
  .invoice-table{font-size:8pt;margin-bottom:3mm;border-collapse:collapse!important;width:100%!important}
  .invoice-table thead{display:table-header-group!important}.invoice-table tfoot{display:table-footer-group!important}
  .invoice-table tr{break-inside:avoid;page-break-inside:avoid}.invoice-table th{padding:2mm 1.6mm;font-size:7pt;background:#0b2545!important;color:#fff!important;-webkit-print-color-adjust:exact;print-color-adjust:exact}.invoice-table td{padding:1.8mm 1.6mm;border:1px solid #d9e2ec!important;color:#1f2937!important}
  .invoice-footer{break-inside:avoid;page-break-inside:avoid;border-radius:0!important;padding:3mm;margin-top:3mm}.invoice-footer .row{font-size:8.5pt;padding:1.2mm 0}.invoice-footer .row.total{font-size:11pt}
  .am-print-compliance{margin-top:4mm;padding-top:3mm}.am-print-bottom-grid{break-inside:avoid;page-break-inside:avoid;gap:3mm}.am-print-bank,.am-print-signature,.am-print-terms{border-radius:0!important;padding:2.5mm}.am-print-bank p,.am-print-signature,.am-print-terms li,.am-print-terms p{font-size:7.5pt}.am-print-terms h4,.am-print-bank h4{font-size:8.5pt}.am-signature-space{height:12mm}.am-print-legal-note{font-size:7pt;border-radius:0!important}
  .am-ledger-reference{font-size:7pt}
  *{-webkit-print-color-adjust:exact!important;print-color-adjust:exact!important}
  @page{size:A4 portrait;margin:8mm 9mm 10mm}
}

/* ========== RESPONSIVE ========== */
@media (max-width: 1100px) { .ws-stats { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 900px) {
  .ws-sidebar { width: 70px; }
  .ws-logo div, .ws-nav-text { display: none; }
  .ws-logo { padding: 20px 10px; justify-content: center; }
  .ws-nav-item { justify-content: center; padding: 12px; }
  .ws-footer-btn { justify-content: center; padding: 12px; }
  .ws-form-grid, .ws-form-grid.col-3 { grid-template-columns: 1fr; }
  .ws-search-input { min-width: 100%; }
  .item-row, .item-row.parts-row, .item-row.labour-row { grid-template-columns: 1fr; }
  .item-grid-head, .parts-grid-head, .labour-grid-head { display: none; }
  .mobile-field-label { display: block; }
  .info-grid { grid-template-columns: 1fr; }
  .insp-summary { grid-template-columns: 1fr; }
}

/* ===== SEARCH RESULT HIGHLIGHT ===== */
.search-result-item.highlighted {
  background: linear-gradient(135deg, #dbeafe 0%, #bfdbfe 100%);
  border-left: 4px solid #1e40af;
  padding-left: 12px;
}
.search-result-item.highlighted .sri-name { color: #1e40af; }
@media (max-width: 760px) {
  .rot-alteration-form { grid-template-columns:1fr; }
  .rot-inline-result { flex-direction:column; gap:3px; }
}

/* ===== CUSTOMER / VEHICLE MASTER SELECTOR ===== */
.jc-master-search-wrap{position:relative}.jc-master-search-results{position:absolute;left:0;right:0;top:68px;z-index:80;background:#fff;border:1px solid #cbd5e1;border-radius:10px;box-shadow:0 14px 34px rgba(15,23,42,.18);max-height:300px;overflow:auto;display:none}.jc-master-search-results.open{display:block}.jc-master-result{padding:10px 12px;border-bottom:1px solid #eef2f7;cursor:pointer;background:#fff}.jc-master-result:last-child{border-bottom:0}.jc-master-result:hover,.jc-master-result.active{background:#eff6ff}.jc-master-result strong{display:block;color:#0f2e50;font-size:12px}.jc-master-result small{display:block;color:#64748b;font-size:10px;margin-top:2px}.jc-master-help{display:block;color:#64748b;font-size:10px;margin-top:5px;line-height:1.4}.ws-form-group input[readonly]{background:#f8fafc;color:#334155;cursor:default}


/* ===== DIRECT NUMERIC ENTRY — hide spinner arrows, keep keyboard typing ===== */
.p-qty, .p-rate, .p-gst, .l-hours, .l-rate,
#npPurchasePrice, #npSellingPrice, #npGstPercent, #npMinStock,
#nlStandardHours, #nlLabourRate, #nlGstPercent {
  -moz-appearance: textfield;
  appearance: textfield;
}
.p-qty::-webkit-outer-spin-button, .p-qty::-webkit-inner-spin-button,
.p-rate::-webkit-outer-spin-button, .p-rate::-webkit-inner-spin-button,
.p-gst::-webkit-outer-spin-button, .p-gst::-webkit-inner-spin-button,
.l-hours::-webkit-outer-spin-button, .l-hours::-webkit-inner-spin-button,
.l-rate::-webkit-outer-spin-button, .l-rate::-webkit-inner-spin-button,
#npPurchasePrice::-webkit-outer-spin-button, #npPurchasePrice::-webkit-inner-spin-button,
#npSellingPrice::-webkit-outer-spin-button, #npSellingPrice::-webkit-inner-spin-button,
#npGstPercent::-webkit-outer-spin-button, #npGstPercent::-webkit-inner-spin-button,
#npMinStock::-webkit-outer-spin-button, #npMinStock::-webkit-inner-spin-button,
#nlStandardHours::-webkit-outer-spin-button, #nlStandardHours::-webkit-inner-spin-button,
#nlLabourRate::-webkit-outer-spin-button, #nlLabourRate::-webkit-inner-spin-button,
#nlGstPercent::-webkit-outer-spin-button, #nlGstPercent::-webkit-inner-spin-button {
  -webkit-appearance: none;
  margin: 0;
}


/* FULL-WINDOW JOB CARD + PURCHASE + PUBLIC STATUS */
#jobCardModal.ws-modal-overlay{padding:0!important;align-items:stretch!important;justify-content:stretch!important;background:#eef3f8!important;backdrop-filter:none!important}
#jobCardModal .ws-modal{width:100vw!important;max-width:none!important;height:100vh!important;max-height:none!important;margin:0!important;border-radius:0!important;box-shadow:none!important;transform:none!important;overflow-y:auto!important;overscroll-behavior:contain}
#jobCardModal.open .ws-modal{transform:none!important}
#jobCardModal .ws-modal-view{width:100%;max-width:1500px;margin:0 auto;padding:24px 30px 40px}
#jobCardModal .ws-modal-head{position:sticky;top:0;z-index:5;margin:-24px -30px 24px!important;padding:20px 70px 18px 30px!important;border-radius:0!important;background:#fff;border-bottom:1px solid #dbe5ef}
#jobCardModal .ws-modal-close{position:fixed!important;top:12px!important;right:16px!important;z-index:4010!important}
.part-purpose-note{grid-column:1/-1;display:grid;grid-template-columns:135px 1fr;gap:8px;align-items:center;margin-top:4px}.part-purpose-note label{font-size:10px;font-weight:800;color:#52677e;text-transform:uppercase;letter-spacing:.03em}.part-purpose-note input{width:100%;min-height:34px;border:1px solid #d4dfeb;border-radius:7px;padding:7px 9px;background:#fff}
.purchase-page-head{display:flex;justify-content:space-between;gap:16px;align-items:center;margin-bottom:14px}.purchase-page-head h3{margin:0 0 4px;color:#0b2545}.purchase-page-head p{margin:0;color:#64748b;font-size:12px}.purchase-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}.purchase-card{min-width:0}.purchase-card-title{display:flex;justify-content:space-between;align-items:center;font-weight:800;color:#0b2545;margin-bottom:14px}.purchase-tag{font-size:10px;border-radius:999px;padding:4px 8px}.purchase-tag.stock{background:#dcfce7;color:#166534}.purchase-tag.osl{background:#fef3c7;color:#92400e}.purchase-shortcut{background:#7c3aed!important;border-color:#7c3aed!important;color:#fff!important}.purchase-search-results{display:none;position:relative}.purchase-search-results.show{display:block;position:absolute;left:0;right:0;z-index:15;background:#fff;border:1px solid #cbd5e1;border-radius:8px;box-shadow:0 12px 28px rgba(15,23,42,.18);max-height:240px;overflow:auto}.purchase-search-item{padding:9px 10px;border-bottom:1px solid #edf2f7;cursor:pointer}.purchase-search-item:hover,.purchase-search-item.active{background:#eff6ff}.purchase-search-item b{display:block}.purchase-search-item small,.purchase-help{color:#64748b;font-size:11px}.purchase-message{font-size:12px;margin-top:8px}.purchase-history-card{margin-top:16px}.purchase-submit{margin-top:12px}.osl-submit{background:#7c3aed!important}.public-status-gate{font-size:10px;margin-top:5px;font-weight:700;color:#64748b}.public-status-gate.warn{color:#b45309}.public-status-gate.good{color:#047857}
@media(max-width:900px){.purchase-grid{grid-template-columns:1fr}}@media(max-width:700px){#jobCardModal .ws-modal-view{padding:16px 12px 30px}#jobCardModal .ws-modal-head{margin:-16px -12px 18px!important;padding:16px 58px 14px 14px!important}.part-purpose-note{grid-template-columns:1fr}}


/* ===== PURCHASE SUBMENU / VENDOR MASTER ===== */
.purchase-nav-toggle{position:relative}.purchase-nav-chevron{margin-left:auto;font-size:14px;transition:transform .2s}.purchase-nav-toggle[aria-expanded="true"] .purchase-nav-chevron{transform:rotate(180deg)}
.purchase-nav-submenu{display:none;margin:-2px 8px 6px 34px;border-left:1px solid rgba(255,255,255,.18);padding-left:8px}.purchase-nav-submenu.open{display:flex;flex-direction:column;gap:3px}
.purchase-nav-link{display:block;padding:8px 10px;border-radius:7px;color:#cbd5e1;text-decoration:none;font-size:11px;font-weight:700}.purchase-nav-link:hover,.purchase-nav-link.active{background:rgba(255,255,255,.10);color:#fff}
.purchase-single-page{max-width:1100px}.purchase-inline-action{display:flex;gap:8px;align-items:flex-start}.purchase-search-flex{position:relative;flex:1;min-width:0}.purchase-search-flex>input[type="text"],.purchase-search-flex>input:not([type]){width:100%}.purchase-create-btn{margin:0!important;white-space:nowrap;min-height:40px}
.vendor-master-grid{display:grid;grid-template-columns:minmax(360px,.85fr) minmax(520px,1.4fr);gap:16px}.vendor-form-actions{display:flex;justify-content:flex-end;gap:8px}.vendor-form-actions .ws-btn{margin:0}
.purchase-vendor-status{display:inline-flex;padding:4px 8px;border-radius:999px;font-size:10px;font-weight:800}.purchase-vendor-status.active{background:#dcfce7;color:#166534}.purchase-vendor-status.inactive{background:#fee2e2;color:#991b1b}
.purchase-history-filters{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:12px}.purchase-history-filters select,.purchase-history-filters input{min-height:40px;border:1px solid #d6e0ea;border-radius:8px;padding:0 10px;background:#fff}.purchase-history-filters input{flex:1;min-width:260px}
.vendor-search-wrap,.osl-item-search-wrap,.purchase-part-search-wrap{position:relative}
@media(max-width:980px){.vendor-master-grid{grid-template-columns:1fr}.purchase-inline-action{flex-direction:column}.purchase-create-btn{width:100%}.purchase-single-page{max-width:none}}

/* ===== TRUE FULL-WINDOW JOB CARD WORKSPACE ===== */
#jobCardModal.ws-modal-overlay{
  inset:0!important;padding:0!important;background:#eef3f8!important;align-items:stretch!important;justify-content:stretch!important;overflow:hidden!important;
}
#jobCardModal .ws-modal{
  position:relative!important;width:100vw!important;max-width:none!important;height:100vh!important;max-height:none!important;margin:0!important;border-radius:0!important;background:#eef3f8!important;box-shadow:none!important;overflow-y:auto!important;overflow-x:hidden!important;
}
#jobCardModal .ws-modal-view{
  width:100%!important;max-width:none!important;margin:0!important;padding:0 18px 38px!important;background:#eef3f8!important;
}
#jobCardModal .ws-modal-head{
  position:sticky!important;top:0!important;z-index:20!important;margin:0 -18px 18px!important;padding:17px 66px 15px 22px!important;
  background:linear-gradient(135deg,#0d2f56,#1f4381)!important;border:0!important;border-bottom:1px solid #244f8d!important;color:#fff!important;
  box-shadow:0 4px 14px rgba(15,23,42,.14);
}
#jobCardModal .ws-modal-head h3{color:#fff!important;margin:0 0 4px!important;font-size:19px!important}
#jobCardModal .ws-modal-head p{color:#dbeafe!important;margin:0!important}
#jobCardModal .ws-modal-close{
  position:fixed!important;top:12px!important;right:16px!important;z-index:4030!important;background:rgba(255,255,255,.15)!important;border:1px solid rgba(255,255,255,.30)!important;color:#fff!important;
}
#jobCardModal #jobCardForm{width:100%!important;max-width:none!important;margin:0!important}
#jobCardModal .ws-form-section{width:100%!important;max-width:none!important;background:#fff!important;box-shadow:0 2px 10px rgba(15,23,42,.04)}
#jobCardModal .ws-form-grid{width:100%}
@media(max-width:700px){
  #jobCardModal .ws-modal-view{padding:0 8px 24px!important}
  #jobCardModal .ws-modal-head{margin:0 -8px 12px!important;padding:14px 58px 12px 12px!important}
}

/* ===== PENDING12: sticky compact item editors ===== */
.item-editor{position:relative}.item-grid-head span{font-size:9.5px}.item-row input,.item-row select{min-height:34px;font-size:11.5px}.item-row .row-total{min-height:34px;font-size:12px}.item-remove{width:32px;height:32px}.l-tat-display{min-height:34px;display:flex;align-items:center;justify-content:center;border:1px solid #dbe5ee;background:#f8fbfe;border-radius:7px;font-size:10.5px;font-weight:800;color:#0b4f83;white-space:nowrap}.part-purpose-note{grid-column:1/-1;display:grid;grid-template-columns:150px 1fr;gap:7px;align-items:center;padding-top:1px}.part-purpose-note label{font-size:9px;font-weight:800;color:#64748b;text-transform:uppercase}.part-purpose-note input{min-height:32px!important;padding:6px 8px!important}.negative-stock-badge{display:inline-flex;padding:4px 7px;border-radius:999px;font-size:10px;font-weight:900;background:#fff1f2;color:#b42318}.stock-cap-badge{background:#b42318;color:#fff}.stock-safe-badge{background:#fff7e6;color:#92400e}.purchase-action-btn{border:1px solid #cbd5e1;border-radius:6px;padding:5px 7px;background:#fff;font-weight:800;font-size:10px;cursor:pointer}.purchase-action-btn.edit{color:#1d4ed8}.purchase-action-btn.delete{color:#b42318;border-color:#fecaca}.purchase-edit-banner{display:none;margin-bottom:10px;padding:8px 10px;border:1px solid #93c5fd;background:#eff6ff;border-radius:8px;font-size:11px;color:#1e40af}.purchase-edit-banner.show{display:flex;justify-content:space-between;align-items:center;gap:8px}.impact-over{color:#b42318;font-weight:900}.impact-fast{color:#047857;font-weight:900}.impact-target{color:#2457a7;font-weight:900}
@media(max-width:1200px) and (min-width:701px){.parts-grid-head,.item-row.parts-row{grid-template-columns:1.45fr .65fr .65fr .46fr .62fr .5fr .48fr .75fr 32px}.labour-grid-head,.item-row.labour-row{grid-template-columns:1.2fr .8fr .95fr .95fr .5fr .58fr .58fr .5fr .72fr 32px}.item-grid-head span{font-size:8.5px}}

/* ===== Job Cards compact summary + filter toolbar (2026-10-02) ===== */
#ws-page-jobcards .jc-compact-stats{
  grid-template-columns:repeat(5,minmax(0,1fr));
  gap:9px;
  margin-bottom:14px;
}
#ws-page-jobcards .jc-compact-stats .ws-stat-card{
  min-height:64px;
  padding:10px 13px;
  border-radius:11px;
  box-shadow:0 1px 7px rgba(15,35,60,.06);
  border:1px solid #dce5ef;
  display:flex;
  align-items:center;
  gap:10px;
  transform:none;
}
#ws-page-jobcards .jc-compact-stats .ws-stat-card:hover{
  transform:none;
  border-color:#b8c8da;
  box-shadow:0 3px 10px rgba(15,35,60,.08);
}
#ws-page-jobcards .jc-compact-stats .label{
  margin:0 0 3px;
  font-size:8px;
  letter-spacing:.65px;
  white-space:nowrap;
}
#ws-page-jobcards .jc-compact-stats .value{
  font-size:19px;
  line-height:1;
}
#ws-page-jobcards .jc-stat-icon{
  width:31px;
  height:31px;
  flex:0 0 31px;
  display:flex;
  align-items:center;
  justify-content:center;
  border-radius:9px;
  font-size:15px;
  background:#f1f5f9;
}
#ws-page-jobcards .jc-stat-open{background:#f8fbff;border-color:#bfdbfe!important}
#ws-page-jobcards .jc-stat-open .value{color:#1d4ed8}
#ws-page-jobcards .jc-stat-open .jc-stat-icon{background:#dbeafe}
#ws-page-jobcards .jc-stat-wip .value{color:#d97706}
#ws-page-jobcards .jc-stat-wip .jc-stat-icon{background:#fff7ed}
#ws-page-jobcards .jc-stat-done{background:#f7fff9;border-color:#bbf7d0!important}
#ws-page-jobcards .jc-stat-done .value{color:#15803d}
#ws-page-jobcards .jc-stat-done .jc-stat-icon{background:#dcfce7}
#ws-page-jobcards .jc-stat-invoiced .value{color:#173c68}
#ws-page-jobcards .jc-stat-invoiced .jc-stat-icon{background:#eef2ff}

#ws-page-jobcards .jc-list-section{padding:16px 18px 18px}
#ws-page-jobcards .jc-list-head{margin-bottom:11px}
#ws-page-jobcards .jc-list-head h3{margin-bottom:2px}
#ws-page-jobcards .jc-list-subtitle{margin:0;color:#94a3b8;font-size:10px;font-weight:600}
#ws-page-jobcards .jc-list-actions{display:flex;gap:7px;flex-wrap:wrap}
#ws-page-jobcards .jc-list-actions .ws-btn{padding:8px 12px;font-size:11px}
#ws-page-jobcards .jc-filter-bar{
  display:grid;
  grid-template-columns:minmax(320px,1fr) 150px 170px 150px auto;
  gap:8px;
  align-items:center;
  padding:9px;
  margin:0 0 8px;
  border:1px solid #dbe5ef;
  border-radius:11px;
  background:#f8fafc;
}
#ws-page-jobcards .jc-filter-search{
  min-width:0;
  height:38px;
  display:flex;
  align-items:center;
  gap:8px;
  padding:0 11px;
  background:#fff;
  border:1px solid #d7e1ec;
  border-radius:8px;
}
#ws-page-jobcards .jc-filter-search:focus-within{border-color:#2f6fda;box-shadow:0 0 0 3px rgba(47,111,218,.09)}
#ws-page-jobcards .jc-filter-search-icon{font-size:12px;opacity:.7}
#ws-page-jobcards .jc-filter-search input{
  width:100%;
  min-width:0;
  border:0;
  outline:0;
  background:transparent;
  font:inherit;
  color:#0f2744;
  font-size:11px;
}
#ws-page-jobcards .jc-filter-select{
  width:100%;
  height:38px;
  padding:0 9px;
  border:1px solid #d7e1ec;
  border-radius:8px;
  background:#fff;
  color:#334155;
  font:inherit;
  font-size:10px;
  font-weight:600;
  outline:none;
}
#ws-page-jobcards .jc-filter-select:focus{border-color:#2f6fda;box-shadow:0 0 0 3px rgba(47,111,218,.08)}
#ws-page-jobcards .jc-clear-filter{
  height:38px;
  padding:0 12px;
  border:1px solid #d7e1ec;
  border-radius:8px;
  background:#fff;
  color:#64748b;
  font-size:10px;
  font-weight:800;
  cursor:pointer;
  white-space:nowrap;
}
#ws-page-jobcards .jc-clear-filter:hover{background:#0b2c4d;color:#fff;border-color:#0b2c4d}
#ws-page-jobcards .jc-filter-result{min-height:14px;margin:0 2px 6px;color:#64748b;font-size:9px}
#ws-page-jobcards .jc-filter-result b{color:#0b2c4d}

@media(max-width:1150px){
  #ws-page-jobcards .jc-compact-stats{grid-template-columns:repeat(5,minmax(135px,1fr));overflow-x:auto;padding-bottom:3px}
  #ws-page-jobcards .jc-filter-bar{grid-template-columns:1fr 1fr 1fr}
  #ws-page-jobcards .jc-filter-search{grid-column:1/-1}
}
@media(max-width:700px){
  #ws-page-jobcards .jc-compact-stats{grid-template-columns:repeat(5,145px)}
  #ws-page-jobcards .jc-filter-bar{grid-template-columns:1fr}
  #ws-page-jobcards .jc-filter-search{grid-column:auto}
  #ws-page-jobcards .jc-list-actions{width:100%}
  #ws-page-jobcards .jc-list-actions .ws-btn{flex:1}
}


/* ===== ROT Performance disciplined KPI row ===== */
#ws-page-technician .rot-stats{
  display:grid;
  grid-template-columns:repeat(5,minmax(0,1fr));
  gap:10px;
  margin:0 0 14px!important;
}
#ws-page-technician .rot-stats .ws-stat-card{
  min-width:0;
  padding:13px 14px;
  border:1px solid #dbe5ef;
  border-radius:11px;
  box-shadow:0 2px 8px rgba(15,39,68,.05);
}
#ws-page-technician .rot-stats .ws-stat-card:hover{transform:none;border-color:#bfd1e5}
#ws-page-technician .rot-stats .label{margin-bottom:5px;font-size:9px;white-space:nowrap}
#ws-page-technician .rot-stats .value{font-size:20px;line-height:1.05}
#ws-page-technician .rot-stats small{display:block;margin-top:4px;color:#64748b;font-size:9px}
@media(max-width:950px){
  #ws-page-technician .rot-stats{grid-template-columns:repeat(5,150px);overflow-x:auto;padding-bottom:4px}
}

/* ===== Live Workshop Floor Board ===== */
.floor-board-section{margin-bottom:18px}
.floor-board-head{align-items:flex-start}
.floor-board-head h3{margin:0 0 3px}
.floor-board-head p{margin:0;color:#64748b;font-size:10px}
.floor-board-grid{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:10px;
  margin-top:12px;
}
.floor-staff-card{
  border:1px solid #dbe5ef;
  border-radius:12px;
  background:#fff;
  overflow:hidden;
  box-shadow:0 2px 8px rgba(15,39,68,.05);
}
.floor-staff-card.running{border-top:3px solid #16a34a}
.floor-staff-card.paused{border-top:3px solid #f59e0b}
.floor-card-top{display:flex;align-items:center;gap:9px;padding:11px 12px;border-bottom:1px solid #edf2f7}
.floor-avatar{width:34px;height:34px;border-radius:9px;display:grid;place-items:center;background:#eaf2ff;color:#1d4ed8;font-weight:900}
.floor-person{min-width:0;flex:1}
.floor-person b,.floor-person small{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.floor-person b{font-size:11px;color:#0b2545}
.floor-person small{font-size:9px;color:#94a3b8;margin-top:2px}
.floor-state{display:inline-flex;align-items:center;justify-content:center;padding:4px 7px;border-radius:999px;font-size:8px;font-weight:900;letter-spacing:.04em}
.floor-state.running{background:#dcfce7;color:#166534}
.floor-state.paused{background:#fef3c7;color:#92400e}
.floor-state.assigned{background:#e0e7ff;color:#3730a3}
.floor-vehicle{display:flex;justify-content:space-between;gap:8px;padding:9px 12px 4px}
.floor-vehicle strong{color:#0b2545;font-size:12px}
.floor-vehicle span{color:#64748b;font-size:9px;text-align:right}
.floor-rot{padding:4px 12px 10px;font-size:10px;color:#334155;min-height:32px}
.floor-rot b{color:#2457a7}
.floor-meta{display:grid;grid-template-columns:1.2fr .7fr 1fr;background:#f8fafc;border-top:1px solid #edf2f7}
.floor-meta span{padding:8px 9px;border-right:1px solid #edf2f7;min-width:0}
.floor-meta span:last-child{border-right:0}
.floor-meta small,.floor-meta b{display:block}
.floor-meta small{font-size:7px;color:#94a3b8;font-weight:800}
.floor-meta b{margin-top:2px;font-size:9px;color:#0b2545;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.floor-board-empty,.floor-board-loading{grid-column:1/-1;padding:18px;border:1px dashed #cbd5e1;border-radius:10px;background:#f8fafc;text-align:center;color:#64748b;font-size:10px}
.floor-board-empty.compact{padding:10px}
.floor-waiting-head{display:flex;align-items:center;justify-content:space-between;margin-top:13px;padding:7px 2px;color:#0b2545;font-size:10px;font-weight:900}
.floor-waiting-head small{color:#64748b;font-weight:700}
.floor-waiting-list{display:flex;flex-direction:column;gap:6px}
.floor-waiting-row{
  display:grid;
  grid-template-columns:1fr 1fr 1.6fr auto;
  align-items:center;
  gap:10px;
  padding:8px 10px;
  border:1px solid #e2e8f0;
  border-radius:9px;
  background:#fbfdff;
}
.floor-waiting-row div{min-width:0}
.floor-waiting-row b,.floor-waiting-row small{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.floor-waiting-row b{font-size:9.5px;color:#0b2545}
.floor-waiting-row small{font-size:8px;color:#94a3b8;margin-top:1px}
@media(max-width:1050px){.floor-board-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:700px){.floor-board-grid{grid-template-columns:1fr}.floor-waiting-row{grid-template-columns:1fr 1fr}.floor-waiting-row .floor-state{justify-self:start}}

/* ===== OSL customer billing + Purchase Register View ===== */
.osl-customer-billing small{display:block;margin-top:4px;color:#64748b;font-size:9px;line-height:1.35}
.osl-billing-note{padding:9px 11px;border:1px solid #bfdbfe;border-radius:9px;background:#eff6ff;color:#1e40af;font-size:10px;line-height:1.45}
.purchase-action-btn.view{color:#047857;border-color:#a7f3d0}
.purchase-action-btn.view:hover{background:#ecfdf5}
.purchase-register-table{min-width:1180px}
.purchase-view-actions{display:flex;gap:8px;margin-bottom:12px}
.purchase-view-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.osl-view-link-note{margin-top:12px;padding:10px 12px;border:1px solid #a7f3d0;background:#ecfdf5;color:#047857;border-radius:9px;font-size:10px;font-weight:700;line-height:1.45}
@media(max-width:700px){.purchase-view-grid{grid-template-columns:1fr}}


/* ===== Job Card export + draft status ===== */
.jc-export-btn{background:#0f766e!important;color:#fff!important;border-color:#0f766e!important;box-shadow:0 4px 10px rgba(15,118,110,.13)}
.jc-export-btn:hover{background:#115e59!important;border-color:#115e59!important}
.jc-modal-head{display:flex;align-items:flex-start;justify-content:space-between;gap:14px}
.jc-draft-status{display:inline-flex;align-items:center;gap:5px;padding:5px 9px;border-radius:999px;background:#eff6ff;border:1px solid #bfdbfe;color:#1d4ed8;font-size:10px;font-weight:800;white-space:nowrap}
.jc-draft-status.saved{background:#ecfdf5;border-color:#a7f3d0;color:#047857}
.jc-draft-status.restored{background:#fff7ed;border-color:#fed7aa;color:#9a3412}
@media(max-width:760px){.jc-list-actions{flex-wrap:wrap}.jc-export-btn{order:3;width:100%}.jc-modal-head{align-items:flex-start}.jc-draft-status{font-size:9px}}

/* ===== Job Card action buttons: compact single-row layout ===== */
#ws-page-jobcards .jc-actions{
  display:flex;
  align-items:center;
  gap:4px;
  flex-wrap:nowrap;
  white-space:nowrap;
  min-width:max-content;
}
#ws-page-jobcards .jc-actions .jc-mini{
  flex:0 0 auto;
  padding:5px 7px;
  min-height:26px;
  border-radius:6px;
  font-size:9px;
  line-height:1.05;
  font-weight:700;
  letter-spacing:0;
  white-space:nowrap;
  box-shadow:none;
}
#ws-page-jobcards .jc-actions .jc-mini:hover{
  transform:none;
  box-shadow:none;
}
#ws-page-jobcards .jc-actions .jc-lock-chip{
  display:inline-flex;
  align-items:center;
  flex:0 0 auto;
  min-height:26px;
  padding:4px 7px;
  border-radius:6px;
  font-size:9px;
  line-height:1;
  white-space:nowrap;
}
#ws-page-jobcards .ws-table th:last-child,
#ws-page-jobcards .ws-table td:last-child{
  padding-left:7px;
  padding-right:7px;
  white-space:nowrap;
  width:1%;
}
@media(max-width:900px){
  #ws-page-jobcards .jc-actions{gap:3px}
  #ws-page-jobcards .jc-actions .jc-mini{padding:5px 6px;font-size:8.5px}
}


/* ===== PURCHASE SEARCH DROPDOWN ROLL-UP FIX 2026-10-02 ===== */
.purchase-search-results{display:none!important;}
.purchase-search-results.show{display:block!important;}

/* Item-wise Purchase Allocation */
.purchase-job-search-wrap{position:relative}.purchase-allocation-badge{display:inline-flex;align-items:center;border-radius:999px;padding:4px 8px;font-size:10px;font-weight:900;white-space:nowrap}.purchase-allocation-badge.stock{background:#dcfce7;color:#166534}.purchase-allocation-badge.job{background:#dbeafe;color:#1d4ed8}.itemwise-purchase-table{min-width:1480px}.itemwise-purchase-table th,.itemwise-purchase-table td{white-space:nowrap}.purchase-job-search-wrap .purchase-search-results{left:0;right:0}.purchase-job-search-wrap .purchase-search-item small{display:block;margin-top:2px}


/* ===== Item-wise Purchase Allocation ===== */
.purchase-item-routing{
  border:1px solid #cbd5e1;
  background:#f8fbff;
  border-radius:12px;
  padding:12px;
}
.purchase-routing-head{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  margin-bottom:10px;
  color:#0b2c4d;
}
.purchase-routing-head b{font-size:12px}
.purchase-routing-head small{font-size:10px;color:#64748b}
.purchase-route-grid{
  display:grid;
  grid-template-columns:minmax(360px,1.5fr) minmax(170px,.55fr) minmax(300px,1.1fr);
  gap:10px;
  align-items:start;
}
.purchase-route-cell{
  min-width:0;
}
.purchase-route-cell label{
  display:block;
  margin-bottom:6px;
  font-size:10px;
  font-weight:800;
  color:#334155;
  text-transform:uppercase;
  letter-spacing:.03em;
}
.purchase-route-cell select,
.purchase-route-cell input{
  width:100%;
}
#ppJobSearchWrap[style*="display: none"]{display:none!important}
@media(max-width:1100px){
  .purchase-route-grid{grid-template-columns:1fr 1fr}
  .purchase-part-search-wrap{grid-column:1/-1}
}
@media(max-width:700px){
  .purchase-routing-head{align-items:flex-start;flex-direction:column}
  .purchase-route-grid{grid-template-columns:1fr}
  .purchase-part-search-wrap{grid-column:auto}
}


/* =========================================================
   ROT PERFORMANCE — PROFESSIONAL LIVE WORKSHOP UI
   2026-10-02
   ========================================================= */
#ws-page-technician{
  --rot-navy:#0d2f57;
  --rot-blue:#1769d2;
  --rot-line:#dce6f1;
  --rot-muted:#64748b;
  --rot-bg:#f4f7fb;
}
#ws-page-technician .rot-performance-page{display:block}
#ws-page-technician .rot-live-hero{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:18px;
  padding:2px 2px 16px;
}
#ws-page-technician .rot-title-line{display:flex;align-items:center;gap:10px}
#ws-page-technician .rot-live-title h2{
  margin:0;
  color:#0b2545;
  font-size:26px;
  line-height:1.15;
  font-weight:900;
  letter-spacing:-.02em;
}
#ws-page-technician .rot-live-title p{
  margin:5px 0 0;
  color:#64748b;
  font-size:11px;
}
#ws-page-technician .rot-live-pill,
#ws-page-technician .rot-live-data{
  display:inline-flex;
  align-items:center;
  gap:6px;
  border-radius:999px;
  background:#dcfce7;
  color:#137a3a;
  padding:6px 10px;
  font-size:9px;
  font-weight:900;
  white-space:nowrap;
}
#ws-page-technician .rot-live-pill i,
#ws-page-technician .rot-live-data i{
  width:7px;height:7px;border-radius:50%;background:#16a34a;
  box-shadow:0 0 0 4px rgba(22,163,74,.10);
}
#ws-page-technician .rot-live-actions{display:flex;align-items:center;justify-content:flex-end;gap:12px;margin-left:auto;flex:0 0 auto}
#ws-page-technician .rot-updated{display:flex;flex-direction:column;align-items:flex-end}
#ws-page-technician .rot-updated span{font-size:7px;color:#94a3b8;font-weight:900;letter-spacing:.08em}
#ws-page-technician .rot-updated b{margin-top:2px;font-size:10px;color:#334155}
#ws-page-technician .rot-refresh-btn{
  height:38px;
  padding:0 14px;
  border:0;
  border-radius:9px;
  background:linear-gradient(135deg,#1769d2,#0f56b6);
  color:#fff;
  font-size:10px;
  font-weight:900;
  cursor:pointer;
  box-shadow:0 6px 16px rgba(23,105,210,.18);
}
#ws-page-technician .rot-refresh-btn:hover{filter:brightness(.96)}

#ws-page-technician .rot-kpi-grid{
  display:grid;
  grid-template-columns:repeat(6,minmax(0,1fr));
  gap:10px;
  margin-bottom:16px;
}
#ws-page-technician .rot-kpi-card{
  min-width:0;
  display:flex;
  align-items:center;
  gap:12px;
  padding:14px;
  border:1px solid #dce6f1;
  border-radius:13px;
  background:#fff;
  box-shadow:0 5px 16px rgba(15,39,68,.055);
}
#ws-page-technician .rot-kpi-icon{
  flex:0 0 38px;
  width:38px;height:38px;
  display:grid;place-items:center;
  border-radius:50%;
  font-size:16px;
  font-weight:900;
}
#ws-page-technician .rot-kpi-card.blue .rot-kpi-icon{background:#e7f0ff;color:#1769d2}
#ws-page-technician .rot-kpi-card.green .rot-kpi-icon{background:#dcfce7;color:#16a34a}
#ws-page-technician .rot-kpi-card.amber .rot-kpi-icon{background:#fff3cd;color:#c98500}
#ws-page-technician .rot-kpi-card.indigo .rot-kpi-icon{background:#e8ebff;color:#4f46e5}
#ws-page-technician .rot-kpi-card.violet .rot-kpi-icon{background:#f0e9ff;color:#7c3aed}
#ws-page-technician .rot-kpi-card.rose .rot-kpi-icon{background:#ffe7ec;color:#e11d48}
#ws-page-technician .rot-kpi-card>div:last-child{min-width:0}
#ws-page-technician .rot-kpi-card span{
  display:block;
  color:#52657b;
  font-size:8px;
  font-weight:800;
  white-space:nowrap;
}
#ws-page-technician .rot-kpi-card b{
  display:block;
  margin-top:3px;
  color:#0b2545;
  font-size:20px;
  line-height:1;
  font-weight:900;
}
#ws-page-technician .rot-kpi-card small{
  display:block;
  margin-top:5px;
  color:#8a9aab;
  font-size:8px;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
}

#ws-page-technician .rot-floor-panel,
#ws-page-technician .rot-report-panel{
  margin-bottom:16px;
  padding:16px;
  border:1px solid #dce6f1;
  border-radius:14px;
  background:#fff;
  box-shadow:0 5px 18px rgba(15,39,68,.05);
}
#ws-page-technician .rot-section-head,
#ws-page-technician .rot-report-panel-head,
#ws-page-technician .rot-subsection-head{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:12px;
}
#ws-page-technician .rot-section-head h3,
#ws-page-technician .rot-report-panel-head h3,
#ws-page-technician .rot-subsection-head h3{
  margin:0;
  color:#0b2545;
  font-size:14px;
  font-weight:900;
}
#ws-page-technician .rot-section-head p,
#ws-page-technician .rot-report-panel-head p,
#ws-page-technician .rot-subsection-head p{
  margin:4px 0 0;
  color:#78899b;
  font-size:9px;
}

#ws-page-technician .rot-live-floor-grid{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:12px;
  margin-top:13px;
}
#ws-page-technician .rot-floor-card{
  min-width:0;
  overflow:hidden;
  border:1px solid #d9e4ef;
  border-radius:12px;
  background:#fff;
  box-shadow:0 3px 12px rgba(15,39,68,.045);
}
#ws-page-technician .rot-floor-card.running{border-top:2px solid #22c55e}
#ws-page-technician .rot-floor-card.paused{border-top:2px solid #f59e0b}
#ws-page-technician .rot-floor-card-top{
  display:flex;
  align-items:center;
  gap:9px;
  padding:11px 12px;
  border-bottom:1px solid #eef3f7;
}
#ws-page-technician .rot-floor-avatar{
  flex:0 0 34px;
  width:34px;height:34px;
  display:grid;place-items:center;
  border-radius:50%;
  background:#eaf2ff;
  color:#1d5bc2;
  font-size:12px;
  font-weight:900;
}
#ws-page-technician .rot-floor-person{min-width:0;flex:1}
#ws-page-technician .rot-floor-person b,
#ws-page-technician .rot-floor-person small{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
#ws-page-technician .rot-floor-person b{color:#0b2545;font-size:10px}
#ws-page-technician .rot-floor-person small{margin-top:2px;color:#94a3b8;font-size:8px}
#ws-page-technician .rot-floor-status,
#ws-page-technician .rot-history-state{
  display:inline-flex;
  align-items:center;
  gap:5px;
  padding:5px 8px;
  border-radius:999px;
  font-size:7px;
  line-height:1;
  font-weight:900;
  white-space:nowrap;
}
#ws-page-technician .rot-floor-status i,
#ws-page-technician .rot-history-state i{width:6px;height:6px;border-radius:50%;background:currentColor}
#ws-page-technician .rot-floor-status.running,
#ws-page-technician .rot-history-state.running{background:#dcfce7;color:#15803d}
#ws-page-technician .rot-floor-status.paused,
#ws-page-technician .rot-history-state.paused{background:#fef3c7;color:#b77900}
#ws-page-technician .rot-floor-status.assigned,
#ws-page-technician .rot-history-state.assigned{background:#e8f0ff;color:#2463c7}
#ws-page-technician .rot-history-state.completed{background:#dcfce7;color:#166534}

#ws-page-technician .rot-floor-vehicle-row{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:8px;
  padding:10px 12px 4px;
}
#ws-page-technician .rot-floor-vehicle-row b{color:#0b2545;font-size:11px}
#ws-page-technician .rot-floor-vehicle-row span{color:#7b8ca0;font-size:8px;text-align:right}
#ws-page-technician .rot-floor-work{
  display:flex;
  align-items:baseline;
  gap:5px;
  min-height:34px;
  padding:3px 12px 10px;
  color:#52657b;
  font-size:9px;
}
#ws-page-technician .rot-floor-work b{color:#1761bd;font-size:9px}
#ws-page-technician .rot-floor-meta{
  display:grid;
  grid-template-columns:1.25fr .65fr .9fr;
  border-top:1px solid #eaf0f5;
  background:#f8fafc;
}
#ws-page-technician .rot-floor-meta>div{min-width:0;padding:8px 10px;border-right:1px solid #eaf0f5}
#ws-page-technician .rot-floor-meta>div:last-child{border-right:0}
#ws-page-technician .rot-floor-meta small,
#ws-page-technician .rot-floor-meta b{display:block}
#ws-page-technician .rot-floor-meta small{color:#94a3b8;font-size:6.5px;font-weight:900;letter-spacing:.04em}
#ws-page-technician .rot-floor-meta b{margin-top:2px;color:#0b2545;font-size:8.5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}

#ws-page-technician .rot-wait-head{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  margin-top:15px;
  padding:12px 2px 8px;
  border-top:1px solid #edf2f7;
}
#ws-page-technician .rot-wait-head>div{display:flex;align-items:center;gap:8px}
#ws-page-technician .rot-wait-icon{font-size:15px}
#ws-page-technician .rot-wait-head b,
#ws-page-technician .rot-wait-head small{display:block}
#ws-page-technician .rot-wait-head b{color:#0b2545;font-size:10px}
#ws-page-technician .rot-wait-head small{margin-top:2px;color:#8796a6;font-size:8px}
#ws-page-technician .rot-wait-head>span:last-child{color:#1769d2;font-size:8px;font-weight:900}
#ws-page-technician .rot-wait-table-wrap{
  overflow:auto;
  border:1px solid #e2e8f0;
  border-radius:10px;
}
#ws-page-technician .rot-wait-table-wrap table{width:100%;min-width:900px;border-collapse:collapse}
#ws-page-technician .rot-wait-table-wrap th{
  padding:8px 9px;
  background:#f8fafc;
  color:#65778b;
  font-size:7px;
  text-transform:uppercase;
  letter-spacing:.035em;
  text-align:left;
}
#ws-page-technician .rot-wait-table-wrap td{
  padding:9px;
  border-top:1px solid #edf2f7;
  color:#52657b;
  font-size:8.5px;
  vertical-align:middle;
}
#ws-page-technician .rot-wait-table-wrap td b,
#ws-page-technician .rot-wait-table-wrap td small{display:block}
#ws-page-technician .rot-wait-table-wrap td small{margin-top:2px;color:#94a3b8;font-size:7.5px}
#ws-page-technician .rot-wait-person{display:flex;align-items:center;gap:7px}
#ws-page-technician .rot-wait-person>span{
  width:26px;height:26px;border-radius:50%;display:grid;place-items:center;background:#eaf2ff;color:#245fc0;font-size:9px;font-weight:900
}

#ws-page-technician .rot-report-panel{padding-bottom:18px}
#ws-page-technician .rot-report-note{
  margin:11px 0 10px;
  padding:9px 11px;
  border:1px solid #dbeafe;
  border-radius:8px;
  background:#f6f9ff;
  color:#51667c;
  font-size:9px;
  line-height:1.45;
}
#ws-page-technician .rot-report-toolbar{
  display:grid;
  grid-template-columns:minmax(260px,1.5fr) minmax(140px,.75fr) 135px 135px 140px auto;
  gap:8px;
  margin-bottom:15px;
}
#ws-page-technician .rot-report-toolbar input,
#ws-page-technician .rot-report-toolbar select,
#ws-page-technician .rot-clear-filter{
  width:100%;
  height:38px;
  border:1px solid #d7e1ec;
  border-radius:8px;
  background:#fff;
  color:#334155;
  padding:0 10px;
  font:inherit;
  font-size:9px;
  outline:none;
}
#ws-page-technician .rot-report-toolbar input:focus,
#ws-page-technician .rot-report-toolbar select:focus{border-color:#2f6fda;box-shadow:0 0 0 3px rgba(47,111,218,.08)}
#ws-page-technician .rot-filter-search{position:relative}
#ws-page-technician .rot-filter-search>span{
  position:absolute;left:11px;top:50%;transform:translateY(-50%);color:#64748b;font-size:14px;z-index:1
}
#ws-page-technician .rot-filter-search input{padding-left:31px}
#ws-page-technician .rot-clear-filter{
  width:auto;
  padding:0 13px;
  cursor:pointer;
  font-weight:800;
  color:#64748b;
}
#ws-page-technician .rot-clear-filter:hover{background:#0b2c4d;color:#fff;border-color:#0b2c4d}

#ws-page-technician .rot-subsection-head{margin:14px 0 8px}
#ws-page-technician .rot-history-head{margin-top:18px;padding-top:4px;border-top:1px solid #edf2f7}
#ws-page-technician .rot-table-shell{
  overflow:auto;
  border:1px solid #dce6f1;
  border-radius:10px;
}
#ws-page-technician .rot-modern-table{
  width:100%;
  min-width:1050px;
  border-collapse:separate;
  border-spacing:0;
}
#ws-page-technician .rot-modern-table th{
  position:sticky;
  top:0;
  z-index:1;
  padding:9px 10px;
  background:#f7f9fc;
  border-bottom:1px solid #dce6f1;
  color:#64748b;
  font-size:7px;
  font-weight:900;
  text-transform:uppercase;
  letter-spacing:.04em;
  text-align:left;
  white-space:nowrap;
}
#ws-page-technician .rot-modern-table td{
  padding:10px;
  border-bottom:1px solid #edf2f7;
  color:#52657b;
  font-size:8.5px;
  vertical-align:middle;
}
#ws-page-technician .rot-modern-table tr:last-child td{border-bottom:0}
#ws-page-technician .rot-modern-table tbody tr:hover{background:#fbfdff}
#ws-page-technician .rot-modern-table td b,
#ws-page-technician .rot-modern-table td small{display:block}
#ws-page-technician .rot-modern-table td small{margin-top:2px;color:#94a3b8;font-size:7.5px}
#ws-page-technician .rot-tech-person{display:flex;align-items:center;gap:7px;min-width:120px}
#ws-page-technician .rot-tech-person>span{
  flex:0 0 27px;
  width:27px;height:27px;border-radius:50%;
  display:grid;place-items:center;
  background:#eaf2ff;color:#245fc0;font-size:9px;font-weight:900
}
#ws-page-technician .rot-tech-person b{color:#0b2545;font-size:8.5px;white-space:nowrap}
#ws-page-technician .rot-code-blue{color:#1761bd!important}
#ws-page-technician .impact-over{color:#b42318!important;font-weight:800}
#ws-page-technician .impact-fast{color:#047857!important;font-weight:800}
#ws-page-technician .impact-target{color:#1769d2!important;font-weight:800}
#ws-page-technician .rot-live-empty,
#ws-page-technician .rot-live-loading{
  grid-column:1/-1;
  padding:18px;
  border:1px dashed #cbd5e1;
  border-radius:10px;
  background:#f8fafc;
  color:#64748b;
  text-align:center;
  font-size:9px;
}
#ws-page-technician .rot-live-empty.compact{padding:11px}

@media(max-width:1250px){
  #ws-page-technician .rot-kpi-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
  #ws-page-technician .rot-report-toolbar{grid-template-columns:1fr 1fr 1fr}
  #ws-page-technician .rot-filter-search{grid-column:1/-1}
}
@media(max-width:1050px){
  #ws-page-technician .rot-live-floor-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:720px){
  #ws-page-technician .rot-live-hero{align-items:flex-start;flex-direction:column}
  #ws-page-technician .rot-live-actions{width:100%;justify-content:space-between;margin-left:0}
  #ws-page-technician .rot-live-title h2{font-size:22px}
  #ws-page-technician .rot-kpi-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  #ws-page-technician .rot-live-floor-grid{grid-template-columns:1fr}
  #ws-page-technician .rot-report-toolbar{grid-template-columns:1fr}
  #ws-page-technician .rot-filter-search{grid-column:auto}
}

/* Compact Master upload card */
.master-upload-mini{
  min-height:76px;display:flex;align-items:center;gap:10px;border-radius:12px;padding:12px;
  text-align:left;cursor:pointer;background:#fff;border:1px dashed #93c5fd;
  box-shadow:0 2px 12px rgba(15,23,42,.04);font-family:inherit
}
.master-upload-mini>span{width:34px;height:34px;display:grid;place-items:center;border-radius:9px;font-size:16px}
.master-upload-mini>div{flex:1;min-width:0}.master-upload-mini b,.master-upload-mini small{display:block}
.master-upload-mini b{font-size:10px;color:#0b2545}.master-upload-mini small{font-size:8px;color:#64748b;margin-top:2px}
.master-upload-mini em{font-style:normal;font-size:8px;font-weight:900;padding:5px 7px;border-radius:7px;white-space:nowrap}
.master-upload-mini.blue>span{background:#dbeafe}.master-upload-mini.blue em{background:#eff6ff;color:#1d4ed8}
.master-upload-mini.blue:hover{border-color:#2563eb;background:#f8fbff}
.master-upload-mini.green{border-color:#86efac}.master-upload-mini.green>span{background:#dcfce7}.master-upload-mini.green em{background:#ecfdf5;color:#047857}
.master-upload-mini.green:hover{border-color:#16a34a;background:#f7fff9}

/* ROT Performance fit tuning — keeps the beautiful UI within the Workshop viewport */
#ws-page-technician{padding:0!important}
#ws-page-technician .rot-performance-page{max-width:100%;min-width:0}
#ws-page-technician .rot-live-hero{padding:0 0 10px}
#ws-page-technician .rot-live-title h2{font-size:clamp(20px,1.8vw,25px)}
#ws-page-technician .rot-kpi-grid{gap:8px;margin-bottom:12px}
#ws-page-technician .rot-kpi-card{min-height:72px;padding:10px;gap:8px;border-radius:11px}
#ws-page-technician .rot-kpi-icon{flex-basis:32px;width:32px;height:32px;font-size:13px}
#ws-page-technician .rot-kpi-card b{font-size:clamp(15px,1.4vw,19px)}
#ws-page-technician .rot-floor-panel,#ws-page-technician .rot-report-panel{padding:13px;border-radius:12px}
#ws-page-technician .rot-live-floor-grid{gap:9px;margin-top:10px}
#ws-page-technician .rot-floor-card-top{padding:9px 10px}
#ws-page-technician .rot-floor-avatar{width:30px;height:30px;flex-basis:30px}
#ws-page-technician .rot-floor-vehicle-row{padding:8px 10px 3px}
#ws-page-technician .rot-floor-work{padding:2px 10px 8px;min-height:29px}
#ws-page-technician .rot-floor-meta>div{padding:7px 8px}
#ws-page-technician .rot-report-toolbar{grid-template-columns:minmax(220px,1.4fr) minmax(120px,.7fr) 120px 120px 125px auto}
@media(max-width:1380px){
  #ws-page-technician .rot-kpi-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
}
@media(min-width:1000px) and (max-width:1180px){
  #ws-page-technician .rot-live-floor-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:760px){
  #ws-page-technician .rot-kpi-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
}

/* Multi-item Parts Purchase */
.purchase-batch-actions{display:flex;align-items:center;gap:10px;margin:10px 0 8px}
.purchase-batch-actions span{color:#64748b;font-size:9px}
.purchase-batch-list{margin:0 0 12px}
.purchase-batch-empty{padding:10px 12px;border:1px dashed #cbd5e1;border-radius:9px;background:#f8fafc;color:#64748b;font-size:9px}
.purchase-batch-table-wrap{overflow:auto;border:1px solid #dce5ee;border-radius:10px}
.purchase-batch-table{width:100%;min-width:980px;border-collapse:collapse}
.purchase-batch-table th{background:#f8fafc;color:#64748b;font-size:7.5px;text-transform:uppercase;letter-spacing:.04em;text-align:left;padding:8px;border-bottom:1px solid #dce5ee}
.purchase-batch-table td{font-size:8.5px;color:#42566b;padding:8px;border-bottom:1px solid #eef2f7;vertical-align:middle}
.purchase-batch-table tr:last-child td{border-bottom:0}
.purchase-batch-table td b,.purchase-batch-table td small{display:block}.purchase-batch-table td small{margin-top:2px;color:#94a3b8;font-size:7.5px}
.purchase-batch-remove{border:1px solid #fecaca;background:#fff1f2;color:#b42318;border-radius:6px;padding:5px 7px;font-size:8px;font-weight:900;cursor:pointer}
.purchase-batch-total{display:flex;justify-content:flex-end;gap:10px;padding:9px 10px;background:#f8fafc;border-top:1px solid #e2e8f0;font-size:10px}.purchase-batch-total b{color:#0b2545}
@media(max-width:700px){.purchase-batch-actions{align-items:flex-start;flex-direction:column}}

.configuration-workspace{position:relative;min-height:calc(100vh - 95px);overflow:hidden;border:1px solid #dce6f1;border-radius:12px;background:#f4f7fb}
.configuration-frame{display:block;width:100%;height:calc(100vh - 105px);border:0;background:#f4f7fb;opacity:0;transition:opacity .12s ease}.configuration-frame.ready{opacity:1}
.configuration-frame-loader{position:absolute;inset:0;z-index:2;display:none;align-items:center;justify-content:center;gap:9px;background:#f4f7fb;color:#5b6f85;font-size:10px}.configuration-frame-loader.show{display:flex}
.configuration-frame-loader span{width:17px;height:17px;border:2px solid #bfdbfe;border-top-color:#1d4ed8;border-radius:50%;animation:configSpin .7s linear infinite}@keyframes configSpin{to{transform:rotate(360deg)}}
.jobcard-osl-hidden-row{display:none!important}.jobcard-osl-section{margin:11px 0 4px;border:1px solid #f5c36a;border-radius:10px;background:#fffbeb;overflow:hidden}
.jobcard-osl-title{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 12px;border-bottom:1px solid #fde7b2;background:#fff8df}.jobcard-osl-title b{display:block;color:#7c4a03;font-size:11px}.jobcard-osl-title small{display:block;margin-top:2px;color:#92704a;font-size:8px}.jobcard-osl-title>span{font-size:12px;font-weight:900;color:#8a5100}
.jobcard-osl-list{padding:3px 10px}.jobcard-osl-item{display:grid;grid-template-columns:24px 1fr auto;gap:8px;align-items:center;padding:9px 2px;border-bottom:1px solid #f5e6c8}.jobcard-osl-item:last-child{border-bottom:0}.jobcard-osl-index{width:20px;height:20px;display:grid;place-items:center;border-radius:50%;background:#fef3c7;color:#92400e;font-size:8px;font-weight:900}
.jobcard-osl-main b,.jobcard-osl-main small{display:block}.jobcard-osl-main b{font-size:9px;color:#5f3b08}.jobcard-osl-main small{font-size:8px;color:#8b6d45;margin-top:2px}.jobcard-osl-item>strong{color:#5f3b08;font-size:9px}
.osl-billing-note.post-close{border-color:#f5c2c7!important;background:#fff8f8!important;color:#7f1d1d!important}.osl-customer-billing.locked-billing{opacity:.62}.osl-customer-billing.locked-billing input{background:#f1f5f9!important;cursor:not-allowed}
.invoice-section-title.osl{background:#fff7e6!important;color:#8a5100!important;border-left-color:#f59e0b!important}.osl-invoice-table thead th{background:#fffaf0}

/* Corrective Configuration frame stability */
.configuration-workspace{background:#f4f7fb!important}
.configuration-frame{min-height:600px}
.configuration-frame[src=""]{visibility:hidden}
.configuration-frame-loader.show{display:flex!important}

/* Always-visible Job Card OSL block */
.jobcard-osl-section{display:block!important;margin-top:12px}
.jobcard-osl-empty{
  padding:12px 10px;
  color:#8b6d45;
  font-size:9px;
  background:#fffdf5;
  border:1px dashed #f2d59d;
  border-radius:7px;
  text-align:center
}
.jobcard-osl-help{
  padding:8px 12px;
  border-top:1px solid #f5e6c8;
  background:#fffaf0;
  color:#8b6d45;
  font-size:8px;
  line-height:1.45
}


/* =========================================================
   WORKSHOP CONTENT — TRUE FIT TO SCREEN
   ========================================================= */
.ws-main,.ws-content-area,.ws-page{min-width:0}
.ws-content-area{width:100%;max-width:100%;min-height:0}
.ws-main.configuration-fit-mode{min-width:0}
.ws-main.configuration-fit-mode .ws-topbar{flex:0 0 auto}
.ws-main.configuration-fit-mode .ws-content-area{
  flex:1 1 auto;
  min-height:0;
  overflow:hidden!important;
  padding:8px!important;
}
.ws-main.configuration-fit-mode #ws-page-configuration.active{
  display:block;
  width:100%;
  height:100%;
  min-height:0;
  overflow:hidden;
}
.ws-main.configuration-fit-mode .configuration-workspace{
  width:100%!important;
  height:100%!important;
  min-height:0!important;
  border-radius:9px;
  overflow:hidden;
}
.ws-main.configuration-fit-mode .configuration-frame{
  width:100%!important;
  height:100%!important;
  min-height:0!important;
  max-width:100%;
  display:block;
  overflow:hidden;
}
.ws-table-wrap,.rot-table-shell,.vendor-ledger-table-wrap{max-width:100%;overflow:auto}

/* =========================================================
   VENDOR LEDGER
   ========================================================= */
.vendor-ledger-head-actions,.vendor-row-actions,.vendor-payment-actions{
  display:flex;align-items:center;gap:7px;flex-wrap:wrap
}
.vendor-ledger-filter-card{padding:13px 15px;margin-bottom:10px}
.vendor-ledger-filters{
  display:grid;grid-template-columns:minmax(220px,1.4fr) 150px 150px auto;
  align-items:end;gap:9px
}
.vendor-ledger-filter-actions{display:flex;gap:7px;align-items:end;justify-content:flex-end;padding-bottom:1px}
.vendor-ledger-kpis{
  display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:9px;margin-bottom:10px
}
.vendor-ledger-kpi{
  background:#fff;border:1px solid #dce6f1;border-radius:11px;padding:12px 14px;
  box-shadow:0 2px 10px rgba(15,39,68,.04)
}
.vendor-ledger-kpi span,.vendor-ledger-kpi small,.vendor-ledger-kpi b{display:block}
.vendor-ledger-kpi span{font-size:8px;color:#64748b;font-weight:900;text-transform:uppercase;letter-spacing:.04em}
.vendor-ledger-kpi b{margin-top:4px;color:#0b2545;font-size:18px;line-height:1}
.vendor-ledger-kpi small{margin-top:5px;color:#94a3b8;font-size:8px}
.vendor-ledger-kpi.purchase{border-top:2px solid #2563eb}
.vendor-ledger-kpi.paid{border-top:2px solid #10b981}
.vendor-ledger-kpi.outstanding{border-top:2px solid #f59e0b}
.vendor-payment-panel{border:1px solid #bfdbfe;background:#f8fbff;padding:14px}
.vendor-payment-head,.vendor-ledger-register-head{
  display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:11px
}
.vendor-payment-head h3,.vendor-ledger-register-head h3{margin:0!important;font-size:13px!important}
.vendor-payment-head p,.vendor-ledger-register-head p{margin:3px 0 0;color:#64748b;font-size:8.5px}
.vendor-payment-actions{justify-content:space-between;margin-top:10px}
.vendor-payment-actions .purchase-message{flex:1;margin:0}
.vendor-ledger-register{padding:14px}
.vendor-ledger-register-head .ws-search-input{min-width:300px;max-width:430px;width:38%}
.vendor-ledger-table-wrap{border:1px solid #dce6f1;border-radius:9px}
.vendor-ledger-table{width:100%;min-width:1050px;border-collapse:collapse}
.vendor-ledger-table th{
  position:sticky;top:0;z-index:1;background:#f7f9fc;color:#64748b;
  padding:8px 9px;text-align:left;font-size:7px;text-transform:uppercase;letter-spacing:.04em;border-bottom:1px solid #dce6f1
}
.vendor-ledger-table td{padding:9px;border-bottom:1px solid #edf2f7;color:#42566b;font-size:8.5px;vertical-align:middle}
.vendor-ledger-table tr:last-child td{border-bottom:0}
.vendor-ledger-table tr.purchase-row:hover{background:#fbfdff}
.vendor-ledger-table tr.payment-row{background:#f8fff9}
.vendor-ledger-table td b,.vendor-ledger-table td small{display:block}
.vendor-ledger-table td small{margin-top:2px;color:#94a3b8;font-size:7.5px}
.ledger-money{white-space:nowrap;text-align:right}.ledger-money.paid{color:#047857}.ledger-money.purchase{color:#1d4ed8}.ledger-money.balance{color:#0b2545}
.ledger-stock-chip{display:inline-block;padding:4px 7px;border-radius:999px;background:#f1f5f9;color:#64748b;font-size:7px;font-weight:800}
.ledger-delete-payment{border:1px solid #fecaca;background:#fff1f2;color:#b42318;border-radius:6px;padding:5px 7px;font-size:8px;font-weight:800;cursor:pointer}
@media(max-width:1100px){
  .vendor-ledger-filters{grid-template-columns:1fr 1fr}
  .vendor-ledger-filter-actions{justify-content:flex-start}
  .vendor-ledger-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:700px){
  .vendor-ledger-filters,.vendor-ledger-kpis{grid-template-columns:1fr}
  .vendor-ledger-register-head{flex-direction:column}
  .vendor-ledger-register-head .ws-search-input{width:100%;max-width:none;min-width:0}
}


/* =========================================================
   TRUE VIEWPORT FIT — 2026-10-02
   Fit mode is native 100%; responsive layout owns the width.
   ========================================================= */
html,body{width:100%;max-width:100%;height:100%;overflow-x:hidden!important}
.ws-app{
  width:100%!important;
  max-width:100vw!important;
  height:100vh!important;
  min-height:100vh!important;
  overflow:hidden!important;
}
.ws-sidebar{flex:0 0 250px;max-width:250px}
.ws-main{
  flex:1 1 auto!important;
  width:auto!important;
  min-width:0!important;
  max-width:calc(100vw - 250px)!important;
  overflow:hidden!important;
}
.ws-topbar{
  width:100%!important;
  max-width:100%!important;
  min-width:0!important;
}
.ws-content-area{
  width:100%!important;
  max-width:100%!important;
  min-width:0!important;
  overflow-x:hidden!important;
  overflow-y:auto!important;
}
.ws-page,
.ws-page.active,
.ws-section-box,
.purchase-page-head,
.rot-performance-page,
#customerMasterApp{
  width:100%!important;
  max-width:100%!important;
  min-width:0!important;
}

/* Important grids must shrink inside the available MAIN area. */
.ws-stats,
#ws-page-jobcards .jc-compact-stats,
#ws-page-technician .rot-kpi-grid,
#ws-page-technician .rot-live-floor-grid,
.vendor-ledger-kpis{
  width:100%;
  max-width:100%;
  min-width:0;
}
.ws-stat-card,
#ws-page-technician .rot-kpi-card,
#ws-page-technician .rot-floor-card{min-width:0}

/* Controls must not force the content page wider than the viewport. */
.ws-box-head,.jc-list-head,.purchase-page-head,.rot-live-hero,.rot-section-head{
  max-width:100%;
  min-width:0;
}
.ws-search-input,input,select,textarea{max-width:100%}

/* Tables are allowed to scroll internally only. */
.ws-table-wrap,
.ec-table-wrap,
.rot-table-shell,
.rot-wait-table-wrap,
.vendor-ledger-table-wrap,
.purchase-batch-table-wrap,
.vm-table-wrap{
  width:100%;
  max-width:100%!important;
  min-width:0!important;
  overflow-x:auto!important;
  overscroll-behavior-x:contain;
}

/* Job Cards: at actual desktop content width keep all cards inside one row. */
@media (min-width:1000px){
  #ws-page-jobcards .jc-compact-stats{
    grid-template-columns:repeat(5,minmax(0,1fr))!important;
    overflow:visible!important;
  }
  #ws-page-jobcards .jc-compact-stats .ws-stat-card{min-width:0!important}
}

/* Main area around 1116px on a 1366 screen: compact filter before it can overflow. */
@media (max-width:1400px){
  #ws-page-jobcards .jc-filter-bar{
    grid-template-columns:minmax(240px,1fr) 115px 135px 115px auto!important;
  }
  #ws-page-jobcards .jc-filter-select{min-width:0}
  #ws-page-technician .rot-report-toolbar{
    grid-template-columns:minmax(200px,1.25fr) minmax(110px,.65fr) 112px 112px 118px auto!important;
  }
}

/* Customer Master must shrink by MAIN width, not create page overflow. */
#customerMasterApp,.ec-head,.ec-stats,.ec-toolbar,.ec-customer-row{min-width:0;max-width:100%}
.ec-toolbar input{min-width:0}
.ec-customer-main,.ec-customer-metrics{min-width:0}
.ec-customer-row{overflow:hidden}

@media(max-width:1180px){
  .ec-customer-row{grid-template-columns:auto minmax(0,1fr) minmax(220px,.8fr)!important}
  .ec-open-btn{display:none}
}

/* ROT Performance: three floor cards still fit on normal 1366 desktop. */
@media(min-width:1100px){
  #ws-page-technician .rot-live-floor-grid{grid-template-columns:repeat(3,minmax(0,1fr))!important}
}

/* =========================================================
   PARTS PURCHASE — INVOICE GRID V3
   ========================================================= */
.purchase-invoice-shell{overflow:visible;background:#fff;border:1px solid #d7e2ef;border-radius:14px;box-shadow:0 8px 28px rgba(15,39,68,.06)}
.purchase-invoice-banner{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:15px 17px;background:linear-gradient(110deg,#0b2c4d,#174f8c);color:#fff;border-radius:14px 14px 0 0}
.purchase-invoice-kicker{font-size:7px;font-weight:900;letter-spacing:.15em;color:#bfdbfe}.purchase-invoice-banner h3{margin:3px 0 2px;font-size:17px;color:#fff}.purchase-invoice-banner p{margin:0;font-size:9px;color:#dbeafe}
.purchase-invoice-badges{display:flex;align-items:center;gap:6px;flex-wrap:wrap;justify-content:flex-end}.pi-badge{padding:5px 8px;border-radius:999px;font-size:7px;font-weight:900;letter-spacing:.04em}.pi-badge.blue{background:#dbeafe;color:#1d4ed8}.pi-badge.green{background:#dcfce7;color:#15803d}.pi-badge.amber{background:#fef3c7;color:#a16207}
.purchase-invoice-meta{display:grid;grid-template-columns:minmax(360px,1.6fr) minmax(170px,.7fr) minmax(150px,.55fr);gap:9px;padding:12px 14px;background:#f8fbff;border-bottom:1px solid #dce6f1}.pi-meta-card{min-width:0;padding:9px 10px;background:#fff;border:1px solid #dbe5ef;border-radius:9px}.pi-meta-card label{display:block;margin-bottom:5px;color:#4b647d;font-size:7.5px;font-weight:900;text-transform:uppercase;letter-spacing:.05em}.pi-meta-card input{height:34px;width:100%;border:1px solid #d6e0eb;border-radius:7px;padding:0 9px;font:inherit;font-size:9px;outline:none}.pi-meta-card input:focus{border-color:#2f6fda;box-shadow:0 0 0 3px rgba(47,111,218,.08)}.pi-meta-card small{display:block;margin-top:4px;color:#71849a;font-size:7.5px}
.pi-small-btn{border:0;border-radius:7px;padding:8px 10px;font:inherit;font-size:8px;font-weight:900;cursor:pointer;white-space:nowrap}.pi-small-btn.blue{background:#dbeafe;color:#1d4ed8}.pi-small-btn.blue:hover{background:#bfdbfe}.pi-small-btn.green{background:#dcfce7;color:#15803d}.pi-small-btn.green:hover{background:#bbf7d0}.pi-small-btn.amber{background:#fef3c7;color:#a16207}.pi-small-btn.amber:hover{background:#fde68a}
.purchase-line-toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 14px}.purchase-line-toolbar b,.purchase-line-toolbar small{display:block}.purchase-line-toolbar b{font-size:10px;color:#0b2545}.purchase-line-toolbar small{margin-top:2px;color:#71849a;font-size:7.5px}.purchase-line-toolbar-actions{display:flex;gap:6px;align-items:center;flex-wrap:wrap}
.purchase-invoice-table-wrap{margin:0 14px;max-width:calc(100% - 28px);overflow:auto;border:1px solid #d5dfeb;border-radius:9px;scrollbar-width:thin}.purchase-invoice-table{width:100%;min-width:1260px;border-collapse:separate;border-spacing:0;table-layout:fixed}.purchase-invoice-table th{position:sticky;top:0;z-index:4;padding:8px 6px;background:#0b2c4d;color:#fff;border-right:1px solid rgba(255,255,255,.13);font-size:7px;text-transform:uppercase;letter-spacing:.04em;text-align:left}.purchase-invoice-table td{position:relative;padding:5px;border-right:1px solid #e4ebf2;border-bottom:1px solid #e4ebf2;background:#fff;vertical-align:middle}.purchase-invoice-table tbody tr:nth-child(even) td{background:#fbfdff}.purchase-invoice-table tbody tr:hover td{background:#f4f9ff}.purchase-invoice-table input,.purchase-invoice-table select{width:100%;height:30px;border:1px solid #d9e2ec;border-radius:6px;background:#fff;padding:0 6px;font:inherit;font-size:8px;color:#273d54;outline:none}.purchase-invoice-table input:focus,.purchase-invoice-table select:focus{border-color:#3b82f6;box-shadow:0 0 0 2px rgba(59,130,246,.09)}.purchase-invoice-table .pi-num{text-align:right}
.pi-col-sn{width:38px}.pi-col-desc{width:210px}.pi-col-code{width:95px}.pi-col-against{width:105px}.pi-col-job{width:160px}.pi-col-qty{width:60px}.pi-col-unit{width:55px}.pi-col-rate{width:82px}.pi-col-disc{width:58px}.pi-col-tax{width:72px}.pi-col-amount{width:88px}.pi-col-action{width:38px}.pi-sn{text-align:center}.pi-sn span{display:inline-grid;place-items:center;width:22px;height:22px;border-radius:50%;background:#dbeafe;color:#1d4ed8;font-size:8px;font-weight:900}.pi-desc-cell{min-width:0}.pi-stock-hint{display:block;margin-top:3px;font-size:6.7px;color:#7890a8;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.pi-code-cell b,.pi-code-cell small{display:block}.pi-code-cell b{font-size:7.8px;color:#174f8c}.pi-code-cell small{margin-top:2px;font-size:6.8px;color:#7a8da3}.pi-unit{display:block;text-align:center;font-size:8px;font-weight:800;color:#51677e}.pi-job-wrap{display:none}.pi-job-wrap.show{display:block}.pi-stock-label{display:none;text-align:center;padding:6px;border-radius:6px;background:#dcfce7;color:#15803d;font-size:7px;font-weight:900}.pi-stock-label.show{display:block}.pi-tax-cell{text-align:right}.pi-tax-cell b,.pi-tax-cell small{display:block}.pi-tax-cell b{font-size:7.8px;color:#a16207}.pi-tax-cell small{font-size:6.5px;color:#b7791f}.pi-line-total{text-align:right;font-size:8.5px;font-weight:900;color:#0b2545;white-space:nowrap}.pi-remove-line{width:25px;height:25px;border:0;border-radius:7px;background:#fee2e2;color:#b91c1c;font-size:14px;font-weight:900;cursor:pointer}.pi-remove-line:hover{background:#fecaca}
.pi-cell-search{position:relative}.pi-line-results{display:none;position:absolute;z-index:30;left:0;top:32px;min-width:280px;max-width:420px;background:#fff;border:1px solid #cbd5e1;border-radius:8px;box-shadow:0 12px 28px rgba(15,23,42,.20);max-height:235px;overflow:auto}.pi-line-results.show{display:block}.pi-job-results{min-width:360px;left:auto;right:0}.pi-result{padding:8px 9px;border-bottom:1px solid #edf2f7;cursor:pointer}.pi-result:last-child{border-bottom:0}.pi-result:hover,.pi-result.active{background:#eff6ff}.pi-result b,.pi-result small{display:block}.pi-result b{font-size:8px;color:#0b2c4d}.pi-result small{margin-top:2px;font-size:7px;color:#64748b}.pi-result.empty{background:#fffaf0}.pi-result.empty b{color:#92400e}
.purchase-invoice-bottom{display:grid;grid-template-columns:minmax(280px,1fr) minmax(360px,.8fr);gap:12px;padding:12px 14px}.purchase-note-box{padding:10px;border:1px solid #dce6f1;border-radius:9px;background:#f8fafc}.purchase-note-box label{display:block;font-size:8px;font-weight:900;color:#4b647d;margin-bottom:5px}.purchase-note-box textarea{width:100%;resize:vertical;border:1px solid #d6e0eb;border-radius:7px;padding:8px;font:inherit;font-size:9px}.purchase-note-box small{display:block;margin-top:4px;color:#7b8da1;font-size:7px}.purchase-invoice-summary{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px}.purchase-invoice-summary>div{padding:8px 10px;border-radius:8px;background:#f1f5f9;border-left:3px solid #94a3b8}.purchase-invoice-summary span,.purchase-invoice-summary b{display:block}.purchase-invoice-summary span{font-size:7px;color:#65788d;text-transform:uppercase;font-weight:900}.purchase-invoice-summary b{margin-top:3px;font-size:11px;color:#0b2545}.purchase-invoice-summary .blue{background:#eff6ff;border-left-color:#3b82f6}.purchase-invoice-summary .red{background:#fff1f2;border-left-color:#ef4444}.purchase-invoice-summary .orange{background:#fff7ed;border-left-color:#f97316}.purchase-invoice-summary .green{background:#ecfdf5;border-left-color:#10b981}.purchase-invoice-summary .grand{grid-column:1/-1}.purchase-invoice-summary .grand b{font-size:16px;color:#047857}.purchase-invoice-footer-actions{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:0 14px 14px}.purchase-invoice-footer-actions .purchase-message{flex:1;margin:0}.purchase-save-complete{border:0;border-radius:9px;padding:11px 16px;background:linear-gradient(100deg,#0b2c4d,#1e4f91);color:#fff;font:inherit;font-size:9px;font-weight:900;cursor:pointer;box-shadow:0 6px 16px rgba(11,44,77,.18)}.purchase-save-complete:hover{filter:brightness(1.05)}.pi-error{color:#b91c1c;font-weight:800}.pi-success{color:#047857;font-weight:800}
@media(max-width:1050px){.purchase-invoice-meta{grid-template-columns:1fr 1fr}.pi-vendor-card{grid-column:1/-1}.purchase-invoice-bottom{grid-template-columns:1fr}}
@media(max-width:700px){.purchase-invoice-banner,.purchase-line-toolbar,.purchase-invoice-footer-actions{align-items:flex-start;flex-direction:column}.purchase-invoice-meta{grid-template-columns:1fr}.pi-vendor-card{grid-column:auto}.purchase-line-toolbar-actions{width:100%}.purchase-save-complete{width:100%}}
/* Keep long purchase bills compact: 10+ rows scroll inside the line grid, header stays frozen. */
.purchase-invoice-table-wrap{max-height:465px;overflow:auto!important}

/* =========================================================
   JOB CARD ESTIMATE PREPARATION + CUSTOMER APPROVAL
   ========================================================= */
.estimate-prep-section{background:linear-gradient(135deg,#fffaf0,#fff);border-color:#f59e0b!important}
.estimate-prep-head{display:flex;align-items:flex-start;justify-content:space-between;gap:14px;margin-bottom:12px}
.estimate-prep-head .ws-form-section-title{color:#92400e;margin-bottom:3px}.estimate-prep-head p{margin:0;color:#64748b;font-size:12px}
.estimate-status-badge{display:inline-flex;align-items:center;justify-content:center;min-width:86px;padding:7px 10px;border-radius:999px;background:#e2e8f0;color:#475569;font-size:10px;font-weight:900;letter-spacing:.04em;white-space:nowrap}
.estimate-status-badge.draft{background:#fef3c7;color:#92400e}.estimate-status-badge.sent{background:#dbeafe;color:#1d4ed8}.estimate-status-badge.approved{background:#dcfce7;color:#047857}.estimate-status-badge.superseded{background:#f1f5f9;color:#64748b}
.estimate-editor{min-width:0}.estimate-meta-bar{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin-bottom:10px}.estimate-meta-bar>div{padding:9px 10px;border:1px solid #e5e7eb;border-radius:9px;background:#fff}.estimate-meta-bar span,.estimate-meta-bar b{display:block}.estimate-meta-bar span{font-size:8px;text-transform:uppercase;letter-spacing:.05em;color:#64748b;font-weight:800}.estimate-meta-bar b{margin-top:3px;color:#0b2545;font-size:11px}
.estimate-toolbar{display:flex;align-items:center;justify-content:space-between;gap:10px;margin:8px 0}.estimate-toolbar>div{display:flex;gap:7px;flex-wrap:wrap}
.estimate-table-wrap{width:100%;max-width:100%;overflow:auto;border:1px solid #dbe4ee;border-radius:10px;background:#fff}.estimate-table{width:100%;min-width:1050px;border-collapse:separate;border-spacing:0}.estimate-table th{position:sticky;top:0;z-index:2;background:#7c4a03;color:#fff;padding:8px 7px;font-size:8px;text-transform:uppercase;text-align:left}.estimate-table td{padding:6px;border-right:1px solid #edf2f7;border-bottom:1px solid #edf2f7;vertical-align:middle}.estimate-table tr:last-child td{border-bottom:0}.estimate-table input{width:100%;height:31px;border:1px solid #d9e2ec;border-radius:7px;padding:0 7px;font:inherit;font-size:9px;outline:none}.estimate-table input:focus{border-color:#f59e0b;box-shadow:0 0 0 2px rgba(245,158,11,.10)}.estimate-table .num{text-align:right}.estimate-table th:nth-child(1){width:38px}.estimate-table th:nth-child(2){width:70px}.estimate-table th:nth-child(3){width:300px}.estimate-table th:nth-child(4){width:70px}.estimate-table th:nth-child(5){width:70px}.estimate-table th:nth-child(6),.estimate-table th:nth-child(7),.estimate-table th:nth-child(8),.estimate-table th:nth-child(9){width:90px}.estimate-table th:nth-child(10){width:42px}.est-sn{font-weight:900;text-align:center;color:#92400e}.est-type{display:inline-flex;padding:4px 7px;border-radius:999px;font-size:7px;font-weight:900}.est-type.part{background:#dbeafe;color:#1d4ed8}.est-type.labour{background:#dcfce7;color:#047857}.est-line-total{display:block;text-align:right;color:#0b2545;font-size:9px;white-space:nowrap}.est-remove{width:26px;height:26px;border:0;border-radius:7px;background:#fee2e2;color:#b91c1c;font-size:16px;font-weight:900;cursor:pointer}.est-remove:hover{background:#fecaca}
.estimate-empty{padding:12px;text-align:center;color:#94a3b8;font-size:10px;border:1px dashed #dbe4ee;border-radius:9px;margin-top:8px}.estimate-bottom-grid{display:grid;grid-template-columns:minmax(260px,1fr) minmax(330px,.8fr);gap:12px;margin-top:12px}.estimate-summary{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px}.estimate-summary>div{padding:9px 10px;border-radius:9px;background:#f8fafc;border-left:3px solid #94a3b8}.estimate-summary span,.estimate-summary b{display:block}.estimate-summary span{font-size:8px;text-transform:uppercase;color:#64748b;font-weight:900}.estimate-summary b{margin-top:3px;font-size:11px;color:#0b2545}.estimate-summary .grand{grid-column:1/-1;background:#ecfdf5;border-left-color:#10b981}.estimate-summary .grand b{font-size:15px;color:#047857}.estimate-actions{display:flex;justify-content:flex-end;align-items:center;gap:8px;flex-wrap:wrap;margin-top:12px}.estimate-message{margin-right:auto;font-size:10px;font-weight:700;color:#64748b}.estimate-message.success{color:#047857}.estimate-message.waiting{color:#a16207}.estimate-message.error{color:#b91c1c}
@media(max-width:850px){.estimate-meta-bar,.estimate-bottom-grid{grid-template-columns:1fr}.estimate-toolbar,.estimate-actions{align-items:stretch;flex-direction:column}.estimate-toolbar>div{width:100%}.estimate-actions .ws-btn{width:100%}}


/* ========== ESTIMATE VERBAL APPROVAL (ADMIN) ========== */
.verbal-approval-box{display:grid;grid-template-columns:minmax(250px,1.5fr) 150px minmax(220px,1fr) auto;gap:8px;align-items:center;margin-top:12px;padding:11px;border:1px solid #bfdbfe;border-radius:10px;background:linear-gradient(135deg,#eff6ff,#fff)}
.verbal-approval-copy strong,.verbal-approval-copy span{display:block}.verbal-approval-copy strong{color:#1e3a8a;font-size:11px}.verbal-approval-copy span{margin-top:3px;color:#64748b;font-size:9px;line-height:1.35}
.verbal-approval-box select,.verbal-approval-box input{height:34px;border:1px solid #cbd5e1;border-radius:8px;background:#fff;padding:0 9px;font:inherit;font-size:9px;color:#0f172a;outline:none;min-width:0}.verbal-approval-box select:focus,.verbal-approval-box input:focus{border-color:#2563eb;box-shadow:0 0 0 2px rgba(37,99,235,.10)}
.ws-btn.verbal{background:#1d4ed8;color:#fff;border-color:#1d4ed8;white-space:nowrap}.ws-btn.verbal:hover{background:#1e40af}.verbal-approval-box.approved{border-color:#86efac;background:#f0fdf4}.verbal-approval-box.approved .verbal-approval-copy strong{color:#047857}
@media(max-width:980px){.verbal-approval-box{grid-template-columns:1fr 1fr}.verbal-approval-copy{grid-column:1/-1}}
@media(max-width:620px){.verbal-approval-box{grid-template-columns:1fr}.verbal-approval-copy{grid-column:auto}.verbal-approval-box .ws-btn{width:100%}}

/* ============================================================
   FINAL24 — Separate Estimate Process / Planned Scope / Printing
   ============================================================ */
.estimate-module-layout{display:grid;grid-template-columns:minmax(260px,330px) minmax(0,1fr);gap:14px;min-height:calc(100vh - 130px)}
.estimate-job-browser,.estimate-workspace{min-width:0;margin:0}.estimate-job-browser .ws-box-head{align-items:flex-start;gap:8px}.estimate-job-browser .ws-box-head p{font-size:11px;color:#64748b;margin:4px 0 0;line-height:1.45}
.estimate-job-filter{padding:10px 0}.estimate-job-filter input{width:100%}.estimate-queue-list{display:flex;flex-direction:column;gap:8px;max-height:calc(100vh - 255px);overflow:auto;padding-right:3px}
.estimate-queue-card{width:100%;text-align:left;border:1px solid #dbe4ef;background:#fff;border-radius:12px;padding:10px;display:grid;gap:5px;cursor:pointer;color:#17324d}.estimate-queue-card:hover{border-color:#5f8ec4;box-shadow:0 5px 18px rgba(18,63,116,.1)}.estimate-queue-card.locked{opacity:.62;cursor:not-allowed;background:#f8fafc}.estimate-queue-card>div{display:flex;justify-content:space-between;gap:8px}.estimate-queue-card>div b{color:#0b3b75}.estimate-queue-card>div span,.estimate-queue-card small{font-size:10px;color:#64748b}.estimate-queue-card>strong{font-size:12px}.estimate-queue-status{justify-self:start;border-radius:999px;padding:4px 7px;font-size:9px!important;font-weight:900;background:#eef2f7;color:#475569}.estimate-queue-status.approved{background:#dcfce7;color:#166534}.estimate-queue-status.sent{background:#fef3c7;color:#92400e}.estimate-queue-status.draft,.estimate-queue-status.new{background:#dbeafe;color:#1d4ed8}
.estimate-prep-section{min-width:0}.estimate-module-hero{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;background:linear-gradient(135deg,#123f74,#1e5d96);color:#fff;border-radius:14px;padding:16px 18px;margin-bottom:12px}.estimate-module-hero h2{margin:3px 0;font-size:19px}.estimate-module-hero p{margin:0;opacity:.84;font-size:11px}.estimate-module-kicker{font-size:8px;letter-spacing:.14em;font-weight:900;opacity:.72}.estimate-status-badge{display:inline-flex;align-items:center;border-radius:999px;padding:6px 9px;background:#e2e8f0;color:#334155;font-size:9px;font-weight:900;white-space:nowrap}.estimate-module-hero .estimate-status-badge{background:#fff;color:#17365d}.estimate-status-badge.approved{background:#dcfce7;color:#166534}.estimate-status-badge.waiting,.estimate-status-badge.sent{background:#fef3c7;color:#92400e}.estimate-status-badge.draft{background:#dbeafe;color:#1d4ed8}
.estimate-context-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:7px;margin-bottom:10px}.estimate-context-grid>div{border:1px solid #dbe4ef;background:#f8fafc;border-radius:9px;padding:8px 10px;min-width:0}.estimate-context-grid .wide{grid-column:1/-1}.estimate-context-grid span{display:block;font-size:8px;text-transform:uppercase;letter-spacing:.08em;color:#789}.estimate-context-grid b{display:block;font-size:11px;margin-top:3px;word-break:break-word}
.estimate-meta-bar{display:grid;grid-template-columns:repeat(3,1fr);gap:7px;margin:8px 0}.estimate-meta-bar>div{border:1px solid #e2e8f0;border-radius:8px;padding:8px}.estimate-meta-bar span{display:block;color:#789;font-size:8px;text-transform:uppercase}.estimate-meta-bar b{font-size:11px;color:#17365d}.estimate-toolbar{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap;margin:9px 0}.estimate-toolbar>div{display:flex;gap:6px;flex-wrap:wrap}
.estimate-table-wrap{width:100%;max-width:100%;overflow:auto;border:1px solid #dbe4ef;border-radius:10px;max-height:360px}.estimate-table{border-collapse:collapse;width:max-content;min-width:100%;font-size:10px}.estimate-table th{position:sticky;top:0;z-index:2;background:#edf4fb;color:#17365d;padding:7px 5px;border-bottom:1px solid #ccd8e6;white-space:nowrap}.estimate-table td{padding:5px;border-bottom:1px solid #edf1f5;vertical-align:top}.estimate-table input,.estimate-table select{width:100%;min-width:70px;border:1px solid #d4dfeb;border-radius:6px;padding:6px;font-size:10px;background:#fff}.estimate-table .est-desc{min-width:210px}.estimate-table .est-note{display:block;margin-top:4px;font-size:9px;background:#fffbea}.estimate-table .est-code{min-width:90px}.estimate-table .est-hsn{min-width:75px}.estimate-table .est-line-total{font-weight:900;color:#0b3b75;white-space:nowrap}.est-type-badge{font-size:8px;font-weight:900;border-radius:999px;padding:4px 6px;background:#eef2f7}.est-type-badge.part{background:#dbeafe;color:#1d4ed8}.est-type-badge.rot{background:#dcfce7;color:#166534}.est-type-badge.labour{background:#fef3c7;color:#92400e}.est-type-badge.osl{background:#f3e8ff;color:#7e22ce}.estimate-empty{padding:10px;text-align:center;color:#789;font-size:10px}
.estimate-bottom-grid{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(260px,.6fr);gap:12px;margin-top:11px}.estimate-summary{border:1px solid #dbe4ef;border-radius:10px;padding:10px;background:#f8fafc}.estimate-summary>div{display:flex;justify-content:space-between;padding:6px 2px;border-bottom:1px dashed #d8e2ee;font-size:10px}.estimate-summary .grand{font-size:13px;color:#0b3b75;border-bottom:0;padding-top:9px}.verbal-approval-box{display:grid;grid-template-columns:minmax(220px,1.4fr) minmax(130px,.6fr) minmax(160px,.7fr) minmax(180px,1fr) auto;gap:7px;align-items:center;border:1px solid #f5cf7a;background:#fffaf0;border-radius:10px;padding:9px;margin-top:10px}.verbal-approval-copy strong,.verbal-approval-copy span{display:block}.verbal-approval-copy span{font-size:9px;color:#7c6540;margin-top:2px}.verbal-approval-box select,.verbal-approval-box input{height:34px;border:1px solid #dfcfaa;border-radius:7px;padding:0 8px;font-size:10px}.estimate-actions{display:flex;justify-content:flex-end;align-items:center;gap:7px;flex-wrap:wrap;margin-top:10px}.estimate-message{margin-right:auto;font-size:10px;color:#64748b}.estimate-message.success{color:#166534}.estimate-message.waiting{color:#92400e}.estimate-message.error{color:#b42318}
.diagnosis-status{display:inline-flex;border-radius:999px;padding:5px 8px;font-size:9px;font-weight:900;background:#eef2f7;color:#475569}.diagnosis-status.ready{background:#dcfce7;color:#166534}.diagnosis-status.waiting{background:#fff7d6;color:#92400e}.planned-scope-badge,.planned-scope-banner{background:#eaf2ff;color:#1d4ed8;border-radius:6px;padding:3px 6px;font-size:8px;font-weight:900;display:inline-block;margin-top:4px}.planned-scope-banner{grid-column:1/-1;width:100%;padding:6px 8px;margin:0 0 4px}.ec-inline-lookup{display:block;margin-top:5px;border:1px solid #b8c9dc;background:#edf5ff;color:#174a7e;border-radius:6px;padding:5px 7px;font-size:9px;font-weight:800;cursor:pointer}
.am-line-note{margin-top:4px;color:#4f6175;font-size:9px;line-height:1.35;font-weight:400}.am-print-warning{border:1px solid #f2c85b;background:#fff9df;color:#755b12;padding:8px 10px;border-radius:7px;margin:8px 0;font-size:10px}.am-estimate-document .am-print-doc-title{font-size:12px}.am-tax-included-row{font-style:italic;color:#64748b}
@media(max-width:1200px){.estimate-module-layout{grid-template-columns:260px minmax(0,1fr)}.estimate-context-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.verbal-approval-box{grid-template-columns:1fr 1fr}.verbal-approval-copy{grid-column:1/-1}.estimate-bottom-grid{grid-template-columns:1fr}}
@media(max-width:850px){.estimate-module-layout{grid-template-columns:1fr}.estimate-queue-list{max-height:270px}.estimate-context-grid,.estimate-meta-bar{grid-template-columns:1fr 1fr}.verbal-approval-box{grid-template-columns:1fr}.estimate-module-hero{border-radius:10px}}

@media print{
  .am-line-note{font-size:8pt;color:#222}.am-print-warning{border:1px solid #777;background:#fff;color:#111}.am-print-document table{page-break-inside:auto}.am-print-document tr{page-break-inside:avoid;page-break-after:auto}.am-print-document thead{display:table-header-group}.am-print-document tfoot{display:table-footer-group}.am-print-compliance{break-inside:auto;page-break-inside:auto}.am-print-bottom-grid,.am-print-terms{break-inside:avoid;page-break-inside:avoid}
}

/* V5.1 Round Off */
.gt-roundoff{margin-top:4px;font-size:12px;opacity:.8}.gt-roundoff strong{font-weight:800}.am-print-totals .row.total{font-size:1.05em}


.ws-confirm-dialog{border:0;background:transparent;padding:0;max-width:520px;width:min(520px,calc(100vw - 28px))}
.ws-confirm-dialog::backdrop{background:rgba(5,20,38,.55);backdrop-filter:blur(2px)}
.ws-confirm-card{background:#fff;border:1px solid #cfdbea;border-radius:14px;box-shadow:0 24px 70px rgba(12,47,85,.22);padding:18px;color:#102d4d}
.ws-confirm-head{display:flex;justify-content:space-between;gap:14px;align-items:flex-start}
.ws-confirm-head small{display:block;color:#6c7f96;font-size:9px;font-weight:900;letter-spacing:.09em}
.ws-confirm-head h3{margin:4px 0 0;font-size:20px;color:#12345b}
.ws-confirm-card p{font-size:12px;line-height:1.5;color:#536b84}
.ws-voucher-date-label{display:flex;flex-direction:column;gap:6px;font-size:11px;font-weight:900;color:#274866;margin:15px 0}
.ws-voucher-date-label input{border:1px solid #cfdbea;border-radius:8px;padding:10px 11px;font:inherit;background:#fff;color:#102d4d}
.ws-confirm-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:16px}


.estimate-customer-request{margin:10px 0 12px;padding:11px 13px;border-radius:10px;border:1px solid #fdba74;background:#fff7ed;color:#7c2d12}
.estimate-customer-request strong{display:block;font-size:11px;margin-bottom:4px;color:#9a3412}
.estimate-customer-request p{margin:0;font-size:10px;line-height:1.5;white-space:pre-wrap}
.estimate-customer-request small{display:block;margin-top:5px;color:#9a6a47;font-size:8px}
.item-editor.planned-preview{display:block!important;position:relative;border:1px dashed #60a5fa;border-radius:10px;padding:38px 8px 8px;background:#f8fbff}
.planned-preview-banner{position:absolute;left:8px;right:8px;top:7px;padding:7px 10px;border-radius:7px;background:#dbeafe;color:#1e3a8a;font-size:9px;font-weight:800}
.item-editor.planned-preview input:disabled,.item-editor.planned-preview select:disabled,.item-editor.planned-preview textarea:disabled{opacity:1;background:#fff;color:#17324d}
.item-editor.planned-preview button:disabled{opacity:.45;cursor:not-allowed}



/* V5.28 — line-wise Part / Labour master search */
.inline-master-input{background-image:linear-gradient(to right,#fff,#fff);font-weight:600}
.inline-master-input:focus{outline:none;border-color:#2563eb!important;box-shadow:0 0 0 2px rgba(37,99,235,.10)!important}
.inline-master-popup{display:none;position:fixed;z-index:100000;background:#fff;border:1px solid #bfcee0;border-radius:10px;box-shadow:0 16px 38px rgba(15,23,42,.22);max-height:300px;overflow:auto}
.inline-master-popup.show{display:block}
.inline-master-result{width:100%;border:0;border-bottom:1px solid #eef2f7;background:#fff;padding:9px 11px;display:flex;justify-content:space-between;gap:12px;align-items:center;text-align:left;cursor:pointer}
.inline-master-result:last-child{border-bottom:0}
.inline-master-result:hover,.inline-master-result.active{background:#eff6ff}
.inline-master-result span{min-width:0}
.inline-master-result b{display:block;color:#0b2f57;font-size:11px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.inline-master-result small{display:block;color:#64748b;font-size:9px;margin-top:2px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.inline-master-result strong{color:#0f5a3a;font-size:11px;white-space:nowrap}
.inline-master-empty{padding:12px;color:#64748b;font-size:10px}


/* =========================================================
   JOB CARD OSL — DIRECT EDIT / DELETE CONTROLS
   ========================================================= */
#jobCardOslSummary .jobcard-osl-item{
  grid-template-columns:24px minmax(0,1fr) auto auto;
  column-gap:9px;
  row-gap:7px;
}
.jobcard-osl-actions{display:flex;align-items:center;gap:6px;white-space:nowrap}
.jobcard-osl-actions button{height:30px;border-radius:7px;padding:0 11px;font-size:10px;font-weight:900;cursor:pointer;transition:.15s ease;box-shadow:0 1px 2px rgba(15,23,42,.06)}
.osl-edit-btn{border:1px solid #93c5fd;background:#eff6ff;color:#0b5cab}
.osl-edit-btn:hover{background:#dbeafe;border-color:#60a5fa}
.osl-delete-btn{border:1px solid #fecaca;background:#fff1f2;color:#b42318}
.osl-delete-btn:hover:not(:disabled){background:#ffe4e6;border-color:#fda4af}
.osl-delete-btn:disabled{opacity:.45;cursor:not-allowed;background:#f8fafc;color:#94a3b8;border-color:#e2e8f0}
.jobcard-osl-editor{display:none;grid-column:1/-1;margin:3px 0 5px 32px;padding:11px;border:1px solid #f4cf87;border-radius:9px;background:#fffdf7;box-shadow:0 5px 16px rgba(146,100,25,.08)}
.jobcard-osl-editor.open{display:block}
.osl-editor-title{display:flex;align-items:flex-start;justify-content:space-between;gap:10px;margin-bottom:9px}
.osl-editor-title b{font-size:10px;color:#6b4206}.osl-editor-title span{font-size:8px;color:#92704a}
.osl-editor-grid{display:grid;grid-template-columns:minmax(0,2fr) minmax(90px,.7fr) minmax(100px,.8fr) minmax(90px,.7fr);gap:8px}
.osl-editor-grid label{display:block}.osl-editor-grid label>span{display:block;margin-bottom:4px;color:#7c5d30;font-size:8px;font-weight:800}
.osl-editor-grid input{width:100%;height:31px;border:1px solid #e7c987;border-radius:6px;background:#fff;padding:0 8px;color:#3f2b0c;font-size:9px;outline:none}
.osl-editor-grid input:focus{border-color:#d99a20;box-shadow:0 0 0 2px rgba(217,154,32,.12)}
.osl-editor-wide{min-width:0}.osl-editor-actions{display:flex;justify-content:flex-end;gap:7px;margin-top:9px}
.osl-editor-actions button{height:30px;border-radius:7px;padding:0 11px;font-size:9px;font-weight:900;cursor:pointer}
.osl-cancel-btn{border:1px solid #cbd5e1;background:#fff;color:#475569}.osl-save-btn{border:1px solid #0b5cab;background:#0b5cab;color:#fff}
.osl-save-btn:hover{background:#084b8c}
@media(max-width:900px){
  #jobCardOslSummary .jobcard-osl-item{grid-template-columns:24px minmax(0,1fr) auto}
  .jobcard-osl-actions{grid-column:2/-1;justify-content:flex-end}
  .jobcard-osl-editor{margin-left:0}
  .osl-editor-grid{grid-template-columns:1fr 1fr}
  .osl-editor-wide{grid-column:1/-1}
}
@media(max-width:560px){
  .osl-editor-grid{grid-template-columns:1fr}
  .osl-editor-wide{grid-column:auto}
  .jobcard-osl-actions{justify-content:flex-start}
}

.osl-edit-enabled-badge{display:inline-flex;align-items:center;margin-left:7px;padding:3px 7px;border-radius:999px;background:#dbeafe;color:#0756a2;border:1px solid #93c5fd;font-size:8px;line-height:1;font-weight:900;vertical-align:middle;letter-spacing:.25px}


/* =========================================================
   JOB CARD BILLING TOTALS — OSL INCLUDED CLARITY (V3)
   ========================================================= */
.osl-included-badge{display:inline-flex;align-items:center;margin-left:5px;padding:3px 7px;border-radius:999px;background:#dcfce7;color:#166534;border:1px solid #86efac;font-size:8px;line-height:1;font-weight:900;vertical-align:middle;letter-spacing:.2px}
.jobcard-work-totals{margin-top:10px;border:1px solid #cbd9e7;border-radius:9px;background:#fff;overflow:hidden}
.jobcard-work-total-row{min-height:39px;display:flex;align-items:center;justify-content:space-between;gap:14px;padding:9px 12px;border-bottom:1px solid #e7eef5;color:#24445f;font-size:10px;font-weight:800}
.jobcard-work-total-row:last-child{border-bottom:0}
.jobcard-work-total-row span small{color:#7b8da0;font-size:8px;font-weight:700;margin-left:4px}
.jobcard-work-total-row strong{font-size:13px;color:#0b2f57}
.jobcard-work-total-row.osl-row{background:#fffaf0;color:#775012}
.jobcard-work-total-row.osl-row strong{color:#9a5d00}
.jobcard-work-total-row.combined-row{background:linear-gradient(90deg,#edf6ff,#f7fbff);border-top:1px solid #b9d6f1;color:#0b4f8a;font-size:11px}
.jobcard-work-total-row.combined-row strong{font-size:15px;color:#0756a2}
.jobcard-grand-total-box{align-items:center}
.gt-breakdown{margin-top:5px;color:#cfe5fb;font-size:9px;font-weight:700;letter-spacing:.1px}
.jobcard-grand-total-box .gt-roundoff{margin-top:5px}
@media(max-width:700px){.jobcard-work-total-row{align-items:flex-start}.jobcard-work-total-row span{max-width:70%}.gt-breakdown{line-height:1.45}.osl-included-badge{margin-top:5px}}
