: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-master-full-layout .process-list-full .table th:nth-child(1) { min-width: 240px; }
.process-master-full-layout .process-list-full .table th:nth-child(2),
.process-master-full-layout .process-list-full .table td:nth-child(2) { width: 120px; }
.process-master-full-layout .process-list-full .table th:nth-child(3),
.process-master-full-layout .process-list-full .table td:nth-child(3) { width: 140px; }
@media (max-width: 991.98px) {
    .process-master-full-layout .process-list-full .desktop-scroll-pane { max-height: 280px; }
}
.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;
}
