:root {
    /* Global Parimal theme: change brand colors here, not page-by-page. */
    --poi-primary: #3c725e;
    --poi-primary-dark: #263f37;
    --poi-primary-soft: #e7efe9;
    --poi-primary-border: #bfd0c8;
    --poi-primary-rgb: 60, 114, 94;
    --poi-primary-hover: #315f4e;
    --poi-primary-light: #5b907a;
    --poi-primary-hover-rgb: 49, 95, 78;
    --poi-accent: #c99532;
    --poi-accent-dark: #9b6f1f;
    --poi-accent-soft: #f7eedc;
    --poi-accent-rgb: 201, 149, 50;
    --poi-bg: #f4f3f0;
    --poi-text: #252a2d;
    --poi-muted: #6d716f;
    --poi-sidebar: #263f37;
    --poi-sidebar-mid: #314f45;
    --poi-sidebar-dark: #20372f;
    --poi-sidebar-hover: #36594d;
    --poi-sidebar-bg: linear-gradient(180deg, var(--poi-sidebar) 0%, var(--poi-sidebar-mid) 56%, var(--poi-sidebar-dark) 100%);
    --poi-selection: #edf4f0;
    --poi-focus-soft: rgba(var(--poi-primary-rgb), .14);
    --bs-primary: var(--poi-primary);
    --bs-primary-rgb: var(--poi-primary-rgb);
    --bs-link-color: var(--poi-primary);
    --bs-link-color-rgb: var(--poi-primary-rgb);
    --bs-link-hover-color: var(--poi-primary-dark);
    --bs-link-hover-color-rgb: var(--poi-primary-hover-rgb);
    --sidebar-width: 268px;
    --sidebar-collapsed-width: 78px;
}
* { box-sizing: border-box; }
body { margin: 0; background: var(--poi-bg); color: var(--poi-text); font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif; }
a { text-decoration: none; }
.app-shell { min-height: 100vh; }
.app-sidebar { position: fixed; inset: 0 auto 0 0; width: var(--sidebar-width); background: var(--poi-sidebar-bg); color: #fff; z-index: 1040; display: flex; flex-direction: column; transition: transform .25s ease; box-shadow: 8px 0 32px rgba(20, 43, 56, .16); }
.brand { min-height: 94px; display: flex; align-items: center; gap: 12px; padding: 17px 18px; color: #fff; border-bottom: 1px solid rgba(210,235,248,.12); }
.brand img { width: 88px; height: 48px; object-fit: contain; filter: drop-shadow(0 4px 7px rgba(0,0,0,.18)); }
.brand span { display: flex; flex-direction: column; line-height: 1.15; }
.brand strong { font-size: 1.05rem; }
.brand small { opacity: .72; margin-top: 3px; }
.sidebar-nav { padding: 14px 12px; overflow-y: auto; }
.nav-section { padding: 19px 13px 8px; color: rgba(215,235,246,.58); text-transform: uppercase; letter-spacing: .12em; font-size: .68rem; font-weight: 700; }
.sidebar-nav .nav-link { color: rgba(235,245,250,.82); display: flex; align-items: center; gap: 13px; padding: 11px 13px; margin: 3px 0; border-radius: 11px; font-weight: 600; transition: .2s ease; }
.sidebar-nav .nav-link i { width: 21px; font-size: 1.05rem; }
.sidebar-nav .nav-link:hover { color: #fff; background: rgba(var(--poi-accent-rgb),.14); transform: translateX(2px); }
.sidebar-nav .nav-link.active { color: #fff; background: rgba(var(--poi-accent-rgb),.16); box-shadow: inset 3px 0 0 var(--poi-accent); }
.sidebar-footer { margin-top: auto; padding: 16px 20px; color: rgba(211,232,243,.52); border-top: 1px solid rgba(210,235,248,.11); }
.app-main { min-height: 100vh; margin-left: var(--sidebar-width); display: flex; flex-direction: column; }
.app-topbar { position: sticky; top: 0; z-index: 1020; min-height: 76px; display: flex; align-items: center; gap: 15px; padding: 12px 26px; background: rgba(255,255,255,.92); backdrop-filter: blur(12px); border-bottom: 1px solid #e8edf5; }
.topbar-title { font-size: 1.35rem; font-weight: 800; color: var(--poi-primary-dark); }
.sidebar-toggle { display: inline-flex; align-items: center; justify-content: center; width: 40px; height: 40px; }
.user-menu { display: flex; align-items: center; gap: 10px; border: 0; }
.user-menu small { display: block; color: var(--poi-muted); font-size: .72rem; }
.user-avatar { width: 40px; height: 40px; display: inline-flex; align-items: center; justify-content: center; border-radius: 50%; background: var(--poi-primary); color: #fff; font-weight: 800; }
.app-content { flex: 1; padding: 26px; }
.app-footer { padding: 15px 26px 22px; color: var(--poi-muted); font-size: .82rem; }
.page-heading { display: flex; align-items: flex-start; justify-content: space-between; gap: 15px; margin-bottom: 22px; }
.page-heading h2 { font-weight: 800; color: var(--poi-primary-dark); margin-bottom: 3px; }
.page-heading p { margin: 0; color: var(--poi-muted); }
.content-card { background: #fff; border: 1px solid #e7ecf4; border-radius: 17px; box-shadow: 0 8px 28px rgba(30, 41, 75, .055); }
.content-card .card-header { background: transparent; border-bottom: 1px solid #edf0f5; padding: 18px 20px; }
.content-card .card-body { padding: 20px; }
.btn-primary { --bs-btn-bg: var(--poi-primary); --bs-btn-border-color: var(--poi-primary); --bs-btn-hover-bg: var(--poi-primary-hover); --bs-btn-hover-border-color: var(--poi-primary-hover); --bs-btn-active-bg: var(--poi-primary-dark); --bs-btn-active-border-color: var(--poi-primary-dark); --bs-btn-disabled-bg: var(--poi-primary); --bs-btn-disabled-border-color: var(--poi-primary); --bs-btn-focus-shadow-rgb: var(--poi-primary-rgb); }
.btn-outline-primary { --bs-btn-color: var(--poi-primary); --bs-btn-border-color: var(--poi-primary); --bs-btn-hover-bg: var(--poi-primary); --bs-btn-hover-border-color: var(--poi-primary); --bs-btn-active-bg: var(--poi-primary-dark); --bs-btn-active-border-color: var(--poi-primary-dark); --bs-btn-focus-shadow-rgb: var(--poi-primary-rgb); }
.form-check-input:checked { background-color: var(--poi-primary); border-color: var(--poi-primary); }
.form-check-input:focus { border-color: var(--poi-primary-border); box-shadow: 0 0 0 .18rem var(--poi-focus-soft); }
.dropdown-item.active,.dropdown-item:active,.list-group-item.active { background-color: var(--poi-primary); border-color: var(--poi-primary); }
.page-link { color: var(--poi-primary); }
.page-link:hover { color: var(--poi-primary-dark); background-color: var(--poi-primary-soft); }
.active>.page-link,.page-link.active { background-color: var(--poi-primary); border-color: var(--poi-primary); }
.nav-pills .nav-link.active,.nav-pills .show>.nav-link { background-color: var(--poi-primary); }
.nav-tabs .nav-link:hover,.nav-tabs .nav-link:focus { color: var(--poi-primary-dark); }

.table { --bs-table-color: #263044; }
.table thead th { background: #f7f9fc; color: #596174; border-bottom-width: 1px; font-size: .76rem; text-transform: uppercase; letter-spacing: .055em; white-space: nowrap; }
.table td { vertical-align: middle; }
.table-actions { display: flex; gap: 6px; flex-wrap: wrap; }
.dataTables_wrapper .dt-processing { z-index: 10; border-radius: 12px; border: 1px solid #e3e8f1; box-shadow: 0 7px 22px rgba(0,0,0,.08); }
.form-label { font-weight: 650; color: #3a4356; }
.required::after { content: " *"; color: #dc3545; }
.modal-content { border: 0; border-radius: 18px; box-shadow: 0 20px 70px rgba(16,24,40,.25); }
.modal-header { border-bottom-color: #edf0f5; }
.modal-footer { border-top-color: #edf0f5; }
.global-loader { position: fixed; inset: 0; z-index: 2000; display: none; align-items: center; justify-content: center; background: rgba(20,28,55,.32); backdrop-filter: blur(2px); }
.global-loader.show { display: flex; }
.loader-card { display: flex; align-items: center; gap: 13px; background: #fff; border-radius: 14px; padding: 17px 22px; box-shadow: 0 18px 55px rgba(0,0,0,.18); font-weight: 700; }
.stat-card { height: 100%; padding: 20px; position: relative; overflow: hidden; }
.stat-card::after { content: ""; position: absolute; width: 115px; height: 115px; border-radius: 50%; right: -34px; top: -42px; background: rgba(var(--poi-primary-rgb),.08); }
.stat-icon { width: 47px; height: 47px; display: inline-flex; align-items: center; justify-content: center; border-radius: 13px; background: rgba(var(--poi-primary-rgb),.11); color: var(--poi-primary); font-size: 1.3rem; }
.stat-number { font-size: 2rem; font-weight: 850; color: var(--poi-primary-dark); }
.import-help { background: #f2f8fb; border: 1px dashed #c8d3e7; border-radius: 12px; padding: 13px; color: #566176; }
.permission-group { border: 1px solid #e8ecf3; border-radius: 13px; overflow: hidden; }
.permission-group-title { background: #f7f9fc; padding: 10px 13px; font-weight: 750; }
.permission-list { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 8px; padding: 12px 13px; }
.login-page { min-height: 100vh; background: radial-gradient(circle at 15% 20%, rgba(var(--poi-primary-rgb),.18), transparent 38%), linear-gradient(135deg, #fafaf7 0%, var(--poi-primary-soft) 58%, var(--poi-accent-soft) 100%); display: flex; align-items: center; justify-content: center; padding: 24px; }
.login-card { width: min(100%, 430px); background: rgba(255,255,255,.96); border: 1px solid rgba(255,255,255,.8); border-radius: 22px; padding: 30px; box-shadow: 0 25px 80px rgba(42,42,101,.16); }
.login-logo { width: 220px; max-width: 82%; display: block; margin: 0 auto 22px; }
.login-card h1 { color: var(--poi-primary-dark); font-weight: 850; font-size: 1.65rem; }
.sidebar-backdrop { display: none; }
@media (max-width: 991.98px) {
    .app-sidebar { transform: translateX(-100%); }
    .app-main { margin-left: 0; }
    body.sidebar-open .app-sidebar { transform: translateX(0); }
    body.sidebar-open .sidebar-backdrop { display: block; position: fixed; inset: 0; z-index: 1035; background: rgba(16,24,40,.45); }
    .sidebar-toggle { display: inline-flex; }
}
@media (max-width: 767.98px) {
    .app-content { padding: 18px 14px; }
    .app-topbar { padding: 10px 14px; }
    .page-heading { flex-direction: column; }
    .page-heading .btn-group-responsive { width: 100%; display: grid; grid-template-columns: 1fr 1fr; gap: 8px; }
    .page-heading .btn-group-responsive .btn { width: 100%; }
    .content-card .card-body { padding: 14px; }
    .permission-list { grid-template-columns: 1fr; }
}
.costing-help-icon { flex: 0 0 auto; width: 42px; height: 42px; border-radius: 12px; display: inline-flex; align-items: center; justify-content: center; background: rgba(var(--poi-primary-rgb),.11); color: var(--poi-primary); font-size: 1.2rem; }
.costing-result-box { display: flex; align-items: center; justify-content: space-between; gap: 15px; padding: 16px 18px; border: 1px solid #dce3f0; border-radius: 14px; background: linear-gradient(135deg,#f5fafc,#f4fafc); }
.costing-result-box span { color: var(--poi-muted); font-weight: 650; }
.costing-result-box strong { color: var(--poi-primary-dark); font-size: 1.15rem; }
@media (max-width: 575.98px) { .costing-result-box { align-items: flex-start; flex-direction: column; } }

/* Desktop workflow and searchable lookup controls */
.app-content { padding-top: 20px; }
.content-card.compact-card .card-body { padding: 14px 16px; }
.table-compact > :not(caption) > * > * { padding-top: .48rem; padding-bottom: .48rem; }
.table tbody tr { cursor: default; }
.table tbody tr.table-selected > * { background: var(--poi-selection) !important; box-shadow: inset 0 1px 0 var(--poi-primary-border), inset 0 -1px 0 var(--poi-primary-border); }
.shortcut-hint { display: inline-flex; align-items: center; gap: 4px; color: var(--poi-muted); font-size: .74rem; white-space: nowrap; }
.shortcut-hint kbd { padding: 2px 5px; border: 1px solid #d6dce8; border-bottom-width: 2px; border-radius: 5px; background: #fff; color: #596174; font-family: inherit; font-size: .68rem; box-shadow: none; }
.lookup-field { position: relative; }
.lookup-field .form-control { padding-right: 58px; background-color: #fff; }
.lookup-field .lookup-icon { position: absolute; right: 34px; top: 50%; transform: translateY(-50%); z-index: 4; color: #7a8498; pointer-events: none; }
.lookup-field .lookup-clear { position: absolute; right: 7px; top: 50%; transform: translateY(-50%); z-index: 5; width: 25px; height: 25px; display: inline-flex; align-items: center; justify-content: center; padding: 0; border: 0; border-radius: 50%; background: transparent; color: #7a8498; }
.lookup-field .lookup-clear:hover { background: #eef2f8; color: #263044; }
.lookup-menu { position: absolute; z-index: 1085; left: 0; right: 0; top: calc(100% + 5px); display: none; max-height: 260px; overflow-y: auto; padding: 6px; border: 1px solid #dbe2ee; border-radius: 11px; background: #fff; box-shadow: 0 14px 38px rgba(30,41,75,.16); }
.lookup-menu.show { display: block; }
.lookup-option { width: 100%; display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 9px 10px; border: 0; border-radius: 8px; background: transparent; color: #273146; text-align: left; }
.lookup-option span { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.lookup-option small { flex: 0 0 auto; color: #7a8498; }
.lookup-option:hover, .lookup-option.active { background: var(--poi-primary-soft); color: var(--poi-primary-dark); }
.lookup-empty { padding: 12px; color: var(--poi-muted); text-align: center; font-size: .88rem; }
.lookup-field.open .form-control { border-color: var(--poi-primary); box-shadow: 0 0 0 .2rem var(--poi-focus-soft); }
.desktop-toolbar { display: flex; align-items: center; gap: 12px; flex-wrap: wrap; }
.costing-metric { height: 100%; padding: 13px 15px; border: 1px solid #dfe6f1; border-radius: 12px; background: #f5fafc; }
.costing-metric span { display: block; color: var(--poi-muted); font-size: .78rem; font-weight: 650; margin-bottom: 4px; }
.costing-metric strong { color: var(--poi-primary-dark); font-size: 1.08rem; }
.status-current { background: #dff7e8; color: #176a39; }
.status-superseded { background: #eceff4; color: #5e6879; }
.status-cancelled { background: #fde5e7; color: #a12835; }
.form-section-title { margin: 1px 0 10px; color: var(--poi-primary-dark); font-size: .82rem; font-weight: 800; text-transform: uppercase; letter-spacing: .06em; }
.form-section { padding: 14px; border: 1px solid #e6ebf3; border-radius: 13px; background: #fbfcfe; }
.readonly-value { background: #f2f5fa !important; color: #273146; font-weight: 700; }
@media (min-width: 992px) {
    .modal-dialog.modal-xl-desktop { max-width: 1040px; }
    .app-topbar { min-height: 68px; padding-top: 9px; padding-bottom: 9px; }
    .sidebar-nav .nav-link { padding-top: 9px; padding-bottom: 9px; }
    .page-heading { margin-bottom: 16px; }
    .content-card .card-body { padding: 16px; }
}


/* v0.4.0 Base Rate and independent Transport costing */
.cost-panel { padding: 18px; border: 1px solid #dfe6f1; border-radius: 14px; background: linear-gradient(145deg,#fbfcff,#f2f8fb); }
.cost-panel h6 { margin-bottom: 14px; color: var(--poi-primary-dark); font-weight: 750; }
.rate-result { display:flex; align-items:center; justify-content:space-between; gap:16px; padding:18px 20px; border-radius:14px; background:linear-gradient(135deg,#f3f8fb,#eaf5f9); border:1px solid #dbe4f2; }
.rate-result span { color:var(--poi-muted); font-weight:650; }
.rate-result strong { color:var(--poi-primary-dark); font-size:1.25rem; }
@media (max-width:575.98px){.rate-result{align-items:flex-start;flex-direction:column;}}


/* v0.4.1 desktop sidebar and code validation */
.master-code { display:inline-block; font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace; font-size:.78rem; font-weight:750; color:var(--poi-primary-dark); background:var(--poi-primary-soft); border:1px solid var(--poi-primary-border); border-radius:6px; padding:3px 6px; white-space:nowrap; }
.code-feedback { min-height: 1.1rem; }
.form-control.is-valid + .code-feedback, .code-feedback.text-success { font-weight:650; }
.cost-summary-group { background:var(--poi-primary-soft) !important; color:var(--poi-primary-dark) !important; text-align:center !important; }
@media (min-width: 992px) {
    .app-sidebar, .app-main, .brand, .sidebar-nav .nav-link { transition: width .24s ease, margin-left .24s ease, padding .24s ease, gap .24s ease; }
    body.sidebar-collapsed .app-sidebar { width: var(--sidebar-collapsed-width); }
    body.sidebar-collapsed .app-main { margin-left: var(--sidebar-collapsed-width); }
    body.sidebar-collapsed .brand { min-height:76px; justify-content:center; padding:12px 8px; }
    body.sidebar-collapsed .brand img { width:58px; height:42px; }
    body.sidebar-collapsed .brand span, body.sidebar-collapsed .sidebar-nav .nav-link span, body.sidebar-collapsed .sidebar-footer { display:none; }
    body.sidebar-collapsed .sidebar-nav { padding-left:8px; padding-right:8px; }
    body.sidebar-collapsed .sidebar-nav .nav-link { justify-content:center; gap:0; padding-left:8px; padding-right:8px; min-height:44px; }
    body.sidebar-collapsed .sidebar-nav .nav-link i { width:auto; font-size:1.18rem; }
    body.sidebar-collapsed .nav-section { height:18px; overflow:hidden; padding:12px 0 0; font-size:0; text-align:center; }
    body.sidebar-collapsed .nav-section::after { content:'•'; color:rgba(184,222,240,.48); font-size:.8rem; }
    body.sidebar-collapsed .sidebar-nav .nav-link:hover { transform:none; }
}
@media (max-width: 991.98px) {
    body.sidebar-collapsed .app-main { margin-left:0; }
}

/* v0.5.0 dynamic Packing Cost worksheet */
.packing-worksheet-card { overflow: hidden; }
.worksheet-empty { min-height: 320px; display: flex; flex-direction: column; align-items: center; justify-content: center; padding: 42px 20px; color: var(--poi-muted); text-align: center; }
.worksheet-empty i { font-size: 2.4rem; color: #6d98ad; margin-bottom: 12px; }
.worksheet-empty h3 { color: var(--poi-primary-dark); font-size: 1.15rem; font-weight: 800; margin-bottom: 6px; }
.worksheet-empty p { margin: 0; }
.worksheet-summary { display: flex; align-items: center; justify-content: space-between; gap: 16px; padding: 14px 16px; border-bottom: 1px solid #e5eaf2; background: #f5fafc; }
.worksheet-summary > div:first-child { display: flex; flex-direction: column; }
.worksheet-summary strong { color: var(--poi-primary-dark); }
.worksheet-summary small { color: var(--poi-muted); }
.worksheet-dirty { color: #b7791f; font-weight: 750; }
.worksheet-dirty i { font-size: .55rem; }
.packing-sheet-wrap { max-height: calc(100vh - 330px); min-height: 260px; overflow: auto; }
.packing-sheet { width: max-content; min-width: 100%; table-layout: fixed; font-size: .82rem; }
.packing-sheet th { position: sticky; top: 0; z-index: 8; background: var(--poi-primary-soft); color: var(--poi-primary-dark); vertical-align: middle; white-space: nowrap; }
.packing-sheet td { vertical-align: middle; background: #fff; }
.packing-sheet .sheet-row-no { position: sticky; left: 0; z-index: 5; width: 46px; min-width: 46px; text-align: center; background: #f5fafc; }
.packing-sheet thead .sheet-row-no { z-index: 12; background: var(--poi-primary-soft); }
.packing-sheet .sheet-sku { position: sticky; left: 46px; z-index: 5; width: 125px; min-width: 125px; background: #fff; }
.packing-sheet thead .sheet-sku { z-index: 12; background: var(--poi-primary-soft); }
.packing-sheet .sheet-product { position: sticky; left: 171px; z-index: 5; width: 255px; min-width: 255px; background: #fff; box-shadow: 4px 0 7px rgba(45,54,83,.06); }
.packing-sheet thead .sheet-product { z-index: 12; background: var(--poi-primary-soft); }
.packing-sheet .sheet-product strong { display: block; color: #273146; }
.packing-sheet .sheet-product small { display: block; color: var(--poi-muted); margin-top: 2px; }
.packing-sheet .component-head { width: 150px; min-width: 150px; text-align: center; }
.packing-sheet .component-head span, .packing-sheet .component-head small { display: block; }
.packing-sheet .component-head small { color: #6d8794; font-size: .68rem; margin-top: 2px; }
.packing-sheet .component-cell { width: 150px; min-width: 150px; padding: 5px; }
.packing-sheet .component-amount { min-width: 135px; text-align: right; font-variant-numeric: tabular-nums; }
.packing-sheet .component-amount:focus { border-color: var(--poi-primary); box-shadow: inset 0 0 0 1px var(--poi-primary), 0 0 0 .15rem var(--poi-focus-soft); }
.packing-sheet .sheet-total { width: 150px; min-width: 150px; text-align: right; font-weight: 800; background: #f2f8ff; color: var(--poi-primary-dark); }
.packing-sheet thead .sheet-total { z-index: 8; background: #dcecf3; }
.worksheet-help { padding: 10px 16px; border-top: 1px solid #e5eaf2; color: var(--poi-muted); font-size: .78rem; background: #fbfcfe; }
@media (max-width: 767.98px) {
    .worksheet-summary { align-items: flex-start; flex-direction: column; }
    .packing-sheet-wrap { max-height: 60vh; }
}

/* v0.6.0 dynamic Miscellaneous Cost worksheet */
.miscellaneous-sheet .misc-rate-row th { top: 0; height: 54px; background: #fff7dc; z-index: 10; }
.miscellaneous-sheet thead tr:nth-child(2) th { top: 54px; background: var(--poi-primary-soft); z-index: 9; }
.miscellaneous-sheet .misc-rate-row .sheet-row-no,
.miscellaneous-sheet .misc-rate-row .sheet-sku,
.miscellaneous-sheet .misc-rate-row .sheet-product { z-index: 14; background: #fff2bf; }
.miscellaneous-sheet .misc-rate-row .sheet-total { z-index: 12; background: #ffe8a3; }
.miscellaneous-sheet .misc-value-head { padding: 7px; }
.miscellaneous-sheet .misc-rate-input { min-width: 120px; text-align: right; font-weight: 800; font-variant-numeric: tabular-nums; background: #fffdf5; }
.miscellaneous-sheet .misc-rate-input:focus { border-color: #d7a514; box-shadow: inset 0 0 0 1px #d7a514, 0 0 0 .15rem rgba(215,165,20,.15); }
.miscellaneous-sheet .misc-calculated { min-width: 150px; text-align: right; font-variant-numeric: tabular-nums; background: #fff; }
.miscellaneous-sheet tbody tr:hover .misc-calculated { background: #f5fafc; }

/* v0.7 Quick Price and margin hierarchy */
.quick-price-shell{overflow:hidden}.quick-price-tabs-wrap{overflow-x:auto}.quick-price-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:14px;align-items:start}.quick-price-column{border:1px solid #dfe5f2;border-radius:14px;background:#fff;overflow:hidden;box-shadow:0 4px 18px rgba(36,42,92,.05)}.quick-price-column-head{display:flex;justify-content:space-between;gap:12px;padding:12px 14px;background:linear-gradient(135deg,#f6f8f6,var(--poi-primary-soft));border-bottom:1px solid #dfe5f2}.quick-price-column-head h3{font-size:1rem;margin:0;color:var(--poi-primary-dark)}.quick-price-column-head small{display:block;color:#6c748c;margin-top:2px}.quick-rate-entry{padding:10px 14px;background:#fffdf0;border-bottom:1px solid #efe7bd}.quick-rate-entry label{font-size:.76rem;font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:#6d6232}.quick-rate-entry small{display:block;color:#6b7280;margin-top:5px}.normalised-rate{font-size:.78rem;color:var(--poi-primary-dark);font-weight:600;margin-top:3px}.quick-price-column table th{font-size:.72rem;text-transform:uppercase;letter-spacing:.03em;background:#f7fafb}.quick-price-column table td{vertical-align:middle}.quick-price-column table td small{display:block;color:#777;font-size:.7rem}.quick-price-value strong{font-size:.96rem;color:#111827}.margin-worksheet .margin-category td{background:var(--poi-primary-soft)}.margin-worksheet .margin-subcategory td{background:#f7fafb}.margin-worksheet small{display:block;color:#71818a}.indent-1{padding-left:18px}.indent-2{padding-left:36px}.margin-input:placeholder-shown{background:#fafafa}@media(max-width:767px){.quick-price-grid{grid-template-columns:1fr}.quick-price-column{min-width:0}}
/* v0.7.0 Excel-style horizontal Quick Price matrix */
.quick-price-shell #quickPriceContent{overflow-x:auto;background:#f7f9fd}.quick-price-grid{display:flex;flex-wrap:nowrap;gap:0;align-items:flex-start;width:max-content;min-width:100%}.quick-price-column{width:252px;min-width:252px;border-radius:0;border-right:0;box-shadow:none}.quick-price-column:first-child{border-radius:12px 0 0 12px}.quick-price-column:last-child{border-right:1px solid #dfe5f2;border-radius:0 12px 12px 0}.quick-price-column-head{min-height:72px}.quick-price-column .table{font-variant-numeric:tabular-nums}.quick-price-column .table tbody tr{height:42px}.quick-price-column .base-amount-input{font-weight:800;background:#fffde7}.quick-price-tabs-wrap{position:sticky;left:0;z-index:2;background:#fff}

/* v0.7.1 Product availability by dynamic Price Class */
.price-class-product-card{
    height:100%;
    padding:.85rem;
    border:1px solid var(--bs-border-color);
    border-radius:.65rem;
    background:var(--bs-body-bg);
}
.price-class-product-card:has(.price-class-active:not(:checked)) .price-class-order{
    opacity:.55;
}

/* v0.7.2 viewport-safe scrollable popups */
.modal { overflow-y: auto; }
.modal-dialog { max-height: calc(100vh - 1.5rem); }
.modal-dialog-scrollable { height: calc(100% - 1.5rem); }
.modal-dialog-scrollable .modal-content { max-height: 100%; display: flex; flex-direction: column; overflow: hidden; }
.modal-dialog-scrollable .modal-content > form { display: flex; flex-direction: column; min-height: 0; max-height: 100%; }
.modal-dialog-scrollable .modal-body { overflow-y: auto; overscroll-behavior: contain; min-height: 0; }
@media (max-width: 575.98px) {
    .modal-dialog { margin: .5rem; max-height: calc(100vh - 1rem); }
    .modal-dialog-scrollable { height: calc(100% - 1rem); }
}

/* v0.7.3 automatic Principal Interest and aligned Quick Price headings */
.quick-price-column-head{
    height:78px;
    min-height:78px;
    max-height:78px;
    align-items:flex-start;
    overflow:hidden;
}
.quick-price-column-head > div{min-width:0;}
.quick-price-column-head h3{
    min-height:38px;
    max-height:38px;
    display:-webkit-box;
    -webkit-box-orient:vertical;
    -webkit-line-clamp:2;
    overflow:hidden;
    line-height:1.15;
}
.quick-price-column-head small{
    height:18px;
    overflow:hidden;
    white-space:nowrap;
    text-overflow:ellipsis;
}
.quick-rate-entry{
    height:145px;
    min-height:145px;
    max-height:145px;
    overflow:hidden;
}
.quick-price-column table thead tr{height:42px;}
.quick-price-column table thead th{height:42px;vertical-align:middle;}
.misc-system-rate{
    min-width:150px;
    padding:4px 6px;
    border:1px solid #e1c971;
    border-radius:.4rem;
    background:#fff9df;
    text-align:right;
    font-variant-numeric:tabular-nums;
}
.misc-system-rate strong{display:block;color:#5f4b00;font-size:.9rem;}
.misc-system-rate small{display:block;color:#806d27;font-size:.64rem;line-height:1.2;white-space:normal;margin-top:2px;}



/* Quick Price share poster */
.poster-canvas-frame{background:linear-gradient(180deg,#f8fafc,var(--poi-primary-soft));border:1px solid #cbd5e1;border-radius:1rem;padding:1rem;overflow:auto;max-height:72vh}.poster-canvas-frame canvas{display:block;max-width:100%;height:auto;margin:0 auto;border-radius:.75rem;box-shadow:0 12px 30px rgba(15,23,42,.15)}#posterTermsGujarati,#posterFooterGujarati{font-family:"Nirmala UI","Noto Sans Gujarati",sans-serif;line-height:1.65}.desktop-toolbar{flex-wrap:wrap}

.variant-rules-table-wrap{max-height:58vh;overflow:auto}.variant-rules-table thead th{position:sticky;top:0;z-index:4;background:#f8fafc;white-space:nowrap}.variant-rules-table td{min-width:130px}.variant-rules-table td:nth-child(1){min-width:90px}.variant-rules-table td:nth-child(2){min-width:220px}.variant-rules-table td:nth-child(4){min-width:260px}.variant-rules-table .lookup-menu{min-width:320px}

/* v0.7.9 simple daily navigation and setup centre */
.topbar-context-link{align-items:center;gap:.35rem;color:var(--bs-primary);font-size:.82rem;font-weight:700;text-decoration:none}.topbar-context-link:hover{text-decoration:underline}.home-action-grid a{text-decoration:none}.home-primary-action{min-height:230px;display:flex;align-items:center;gap:1.35rem;padding:2rem;border-radius:1.25rem;color:#fff;background:linear-gradient(135deg,var(--poi-primary-dark) 0%,var(--poi-primary) 58%,var(--poi-primary-light) 100%);box-shadow:0 18px 42px rgba(var(--poi-primary-rgb),.22);transition:transform .2s ease,box-shadow .2s ease}.home-primary-action:hover{color:#fff;transform:translateY(-2px);box-shadow:0 22px 48px rgba(var(--poi-primary-rgb),.28)}.home-primary-action span:nth-child(2){display:flex;flex-direction:column;gap:.35rem}.home-primary-action small{font-weight:800;letter-spacing:.08em;text-transform:uppercase;opacity:.8}.home-primary-action strong{font-size:clamp(1.55rem,2.5vw,2.35rem);line-height:1.08}.home-primary-action em{font-style:normal;max-width:680px;opacity:.88}.home-action-icon{width:76px;height:76px;flex:0 0 76px;border-radius:22px;display:grid;place-items:center;background:rgba(255,255,255,.16);font-size:2rem}.home-action-arrow{margin-left:auto;font-size:2.15rem;opacity:.82}.home-secondary-action{min-height:70px;height:100%;display:flex;align-items:center;gap:1rem;padding:1rem 1.15rem;border:1px solid #e1e6ef;border-radius:1rem;background:#fff;color:#1f2937;box-shadow:0 8px 22px rgba(28,39,64,.06);transition:.2s ease}.home-secondary-action:hover{color:var(--bs-primary);border-color:var(--poi-primary-border);transform:translateY(-1px)}.home-secondary-action>i:first-child{width:42px;height:42px;border-radius:12px;display:grid;place-items:center;background:var(--poi-primary-soft);color:var(--poi-primary);font-size:1.15rem}.home-secondary-action span{display:flex;flex-direction:column}.home-secondary-action small{color:#6b7280}.frequency-guide-card{height:100%;min-height:142px;border:1px solid #e5e7eb;border-radius:1rem;padding:1rem;display:flex;flex-direction:column;gap:.32rem;background:#fff}.frequency-guide-card span{width:max-content;border-radius:999px;padding:.25rem .65rem;font-size:.72rem;font-weight:800;text-transform:uppercase;letter-spacing:.07em}.frequency-guide-card strong{font-size:1.02rem}.frequency-guide-card small{color:#6b7280}.frequency-guide-card.daily span{background:#dcfce7;color:#166534}.frequency-guide-card.weekly span{background:var(--poi-primary-soft);color:var(--poi-primary-dark)}.frequency-guide-card.monthly span{background:#fef3c7;color:#92400e}.frequency-guide-card.quarterly span{background:#f2f3f4;color:#4f5755}.setup-frequency-strip{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:.75rem}.setup-frequency-strip>div{display:grid;grid-template-columns:auto 1fr;column-gap:.65rem;align-items:center;padding:.85rem 1rem;background:#fff;border:1px solid #e5e7eb;border-radius:.9rem;box-shadow:0 6px 18px rgba(28,39,64,.04)}.setup-frequency-strip strong,.setup-frequency-strip small{grid-column:2}.setup-frequency-strip small{color:#6b7280}.frequency-dot{grid-row:1/3;width:12px;height:12px;border-radius:50%;box-shadow:0 0 0 5px currentColor;opacity:.75}.frequency-dot.daily{color:#22c55e}.frequency-dot.weekly{color:var(--poi-primary)}.frequency-dot.monthly{color:#f59e0b}.frequency-dot.quarterly{color:#7a807d}.setup-group-card{overflow:hidden}.setup-group-icon{width:48px;height:48px;flex:0 0 48px;border-radius:14px;display:grid;place-items:center;font-size:1.25rem}.setup-link-list{display:flex;flex-direction:column;border-top:1px solid #edf0f5}.setup-link-list a{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.75rem .2rem;color:#263244;text-decoration:none;border-bottom:1px solid #edf0f5;font-weight:650}.setup-link-list a span{display:flex;align-items:center;gap:.7rem}.setup-link-list a span i{width:24px;color:var(--poi-primary)}.setup-link-list a:hover{color:var(--bs-primary);padding-left:.35rem}.future-setup-card{border-style:dashed}.future-setup-block{height:100%;min-height:150px;border:1px dashed #cbd5e1;border-radius:1rem;padding:1rem;background:#f8fafc;display:flex;flex-direction:column;gap:.45rem}.future-setup-block>i{font-size:1.35rem;color:var(--poi-primary)}.future-setup-block span{color:#64748b;font-size:.9rem}.desktop-toolbar>.dropdown{display:inline-flex}
@media(max-width:991.98px){.setup-frequency-strip{grid-template-columns:repeat(2,minmax(0,1fr))}.home-primary-action{min-height:190px}.home-action-icon{width:60px;height:60px;flex-basis:60px}.home-action-arrow{display:none}}
@media(max-width:575.98px){.setup-frequency-strip{grid-template-columns:1fr}.home-primary-action{padding:1.25rem;align-items:flex-start}.home-action-icon{width:48px;height:48px;flex-basis:48px;border-radius:14px;font-size:1.35rem}.home-primary-action strong{font-size:1.35rem}.desktop-toolbar{width:100%}.desktop-toolbar .btn,.desktop-toolbar .dropdown{flex:1}.desktop-toolbar .dropdown .btn{width:100%}}

.poster-setting-section{height:100%;border:1px solid #d7dee8;border-radius:.85rem;padding:1rem}.poster-setting-section .form-label{font-weight:700}.poster-setting-red{background:#fff1f2;border-color:#fecaca}.poster-setting-yellow{background:#fffbeb;border-color:#fde68a}.poster-setting-green{background:#f0fdf4;border-color:#bbf7d0}.poster-setting-white{background:#f8fafc;border-color:#cbd5e1}.poster-row-settings-wrap{max-height:390px;border-radius:.75rem}.poster-row-settings-wrap thead th{position:sticky;top:0;z-index:2;background:#f1f5f9}.poster-row-settings-wrap input{min-width:130px}

.poster-banner-spec-card{display:flex;align-items:flex-start;gap:.9rem;height:100%;padding:1rem;border:1px solid #dbe3ef;border-radius:1rem;background:#fff;box-shadow:0 6px 18px rgba(15,23,42,.05)}.poster-banner-spec-icon{display:grid;place-items:center;width:44px;height:44px;border-radius:.8rem;background:var(--poi-primary-soft);color:var(--poi-primary-dark);font-size:1.2rem;flex:0 0 auto}.poster-banner-spec-card strong,.poster-banner-spec-card span,.poster-banner-spec-card small{display:block}.poster-banner-spec-card span{font-weight:700;color:#0f172a}.poster-banner-spec-card small{margin-top:.2rem;color:#64748b;line-height:1.35}.poster-banner-card{height:100%;overflow:hidden;border:1px solid #dbe3ef;border-radius:1rem;background:#fff;box-shadow:0 8px 24px rgba(15,23,42,.06)}.poster-banner-thumb{position:relative;aspect-ratio:2.25/1;background:#e2e8f0;overflow:hidden}.poster-banner-thumb img{width:100%;height:100%;object-fit:cover;display:block}.poster-banner-thumb .badge{position:absolute;top:.7rem;right:.7rem}.poster-banner-card-body{padding:1rem}.poster-banner-card-body strong,.poster-banner-card-body small{display:block}.poster-banner-card-body small{color:#64748b;margin-top:.15rem}.poster-banner-meta{display:flex;justify-content:space-between;gap:.5rem;margin-top:.75rem;padding-top:.65rem;border-top:1px solid #edf1f6;color:#475569;font-size:.8rem}.poster-banner-upload-preview{overflow:hidden;border:1px solid #cbd5e1;border-radius:.9rem;background:#f8fafc}.poster-banner-upload-preview img{display:block;width:100%;max-height:360px;object-fit:contain}.poster-banner-grid .empty-state{border:1px dashed #cbd5e1;border-radius:1rem;background:#f8fafc}

/* Legacy theme compatibility: all brand-facing controls now inherit the global Parimal theme variables. */
.text-primary{color:var(--poi-primary)!important}.bg-primary{background-color:var(--poi-primary)!important}.border-primary{border-color:var(--poi-primary)!important}.link-primary{color:var(--poi-primary)!important}.nav-link{--bs-nav-link-color:var(--poi-primary);--bs-nav-link-hover-color:var(--poi-primary-dark)}.nav-tabs{--bs-nav-tabs-link-active-color:var(--poi-primary-dark)}.page-link{color:var(--poi-primary)}.page-link.active,.active>.page-link{background-color:var(--poi-primary);border-color:var(--poi-primary)}.form-control:focus,.form-select:focus{border-color:#73a8c1;box-shadow:0 0 0 .2rem rgba(var(--poi-primary-rgb),.14)}.form-check-input:checked{background-color:var(--poi-primary);border-color:var(--poi-primary)}.dropdown-item.active,.dropdown-item:active{background-color:var(--poi-primary)}
.table tbody tr.table-selected>*{background:var(--poi-primary-soft)!important;box-shadow:inset 0 1px 0 var(--poi-primary-border),inset 0 -1px 0 var(--poi-primary-border)}
.master-code{color:var(--poi-primary-dark);background:var(--poi-primary-soft);border-color:var(--poi-primary-border)}.cost-summary-group{background:var(--poi-primary-soft)!important;color:var(--poi-primary-dark)!important}.lookup-option:hover,.lookup-option.active{background:var(--poi-primary-soft);color:var(--poi-primary-dark)}
.margin-class-tabs{gap:.5rem;flex-wrap:wrap}.margin-class-tabs .nav-link{display:flex;align-items:center;gap:.55rem;border:1px solid var(--poi-primary-border);border-radius:.8rem;background:#fff;color:var(--poi-primary-dark);padding:.58rem .9rem;font-weight:750}.margin-class-tabs .nav-link small{padding:.14rem .42rem;border-radius:999px;background:#edf4f7;color:#567180;font-size:.66rem;text-transform:uppercase;letter-spacing:.04em}.margin-class-tabs .nav-link:hover{background:#f2f8fb}.margin-class-tabs .nav-link.active{background:var(--poi-primary);border-color:var(--poi-primary);color:#fff;box-shadow:0 8px 20px rgba(var(--poi-primary-rgb),.18)}.margin-class-tabs .nav-link.active small{background:rgba(255,255,255,.18);color:#fff}
.margin-worksheet-scroll{max-height:calc(100vh - 390px);min-height:300px;overflow:auto}.margin-hierarchy-table{min-width:920px}.margin-hierarchy-table thead th{position:sticky;top:0;z-index:8;background:#f4f8fa}.margin-hierarchy-table td:nth-child(3),.margin-hierarchy-table td:nth-child(4),.margin-hierarchy-table td:nth-child(5),.margin-hierarchy-table td:nth-child(6){white-space:nowrap}.margin-hierarchy-table small{display:block;color:#7a8792;margin-top:.12rem}.margin-category>*{background:var(--poi-primary-soft)!important}.margin-category td{border-color:var(--poi-primary-border)}.margin-subcategory>*{background:#f7fafb!important}.margin-product.d-none{display:none!important}.margin-input{max-width:170px}.margin-input::placeholder{color:#9aa8b1}.margin-source-badge{display:inline-flex;align-items:center;border-radius:999px;padding:.25rem .58rem;font-size:.72rem;font-weight:750;border:1px solid transparent}.margin-source-badge.product{background:#dcfce7;color:#166534;border-color:#bbf7d0}.margin-source-badge.subcategory{background:var(--poi-primary-soft);color:var(--poi-primary-dark);border-color:var(--poi-primary-border)}.margin-source-badge.category{background:var(--poi-accent-soft);color:var(--poi-accent-dark);border-color:#e5cf9e}.margin-source-badge.class{background:#f1f5f9;color:#475569;border-color:#e2e8f0}.margin-toggle-products{min-width:102px}.derived-margin-notice{min-height:310px;display:flex;align-items:center;justify-content:center;gap:1rem;padding:2rem;text-align:left}.derived-margin-icon{width:64px;height:64px;flex:0 0 64px;border-radius:18px;display:grid;place-items:center;background:var(--poi-primary-soft);color:var(--poi-primary);font-size:1.55rem}.derived-margin-notice h3{margin:0 0 .45rem;color:var(--poi-primary-dark);font-size:1.2rem;font-weight:800}.derived-margin-notice p{max-width:680px;margin:0;color:#64748b}.indent-1{padding-left:1rem}.indent-2{padding-left:2rem}
@media(max-width:767.98px){.margin-worksheet-scroll{max-height:calc(100vh - 445px)}.derived-margin-notice{align-items:flex-start;flex-direction:column}.margin-class-tabs .nav-link{flex:1 1 auto;justify-content:center}}

.msg91-schedule-card{background:linear-gradient(180deg,#fff,#f8fafc);border-color:#cbd5e1!important}.msg91-schedule-card .form-check-input:checked{background-color:var(--poi-primary);border-color:var(--poi-primary)}.msg91-schedule-card .form-control:focus{border-color:var(--poi-primary-border);box-shadow:0 0 0 .2rem var(--poi-focus-soft)}
.daily-poster-image-grid .poster-banner-thumb{aspect-ratio:2.25/1}.daily-image-missing{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.35rem;width:100%;height:100%;color:#64748b;background:linear-gradient(135deg,#f8fafc,#eaf2f6)}.daily-image-missing i{font-size:2rem;color:#6f8fa3}.daily-image-missing span{font-weight:700;color:#334155}.daily-image-missing small{font-size:.75rem}.daily-image-empty{border-style:dashed}.daily-image-empty .poster-banner-thumb .badge{color:#713f12}


/* v0.8.10 Packing Material automation and admin-only Retailer tally */
.packing-sheet .calculated-component-head{background:var(--poi-primary-soft);color:var(--poi-primary-dark)}
.packing-sheet .calculated-component-cell{background:#f5f8f6;text-align:right;vertical-align:middle}
.packing-sheet .calculated-cost-value{font-weight:850;color:var(--poi-primary-dark);font-variant-numeric:tabular-nums}
.packing-sheet .calculated-component-cell small{display:block;color:#5f7783;font-size:.68rem;margin-top:2px}
.packing-mode-note{color:var(--poi-primary)!important;font-weight:650}
.retailer-admin-tally{position:sticky;left:0;display:flex;align-items:center;justify-content:space-between;gap:24px;margin:16px 0 2px;padding:15px 20px;border:1px solid var(--poi-primary-border);border-radius:12px;background:linear-gradient(135deg,var(--poi-primary-soft),#f5f8f6);box-shadow:0 4px 14px rgba(var(--poi-primary-rgb),.08);color:var(--poi-primary-dark);min-width:min(100%,700px)}
.retailer-admin-tally div{display:flex;flex-direction:column}.retailer-admin-tally small{text-transform:uppercase;letter-spacing:.06em;color:#607b88;font-size:.67rem}.retailer-admin-tally strong{font-size:.98rem}.retailer-admin-tally>span{font-size:1.65rem;font-weight:900;font-variant-numeric:tabular-nums;color:#0f2f40}
@media(max-width:575px){.retailer-admin-tally{align-items:flex-start}.retailer-admin-tally>span{font-size:1.35rem}}

/* v0.8.11 Gujarati-only poster header row and first-column labels */

/* v0.8.12 Bottle terminology and wider single-line Gujarati poster columns */

/* v0.8.13 Poster first-column correction and Excel-style Packing Material Cost worksheet */
.packing-material-sheet-wrap{max-height:calc(100vh - 285px);min-height:360px}
.packing-material-sheet{font-variant-numeric:tabular-nums}
.packing-material-sheet .packing-material-rate-row th{top:0;height:76px;background:#fff3c4;color:#5f4a00;z-index:11;padding:8px}
.packing-material-sheet thead tr:nth-child(2) th{top:76px;z-index:9;background:var(--poi-primary-soft)}
.packing-material-sheet .packing-material-rate-row .sheet-row-no,
.packing-material-sheet .packing-material-rate-row .sheet-sku,
.packing-material-sheet .packing-material-rate-row .sheet-product{z-index:15;background:#ffeaa2}
.packing-material-sheet thead tr:nth-child(2) .sheet-row-no,
.packing-material-sheet thead tr:nth-child(2) .sheet-sku,
.packing-material-sheet thead tr:nth-child(2) .sheet-product{z-index:14}
.packing-material-sheet .sheet-product{width:285px;min-width:285px}
.packing-material-sheet .rate-row-label span,
.packing-material-sheet .rate-row-label small{display:block}
.packing-material-sheet .rate-row-label span{font-weight:850;color:#5f4a00}
.packing-material-sheet .rate-row-label small{color:#7b6a2d;margin-top:3px}
.packing-material-rate-cell{min-width:300px;text-align:left}
.packing-material-rate-cell label{display:block;margin-bottom:5px;font-size:.7rem;font-weight:850;text-transform:uppercase;letter-spacing:.035em;color:#6a5610}
.packing-material-rate-input{min-width:130px;text-align:right;font-weight:850;background:#fffdf2;font-variant-numeric:tabular-nums}
.packing-material-rate-input:focus{border-color:#d7a514;box-shadow:inset 0 0 0 1px #d7a514,0 0 0 .15rem rgba(215,165,20,.15)}
.packing-material-rate-note{min-width:390px;text-align:center;color:#7b6a2d!important;font-size:.75rem;font-weight:700}
.packing-material-sheet .material-input-head,
.packing-material-sheet .material-calculated-head{width:165px;min-width:165px;text-align:center}
.packing-material-sheet .material-count-head{width:90px;min-width:90px;text-align:center}
.packing-material-sheet .material-status-head{width:105px;min-width:105px;text-align:center}
.packing-material-sheet .material-action-head{width:105px;min-width:105px;text-align:center}
.packing-material-input-cell{width:165px;min-width:165px;padding:5px!important;background:#fffdf5!important}
.packing-material-input-cell small{display:block;text-align:right;color:#7b8794;font-size:.67rem;margin-top:2px}
.packing-material-cell-input{min-width:145px;text-align:right;font-weight:700;font-variant-numeric:tabular-nums;background:#fff}
.packing-material-cell-input:focus{border-color:var(--poi-primary);box-shadow:inset 0 0 0 1px var(--poi-primary),0 0 0 .15rem var(--poi-focus-soft)}
.packing-material-calculated-cell{width:165px;min-width:165px;text-align:right;font-weight:750;background:#edf7fb!important;color:var(--poi-primary-dark)}
.packing-material-total-cell{width:175px;min-width:175px;text-align:right;font-weight:900;background:var(--poi-accent-soft)!important;color:var(--poi-primary-dark)}
.material-count-cell{width:90px;min-width:90px;text-align:center;background:#fff!important}
.material-status-cell{width:105px;min-width:105px;text-align:center;background:#fff!important}
.material-action-cell{width:105px;min-width:105px;text-align:center;background:#fff!important}
.packing-material-sheet tbody tr:hover td:not(.sheet-row-no):not(.sheet-sku):not(.sheet-product){filter:brightness(.985)}
@media(max-width:767.98px){.packing-material-sheet-wrap{max-height:64vh}.packing-material-rate-note{min-width:260px}}


/* v0.8.14 Product-wise Electricity switch and September Excel Base seed */
.electricity-product-switch{min-height:38px;display:flex;align-items:center;gap:.45rem;padding:.55rem .75rem .55rem 3rem;border:1px solid #d9e5eb;border-radius:.65rem;background:#f7fbfd}
.miscellaneous-sheet .misc-electricity-head{width:145px;min-width:145px;text-align:center;background:#fff2bf;z-index:12}
.miscellaneous-sheet .misc-electricity-cell{width:145px;min-width:145px;text-align:center;background:#fbfdfe}
.miscellaneous-sheet .misc-electricity-cell .form-check-input{margin:0}
.miscellaneous-sheet .electricity-state{min-width:58px;font-size:.72rem;font-weight:750;color:#315f73}
.miscellaneous-sheet .electricity-excluded{background:#f2f4f6!important;color:#7a8792;text-decoration:line-through}

/* v0.9.0 ERP Product + Four Price List foundation */
.price-matrix-wrap,.price-comparison-wrap{max-height:calc(100vh - 310px);min-height:340px;overflow:auto}
.price-matrix-wrap table,.price-comparison-wrap table{min-width:980px;font-variant-numeric:tabular-nums}
.price-matrix-wrap thead th,.price-comparison-wrap thead th{position:sticky;top:0;z-index:5;background:#f4f8fa;vertical-align:bottom}
.matrix-cell{min-width:150px;display:flex;align-items:center;justify-content:space-between;gap:.65rem}
.matrix-cell .matrix-order{width:68px;text-align:right;font-variant-numeric:tabular-nums}
.price-comparison-wrap td:nth-child(n+3){min-width:155px}
.erp-foundation-panel{border:1px solid #d8e5eb;border-radius:.9rem;background:#f8fbfc;padding:1rem}
@media(max-width:767.98px){.price-matrix-wrap,.price-comparison-wrap{max-height:62vh}.matrix-cell{min-width:140px}}

/* v0.12 desktop-client visual system -------------------------------------------------
   The application remains browser-delivered, but daily data-entry screens deliberately
   use a compact Windows/ERP style: square panels, dense grids and keyboard-first focus. */
:root {
    --sidebar-width: 238px;
    --sidebar-collapsed-width: 62px;
    --desktop-border: #aeb7c2;
    --desktop-border-dark: #7c8794;
    --desktop-panel: #f4f5f6;
    --desktop-title: #e6e9ed;
    --desktop-field: #fff;
}
body { font-family: "Segoe UI", Tahoma, Arial, sans-serif; background: var(--poi-bg); font-size: 14px; }
.app-sidebar { background: var(--poi-sidebar-bg); box-shadow: 2px 0 5px rgba(0,0,0,.16); }
.brand { min-height: 66px; padding: 8px 12px; border-bottom: 1px solid rgba(255,255,255,.12); }
.brand img { width: 75px; height: 38px; filter: none; }
.sidebar-nav { padding: 7px 7px 42px; }
.nav-section { padding: 12px 8px 4px; font-size: .64rem; letter-spacing: .08em; }
.sidebar-nav .nav-link { border-radius: 2px; padding: 7px 9px; margin: 1px 0; gap: 9px; font-size: .86rem; font-weight: 600; transition: background .08s ease,color .08s ease; }
.sidebar-nav .nav-link:hover { transform: none; background: var(--poi-sidebar-hover); }
.sidebar-nav .nav-link.active { background: var(--poi-primary-soft); color: var(--poi-primary-dark); box-shadow: inset 3px 0 0 var(--poi-accent); }
.app-topbar { min-height: 54px; padding: 6px 14px; background: #f5f6f7; backdrop-filter: none; border-bottom: 1px solid var(--desktop-border); box-shadow: 0 1px 2px rgba(0,0,0,.06); }
.topbar-title { font-size: 1.08rem; font-weight: 700; }
.user-avatar { width: 32px; height: 32px; border-radius: 3px; }
.user-menu { padding-top: 2px; padding-bottom: 2px; }
.sidebar-toggle { width: 32px; height: 32px; border-radius: 3px; }
.app-content { padding: 13px 15px 36px; }
.app-footer { min-height: 27px; padding: 4px 14px; border-top: 1px solid #9fa8b3; background: #eceff2; color: #4a5562; font-size: .72rem; position: sticky; bottom: 0; z-index: 1010; display: flex; align-items: center; justify-content: space-between; }
.app-footer::after { content: "F2 New   •   Enter/Tab Next   •   F4 Search   •   Ctrl+S / F6 Save"; white-space: pre; }
.page-heading { margin-bottom: 11px; align-items: center; }
.page-heading h2 { font-size: 1.2rem; margin: 0 0 1px; font-weight: 700; }
.page-heading p { font-size: .82rem; }
.desktop-page-heading { min-height: 38px; }
.desktop-toolbar { display: flex; align-items: center; justify-content: flex-end; gap: 6px; flex-wrap: wrap; }
.content-card { border: 1px solid var(--desktop-border); border-radius: 3px; box-shadow: none; }
.content-card .card-header { padding: 9px 11px; background: #e9ecef; border-bottom-color: var(--desktop-border); }
.content-card .card-body { padding: 11px; }
.form-label { margin-bottom: 2px; font-size: .76rem; font-weight: 600; color: #303944; }
.form-control,.form-select,.input-group-text { min-height: 32px; padding: .28rem .48rem; border-radius: 2px; border-color: #9fa9b5; font-size: .86rem; background-color: var(--desktop-field); }
.form-control:focus,.form-select:focus { border-color: var(--poi-primary); box-shadow: 0 0 0 1px var(--poi-primary); }
.form-control-sm,.form-select-sm { min-height: 28px; padding: .18rem .38rem; border-radius: 2px; font-size: .8rem; }
.btn { min-height: 31px; border-radius: 2px; padding: .28rem .62rem; font-size: .82rem; font-weight: 600; }
.btn-sm { min-height: 26px; padding: .14rem .42rem; font-size: .76rem; }
.btn-lg { border-radius: 2px; }
.modal-content { border: 1px solid #7d8792; border-radius: 3px; box-shadow: 3px 4px 14px rgba(0,0,0,.28); }
.modal-header { min-height: 38px; padding: 7px 10px; background: #e6e9ed; border-bottom-color: #aeb7c2; }
.modal-title { font-size: .95rem; font-weight: 700; }
.modal-body { padding: 11px; }
.modal-footer { padding: 7px 10px; background: #f2f3f4; border-top-color: #aeb7c2; }
.alert { border-radius: 2px; padding: 8px 10px; font-size: .84rem; }
.table { margin-bottom: 0; font-size: .82rem; }
.table > :not(caption) > * > * { padding: .33rem .42rem; border-color: #c8ced5; }
.table thead th { background: #e5e8eb; color: #313a45; font-size: .7rem; letter-spacing: .025em; border-bottom: 1px solid #9fa8b2; }
.table-hover > tbody > tr:hover > * { background: var(--poi-selection); }
.shortcut-hint { font-size: .69rem; }
.shortcut-hint kbd,.desktop-command-bar kbd { border-radius: 2px; padding: 1px 4px; background: #f7f7f7; border: 1px solid #9aa3ad; color: #343a40; box-shadow: inset 0 -1px 0 #d2d6da; font-family: "Segoe UI",sans-serif; font-size: .66rem; }
.lookup-menu { border-radius: 2px !important; border-color: #7f8b97 !important; box-shadow: 2px 3px 9px rgba(0,0,0,.18) !important; }
.lookup-option { border-radius: 0 !important; }

.desktop-window { background: #f8f9fa; border: 1px solid var(--desktop-border-dark); border-radius: 2px; box-shadow: 1px 1px 2px rgba(0,0,0,.08); overflow: visible; }
.desktop-window-title { min-height: 29px; padding: 5px 8px; display: flex; align-items: center; justify-content: space-between; gap: 8px; background: linear-gradient(#eef0f2,#dfe3e7); border-bottom: 1px solid var(--desktop-border); font-weight: 700; color: #25323d; font-size: .82rem; }
details.desktop-window > summary.desktop-window-title { cursor: pointer; list-style-position: inside; }
.desktop-window-title small { font-size: .68rem; color: #65717e; font-weight: 500; }
.desktop-form-strip { display: flex; align-items: end; gap: 8px; padding: 8px; background: #f4f5f6; border-bottom: 1px solid #c3c9cf; flex-wrap: wrap; }
.desktop-form-strip > div:not(.flex-grow-1) { min-width: 150px; }
.desktop-form-strip .form-control,.desktop-form-strip .form-select { min-width: 135px; }
.desktop-grid-wrap { overflow: auto; max-height: 58vh; background: #fff; border-bottom: 1px solid var(--desktop-border); }
.desktop-entry-grid { min-width: 980px; }
.desktop-entry-grid thead { position: sticky; top: 0; z-index: 3; }
.desktop-entry-grid td { background: #fff; }
.desktop-entry-grid .form-control,.desktop-entry-grid .form-select { border-color: transparent; border-bottom-color: #bbc2c9; background: transparent; box-shadow: none; min-height: 27px; }
.desktop-entry-grid .form-control:focus,.desktop-entry-grid .form-select:focus { background: var(--poi-accent-soft); border: 1px solid var(--poi-primary); box-shadow: inset 0 0 0 1px var(--poi-primary); }
.desktop-entry-grid .lookup-menu { min-width: 330px; }
.desktop-command-bar { min-height: 40px; display: flex; align-items: center; gap: 8px; padding: 6px 8px; background: #e9ecef; }
.desktop-info-line,.desktop-warning-line,.desktop-subnote { padding: 7px 9px; font-size: .78rem; border-top: 1px solid #c7cdd3; background: #f8f9fa; }
.desktop-warning-line { background: #fff4cc; color: #5c4a00; border-color: #d8c36d; }
.desktop-subnote { color: #6b747d; }
.desktop-count { display: inline-block; min-width: 31px; padding: 1px 4px; border: 1px solid #b8c0c8; background: #f3f4f5; font-size: .69rem; text-align: center; }
.desktop-master-split { display: grid; grid-template-columns: minmax(280px,32%) 1fr; gap: 9px; align-items: start; }

.process-master-full-layout { display: grid; grid-template-columns: 1fr; gap: 9px; align-items: start; }
.process-master-full-layout .master-detail-pane { min-width: 0; }
.process-master-full-layout .process-list-full .desktop-scroll-pane { max-height: 300px; }
.process-list-title { gap: 12px; flex-wrap: wrap; }
.process-list-tools { margin-left: auto; display: flex; align-items: center; justify-content: flex-end; gap: 10px; min-width: 0; }
.process-master-search { width: min(360px, 40vw); }
.process-master-search .input-group-text { background: #fff; }
.process-master-table { table-layout: fixed; width: 100%; }
.process-master-table col.process-col-code { width: 14%; }
.process-master-table col.process-col-name { width: 31%; }
.process-master-table col.process-col-version { width: 25%; }
.process-master-table col.process-col-io { width: 12%; }
.process-master-table col.process-col-source { width: 18%; }
.process-master-table th,
.process-master-table td { vertical-align: middle; }
.process-master-table th { white-space: nowrap; }
.process-master-table td { overflow: hidden; text-overflow: ellipsis; }
.process-master-table .process-name-cell { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.process-master-table tbody tr[data-process-row] { cursor: pointer; }
@media (max-width: 991.98px) {
    .process-master-full-layout .process-list-full .desktop-scroll-pane { max-height: 280px; }
    .process-master-search { width: min(320px, 52vw); }
}
.desktop-scroll-pane { max-height: calc(100vh - 170px); overflow: auto; }
.master-detail-pane { min-width: 0; }
.empty-master { min-height: 250px; display: grid; place-items: center; }
.empty-master > div { display: grid; justify-items: center; gap: 5px; color: #66717c; }
.empty-master i { font-size: 2rem; }
.desktop-inline-row { display: flex; gap: 6px; align-items: center; }
.compact-lookup .form-control { padding-right: 50px; }
.production-row .unit-cell { display: block; min-width: 55px; font-weight: 600; color: #48535f; }
.production-row .recipe-effect { font-size: .74rem; }

@media (max-width: 991.98px) {
    .desktop-master-split { grid-template-columns: 1fr; }
    .desktop-scroll-pane { max-height: 320px; }
    .app-footer::after { display: none; }
}
@media (max-width: 767.98px) {
    .app-content { padding: 9px 8px 34px; }
    .desktop-toolbar { justify-content: flex-start; }
    .desktop-form-strip { display: grid; grid-template-columns: 1fr; }
    .desktop-form-strip > div,.desktop-form-strip .form-control,.desktop-form-strip .form-select { min-width: 0; width: 100%; }
}

/* ================================================================
   v0.12.0 Desktop ERP pass - flatten older web-card treatments too
   ================================================================ */
.home-primary-action,
.home-secondary-action,
.frequency-guide-card,
.setup-frequency-strip>div,
.future-setup-block,
.poster-banner-spec-card,
.poster-banner-card,
.poster-banner-upload-preview,
.poster-banner-grid .empty-state,
.costing-metric,
.form-section,
.cost-panel,
.costing-result-box,
.import-help,
.permission-group,
.retailer-admin-tally {
    border-radius: 3px !important;
    box-shadow: none !important;
}
.home-primary-action {
    min-height: 128px;
    padding: 1rem 1.15rem;
    background: var(--poi-primary);
    border: 1px solid var(--poi-primary-dark);
    transition: background-color .12s ease;
}
.home-primary-action:hover {
    transform: none;
    background: var(--poi-primary-hover);
    box-shadow: none;
}
.home-primary-action strong { font-size: 1.45rem; }
.home-primary-action em { font-size: .86rem; }
.home-action-icon,
.home-secondary-action>i:first-child,
.setup-group-icon,
.poster-banner-spec-icon,
.costing-help-icon {
    border-radius: 2px !important;
}
.home-action-icon {
    width: 54px;
    height: 54px;
    flex: 0 0 54px;
    font-size: 1.35rem;
    background: rgba(255,255,255,.12);
    border: 1px solid rgba(255,255,255,.22);
}
.home-action-arrow { font-size: 1.25rem; }
.home-secondary-action {
    min-height: 54px;
    padding: .55rem .75rem;
    transition: background-color .12s ease, border-color .12s ease;
}
.home-secondary-action:hover {
    transform: none;
    background: #f3f7f9;
}
.home-secondary-action>i:first-child {
    width: 32px;
    height: 32px;
    font-size: 1rem;
}
.frequency-guide-card {
    min-height: 112px;
    padding: .7rem .8rem;
}
.frequency-guide-card span {
    border-radius: 2px !important;
    padding: .18rem .42rem;
}
.setup-frequency-strip { gap: .45rem; }
.setup-frequency-strip>div {
    padding: .55rem .7rem;
    background: #f8fafb;
}
.frequency-dot {
    width: 9px;
    height: 9px;
    border-radius: 0;
    box-shadow: none;
}
.setup-group-icon {
    width: 36px;
    height: 36px;
    flex-basis: 36px;
    font-size: 1rem;
}
.future-setup-block {
    min-height: 112px;
    padding: .7rem .8rem;
}
.quick-price-column,
.quick-price-column:first-child,
.quick-price-column:last-child {
    border-radius: 0 !important;
    box-shadow: none !important;
}
.quick-price-column-head {
    background: #e8f0f4;
}
.poster-banner-card-body { padding: .7rem; }
.poster-banner-spec-card { padding: .7rem; }
.poster-banner-spec-icon {
    width: 34px;
    height: 34px;
    font-size: 1rem;
}
.cost-panel,
.form-section { background: #f8fafb; }
.costing-result-box { padding: .75rem .9rem; background: #eef4f7; }
.costing-metric { padding: .65rem .75rem; background: #f4f7f8; }
.import-help { padding: .65rem .75rem; }
.permission-group-title { padding: .45rem .65rem; }
.retailer-admin-tally {
    margin: 8px 0 2px;
    padding: 8px 12px;
    background: #e5eef2;
}
.dataTables_wrapper .dt-processing {
    border-radius: 2px !important;
    box-shadow: none !important;
}

/* Make dense transaction/master tables read like a desktop grid. */
.desktop-entry-grid .form-control,
.desktop-entry-grid .form-select,
.desktop-entry-grid .lookup-input,
.table .form-control,
.table .form-select {
    border-radius: 0;
}
.desktop-entry-grid tbody td { padding: 0 !important; }
.desktop-entry-grid tbody td > .form-control,
.desktop-entry-grid tbody td > .form-select,
.desktop-entry-grid tbody td > .lookup-wrap {
    min-height: 31px;
}
.desktop-entry-grid tbody td > .lookup-wrap .form-control { border-width: 0 1px 0 0; }
.desktop-entry-grid tbody td > .form-control,
.desktop-entry-grid tbody td > .form-select {
    border-width: 0 1px 0 0;
}
.desktop-entry-grid tbody tr:last-child td { border-bottom-width: 1px; }

@media(max-width:575.98px){
    .home-primary-action{min-height:112px;padding:.85rem;}
    .home-action-icon{width:42px;height:42px;flex-basis:42px;border-radius:2px;font-size:1.15rem;}
    .home-primary-action strong{font-size:1.2rem;}
}

/* v0.12.1 - Desktop text-box selectors + floating lookup menus */
.lookup-floating-menu {
    position: fixed !important;
    z-index: 4000 !important;
    left: auto;
    right: auto;
    top: auto;
    padding: 3px !important;
    border: 1px solid #6f7a85 !important;
    border-radius: 2px !important;
    background: #fff;
    box-shadow: 3px 4px 10px rgba(0,0,0,.22) !important;
}
.lookup-floating-menu .lookup-option {
    min-height: 27px;
    padding: 4px 7px;
    border-radius: 0 !important;
    font-size: .8rem;
}
.lookup-floating-menu .lookup-option.active,
.lookup-floating-menu .lookup-option:hover {
    background: #d9ebf7;
    outline: 1px solid #93b9cf;
}
.lookup-floating-menu .lookup-empty {
    padding: 7px 8px;
    text-align: left;
    font-size: .78rem;
}
.desktop-native-select {
    display: none !important;
}
.desktop-select-lookup {
    width: 100%;
    min-width: 0;
}
.desktop-select-lookup .form-control {
    width: 100%;
    min-width: 0;
    cursor: text;
}
.desktop-select-lookup .lookup-icon {
    color: #51606e;
}
.desktop-select-lookup-sm .form-control {
    min-height: 28px;
}
.desktop-entry-grid .lookup-field.open,
.desktop-form-strip .lookup-field.open {
    z-index: 10;
}

/* v0.16.2 global navigation / lookup / loader stabilization */
.sidebar-nav { overscroll-behavior: contain; scrollbar-gutter: stable; }
.nav-group { margin: 2px 0; }
.nav-group-toggle { width:100%; border:0; background:transparent; color:rgba(235,245,250,.90); display:flex; align-items:center; gap:9px; padding:8px 9px; font:inherit; font-size:.86rem; font-weight:700; text-align:left; border-radius:2px; }
.nav-group-toggle:hover { background:var(--poi-sidebar-hover); color:#fff; }
.nav-group-toggle > i:first-child { width:21px; text-align:center; }
.nav-group-toggle span { flex:1; }
.nav-group-chevron { width:auto!important; font-size:.75rem!important; transition:transform .14s ease; }
.nav-group.open .nav-group-chevron { transform:rotate(180deg); }
.nav-group-items { display:none; padding:1px 0 4px 17px; border-left:1px solid rgba(var(--poi-accent-rgb),.26); margin-left:18px; }
.nav-group.open .nav-group-items { display:block; }
.nav-group-items .nav-link { padding:6px 7px; font-size:.80rem; gap:7px; }
.nav-group-items .nav-link i { width:18px; font-size:.88rem; }
body.sidebar-collapsed .nav-group-toggle { justify-content:center; padding-left:6px; padding-right:6px; }
body.sidebar-collapsed .nav-group-toggle span, body.sidebar-collapsed .nav-group-chevron, body.sidebar-collapsed .nav-group-items { display:none!important; }
body.sidebar-collapsed .nav-group-toggle > i:first-child { width:auto; font-size:1.1rem; }

.app-topbar .topbar-back { min-width:34px; width:34px; height:32px; display:inline-flex; align-items:center; justify-content:center; padding:0; }
.topbar-page-meta { min-width:0; }
.topbar-title { white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.topbar-actions { display:flex; align-items:center; gap:6px; margin-left:auto; }
.topbar-action-btn { min-height:31px; white-space:nowrap; }
.topbar-breadcrumb { font-size:.70rem; color:#66717c; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; max-width:540px; }

.navigation-loader-bar { position:fixed; left:var(--sidebar-width); right:0; top:0; height:3px; z-index:2200; overflow:hidden; pointer-events:none; opacity:0; transition:opacity .1s ease; }
.navigation-loader-bar.show { opacity:1; }
.navigation-loader-bar::before { content:""; display:block; height:100%; width:35%; background:var(--poi-primary); transform:translateX(-120%); animation:none; }
.navigation-loader-bar.show::before { animation:parimal-nav-load 1.05s ease-in-out infinite; }
@keyframes parimal-nav-load { 0%{transform:translateX(-120%)} 60%{transform:translateX(210%)} 100%{transform:translateX(320%)} }
body.sidebar-collapsed .navigation-loader-bar { left:var(--sidebar-collapsed-width); }
@media(max-width:991.98px){.navigation-loader-bar{left:0}.topbar-breadcrumb{max-width:250px}}

.app-footer::after { content:none !important; display:none !important; }
.app-footer { justify-content:flex-start; }

.auto-code-field { background:#eef1f4!important; color:#53606c!important; cursor:not-allowed; font-family:ui-monospace,SFMono-Regular,Consolas,monospace; }
.auto-code-note { display:block; color:#6b7280; font-size:.69rem; margin-top:2px; }
.lookup-field .form-control::placeholder { color:#7c8792; opacity:1; }
.lookup-field[data-has-selection="1"] .form-control::placeholder { color:#315d73; font-weight:600; }
.lookup-field[data-lookup-required="1"]::after { content:""; }

.shortcuts-grid { display:grid; grid-template-columns:auto 1fr; gap:7px 14px; align-items:center; font-size:.84rem; }
.shortcuts-grid kbd { min-width:78px; text-align:center; border-radius:2px; background:#f7f7f7; color:#2f3943; border:1px solid #a7b0b9; box-shadow:inset 0 -1px 0 #d3d7db; padding:3px 6px; }

.excel-import-preview { max-height:52vh; overflow:auto; border:1px solid #c7cdd3; background:#fff; }
.excel-import-preview table { font-size:.76rem; }
.excel-change-list { margin:0; padding-left:17px; }
.excel-change-list li { margin:1px 0; }

@media(max-width:767.98px){
  .topbar-actions .topbar-action-label{display:none}
  .topbar-actions{gap:3px}
  .nav-group-items{padding-left:10px;margin-left:12px}
}
/* v0.16.2: keyboard help lives in the top-bar Shortcuts menu; do not consume work-area space with repeated hints. */
.shortcut-hint,.shortcut-key{display:none!important;}
.topbar-nav-search{position:relative;min-width:190px;max-width:280px;flex:0 1 260px}.topbar-nav-search>i{position:absolute;left:10px;top:50%;transform:translateY(-50%);color:#7a8392;z-index:2}.topbar-nav-search input{width:100%;height:36px;border:1px solid #d5dbe5;border-radius:6px;background:#fff;padding:6px 10px 6px 32px;font-size:.84rem;outline:none}.topbar-nav-search input:focus{border-color:var(--poi-primary-border);box-shadow:0 0 0 2px var(--poi-focus-soft)}.topbar-nav-search-menu{display:none;position:absolute;z-index:1085;top:calc(100% + 5px);left:0;right:0;min-width:270px;max-height:330px;overflow:auto;background:#fff;border:1px solid #ccd5df;border-radius:7px;box-shadow:0 10px 28px rgba(0,0,0,.14);padding:5px}.topbar-nav-search.open .topbar-nav-search-menu{display:block}.topbar-nav-search-option{display:block;width:100%;border:0;background:transparent;text-align:left;padding:7px 9px;border-radius:4px;font-size:.82rem;color:#263442}.topbar-nav-search-option small{display:block;color:#7b8490;font-size:.7rem}.topbar-nav-search-option.active,.topbar-nav-search-option:hover{background:var(--poi-primary-soft);color:var(--poi-primary-dark)}

/* v0.17.0 Dispatch & Billing compact desktop grid */
.billing-grid{min-width:1480px}
.billing-grid th{white-space:nowrap;font-size:.78rem}
.billing-grid td{vertical-align:top;min-width:92px}
.billing-grid td:nth-child(1){min-width:220px}
.billing-grid td:nth-child(4),.billing-grid td:nth-child(6){min-width:180px}
.billing-grid .form-control,.billing-grid .form-select{min-width:86px}
.billing-grid .lookup-wrap{min-width:170px}
.billing-stock-hint,.billing-contract-hint{font-size:.72rem;line-height:1.2;color:var(--bs-secondary-color)}

/* ================================================================
   v0.17.6 Native Desktop Mini Masters
   One plain HTML table, one scroll container, no DataTables rendering.
   Header/body alignment is therefore browser-native and deterministic.
   ================================================================ */
.mini-master-window{overflow:hidden}
.mini-master-filterbar{display:grid;align-items:end;gap:7px;padding:7px 8px;background:#eef0f2;border-bottom:1px solid #b9c1ca}
.mini-product-toolbar{grid-template-columns:minmax(190px,1.05fr) minmax(220px,1.25fr) minmax(165px,.9fr) minmax(165px,.9fr) 105px 76px}
.mini-subcategory-toolbar{grid-template-columns:minmax(210px,1.05fr) minmax(220px,1fr) minmax(260px,1.3fr) 76px}
.mini-master-filterbar>div{min-width:0}
.mini-master-filterbar .form-label{display:block;margin:0 0 3px;font-size:.71rem;line-height:1.1;color:#2f3944;white-space:nowrap}
.mini-master-filterbar .form-control,.mini-master-filterbar .form-select{width:100%;min-width:0;height:30px;min-height:30px;font-size:.79rem}
.mini-filter-rows .form-select{padding-left:7px;padding-right:24px}
.mini-search-box{position:relative}
.mini-search-box>i{position:absolute;left:9px;top:50%;transform:translateY(-50%);z-index:2;color:#687482;font-size:.78rem;pointer-events:none}
.mini-search-box .form-control{padding-left:29px}

.mini-master-scroll{position:relative;overflow:auto;max-height:calc(100vh - 255px);min-height:350px;background:#fff;border-bottom:1px solid var(--desktop-border);isolation:isolate}
.mini-master-grid{table-layout:fixed!important;border-collapse:separate!important;border-spacing:0!important;margin:0!important;font-size:.75rem;background:#fff}
.mini-master-grid col{min-width:0}
.mini-master-grid th,.mini-master-grid td{box-sizing:border-box;border-right:1px solid #c6ccd3;border-bottom:1px solid #cfd4da;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;vertical-align:middle}
.mini-master-grid thead th{position:sticky;top:0;z-index:30;height:29px;padding:5px 7px!important;background:#dfe3e7!important;border-top:0;border-bottom:1px solid #919ca8;color:#2d3742;font-size:.69rem;font-weight:700;letter-spacing:.015em;text-align:left;text-transform:uppercase}
.mini-master-grid thead th.text-center,.mini-master-grid thead th.mini-row-no{text-align:center}
.mini-master-grid tbody td{height:31px;padding:1px 4px!important;background:#fff}
.mini-master-grid tbody tr:hover td{background:#f7fafc}
.mini-master-grid .mini-row-no{width:38px;min-width:38px;max-width:38px;text-align:center;color:#65717d;background:#f0f1f2!important}
/* Pure horizontal freeze: body cells never stick vertically. Header always has higher z-index. */
.mini-master-grid tbody .mini-row-no{position:sticky;left:0;z-index:6}
.mini-master-grid tbody .mini-sticky-code{position:sticky;left:38px;z-index:6;background:#f7f8f9!important}
.mini-master-grid tbody .mini-sticky-name{position:sticky;left:138px;z-index:5;background:#fff!important;border-right:2px solid #77838f}
.mini-master-grid thead .mini-row-no{left:0;z-index:43}
.mini-master-grid thead .mini-sticky-code{left:38px;z-index:42;border-right:1px solid #8995a1}
.mini-master-grid thead .mini-sticky-name{left:138px;z-index:41;border-right:2px solid #77838f}
.mini-master-grid .master-code{display:inline-flex;max-width:100%;overflow:hidden;text-overflow:ellipsis;vertical-align:middle}
.mini-master-grid .form-control,.mini-master-grid .form-select,.mini-master-grid select.form-select[data-native-select="1"]{display:block!important;position:static!important;opacity:1!important;width:100%!important;min-width:0!important;max-width:100%!important;height:27px;min-height:27px;border:1px solid transparent;border-radius:0;padding:2px 5px;background:transparent;font-size:.75rem;box-shadow:none}
.mini-master-grid select.form-select[data-native-select="1"]{padding-right:24px}
.mini-master-grid .form-control:hover,.mini-master-grid .form-select:hover{border-color:#b4bcc5;background:#fafbfc}
.mini-master-grid .form-control:focus,.mini-master-grid .form-select:focus{position:relative!important;z-index:2;border-color:var(--poi-primary);background:var(--poi-accent-soft);box-shadow:inset 0 0 0 1px var(--poi-primary);outline:0}
.mini-master-grid input[type=checkbox]{width:1rem;height:1rem;cursor:pointer}
.mini-master-grid .desktop-select-lookup{display:none!important}
.mini-readonly{display:inline-flex;min-height:25px;max-width:100%;align-items:center;justify-content:center;padding:2px 6px;background:#f2f4f6;border:1px solid #d1d6dc;color:#3f4a55;font-variant-numeric:tabular-nums;overflow:hidden;text-overflow:ellipsis}
.mini-readonly small{display:block;margin-left:5px;color:#75808b;font-size:.62rem;overflow:hidden;text-overflow:ellipsis}
.mini-grid-message{height:80px!important;text-align:center!important;color:#66717d!important;background:#fff!important;font-size:.78rem!important}
.mini-row-dirty>td{background:#fffdf1!important}
.mini-row-dirty>.mini-row-no,.mini-row-dirty>.mini-sticky-code,.mini-row-dirty>.mini-sticky-name{background:#fff9d9!important}
.mini-cell-dirty{background:#fff1b8!important}
.mini-cell-dirty .form-control,.mini-cell-dirty .form-select{background:#fff8dc!important}
.mini-master-commandbar{min-height:37px;padding:4px 7px;display:flex;align-items:center;gap:7px;flex-wrap:nowrap}
.mini-master-help{font-size:.7rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}
.mini-master-pager{display:flex;align-items:center;gap:3px;white-space:nowrap;flex:0 0 auto}
.mini-master-pager .btn{width:27px;min-width:27px;min-height:25px;height:25px;padding:0;display:inline-grid;place-items:center;border-color:#b9c1ca;background:#f7f8f9}
.mini-master-pager .btn:disabled{opacity:.45}
.mini-page-info{min-width:74px;text-align:right;font-size:.68rem;color:#596572;margin-right:3px}
.mini-page-number{min-width:75px;padding:2px 5px}

@media(max-width:1199.98px){.mini-product-toolbar{grid-template-columns:repeat(3,minmax(180px,1fr))}.mini-subcategory-toolbar{grid-template-columns:repeat(2,minmax(220px,1fr))}.mini-filter-rows{max-width:95px}.mini-master-scroll{max-height:62vh}}
@media(max-width:991.98px){.mini-master-grid tbody .mini-row-no,.mini-master-grid tbody .mini-sticky-code,.mini-master-grid tbody .mini-sticky-name,.mini-master-grid thead .mini-row-no,.mini-master-grid thead .mini-sticky-code,.mini-master-grid thead .mini-sticky-name{position:static;left:auto!important}.mini-master-grid tbody .mini-sticky-name,.mini-master-grid thead .mini-sticky-name{border-right:1px solid #c6ccd3}}
@media(max-width:767.98px){.mini-product-toolbar,.mini-subcategory-toolbar{grid-template-columns:1fr}.mini-filter-rows{max-width:none}.mini-master-commandbar{flex-wrap:wrap}.mini-master-help{white-space:normal;width:100%}.mini-master-pager{margin-left:0!important;width:100%;justify-content:flex-end}}


/* ================================================================
   v0.17.8 Brand Theme Consistency + Global Footer Credit
   Keep brand surfaces on the central green/gold theme variables.
   Semantic danger/warning/success/info utilities remain independent.
   ================================================================ */
.app-footer{display:flex;align-items:center;justify-content:space-between;gap:14px;flex-wrap:wrap;border-top:1px solid #e2e5e1;background:#f7f7f4;padding:10px 18px;color:var(--poi-muted)}
.app-footer-main{min-width:0}
.app-footer-credit{margin-left:auto;white-space:nowrap;color:#747976}
.app-footer-credit a{color:var(--poi-primary-dark);font-weight:750;text-decoration:none}
.app-footer-credit a:hover{color:var(--poi-accent-dark);text-decoration:underline}
.home-primary-action{background:var(--poi-primary)!important;border-color:var(--poi-primary-dark)!important}
.home-primary-action:hover{background:var(--poi-primary-hover)!important}
.bg-primary,.text-bg-primary{--bs-bg-opacity:1;background-color:rgba(var(--poi-primary-rgb),var(--bs-bg-opacity))!important}
.badge.text-bg-primary{color:#fff!important}
.progress-bar{background-color:var(--poi-primary)}
.list-group-item-primary{color:var(--poi-primary-dark);background:var(--poi-primary-soft);border-color:var(--poi-primary-border)}
.alert-primary{--bs-alert-color:var(--poi-primary-dark);--bs-alert-bg:var(--poi-primary-soft);--bs-alert-border-color:var(--poi-primary-border)}
@media(max-width:575.98px){.app-footer{align-items:flex-start;flex-direction:column}.app-footer-credit{margin-left:0;white-space:normal}}

/* v0.19.3 — protected accounting masters use chip-only emphasis; table rows stay standard */
.protected-master-badge {
    color: #6b4700;
    background: #f7d77c;
    border: 1px solid #d8ae3f;
    font-weight: 700;
}

/* ================================================================
   v0.19.20 White / Grey ERP Theme + Edible Oil Formula Presentation
   Neutral visual system inspired by the client's clean logistics UI.
   Semantic success / warning / danger colours remain available only
   where they communicate status; business navigation stays neutral.
   ================================================================ */
:root {
    --poi-primary: #4b5563;
    --poi-primary-dark: #20242a;
    --poi-primary-soft: #f1f3f5;
    --poi-primary-border: #cfd4da;
    --poi-primary-rgb: 75, 85, 99;
    --poi-primary-hover: #343a40;
    --poi-primary-light: #6c757d;
    --poi-primary-hover-rgb: 52, 58, 64;
    --poi-accent: #7b838c;
    --poi-accent-dark: #4f565e;
    --poi-accent-soft: #f5f6f7;
    --poi-accent-rgb: 123, 131, 140;
    --poi-bg: #f4f5f6;
    --poi-text: #25282c;
    --poi-muted: #70767d;
    --poi-sidebar: #f7f8f9;
    --poi-sidebar-mid: #f4f5f6;
    --poi-sidebar-dark: #eef0f2;
    --poi-sidebar-hover: #eceff1;
    --poi-sidebar-bg: linear-gradient(180deg, #fafafa 0%, #f4f5f6 58%, #eef0f2 100%);
    --poi-selection: #f0f2f4;
    --poi-focus-soft: rgba(75, 85, 99, .13);
}
body { background:#f5f6f7; color:#25282c; }
.app-sidebar {
    background:var(--poi-sidebar-bg);
    color:#343a40;
    border-right:1px solid #d6d9dd;
    box-shadow:3px 0 14px rgba(25,29,33,.055);
}
.brand { color:#2f3337; background:#fff; border-bottom:1px solid #dfe2e5; }
.brand img { filter:none; }
.brand small { color:#7a8086; opacity:1; }
.sidebar-nav { background:transparent; }
.nav-section { color:#8b9197; }
.sidebar-nav .nav-link { color:#52585f; border:1px solid transparent; border-radius:5px; }
.sidebar-nav .nav-link:hover { color:#20242a; background:#eceff1; transform:none; }
.sidebar-nav .nav-link.active {
    color:#20242a;
    background:#e4e7ea;
    border-color:#d4d8dc;
    box-shadow:inset 3px 0 0 #4b5563;
}
.nav-group-toggle { color:#42484e; border:1px solid transparent; border-radius:5px; }
.nav-group-toggle:hover { color:#20242a; background:#eceff1; }
.nav-group.open > .nav-group-toggle { color:#20242a; background:#f0f2f4; }
.nav-group-items { border-left-color:#d5d9dd; }
.sidebar-footer { color:#737a81; border-top:1px solid #d9dde1; background:rgba(255,255,255,.48); }
body.sidebar-collapsed .nav-section::after { color:#8c9298; }
.app-topbar {
    background:rgba(255,255,255,.97);
    border-bottom:1px solid #dfe2e5;
    box-shadow:0 1px 5px rgba(25,29,33,.035);
}
.topbar-title, .page-heading h2 { color:#24282c; }
.topbar-breadcrumb { color:#7b8187; }
.user-avatar { background:#4b5563; color:#fff; }
.app-content { background:#f6f7f8; }
.app-footer { background:#f3f4f5; border-top-color:#dfe2e5; color:#777d83; }
.content-card {
    border:1px solid #dfe2e5;
    border-radius:8px;
    box-shadow:0 2px 8px rgba(30,34,38,.035);
}
.content-card .card-header { border-bottom-color:#e4e7ea; background:#fafafa; border-radius:8px 8px 0 0; }
.form-control,.form-select,.input-group-text {
    border-color:#cfd4da;
    border-radius:5px;
}
.form-control:focus,.form-select:focus {
    border-color:#8f969d;
    box-shadow:0 0 0 .18rem rgba(75,85,99,.10);
}
.btn { border-radius:5px; }
.btn-primary { --bs-btn-bg:#4b5563;--bs-btn-border-color:#4b5563;--bs-btn-hover-bg:#343a40;--bs-btn-hover-border-color:#343a40;--bs-btn-active-bg:#20242a;--bs-btn-active-border-color:#20242a; }
.btn-outline-primary { --bs-btn-color:#4b5563;--bs-btn-border-color:#9da4ab;--bs-btn-hover-bg:#4b5563;--bs-btn-hover-border-color:#4b5563; }
.btn-light { --bs-btn-bg:#f8f9fa;--bs-btn-border-color:#d6dade;--bs-btn-hover-bg:#eceff1;--bs-btn-hover-border-color:#c8cdd2; }
.table thead th { background:#eceff1; color:#555c63; border-bottom-color:#c9ced3; }
.table-hover>tbody>tr:hover>* { --bs-table-bg-state:#f6f7f8; }
.master-code { color:#343a40; background:#f0f2f4; border-color:#d5d9dd; }
.lookup-option:hover,.lookup-option.active,.topbar-nav-search-option.active,.topbar-nav-search-option:hover { background:#eceff1; color:#20242a; }
.navigation-loader-bar::before { background:#4b5563; }
.modal-content { border:1px solid #d8dde1; border-radius:9px; box-shadow:0 18px 55px rgba(20,24,28,.18); }
.modal-header,.modal-footer { background:#fafafa; }
.alert-info { --bs-alert-color:#3f474e;--bs-alert-bg:#f0f3f5;--bs-alert-border-color:#d5dce1; }
.alert-primary { --bs-alert-color:#343a40;--bs-alert-bg:#f0f2f4;--bs-alert-border-color:#d2d7dc; }
.progress-bar { background:#59636d; }
.quick-price-column {
    border-color:#d8dde1;
    background:#fff;
    box-shadow:none;
}
.quick-price-column-head {
    background:#f0f2f4;
    border-bottom-color:#d8dde1;
}
.quick-price-column-head h3 { color:#262b30; }
.quick-rate-entry { background:#fafafa; border-bottom-color:#e1e4e7; }
.quick-rate-entry label { color:#50575e; }
.quick-price-shell #quickPriceContent { background:#f7f8f9; }
.quick-price-tabs-wrap { background:#fff; }
.nav-tabs .nav-link { color:#697077; }
.nav-tabs .nav-link.active { color:#20242a; font-weight:700; background:#fff; border-color:#dfe2e5 #dfe2e5 #fff; }
.margin-worksheet .margin-category td { background:#eceff1; }
.margin-worksheet .margin-subcategory td { background:#f7f8f9; }
.cost-panel,.costing-result-box,.rate-result,.costing-metric,.form-section { background:#fafafa; border-color:#dce0e4; }
.cost-summary-group { background:#e7eaed!important; color:#343a40!important; }
.packing-sheet th,.packing-sheet thead .sheet-row-no,.packing-sheet thead .sheet-sku,.packing-sheet thead .sheet-product { background:#e9ecef; color:#343a40; }
.worksheet-summary { background:#f6f7f8; }
.miscellaneous-sheet thead tr:nth-child(2) th { background:#eceff1; }
.login-page { background:linear-gradient(135deg,#f7f8f9 0%,#eceff1 100%); }
.login-card { border-color:#d9dde1; border-radius:10px; box-shadow:0 18px 55px rgba(29,33,37,.12); }

/* Simple edible-oil calculation story */
.quick-price-scope-note,.edible-oil-lock-note { border:1px solid #d8dde1; background:#f2f4f5; color:#3e454c; }
.oil-formula-strip {
    display:flex;
    align-items:stretch;
    gap:8px;
    padding:10px;
    overflow-x:auto;
    background:#fff;
    border:1px solid #dfe2e5;
    border-radius:8px;
    box-shadow:0 2px 8px rgba(30,34,38,.025);
}
.oil-formula-step {
    min-width:158px;
    flex:1 0 158px;
    display:flex;
    align-items:center;
    gap:9px;
    padding:10px 11px;
    border:1px solid #dfe2e5;
    border-radius:6px;
    background:#fafafa;
}
.oil-formula-step small { display:block; margin-bottom:2px; color:#7b8187; font-size:.68rem; text-transform:uppercase; letter-spacing:.045em; }
.oil-formula-step strong { display:block; color:#33383d; font-size:.78rem; line-height:1.25; }
.oil-formula-no { flex:0 0 25px; width:25px; height:25px; display:grid; place-items:center; border-radius:50%; border:1px solid #bfc5ca; background:#fff; color:#4b535a; font-size:.72rem; font-weight:800; }
.oil-formula-total { background:#f0f2f4; border-color:#cbd0d5; }
.oil-formula-final { background:#e9ecef; border-color:#bfc5ca; }
.oil-formula-symbol,.oil-formula-arrow { flex:0 0 auto; display:grid; place-items:center; min-width:18px; color:#7a8188; font-weight:800; }
.oil-formula-strip-setup { box-shadow:none; padding:0; border:0; background:transparent; }
.edible-oil-formula-card .card-header { background:#f5f6f7; }

.quick-price-value-clickable { cursor:pointer; transition:background .12s ease; }
.quick-price-value-clickable:hover { background:#f0f2f4!important; }
.quick-price-value-clickable:focus { outline:2px solid #aeb4ba; outline-offset:-2px; }
.quick-price-breakdown-link { display:block!important; margin-top:2px; color:#7a8188!important; font-size:.64rem!important; font-weight:600; }
.price-breakdown-safety { display:flex; align-items:flex-start; gap:9px; padding:9px 11px; border:1px solid #d8dde1; border-radius:6px; background:#f4f5f6; color:#4d545b; font-size:.82rem; }
.price-breakdown-safety i { margin-top:1px; }
.price-breakdown-formula { display:flex; align-items:center; justify-content:center; gap:9px; flex-wrap:wrap; padding:13px; border:1px solid #d8dde1; border-radius:7px; background:#f8f9fa; font-variant-numeric:tabular-nums; }
.price-breakdown-formula span,.price-breakdown-formula strong { padding:5px 9px; border-radius:5px; background:#fff; border:1px solid #d8dde1; }
.price-breakdown-formula strong { background:#e9ecef; border-color:#c6ccd1; }
.price-breakdown-formula b { color:#858c92; }
.price-breakdown-section-title { color:#697077; font-size:.72rem; font-weight:800; text-transform:uppercase; letter-spacing:.07em; padding:0 2px 6px; }
.price-breakdown-row { display:flex; align-items:center; justify-content:space-between; gap:16px; padding:9px 11px; border-top:1px solid #eceeef; color:inherit; text-decoration:none; }
.price-breakdown-row>div { min-width:0; }
.price-breakdown-row span { display:block; color:#343a40; font-weight:650; }
.price-breakdown-row small { display:block; color:#858b91; font-size:.72rem; margin-top:1px; }
.price-breakdown-value { display:flex; align-items:center; gap:10px; flex:0 0 auto; }
.price-breakdown-value>strong { color:#252a2f; font-variant-numeric:tabular-nums; }
.price-breakdown-value>i { color:#9aa0a6; font-size:.82rem; transition:transform .15s ease,color .15s ease; }
.price-breakdown-row-link { cursor:pointer; transition:background .15s ease,border-color .15s ease; }
.price-breakdown-row-link:hover,.price-breakdown-row-link:focus-visible { background:#f5f6f7; outline:none; }
.price-breakdown-row-link:hover .price-breakdown-value>i,.price-breakdown-row-link:focus-visible .price-breakdown-value>i { color:#343a40; transform:translateX(2px); }
.price-breakdown-row-emphasis { margin-top:3px; background:#f1f3f5; border:1px solid #d5d9dd; border-radius:6px; }
.price-breakdown-row-emphasis.price-breakdown-row-link:hover { background:#e7eaed; border-color:#bfc5ca; }
.price-breakdown-final { display:flex; align-items:center; justify-content:space-between; gap:12px; flex-wrap:wrap; margin-top:13px; padding:14px 15px; border:1px solid #bfc5ca; border-radius:7px; background:#e9ecef; color:inherit; text-decoration:none; }
.price-breakdown-final span { color:#4d545a; font-weight:700; }
.price-breakdown-final strong { margin-left:auto; color:#202428; font-size:1.35rem; font-variant-numeric:tabular-nums; }
.price-breakdown-final small { flex-basis:100%; color:#757c82; }
.price-breakdown-route { padding:16px; border:1px solid #d8dde1; border-radius:7px; background:#f8f9fa; }
.price-breakdown-route span,.price-breakdown-route small { display:block; color:#7a8188; }
.price-breakdown-route strong { display:block; margin:3px 0; color:#272c31; font-size:1.05rem; }
.price-breakdown-route-link { position:relative; display:block; color:inherit; text-decoration:none; transition:background .15s ease,border-color .15s ease; }
.price-breakdown-route-link>i { position:absolute; right:14px; top:50%; transform:translateY(-50%); color:#91979d; }
.price-breakdown-route-link:hover,.price-breakdown-route-link:focus-visible { background:#f1f3f5; border-color:#bfc5ca; outline:none; }
.price-breakdown-final-link { cursor:pointer; transition:background .15s ease,border-color .15s ease; }
.price-breakdown-final-link>i { color:#858b91; margin-left:2px; }
.price-breakdown-final-link:hover,.price-breakdown-final-link:focus-visible { background:#dfe3e6; border-color:#9fa6ac; outline:none; }
.price-breakdown-click-help { display:flex; align-items:flex-start; gap:9px; padding:9px 11px; border:1px solid #d8dde1; border-radius:6px; background:#f8f9fa; color:#596068; font-size:.8rem; }
.price-breakdown-click-help i { margin-top:1px; color:#5f666d; }
.price-breakdown-formula a { display:inline-flex; align-items:center; padding:5px 9px; border-radius:5px; background:#fff; border:1px solid #d8dde1; color:#252a2f; font-weight:600; text-decoration:none; transition:background .15s ease,border-color .15s ease; }
.price-breakdown-formula a:hover,.price-breakdown-formula a:focus-visible { background:#eef0f2; border-color:#adb5bd; outline:none; }
.price-breakdown-formula .price-breakdown-formula-total { background:#e9ecef; border-color:#c6ccd1; font-weight:750; }
.deep-link-highlight { animation:parimal-deep-link-highlight 2.2s ease-out 1; box-shadow:inset 4px 0 0 #6c757d; }
@keyframes parimal-deep-link-highlight { 0%,45%{background:#e9ecef} 100%{background:transparent} }
.return-to-calculation-btn { white-space:nowrap; }

.future-category-panel { overflow:hidden; }
.future-category-summary { list-style:none; cursor:pointer; display:flex; align-items:center; justify-content:space-between; gap:12px; }
.future-category-summary::-webkit-details-marker { display:none; }
.future-category-summary>i { transition:transform .15s ease; }
.future-category-panel[open] .future-category-summary>i { transform:rotate(180deg); }

@media(max-width:767.98px){
    .oil-formula-strip { padding:8px; gap:6px; }
    .oil-formula-step { min-width:145px; flex-basis:145px; }
    .price-breakdown-final strong { font-size:1.15rem; }
}

/* ============================================================
   v0.19.21 Navigation + Product Master simplification
   ============================================================ */
.product-master-guide{
  display:flex;align-items:flex-start;gap:12px;padding:13px 15px;border:1px solid #dfe3e7;
  border-radius:10px;background:#f7f8f9;color:#25282b;
}
.product-master-guide>i{font-size:1.1rem;margin-top:2px;color:#4d5358}
.product-master-guide div{display:flex;flex-direction:column;gap:2px}
.product-master-guide span{font-size:.82rem;color:#6b7177;line-height:1.45}
.product-master-accordion{--bs-accordion-border-color:#e1e4e7;--bs-accordion-active-bg:#f5f6f7;--bs-accordion-active-color:#202326}
.product-master-accordion .accordion-item{border-radius:9px!important;overflow:hidden;margin-bottom:10px;border:1px solid #e1e4e7}
.product-master-accordion .accordion-button{gap:12px;padding:14px 16px;background:#fff;box-shadow:none!important}
.product-master-accordion .accordion-button:not(.collapsed){background:#f6f7f8}
.product-master-accordion .accordion-button>span:last-of-type{display:flex;flex-direction:column;gap:2px;text-align:left}
.product-master-accordion .accordion-button small{font-weight:400;color:#747a80;font-size:.77rem}
.product-section-icon{width:34px;height:34px;border:1px solid #dfe3e7;border-radius:8px;background:#fff;display:inline-flex;align-items:center;justify-content:center;color:#3f454a;flex:0 0 auto}
.product-master-accordion .accordion-body{padding:18px;background:#fff}
.product-rule-note{display:flex;align-items:flex-start;gap:9px;padding:10px 12px;border:1px solid #dfe3e7;border-radius:8px;background:#f8f9fa;font-size:.82rem;color:#555b60}
.product-rule-note i{margin-top:1px;color:#41474c}
.derived-cost-strip{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;padding:12px;border:1px solid #e2e5e8;border-radius:9px;background:#f7f8f9}
.derived-cost-strip>div{min-width:0}
.derived-cost-strip small{display:block;font-weight:600;color:#5e6469;margin-bottom:5px}
.derived-cost-strip span{display:block;color:#7a8085;font-size:.72rem;margin-top:4px}
.mini-packing-basis{font-weight:600;color:#4b5156;white-space:nowrap}
@media (max-width: 991.98px){.derived-cost-strip{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width: 575.98px){.derived-cost-strip{grid-template-columns:1fr}.product-master-accordion .accordion-button small{display:none}}

/* v0.19.22 Click-through price calculation navigator */

/* v0.19.27 validated master Excel workflow */
.excel-field-picker{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:.55rem;max-height:260px;overflow:auto;padding:.15rem}.excel-field-option{display:flex;align-items:center;gap:.55rem;border:1px solid #d9dde2;border-radius:.55rem;padding:.55rem .65rem;background:#fff;cursor:pointer}.excel-field-option:hover{background:#f5f6f7}.excel-field-option .form-check-input{margin:0;flex:0 0 auto}.excel-import-preview{max-height:48vh;overflow:auto}.excel-import-preview thead th{position:sticky;top:0;background:#f5f6f7;z-index:2}.master-migration-module{border:1px solid #e0e3e6;border-radius:.65rem;padding:.75rem;background:#fff}.master-migration-module .module-meta{font-size:.78rem;color:#6c757d}.migration-stat-card{border:1px solid #e0e3e6;border-radius:.7rem;padding:1rem;background:#fff}.migration-stat-card strong{font-size:1.45rem;display:block}.migration-flow-step{display:flex;align-items:center;gap:.65rem;padding:.55rem .7rem;border:1px solid #e0e3e6;border-radius:.55rem;background:#fafafa}.migration-flow-step .step-no{width:1.65rem;height:1.65rem;border-radius:50%;display:grid;place-items:center;background:#343a40;color:#fff;font-size:.78rem;font-weight:700}


/* ================================================================
   v0.19.28 Neutral White/Grey Base + Semantic Action Colours
   Structural surfaces stay white/light-grey. Colour is reserved for
   actions, validation/status messages and destructive/success states.
   ================================================================ */
.btn-primary {
    --bs-btn-bg:#2563eb;
    --bs-btn-border-color:#2563eb;
    --bs-btn-hover-bg:#1d4ed8;
    --bs-btn-hover-border-color:#1d4ed8;
    --bs-btn-active-bg:#1e40af;
    --bs-btn-active-border-color:#1e40af;
    --bs-btn-disabled-bg:#8fb0f7;
    --bs-btn-disabled-border-color:#8fb0f7;
    --bs-btn-focus-shadow-rgb:37,99,235;
}
.btn-outline-primary {
    --bs-btn-color:#2563eb;
    --bs-btn-border-color:#7aa2f7;
    --bs-btn-hover-color:#fff;
    --bs-btn-hover-bg:#2563eb;
    --bs-btn-hover-border-color:#2563eb;
    --bs-btn-active-bg:#1d4ed8;
    --bs-btn-active-border-color:#1d4ed8;
    --bs-btn-focus-shadow-rgb:37,99,235;
}
.btn-success { --bs-btn-bg:#198754;--bs-btn-border-color:#198754;--bs-btn-hover-bg:#157347;--bs-btn-hover-border-color:#146c43;--bs-btn-active-bg:#146c43;--bs-btn-active-border-color:#13653f; }
.btn-warning { --bs-btn-color:#212529;--bs-btn-bg:#f59e0b;--bs-btn-border-color:#f59e0b;--bs-btn-hover-color:#212529;--bs-btn-hover-bg:#d98a08;--bs-btn-hover-border-color:#d98a08; }
.btn-danger { --bs-btn-bg:#dc3545;--bs-btn-border-color:#dc3545;--bs-btn-hover-bg:#bb2d3b;--bs-btn-hover-border-color:#b02a37; }
.btn-info { --bs-btn-color:#fff;--bs-btn-bg:#0284c7;--bs-btn-border-color:#0284c7;--bs-btn-hover-color:#fff;--bs-btn-hover-bg:#0369a1;--bs-btn-hover-border-color:#0369a1; }
.badge.text-bg-primary { background-color:#2563eb!important;color:#fff!important; }
.alert-primary { --bs-alert-color:#1e3a8a;--bs-alert-bg:#eff6ff;--bs-alert-border-color:#bfdbfe; }
.alert-info { --bs-alert-color:#075985;--bs-alert-bg:#f0f9ff;--bs-alert-border-color:#bae6fd; }
.alert-success { --bs-alert-color:#166534;--bs-alert-bg:#f0fdf4;--bs-alert-border-color:#bbf7d0; }
.alert-warning { --bs-alert-color:#854d0e;--bs-alert-bg:#fffbeb;--bs-alert-border-color:#fde68a; }
.alert-danger { --bs-alert-color:#991b1b;--bs-alert-bg:#fef2f2;--bs-alert-border-color:#fecaca; }
.validation-success,.status-success { color:#166534; }
.validation-warning,.status-warning { color:#9a6700; }
.validation-error,.status-danger,.status-error { color:#b42318; }

/* ================================================================
   v0.19.49 Direct transaction confirmation + compact form alignment
   Helper text must never change the vertical alignment of peer fields.
   ================================================================ */
.transaction-form-row{align-items:flex-start!important;}
.transaction-form-row>[class*="col-"]{align-self:flex-start;}
.transaction-form .form-label{margin-bottom:.25rem;min-height:1.15rem;}
.transaction-auto-summary{min-height:38px;display:flex;align-items:center;padding:.45rem .65rem;border:1px solid #dfe3e7;border-radius:.45rem;background:#f8f9fa;color:#5f666d;font-size:.78rem;line-height:1.25;overflow-wrap:anywhere;}
.compact-transaction-grid td{vertical-align:middle!important;}
.compact-transaction-grid .form-control,.compact-transaction-grid .form-select,.compact-transaction-grid .input-group-text{min-height:34px;}
.compact-transaction-grid small,.compact-transaction-grid .field-help{display:none!important;}
.compact-total-box{font-size:.84rem;}
.transaction-help-details>summary{cursor:pointer;list-style:none;user-select:none;}
.transaction-help-details>summary::-webkit-details-marker{display:none;}
.transaction-help-details>summary:after{content:"Show";margin-left:auto;font-size:.72rem;font-weight:500;color:#6c757d;}
.transaction-help-details[open]>summary:after{content:"Hide";}
.desktop-form-strip.transaction-form-row,.transaction-form .desktop-form-strip{align-items:flex-start;}
@media(max-width:767.98px){.transaction-auto-summary{min-height:auto}.compact-transaction-grid{min-width:820px}}

@media (max-width: 767.98px) {
    .process-list-tools { width: 100%; justify-content: stretch; }
    .process-master-search { width: 100%; }
    .process-list-tools > small { white-space: nowrap; }
    .process-master-table { min-width: 760px; }
}


/* ================================================================
   v0.19.113 Industrial Graphite Sidebar + Sales Workload Badges
   Dark graphite navigation with restrained industrial accents.
   Main application content stays on the neutral grey/white v0.19.20 theme.
   ================================================================ */
:root {
    --poi-sidebar: #2b3035;
    --poi-sidebar-mid: #242a2f;
    --poi-sidebar-dark: #1e2327;
    --poi-sidebar-hover: #343b41;
    --poi-sidebar-bg: linear-gradient(180deg, #2c3237 0%, #252b30 56%, #1f2428 100%);
}
.app-sidebar {
    background: var(--poi-sidebar-bg);
    color: #eef2f4;
    border-right: 1px solid #3a4249;
    box-shadow: 5px 0 18px rgba(20, 24, 28, .16);
}
.app-sidebar .brand {
    color: #f5f7f8;
    background: rgba(19, 23, 27, .34);
    border-bottom: 1px solid rgba(255,255,255,.09);
}
.app-sidebar .brand strong { color:#fff; letter-spacing:.01em; }
.app-sidebar .brand small { color:#aeb7bf; opacity:1; }
.app-sidebar .brand img { filter: drop-shadow(0 3px 7px rgba(0,0,0,.22)); }
.app-sidebar .sidebar-nav { background: transparent; }
.app-sidebar .nav-section { color:#88939c; }
.app-sidebar .sidebar-nav .nav-link {
    color:#cbd2d8;
    border:1px solid transparent;
    border-radius:5px;
}
.app-sidebar .sidebar-nav .nav-link > span:not(.nav-count-badge) { flex:1; min-width:0; }
.app-sidebar .sidebar-nav .nav-link:hover {
    color:#fff;
    background:#343b41;
    border-color:#414a52;
    transform:none;
}
.app-sidebar .sidebar-nav > .nav-link.active,
.app-sidebar .sidebar-nav .nav-link.active {
    color:#fff;
    background:#394047;
    border-color:#485159;
    box-shadow:inset 3px 0 0 #d2a64b;
}
.app-sidebar .nav-group { --nav-accent:#98a4ae; }
.app-sidebar .nav-group[data-nav-group="pricing"] { --nav-accent:#d5aa56; }
.app-sidebar .nav-group[data-nav-group="operations"] { --nav-accent:#7fa8c5; }
.app-sidebar .nav-group[data-nav-group="sales"] { --nav-accent:#67b99a; }
.app-sidebar .nav-group[data-nav-group="inventory"] { --nav-accent:#6caeb8; }
.app-sidebar .nav-group[data-nav-group="masters"] { --nav-accent:#b8a47e; }
.app-sidebar .nav-group[data-nav-group="accounts"] { --nav-accent:#9da8cf; }
.app-sidebar .nav-group[data-nav-group="communication"] { --nav-accent:#77b989; }
.app-sidebar .nav-group[data-nav-group="admin"] { --nav-accent:#a6afb7; }
.app-sidebar .nav-group-toggle {
    color:#d6dce1;
    border:1px solid transparent;
    border-radius:5px;
}
.app-sidebar .nav-group-toggle > i:first-child,
.app-sidebar .nav-group-items .nav-link > i { color:var(--nav-accent); }
.app-sidebar .nav-group-toggle:hover {
    color:#fff;
    background:#343b41;
    border-color:#414a52;
}
.app-sidebar .nav-group.open > .nav-group-toggle {
    color:#fff;
    background:#30373d;
    border-color:#3d464d;
    box-shadow:inset 3px 0 0 var(--nav-accent);
}
.app-sidebar .nav-group-items { border-left-color:rgba(255,255,255,.13); }
.app-sidebar .nav-group-items .nav-link.active { box-shadow:inset 3px 0 0 var(--nav-accent); }
.app-sidebar .sidebar-footer {
    color:#909aa2;
    border-top:1px solid rgba(255,255,255,.09);
    background:rgba(15,18,21,.25);
}
.app-sidebar .nav-count-badge {
    flex:0 0 auto!important;
    min-width:25px;
    height:20px;
    padding:0 7px;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    border-radius:10px;
    font-size:.69rem;
    line-height:1;
    font-weight:800;
    letter-spacing:.01em;
    border:1px solid rgba(255,255,255,.14);
    box-shadow:0 1px 2px rgba(0,0,0,.16);
}
.app-sidebar .nav-count-total { color:#17201d; background:#7ac3a6; border-color:#8fd2b7; }
.app-sidebar .nav-count-sauda { color:#241b08; background:#d6ad59; border-color:#e0bd75; }
.app-sidebar .nav-count-orders { color:#10202a; background:#82adc9; border-color:#9bc0d8; }
.app-sidebar .nav-count-badge.is-zero {
    color:#aeb6bd;
    background:#343b41;
    border-color:#4a535b;
    box-shadow:none;
}
body.sidebar-collapsed .app-sidebar .nav-group-toggle .nav-count-badge,
body.sidebar-collapsed .app-sidebar .nav-link .nav-count-badge { display:none!important; }
body.sidebar-collapsed .app-sidebar .nav-section::after { color:#7f8991; }


/* ================================================================
   v0.19.114 Sidebar Count Visibility + Today's Prices Visual Polish
   White workload badges with dark numerals and restrained industrial
   colour coding for the edible-oil price matrix headers.
   ================================================================ */
.app-sidebar .nav-count-badge {
    min-width:30px;
    height:24px;
    padding:0 8px;
    border-radius:12px;
    background:#ffffff!important;
    border:1px solid #cfd5da;
    font-size:.74rem;
    font-weight:900;
    box-shadow:0 1px 4px rgba(0,0,0,.22), inset 0 0 0 1px rgba(255,255,255,.8);
}
.app-sidebar .nav-count-total { color:#174b3e; border-color:#75aa98; }
.app-sidebar .nav-count-sauda { color:#5a3b08; border-color:#c8a35a; }
.app-sidebar .nav-count-orders { color:#173d56; border-color:#86aabd; }
.app-sidebar .nav-count-badge.is-zero {
    color:#353b40;
    background:#ffffff!important;
    border-color:#9ea7ae;
    opacity:1;
    box-shadow:0 1px 3px rgba(0,0,0,.18);
}
.app-sidebar .nav-group-toggle .nav-count-badge { margin-left:auto; margin-right:2px; }
.app-sidebar .nav-group-items .nav-count-badge { margin-left:8px; }

.quick-price-shell {
    border:1px solid #d4d9de;
    box-shadow:0 8px 24px rgba(32,38,44,.06);
    background:#fff;
}
.quick-price-shell #quickPriceContent {
    background:linear-gradient(180deg,#f7f8f9 0%,#f2f4f5 100%);
    padding-top:16px!important;
}
.quick-price-tabs-wrap {
    border-bottom:1px solid #e0e4e7;
    background:#fff;
}
.quick-price-tabs-wrap .nav-tabs { gap:4px; border-bottom:0; }
.quick-price-tabs-wrap .nav-link {
    border-radius:7px 7px 0 0;
    padding:.65rem .95rem;
}
.quick-price-tabs-wrap .nav-link.active {
    box-shadow:inset 0 -3px 0 #59636d;
}
.quick-price-column {
    --qp-accent:#69737b;
    --qp-accent-dark:#31383e;
    --qp-head-start:#f5f6f7;
    --qp-head-end:#e8ebed;
    --qp-soft:#f2f4f5;
    border-color:#cfd5da;
    position:relative;
    background:#fff;
}
.quick-price-column::before {
    content:"";
    position:absolute;
    top:0; left:0; right:0;
    height:4px;
    background:var(--qp-accent);
    z-index:2;
}
.quick-price-column-head {
    padding-top:15px;
    background:linear-gradient(145deg,var(--qp-head-start) 0%,var(--qp-head-end) 100%);
    border-bottom:1px solid rgba(80,88,96,.18);
}
.quick-price-column-head h3 {
    color:var(--qp-accent-dark);
    font-weight:800;
    letter-spacing:-.01em;
}
.quick-price-column-head small { color:#5f6870; font-weight:600; }
.quick-price-column-head > .master-code {
    color:var(--qp-accent-dark);
    background:#fff;
    border-color:color-mix(in srgb, var(--qp-accent) 58%, #d7dde1);
    box-shadow:0 1px 3px rgba(0,0,0,.06);
}
.quick-price-column .quick-rate-entry {
    background:linear-gradient(180deg,#ffffff 0%,var(--qp-soft) 100%);
    border-bottom-color:#dfe3e6;
}
.quick-price-column .quick-rate-entry label { color:#515a61; }
.quick-price-column .base-amount-input {
    background:#fffef1;
    border-color:#cfd5da;
}
.quick-price-column .base-amount-input:focus {
    border-color:var(--qp-accent);
    box-shadow:0 0 0 .16rem color-mix(in srgb, var(--qp-accent) 18%, transparent);
}
.quick-price-column table thead th {
    background:var(--qp-soft);
    color:#454d54;
    border-bottom-color:#d6dce0;
}
.quick-price-column table tbody tr:nth-child(even)>* { background:rgba(248,249,250,.7); }
.quick-price-column table tbody tr:hover>* { background:#f1f4f6!important; }
.quick-price-column .quick-price-value strong { color:#171b1f; font-weight:850; }

/* Edible-oil identity colours: subdued enough for an industrial ERP. */
.quick-price-column[data-subcategory-code="GN"] { --qp-accent:#a77426; --qp-accent-dark:#5f4212; --qp-head-start:#fff8e8; --qp-head-end:#f1dfb2; --qp-soft:#fffaf0; }
.quick-price-column[data-subcategory-code="CR"] { --qp-accent:#668aa4; --qp-accent-dark:#29485d; --qp-head-start:#f1f7fb; --qp-head-end:#dbe9f2; --qp-soft:#f3f8fb; }
.quick-price-column[data-subcategory-code="SF"] { --qp-accent:#b7931f; --qp-accent-dark:#66510c; --qp-head-start:#fffbe8; --qp-head-end:#f2e9af; --qp-soft:#fffbed; }
.quick-price-column[data-subcategory-code="SB"] { --qp-accent:#668b74; --qp-accent-dark:#315442; --qp-head-start:#f1f7f3; --qp-head-end:#d9e9de; --qp-soft:#f3f8f5; }
.quick-price-column[data-subcategory-code="RC"] { --qp-accent:#b7783c; --qp-accent-dark:#68421e; --qp-head-start:#fff6ed; --qp-head-end:#efddc9; --qp-soft:#fff8f2; }
.quick-price-column[data-subcategory-code="MU"] { --qp-accent:#a88422; --qp-accent-dark:#614a0c; --qp-head-start:#fff9df; --qp-head-end:#eadca6; --qp-soft:#fff9e9; }
.quick-price-column[data-subcategory-code="KO"] { --qp-accent:#7d789a; --qp-accent-dark:#47435e; --qp-head-start:#f6f4fa; --qp-head-end:#e3dfed; --qp-soft:#f7f6fa; }
.quick-price-column[data-subcategory-code="GR"] { --qp-accent:#547d96; --qp-accent-dark:#2f5064; --qp-head-start:#eef6fa; --qp-head-end:#d5e5ee; --qp-soft:#f1f7fa; }
.quick-price-column[data-subcategory-code="CP"] { --qp-accent:#8e6d4b; --qp-accent-dark:#513d29; --qp-head-start:#faf5ef; --qp-head-end:#e9dccf; --qp-soft:#fbf7f3; }
.quick-price-column[data-subcategory-code="SS"] { --qp-accent:#956f6d; --qp-accent-dark:#593e3d; --qp-head-start:#fbf3f2; --qp-head-end:#ead8d6; --qp-soft:#fcf6f5; }
.quick-price-column[data-subcategory-code="SD"] { --qp-accent:#88754e; --qp-accent-dark:#52452d; --qp-head-start:#faf7ef; --qp-head-end:#e7dec8; --qp-soft:#fbf8f1; }


/* ================================================================
   v0.19.116 Today's Prices Base-Rate Focus + Unified Edit Highlight
   One consistent editable price colour and column-to-column keyboard flow.
   ================================================================ */
.quick-price-column .quick-rate-entry:has(.base-amount-input) {
    background:linear-gradient(180deg,#fffef8 0%,#fffaf0 100%);
}
.quick-price-column .quick-rate-entry label {
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:8px;
    font-weight:800;
    color:#3a3528;
}
.quick-price-column .base-amount-edit-hint {
    display:inline-flex;
    align-items:center;
    padding:2px 7px;
    border-radius:999px;
    background:#fff;
    border:1px solid #d3a13a;
    color:#6d4b0a;
    font-size:.62rem;
    font-weight:850;
    letter-spacing:.035em;
    text-transform:uppercase;
    white-space:nowrap;
}
.quick-price-column .base-amount-group {
    border-radius:6px;
    box-shadow:0 2px 8px rgba(97,67,10,.12);
}
.quick-price-column .base-amount-group .input-group-text {
    background:#efbd4f;
    color:#35270b;
    border:2px solid #c58b18;
    border-right:0;
    font-weight:900;
    padding-left:.72rem;
    padding-right:.72rem;
}
.quick-price-column .base-amount-input {
    min-height:36px;
    background:#fff1b8!important;
    color:#17202a;
    border:2px solid #c58b18!important;
    border-left:1px solid #d6a33b!important;
    font-size:.94rem;
    font-weight:900;
    box-shadow:none!important;
}
.quick-price-column .base-amount-input:hover:not([readonly]) {
    background:#ffe99b!important;
    border-color:#ad7410!important;
}
.quick-price-column .base-amount-input:focus {
    background:#fff7d6!important;
    color:#101820;
    border-color:#9b6508!important;
    box-shadow:0 0 0 .20rem rgba(211,153,34,.28)!important;
    position:relative;
    z-index:3;
}
.quick-price-column .base-amount-input[readonly] {
    background:#f2f3f4!important;
    color:#5a6268;
    border-color:#c8cdd1!important;
    cursor:default;
}
.quick-price-column .base-amount-input[readonly] + * { opacity:.8; }

/* ================================================================
   v0.19.118 Today's Prices Gujarati Header Blue
   Keep the oil-card backgrounds unchanged while making the Gujarati
   oil name a consistent high-visibility blue for faster scanning.
   ================================================================ */
.quick-price-column-head .quick-price-gujarati-name {
    color:#0b5ed7!important;
    font-weight:700;
}

/* v0.19.120: accounting group lookups show the group first and parent hierarchy below. */
select[data-account-group-lookup="1"] + .desktop-select-lookup .lookup-option {
    flex-direction: column;
    align-items: flex-start;
    justify-content: center;
    gap: 2px;
    padding-top: 8px;
    padding-bottom: 8px;
}
select[data-account-group-lookup="1"] + .desktop-select-lookup .lookup-option > span {
    width: 100%;
    font-weight: 600;
}
select[data-account-group-lookup="1"] + .desktop-select-lookup .lookup-option > small {
    width: 100%;
    flex: none;
    font-size: .75rem;
    line-height: 1.25;
    color: #6b7280;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

/* v0.19.121 — logo-only sidebar brand */
.app-sidebar .brand.brand-logo-only {
    min-height: 88px;
    justify-content: center;
    gap: 0;
    padding: 14px 12px;
}
.app-sidebar .brand.brand-logo-only img {
    width: 108px;
    height: 56px;
    object-fit: contain;
}
@media (min-width: 992px) {
    body.sidebar-collapsed .app-sidebar .brand.brand-logo-only {
        min-height: 76px;
        padding: 10px 6px;
    }
    body.sidebar-collapsed .app-sidebar .brand.brand-logo-only img {
        width: 56px;
        height: 42px;
    }
}

/* ================================================================
   v0.19.122 Priority Purchase / Production Report
   Compact management view; calculations remain in the detail modal.
   ================================================================ */
.planning-filter-card .form-label{font-weight:700;color:#4b5563;margin-bottom:.3rem}
.planning-table-wrap{max-height:calc(100vh - 345px);min-height:340px}
.priority-planning-table{font-size:.88rem}
.priority-planning-table thead th{position:sticky;top:0;z-index:4;background:#f8fafc;white-space:nowrap;border-bottom:1px solid #dbe2ea}
.priority-planning-table td{vertical-align:middle}
.planning-sort{display:inline-flex;align-items:center;gap:.35rem;width:100%;padding:0;border:0;background:transparent;color:#334155;font:inherit;font-weight:800;text-align:left;white-space:nowrap}
.text-end .planning-sort{justify-content:flex-end;text-align:right}
.planning-sort span{font-size:.69rem;color:#7b8794;font-weight:700}
.planning-sort i{font-size:.8rem;color:#8a96a3}
.planning-category-row td{background:#eef4ff!important;color:#24436d;border-top:2px solid #d8e4f5;font-size:.86rem}
.planning-category-total td{background:#f8fafc!important;border-top:1px solid #d9e0e8;border-bottom:2px solid #d9e0e8}
.planning-detail-link{color:inherit!important;font-size:inherit;line-height:1.25}
.planning-detail-link:hover{color:var(--bs-primary)!important;text-decoration:underline!important}
.planning-detail-summary>div>div{height:100%;padding:.8rem .85rem;border:1px solid #e4e9ef;border-radius:.8rem;background:#f8fafc;display:flex;flex-direction:column;gap:.2rem}
.planning-detail-summary small{color:#64748b;font-weight:700}
.planning-detail-summary strong{font-size:1.03rem;color:#172033}
.planning-position-table th{width:25%;color:#526071;font-weight:700;background:#f8fafc}
.planning-position-table td{width:25%;font-variant-numeric:tabular-nums}
.priority-planning-table .badge{font-size:.72rem}
@media (max-width:991.98px){.planning-table-wrap{max-height:none}.priority-planning-table{min-width:1120px}.planning-position-table th,.planning-position-table td{width:auto}}


/* ================================================================
   v0.19.123 Sales Order Fulfilment / Dispatch Pending
   Party-grouped operational report with concise main rows and detail modal.
   ================================================================ */
.fulfilment-filter-card .form-label{font-weight:700;color:#4b5563;margin-bottom:.3rem}
.fulfilment-table-wrap{max-height:calc(100vh - 350px);min-height:340px}
.sales-fulfilment-table{font-size:.88rem;min-width:1180px}
.sales-fulfilment-table thead th{position:sticky;top:0;z-index:4;background:#f8fafc;white-space:nowrap;border-bottom:1px solid #dbe2ea}
.fulfilment-sort{display:inline-flex;align-items:center;gap:.35rem;width:100%;padding:0;border:0;background:transparent;color:#334155;font:inherit;font-weight:800;text-align:left;white-space:nowrap}
.text-end .fulfilment-sort{justify-content:flex-end;text-align:right}.fulfilment-sort span{font-size:.69rem;color:#7b8794}.fulfilment-sort i{font-size:.8rem;color:#8a96a3}
.fulfilment-party-row td{background:#eef6fb!important;color:#244b63;border-top:2px solid #d5e5ef;font-size:.86rem}
.fulfilment-party-total td{background:#f8fafc!important;border-top:1px solid #dce3e8;border-bottom:2px solid #dce3e8}
.fulfilment-grand-total td{background:#edf2f7!important;border-top:2px solid #cbd5df}
.fulfilment-detail-link{color:inherit!important;font-size:inherit;line-height:1.2}.fulfilment-detail-link:hover{color:var(--bs-primary)!important;text-decoration:underline!important}
.fulfilment-detail-summary>div>div{height:100%;padding:.8rem .85rem;border:1px solid #e4e9ef;border-radius:.8rem;background:#f8fafc;display:flex;flex-direction:column;gap:.2rem}.fulfilment-detail-summary small{color:#64748b;font-weight:700}.fulfilment-detail-summary strong{font-size:1.05rem;color:#172033}
@media(max-width:991.98px){.fulfilment-table-wrap{max-height:none}}
.fulfilment-product-row td{background:#fcfdff!important;border-top:0;color:#4b5563;font-size:.83rem}
.fulfilment-product-row td:nth-child(n+5){font-variant-numeric:tabular-nums}

/* v0.19.124 Sauda Position / Pending Lifting report */
.sauda-report-filter-card .form-label{font-weight:700;color:#4b5563;margin-bottom:.3rem}
.sauda-report-table-wrap{max-height:calc(100vh - 350px);min-height:340px}
.sauda-position-table{font-size:.88rem;min-width:1200px}
.sauda-position-table thead th{position:sticky;top:0;z-index:4;background:#f8fafc;white-space:nowrap;border-bottom:1px solid #dbe2ea}
.sauda-sort{display:inline-flex;align-items:center;gap:.35rem;width:100%;padding:0;border:0;background:transparent;color:#334155;font:inherit;font-weight:800;text-align:left;white-space:nowrap}
.text-end .sauda-sort{justify-content:flex-end;text-align:right}.sauda-sort span{font-size:.69rem;color:#7b8794}.sauda-sort i{font-size:.8rem;color:#8a96a3}
.sauda-party-row td{background:#eef6fb!important;color:#244b63;border-top:2px solid #d5e5ef;font-size:.86rem}
.sauda-party-total td{background:#f8fafc!important;border-top:1px solid #dce3e8;border-bottom:2px solid #dce3e8}
.sauda-grand-total td{background:#edf2f7!important;border-top:2px solid #cbd5df}
.sauda-subcategory-row td{background:#fcfdff!important;border-top:0;color:#4b5563;font-size:.83rem}
.sauda-detail-link{color:inherit!important;font-size:inherit;line-height:1.2}.sauda-detail-link:hover{color:var(--bs-primary)!important;text-decoration:underline!important}
.sauda-detail-summary>div>div{height:100%;padding:.8rem .85rem;border:1px solid #e4e9ef;border-radius:.8rem;background:#f8fafc;display:flex;flex-direction:column;gap:.2rem}.sauda-detail-summary small{color:#64748b;font-weight:700}.sauda-detail-summary strong{font-size:1.05rem;color:#172033}
@media(max-width:991.98px){.sauda-report-table-wrap{max-height:none}}


/* v0.19.125 Inventory Stock Summary / Stock Position */
.stock-position-filter-card .form-label{font-weight:700;color:#4b5563;margin-bottom:.3rem}
.stock-position-table-wrap{max-height:calc(100vh - 360px);min-height:340px}
.inventory-stock-position-table{font-size:.88rem;min-width:1180px}
.inventory-stock-position-table thead th{position:sticky;top:0;z-index:4;background:#f8fafc;white-space:nowrap;border-bottom:1px solid #dbe2ea}
.stock-sort{display:inline-flex;align-items:center;gap:.35rem;width:100%;padding:0;border:0;background:transparent;color:#334155;font:inherit;font-weight:800;text-align:left;white-space:nowrap}.text-end .stock-sort{justify-content:flex-end;text-align:right}.stock-sort i{font-size:.8rem;color:#8a96a3}
.stock-category-row td{background:#eaf2fb!important;color:#244b63;border-top:2px solid #cfdeeb}.stock-subcategory-row td{background:#f7fafc!important;color:#40566b;border-top:1px solid #dfe7ee}.stock-subcategory-total td{background:#fbfcfd!important;border-top:1px solid #e4e9ef}.stock-category-total td{background:#f1f5f9!important;border-top:1px solid #d7e0e8;border-bottom:2px solid #d7e0e8}.stock-grand-total td{background:#e9eef4!important;border-top:2px solid #c5d0db}
.stock-detail-link{color:inherit!important;font-size:inherit;line-height:1.2}.stock-detail-link:hover{color:var(--bs-primary)!important;text-decoration:underline!important}
.stock-detail-summary>div>div{height:100%;padding:.75rem .8rem;border:1px solid #e4e9ef;border-radius:.75rem;background:#f8fafc;display:flex;flex-direction:column;gap:.15rem}.stock-detail-summary small{color:#64748b;font-weight:700}.stock-detail-summary strong{font-size:1rem;color:#172033}
@media(max-width:991.98px){.stock-position-table-wrap{max-height:none}}

/* v0.19.126 Purchase Analysis / Purchase Register */
.purchase-analysis-table-wrap{max-height:68vh}.purchase-analysis-table{min-width:1420px}.purchase-analysis-table thead th{position:sticky;top:0;z-index:4;background:var(--bs-body-bg);white-space:nowrap}.purchase-sort{border:0;background:transparent;padding:0;font:inherit;font-weight:700;color:inherit;white-space:nowrap}.purchase-sort i{font-size:.75rem;opacity:.55}.purchase-supplier-row td{background:rgba(var(--bs-primary-rgb),.10)!important;border-top:2px solid rgba(var(--bs-primary-rgb),.22);font-weight:600}.purchase-category-row td{background:rgba(var(--bs-info-rgb),.08)!important}.purchase-subcategory-row td{background:rgba(var(--bs-secondary-rgb),.055)!important}.purchase-subcategory-total td{background:rgba(var(--bs-secondary-rgb),.035)!important;border-top:1px solid var(--bs-border-color)}.purchase-category-total td{background:rgba(var(--bs-info-rgb),.055)!important;border-top:1px solid var(--bs-border-color)}.purchase-supplier-total td{background:rgba(var(--bs-primary-rgb),.065)!important;border-top:1px solid rgba(var(--bs-primary-rgb),.18)}.purchase-grand-total td{background:rgba(var(--bs-success-rgb),.085)!important;border-top:2px solid rgba(var(--bs-success-rgb),.22)}.purchase-unit-summary{font-size:.9rem;line-height:1.35;margin-top:.25rem}.purchase-detail-summary>div>div{height:100%;padding:.7rem .8rem;border:1px solid var(--bs-border-color);border-radius:.65rem;background:rgba(var(--bs-secondary-rgb),.035)}.purchase-detail-summary small{display:block;color:var(--bs-secondary-color);margin-bottom:.15rem}.purchase-detail-summary strong{display:block;font-size:1rem}.purchase-analysis-table .btn-link{text-decoration:none}.purchase-analysis-table .btn-link:hover{text-decoration:underline}

/* v0.19.127 Global S shortcuts + Stock Lookup */
.shortcut-menu-section{padding:10px;border:1px solid #e7ecf4;border-radius:12px;background:linear-gradient(135deg,#fbfdfc,#f7faf8)}
.shortcut-menu-kicker{display:block;margin-bottom:8px;color:var(--poi-muted);font-size:.7rem;font-weight:800;text-transform:uppercase;letter-spacing:.08em}
.shortcut-menu-fast-grid{display:grid;grid-template-columns:1fr 1fr;gap:7px}
.shortcut-menu-fast-grid span{display:flex;align-items:center;gap:7px;min-width:0;padding:7px 8px;border-radius:9px;background:#fff;border:1px solid #edf0f4;color:#34433e;font-size:.78rem;font-weight:700}
.shortcut-menu-fast-grid kbd{min-width:30px;text-align:center;background:var(--poi-primary-dark);color:#fff;border:0;border-radius:6px;padding:3px 5px;font-size:.68rem}
.shortcut-menu-fast-grid .shortcut-menu-feature{grid-column:1/-1;background:linear-gradient(135deg,var(--poi-primary-soft),var(--poi-accent-soft));border-color:var(--poi-primary-border)}
.erp-shortcut-hud{position:fixed;left:50%;bottom:28px;z-index:2200;transform:translate(-50%,24px) scale(.98);opacity:0;pointer-events:none;transition:opacity .16s ease,transform .16s ease;width:min(92vw,860px)}
.erp-shortcut-hud.show{opacity:1;transform:translate(-50%,0) scale(1);pointer-events:auto}
.erp-shortcut-hud-card{overflow:hidden;border:1px solid rgba(255,255,255,.38);border-radius:20px;background:rgba(28,49,42,.96);box-shadow:0 24px 80px rgba(14,29,24,.3);backdrop-filter:blur(18px);color:#fff}
.erp-shortcut-hud-prefix{display:flex;align-items:center;justify-content:center;gap:10px;padding:10px 14px 8px;border-bottom:1px solid rgba(255,255,255,.1);font-size:.76rem;color:rgba(255,255,255,.68);text-transform:uppercase;letter-spacing:.08em;font-weight:800}
.erp-shortcut-hud-prefix kbd{display:inline-flex;align-items:center;justify-content:center;width:34px;height:30px;border-radius:8px;background:var(--poi-accent);color:#fff;border:0;font-size:.95rem;box-shadow:inset 0 -2px 0 rgba(0,0,0,.18)}
.erp-shortcut-hud-options{display:flex;gap:7px;padding:10px 12px;overflow-x:auto;scrollbar-width:none}.erp-shortcut-hud-options::-webkit-scrollbar{display:none}
.erp-shortcut-hud-options button{flex:0 0 auto;display:flex;align-items:center;gap:8px;border:0;border-radius:11px;background:rgba(255,255,255,.075);color:#fff;padding:7px 10px;text-align:left;transition:.16s ease}
.erp-shortcut-hud-options button:hover{background:rgba(255,255,255,.15);transform:translateY(-1px)}
.erp-shortcut-hud-options button kbd{min-width:28px;height:28px;display:inline-flex;align-items:center;justify-content:center;border-radius:7px;background:#fff;color:var(--poi-primary-dark);font-size:.75rem;border:0}
.erp-shortcut-hud-options button span{display:flex;align-items:center;gap:6px;font-size:.78rem;font-weight:750;white-space:nowrap}.erp-shortcut-hud-options button i{color:#e2bd6b}
.erp-shortcut-hud-foot{display:flex;justify-content:space-between;gap:12px;padding:6px 14px 9px;color:rgba(255,255,255,.55);font-size:.68rem}.erp-shortcut-hud-foot kbd{background:rgba(255,255,255,.12);color:#fff;border:0}

.stock-lookup-backdrop{position:fixed;inset:0;z-index:2070;background:rgba(20,33,29,.28);backdrop-filter:blur(2px);opacity:0;visibility:hidden;transition:opacity .24s ease,visibility .24s ease}
.stock-lookup-drawer{position:fixed;z-index:2080;top:0;right:0;width:min(640px,100vw);height:100dvh;display:flex;flex-direction:column;background:#f6f7f4;box-shadow:-24px 0 70px rgba(23,37,32,.22);transform:translateX(104%);transition:transform .28s cubic-bezier(.2,.78,.25,1);overflow:hidden}
body.stock-lookup-open{overflow:hidden}.stock-lookup-open .stock-lookup-backdrop{opacity:1;visibility:visible}.stock-lookup-open .stock-lookup-drawer{transform:translateX(0)}
.stock-lookup-head{display:flex;align-items:flex-start;gap:13px;padding:18px 18px 15px;color:#fff;background:radial-gradient(circle at 88% 0,rgba(201,149,50,.32),transparent 36%),linear-gradient(135deg,var(--poi-primary-dark),var(--poi-primary) 68%,#537b6d)}
.stock-lookup-brandmark{width:46px;height:46px;flex:0 0 auto;display:flex;align-items:center;justify-content:center;border-radius:14px;background:rgba(255,255,255,.14);font-size:1.3rem;box-shadow:inset 0 0 0 1px rgba(255,255,255,.16)}
.stock-lookup-head h2{margin:0;font-size:1.3rem;font-weight:850;letter-spacing:-.02em}.stock-lookup-head p{margin:3px 0 0;color:rgba(255,255,255,.7);font-size:.78rem;line-height:1.35}
.stock-lookup-key{display:inline-flex;align-items:center;padding:3px 7px;border-radius:7px;background:var(--poi-accent);font-size:.67rem;font-weight:900;letter-spacing:.12em;color:#fff}
.stock-lookup-close{width:38px;height:38px;flex:0 0 auto;display:flex;align-items:center;justify-content:center;border:0;border-radius:11px;background:rgba(255,255,255,.1);color:#fff;transition:.15s}.stock-lookup-close:hover{background:rgba(255,255,255,.2)}
.stock-lookup-search-wrap{position:relative;z-index:2;padding:13px 16px;background:#fff;border-bottom:1px solid #e6ebe7;box-shadow:0 7px 22px rgba(27,43,37,.045)}
.stock-lookup-search-wrap>i{position:absolute;left:31px;top:50%;transform:translateY(-50%);color:var(--poi-primary);font-size:1.05rem}.stock-lookup-search-wrap input{width:100%;height:48px;border:1px solid #d9e2dd;border-radius:14px;background:#f9fbfa;padding:0 54px 0 45px;color:#24332e;font-size:.95rem;font-weight:650;outline:0;transition:.15s}.stock-lookup-search-wrap input:focus{border-color:var(--poi-primary);box-shadow:0 0 0 4px var(--poi-focus-soft);background:#fff}.stock-lookup-search-hint{position:absolute;right:29px;top:50%;transform:translateY(-50%);padding:3px 6px;border:1px solid #dce2df;border-bottom-width:2px;border-radius:6px;color:#87918c;background:#fff;font-size:.62rem;font-weight:800}
.stock-lookup-body{flex:1;min-height:0;overflow-y:auto;padding:14px 15px 24px;overscroll-behavior:contain}
.stock-lookup-welcome{min-height:58vh;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:34px 22px}.stock-lookup-welcome-icon{width:78px;height:78px;display:flex;align-items:center;justify-content:center;border-radius:25px;background:linear-gradient(135deg,var(--poi-primary-soft),#fff);border:1px solid var(--poi-primary-border);color:var(--poi-primary);font-size:2rem;box-shadow:0 12px 32px rgba(var(--poi-primary-rgb),.11)}.stock-lookup-welcome h3{margin:20px 0 6px;color:var(--poi-primary-dark);font-size:1.08rem;font-weight:850}.stock-lookup-welcome p{max-width:420px;margin:0;color:var(--poi-muted);font-size:.84rem;line-height:1.55}.stock-lookup-feature-chips{display:flex;justify-content:center;flex-wrap:wrap;gap:7px;margin-top:18px}.stock-lookup-feature-chips span{padding:5px 9px;border-radius:999px;background:#fff;border:1px solid #e3e9e5;color:#53645d;font-size:.68rem;font-weight:750}
.stock-lookup-loading{display:flex;align-items:center;justify-content:center;gap:9px;padding:45px;color:var(--poi-muted);font-weight:700;font-size:.82rem}.stock-lookup-empty{display:flex;min-height:45vh;flex-direction:column;align-items:center;justify-content:center;text-align:center;color:var(--poi-muted);padding:30px}.stock-lookup-empty>i{font-size:2rem;color:#9aa6a0}.stock-lookup-empty h3{margin:12px 0 4px;color:#45544e;font-size:1rem;font-weight:800}.stock-lookup-empty p{margin:0;font-size:.8rem}.stock-lookup-empty.compact{min-height:auto;padding:18px}
.stock-lookup-results-head{display:flex;align-items:center;justify-content:space-between;padding:4px 4px 10px;color:#77817d;font-size:.7rem;font-weight:750}.stock-lookup-results{display:grid;gap:7px}.stock-lookup-result{width:100%;display:grid;grid-template-columns:42px minmax(0,1fr) auto 18px;align-items:center;gap:10px;padding:10px;border:1px solid #e2e7e4;border-radius:14px;background:#fff;color:#2d3e37;text-align:left;box-shadow:0 3px 12px rgba(31,49,42,.035);transition:.15s}.stock-lookup-result:hover,.stock-lookup-result.active{border-color:var(--poi-primary-border);background:linear-gradient(135deg,#fff,var(--poi-primary-soft));box-shadow:0 8px 24px rgba(var(--poi-primary-rgb),.09);transform:translateY(-1px)}.stock-lookup-result-icon{width:40px;height:40px;display:flex;align-items:center;justify-content:center;border-radius:12px;background:var(--poi-primary-soft);color:var(--poi-primary)}.stock-lookup-result-main{min-width:0}.stock-lookup-result-main strong{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:.86rem}.stock-lookup-result-main small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;margin-top:2px;color:#7a8580;font-size:.67rem}.stock-lookup-result-main b{color:var(--poi-primary);font-weight:850}.stock-lookup-result-type{max-width:120px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;padding:4px 7px;border-radius:999px;background:#f2f4f3;color:#69736f;font-size:.62rem;font-weight:800}.stock-lookup-result>i{color:#a2aaa6;font-size:.75rem}
.stock-lookup-detail{display:grid;gap:12px}.stock-product-hero,.stock-lookup-section{background:#fff;border:1px solid #e2e7e4;border-radius:18px;box-shadow:0 7px 24px rgba(30,48,41,.045)}.stock-product-hero{overflow:hidden;padding:16px 17px 13px;background:radial-gradient(circle at 100% 0,rgba(var(--poi-accent-rgb),.13),transparent 35%),#fff}.stock-product-hero-top{display:flex;justify-content:space-between;gap:12px}.stock-product-kicker{display:block;color:var(--poi-primary);font-size:.64rem;font-weight:850;text-transform:uppercase;letter-spacing:.075em}.stock-product-hero h3{margin:4px 0 7px;color:#24362f;font-size:1.13rem;font-weight:900;line-height:1.2}.stock-product-meta{display:flex;gap:6px;flex-wrap:wrap}.stock-product-meta span{padding:3px 7px;border-radius:999px;background:#f1f4f2;color:#65726c;font-size:.62rem;font-weight:750}.stock-product-asof{flex:0 0 auto;color:#8b958f;text-align:right;font-size:.61rem;line-height:1.4}.stock-product-asof b{color:#52615b}.stock-selected-prices{display:flex;align-items:flex-start;gap:10px;margin-top:13px;padding-top:11px;border-top:1px dashed #e2e6e3}.stock-selected-prices>span{padding-top:5px;color:#8a948f;font-size:.65rem;font-weight:800;white-space:nowrap}.stock-selected-prices>div{display:flex;flex-wrap:wrap;gap:6px}
.stock-price-chip{display:inline-flex;align-items:center;gap:5px;padding:4px 7px;border-radius:9px;background:var(--poi-accent-soft);border:1px solid rgba(var(--poi-accent-rgb),.22);white-space:nowrap}.stock-price-chip small{color:#877044;font-size:.56rem;font-weight:800;text-transform:uppercase}.stock-price-chip strong{color:#735317;font-size:.72rem;font-weight:900}
.stock-lookup-section{padding:15px}.stock-lookup-section-title{display:flex;justify-content:space-between;align-items:flex-start;gap:10px;margin-bottom:11px}.stock-lookup-section-title span:not(.stock-lookup-section-badge){display:block;color:#8a948f;font-size:.61rem;font-weight:850;text-transform:uppercase;letter-spacing:.08em}.stock-lookup-section-title h4{margin:2px 0 0;color:#2b3d35;font-size:.94rem;font-weight:900}.stock-lookup-section-badge{padding:4px 8px;border-radius:999px;background:#f0f4f2;color:#68766f;font-size:.59rem!important;font-weight:850!important;text-transform:none!important;letter-spacing:0!important;white-space:nowrap}.stock-lookup-section-badge.planning{background:var(--poi-accent-soft);color:#82611f}
.stock-lookup-metric-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.stock-lookup-metric{display:flex;align-items:center;gap:10px;min-height:76px;padding:10px;border-radius:13px;background:#f7f9f8;border:1px solid #e7ebe9}.stock-lookup-metric-icon{width:36px;height:36px;display:flex;flex:0 0 auto;align-items:center;justify-content:center;border-radius:11px;background:#fff;color:var(--poi-primary);box-shadow:0 2px 8px rgba(34,51,45,.06)}.stock-lookup-metric span{display:block;color:#7e8984;font-size:.61rem;font-weight:800;text-transform:uppercase}.stock-lookup-metric strong{display:block;margin-top:1px;color:#263a32;font-size:.98rem;font-weight:900}.stock-lookup-metric small{display:block;margin-top:1px;color:#909994;font-size:.58rem;line-height:1.25}.stock-lookup-metric.accent{background:linear-gradient(135deg,#fff9ed,var(--poi-accent-soft));border-color:#ead9b4}.stock-lookup-metric.accent .stock-lookup-metric-icon{color:var(--poi-accent-dark)}.stock-lookup-metric.warning{background:#fffaf0;border-color:#eee0bf}.stock-lookup-metric.danger{background:#fff5f4;border-color:#f0d4d0}.stock-lookup-metric.danger strong{color:#b23c32}.stock-lookup-metric.good{background:#f4faf6;border-color:#d9eade}.stock-process-note{display:flex;align-items:center;gap:7px;margin-top:9px;padding:7px 9px;border-radius:9px;background:#f8faf9;color:#718079;font-size:.66rem}.stock-process-note i{color:var(--poi-primary)}
.stock-subcategory-section{border-top:3px solid var(--poi-accent)}.stock-plan-banner{display:grid;grid-template-columns:1fr 1fr;gap:8px}.stock-plan-banner>div{padding:12px;border-radius:13px;background:linear-gradient(135deg,var(--poi-primary-dark),var(--poi-primary));color:#fff}.stock-plan-banner span{display:block;color:rgba(255,255,255,.65);font-size:.61rem;font-weight:800;text-transform:uppercase}.stock-plan-banner strong{display:block;margin-top:2px;font-size:1.08rem;font-weight:900}.stock-plan-banner small{display:block;margin-top:3px;color:rgba(255,255,255,.6);font-size:.58rem}.stock-plan-purchase-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:8px}.stock-plan-purchase-grid>div{padding:11px;border:1px solid #e7e2d8;border-radius:12px;background:#fdfbf7}.stock-plan-purchase-grid span{display:block;color:#817767;font-size:.61rem;font-weight:800}.stock-plan-purchase-grid strong{display:block;margin:3px 0 1px;font-size:.92rem;font-weight:900}.stock-plan-purchase-grid small{display:block;color:#999082;font-size:.57rem;line-height:1.25}.stock-raw-list{margin-top:10px}.stock-mini-heading{margin-bottom:5px;color:#818c86;font-size:.62rem;font-weight:850;text-transform:uppercase;letter-spacing:.07em}.stock-raw-row{display:flex;justify-content:space-between;gap:10px;padding:8px 0;border-top:1px solid #edf0ee}.stock-raw-row>div:first-child{min-width:0}.stock-raw-row strong{display:block;color:#34453e;font-size:.72rem}.stock-raw-row small{display:block;color:#9aa29e;font-size:.58rem}.stock-raw-row>div:last-child{display:flex;align-items:flex-end;gap:6px;flex-direction:column;color:#7a8580;font-size:.59rem}.stock-raw-row>div:last-child span{white-space:nowrap}.stock-raw-row .danger{color:#b33d34}.stock-raw-row .good{color:#41805f;font-weight:800}.stock-lookup-warning{display:flex;gap:7px;padding:8px 9px;margin-top:7px;border-radius:10px;background:#fff7e8;border:1px solid #efdfba;color:#805f24;font-size:.64rem}.stock-lookup-inline-link{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-top:11px;padding:9px 10px;border-radius:10px;background:var(--poi-primary-soft);color:var(--poi-primary-dark);font-size:.69rem;font-weight:850}.stock-lookup-inline-link:hover{background:#dfeae4;color:var(--poi-primary-dark)}.stock-lookup-inline-link span{display:flex;align-items:center;gap:7px}.stock-lookup-inline-link.accent{background:var(--poi-accent-soft);color:#73571e}.stock-lookup-inline-link.accent:hover{background:#f0e1c1;color:#684d18}
.stock-prices-section{border-top:3px solid var(--poi-primary)}.stock-price-saved{color:#99a29e;font-size:.57rem}.stock-subprice-list{display:grid;gap:5px}.stock-subprice-row{display:grid;grid-template-columns:minmax(135px,.8fr) 1.2fr;align-items:center;gap:9px;padding:8px 9px;border-radius:11px;background:#f9faf9;border:1px solid #ecefed}.stock-subprice-row.selected{background:linear-gradient(135deg,var(--poi-primary-soft),#fff);border-color:var(--poi-primary-border)}.stock-subprice-row>div:first-child{min-width:0}.stock-subprice-row>div:first-child strong{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#35463f;font-size:.7rem}.stock-subprice-row>div:first-child small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#949d98;font-size:.56rem}.stock-subprice-values{display:flex;justify-content:flex-end;gap:4px;flex-wrap:wrap}.stock-subprice-values .stock-price-chip{padding:3px 5px}.stock-subprice-values .stock-price-chip small{font-size:.5rem}.stock-subprice-values .stock-price-chip strong{font-size:.64rem}
.stock-lookup-footer-actions{display:grid;grid-template-columns:repeat(3,1fr);gap:7px}.stock-lookup-footer-actions a{display:flex;align-items:center;justify-content:center;gap:5px;padding:9px 7px;border-radius:11px;background:#fff;border:1px solid #e3e8e5;color:#5c6b65;font-size:.64rem;font-weight:800}.stock-lookup-footer-actions a:hover{color:var(--poi-primary);border-color:var(--poi-primary-border);background:var(--poi-primary-soft)}
.stock-lookup-detail-loading{display:grid;gap:10px;padding:4px}.stock-skeleton{border-radius:12px;background:linear-gradient(90deg,#edf0ee 20%,#f7f8f7 45%,#edf0ee 70%);background-size:220% 100%;animation:stockSkeleton 1.2s linear infinite}.stock-skeleton-title{height:96px}.stock-skeleton-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px}.stock-skeleton-card{height:78px}.stock-skeleton-block{height:160px}@keyframes stockSkeleton{to{background-position:-220% 0}}
.quick-price-scope-banner{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:0 0 12px;padding:9px 12px;border:1px solid var(--poi-primary-border);border-radius:11px;background:var(--poi-primary-soft);color:var(--poi-primary-dark);font-size:.76rem}.quick-price-scope-banner a{font-weight:850;color:var(--poi-primary)}
@media(max-width:575.98px){.erp-shortcut-hud{bottom:12px}.erp-shortcut-hud-card{border-radius:16px}.erp-shortcut-hud-options{padding:8px}.erp-shortcut-hud-options button span{font-size:.72rem}.stock-lookup-head{padding:15px}.stock-lookup-body{padding:11px 10px 20px}.stock-lookup-metric-grid,.stock-plan-banner,.stock-plan-purchase-grid{grid-template-columns:1fr 1fr}.stock-subprice-row{grid-template-columns:1fr}.stock-subprice-values{justify-content:flex-start}.stock-lookup-footer-actions{grid-template-columns:1fr}.shortcut-menu-fast-grid{grid-template-columns:1fr}.shortcut-menu-fast-grid .shortcut-menu-feature{grid-column:auto}}
@media(max-width:390px){.stock-lookup-metric-grid,.stock-plan-banner,.stock-plan-purchase-grid{grid-template-columns:1fr}.stock-lookup-head p{display:none}}
@media(prefers-reduced-motion:reduce){.stock-lookup-drawer,.stock-lookup-backdrop,.erp-shortcut-hud{transition:none}.stock-skeleton{animation:none}}

/* v0.19.128 — price-chip differentiation + Product SKU emphasis */
.product-code-badge{display:inline-flex;align-items:center;justify-content:center;max-width:100%;padding:2px 7px;border:1px solid #bfd2f2;border-radius:999px;background:#edf4ff;color:#28589a!important;font-size:.62rem!important;font-weight:900!important;line-height:1.25!important;letter-spacing:.035em;text-transform:uppercase;white-space:nowrap;vertical-align:middle;box-shadow:inset 0 0 0 1px rgba(255,255,255,.5)}
.lookup-product-option{padding-top:8px!important;padding-bottom:8px!important}.lookup-product-line{display:flex!important;align-items:center;gap:8px;min-width:0}.lookup-product-name{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#31423b;font-weight:760}.lookup-product-option>small{padding-left:0!important;margin-top:4px!important}.lookup-product-option.active .product-code-badge,.lookup-product-option:hover .product-code-badge{border-color:#9dbde9;background:#e2efff;color:#1f4e8f!important}
.stock-lookup-result-main small{display:flex!important;align-items:center;gap:6px}.stock-lookup-result-main small>span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.stock-lookup-result-main .product-code-badge{font-size:.56rem!important;padding:2px 6px}.stock-product-meta .product-code-badge.stock-product-code{background:#edf4ff!important;border-color:#bfd2f2!important;color:#28589a!important;font-size:.62rem!important;font-weight:900!important}.stock-subprice-row>div:first-child small{display:flex!important;align-items:center;gap:6px;margin-top:3px}.stock-subprice-row>div:first-child small .product-code-badge{font-size:.52rem!important;padding:2px 6px}.stock-subprice-row>div:first-child small>span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.stock-price-chip{transition:transform .12s ease,box-shadow .12s ease}.stock-price-chip strong{font-weight:950}.stock-price-chip.price-retailer{background:#eef8f2;border-color:#c5e3d0}.stock-price-chip.price-retailer small{color:#4e7e61}.stock-price-chip.price-retailer strong{color:#17633d}.stock-price-chip.price-depot{background:#eef5fd;border-color:#c7d9ef}.stock-price-chip.price-depot small{color:#58759a}.stock-price-chip.price-depot strong{color:#24558f}.stock-price-chip.price-end-user{background:#fff6e8;border-color:#ecd7af}.stock-price-chip.price-end-user small{color:#8a6c36}.stock-price-chip.price-end-user strong{color:#9a5a0f}.stock-price-chip.price-walking{background:#f6f0fa;border-color:#ddcaea}.stock-price-chip.price-walking small{color:#7c638a}.stock-price-chip.price-walking strong{color:#6f4481}.stock-price-chip.price-default{background:#f4f6f5;border-color:#dce2de}.stock-price-chip.price-default small{color:#718078}.stock-price-chip.price-default strong{color:#40564b}.stock-price-chip:hover{transform:translateY(-1px);box-shadow:0 3px 9px rgba(32,48,42,.08)}

/* v0.19.129 — master images + unified sidebar brand area */
.app-sidebar .brand{
    background:transparent;
    border-bottom:0;
    min-height:60px;
    padding:7px 12px 4px;
}
.app-sidebar .brand img{
    width:68px;
    height:34px;
    filter:drop-shadow(0 2px 4px rgba(0,0,0,.16));
}
@media(min-width:992px){
    body.sidebar-collapsed .app-sidebar .brand{min-height:62px;padding:8px 7px 5px}
    body.sidebar-collapsed .app-sidebar .brand img{width:50px;height:32px}
}

.master-image-upload{display:flex;align-items:center;gap:14px;padding:12px;border:1px solid #dce3e8;border-radius:12px;background:linear-gradient(135deg,#fafcfd,#f6f8f9)}
.master-image-preview{position:relative;width:92px;height:72px;flex:0 0 92px;overflow:hidden;display:flex;align-items:center;justify-content:center;border:1px dashed #cbd5dc;border-radius:11px;background:#fff;color:#9aa5ad}
.master-image-preview-product{width:108px;height:84px;flex-basis:108px}
.master-image-preview img{width:100%;height:100%;object-fit:contain;background:#fff}
.master-image-preview.has-image{border-style:solid;border-color:#d2dbe2;box-shadow:0 4px 14px rgba(33,46,56,.06)}
.master-image-placeholder{display:flex;flex-direction:column;align-items:center;gap:4px;font-size:1.2rem}.master-image-placeholder small{font-size:.62rem;font-weight:700;text-transform:uppercase;letter-spacing:.04em}
.master-image-preview.has-image .master-image-placeholder{display:none}
.master-image-controls{min-width:0;flex:1}.master-image-controls .form-control{max-width:520px}
.master-image-thumb{display:inline-block;width:44px;height:38px;object-fit:contain;border:1px solid #dce3e8;border-radius:8px;background:#fff;padding:2px;box-shadow:0 2px 7px rgba(34,48,58,.06)}
.master-image-empty{display:inline-flex;align-items:center;justify-content:center;width:44px;height:38px;border:1px dashed #d6dde2;border-radius:8px;background:#fafbfc;color:#aab2b8}
@media(max-width:575.98px){.master-image-upload{align-items:flex-start;flex-direction:column}.master-image-preview,.master-image-preview-product{width:100%;height:150px;flex-basis:auto}}


/* v0.19.134 Sauda Lifting sidebar badge visibility */
.app-sidebar .nav-count-lifting { color:#4c1d95; border-color:#a78bfa; background:#fff!important; }
.app-sidebar .nav-group-items .nav-link > span:not(.nav-count-badge) {
    overflow:hidden;
    text-overflow:ellipsis;
    white-space:nowrap;
}
.app-sidebar .nav-group-items .nav-count-badge {
    margin-left:4px;
    min-width:28px;
    padding-left:6px;
    padding-right:6px;
}

/* v0.19.135 Mobile Approvals sidebar count */
.app-sidebar .nav-count-approvals { color:#8a1538; border-color:#e29bb1; background:#fff!important; }

/* v0.19.142 hidden Privacy Lock keypad */
.privacy-keypad-card{border:0;border-radius:1.25rem;box-shadow:0 1.2rem 3rem rgba(15,23,42,.28);overflow:hidden}.privacy-calculator-display{min-height:76px;border:1px solid var(--bs-border-color);border-radius:.9rem;background:var(--bs-tertiary-bg);display:flex;align-items:flex-end;justify-content:flex-end;padding:.75rem 1rem;font-size:2rem;line-height:1;font-weight:650;font-variant-numeric:tabular-nums;color:var(--bs-body-color);margin-bottom:.8rem;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.privacy-keypad{display:grid;grid-template-columns:repeat(4,1fr);gap:.55rem}.privacy-keypad button{height:54px;border:1px solid var(--bs-border-color);border-radius:.8rem;background:var(--bs-body-bg);font-size:1.15rem;font-weight:700;color:var(--bs-body-color);transition:background-color .12s ease,transform .08s ease}.privacy-keypad button:hover,.privacy-keypad button:focus-visible{background:var(--bs-tertiary-bg)}.privacy-keypad button:active{transform:scale(.96)}.privacy-keypad .privacy-calc-op{background:color-mix(in srgb,var(--bs-primary) 10%,var(--bs-body-bg));color:var(--bs-primary)}.privacy-keypad .privacy-calc-fn{background:var(--bs-tertiary-bg)}.privacy-keypad .privacy-calc-equals{background:var(--bs-primary);color:#fff;border-color:var(--bs-primary)}
