/*
 * Ledger theme 1.0.0 for UltimatePOS 7.3
 * Look: teal title bars with a monospace breadcrumb, uppercase monospace labels,
 * filled read-only fields, hairline tables, semantic cell tints (good / warn / bad).
 *
 * Part 1  tokens + base
 * Part 2  app shell (sidebar, top bar, footer)
 * Part 3  theme components (ldg-*)
 * Part 4  core markup restyled (tables, forms, buttons, boxes, select2, modals) so
 *         pages the theme does not override still match.
 */

/* ---------- Part 1 · tokens + base ---------- */
:root {
    --ldg-teal-950: #072f2c;
    --ldg-teal-900: #0a4541;
    --ldg-teal-800: #0d5c56;
    --ldg-teal-700: #12726a;
    --ldg-teal-100: #d5e9e5;
    --ldg-teal-50: #ebf5f3;

    /* teal as text (links, labels, numbers). Same as the teal scale here; dark.css makes them light on dark mode */
    --ldg-tx-900: var(--ldg-teal-900);
    --ldg-tx-800: var(--ldg-teal-800);
    --ldg-tx-700: var(--ldg-teal-700);

    --ldg-bg: #eef1f0;
    --ldg-surface: #ffffff;
    --ldg-field: #f2f4f3;
    --ldg-line: #dce2df;
    --ldg-line-2: #bfc9c5;
    --ldg-ink: #18201e;
    --ldg-ink-2: #3a4542;
    --ldg-muted: #6a7672;

    --ldg-good: #23733f;
    --ldg-good-bg: #e1f0e4;
    --ldg-bad: #b0352b;
    --ldg-bad-bg: #f8e2df;
    --ldg-warn: #8a5a00;
    --ldg-warn-bg: #fbf1d8;
    --ldg-amber: #e3a21a;

    --ldg-radius: 6px;
    --ldg-radius-lg: 8px;
    --ldg-bar-h: 48px;
    --ldg-side-w: 248px;

    --ldg-sans: "IBM Plex Sans", "IBM Plex Sans Arabic", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;
    --ldg-mono: "IBM Plex Mono", "IBM Plex Sans Arabic", ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;

}

/* Core theme-colour variables, so core buttons inside the themed chrome match */
body.ldg {
    --theme-700: var(--ldg-teal-700);
    --theme-800: var(--ldg-teal-800);
    --theme-900: var(--ldg-teal-900);
}

body.ldg-skin {
    background: var(--ldg-bg);
    color: var(--ldg-ink);
    font-family: var(--ldg-sans);
    font-size: 14px;
    line-height: 1.5;
    -webkit-font-smoothing: antialiased;
}

body.ldg-skin h1, body.ldg-skin h2, body.ldg-skin h3, body.ldg-skin h4, body.ldg-skin h5,
body.ldg-skin .h1, body.ldg-skin .h2, body.ldg-skin .h3, body.ldg-skin .h4 {
    font-family: var(--ldg-sans);
    color: var(--ldg-ink);
}

body.ldg-skin a { color: var(--ldg-tx-800); }
body.ldg-skin a:hover { color: var(--ldg-tx-700); }

body.ldg-skin :focus-visible {
    outline: 2px solid color-mix(in srgb, var(--ldg-teal-700) 55%, transparent);
    outline-offset: 1px;
}

/* ---------- Part 2 · app shell ---------- */



/* Sidebar */
.ldg-side,
.ldg-topbar,
.ldg-footer { font-family: var(--ldg-sans); }

.ldg-side {
    display: none;
    flex-direction: column;
    flex-shrink: 0;
    width: var(--ldg-side-w);
    height: 100%;
    background: var(--ldg-surface);
    border-inline-end: 1px solid var(--ldg-line);
}

@media (min-width: 1024px) {
    .ldg-side { display: flex; }
}

.ldg-side__brand {
    display: flex;
    flex-direction: column;
    justify-content: center;
    gap: 2px;
    height: var(--ldg-bar-h);
    padding: 0 16px;
    background: var(--ldg-teal-900);
    flex-shrink: 0;
    text-decoration: none !important;
}

.ldg-side__name {
    color: #fff;
    font-weight: 600;
    font-size: 15px;
    line-height: 1.2;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.ldg-side__meta {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    color: rgba(255, 255, 255, .62);
    font-family: var(--ldg-mono);
    font-size: 11px;
    letter-spacing: .04em;
}

.ldg-side__online {
    width: 7px;
    height: 7px;
    border-radius: 50%;
    background: #5fd08a;
}

.ldg-side__search {
    display: flex;
    align-items: center;
    gap: 8px;
    margin: 12px 12px 6px;
    padding: 0 10px;
    height: 34px;
    background: var(--ldg-field);
    border: 1px solid var(--ldg-line);
    border-radius: var(--ldg-radius);
    color: var(--ldg-muted);
    flex-shrink: 0;
}

.ldg-side__search svg { width: 15px; height: 15px; flex-shrink: 0; }
.ldg-side__search input {
    flex: 1;
    min-width: 0;
    border: 0;
    outline: 0;
    background: transparent;
    font-size: 13px;
    color: var(--ldg-ink);
}
.ldg-side__search button { border: 0; background: none; color: var(--ldg-muted); padding: 0; display: inline-flex; }

.ldg-side__empty {
    padding: 12px 16px;
    font-family: var(--ldg-mono);
    font-size: 12px;
    color: var(--ldg-muted);
}

/* Menu markup from AdminlteCustomPresenter */
.ldg-side #side-bar {
    flex: 1 1 auto;
    overflow-y: auto;
    overflow-x: hidden;
    padding: 6px 10px 16px;
    border: 0 !important;
    scrollbar-width: thin;
    scrollbar-color: var(--ldg-line-2) transparent;
    overscroll-behavior: contain;
}

.ldg-side #side-bar > * + * { margin-top: 1px; }

.ldg-side #side-bar a {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 7px 10px;
    border-radius: var(--ldg-radius);
    font-size: 13.5px;
    color: var(--ldg-ink-2) !important;
    text-decoration: none !important;
    white-space: nowrap;
    transition: background-color .15s, color .15s;
}

.ldg-side #side-bar a svg,
.ldg-side #side-bar a i {
    width: 18px;
    height: 18px;
    flex-shrink: 0;
    color: var(--ldg-muted) !important;
    font-size: 15px;
    text-align: center;
}

.ldg-side #side-bar a:hover,
.ldg-side #side-bar .theme-sidebar-hover:hover,
.ldg-side #side-bar .theme-sidebar-hover:focus {
    background: var(--ldg-field) !important;
    color: var(--ldg-ink) !important;
}

.ldg-side #side-bar a.theme-sidebar-active {
    background: var(--ldg-teal-50) !important;
    color: var(--ldg-tx-900) !important;
    font-weight: 600;
}

.ldg-side #side-bar a.theme-sidebar-active svg,
.ldg-side #side-bar a.theme-sidebar-active i,
.ldg-side #side-bar a:hover svg,
.ldg-side #side-bar a:hover i { color: var(--ldg-tx-800) !important; }

/* Section headers */
.ldg-side #side-bar > div.tw-uppercase {
    padding: 14px 10px 4px;
    font-family: var(--ldg-mono);
    font-size: 10.5px;
    font-weight: 500;
    letter-spacing: .12em;
    color: var(--ldg-muted);
}

/* Child items */
.ldg-side #side-bar .chiled { padding-inline-start: 38px !important; margin: 2px 0 6px !important; }
.ldg-side #side-bar .chiled > .tw-absolute { background: var(--ldg-line) !important; inset-inline-start: 19px !important; }
.ldg-side #side-bar .chiled a {
    padding: 5px 8px;
    font-size: 13px;
    color: var(--ldg-muted) !important;
}
.ldg-side #side-bar .chiled a:hover { color: var(--ldg-ink) !important; background: transparent !important; }
.ldg-side #side-bar .chiled a.theme-sidebar-child-active {
    color: var(--ldg-tx-800) !important;
    font-weight: 600;
}

/* Collapsed (desktop) and mobile drawer */
body.ldg.sidebar-collapse .ldg-side { display: none; }

.ldg .small-view-side-active {
    display: flex !important;
    position: fixed;
    inset-block: 0;
    inset-inline-start: 0;
    z-index: 1000;
    height: 100vh;
    box-shadow: 0 10px 40px rgba(7, 47, 44, .25);
}

.ldg .overlay {
    position: fixed;
    inset: 0;
    width: 100vw;
    height: 100vh;
    background: rgba(7, 47, 44, .55);
    display: none;
    z-index: 20;
}

/* Top bar */
.ldg-topbar {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    height: var(--ldg-bar-h);
    padding: 0 16px;
    background: var(--ldg-teal-800);
    color: #fff;
    flex-shrink: 0;
    position: relative;
    z-index: 30;
}

.ldg-topbar__left,
.ldg-topbar__right {
    display: flex;
    align-items: center;
    gap: 8px;
    min-width: 0;
}

.ldg-topbar__right { flex-shrink: 0; }


.ldg-crumbs {
    display: flex;
    align-items: center;
    gap: 8px;
    min-width: 0;
    font-family: var(--ldg-mono);
    font-size: 13.5px;
    white-space: nowrap;
}

.ldg-crumbs a { color: #fff !important; text-decoration: none !important; opacity: .85; }
.ldg-crumbs a:hover { opacity: 1; }
.ldg-crumbs__sep { opacity: .6; }
.ldg-crumbs__current { overflow: hidden; text-overflow: ellipsis; }

.ldg-iconbtn,
.ldg-topbar .theme-btn-bg,
.ldg-topbar .notifications-menu > a {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 32px;
    height: 32px;
    padding: 0 !important;
    border: 1px solid rgba(255, 255, 255, .18) !important;
    border-radius: var(--ldg-radius) !important;
    background: transparent !important;
    color: #fff !important;
    cursor: pointer;
    list-style: none;
    box-shadow: none !important;
    transition: background-color .15s, border-color .15s;
}

.ldg-iconbtn::-webkit-details-marker { display: none; }

.ldg-iconbtn:hover,
.ldg-topbar .theme-btn-bg:hover,
.ldg-topbar .notifications-menu > a:hover {
    background: rgba(255, 255, 255, .1) !important;
    border-color: rgba(255, 255, 255, .32) !important;
}

.ldg-iconbtn svg,
.ldg-topbar .theme-btn-bg svg,
.ldg-topbar .notifications-menu > a svg { width: 18px; height: 18px; }

.ldg-topbar .notifications-menu { position: relative; list-style: none; }
.ldg-topbar .notifications_count {
    position: absolute;
    top: -5px;
    inset-inline-end: -5px;
    min-width: 17px;
    padding: 1px 4px;
    border-radius: 9px;
    background: var(--ldg-amber) !important;
    color: var(--ldg-teal-950) !important;
    font-family: var(--ldg-mono);
    font-size: 10px;
    line-height: 15px;
}
.ldg-topbar .notifications_count:empty { display: none; }

.ldg-tbtn {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    height: 32px;
    padding: 0 12px;
    border-radius: var(--ldg-radius);
    border: 1px solid rgba(255, 255, 255, .18);
    font-size: 13px;
    font-weight: 600;
    color: #fff !important;
    text-decoration: none !important;
    white-space: nowrap;
}

.ldg-tbtn svg { width: 16px; height: 16px; }
.ldg-tbtn--solid { background: #fff; border-color: #fff; color: var(--ldg-tx-900) !important; }
.ldg-tbtn--solid:hover { background: var(--ldg-teal-50); }
.ldg-tbtn--warn { background: var(--ldg-amber); border-color: var(--ldg-amber); color: var(--ldg-teal-950) !important; }

.ldg-date {
    font-family: var(--ldg-mono);
    font-size: 12.5px;
    color: rgba(255, 255, 255, .78);
    padding: 0 4px;
}

/* Dropdowns built on <details> */
.ldg-menu { position: relative; }
.ldg-menu > summary { list-style: none; cursor: pointer; }
.ldg-menu > summary::-webkit-details-marker { display: none; }

.ldg-menu__panel {
    position: absolute;
    top: calc(100% + 8px);
    min-width: 220px;
    padding: 6px;
    background: var(--ldg-surface);
    border: 1px solid var(--ldg-line);
    border-radius: var(--ldg-radius-lg);
    box-shadow: 0 12px 32px rgba(7, 47, 44, .16);
    z-index: 50;
}
.ldg-menu__panel--end { inset-inline-end: 0; }
.ldg-menu__panel--start { inset-inline-start: 0; }

.ldg-menu__head {
    display: flex;
    flex-direction: column;
    gap: 2px;
    padding: 8px 10px 10px;
    margin-bottom: 4px;
    border-bottom: 1px solid var(--ldg-line);
    color: var(--ldg-ink);
}

.ldg-menu__item {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 8px 10px;
    border-radius: var(--ldg-radius);
    font-size: 13.5px;
    color: var(--ldg-ink-2) !important;
    text-decoration: none !important;
}
.ldg-menu__item:hover { background: var(--ldg-field); color: var(--ldg-ink) !important; }
.ldg-menu__item svg { width: 17px; height: 17px; color: var(--ldg-muted); }

.ldg-user {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    height: 32px;
    padding: 0 10px 0 4px;
    border: 1px solid rgba(255, 255, 255, .18);
    border-radius: var(--ldg-radius);
    font-size: 13px;
    font-weight: 500;
}
.ldg-user:hover { background: rgba(255, 255, 255, .1); }
.ldg-user__avatar {
    width: 24px;
    height: 24px;
    border-radius: 4px;
    object-fit: cover;
}
.ldg-user__avatar--initials {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: var(--ldg-teal-100);
    color: var(--ldg-tx-900);
    font-family: var(--ldg-mono);
    font-size: 12px;
    font-weight: 600;
}
.ldg-user__name { max-width: 160px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }

/* Responsive helpers for the shell */
.ldg-only-desktop { display: none !important; }
@media (min-width: 1024px) {
    .ldg-only-mobile { display: none !important; }
    .ldg-only-desktop { display: inline-flex !important; }
}
@media (max-width: 1199px) { .ldg-hide-md { display: none !important; } }
@media (max-width: 767px) {
    .ldg-hide-sm { display: none !important; }
    .ldg-topbar { padding: 0 10px; gap: 8px; }
    .ldg-tbtn { padding: 0 9px; }
}

/* Footer */
.ldg-footer {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin-top: auto;
    padding: 18px 24px 22px;
    font-family: var(--ldg-mono);
    font-size: 11.5px;
    color: var(--ldg-muted);
}

/* ---------- Part 3 · theme components ---------- */
.ldg-page {
    display: flex;
    flex-direction: column;
    gap: 18px;
    padding: 20px 24px 8px;
}

@media (max-width: 767px) {
    .ldg-page { padding: 16px 12px 8px; }
}

.ldg-label {
    display: block;
    font-family: var(--ldg-mono);
    font-size: 11px;
    font-weight: 500;
    letter-spacing: .12em;
    text-transform: uppercase;
    color: var(--ldg-ink-2);
}

.ldg-eyebrow {
    margin: 0 0 4px;
    font-family: var(--ldg-mono);
    font-size: 12px;
    letter-spacing: .04em;
    color: var(--ldg-muted);
}

.ldg-h1 {
    margin: 0;
    font-size: 24px;
    font-weight: 600;
    line-height: 1.25;
    letter-spacing: -.005em;
    text-wrap: balance;
}

.ldg-pagehead {
    display: flex;
    flex-wrap: wrap;
    align-items: flex-end;
    justify-content: space-between;
    gap: 16px;
}

.ldg-pagehead__tools {
    display: flex;
    flex-wrap: wrap;
    align-items: flex-end;
    gap: 12px;
}

/* Labelled field: label on top, filled box below */
.ldg-field { display: flex; flex-direction: column; gap: 6px; min-width: 0; }
.ldg-field--select { width: 240px; max-width: 100%; }

.ldg-fieldbtn {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    height: 38px;
    padding: 0 12px;
    background: var(--ldg-field);
    border: 1px solid var(--ldg-line-2);
    border-radius: var(--ldg-radius);
    font-size: 14px;
    color: var(--ldg-ink);
    white-space: nowrap;
    cursor: pointer;
}
.ldg-fieldbtn:hover { border-color: var(--ldg-teal-700); }
.ldg-fieldbtn svg { width: 17px; height: 17px; color: var(--ldg-muted); }
.ldg-fieldbtn__chev { width: 14px !important; height: 14px !important; }

/* Grid of panels */
.ldg-grid {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    gap: 18px;
}

@media (min-width: 1200px) {
    .ldg-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .ldg-span-2 { grid-column: span 2; }
}

/* Panel */
.ldg-panel {
    background: var(--ldg-surface);
    border: 1px solid var(--ldg-line);
    border-radius: var(--ldg-radius-lg);
    overflow: hidden;
    min-width: 0;
}

.ldg-panel__bar {
    display: flex;
    align-items: center;
    gap: 12px;
    min-height: 40px;
    padding: 0 16px;
    background: var(--ldg-teal-800);
    color: #fff;
}

.ldg-panel__crumbs {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 8px;
    margin: 0 !important;
    font-family: var(--ldg-mono) !important;
    font-size: 13px !important;
    font-weight: 500 !important;
    color: #fff !important;
    line-height: 1.3;
}

.ldg-panel__crumbs > span:first-child { opacity: .78; }

.ldg-panel__meta {
    margin-inline-start: auto;
    color: rgba(255, 255, 255, .8);
}
.ldg-panel__meta .fa,
.ldg-panel__meta i { color: rgba(255, 255, 255, .8) !important; }

.ldg-panel__tools-row {
    display: flex;
    flex-wrap: wrap;
    align-items: flex-end;
    gap: 12px;
    padding: 12px 16px;
    border-bottom: 1px solid var(--ldg-line);
}

.ldg-panel__body { padding: 16px; }
.ldg-panel__body--flush { padding: 4px 0 8px; }
.ldg-panel__body--flush > .dataTables_wrapper,
.ldg-panel__body--flush > table { padding: 0 16px; }

/* Panel head used by the replaced components.widget */
.ldg-panel__head {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    padding: 12px 16px !important;
    border-bottom: 1px solid var(--ldg-line);
    background: var(--ldg-surface);
}

.ldg-panel__title { display: flex; align-items: center; gap: 10px; min-width: 0; }

.ldg-panel__head .box-title {
    margin: 0 !important;
    font-family: var(--ldg-mono) !important;
    font-size: 12px !important;
    font-weight: 600 !important;
    letter-spacing: .1em;
    text-transform: uppercase;
    color: var(--ldg-ink-2) !important;
}

.ldg-panel__tools { display: flex; flex-wrap: wrap; gap: 8px; }
.ldg-panel__help { margin: 0; padding: 8px 16px 0; font-size: 12.5px; color: var(--ldg-muted); }

.ldg-panel.tw-mb-4, .ldg-panel { margin-bottom: 0; }
.content > .ldg-panel + .ldg-panel,
.content > .row + .ldg-panel,
.content > .ldg-panel + .row { margin-top: 18px; }

/* Stat fields */
.ldg-stats {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 14px 16px;
}

@media (min-width: 640px) and (max-width: 1199px) {
    .ldg-stats { grid-template-columns: repeat(4, minmax(0, 1fr)); }
}

@media (max-width: 420px) {
    .ldg-stats { grid-template-columns: minmax(0, 1fr); }
}

.ldg-stat { display: flex; flex-direction: column; gap: 6px; min-width: 0; }

.ldg-stat .ldg-label { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.ldg-stat .ldg-label i { letter-spacing: 0; color: var(--ldg-muted); }

.ldg-stat__value {
    min-height: 42px;
    padding: 8px 12px;
    background: var(--ldg-field);
    border: 1px solid var(--ldg-line);
    border-radius: var(--ldg-radius);
    font-size: 18px;
    font-weight: 600;
    font-variant-numeric: tabular-nums;
    color: var(--ldg-ink);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.ldg-stat--good .ldg-stat__value { background: var(--ldg-good-bg); border-color: transparent; color: var(--ldg-good); }
.ldg-stat--warn .ldg-stat__value { background: var(--ldg-warn-bg); border-color: transparent; color: var(--ldg-warn); }
.ldg-stat--bad .ldg-stat__value { background: var(--ldg-bad-bg); border-color: transparent; color: var(--ldg-bad); }

.ldg-chart { min-height: 320px; }

/* Semantic cell tints, for tables built on this theme */
.ldg-cell-good { background: var(--ldg-good-bg) !important; color: var(--ldg-good) !important; font-weight: 600; }
.ldg-cell-warn { background: var(--ldg-warn-bg) !important; color: var(--ldg-warn) !important; font-weight: 600; }
.ldg-cell-bad { background: var(--ldg-bad-bg) !important; color: var(--ldg-bad) !important; font-weight: 600; }

/* Status chips */
.ldg-chip {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 3px 10px;
    border-radius: 999px;
    border: 1.5px solid var(--ldg-line-2);
    font-family: var(--ldg-mono);
    font-size: 11px;
    font-weight: 500;
    letter-spacing: .1em;
    text-transform: uppercase;
    color: var(--ldg-muted);
}
.ldg-chip--done { border-color: var(--ldg-good); background: var(--ldg-good-bg); color: var(--ldg-good); }

/* ---------- Part 4 · core markup restyled ---------- */

/* Page header used by most core pages */
body.ldg-skin .content-header {
    padding: 20px 24px 4px !important;
}
body.ldg-skin .content-header h1 {
    margin: 0;
    font-size: 22px !important;
    font-weight: 600 !important;
    color: var(--ldg-ink) !important;
}
body.ldg-skin .content-header h1 small {
    font-family: var(--ldg-mono);
    font-size: 12px;
    color: var(--ldg-muted);
}
body.ldg-skin section.content {
    padding: 16px 24px !important;
}
@media (max-width: 767px) {
    body.ldg-skin .content-header { padding: 16px 12px 4px !important; }
    body.ldg-skin section.content { padding: 12px !important; }
}

/* AdminLTE boxes */
body.ldg-skin .box {
    background: var(--ldg-surface);
    border: 1px solid var(--ldg-line) !important;
    border-top: 1px solid var(--ldg-line) !important;
    border-radius: var(--ldg-radius-lg);
    box-shadow: none !important;
}
body.ldg-skin .box-header { border-bottom: 1px solid var(--ldg-line); padding: 12px 16px; }
body.ldg-skin .box-header .box-title {
    font-family: var(--ldg-mono);
    font-size: 12px;
    font-weight: 600;
    letter-spacing: .1em;
    text-transform: uppercase;
    color: var(--ldg-ink-2);
}
body.ldg-skin .box-body { padding: 16px; }
body.ldg-skin .box-primary,
body.ldg-skin .box-solid { border-color: var(--ldg-line) !important; }

/* Tables */
body.ldg-skin .table {
    border: 0 !important;
    font-size: 13.5px;
    color: var(--ldg-ink);
    font-variant-numeric: tabular-nums;
    margin-bottom: 8px;
}
body.ldg-skin .table > thead > tr > th {
    border: 0 !important;
    border-bottom: 1.5px solid var(--ldg-line-2) !important;
    background: transparent !important;
    padding: 12px 10px 8px !important;
    font-family: var(--ldg-mono);
    font-size: 11px;
    font-weight: 500;
    letter-spacing: .1em;
    text-transform: uppercase;
    color: var(--ldg-ink-2);
    white-space: nowrap;
    vertical-align: bottom;
}
body.ldg-skin .table > tbody > tr > td,
body.ldg-skin .table > tbody > tr > th {
    border: 0 !important;
    border-bottom: 1px solid var(--ldg-line) !important;
    padding: 10px !important;
    vertical-align: middle;
}
/* faded lines between columns, so wide rows read across (not in the cards view) */
body.ldg-skin .table > thead > tr > th + th,
body.ldg-skin .table > tbody > tr > td + td,
body.ldg-skin .table > tbody > tr > th + td,
body.ldg-skin .table > tfoot > tr > td + td,
body.ldg-skin .table > tfoot > tr > th + td { border-inline-start: 1px solid color-mix(in srgb, var(--ldg-line) 60%, transparent) !important; }
body.ldg-skin .table > thead > tr > th + th { border-inline-start-color: color-mix(in srgb, var(--ldg-line) 45%, transparent) !important; }
body.ldg-skin .ldg-cards-mode .table > tbody > tr > td,
body.ldg-skin .ldg-cards-mode .table > tbody > tr > th,
body.ldg-skin .table > tbody > tr.ldg-skel-row > td,
body.ldg-skin .table > tbody > tr > td.dataTables_empty { border-inline-start: 0 !important; }
body.ldg-skin .table-striped > tbody > tr:nth-of-type(odd) { background: transparent !important; }
body.ldg-skin .table > tbody > tr:hover { background: color-mix(in srgb, var(--ldg-teal-50) 70%, transparent) !important; }
body.ldg-skin .table > tfoot > tr > td,
body.ldg-skin .table > tfoot > tr > th {
    border: 0 !important;
    border-top: 1.5px solid var(--ldg-line-2) !important;
    background: transparent !important;
    padding: 12px 10px !important;
    font-weight: 600;
}
body.ldg-skin .table .footer-total,
body.ldg-skin .table tr.bg-gray { background: transparent !important; }

/* DataTables chrome */
body.ldg-skin .dataTables_wrapper .dataTables_length label,
body.ldg-skin .dataTables_wrapper .dataTables_filter label,
body.ldg-skin .dataTables_wrapper .dataTables_info {
    font-family: var(--ldg-mono);
    font-size: 12px;
    color: var(--ldg-muted);
    font-weight: 400;
}
body.ldg-skin .dataTables_wrapper .dataTables_filter input,
body.ldg-skin .dataTables_wrapper .dataTables_length select {
    height: 32px;
    background: var(--ldg-field);
    border: 1px solid var(--ldg-line-2);
    border-radius: var(--ldg-radius);
    padding: 0 10px;
}
body.ldg-skin .dataTables_wrapper .dt-buttons .btn,
body.ldg-skin .dataTables_wrapper .dt-buttons .tw-dw-btn {
    background: var(--ldg-surface) !important;
    border: 1px solid var(--ldg-line-2) !important;
    color: var(--ldg-ink-2) !important;
    box-shadow: none !important;
    border-radius: var(--ldg-radius) !important;
    font-size: 12px !important;
}
body.ldg-skin .pagination > li > a,
body.ldg-skin .pagination > li > span {
    border-color: var(--ldg-line) !important;
    color: var(--ldg-ink-2) !important;
    font-family: var(--ldg-mono);
    font-size: 12px;
}
body.ldg-skin .pagination > .active > a,
body.ldg-skin .pagination > .active > span {
    background: var(--ldg-teal-800) !important;
    border-color: var(--ldg-teal-800) !important;
    color: #fff !important;
}

/* Forms */
body.ldg-skin .form-control {
    height: 38px;
    background: var(--ldg-field);
    border: 1px solid var(--ldg-line-2);
    border-radius: var(--ldg-radius) !important;
    box-shadow: none !important;
    color: var(--ldg-ink);
    font-size: 14px;
}
body.ldg-skin textarea.form-control { height: auto; }
body.ldg-skin .form-control:focus {
    background: var(--ldg-surface);
    border-color: var(--ldg-teal-700);
}
body.ldg-skin .form-control[readonly],
body.ldg-skin .form-control[disabled] { background: var(--ldg-field); color: var(--ldg-ink-2); }
body.ldg-skin .form-group > label,
body.ldg-skin label.control-label {
    font-family: var(--ldg-mono);
    font-size: 11px;
    font-weight: 500;
    letter-spacing: .1em;
    text-transform: uppercase;
    color: var(--ldg-ink-2);
}
body.ldg-skin .input-group-addon {
    background: var(--ldg-field);
    border-color: var(--ldg-line-2);
    color: var(--ldg-muted);
}

/* select2 */
body.ldg-skin .select2-container--default .select2-selection--single,
body.ldg-skin .select2-container--default .select2-selection--multiple {
    min-height: 38px;
    background: var(--ldg-field);
    border: 1px solid var(--ldg-line-2) !important;
    border-radius: var(--ldg-radius) !important;
}
body.ldg-skin .select2-container--default .select2-selection--single .select2-selection__rendered {
    line-height: 36px;
    color: var(--ldg-ink);
    padding-inline-start: 12px;
}
body.ldg-skin .select2-container--default .select2-selection--single .select2-selection__arrow { height: 36px; }
body.ldg-skin .select2-container--default.select2-container--focus .select2-selection--multiple,
body.ldg-skin .select2-container--default.select2-container--open .select2-selection--single { border-color: var(--ldg-teal-700) !important; }
body.ldg-skin .select2-container--default .select2-results__option--highlighted[aria-selected] {
    background: var(--ldg-teal-800);
}
body.ldg-skin .select2-dropdown {
    border-color: var(--ldg-line-2);
    border-radius: var(--ldg-radius);
    box-shadow: 0 12px 32px rgba(7, 47, 44, .14);
}

/* Buttons */
body.ldg-skin .btn {
    border-radius: var(--ldg-radius);
    font-weight: 600;
    box-shadow: none;
}
body.ldg-skin .btn-primary,
body.ldg-skin .bg-primary,
body.ldg-skin .tw-dw-btn-primary {
    background-color: var(--ldg-teal-800) !important;
    border-color: var(--ldg-teal-800) !important;
    color: #fff !important;
}
body.ldg-skin .btn-primary:hover,
body.ldg-skin .tw-dw-btn-primary:hover {
    background-color: var(--ldg-teal-700) !important;
    border-color: var(--ldg-teal-700) !important;
}
body.ldg-skin .btn-default,
body.ldg-skin .tw-dw-btn-neutral {
    background: var(--ldg-surface) !important;
    border: 1px solid var(--ldg-line-2) !important;
    color: var(--ldg-ink) !important;
}
body.ldg-skin .btn-default:hover,
body.ldg-skin .tw-dw-btn-neutral:hover { background: var(--ldg-field) !important; }
body.ldg-skin .btn-success,
body.ldg-skin .tw-dw-btn-success { background-color: var(--ldg-good) !important; border-color: var(--ldg-good) !important; color: #fff !important; }
body.ldg-skin .btn-danger,
body.ldg-skin .tw-dw-btn-error { background-color: var(--ldg-bad) !important; border-color: var(--ldg-bad) !important; color: #fff !important; }
body.ldg-skin .btn-warning,
body.ldg-skin .tw-dw-btn-warning { background-color: var(--ldg-amber) !important; border-color: var(--ldg-amber) !important; color: var(--ldg-teal-950) !important; }
body.ldg-skin .tw-dw-btn-outline.tw-dw-btn-primary,
body.ldg-skin .tw-dw-btn-outline.tw-dw-btn-info {
    background: transparent !important;
    color: var(--ldg-tx-800) !important;
    border-color: var(--ldg-teal-800) !important;
}
body.ldg-skin .tw-dw-btn-outline.tw-dw-btn-primary:hover,
body.ldg-skin .tw-dw-btn-outline.tw-dw-btn-info:hover { background: var(--ldg-teal-50) !important; }

/* Bootstrap labels used as statuses */
body.ldg-skin .label {
    display: inline-block;
    padding: 3px 8px;
    border-radius: 999px;
    font-family: var(--ldg-mono);
    font-size: 10.5px;
    font-weight: 500;
    letter-spacing: .08em;
    text-transform: uppercase;
}
body.ldg-skin .label-success, body.ldg-skin .bg-green { background: var(--ldg-good-bg) !important; color: var(--ldg-good) !important; }
body.ldg-skin .label-danger, body.ldg-skin .bg-red { background: var(--ldg-bad-bg) !important; color: var(--ldg-bad) !important; }
body.ldg-skin .label-warning, body.ldg-skin .bg-yellow { background: var(--ldg-warn-bg) !important; color: var(--ldg-warn) !important; }
body.ldg-skin .label-info, body.ldg-skin .label-primary, body.ldg-skin .bg-info, body.ldg-skin .bg-light-blue, body.ldg-skin .bg-aqua { background: var(--ldg-teal-50) !important; color: var(--ldg-tx-900) !important; }

/* Modals */
body.ldg-skin .modal-content {
    border: 1px solid var(--ldg-line);
    border-radius: var(--ldg-radius-lg);
    overflow: hidden;
    box-shadow: 0 24px 60px rgba(7, 47, 44, .25);
}
body.ldg-skin .modal-header {
    background: var(--ldg-teal-800);
    color: #fff;
    border-bottom: 0;
    padding: 12px 16px;
}
body.ldg-skin .modal-header .modal-title {
    font-family: var(--ldg-mono);
    font-size: 14px;
    font-weight: 500;
    color: #fff;
}
body.ldg-skin .modal-header .close { color: #fff; opacity: .8; text-shadow: none; }
body.ldg-skin .modal-footer { border-top: 1px solid var(--ldg-line); }

/* Nav tabs */
body.ldg-skin .nav-tabs-custom { box-shadow: none; border: 1px solid var(--ldg-line); border-radius: var(--ldg-radius-lg); }
body.ldg-skin .nav-tabs-custom > .nav-tabs > li.active { border-top-color: var(--ldg-teal-800); }

/* Core filter component (components.filters) */
body.ldg-skin .pf-card,
body.ldg-skin [class*="pf-"] .pf-header { border-color: var(--ldg-line) !important; }

/* Popovers and tooltips */
body.ldg-skin .popover { border-color: var(--ldg-line); border-radius: var(--ldg-radius-lg); box-shadow: 0 12px 32px rgba(7, 47, 44, .16); }
body.ldg-skin .tooltip-inner { background: var(--ldg-teal-950); font-family: var(--ldg-mono); font-size: 11.5px; }

/* Back-to-top */
body.ldg-skin .scrolltop .scroll { background: var(--ldg-teal-800) !important; }

/* Print: hide themed chrome (core handles the rest) */
@media print {
    .ldg-side, .ldg-topbar, .ldg-footer { display: none !important; }
}


@media (prefers-reduced-motion: reduce) {
    body.ldg-skin * { transition: none !important; }
}

/* Long lists inside dashboard panels scroll inside the panel; headings stay visible */
.ldg-panel__body--scroll {
    max-height: 520px;
    overflow: auto;
}
.ldg-panel__body--scroll .table > thead > tr > th {
    position: sticky;
    top: 0;
    z-index: 2;
    background: var(--ldg-surface) !important;
}

/* Some modules add inline colours to their sidebar item; keep the menu uniform */
.ldg-side #side-bar a[style] {
    background-color: transparent !important;
}
.ldg-side #side-bar a[style].theme-sidebar-active {
    background-color: var(--ldg-teal-50) !important;
}

/* Keep wide tables inside their panel instead of widening the page */
.ldg-page,
.ldg-grid > *,
body.ldg-skin section.content,
body.ldg-skin .content-header { min-width: 0; max-width: 100%; }
/* only the table scrolls sideways (header + body); toolbar, totals bar and pagination stay put.
   Tables without DataTables' own scrollX are wrapped in .ldg-tscroll by theme.js */
body.ldg-skin .dataTables_wrapper { overflow-x: visible; }
body.ldg-skin .ldg-tscroll { overflow-x: auto; max-width: 100%; }
/* products list: room for a row's Actions menu when only a few rows are shown (the scroller clips what overflows) */
body.ldg-skin .ldg-tscroll:has(> #product_table),
body.ldg-skin .dataTables_scrollBody:has(> #product_table) { min-height: 420px !important; }
body.ldg-skin .ldg-panel__body,
body.ldg-skin .box-body { overflow-x: auto; }

/* ======================================================================
 * POS screen (pos/create). Columns: cart | products (optional) | checkout rail
 * ====================================================================== */
body.ldg-skin.lockscreen #scrollable-container { overflow: hidden !important; }
body.ldg-skin.lockscreen #scrollable-container > footer { display: none; }

/* POS top bar */
body.ldg-skin.lockscreen .ldg-posbar.pos-header { padding: 0 12px !important; margin: 0 !important; }
.ldg-posbar .ldg-topbar__left { gap: 12px; }
.ldg-posbar .ldg-topbar__right { gap: 6px; }
.ldg-posbar__location {
    display: flex;
    align-items: center;
    gap: 8px;
    padding-inline-start: 12px;
    border-inline-start: 1px solid rgba(255, 255, 255, .2);
    min-width: 0;
}
.ldg-posbar__label {
    font-family: var(--ldg-mono);
    font-size: 10.5px;
    letter-spacing: .12em;
    text-transform: uppercase;
    color: rgba(255, 255, 255, .7);
}
.ldg-posbar__location select.form-control {
    height: 30px;
    min-width: 170px;
    max-width: 240px;
    padding: 0 8px;
    border: 0;
    border-radius: var(--ldg-radius);
    background: rgba(255, 255, 255, .12);
    color: #fff;
    font-size: 13px;
    box-shadow: none;
}
.ldg-posbar__location select.form-control option { color: var(--ldg-ink); }
.ldg-posbar__location strong { font-size: 13px; }
.ldg-posbar__clock {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 0 8px;
    font-family: var(--ldg-mono);
    font-size: 12.5px;
    color: rgba(255, 255, 255, .8);
}
.ldg-posbar__clock svg { width: 16px; height: 16px; cursor: help; }
.ldg-posbar__sep { width: 1px; height: 20px; background: rgba(255, 255, 255, .2); margin: 0 2px; }
.ldg-posbar .ldg-tbtn { background: transparent; }
.ldg-posbar .ldg-tbtn:hover { background: rgba(255, 255, 255, .1); }

/* Grid */
body.ldg-skin .ldg-pos {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 380px;
    height: calc(100vh - var(--ldg-bar-h));
    height: calc(100dvh - var(--ldg-bar-h));
    margin: 0 !important;
    background: var(--ldg-bg);
}
body.ldg-skin .ldg-pos--products { grid-template-columns: minmax(0, 1fr) var(--ldg-pos-products-w, minmax(260px, 28%)) 380px; }

.ldg-pos__cart,
.ldg-pos__products,
.ldg-pos__rail {
    display: flex;
    flex-direction: column;
    min-width: 0;
    min-height: 0;
    background: var(--ldg-surface);
}
.ldg-pos__cart { border-inline-end: 1px solid var(--ldg-line); }
.ldg-pos__products { border-inline-end: 1px solid var(--ldg-line); background: var(--ldg-bg); }
.ldg-pos__head { padding: 12px 16px 8px; }

/* Search */
.ldg-pos__search {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 12px 16px;
    border-bottom: 1px solid var(--ldg-line);
}
body.ldg-skin .ldg-pos__search-input.form-control {
    flex: 1;
    min-width: 0;
    height: 44px;
    font-size: 16px;
    padding: 0 14px;
}
.ldg-sqbtn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    width: 44px;
    height: 44px;
    padding: 0;
    background: var(--ldg-surface);
    border: 1px solid var(--ldg-line-2);
    border-radius: var(--ldg-radius);
    color: var(--ldg-ink-2);
    cursor: pointer;
    font-size: 16px;
}
.ldg-sqbtn:hover { border-color: var(--ldg-teal-700); color: var(--ldg-tx-800); background: var(--ldg-teal-50); }
.ldg-sqbtn:disabled { opacity: .45; cursor: not-allowed; }
.ldg-sqbtn svg { width: 20px; height: 20px; }

/* Cart lines */
.ldg-pos__lines { flex: 1 1 auto; overflow: auto; padding: 0 8px; }
body.ldg-skin #pos_table { margin: 0; table-layout: auto; }
body.ldg-skin #pos_table > thead > tr > th {
    position: sticky;
    top: 0;
    z-index: 2;
    background: var(--ldg-surface) !important;
    padding-top: 14px !important;
}
body.ldg-skin #pos_table .pos-th-sr-no { width: 40px; }
body.ldg-skin #pos_table .pos-th-qty { width: 150px; }
body.ldg-skin #pos_table .pos-th-action { width: 48px; }
body.ldg-skin #pos_table > tbody > tr > td { padding: 10px 8px !important; }
body.ldg-skin #pos_table .serial_no { font-family: var(--ldg-mono); color: var(--ldg-muted); text-align: center; }
body.ldg-skin #pos_table:not(.pos-has-rows) thead { display: none !important; }
body.ldg-skin #pos_table.pos-has-rows .pos-empty-state-row { display: none !important; }
body.ldg-skin #pos_table .pos-empty-state-row:hover,
body.ldg-skin #pos_table .pos-empty-state-row > td { background: transparent !important; border: 0 !important; }

body.ldg-skin #pos_table .text-link { color: var(--ldg-ink) !important; }
body.ldg-skin #pos_table .text-link .fa-info-circle { color: var(--ldg-muted); font-size: 12px; }
body.ldg-skin #pos_table .input-number { display: flex; width: 100%; max-width: 150px; margin: 0 auto; }
body.ldg-skin #pos_table .input-number .input-group-btn { display: flex !important; width: auto; }
body.ldg-skin #pos_table .input-number .btn {
    height: 36px;
    width: 34px;
    padding: 0 !important;
    background: var(--ldg-field) !important;
    border: 1px solid var(--ldg-line-2) !important;
    color: var(--ldg-ink-2) !important;
    border-radius: 0;
}
body.ldg-skin #pos_table .input-number .input-group-btn:first-child .btn { border-radius: var(--ldg-radius) 0 0 var(--ldg-radius); }
body.ldg-skin #pos_table .input-number .input-group-btn:last-child .btn { border-radius: 0 var(--ldg-radius) var(--ldg-radius) 0; }
[dir="rtl"] body.ldg-skin #pos_table .input-number .input-group-btn:first-child .btn { border-radius: 0 var(--ldg-radius) var(--ldg-radius) 0; }
[dir="rtl"] body.ldg-skin #pos_table .input-number .input-group-btn:last-child .btn { border-radius: var(--ldg-radius) 0 0 var(--ldg-radius); }
body.ldg-skin #pos_table .input-number .pos_quantity {
    height: 36px;
    min-width: 0;
    border-radius: 0 !important;
    border-inline: 0;
    background: var(--ldg-surface);
    font-variant-numeric: tabular-nums;
}
body.ldg-skin #pos_table .pos_unit_price_inc_tax,
body.ldg-skin #pos_table .pos_line_total { height: 36px; text-align: end; font-variant-numeric: tabular-nums; }
body.ldg-skin #pos_table .pos_line_total_text { font-weight: 600; font-variant-numeric: tabular-nums; }
body.ldg-skin #pos_table .pos_remove_row {
    width: 32px !important;
    height: 32px !important;
    border-radius: var(--ldg-radius) !important;
    background: transparent !important;
    border: 1px solid var(--ldg-line-2) !important;
    color: var(--ldg-bad) !important;
}
body.ldg-skin #pos_table .pos_remove_row:hover { background: var(--ldg-bad-bg) !important; border-color: transparent !important; }

.ldg-pos__empty {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 6px;
    padding: 72px 24px;
    text-align: center;
    color: var(--ldg-muted);
}
.ldg-pos__empty svg { width: 44px; height: 44px; color: var(--ldg-line-2); margin-bottom: 6px; }
.ldg-pos__empty strong { font-size: 15px; color: var(--ldg-ink-2); }
.ldg-pos__empty span { font-size: 13px; max-width: 34ch; }

/* Products column (core pos_sidebar inside) */
body.ldg-skin .ldg-pos__products .pos-sidebar-root { box-shadow: none !important; border-radius: 0 !important; background: transparent !important; flex: 1; display: flex; flex-direction: column; min-height: 0; }
body.ldg-skin .ldg-pos__products #product_list_body { max-height: none !important; flex: 1; }
body.ldg-skin .ldg-pos__products .pos-sidebar-root > .row:last-child { flex: 1; min-height: 0; overflow: auto; }
body.ldg-skin .ldg-pos__products .product_box { border-radius: var(--ldg-radius) !important; border-color: var(--ldg-line) !important; box-shadow: none !important; }
body.ldg-skin .ldg-pos__products .product_box:hover { border-color: var(--ldg-teal-700) !important; }
body.ldg-skin .ldg-pos__products .product_price { color: var(--ldg-tx-800) !important; }

/* Rail */
.ldg-pos__rail-scroll { flex: 1 1 auto; overflow-y: auto; min-height: 0; }
.ldg-rail-sec {
    display: flex;
    flex-direction: column;
    gap: 8px;
    padding: 14px 16px;
    border-bottom: 1px solid var(--ldg-line);
}
.ldg-pos__customer { display: flex; gap: 6px; align-items: stretch; }
.ldg-pos__customer-select { flex: 1; min-width: 0; }
body.ldg-skin .ldg-pos__customer .select2-container { width: 100% !important; }
body.ldg-skin .ldg-pos__customer .select2-container--default .select2-selection--single { height: 44px; }
body.ldg-skin .ldg-pos__customer .select2-container--default .select2-selection--single .select2-selection__rendered { line-height: 42px; font-weight: 600; }
body.ldg-skin .ldg-pos__customer .select2-container--default .select2-selection--single .select2-selection__arrow { height: 42px; }
.ldg-pos__due { color: var(--ldg-bad); font-size: 12.5px; }

.ldg-pos__fields { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
.ldg-pfield { display: flex; flex-direction: column; gap: 4px; min-width: 0; }
.ldg-pfield--check { grid-column: 1 / -1; flex-direction: row; align-items: center; gap: 6px; }
.ldg-pfield--check label { margin: 0; font-weight: 500; }
.ldg-pfield__label {
    font-family: var(--ldg-mono);
    font-size: 10.5px;
    letter-spacing: .1em;
    text-transform: uppercase;
    color: var(--ldg-muted);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}
body.ldg-skin .ldg-pfield .form-control { height: 36px; font-size: 13px; }
body.ldg-skin .ldg-pfield .select2-container { width: 100% !important; }
body.ldg-skin .ldg-pfield .select2-container--default .select2-selection--single { min-height: 36px; height: 36px; }
body.ldg-skin .ldg-pfield .select2-container--default .select2-selection--single .select2-selection__rendered { line-height: 34px; font-size: 13px; }
body.ldg-skin .ldg-pfield .select2-container--default .select2-selection--single .select2-selection__arrow { height: 34px; }
.ldg-pos__module-fields:empty { display: none; }
body.ldg-skin .ldg-pos__module-fields [class*="col-"] { width: 100%; float: none; padding: 0; }

/* Totals ledger */
body.ldg-skin .pos_form_totals { margin: 0 !important; display: flex !important; }
.ldg-ledger { margin: 0; display: flex; flex-direction: column; }
.ldg-ledger__row {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: 12px;
    padding: 6px 0;
    border-bottom: 1px dashed var(--ldg-line);
}
.ldg-ledger__row:last-child { border-bottom: 0; }
.ldg-ledger__row.hide { display: none; }
.ldg-ledger dt { font-weight: 400; font-size: 13.5px; color: var(--ldg-ink-2); display: flex; align-items: center; gap: 6px; }
.ldg-ledger dd { margin: 0; font-size: 14px; font-weight: 600; font-variant-numeric: tabular-nums; color: var(--ldg-ink); white-space: nowrap; }
.ldg-ledger__bad { color: var(--ldg-bad) !important; }
.ldg-ledger__edit {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 22px;
    height: 22px;
    padding: 0;
    border: 1px solid var(--ldg-line-2);
    border-radius: 4px;
    background: var(--ldg-surface);
    color: var(--ldg-tx-800);
    font-size: 10px;
    cursor: pointer;
}
.ldg-ledger__edit:hover { background: var(--ldg-teal-50); border-color: var(--ldg-teal-700); }

/* Checkout (pinned) */
.ldg-pos__checkout {
    display: flex;
    flex-direction: column;
    gap: 10px;
    padding: 12px 16px 14px;
    border-top: 1.5px solid var(--ldg-line-2);
    background: var(--ldg-surface);
}
.ldg-pos__payable {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    padding: 12px 14px;
    background: var(--ldg-teal-900);
    border-radius: var(--ldg-radius);
}
.ldg-pos__payable .ldg-label { color: rgba(255, 255, 255, .72); }
.ldg-pos__payable-value {
    font-size: 28px;
    font-weight: 700;
    line-height: 1.1;
    color: #fff;
    font-variant-numeric: tabular-nums;
    white-space: nowrap;
}
.ldg-pos__actions { display: flex; flex-direction: column; gap: 8px; }
.ldg-pos__pay { display: grid; grid-template-columns: repeat(auto-fit, minmax(0, 1fr)); gap: 8px; }
.ldg-paybtn {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 4px;
    min-height: 58px;
    padding: 6px;
    background: var(--ldg-surface);
    border: 1.5px solid var(--ldg-teal-800);
    border-radius: var(--ldg-radius);
    color: var(--ldg-tx-900);
    font-size: 13px;
    font-weight: 600;
    line-height: 1.2;
    text-align: center;
    cursor: pointer;
}
.ldg-paybtn i { font-size: 17px; }
.ldg-paybtn:hover { background: var(--ldg-teal-50); }
.ldg-paybtn--cash { background: var(--ldg-teal-800); color: #fff; }
.ldg-paybtn--cash:hover { background: var(--ldg-teal-700); }
.ldg-paybtn.hide { display: none; }
.ldg-paybtn:disabled, .ldg-savebtn:disabled { opacity: .5; cursor: not-allowed; }

.ldg-pos__save { display: grid; grid-template-columns: repeat(auto-fit, minmax(0, 1fr)); gap: 6px; }
.ldg-savebtn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 6px;
    height: 36px;
    padding: 0 6px;
    background: var(--ldg-field);
    border: 1px solid var(--ldg-line-2);
    border-radius: var(--ldg-radius);
    color: var(--ldg-ink-2);
    font-size: 12.5px;
    font-weight: 600;
    white-space: nowrap;
    cursor: pointer;
}
.ldg-savebtn i { color: var(--ldg-muted); font-size: 12px; }
.ldg-savebtn:hover { background: var(--ldg-surface); border-color: var(--ldg-teal-700); color: var(--ldg-tx-900); }
.ldg-savebtn.hide { display: none; }

.ldg-pos__meta { display: flex; justify-content: space-between; align-items: center; gap: 8px; }
.ldg-linkbtn {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 4px 2px;
    border: 0;
    background: none;
    font-family: var(--ldg-mono);
    font-size: 12px;
    color: var(--ldg-ink-2);
    cursor: pointer;
}
.ldg-linkbtn:hover { color: var(--ldg-tx-800); text-decoration: underline; }
.ldg-linkbtn--bad { color: var(--ldg-bad); }
.ldg-linkbtn--bad:hover { color: var(--ldg-bad); }
.ldg-linkbtn.hide { display: none; }

/* POS on tablets and phones: one column, page scrolls, checkout stays reachable */
@media (max-width: 1023px) {
    body.ldg-skin.lockscreen #scrollable-container { overflow-y: auto !important; }
    body.ldg-skin .ldg-pos,
    body.ldg-skin .ldg-pos--products { grid-template-columns: minmax(0, 1fr); height: auto; }
    .ldg-pos__cart { border-inline-end: 0; border-bottom: 1px solid var(--ldg-line); }
    .ldg-pos__lines { max-height: none; overflow: visible; }
    .ldg-pos__products { display: none; }
    .ldg-pos__rail-scroll { overflow: visible; }
    .ldg-pos__checkout { position: sticky; bottom: 0; z-index: 5; box-shadow: 0 -8px 24px rgba(7, 47, 44, .08); }
    .ldg-posbar__location .ldg-posbar__label { display: none; }
    .ldg-posbar__location select.form-control { min-width: 120px; }
}
@media (max-width: 767px) {
    .ldg-posbar .ldg-crumbs { display: none; }
    .ldg-posbar__location { border: 0; padding: 0; }
    .ldg-posbar .ldg-topbar__right { overflow-x: auto; }
    .ldg-pos__fields { grid-template-columns: minmax(0, 1fr); }
    .ldg-pos__save { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    body.ldg-skin #pos_table .pos-th-qty { width: 110px; }
}
.ldg-linkbtn i { font-size: 12px !important; width: auto; height: auto; }
.ldg-pos__save { grid-template-columns: repeat(2, minmax(0, 1fr)); }

/* POS payment modal: summary panel in theme colours instead of orange */
body.ldg-skin #modal_payment .box.bg-orange {
    background: var(--ldg-teal-900) !important;
    color: #fff !important;
    border: 0 !important;
    border-radius: var(--ldg-radius-lg);
}
body.ldg-skin #modal_payment .box.bg-orange hr { border-color: rgba(255, 255, 255, .18); }
body.ldg-skin #modal_payment .box.bg-orange strong,
body.ldg-skin #modal_payment .box.bg-orange .lead { color: #fff; font-variant-numeric: tabular-nums; }
body.ldg-skin #modal_payment .box.bg-orange strong:not(.lead) {
    font-family: var(--ldg-mono);
    font-size: 11px;
    font-weight: 500;
    letter-spacing: .1em;
    text-transform: uppercase;
    color: rgba(255, 255, 255, .7);
}
body.ldg-skin #modal_payment .payment_row.bg-lightgray { background: var(--ldg-field) !important; border-radius: var(--ldg-radius); }
/* core lockscreen CSS hides this label at tablet widths; keep it readable in the theme */
body.ldg-skin.lockscreen #recent-transactions.ldg-linkbtn { font-size: 12px !important; padding: 4px 2px !important; }
body.ldg-skin.lockscreen #recent-transactions.ldg-linkbtn i { font-size: 12px !important; }
/* core CSS pins .pos-form-actions to the screen bottom on phones; the theme keeps it inside the checkout */
body.ldg-skin .ldg-pos__actions.pos-form-actions {
    position: static !important;
    inset: auto !important;
    width: auto !important;
    margin: 0 !important;
    padding: 0 !important;
    box-shadow: none !important;
    background: transparent !important;
    border-radius: 0 !important;
}

/* ---------- POS edit ---------- */
.ldg-pos__invoice {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: 8px;
    padding: 8px 10px;
    margin-bottom: 4px;
    background: var(--ldg-teal-50);
    border-radius: var(--ldg-radius);
}
.ldg-pos__invoice strong { font-family: var(--ldg-mono); font-size: 14px; color: var(--ldg-tx-900); }
.ldg-pos__cart { position: relative; }
.ldg-pos__lock {
    position: absolute;
    inset: 0;
    z-index: 6;
    cursor: not-allowed;
    background: repeating-linear-gradient(135deg, transparent 0 10px, rgba(13, 92, 86, .035) 10px 20px);
}

/* ======================================================================
 * Selects, dropdown lists and drawers (themed pages only)
 * ====================================================================== */

/* Native <select> */
body.ldg-skin select.form-control:not([multiple]) {
    -webkit-appearance: none;
    appearance: none;
    padding-inline-end: 32px;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%233a4542' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 9l6 6l6 -6'/%3E%3C/svg%3E");
    background-repeat: no-repeat;
    background-size: 14px 14px;
    background-position: right 10px center;
    cursor: pointer;
}
[dir="rtl"] body.ldg-skin select.form-control:not([multiple]) { background-position: left 10px center; }
body.ldg-skin select.form-control[multiple] { height: auto; padding: 6px; }
body.ldg-skin select.form-control option:checked { background: var(--ldg-teal-50); color: var(--ldg-tx-900); }
/* POS bar location select sits on teal: white chevron */
.ldg-posbar__location select.form-control {
    -webkit-appearance: none;
    appearance: none;
    padding-inline-end: 28px !important;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23ffffff' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 9l6 6l6 -6'/%3E%3C/svg%3E");
    background-repeat: no-repeat;
    background-size: 14px 14px;
    background-position: right 8px center;
}
[dir="rtl"] .ldg-posbar__location select.form-control { background-position: left 8px center; }

/* select2: closed box */
body.ldg-skin .select2-container--default .select2-selection--single .select2-selection__arrow b {
    border: 0 !important;
    width: 14px;
    height: 14px;
    margin: -7px 0 0 -7px;
    background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%233a4542' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 9l6 6l6 -6'/%3E%3C/svg%3E") center / 14px 14px no-repeat;
}
body.ldg-skin .select2-container--default.select2-container--open .select2-selection--single .select2-selection__arrow b { transform: rotate(180deg); }
body.ldg-skin .select2-container--default .select2-selection--single .select2-selection__placeholder { color: var(--ldg-muted); }
body.ldg-skin .select2-container--default .select2-selection--single .select2-selection__clear { color: var(--ldg-muted); margin-inline-end: 6px; }
body.ldg-skin .select2-container--default.select2-container--disabled .select2-selection--single { background: var(--ldg-field); opacity: .7; }
/* select2: multiple */
body.ldg-skin .select2-container--default .select2-selection--multiple { padding: 2px 6px; }
body.ldg-skin .select2-container--default .select2-selection--multiple .select2-selection__choice {
    background: var(--ldg-teal-50) !important;
    border: 1px solid var(--ldg-teal-100) !important;
    border-radius: 4px !important;
    color: var(--ldg-tx-900) !important;
    font-size: 12.5px;
    padding: 2px 8px !important;
    margin-top: 5px !important;
}
body.ldg-skin .select2-container--default .select2-selection--multiple .select2-selection__choice__remove { color: var(--ldg-tx-700) !important; margin-inline-end: 4px; }
/* select2: open list (appended to <body>) */
body.ldg-skin .select2-dropdown {
    background: var(--ldg-surface);
    border: 1px solid var(--ldg-line-2) !important;
    border-radius: var(--ldg-radius) !important;
    box-shadow: 0 14px 34px rgba(7, 47, 44, .16);
    overflow: hidden;
    font-family: var(--ldg-sans);
    z-index: 4100;
}
body.ldg-skin .select2-container--open .select2-dropdown--below { margin-top: 4px; }
body.ldg-skin .select2-container--open .select2-dropdown--above { margin-top: -4px; }
body.ldg-skin .select2-search--dropdown { padding: 8px; border-bottom: 1px solid var(--ldg-line); }
body.ldg-skin .select2-search--dropdown .select2-search__field {
    height: 34px;
    padding: 0 10px;
    background: var(--ldg-field);
    border: 1px solid var(--ldg-line-2) !important;
    border-radius: var(--ldg-radius);
    outline: 0;
    font-size: 13.5px;
}
body.ldg-skin .select2-search--dropdown .select2-search__field:focus { border-color: var(--ldg-teal-700) !important; background: var(--ldg-surface); }
body.ldg-skin .select2-results__options { padding: 4px; }
body.ldg-skin .select2-results__option {
    padding: 8px 10px;
    border-radius: 4px;
    font-size: 13.5px;
    color: var(--ldg-ink);
}
body.ldg-skin .select2-container--default .select2-results__option[aria-selected="true"],
body.ldg-skin .select2-container--default .select2-results__option--selected {
    background: var(--ldg-teal-50);
    color: var(--ldg-tx-900);
    font-weight: 600;
}
body.ldg-skin .select2-container--default .select2-results__option--highlighted[aria-selected],
body.ldg-skin .select2-container--default .select2-results__option--highlighted {
    background: var(--ldg-teal-800) !important;
    color: #fff !important;
}
body.ldg-skin .select2-container--default .select2-results__option[aria-disabled="true"] { color: var(--ldg-line-2); }
body.ldg-skin .select2-container--default .select2-results__group {
    padding: 10px 10px 4px;
    font-family: var(--ldg-mono);
    font-size: 10.5px;
    font-weight: 500;
    letter-spacing: .12em;
    text-transform: uppercase;
    color: var(--ldg-muted);
}
body.ldg-skin .select2-results__message { color: var(--ldg-muted); font-size: 13px; }

/* jQuery UI autocomplete: product search results (appended to <body>) */
body.ldg-skin .ui-autocomplete {
    max-height: 420px;
    padding: 4px;
    background: var(--ldg-surface);
    border: 1px solid var(--ldg-line-2) !important;
    border-radius: var(--ldg-radius);
    box-shadow: 0 14px 34px rgba(7, 47, 44, .16);
    font-family: var(--ldg-sans);
    z-index: 4100 !important;
}
body.ldg-skin .ui-autocomplete .ui-menu-item { border-bottom: 1px solid var(--ldg-line); }
body.ldg-skin .ui-autocomplete .ui-menu-item:last-child { border-bottom: 0; }
body.ldg-skin .ui-autocomplete .ui-menu-item > div,
body.ldg-skin .ui-autocomplete .ui-menu-item > a,
body.ldg-skin .ui-autocomplete > li.ui-state-disabled {
    padding: 8px 10px;
    border: 0 !important;
    border-radius: 4px;
    margin: 0 !important;
    font-size: 13.5px;
    line-height: 1.45;
    color: var(--ldg-ink);
    background: transparent;
}
body.ldg-skin .ui-autocomplete .ui-state-active,
body.ldg-skin .ui-autocomplete .ui-menu-item > div.ui-state-active {
    background: var(--ldg-teal-800) !important;
    color: #fff !important;
}
body.ldg-skin .ui-autocomplete > li.ui-state-disabled { opacity: 1; color: var(--ldg-bad); background: var(--ldg-bad-bg); margin: 2px 0 !important; }

/* Bootstrap dropdown menus (row "Actions", export buttons, …) */
body.ldg-skin .dropdown-menu {
    padding: 4px;
    border: 1px solid var(--ldg-line-2);
    border-radius: var(--ldg-radius);
    box-shadow: 0 14px 34px rgba(7, 47, 44, .16);
    font-size: 13.5px;
}
body.ldg-skin .dropdown-menu > li > a { padding: 7px 10px; border-radius: 4px; color: var(--ldg-ink-2); }
body.ldg-skin .dropdown-menu > li > a:hover,
body.ldg-skin .dropdown-menu > li > a:focus { background: var(--ldg-teal-50); color: var(--ldg-tx-900); }
body.ldg-skin .dropdown-menu .divider { background: var(--ldg-line); }

/* POS category / brand drawers (daisyUI drawer from core pos_sidebar) */
body.ldg-skin .pos-drawer-panel { background: var(--ldg-surface) !important; font-family: var(--ldg-sans); }
body.ldg-skin .pos-drawer-panel::before { height: 0; }
body.ldg-skin .pos-drawer-panel > div:first-child {
    background: var(--ldg-teal-800);
    border-bottom: 0 !important;
    padding: 16px 20px !important;
}
body.ldg-skin .pos-drawer-panel > div:first-child h3 {
    color: #fff !important;
    font-family: var(--ldg-mono) !important;
    font-size: 15px !important;
    font-weight: 500 !important;
}
body.ldg-skin .pos-drawer-panel > div:first-child .tw-font-mono { color: rgba(255, 255, 255, .7) !important; }
body.ldg-skin .pos-drawer-panel .close-side-bar-category,
body.ldg-skin .pos-drawer-panel .close-side-bar-brand {
    background: transparent !important;
    border: 1px solid rgba(255, 255, 255, .25) !important;
    color: #fff !important;
    border-radius: var(--ldg-radius) !important;
}
body.ldg-skin .pos-drawer-panel .close-side-bar-category:hover,
body.ldg-skin .pos-drawer-panel .close-side-bar-brand:hover { background: rgba(255, 255, 255, .12) !important; }
/* drawer backdrop: dark only while that drawer is open (the closed drawer keeps a full-size, see-through overlay) */
body.ldg-skin .tw-dw-drawer-overlay { background: transparent !important; }
body.ldg-skin .tw-dw-drawer-toggle:checked ~ .tw-dw-drawer-side > .tw-dw-drawer-overlay { background: rgba(7, 47, 44, .45) !important; }
body.ldg-skin .pos-drawer-body { background: var(--ldg-bg); }
body.ldg-skin .pos-drawer-body::-webkit-scrollbar-thumb { background: var(--ldg-line-2); }
body.ldg-skin .pos-card {
    height: 64px;
    border: 1px solid var(--ldg-line) !important;
    border-radius: var(--ldg-radius) !important;
    background: var(--ldg-surface) !important;
    box-shadow: none !important;
    transform: none !important;
}
body.ldg-skin .pos-card:hover { border-color: var(--ldg-teal-700) !important; background: var(--ldg-teal-50) !important; }
body.ldg-skin .pos-card.is-active { border: 1.5px solid var(--ldg-teal-800) !important; background: var(--ldg-teal-50) !important; }
body.ldg-skin .pos-card-name { font-size: 13px; color: var(--ldg-ink); }
body.ldg-skin .pos-card.is-active .pos-card-name { color: var(--ldg-tx-900); }
body.ldg-skin .pos-card-subcat-dot { color: var(--ldg-tx-700); }
body.ldg-skin .pos-subcat-strip { background: var(--ldg-teal-50); border-color: var(--ldg-teal-100); border-radius: var(--ldg-radius); }
body.ldg-skin .pos-subcat-pill { border-color: var(--ldg-teal-100); color: var(--ldg-tx-900); border-radius: var(--ldg-radius); min-height: 38px; }
body.ldg-skin .pos-subcat-pill:hover,
body.ldg-skin .pos-subcat-pill.is-active { background: var(--ldg-teal-800); border-color: var(--ldg-teal-800); color: #fff; }

/* POS products column filter buttons (category / brand / featured) */
body.ldg-skin .ldg-pos__products #product_category_div .tw-dw-btn,
body.ldg-skin .ldg-pos__products #product_brand_div .tw-dw-btn,
body.ldg-skin .ldg-pos__products #show_featured_products {
    border-radius: var(--ldg-radius) !important;
    border: 1px solid var(--ldg-line-2) !important;
    background: var(--ldg-surface) !important;
    color: var(--ldg-ink-2) !important;
    box-shadow: none !important;
    transform: none !important;
}
body.ldg-skin .ldg-pos__products #product_category_div .tw-dw-btn:hover,
body.ldg-skin .ldg-pos__products #product_brand_div .tw-dw-btn:hover,
body.ldg-skin .ldg-pos__products #show_featured_products:hover { border-color: var(--ldg-teal-700) !important; background: var(--ldg-teal-50) !important; }
body.ldg-skin .ldg-pos__products svg[class*="tw-text-"] { color: var(--ldg-tx-800) !important; }
body.ldg-skin .ldg-pos__products .tw-dw-badge {
    background: var(--ldg-teal-50) !important;
    border-color: var(--ldg-teal-100) !important;
    color: var(--ldg-tx-900) !important;
    font-family: var(--ldg-mono);
}
/* POS bar on phones: location keeps its space, tool icons scroll sideways */
@media (max-width: 767px) {
    .ldg-posbar .ldg-topbar__left { flex: 0 0 auto; gap: 8px; }
    .ldg-posbar .ldg-topbar__right { flex: 1 1 auto; min-width: 0; justify-content: flex-start; overflow-x: auto; scrollbar-width: none; }
    .ldg-posbar .ldg-topbar__right::-webkit-scrollbar { display: none; }
    .ldg-posbar .ldg-topbar__right > * { flex-shrink: 0; }
    .ldg-posbar__location select.form-control { min-width: 0; width: 132px; }
    .ldg-posbar__location strong { max-width: 120px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
}

/* POS bar location select: the generic themed-field :focus rule (white background) must not apply here,
   otherwise the autofocused select shows white text on white until pos.js moves focus to the search. */
body.ldg-skin .ldg-posbar__location select.form-control,
body.ldg-skin .ldg-posbar__location select.form-control:hover,
body.ldg-skin .ldg-posbar__location select.form-control:focus {
    background-color: rgba(255, 255, 255, .12) !important;
    color: #fff !important;
    border: 0 !important;
    box-shadow: none !important;
    transition: none;
}
body.ldg-skin .ldg-posbar__location select.form-control:hover { background-color: rgba(255, 255, 255, .18) !important; }
body.ldg-skin .ldg-posbar__location select.form-control:focus {
    background-color: rgba(255, 255, 255, .2) !important;
    outline: 2px solid rgba(255, 255, 255, .55);
    outline-offset: 1px;
}
body.ldg-skin .ldg-posbar__location select.form-control option { background: #fff; color: var(--ldg-ink); }

/* ======================================================================
 * Shared small pieces
 * ====================================================================== */
.ldg-ibtn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 32px;
    height: 32px;
    padding: 0;
    border: 1px solid var(--ldg-line-2);
    border-radius: var(--ldg-radius);
    background: var(--ldg-surface);
    color: var(--ldg-ink-2) !important;
    font-size: 13px;
    cursor: pointer;
    text-decoration: none !important;
}
.ldg-ibtn:hover { border-color: var(--ldg-teal-700); background: var(--ldg-teal-50); color: var(--ldg-tx-900) !important; }
.ldg-ibtn--bad { color: var(--ldg-bad) !important; }
.ldg-ibtn--bad:hover { border-color: transparent; background: var(--ldg-bad-bg); color: var(--ldg-bad) !important; }
.ldg-chip--good { border-color: var(--ldg-good); background: var(--ldg-good-bg); color: var(--ldg-good); }
.ldg-chip--warn { border-color: #d9a63a; background: var(--ldg-warn-bg); color: var(--ldg-warn); }
.ldg-chip--bad { border-color: var(--ldg-bad); background: var(--ldg-bad-bg); color: var(--ldg-bad); }

/* ======================================================================
 * POS · Recent transactions modal
 * ====================================================================== */
body.ldg-skin .ldg-recent .modal-dialog { width: min(860px, calc(100vw - 24px)); }
body.ldg-skin .ldg-recent .modal-body { padding: 0; }
.ldg-recent__bar {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    padding: 12px 16px;
    border-bottom: 1px solid var(--ldg-line);
    background: var(--ldg-surface);
}
.ldg-seg {
    display: inline-flex;
    padding: 3px;
    margin: 0;
    background: var(--ldg-field);
    border: 1px solid var(--ldg-line);
    border-radius: var(--ldg-radius);
    list-style: none;
}
.ldg-seg > li { float: none; }
.ldg-seg > li > a {
    display: inline-flex !important;
    align-items: center;
    gap: 6px;
    padding: 6px 14px !important;
    border: 0 !important;
    border-radius: 4px !important;
    background: transparent !important;
    color: var(--ldg-ink-2) !important;
    font-size: 13px;
    font-weight: 600;
}
.ldg-seg > li > a i { color: var(--ldg-muted); font-size: 12px; }
.ldg-seg > li > a:hover { color: var(--ldg-ink) !important; }
.ldg-seg > li.active > a { background: var(--ldg-teal-800) !important; color: #fff !important; }
.ldg-seg > li.active > a i { color: rgba(255, 255, 255, .8); }

.ldg-recent__filter {
    display: flex;
    align-items: center;
    gap: 8px;
    flex: 1 1 220px;
    max-width: 320px;
    height: 36px;
    margin: 0;
    padding: 0 10px;
    background: var(--ldg-field);
    border: 1px solid var(--ldg-line-2);
    border-radius: var(--ldg-radius);
    color: var(--ldg-muted);
    font-weight: 400;
}
.ldg-recent__filter:focus-within { border-color: var(--ldg-teal-700); background: var(--ldg-surface); }
.ldg-recent__filter svg { width: 15px; height: 15px; flex-shrink: 0; }
.ldg-recent__filter input { flex: 1; min-width: 0; border: 0; outline: 0; background: transparent; font-size: 13.5px; color: var(--ldg-ink); }

.ldg-recent__body { max-height: min(62vh, 560px); overflow-y: auto; }
.ldg-recent__hint {
    margin: 0;
    padding: 10px 16px 0;
    font-family: var(--ldg-mono);
    font-size: 11.5px;
    color: var(--ldg-muted);
}
.ldg-recent__nomatch { margin: 0; padding: 24px 16px; text-align: center; color: var(--ldg-muted); }
.ldg-recent__loading { padding: 40px; text-align: center; color: var(--ldg-muted); font-size: 18px; }

.ldg-recent__list { list-style: none; margin: 0; padding: 6px 8px 10px; }
.ldg-recent__row {
    display: grid;
    grid-template-columns: 28px minmax(0, 1fr) auto auto auto;
    align-items: center;
    gap: 14px;
    padding: 10px 8px;
    border-bottom: 1px solid var(--ldg-line);
}
.ldg-recent__row:last-child { border-bottom: 0; }
.ldg-recent__row:hover { background: color-mix(in srgb, var(--ldg-teal-50) 70%, transparent); }
.ldg-recent__n { font-family: var(--ldg-mono); font-size: 12px; color: var(--ldg-muted); text-align: center; }
.ldg-recent__main { min-width: 0; }
.ldg-recent__line1 { display: flex; align-items: center; gap: 8px; }
.ldg-recent__inv { font-family: var(--ldg-mono); font-size: 14px; color: var(--ldg-ink); }
.ldg-recent__tag {
    padding: 1px 6px;
    border-radius: 4px;
    background: var(--ldg-field);
    font-size: 11.5px;
    color: var(--ldg-ink-2);
}
.ldg-recent__line2 {
    display: flex;
    flex-wrap: wrap;
    gap: 4px;
    margin-top: 2px;
    font-size: 12.5px;
    color: var(--ldg-muted);
    white-space: nowrap;
    overflow: hidden;
}
.ldg-recent__dot { color: var(--ldg-line-2); }
.ldg-recent__amount { font-size: 15px; font-weight: 700; font-variant-numeric: tabular-nums; text-align: end; min-width: 96px; }
.ldg-recent__actions { display: flex; gap: 6px; }
.ldg-recent__empty {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 8px;
    padding: 48px 16px;
    color: var(--ldg-muted);
}
.ldg-recent__empty svg { width: 40px; height: 40px; color: var(--ldg-line-2); }
.ldg-recent__foot { display: flex; align-items: center; justify-content: space-between; }

@media (max-width: 640px) {
    .ldg-recent__row { grid-template-columns: minmax(0, 1fr) auto; gap: 6px 10px; }
    .ldg-recent__n { display: none; }
    .ldg-recent__row > .ldg-chip { justify-self: start; grid-row: 2; }
    .ldg-recent__amount { grid-column: 2; grid-row: 1; }
    .ldg-recent__actions { grid-column: 2; grid-row: 2; }
    .ldg-recent__filter { max-width: none; }
}

/* ======================================================================
 * POS · payment rows (Multiple Pay)
 * ====================================================================== */
body.ldg-skin #payment_rows_div > .col-md-12 { margin-bottom: 12px; }
body.ldg-skin .ldg-payrow.payment_row {
    margin: 0;
    background: var(--ldg-surface) !important;
    border: 1px solid var(--ldg-line-2) !important;
    border-radius: var(--ldg-radius-lg);
    box-shadow: none;
    overflow: hidden;
}
.ldg-payrow__head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 8px;
    padding: 8px 12px;
    background: var(--ldg-field);
    border-bottom: 1px solid var(--ldg-line);
}
.ldg-payrow__title {
    font-family: var(--ldg-mono);
    font-size: 11px;
    font-weight: 500;
    letter-spacing: .12em;
    text-transform: uppercase;
    color: var(--ldg-ink-2);
}
.ldg-payrow__n {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 20px;
    height: 20px;
    margin-inline-start: 4px;
    border-radius: 4px;
    background: var(--ldg-teal-800);
    color: #fff;
    letter-spacing: 0;
}
.ldg-payrow__tools { display: flex; align-items: center; gap: 6px; }
.ldg-payrow__fill {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    height: 30px;
    padding: 0 10px;
    border: 1px solid var(--ldg-teal-800);
    border-radius: var(--ldg-radius);
    background: var(--ldg-surface);
    color: var(--ldg-tx-900);
    font-size: 12.5px;
    font-weight: 600;
    cursor: pointer;
}
.ldg-payrow__fill i { font-size: 11px; }
.ldg-payrow__fill:hover { background: var(--ldg-teal-50); }
body.ldg-skin .ldg-payrow .remove_payment_row { position: static; width: 30px; height: 30px; }

.ldg-paychips { display: flex; flex-wrap: wrap; gap: 6px; padding: 12px 12px 0; }
.ldg-paychips:empty { display: none; }
.ldg-paychip {
    height: 34px;
    padding: 0 14px;
    border: 1px solid var(--ldg-line-2);
    border-radius: var(--ldg-radius);
    background: var(--ldg-surface);
    color: var(--ldg-ink-2);
    font-size: 13px;
    font-weight: 600;
    cursor: pointer;
}
.ldg-paychip:hover { border-color: var(--ldg-teal-700); color: var(--ldg-tx-900); }
.ldg-paychip.is-active { background: var(--ldg-teal-800); border-color: var(--ldg-teal-800); color: #fff; }

/* With chips shown, the method <select> is only the data source: keep it in the DOM, out of sight */
body.ldg-skin .ldg-payrow--chips .box-body > .row > [class*="col-"]:has(> .form-group select.payment_types_dropdown:not(:disabled)) {
    position: absolute !important;
    width: 1px !important;
    height: 1px !important;
    overflow: hidden !important;
    clip: rect(0 0 0 0);
    white-space: nowrap;
    padding: 0 !important;
}
body.ldg-skin .ldg-payrow .box-body { padding: 12px; }
body.ldg-skin .ldg-payrow .box-body > .row { display: flex; flex-wrap: wrap; margin: 0 -6px; }
body.ldg-skin .ldg-payrow .box-body > .row > [class*="col-"] { float: none; padding: 0 6px; }
body.ldg-skin .ldg-payrow .box-body > .row > .col-md-12 { flex: 0 0 100%; }
body.ldg-skin .ldg-payrow .box-body > .row > .col-md-6,
body.ldg-skin .ldg-payrow .box-body > .row > .col-md-4 { flex: 1 1 220px; width: auto; }
body.ldg-skin .ldg-payrow .box-body > .row > .clearfix { display: none; }
body.ldg-skin .ldg-payrow .input-group { display: flex; width: 100%; }
body.ldg-skin .ldg-payrow .input-group > .form-control,
body.ldg-skin .ldg-payrow .input-group > .select2-container { flex: 1; min-width: 0; }
body.ldg-skin .ldg-payrow input.payment-amount {
    height: 44px;
    font-size: 20px;
    font-weight: 700;
    font-variant-numeric: tabular-nums;
}
body.ldg-skin .ldg-payrow textarea.form-control { min-height: 0; height: 60px; resize: vertical; }
body.ldg-skin .ldg-payrow .cash_denomination_div hr { border-color: var(--ldg-line); }

/* Change-return block and the rest of the payment modal */
body.ldg-skin #change_return_payment_data .box { background: var(--ldg-warn-bg) !important; border: 1px solid #ecd59d !important; border-radius: var(--ldg-radius-lg); }
body.ldg-skin #modal_payment #add-payment-row {
    height: 40px;
    border: 1.5px dashed var(--ldg-teal-700) !important;
    background: var(--ldg-surface) !important;
    color: var(--ldg-tx-900) !important;
    font-weight: 600;
}
body.ldg-skin #modal_payment #add-payment-row:hover { background: var(--ldg-teal-50) !important; }

/* POS cart line: quantity box matches the − / + buttons; lot & expiry select readable */
body.ldg-skin.lockscreen #pos_table .input-number .pos_quantity,
body.ldg-skin.lockscreen #pos_table .input-number .btn {
    height: 36px !important;
    min-height: 36px !important;
    line-height: 34px !important;
    padding-top: 0 !important;
    padding-bottom: 0 !important;
    box-sizing: border-box !important;
    font-size: 14px !important;
}
body.ldg-skin.lockscreen #pos_table .input-number .pos_quantity { border-top: 1px solid var(--ldg-line-2) !important; border-bottom: 1px solid var(--ldg-line-2) !important; }
body.ldg-skin.lockscreen #pos_table select.lot_number,
body.ldg-skin.lockscreen #pos_table select.sub_unit {
    height: 32px !important;
    min-height: 32px !important;
    margin-top: 6px;
    padding: 0 30px 0 10px !important;
    font-size: 12.5px !important;
    line-height: 30px !important;
    background-color: var(--ldg-field) !important;
}
[dir="rtl"] body.ldg-skin.lockscreen #pos_table select.lot_number,
[dir="rtl"] body.ldg-skin.lockscreen #pos_table select.sub_unit { padding: 0 10px 0 30px !important; }
body.ldg-skin.lockscreen #pos_table select.lot_number:focus { background-color: var(--ldg-surface) !important; }
body.ldg-skin .ldg-payrow .remove_payment_row i { font-size: 13px !important; width: auto !important; height: auto !important; line-height: 1 !important; }

/* ======================================================================
 * POS modals: register details, add expense, add new product
 * ====================================================================== */
.ldg-mono { font-family: var(--ldg-mono); }
body.ldg-skin .modal-header .modal-title .ldg-crumbs__sep { opacity: .6; margin: 0 4px; }
body.ldg-skin .modal-header h3.modal-title { font-size: 14px; }

/* Register details */
body.ldg-skin .ldg-register { width: min(900px, calc(100vw - 24px)); }
body.ldg-skin .ldg-register .modal-body { display: flex; flex-direction: column; gap: 16px; padding: 16px; }
.ldg-register__meta {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(170px, 1fr));
    gap: 10px 16px;
    padding-bottom: 14px;
    border-bottom: 1px solid var(--ldg-line);
}
.ldg-register__meta > div { display: flex; flex-direction: column; gap: 3px; min-width: 0; }
.ldg-register__meta strong { font-size: 14px; color: var(--ldg-ink); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.ldg-register__meta strong.ldg-mono { font-size: 13px; font-weight: 500; }
.ldg-register__meta small { color: var(--ldg-muted); font-size: 12px; overflow: hidden; text-overflow: ellipsis; }
.ldg-register__kpis { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 10px; }
@media (max-width: 767px) { .ldg-register__kpis { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
.ldg-kpi {
    display: flex;
    flex-direction: column;
    gap: 6px;
    padding: 12px 14px;
    background: var(--ldg-field);
    border: 1px solid var(--ldg-line);
    border-radius: var(--ldg-radius);
    min-width: 0;
}
.ldg-kpi__value { font-size: 19px; font-weight: 700; font-variant-numeric: tabular-nums; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.ldg-kpi--strong { background: var(--ldg-teal-900); border-color: var(--ldg-teal-900); }
.ldg-kpi--strong .ldg-label { color: rgba(255, 255, 255, .72); }
.ldg-kpi--strong .ldg-kpi__value { color: #fff; }
.ldg-kpi--good { background: var(--ldg-good-bg); border-color: transparent; }
.ldg-kpi--good .ldg-kpi__value { color: var(--ldg-good); }
.ldg-kpi--bad { background: var(--ldg-bad-bg); border-color: transparent; }
.ldg-kpi--bad .ldg-kpi__value { color: var(--ldg-bad); }
.ldg-register__h,
body.ldg-skin .ldg-register__details h3,
body.ldg-skin .ldg-register__details h4 {
    margin: 0 0 6px !important;
    padding: 0 0 6px !important;
    border-bottom: 1.5px solid var(--ldg-line-2) !important;
    font-family: var(--ldg-mono);
    font-size: 11.5px !important;
    font-weight: 600 !important;
    letter-spacing: .12em;
    text-transform: uppercase;
    color: var(--ldg-ink-2);
}
body.ldg-skin .ldg-register__details hr { display: none; }
body.ldg-skin .ldg-register__details .row { margin: 0; }
body.ldg-skin .ldg-register__details [class*="col-"] { float: none; width: auto; padding: 0; }
body.ldg-skin .ldg-register__details table { margin-bottom: 18px; }
body.ldg-skin .ldg-register__details table td:last-child,
body.ldg-skin .ldg-register__details table th:not(:first-child),
body.ldg-skin .ldg-register__details table td:not(:first-child) { text-align: end; font-variant-numeric: tabular-nums; }
body.ldg-skin .ldg-register__details table tr.success > td,
body.ldg-skin .ldg-register__details table td.success { background: var(--ldg-good-bg) !important; color: var(--ldg-good); border-color: transparent !important; }
body.ldg-skin .ldg-register__details table td.info { background: var(--ldg-teal-50) !important; border-color: transparent !important; }
body.ldg-skin .ldg-register__details table td.danger { background: var(--ldg-bad-bg) !important; color: var(--ldg-bad); border-color: transparent !important; }
body.ldg-skin .ldg-register__details table tr[style*="border-top"] > td { border-top: 1.5px solid var(--ldg-line-2) !important; }
.ldg-register__note { margin: 0; padding: 10px 12px; background: var(--ldg-field); border-radius: var(--ldg-radius); white-space: pre-line; }

/* Shared form-modal treatment: add expense + add new product */
body.ldg-skin #expense_modal .modal-dialog { width: min(760px, calc(100vw - 24px)); }
body.ldg-skin .quick_add_product_modal .modal-dialog { width: min(1040px, calc(100vw - 24px)); }
body.ldg-skin #expense_modal .modal-body,
body.ldg-skin .quick_add_product_modal .modal-body { padding: 16px 20px; max-height: calc(100vh - 170px); overflow-y: auto; }
body.ldg-skin #expense_modal .modal-body .row,
body.ldg-skin .quick_add_product_modal .modal-body .row { display: flex; flex-wrap: wrap; margin-left: -8px; margin-right: -8px; }
body.ldg-skin #expense_modal .modal-body .row > [class*="col-"],
body.ldg-skin .quick_add_product_modal .modal-body .row > [class*="col-"] { float: none; padding-left: 8px; padding-right: 8px; }
body.ldg-skin #expense_modal .modal-body .row > .clearfix,
body.ldg-skin .quick_add_product_modal .modal-body .row > .clearfix { display: none; }
body.ldg-skin #expense_modal .form-group,
body.ldg-skin .quick_add_product_modal .form-group { margin-bottom: 14px; }
body.ldg-skin #expense_modal .input-group,
body.ldg-skin .quick_add_product_modal .input-group { display: flex; width: 100%; }
body.ldg-skin #expense_modal .input-group > .form-control,
body.ldg-skin #expense_modal .input-group > .select2-container,
body.ldg-skin .quick_add_product_modal .input-group > .form-control,
body.ldg-skin .quick_add_product_modal .input-group > .select2-container { flex: 1; min-width: 0; }
body.ldg-skin #expense_modal .input-group-addon,
body.ldg-skin .quick_add_product_modal .input-group-addon { display: flex; align-items: center; width: auto; }
body.ldg-skin #expense_modal textarea.form-control,
body.ldg-skin .quick_add_product_modal textarea.form-control { height: auto; min-height: 72px; }
body.ldg-skin #expense_modal .help-block,
body.ldg-skin .quick_add_product_modal .help-block { font-size: 12px; color: var(--ldg-muted); }
body.ldg-skin #expense_modal .modal-footer .tw-dw-btn,
body.ldg-skin .quick_add_product_modal .modal-footer .tw-dw-btn { height: 38px; min-height: 38px; padding: 0 18px; border-radius: var(--ldg-radius) !important; font-weight: 600; }
body.ldg-skin #expense_modal .modal-footer .tw-dw-btn-neutral,
body.ldg-skin .quick_add_product_modal .modal-footer .tw-dw-btn-neutral { color: var(--ldg-ink) !important; }

/* Add expense: payment block as a card */
body.ldg-skin #expense_modal .payment_row {
    margin-top: 6px;
    padding: 14px 16px 4px;
    background: var(--ldg-field);
    border: 1px solid var(--ldg-line);
    border-radius: var(--ldg-radius-lg);
}
body.ldg-skin #expense_modal .payment_row > h4 {
    margin: 0 0 12px;
    font-family: var(--ldg-mono);
    font-size: 11.5px;
    font-weight: 600;
    letter-spacing: .12em;
    text-transform: uppercase;
    color: var(--ldg-ink-2);
}
body.ldg-skin #expense_modal .payment_row hr { border-color: var(--ldg-line); margin: 4px 0 10px; }
body.ldg-skin #expense_modal #expense_payment_due { font-size: 16px; font-weight: 700; color: var(--ldg-bad); font-variant-numeric: tabular-nums; }
body.ldg-skin #expense_modal input#expense_final_total { font-size: 18px; font-weight: 700; height: 42px; font-variant-numeric: tabular-nums; }

/* Add new product: price table and opening stock in the ledger style */
body.ldg-skin .quick_add_product_modal .table { margin-bottom: 12px; }
body.ldg-skin .quick_add_product_modal .table > thead > tr > th,
body.ldg-skin .quick_add_product_modal .table > tbody > tr > th { background: var(--ldg-field) !important; }
body.ldg-skin .quick_add_product_modal .table .form-control { height: 34px; font-size: 13.5px; }
body.ldg-skin .quick_add_product_modal hr { border-color: var(--ldg-line); }
body.ldg-skin .quick_add_product_modal h4:not(.modal-title),
body.ldg-skin .quick_add_product_modal .box-title {
    font-family: var(--ldg-mono);
    font-size: 11.5px;
    font-weight: 600;
    letter-spacing: .12em;
    text-transform: uppercase;
    color: var(--ldg-ink-2);
}
body.ldg-skin .quick_add_product_modal .bg-success,
body.ldg-skin .quick_add_product_modal .bg-info,
body.ldg-skin .quick_add_product_modal .bg-light-blue { background: var(--ldg-teal-50) !important; color: var(--ldg-tx-900) !important; }
body.ldg-skin .quick_add_product_modal .checkbox label,
body.ldg-skin #expense_modal .checkbox label { font-weight: 500; }

/* ======================================================================
 * Joined fields (.input-group): a field next to an icon/button has square
 * corners on the touching side; only the outer corners are rounded.
 * Works for inputs, native selects and select2. Logical properties keep RTL right.
 * ====================================================================== */
body.ldg-skin .input-group { display: flex; width: 100%; align-items: stretch; }
body.ldg-skin .input-group > .form-control,
body.ldg-skin .input-group > .select2-container { flex: 1 1 auto; min-width: 0; width: auto !important; }
body.ldg-skin .input-group > .input-group-addon,
body.ldg-skin .input-group > .input-group-btn { display: flex; align-items: stretch; width: auto; }
body.ldg-skin .input-group > .input-group-addon { align-items: center; }

/* reset: nothing inside a group is rounded by default */
body.ldg-skin .input-group > .form-control,
body.ldg-skin .input-group > .input-group-addon,
body.ldg-skin .input-group > .input-group-btn > .btn,
body.ldg-skin .input-group > .select2-container .select2-selection { border-radius: 0 !important; }

/* outer start edge */
body.ldg-skin .input-group > .form-control:first-child,
body.ldg-skin .input-group > .input-group-addon:first-child,
body.ldg-skin .input-group > .input-group-btn:first-child > .btn:first-child,
body.ldg-skin .input-group > select:first-child + .select2-container .select2-selection,
body.ldg-skin .input-group > .select2-container:first-child .select2-selection {
    border-start-start-radius: var(--ldg-radius) !important;
    border-end-start-radius: var(--ldg-radius) !important;
}

/* outer end edge: nothing visible after it */
body.ldg-skin .input-group > .form-control:not(:has(~ .input-group-addon, ~ .input-group-btn, ~ .select2-container)),
body.ldg-skin .input-group > .input-group-addon:not(:has(~ .form-control, ~ .input-group-addon, ~ .input-group-btn, ~ .select2-container)),
body.ldg-skin .input-group > .input-group-btn:not(:has(~ .form-control, ~ .input-group-addon, ~ .input-group-btn, ~ .select2-container)) > .btn:last-child,
body.ldg-skin .input-group > .select2-container:not(:has(~ .input-group-addon, ~ .input-group-btn)) .select2-selection {
    border-start-end-radius: var(--ldg-radius) !important;
    border-end-end-radius: var(--ldg-radius) !important;
}

/* a field hidden by select2 never counts as an edge */
body.ldg-skin .input-group > select.select2-hidden-accessible { border-radius: 0 !important; }

/* shared seam: avoid a double border where two parts meet */
body.ldg-skin .input-group > .input-group-addon + .form-control,
body.ldg-skin .input-group > .input-group-addon + select + .select2-container .select2-selection,
body.ldg-skin .input-group > .input-group-addon ~ .select2-container .select2-selection { border-inline-start-width: 0 !important; }
body.ldg-skin .input-group > .input-group-addon {
    background: var(--ldg-field);
    border: 1px solid var(--ldg-line-2);
    color: var(--ldg-muted);
    padding: 0 10px;
}
body.ldg-skin .input-group > .input-group-addon + .input-group-addon,
body.ldg-skin .input-group > .form-control + .input-group-addon,
body.ldg-skin .input-group > .select2-container + .input-group-addon { border-inline-start-width: 0; }
/* focus: keep the ring visible across the seam */
body.ldg-skin .input-group > .form-control:focus { position: relative; z-index: 2; }

/* Header cells placed in the table body (e.g. product price table): core paints them white-on-colour.
   On themed pages they become readable labels on the light field colour. */
body.ldg-skin .table > tbody > tr > th,
body.ldg-skin .add-product-price-table th,
body.ldg-skin .add-product-price-table > tbody > tr:first-child > th {
    background: var(--ldg-field) !important;
    color: var(--ldg-ink-2) !important;
    border: 0 !important;
    border-bottom: 1.5px solid var(--ldg-line-2) !important;
    padding: 10px !important;
    font-family: var(--ldg-mono);
    font-size: 11px;
    font-weight: 600;
    letter-spacing: .1em;
    text-transform: uppercase;
    vertical-align: bottom;
}
body.ldg-skin .add-product-price-table th .fa-info-circle { color: var(--ldg-muted) !important; letter-spacing: 0; }
body.ldg-skin .add-product-price-table { border: 1px solid var(--ldg-line) !important; border-radius: var(--ldg-radius); overflow: hidden; }
body.ldg-skin .add-product-price-table td { border-color: var(--ldg-line) !important; }
body.ldg-skin .add-product-price-table td label { color: var(--ldg-muted) !important; }

/* ======================================================================
 * POS · Suspended sales
 * ====================================================================== */
body.ldg-skin .ldg-susp { width: min(1040px, calc(100vw - 24px)); }
body.ldg-skin .ldg-susp .modal-body { padding: 16px; background: var(--ldg-bg); max-height: min(68vh, 640px); overflow-y: auto; }
.ldg-susp__count { font-size: 13px; color: var(--ldg-ink-2); }
.ldg-susp__count strong { font-family: var(--ldg-mono); font-size: 15px; color: var(--ldg-ink); margin-inline-end: 2px; }
.ldg-susp__grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(230px, 1fr)); gap: 12px; }
.ldg-susp__card {
    display: flex;
    flex-direction: column;
    gap: 10px;
    padding: 14px;
    background: var(--ldg-surface);
    border: 1px solid var(--ldg-line);
    border-radius: var(--ldg-radius-lg);
    min-width: 0;
    transition: border-color .15s, box-shadow .15s;
}
.ldg-susp__card:hover { border-color: var(--ldg-teal-700); box-shadow: 0 8px 22px rgba(7, 47, 44, .08); }
.ldg-susp__head { display: flex; align-items: center; justify-content: space-between; gap: 8px; }
.ldg-susp__inv { font-family: var(--ldg-mono); font-size: 15px; color: var(--ldg-ink); }
.ldg-susp__who { display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.ldg-susp__name { font-weight: 600; color: var(--ldg-ink); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.ldg-susp__name i { color: var(--ldg-muted); font-size: 12px; margin-inline-end: 2px; }
.ldg-susp__who time { font-family: var(--ldg-mono); font-size: 11.5px; color: var(--ldg-muted); }
.ldg-susp__note {
    margin: 0;
    padding: 8px 10px;
    background: var(--ldg-warn-bg);
    border-radius: var(--ldg-radius);
    color: var(--ldg-warn);
    font-size: 13px;
    line-height: 1.4;
    display: -webkit-box;
    -webkit-line-clamp: 3;
    -webkit-box-orient: vertical;
    overflow: hidden;
    word-break: break-word;
}
.ldg-susp__note i { margin-inline-end: 4px; opacity: .8; }
.ldg-susp__facts { display: flex; flex-wrap: wrap; gap: 6px 16px; margin: 0; }
.ldg-susp__facts > div { display: flex; flex-direction: column; gap: 1px; min-width: 0; }
.ldg-susp__facts dt {
    font-family: var(--ldg-mono);
    font-size: 10.5px;
    font-weight: 500;
    letter-spacing: .1em;
    text-transform: uppercase;
    color: var(--ldg-muted);
}
.ldg-susp__facts dd { margin: 0; font-weight: 600; font-size: 13.5px; color: var(--ldg-ink); }
.ldg-susp__total {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: 8px;
    margin-top: auto;
    padding-top: 10px;
    border-top: 1px dashed var(--ldg-line-2);
}
.ldg-susp__amount { font-size: 20px; font-weight: 700; font-variant-numeric: tabular-nums; color: var(--ldg-ink); white-space: nowrap; }
.ldg-susp__actions { display: flex; gap: 6px; }
.ldg-susp__resume {
    flex: 1;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    height: 36px;
    border-radius: var(--ldg-radius);
    background: var(--ldg-teal-800);
    color: #fff !important;
    font-weight: 600;
    font-size: 13.5px;
    text-decoration: none !important;
}
.ldg-susp__resume:hover { background: var(--ldg-teal-700); }
.ldg-susp__resume i { font-size: 11px; }
.ldg-susp__actions .ldg-ibtn { width: 36px; height: 36px; }
/* the filter's box shows focus (focus-within); the inner input must not draw a second ring */
.ldg-recent__filter input:focus,
.ldg-recent__filter input:focus-visible { outline: none !important; box-shadow: none !important; border: 0 !important; }

/* ======================================================================
 * POS · Close register
 * ====================================================================== */
body.ldg-skin .ldg-close .modal-body { max-height: calc(100vh - 170px); overflow-y: auto; }
.ldg-close__count { display: flex; flex-direction: column; gap: 14px; }
.ldg-close__fields { display: grid; grid-template-columns: minmax(0, 1.4fr) minmax(0, 1fr); gap: 16px; }
@media (max-width: 767px) { .ldg-close__fields { grid-template-columns: minmax(0, 1fr); } }
.ldg-close__cash { display: flex; flex-direction: column; gap: 6px; padding: 14px; background: var(--ldg-field); border: 1px solid var(--ldg-line); border-radius: var(--ldg-radius-lg); }
.ldg-close__cash label { margin: 0; }
body.ldg-skin .ldg-close input.ldg-close__amount {
    height: 52px;
    font-size: 26px;
    font-weight: 700;
    font-variant-numeric: tabular-nums;
    background: var(--ldg-surface);
}
.ldg-close__diff { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; min-height: 26px; }
.ldg-close__diff-value { font-weight: 700; font-variant-numeric: tabular-nums; }
.ldg-close__small { display: flex; flex-direction: column; gap: 0; }
.ldg-close__denoms { display: flex; flex-direction: column; gap: 8px; }
.ldg-close__denoms-head { display: flex; align-items: center; justify-content: space-between; gap: 10px; }
.ldg-close__denoms-head .ldg-register__h { flex: 1; margin: 0 !important; }
.ldg-close__use-count:disabled { opacity: .45; cursor: not-allowed; }
body.ldg-skin .ldg-close__denom-table { max-width: 520px; }
body.ldg-skin .ldg-close__denom-table td { vertical-align: middle !important; }
body.ldg-skin .ldg-close__denom-table td:nth-child(2) { display: flex; align-items: center; justify-content: center; gap: 8px; }
body.ldg-skin .ldg-close__denom-table .cash_denomination { width: 96px !important; height: 34px; text-align: center; margin: 0 !important; }
.ldg-close__x { color: var(--ldg-muted); }
body.ldg-skin .ldg-close__denom-table tfoot td,
body.ldg-skin .ldg-close__denom-table tfoot th { font-size: 15px; }
.ldg-close__breakdown { border: 1px solid var(--ldg-line); border-radius: var(--ldg-radius-lg); background: var(--ldg-surface); }
.ldg-close__breakdown > summary {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 12px 14px;
    cursor: pointer;
    list-style: none;
    font-family: var(--ldg-mono);
    font-size: 11.5px;
    font-weight: 600;
    letter-spacing: .12em;
    text-transform: uppercase;
    color: var(--ldg-ink-2);
}
.ldg-close__breakdown > summary::-webkit-details-marker { display: none; }
.ldg-close__breakdown > summary i { font-size: 10px; transition: transform .15s; }
.ldg-close__breakdown[open] > summary i { transform: rotate(90deg); }
.ldg-close__breakdown > .ldg-register__details { padding: 0 14px 14px; }
body.ldg-skin .ldg-close .modal-footer .btn-primary i { margin-inline-end: 6px; }
body.ldg-skin .ldg-close__cash > label {
    font-family: var(--ldg-mono);
    font-size: 11px;
    font-weight: 500;
    letter-spacing: .1em;
    text-transform: uppercase;
    color: var(--ldg-ink-2);
}

/* ======================================================================
 * LIST PAGES (shared layer for every DataTables page in skin_paths)
 * ====================================================================== */

/* Card header from components.widget: title left, tools right */
body.ldg-skin .ldg-panel__head { flex-wrap: nowrap; text-align: start; }
body.ldg-skin .ldg-panel__head .ldg-panel__title { flex: 1 1 auto; min-width: 0; }
body.ldg-skin .ldg-panel__head .box-title { text-align: start; }
body.ldg-skin .ldg-panel__tools,
body.ldg-skin .ldg-panel__tools .box-tools { position: static !important; display: flex; align-items: center; gap: 8px; margin: 0; flex-shrink: 0; }
/* Primary action in the card header (Add …) */
body.ldg-skin .ldg-panel__tools .tw-dw-btn,
body.ldg-skin .ldg-panel__tools .btn {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    height: 36px;
    min-height: 36px;
    padding: 0 14px;
    background: var(--ldg-teal-800) !important;
    background-image: none !important;
    border: 1px solid var(--ldg-teal-800) !important;
    border-radius: var(--ldg-radius) !important;
    color: #fff !important;
    font-size: 13.5px;
    font-weight: 600;
    box-shadow: none !important;
}
body.ldg-skin .ldg-panel__tools .tw-dw-btn:hover,
body.ldg-skin .ldg-panel__tools .btn:hover { background: var(--ldg-teal-700) !important; border-color: var(--ldg-teal-700) !important; }
body.ldg-skin .ldg-panel__tools .tw-dw-btn svg { width: 18px; height: 18px; }
body.ldg-skin .ldg-panel__body > .table-responsive,
body.ldg-skin .ldg-panel__body > .dataTables_wrapper { border: 0; margin: 0; }

/* Toolbar: [page size] [export buttons ……] [view switch] [search] */
body.ldg-skin .dataTables_wrapper > .row:first-child {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 10px 12px;
    margin: 0 0 12px !important;
    text-align: start;
}
body.ldg-skin .dataTables_wrapper > .row:first-child::before,
body.ldg-skin .dataTables_wrapper > .row:first-child::after { display: none; }
body.ldg-skin .dataTables_wrapper > .row:first-child > [class*="col-"] {
    float: none;
    width: auto;
    padding: 0;
    display: flex;
    align-items: center;
    gap: 10px;
}
body.ldg-skin .dataTables_wrapper > .row:first-child > [class*="col-"]:nth-child(2) { flex: 1 1 auto; }
body.ldg-skin .dataTables_wrapper > .row:first-child > [class*="col-"]:last-of-type { margin-inline-start: auto; }
body.ldg-skin .dataTables_wrapper .dataTables_length label,
body.ldg-skin .dataTables_wrapper .dataTables_filter label { display: flex; align-items: center; gap: 6px; margin: 0; white-space: nowrap; }
body.ldg-skin .dataTables_wrapper .dataTables_length select { width: auto; min-width: 72px; height: 34px; }

/* Export / print / column buttons: one joined group */
body.ldg-skin .dataTables_wrapper .dt-buttons { display: inline-flex; flex-wrap: wrap; margin: 0; float: none; }
body.ldg-skin .dataTables_wrapper .dt-buttons > .btn,
body.ldg-skin .dataTables_wrapper .dt-buttons > .tw-dw-btn,
body.ldg-skin .dataTables_wrapper .dt-buttons > .btn-group > .btn {
    height: 34px;
    min-height: 34px;
    margin: 0 !important;
    padding: 0 12px !important;
    border-radius: 0 !important;
    border-inline-start-width: 0 !important;
    font-size: 12.5px !important;
    font-weight: 600;
    display: inline-flex;
    align-items: center;
    gap: 6px;
}
body.ldg-skin .dataTables_wrapper .dt-buttons > :first-child,
body.ldg-skin .dataTables_wrapper .dt-buttons > .btn-group:first-child > .btn {
    border-inline-start-width: 1px !important;
    border-start-start-radius: var(--ldg-radius) !important;
    border-end-start-radius: var(--ldg-radius) !important;
}
body.ldg-skin .dataTables_wrapper .dt-buttons > :last-child,
body.ldg-skin .dataTables_wrapper .dt-buttons > .btn-group:last-child > .btn {
    border-start-end-radius: var(--ldg-radius) !important;
    border-end-end-radius: var(--ldg-radius) !important;
}
body.ldg-skin .dataTables_wrapper .dt-buttons i { color: var(--ldg-muted); }
body.ldg-skin .dt-button-collection,
body.ldg-skin .dt-button-collection.dropdown-menu {
    padding: 4px;
    border: 1px solid var(--ldg-line-2);
    border-radius: var(--ldg-radius);
    box-shadow: 0 14px 34px rgba(7, 47, 44, .16);
}
body.ldg-skin .dt-button-collection .dt-button { border-radius: 4px; }
body.ldg-skin .dt-button-collection .dt-button.active { background: var(--ldg-teal-50) !important; color: var(--ldg-tx-900) !important; }

/* Search with icon */
body.ldg-skin .dataTables_wrapper .dataTables_filter { float: none; text-align: start; }
body.ldg-skin .dataTables_wrapper .dataTables_filter input {
    width: 240px;
    max-width: 100%;
    height: 34px;
    margin: 0 !important;
    padding-inline-start: 32px !important;
    background: var(--ldg-field) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%236a7672' stroke-width='1.8' stroke-linecap='round'%3E%3Ccircle cx='10' cy='10' r='7'/%3E%3Cpath d='M21 21l-6 -6'/%3E%3C/svg%3E") no-repeat 10px center / 15px 15px !important;
}
[dir="rtl"] body.ldg-skin .dataTables_wrapper .dataTables_filter input { background-position: right 10px center !important; }
body.ldg-skin .dataTables_wrapper .dataTables_filter input:focus { background-color: var(--ldg-surface) !important; border-color: var(--ldg-teal-700); }

/* View switch */
.ldg-viewswitch {
    display: inline-flex;
    padding: 2px;
    background: var(--ldg-field);
    border: 1px solid var(--ldg-line-2);
    border-radius: var(--ldg-radius);
    flex-shrink: 0;
}
.ldg-viewswitch button {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    height: 28px;
    padding: 0 10px;
    border: 0;
    border-radius: 4px;
    background: transparent;
    color: var(--ldg-ink-2);
    font-size: 12.5px;
    font-weight: 600;
    cursor: pointer;
}
.ldg-viewswitch button svg { width: 15px; height: 15px; }
.ldg-viewswitch button:hover { color: var(--ldg-ink); }
.ldg-viewswitch button.is-active { background: var(--ldg-teal-800); color: #fff; }
@media (max-width: 640px) { .ldg-viewswitch button span { display: none; } }

/* Row actions (Edit / View / Delete …): quiet outline buttons, colour kept for intent */
body.ldg-skin table.dataTable td .tw-dw-btn,
body.ldg-skin table.dataTable td > .btn,
body.ldg-skin table.dataTable td .btn-xs {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    height: 28px;
    min-height: 28px;
    margin: 2px 2px !important;
    padding: 0 10px !important;
    background: var(--ldg-surface) !important;
    background-image: none !important;
    border: 1px solid var(--ldg-line-2) !important;
    border-radius: var(--ldg-radius) !important;
    color: var(--ldg-ink-2) !important;
    font-size: 12px !important;
    font-weight: 600;
    box-shadow: none !important;
    white-space: nowrap;
}
body.ldg-skin table.dataTable td .tw-dw-btn i,
body.ldg-skin table.dataTable td .btn i,
body.ldg-skin table.dataTable td .tw-dw-btn .glyphicon { color: inherit; font-size: 11px; }
body.ldg-skin table.dataTable td .tw-dw-btn:hover,
body.ldg-skin table.dataTable td > .btn:hover { border-color: var(--ldg-teal-700) !important; background: var(--ldg-teal-50) !important; color: var(--ldg-tx-900) !important; }
body.ldg-skin table.dataTable td .tw-dw-btn-error,
body.ldg-skin table.dataTable td .btn-danger,
body.ldg-skin table.dataTable td [class*="delete"] { color: var(--ldg-bad) !important; }
body.ldg-skin table.dataTable td .tw-dw-btn-error:hover,
body.ldg-skin table.dataTable td .btn-danger:hover,
body.ldg-skin table.dataTable td [class*="delete"].tw-dw-btn:hover { background: var(--ldg-bad-bg) !important; border-color: transparent !important; color: var(--ldg-bad) !important; }
/* "Actions ▾" dropdown buttons used by most list pages */
body.ldg-skin table.dataTable td .btn-group > .btn.dropdown-toggle { gap: 6px; }
body.ldg-skin table.dataTable td .btn-group > .btn.dropdown-toggle .caret { border-top-color: currentColor; }

/* Footer: info left, paging right */
body.ldg-skin .dataTables_wrapper .dataTables_info { padding-top: 14px !important; }
body.ldg-skin .dataTables_wrapper .dataTables_paginate { padding-top: 10px; }
body.ldg-skin .dataTables_wrapper .pagination { margin: 0; display: inline-flex; gap: 4px; }
body.ldg-skin .dataTables_wrapper .pagination > li > a,
body.ldg-skin .dataTables_wrapper .pagination > li > span {
    min-width: 34px;
    height: 34px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 0 10px;
    margin: 0 !important;
    border-radius: var(--ldg-radius) !important;
    border: 1px solid var(--ldg-line-2) !important;
    background: var(--ldg-surface);
}
body.ldg-skin .dataTables_wrapper .pagination > li > a:hover { background: var(--ldg-teal-50); border-color: var(--ldg-teal-700) !important; }
body.ldg-skin .dataTables_wrapper .pagination > .disabled > a { opacity: .45; }

/* Loading indicator */
body.ldg-skin .dataTables_wrapper .dataTables_processing {
    top: 64px !important;
    left: 50% !important;
    width: auto !important;
    height: auto !important;
    margin: 0 !important;
    transform: translateX(-50%);
    padding: 8px 16px !important;
    background: var(--ldg-teal-900) !important;
    color: #fff !important;
    border: 0 !important;
    border-radius: 999px;
    box-shadow: 0 8px 22px rgba(7, 47, 44, .2);
    font-family: var(--ldg-mono);
    font-size: 12px;
    z-index: 5;
}
body.ldg-skin .dataTables_wrapper .dataTables_processing > div { display: none; }

/* Sort arrows: quieter */
body.ldg-skin table.dataTable thead .sorting::after,
body.ldg-skin table.dataTable thead .sorting_asc::after,
body.ldg-skin table.dataTable thead .sorting_desc::after { opacity: .35; }
body.ldg-skin table.dataTable thead .sorting_asc::after,
body.ldg-skin table.dataTable thead .sorting_desc::after { opacity: .9; color: var(--ldg-tx-800); }

/* ---------- Cards view ---------- */
body.ldg-skin .ldg-cards-mode table.dataTable { border: 0 !important; background: transparent; }
/* header row moved off-screen (not display:none): export buttons pick columns with :visible on the header cells */
body.ldg-skin .ldg-cards-mode table.dataTable > thead {
    position: absolute !important;
    left: -10000px !important;
    top: auto !important;
    visibility: visible;
}
[dir="rtl"] body.ldg-skin .ldg-cards-mode table.dataTable > thead { left: auto !important; right: -10000px !important; }
body.ldg-skin .ldg-cards-mode table.dataTable { position: relative; }
body.ldg-skin .ldg-cards-mode .dataTables_wrapper,
body.ldg-skin .dataTables_wrapper.ldg-cards-mode { overflow: hidden; }
body.ldg-skin .ldg-cards-mode table.dataTable > tbody {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(300px, 1fr));
    align-items: stretch;
    gap: 14px;
    padding: 2px;
}
/* one card */
body.ldg-skin .ldg-cards-mode table.dataTable > tbody > tr {
    position: relative;
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
    align-content: start;
    gap: 10px 16px;
    padding: 16px 16px 14px;
    background: var(--ldg-surface) !important;
    border: 1px solid var(--ldg-line);
    border-radius: var(--ldg-radius-lg);
    min-width: 0;
    transition: border-color .15s, box-shadow .15s;
}
body.ldg-skin .ldg-cards-mode table.dataTable > tbody > tr:hover { border-color: var(--ldg-teal-700); box-shadow: 0 10px 26px rgba(7, 47, 44, .08); }
body.ldg-skin .ldg-cards-mode table.dataTable > tbody > tr.selected,
body.ldg-skin .ldg-cards-mode table.dataTable > tbody > tr:has(input.row-select:checked) { border-color: var(--ldg-teal-700); box-shadow: 0 0 0 2px var(--ldg-teal-100); }
body.ldg-skin .ldg-cards-mode table.dataTable > tbody > tr > td {
    display: flex;
    flex-direction: column;
    gap: 3px;
    min-width: 0;
    width: auto !important;
    padding: 0 !important;
    border: 0 !important;
    background: none !important;
    text-align: start !important;
    font-size: 13.5px;
    color: var(--ldg-ink);
    word-break: break-word;
    order: 20;
}
/* field = small label above value */
body.ldg-skin .ldg-cards-mode table.dataTable > tbody > tr > td.ldg-c-field::before,
body.ldg-skin .ldg-cards-mode table.dataTable > tbody > tr > td.ldg-c-chip::before {
    content: attr(data-label);
    font-family: var(--ldg-mono);
    font-size: 10px;
    font-weight: 500;
    letter-spacing: .1em;
    text-transform: uppercase;
    color: var(--ldg-muted);
    line-height: 1.3;
}
body.ldg-skin .ldg-cards-mode table.dataTable > tbody > tr > td[data-label=""]::before { display: none; }
body.ldg-skin .ldg-cards-mode table.dataTable > tbody > tr > td.ldg-c-empty { display: none !important; }
/* title + date */
body.ldg-skin .ldg-cards-mode table.dataTable > tbody > tr > td.ldg-c-title { grid-column: 1 / -1; order: 1; padding-inline-end: 110px !important; font-size: 15.5px; font-weight: 600; line-height: 1.35; }
body.ldg-skin .ldg-cards-mode table.dataTable > tbody > tr > td.ldg-c-sub { grid-column: 1 / -1; order: 2; margin-top: -6px; font-size: 12.5px; color: var(--ldg-muted); font-variant-numeric: tabular-nums; }
/* status chips */
body.ldg-skin .ldg-cards-mode table.dataTable > tbody > tr > td.ldg-c-chip { order: 3; }
body.ldg-skin .ldg-cards-mode table.dataTable > tbody > tr > td.ldg-c-chip .label { align-self: flex-start; }
/* main amount band */
body.ldg-skin .ldg-cards-mode table.dataTable > tbody > tr > td.ldg-c-amount {
    grid-column: 1 / -1; order: 4;
    flex-direction: row; align-items: center; justify-content: space-between; gap: 12px;
    padding: 10px 12px !important; border-radius: var(--ldg-radius);
    background: var(--ldg-field) !important;
    font-size: 18px; font-weight: 600; font-variant-numeric: tabular-nums; color: var(--ldg-tx-900);
}
body.ldg-skin .ldg-cards-mode table.dataTable > tbody > tr > td.ldg-c-amount::before {
    content: attr(data-label); font-family: var(--ldg-mono); font-size: 10px; font-weight: 500; letter-spacing: .1em; text-transform: uppercase; color: var(--ldg-muted);
}
/* image on top */
body.ldg-skin .ldg-cards-mode table.dataTable > tbody > tr > td.ldg-c-image { grid-column: 1 / -1; order: 0; align-items: flex-start; }
body.ldg-skin .ldg-cards-mode table.dataTable > tbody > tr > td.ldg-c-image img { width: 56px !important; height: 56px !important; object-fit: cover; border-radius: var(--ldg-radius); }
/* actions top-right, row checkbox top-left */
body.ldg-skin .ldg-cards-mode table.dataTable > tbody > tr > td.ldg-c-action { position: absolute; top: 12px; inset-inline-end: 12px; z-index: 2; flex-direction: row; gap: 6px; }
body.ldg-skin .ldg-cards-mode table.dataTable > tbody > tr > td.ldg-c-action::before { display: none; }
body.ldg-skin .ldg-cards-mode table.dataTable > tbody > tr > td.ldg-c-select { position: absolute; top: 18px; inset-inline-start: 14px; z-index: 2; }
body.ldg-skin .ldg-cards-mode table.dataTable > tbody > tr:has(> td.ldg-c-select) > td.ldg-c-title,
body.ldg-skin .ldg-cards-mode table.dataTable > tbody > tr:has(> td.ldg-c-select) > td.ldg-c-image { padding-inline-start: 28px !important; }
body.ldg-skin .ldg-cards-mode table.dataTable > tbody > tr:has(> td.ldg-c-select):has(> td.ldg-c-image) > td.ldg-c-title { padding-inline-start: 0 !important; }
/* last fields line up at the bottom of equal-height cards */
body.ldg-skin .ldg-cards-mode table.dataTable > tbody > tr > td.ldg-c-field { order: 20; }
body.ldg-skin .ldg-cards-mode table.dataTable > tbody > tr > td.dataTables_empty { grid-column: 1 / -1; display: block; padding: 40px !important; text-align: center !important; }
body.ldg-skin .ldg-cards-mode table.dataTable > tbody > tr > td.ldg-cell-action::before { display: none; }
body.ldg-skin .ldg-cards-mode table.dataTable > tbody > tr > td.ldg-cell-action .tw-dw-btn,
body.ldg-skin .ldg-cards-mode table.dataTable > tbody > tr > td.ldg-cell-action .btn { margin: 0 !important; }
/* "no data" row */
body.ldg-skin .ldg-cards-mode table.dataTable > tbody > tr > td.dataTables_empty { grid-column: 1 / -1; justify-content: center; }
body.ldg-skin .ldg-cards-mode table.dataTable > tbody > tr:has(> td.dataTables_empty) { grid-column: 1 / -1; }
/* totals row in tfoot: one summary card */
body.ldg-skin .ldg-cards-mode .table-responsive { overflow: visible; border: 0; }
/* sticky/floating header clone makes no sense over cards */
body.ldg-skin.ldg-cards-active .fixedHeader-floating,
body.ldg-skin.ldg-cards-active .fixedHeader-locked { display: none !important; }
/* labels inside cards (e.g. status) keep their chip look */
body.ldg-skin .ldg-cards-mode table.dataTable td .label { white-space: nowrap; }
/* toolbar on one row where it fits: export group no longer stretches, search a bit narrower */
body.ldg-skin .dataTables_wrapper > .row:first-child > [class*="col-"]:nth-child(2) { flex: 0 1 auto; }
body.ldg-skin .dataTables_wrapper .dataTables_filter input { width: 210px; }
@media (max-width: 767px) {
    body.ldg-skin .dataTables_wrapper > .row:first-child > [class*="col-"]:last-of-type { margin-inline-start: 0; width: 100%; }
    body.ldg-skin .dataTables_wrapper .dataTables_filter { flex: 1; }
    body.ldg-skin .dataTables_wrapper .dataTables_filter label { width: 100%; }
    body.ldg-skin .dataTables_wrapper .dataTables_filter input { width: 100%; }
}
/* DataTables writes a pixel width on the table; in cards view it must follow the container */
body.ldg-skin .ldg-cards-mode table.dataTable { width: 100% !important; table-layout: auto; }
body.ldg-skin .ldg-cards-mode table.dataTable > tbody { grid-template-columns: repeat(auto-fill, minmax(min(260px, 100%), 1fr)); }

/* ======================================================================
 * FORM & DETAIL PAGES (shared)
 * ====================================================================== */

/* Space between cards on normal pages (the dashboard grid has its own gap) */
body.ldg-skin section.content .ldg-panel { margin-bottom: 18px; }
/* (no :last-child reset: cards often sit alone inside a column wrapper and would lose their gap) */
body.ldg-skin section.content > form > .row,
body.ldg-skin section.content > .row { margin-bottom: 0; }
/* gaps come from the cards themselves (18px); rows add none, so gaps never double */

/* Panel body: bootstrap rows/cols as a flex grid so fields line up and wrap cleanly */
body.ldg-skin section.content .ldg-panel__body > .row,
body.ldg-skin section.content .ldg-panel__body { display: flow-root; }
body.ldg-skin section.content .ldg-panel__body > [class*="col-"] { padding-left: 8px; padding-right: 8px; }

/* Field labels that are not in a .form-group (e.g. module partials) match the theme */
body.ldg-skin section.content .ldg-panel__body label:not(:has(input)):not(.ldg-kv__label) {
    font-family: var(--ldg-mono);
    font-size: 11px;
    font-weight: 500;
    letter-spacing: .1em;
    text-transform: uppercase;
    color: var(--ldg-ink-2);
}
/* Checkbox / radio labels stay sentence case */
body.ldg-skin .checkbox label,
body.ldg-skin .radio label,
body.ldg-skin label:has(> input[type="checkbox"]),
body.ldg-skin label:has(> .icheckbox_square-blue),
body.ldg-skin label:has(> .iradio_square-blue) {
    font-family: var(--ldg-sans) !important;
    font-size: 13.5px !important;
    font-weight: 500 !important;
    letter-spacing: 0 !important;
    text-transform: none !important;
    color: var(--ldg-ink) !important;
    display: inline-flex;
    align-items: center;
    gap: 8px;
}

/* Sub-headings inside cards ("Access locations", "Bank Details:") */
body.ldg-skin section.content .ldg-panel__body h4,
body.ldg-skin section.content .ldg-panel__body h3,
body.ldg-skin .tab-content h4 {
    margin: 4px 0 12px !important;
    padding-bottom: 6px;
    border-bottom: 1.5px solid var(--ldg-line-2);
    font-family: var(--ldg-mono) !important;
    font-size: 11.5px !important;
    font-weight: 600 !important;
    letter-spacing: .12em;
    text-transform: uppercase;
    color: var(--ldg-ink-2) !important;
}
body.ldg-skin section.content .ldg-panel__body hr,
body.ldg-skin .tab-content hr { border-color: var(--ldg-line); margin: 16px 0; }

/* Checkbox lists (one checkbox per .col-md-12) become a grid */
body.ldg-skin section.content [class*="col-"]:has(> .col-md-12 > .checkbox):not(:has(> .col-md-12 > .form-group)) {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(240px, 1fr));
    gap: 2px 16px;
}
body.ldg-skin section.content [class*="col-"]:has(> .col-md-12 > .checkbox) > .col-md-12 { width: auto; float: none; padding: 0; }
body.ldg-skin section.content [class*="col-"]:has(> .col-md-12 > .checkbox) > .col-md-12:first-child {
    grid-column: 1 / -1;
    padding-bottom: 6px;
    margin-bottom: 4px;
    border-bottom: 1px dashed var(--ldg-line);
}
body.ldg-skin .checkbox { margin-top: 6px; margin-bottom: 6px; }

/* iCheck boxes (blue square sprite) → theme boxes */
body.ldg-skin .icheckbox_square-blue,
body.ldg-skin .iradio_square-blue {
    width: 18px !important;
    height: 18px !important;
    background: var(--ldg-surface) !important;
    border: 1.5px solid var(--ldg-line-2);
    border-radius: 4px;
    flex-shrink: 0;
    transition: background-color .12s, border-color .12s;
}
body.ldg-skin .iradio_square-blue { border-radius: 50%; }
body.ldg-skin .icheckbox_square-blue.hover,
body.ldg-skin .iradio_square-blue.hover { border-color: var(--ldg-teal-700); }
body.ldg-skin .icheckbox_square-blue.checked {
    background: var(--ldg-teal-800) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23fff' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12l5 5l10 -10'/%3E%3C/svg%3E") center / 12px 12px no-repeat !important;
    border-color: var(--ldg-teal-800);
}
body.ldg-skin .iradio_square-blue.checked {
    background: radial-gradient(circle, var(--ldg-teal-800) 0 4px, var(--ldg-surface) 5px) !important;
    border-color: var(--ldg-teal-800);
}
body.ldg-skin .icheckbox_square-blue.disabled,
body.ldg-skin .iradio_square-blue.disabled { opacity: .5; }

/* Pinned save bar: the last form row that holds the submit button */
body.ldg-skin section.content > form > .row:last-child:has(button[type="submit"]),
body.ldg-skin section.content > form > .row:last-of-type:has(button[type="submit"]) {
    position: sticky;
    bottom: 0;
    z-index: 20;
    margin: 18px 0 0 !important;
    padding: 12px 16px;
    background: color-mix(in srgb, var(--ldg-surface) 92%, transparent);
    backdrop-filter: blur(6px);
    border: 1px solid var(--ldg-line);
    border-radius: var(--ldg-radius-lg);
    box-shadow: 0 -8px 24px rgba(7, 47, 44, .06);
}
body.ldg-skin section.content > form > .row:last-of-type:has(button[type="submit"]) > [class*="col-"] {
    display: flex;
    justify-content: flex-end;
    gap: 8px;
    float: none;
    width: 100%;
    padding: 0;
    text-align: end;
}
body.ldg-skin section.content > form > .row:last-of-type:has(button[type="submit"]) button,
body.ldg-skin section.content > form > .row:last-of-type:has(button[type="submit"]) .tw-dw-btn {
    height: 40px;
    min-height: 40px;
    padding: 0 22px !important;
    border-radius: var(--ldg-radius) !important;
    font-size: 14px !important;
    font-weight: 600;
}

/* ---------- Detail pages: profile card + tabs ---------- */
body.ldg-skin section.content h3:not(.box-title):not(.profile-username) { font-size: 22px; font-weight: 600; margin: 0 0 4px; }
body.ldg-skin .box-profile { text-align: center; }
body.ldg-skin .box-profile .profile-user-img {
    width: 88px;
    height: 88px;
    padding: 0;
    border: 3px solid var(--ldg-teal-50);
    background: var(--ldg-field);
}
body.ldg-skin .box-profile .profile-username { margin: 10px 0 2px; font-size: 18px; font-weight: 600; }
body.ldg-skin .box-profile .text-muted { font-family: var(--ldg-mono); font-size: 12px; letter-spacing: .06em; }
body.ldg-skin .box-profile .list-group-unbordered > .list-group-item {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 10px;
    padding: 10px 0;
    border-color: var(--ldg-line);
    font-size: 13.5px;
    text-align: start;
}
body.ldg-skin .box-profile .list-group-unbordered > .list-group-item > b {
    font-family: var(--ldg-mono);
    font-size: 10.5px;
    font-weight: 500;
    letter-spacing: .1em;
    text-transform: uppercase;
    color: var(--ldg-muted);
}
body.ldg-skin .box-profile .btn,
body.ldg-skin .box-profile .tw-dw-btn { width: 100%; justify-content: center; }

/* Tabs: underline style */
body.ldg-skin .nav-tabs-custom { background: var(--ldg-surface); border: 1px solid var(--ldg-line); border-radius: var(--ldg-radius-lg); box-shadow: none; overflow: hidden; }
body.ldg-skin .nav-tabs-custom > .nav-tabs {
    display: flex;
    flex-wrap: wrap;
    margin: 0;
    padding: 0 8px;
    border-bottom: 1px solid var(--ldg-line);
    background: var(--ldg-surface);
}
body.ldg-skin .nav-tabs-custom > .nav-tabs > li { float: none; margin: 0 !important; border: 0 !important; display: block; width: auto !important; }
body.ldg-skin .nav-tabs-custom > .nav-tabs > li > a {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 12px 14px !important;
    margin: 0 !important;
    border: 0 !important;
    border-bottom: 2px solid transparent !important;
    border-radius: 0 !important;
    background: transparent !important;
    color: var(--ldg-ink-2) !important;
    font-size: 13.5px !important;
    font-weight: 600;
}
body.ldg-skin .nav-tabs-custom > .nav-tabs > li > a i { color: var(--ldg-muted); font-size: 13px; }
body.ldg-skin .nav-tabs-custom > .nav-tabs > li > a:hover { color: var(--ldg-ink) !important; }
body.ldg-skin .nav-tabs-custom > .nav-tabs > li.active > a { color: var(--ldg-tx-900) !important; border-bottom-color: var(--ldg-teal-800) !important; }
body.ldg-skin .nav-tabs-custom > .nav-tabs > li.active > a i { color: var(--ldg-tx-800); }
body.ldg-skin .nav-tabs-custom > .tab-content { padding: 18px 20px; }

/* Label / value fields built by theme.js */
.ldg-kvs { display: flex; flex-direction: column; gap: 10px; margin: 0 0 10px; }
.ldg-kv { display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.ldg-kv__label {
    font-family: var(--ldg-mono);
    font-size: 10.5px;
    font-weight: 500;
    letter-spacing: .1em;
    text-transform: uppercase;
    color: var(--ldg-muted);
}
.ldg-kv__value { font-size: 14px; color: var(--ldg-ink); word-break: break-word; }
.ldg-kv.is-empty .ldg-kv__value::before { content: "—"; color: var(--ldg-line-2); }

/* Save bar content: hint left, Cancel + Save right */
body.ldg-skin .ldg-savebar > [class*="col-"] { align-items: center; }
body.ldg-skin .ldg-savebar__hint {
    margin-inline-end: auto;
    font-family: var(--ldg-mono);
    font-size: 11.5px;
    color: var(--ldg-muted);
}
body.ldg-skin .ldg-savebar .ldg-savebar__cancel {
    display: inline-flex;
    align-items: center;
    height: 40px;
    padding: 0 18px;
    font-weight: 600;
}
body.ldg-skin .ldg-savebar button[type="submit"] { min-width: 120px; justify-content: center; }

/* ".multi-input": two fields side by side (amount + period, weight + unit …) joined into one control */
body.ldg-skin .multi-input { display: flex; flex-wrap: wrap; align-items: stretch; }
body.ldg-skin .multi-input > label { flex: 0 0 100%; }
body.ldg-skin .multi-input > br { display: none; }
body.ldg-skin .multi-input > .form-control,
body.ldg-skin .multi-input > .select2-container { float: none !important; min-width: 0; margin: 0 !important; }
body.ldg-skin .multi-input > .form-control.width-40,
body.ldg-skin .multi-input > .form-control.width-40 + .select2-container { flex: 0 0 40%; width: 40% !important; }
body.ldg-skin .multi-input > .form-control.width-60,
body.ldg-skin .multi-input > .select2-container:last-child,
body.ldg-skin .multi-input > .form-control:last-child { flex: 1 1 0; width: auto !important; }
/* touching edges square, outer edges rounded */
body.ldg-skin .multi-input > .form-control:not(:last-child),
body.ldg-skin .multi-input > .form-control:has(+ .form-control, + .select2-container) {
    border-start-end-radius: 0 !important;
    border-end-end-radius: 0 !important;
}
body.ldg-skin .multi-input > .form-control + .form-control,
body.ldg-skin .multi-input > select.select2-hidden-accessible + .select2-container .select2-selection,
body.ldg-skin .multi-input > .form-control + select + .select2-container .select2-selection {
    border-start-start-radius: 0 !important;
    border-end-start-radius: 0 !important;
    border-inline-start-width: 0 !important;
}
body.ldg-skin .multi-input > .form-control:focus { position: relative; z-index: 2; }
/* locked location boxes while "All locations" is on */
body.ldg-skin .checkbox.ldg-locked label { color: var(--ldg-muted) !important; cursor: not-allowed; }
body.ldg-skin .checkbox.ldg-locked .icheckbox_square-blue.checked.disabled { opacity: .55; }

/* ======================================================================
 * DIALOGS · SweetAlert2 in the Ledger look (themed pages only)
 * Layout:  [ title bar                         ]
 *          [ icon ] [ message                  ]
 *          [ input                             ]
 *          [                 Cancel  Confirm   ]
 * Business customisation: change tokens below or pass className in swal({...}).
 * ====================================================================== */
body.ldg-skin .ldg-swal {
    --ldg-swal-width: 460px;
    --ldg-swal-accent: var(--ldg-teal-800);
    --ldg-swal-danger: var(--ldg-bad);
    background: rgba(7, 47, 44, .45) !important;
    z-index: 5000;
    padding: 16px;
}
body.ldg-skin .ldg-swal-popup {
    width: min(var(--ldg-swal-width), calc(100vw - 32px));
    padding: 0 !important;
    grid-template-columns: auto minmax(0, 1fr) !important;
    grid-template-areas:
        "title title"
        "icon text"
        "input input"
        "valid valid"
        "actions actions"
        "footer footer";
    border: 1px solid var(--ldg-line);
    border-radius: var(--ldg-radius-lg) !important;
    box-shadow: 0 24px 60px rgba(7, 47, 44, .28);
    overflow: hidden;
    font-family: var(--ldg-sans);
    color: var(--ldg-ink);
    background: var(--ldg-surface);
}
/* title bar */
body.ldg-skin .ldg-swal-title {
    grid-area: title;
    margin: 0 !important;
    padding: 12px 18px !important;
    background: var(--ldg-swal-accent);
    color: #fff !important;
    font-family: var(--ldg-mono) !important;
    font-size: 14px !important;
    font-weight: 500 !important;
    line-height: 1.4 !important;
    text-align: start !important;
    word-break: break-word;
}
body.ldg-skin .ldg-swal--danger .ldg-swal-title { background: var(--ldg-teal-900); }
/* icon: small tinted square instead of the big animated one */
body.ldg-skin .ldg-swal-icon.swal2-icon {
    grid-area: icon;
    align-self: start;
    font-size: 7px !important;               /* SweetAlert2 icons scale with font-size: 5em → 35px */
    margin: 20px 0 0 !important;
    margin-inline-start: 18px !important;
    border-width: 2px !important;
}
body.ldg-skin .ldg-swal-icon.swal2-warning { border-color: #d9a63a !important; color: #b07a10 !important; }
body.ldg-skin .ldg-swal-icon.swal2-error { border-color: var(--ldg-bad) !important; }
body.ldg-skin .ldg-swal-icon.swal2-error [class^="swal2-x-mark-line"] { background-color: var(--ldg-bad) !important; }
body.ldg-skin .ldg-swal-icon.swal2-success { border-color: var(--ldg-good) !important; color: var(--ldg-good) !important; }
body.ldg-skin .ldg-swal-icon.swal2-success [class^="swal2-success-line"] { background-color: var(--ldg-good) !important; }
body.ldg-skin .ldg-swal-icon.swal2-success .swal2-success-ring { border-color: color-mix(in srgb, var(--ldg-good) 30%, transparent) !important; }
body.ldg-skin .ldg-swal-icon.swal2-success [class^="swal2-success-circular-line"],
body.ldg-skin .ldg-swal-icon.swal2-success .swal2-success-fix { background: transparent !important; }
body.ldg-skin .ldg-swal-icon.swal2-info,
body.ldg-skin .ldg-swal-icon.swal2-question { border-color: var(--ldg-swal-accent) !important; color: var(--ldg-swal-accent) !important; }
/* message */
body.ldg-skin .ldg-swal-text {
    grid-area: text;
    margin: 0 !important;
    padding: 20px 18px 6px !important;
    font-size: 14.5px !important;
    line-height: 1.55 !important;
    color: var(--ldg-ink-2) !important;
    text-align: start !important;
    word-break: break-word;
}
body.ldg-skin .ldg-swal-popup:not(:has(.swal2-icon.swal2-icon-show)) .ldg-swal-text { grid-column: 1 / -1; }
body.ldg-skin .ldg-swal-text p { margin: 0 0 8px; }
/* input (e.g. service staff PIN) */
body.ldg-skin .ldg-swal-popup .swal2-input,
body.ldg-skin .ldg-swal-popup .swal2-textarea,
body.ldg-skin .ldg-swal-popup .swal2-select {
    grid-area: input;
    width: auto !important;
    height: 42px;
    margin: 10px 18px 4px !important;
    padding: 0 12px !important;
    background: var(--ldg-field) !important;
    border: 1px solid var(--ldg-line-2) !important;
    border-radius: var(--ldg-radius) !important;
    box-shadow: none !important;
    font-size: 15px !important;
    color: var(--ldg-ink) !important;
}
body.ldg-skin .ldg-swal-popup .swal2-textarea { height: 96px; padding: 10px 12px !important; }
body.ldg-skin .ldg-swal-popup .swal2-input:focus,
body.ldg-skin .ldg-swal-popup .swal2-textarea:focus { border-color: var(--ldg-swal-accent) !important; background: var(--ldg-surface) !important; }
body.ldg-skin .ldg-swal-validation { grid-area: valid; margin: 6px 18px 0 !important; background: var(--ldg-bad-bg) !important; color: var(--ldg-bad) !important; border-radius: var(--ldg-radius); font-size: 13px !important; }
/* actions */
body.ldg-skin .ldg-swal-actions {
    grid-area: actions;
    justify-content: flex-end !important;
    gap: 8px;
    width: auto !important;
    margin: 16px 0 0 !important;
    padding: 12px 18px !important;
    border-top: 1px solid var(--ldg-line);
    background: var(--ldg-surface);
}
body.ldg-skin .ldg-swal-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 96px;
    height: 38px;
    margin: 0 !important;
    padding: 0 18px;
    border: 1px solid transparent;
    border-radius: var(--ldg-radius);
    font-family: var(--ldg-sans);
    font-size: 13.5px;
    font-weight: 600;
    cursor: pointer;
    transition: background-color .12s, border-color .12s;
}
body.ldg-skin .ldg-swal-btn:focus-visible { outline: 2px solid color-mix(in srgb, var(--ldg-swal-accent) 55%, transparent); outline-offset: 2px; }
body.ldg-skin .ldg-swal-btn--primary { background: var(--ldg-swal-accent); color: #fff; }
body.ldg-skin .ldg-swal-btn--primary:hover { background: var(--ldg-teal-700); }
body.ldg-skin .ldg-swal-btn--danger { background: var(--ldg-swal-danger); color: #fff; }
body.ldg-skin .ldg-swal-btn--danger:hover { background: color-mix(in srgb, var(--ldg-swal-danger) 88%, #000); }
body.ldg-skin .ldg-swal-btn--ghost { background: var(--ldg-surface); border-color: var(--ldg-line-2); color: var(--ldg-ink); }
body.ldg-skin .ldg-swal-btn--ghost:hover { background: var(--ldg-field); }
body.ldg-skin .ldg-swal-popup .swal2-loader { grid-area: actions; border-color: var(--ldg-swal-accent) transparent var(--ldg-swal-accent) transparent; }
body.ldg-skin .ldg-swal-popup .swal2-footer { grid-area: footer; margin: 0; padding: 10px 18px; border-top: 1px solid var(--ldg-line); font-size: 12.5px; color: var(--ldg-muted); }
body.ldg-skin .ldg-swal-popup .swal2-timer-progress-bar { background: var(--ldg-swal-accent); }
/* motion: short and quiet */
@keyframes ldg-swal-in { from { opacity: 0; transform: translateY(8px) scale(.98); } to { opacity: 1; transform: none; } }
@keyframes ldg-swal-out { to { opacity: 0; transform: translateY(4px); } }
body.ldg-skin .ldg-swal-in { animation: ldg-swal-in .16s ease-out; }
body.ldg-skin .ldg-swal-out { animation: ldg-swal-out .12s ease-in forwards; }
@media (prefers-reduced-motion: reduce) { body.ldg-skin .ldg-swal-in, body.ldg-skin .ldg-swal-out { animation: none; } }
/* phones: buttons full width */
@media (max-width: 480px) {
    body.ldg-skin .ldg-swal-actions { flex-wrap: nowrap; }
    body.ldg-skin .ldg-swal-btn { flex: 1; min-width: 0; }
}

/* Back-to-top button: theme look; on pages with a pinned save bar it sits above the bar */
body.ldg-skin .scrolltop { width: auto; right: 0; z-index: 30; }
body.ldg-skin .scrolltop .scroll {
    right: 20px;
    width: 40px;
    height: 40px;
    padding: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    background: var(--ldg-teal-800) !important;
    border-radius: var(--ldg-radius);
    color: #fff;
    box-shadow: 0 8px 22px rgba(7, 47, 44, .18);
}
body.ldg-skin .scrolltop .scroll:hover { background: var(--ldg-teal-700) !important; }
body.ldg-skin .scrolltop .scroll i { font-size: 16px; color: #fff; }
body.ldg-skin:has(.ldg-savebar) .scrolltop { bottom: 130px; }
[dir="rtl"] body.ldg-skin .scrolltop .scroll { right: auto; left: 20px; }

/* DataTables "Show N entries" / search labels are not form labels: keep them plain */
body.ldg-skin .dataTables_wrapper .dataTables_length label,
body.ldg-skin .dataTables_wrapper .dataTables_filter label {
    font-family: var(--ldg-mono) !important;
    font-size: 12px !important;
    font-weight: 400 !important;
    letter-spacing: 0 !important;
    text-transform: none !important;
    color: var(--ldg-muted) !important;
}

/* Toolbar "Add" button moved in by theme.js (documents & notes) */
body.ldg-skin .dataTables_wrapper .ldg-toolbar-add {
    order: 99;
    height: 34px;
    min-height: 34px;
    padding: 0 14px;
    background: var(--ldg-teal-800) !important;
    border-radius: var(--ldg-radius) !important;
    color: #fff !important;
    font-weight: 600;
    gap: 6px;
}

/* Hidden empty fields on detail pages */
.ldg-hide-empty .ldg-kv.is-empty,
.ldg-hide-empty .ldg-all-empty { display: none !important; }
.ldg-empty-toggle-row { padding-top: 10px; margin-top: 6px; border-top: 1px dashed var(--ldg-line); }

/* ---------- Activity log ---------- */
.ldg-activity { display: flex; flex-direction: column; gap: 10px; }
.ldg-activity__bar { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; }
.ldg-activity__bar .ldg-recent__filter { flex: 1 1 220px; max-width: 320px; }
body.ldg-skin .ldg-activity__bar select.form-control { width: auto; min-width: 150px; height: 36px; font-size: 13px; }
.ldg-activity__count { margin-inline-start: auto; font-family: var(--ldg-mono); font-size: 12px; color: var(--ldg-muted); }
.ldg-activity__count strong { color: var(--ldg-ink); font-size: 13px; }
body.ldg-skin .ldg-activity__table > tbody > tr > td { vertical-align: top !important; }
.ldg-activity__date { white-space: nowrap; }
.ldg-activity__date span { display: block; font-variant-numeric: tabular-nums; font-size: 13px; }
.ldg-activity__date small { font-family: var(--ldg-mono); font-size: 11px; color: var(--ldg-muted); }
.ldg-activity__verb { white-space: nowrap; }
.ldg-activity__verb--added, .ldg-activity__verb--created, .ldg-activity__verb--payment-added { border-color: var(--ldg-good); background: var(--ldg-good-bg); color: var(--ldg-good); }
.ldg-activity__verb--edited, .ldg-activity__verb--updated, .ldg-activity__verb--payment-edited { border-color: var(--ldg-teal-700); background: var(--ldg-teal-50); color: var(--ldg-tx-900); }
.ldg-activity__verb--deleted, .ldg-activity__verb--payment-deleted, .ldg-activity__verb--cancelled { border-color: var(--ldg-bad); background: var(--ldg-bad-bg); color: var(--ldg-bad); }
/* while empty fields are hidden, section dividers would stack up: headings already separate sections */
.ldg-hide-empty hr { display: none !important; }

/* Activity log, server mode */
body.ldg-skin .ldg-activity .dataTables_wrapper { overflow: visible; }
body.ldg-skin .ldg-activity__foot {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    padding-top: 10px;
}
body.ldg-skin .ldg-activity__foot .dataTables_info { padding-top: 0 !important; order: 1; }
body.ldg-skin .ldg-activity__foot .dataTables_length { order: 2; margin-inline-start: auto; }
body.ldg-skin .ldg-activity__foot .dataTables_paginate { order: 3; padding-top: 0; }
body.ldg-skin .ldg-activity__period { height: 36px; }
body.ldg-skin .ldg-activity__period.is-set { border-color: var(--ldg-teal-700); background: var(--ldg-teal-50); color: var(--ldg-tx-900); }
body.ldg-skin .ldg-activity__table td.ldg-activity__date-cell { white-space: nowrap; }
body.ldg-skin .ldg-activity__table .ldg-activity__date span { display: block; }

/* Skeletons */
.ldg-skel {
    display: inline-block;
    height: 12px;
    max-width: 100%;
    border-radius: 4px;
    background: linear-gradient(90deg, var(--ldg-field) 0%, color-mix(in srgb, var(--ldg-line) 70%, var(--ldg-field)) 40%, var(--ldg-field) 80%);
    background-size: 300% 100%;
    animation: ldg-skel 1.3s ease-in-out infinite;
    vertical-align: middle;
}
.ldg-skel--lg { height: 18px; }
.ldg-skel--light { background: linear-gradient(90deg, rgba(255,255,255,.18), rgba(255,255,255,.32), rgba(255,255,255,.18)); background-size: 300% 100%; }
@keyframes ldg-skel { 0% { background-position: 100% 0; } 100% { background-position: 0 0; } }
@media (prefers-reduced-motion: reduce) { .ldg-skel { animation: none; } }
body.ldg-skin tr.ldg-skel-row > td { padding: 14px 10px !important; border-bottom: 1px solid var(--ldg-line) !important; background: transparent !important; }
body.ldg-skin .ldg-skeleton .dataTables_processing { display: none !important; }
.ldg-skel-line { display: flex; gap: 14px; align-items: center; padding: 12px 8px; border-bottom: 1px solid var(--ldg-line); }
.ldg-recent__loading { padding: 4px 8px; font-size: inherit; }

/* Skeleton overlay for AJAX modals */
.ldg-modal-skel {
    position: fixed;
    inset: 0;
    z-index: 2000;
    display: none;
    align-items: flex-start;
    justify-content: center;
    padding: 30px 16px;
    background: rgba(7, 47, 44, .35);
}
.ldg-modal-skel.is-on { display: flex; }
.ldg-modal-skel__dialog {
    width: min(720px, 100%);
    background: var(--ldg-surface);
    border-radius: var(--ldg-radius-lg);
    overflow: hidden;
    box-shadow: 0 24px 60px rgba(7, 47, 44, .25);
}
.ldg-modal-skel__bar { height: 46px; display: flex; align-items: center; padding: 0 16px; background: var(--ldg-teal-800); }
.ldg-modal-skel__body { display: flex; flex-direction: column; gap: 14px; padding: 20px 18px; }
.ldg-modal-skel__foot { display: flex; justify-content: flex-end; gap: 8px; padding: 12px 18px; border-top: 1px solid var(--ldg-line); }

/* Footer stays at the bottom on short pages */
body.ldg #scrollable-container { display: flex; flex-direction: column; }
body.ldg #scrollable-container > * { flex-shrink: 0; }
body.ldg #scrollable-container > .ldg-footer { margin-top: auto; }

/* Content column: core .content has margin:auto, which in a flex column would shrink-wrap it → force full width */
body.ldg #scrollable-container > * { width: 100%; max-width: 100%; }
body.ldg #scrollable-container > section.content,
body.ldg #scrollable-container > section.content-header { margin-left: 0; margin-right: 0; }

/* View page header: title left, record switcher right */
.ldg-viewhead { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 12px; margin-bottom: 16px; }
.ldg-viewhead h3 { margin: 0 !important; }
.ldg-viewhead__switch { width: min(340px, 100%); }
body.ldg-skin .ldg-viewhead__switch .select2-container { width: 100% !important; }

/* Info tab rendered server-side (filled fields only) */
.ldg-info { display: flex; flex-direction: column; gap: 18px; }
.ldg-info__section h4 { margin-top: 0 !important; }
.ldg-info__grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(200px, 1fr)); gap: 14px 24px; }
body.ldg-skin .ldg-info__modules hr { display: none; }

/* Module HTML is hidden until tidied (theme.js adds .ldg-kv-ready); fallback reveal if the script never runs */
.ldg-kv-pending:not(.ldg-kv-ready) { visibility: hidden; animation: ldg-reveal 0s linear 1.5s forwards; }
@keyframes ldg-reveal { to { visibility: visible; } }

/* ======================================================================
 * MODULES (Essentials, CRM, Connector, …): CSS only — module views are never edited or overridden.
 * Covers the AdminLTE / Bootstrap components module views use, on themed pages.
 * ====================================================================== */

/* Module sections inside detail pages (e.g. Essentials "HRM Details" in view user) */
body.ldg-skin .ldg-info__modules { display: flex; flex-direction: column; gap: 4px; }
body.ldg-skin .ldg-info__modules > .clearfix,
body.ldg-skin .ldg-info__modules > hr { display: none; }
body.ldg-skin .ldg-info__modules > [class*="col-"] { float: none; width: auto; padding-left: 0; padding-right: 0; }
body.ldg-skin .ldg-info__modules > [class*="col-"] + [class*="col-"]:has(h4, h3) { margin-top: 14px; }
/* a column of "Label: value" paragraphs becomes the same field grid as the info tab */
body.ldg-skin .tab-content [class*="col-"]:has(> p.ldg-kvs) {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(200px, 1fr));
    gap: 14px 24px;
}
body.ldg-skin .tab-content [class*="col-"]:has(> p.ldg-kvs) > p.ldg-kvs { margin: 0; }
body.ldg-skin .tab-content [class*="col-"]:has(> p.ldg-kvs) > p.ldg-kvs.ldg-all-empty { display: none; }

/* Boxes (40+ module views use .box / .box-solid) */
body.ldg-skin .box-solid > .box-header,
body.ldg-skin .box > .box-header.with-border { border-bottom: 1px solid var(--ldg-line); }
body.ldg-skin .box.box-solid[class*="box-"] > .box-header,
body.ldg-skin .box-solid.box-primary > .box-header,
body.ldg-skin .box-solid.box-info > .box-header,
body.ldg-skin .box-solid.box-success > .box-header,
body.ldg-skin .box-solid.box-warning > .box-header,
body.ldg-skin .box-solid.box-danger > .box-header {
    background: var(--ldg-surface) !important;
    color: var(--ldg-ink-2) !important;
}
body.ldg-skin .box-solid.box-danger { border-top: 2px solid var(--ldg-bad) !important; }
body.ldg-skin .box-solid.box-warning { border-top: 2px solid var(--ldg-amber) !important; }
body.ldg-skin .box .box-tools .btn-box-tool { color: var(--ldg-muted); }
body.ldg-skin .box .overlay,
body.ldg-skin .box > .loading-img { background: color-mix(in srgb, var(--ldg-surface) 75%, transparent); border-radius: var(--ldg-radius-lg); }
body.ldg-skin .box-footer { background: var(--ldg-surface); border-top: 1px solid var(--ldg-line); border-radius: 0 0 var(--ldg-radius-lg) var(--ldg-radius-lg); }

/* Colour helpers → theme palette */
body.ldg-skin .bg-aqua, body.ldg-skin .bg-light-blue, body.ldg-skin .bg-blue, body.ldg-skin .bg-navy, body.ldg-skin .bg-teal, body.ldg-skin .bg-primary { background-color: var(--ldg-teal-800) !important; color: #fff !important; }
body.ldg-skin .bg-purple, body.ldg-skin .bg-maroon { background-color: var(--ldg-teal-900) !important; color: #fff !important; }
body.ldg-skin .bg-orange { background-color: var(--ldg-amber) !important; color: var(--ldg-teal-950) !important; }
body.ldg-skin .text-aqua, body.ldg-skin .text-light-blue, body.ldg-skin .text-blue, body.ldg-skin .text-primary, body.ldg-skin .text-info { color: var(--ldg-tx-800) !important; }
body.ldg-skin .text-green, body.ldg-skin .text-success { color: var(--ldg-good) !important; }
body.ldg-skin .text-red, body.ldg-skin .text-danger { color: var(--ldg-bad) !important; }
body.ldg-skin .text-yellow, body.ldg-skin .text-warning { color: var(--ldg-warn) !important; }
body.ldg-skin .text-muted { color: var(--ldg-muted) !important; }

/* Alerts and callouts */
body.ldg-skin .alert {
    border: 1px solid transparent;
    border-radius: var(--ldg-radius);
    box-shadow: none;
    padding: 12px 14px;
    font-size: 13.5px;
}
body.ldg-skin .alert-success { background: var(--ldg-good-bg) !important; border-color: color-mix(in srgb, var(--ldg-good) 25%, transparent) !important; color: var(--ldg-good) !important; }
body.ldg-skin .alert-danger, body.ldg-skin .alert-error { background: var(--ldg-bad-bg) !important; border-color: color-mix(in srgb, var(--ldg-bad) 25%, transparent) !important; color: var(--ldg-bad) !important; }
body.ldg-skin .alert-warning { background: var(--ldg-warn-bg) !important; border-color: #ecd59d !important; color: var(--ldg-warn) !important; }
body.ldg-skin .alert-info { background: var(--ldg-teal-50) !important; border-color: var(--ldg-teal-100) !important; color: var(--ldg-tx-900) !important; }
body.ldg-skin .alert .close { color: inherit; opacity: .6; text-shadow: none; }
body.ldg-skin .alert a { color: inherit; text-decoration: underline; }
body.ldg-skin .callout {
    border-radius: var(--ldg-radius);
    border-inline-start: 4px solid var(--ldg-line-2);
    border-left-width: 0;
    background: var(--ldg-field) !important;
    color: var(--ldg-ink) !important;
    padding: 12px 14px;
}
[dir="rtl"] body.ldg-skin .callout { border-right-width: 0; }
body.ldg-skin .callout.callout-success { border-inline-start-color: var(--ldg-good); }
body.ldg-skin .callout.callout-danger { border-inline-start-color: var(--ldg-bad); }
body.ldg-skin .callout.callout-warning { border-inline-start-color: var(--ldg-amber); }
body.ldg-skin .callout.callout-info { border-inline-start-color: var(--ldg-teal-700); }
body.ldg-skin .callout h4 { font-size: 14px; font-weight: 600; margin: 0 0 4px; }

/* Badges, wells, progress */
body.ldg-skin .badge {
    padding: 3px 8px;
    border-radius: 999px;
    background: var(--ldg-teal-800);
    color: #fff;
    font-family: var(--ldg-mono);
    font-size: 11px;
    font-weight: 500;
}
body.ldg-skin .well { background: var(--ldg-field); border: 1px solid var(--ldg-line); border-radius: var(--ldg-radius); box-shadow: none; }
body.ldg-skin .progress { height: 8px; border-radius: 999px; background: var(--ldg-field); box-shadow: none; margin-bottom: 6px; }
body.ldg-skin .progress-bar { background: var(--ldg-teal-800); box-shadow: none; }
body.ldg-skin .progress-bar-success, body.ldg-skin .progress-bar-green { background: var(--ldg-good); }
body.ldg-skin .progress-bar-danger, body.ldg-skin .progress-bar-red { background: var(--ldg-bad); }
body.ldg-skin .progress-bar-warning, body.ldg-skin .progress-bar-yellow { background: var(--ldg-amber); }

/* Bootstrap panels and list groups */
body.ldg-skin .panel { border: 1px solid var(--ldg-line); border-radius: var(--ldg-radius-lg); box-shadow: none; overflow: hidden; }
body.ldg-skin .panel > .panel-heading {
    background: var(--ldg-surface) !important;
    border-bottom: 1px solid var(--ldg-line) !important;
    color: var(--ldg-ink-2) !important;
    font-family: var(--ldg-mono);
    font-size: 12px;
    font-weight: 600;
    letter-spacing: .1em;
    text-transform: uppercase;
}
body.ldg-skin .panel-primary { border-color: var(--ldg-line); }
body.ldg-skin .panel-footer { background: var(--ldg-field); border-top-color: var(--ldg-line); }
body.ldg-skin .list-group-item { border-color: var(--ldg-line); }
body.ldg-skin .list-group-item.active,
body.ldg-skin .list-group-item.active:hover { background: var(--ldg-teal-50); border-color: var(--ldg-teal-100); color: var(--ldg-tx-900); }

/* Small / info boxes (module dashboards) */
body.ldg-skin .small-box,
body.ldg-skin .info-box {
    border: 1px solid var(--ldg-line);
    border-radius: var(--ldg-radius-lg);
    box-shadow: none;
    background: var(--ldg-surface) !important;
    color: var(--ldg-ink) !important;
    overflow: hidden;
}
body.ldg-skin .small-box > .inner { padding: 14px 16px; }
body.ldg-skin .small-box h3 { font-size: 26px; font-weight: 700; font-variant-numeric: tabular-nums; color: var(--ldg-ink); margin: 0 0 4px; }
body.ldg-skin .small-box p { font-family: var(--ldg-mono); font-size: 11px; letter-spacing: .1em; text-transform: uppercase; color: var(--ldg-muted); }
body.ldg-skin .small-box .icon { color: var(--ldg-teal-100); }
body.ldg-skin .small-box > .small-box-footer {
    background: var(--ldg-field) !important;
    color: var(--ldg-tx-900) !important;
    border-top: 1px solid var(--ldg-line);
    font-size: 12.5px;
    font-weight: 600;
}
body.ldg-skin .info-box-icon { background: var(--ldg-teal-50) !important; color: var(--ldg-tx-800) !important; border-radius: 0; }
body.ldg-skin .info-box-text { font-family: var(--ldg-mono); font-size: 11px; letter-spacing: .1em; text-transform: uppercase; color: var(--ldg-muted); }
body.ldg-skin .info-box-number { font-size: 20px; font-weight: 700; font-variant-numeric: tabular-nums; }

/* Timeline (activity / history views) */
body.ldg-skin .timeline::before { background: var(--ldg-line); }
body.ldg-skin .timeline > li > .timeline-item {
    border: 1px solid var(--ldg-line);
    border-radius: var(--ldg-radius-lg);
    box-shadow: none;
    background: var(--ldg-surface);
}
body.ldg-skin .timeline > li > .timeline-item > .timeline-header { border-bottom-color: var(--ldg-line); font-size: 14px; color: var(--ldg-ink); }
body.ldg-skin .timeline > li > .timeline-item > .time { font-family: var(--ldg-mono); font-size: 11.5px; color: var(--ldg-muted); }
body.ldg-skin .timeline > li > .fa,
body.ldg-skin .timeline > li > .fas,
body.ldg-skin .timeline > li > .glyphicon { background: var(--ldg-teal-800) !important; color: #fff !important; }
body.ldg-skin .timeline > .time-label > span { background: var(--ldg-teal-900) !important; color: #fff; border-radius: var(--ldg-radius); font-family: var(--ldg-mono); font-size: 12px; }

/* Direct chat (Essentials messages), user block, to-do list, app buttons */
body.ldg-skin .direct-chat-text { background: var(--ldg-field); border-color: var(--ldg-line); color: var(--ldg-ink); border-radius: var(--ldg-radius); }
body.ldg-skin .direct-chat-text::before,
body.ldg-skin .direct-chat-text::after { border-right-color: var(--ldg-field); }
body.ldg-skin .right .direct-chat-text { background: var(--ldg-teal-800); border-color: var(--ldg-teal-800); color: #fff; }
body.ldg-skin .right .direct-chat-text::before,
body.ldg-skin .right .direct-chat-text::after { border-left-color: var(--ldg-teal-800); }
body.ldg-skin .direct-chat-timestamp { font-family: var(--ldg-mono); font-size: 11px; color: var(--ldg-muted); }
body.ldg-skin .user-block .username { font-weight: 600; color: var(--ldg-ink); }
body.ldg-skin .user-block .description { font-family: var(--ldg-mono); font-size: 11.5px; color: var(--ldg-muted); }
body.ldg-skin .todo-list > li { background: var(--ldg-surface); border: 1px solid var(--ldg-line); border-left: 1px solid var(--ldg-line); border-radius: var(--ldg-radius); margin-bottom: 6px; }
body.ldg-skin .todo-list > li.done { background: var(--ldg-field); }
body.ldg-skin .btn-app {
    border: 1px solid var(--ldg-line-2);
    border-radius: var(--ldg-radius);
    background: var(--ldg-surface);
    color: var(--ldg-ink-2);
}
body.ldg-skin .btn-app:hover { border-color: var(--ldg-teal-700); background: var(--ldg-teal-50); color: var(--ldg-tx-900); }
body.ldg-skin .btn-app > .badge { background: var(--ldg-amber); color: var(--ldg-teal-950); }

/* FullCalendar (Essentials leave / holiday calendar) */
body.ldg-skin .fc .fc-button,
body.ldg-skin .fc-button { background: var(--ldg-surface) !important; border: 1px solid var(--ldg-line-2) !important; color: var(--ldg-ink-2) !important; box-shadow: none !important; text-shadow: none !important; border-radius: var(--ldg-radius) !important; }
body.ldg-skin .fc .fc-button-active,
body.ldg-skin .fc-state-active { background: var(--ldg-teal-800) !important; border-color: var(--ldg-teal-800) !important; color: #fff !important; }
body.ldg-skin .fc-event { border-radius: 4px; }
body.ldg-skin .fc-unthemed td.fc-today,
body.ldg-skin .fc .fc-day-today { background: var(--ldg-teal-50) !important; }
/* Bootstrap's ".tab-content > .active { display:block }" would cancel the section gaps of the info tab */
body.ldg-skin .tab-content > .tab-pane.ldg-info.active { display: flex; }
body.ldg-skin .ldg-info__modules { margin-top: 4px; }

/* Activity detail captured by the module: device + masked IP, edited fields */
.ldg-act-client { display: flex; flex-wrap: wrap; align-items: center; gap: 6px 12px; font-size: 13px; color: var(--ldg-ink-2); }
.ldg-act-client__device i { color: var(--ldg-muted); margin-inline-end: 4px; }
.ldg-act-client__ip { font-family: var(--ldg-mono); font-size: 11.5px; padding: 2px 6px; background: var(--ldg-field); border-radius: 4px; color: var(--ldg-muted); }
.ldg-act-diff { margin: 0; display: flex; flex-direction: column; gap: 4px; }
.ldg-act-diff__row { display: grid; grid-template-columns: minmax(90px, 30%) 1fr; gap: 10px; align-items: baseline; font-size: 13px; }
.ldg-act-diff__row dt { font-family: var(--ldg-mono); font-size: 10.5px; font-weight: 500; letter-spacing: .08em; text-transform: uppercase; color: var(--ldg-muted); }
.ldg-act-diff__row dd { margin: 0; display: flex; flex-wrap: wrap; align-items: baseline; gap: 6px; min-width: 0; word-break: break-word; }
.ldg-act-diff__old { color: var(--ldg-bad); text-decoration: line-through; text-decoration-color: color-mix(in srgb, var(--ldg-bad) 50%, transparent); }
.ldg-act-diff__arrow { color: var(--ldg-muted); }
.ldg-act-diff__new { color: var(--ldg-good); font-weight: 600; }
.ldg-act-diff__masked { font-family: var(--ldg-mono); font-size: 11.5px; color: var(--ldg-muted); }

/* ======================================================================
 * Date range picker (daterangepicker, appended to <body>): theme look.
 * vendor.css gives its month/year/time selects a dark #3b3b3b background → light theme fields.
 * ====================================================================== */
body.ldg-skin .daterangepicker {
    border: 1px solid var(--ldg-line-2);
    border-radius: var(--ldg-radius-lg);
    box-shadow: 0 16px 40px rgba(7, 47, 44, .18);
    font-family: var(--ldg-sans);
    color: var(--ldg-ink);
}
body.ldg-skin .daterangepicker::before { border-bottom-color: var(--ldg-line-2); }
body.ldg-skin .daterangepicker select.monthselect,
body.ldg-skin .daterangepicker select.yearselect,
body.ldg-skin .daterangepicker select.hourselect,
body.ldg-skin .daterangepicker select.minuteselect,
body.ldg-skin .daterangepicker select.secondselect,
body.ldg-skin .daterangepicker select.ampmselect {
    -webkit-appearance: none;
    appearance: none;
    height: 30px;
    padding: 0 24px 0 8px !important;
    margin: 0 2px;
    background: var(--ldg-field) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%233a4542' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 9l6 6l6 -6'/%3E%3C/svg%3E") no-repeat right 6px center / 12px 12px !important;
    border: 1px solid var(--ldg-line-2) !important;
    border-radius: var(--ldg-radius) !important;
    color: var(--ldg-ink) !important;
    font-size: 13px;
    font-weight: 600;
    cursor: pointer;
    color-scheme: light;
}
[dir="rtl"] body.ldg-skin .daterangepicker select.monthselect,
[dir="rtl"] body.ldg-skin .daterangepicker select.yearselect { padding: 0 8px 0 24px !important; background-position: left 6px center !important; }
body.ldg-skin .daterangepicker select:focus { border-color: var(--ldg-teal-700) !important; background-color: var(--ldg-surface) !important; outline: none; }
body.ldg-skin .daterangepicker select option { background: #fff; color: var(--ldg-ink); }
body.ldg-skin .daterangepicker select.monthselect { width: 56%; }
body.ldg-skin .daterangepicker select.yearselect { width: 40%; }
/* presets */
body.ldg-skin .daterangepicker .ranges li { border-radius: 4px; font-size: 13px; color: var(--ldg-ink-2); }
body.ldg-skin .daterangepicker .ranges li:hover { background: var(--ldg-field); color: var(--ldg-ink); }
body.ldg-skin .daterangepicker .ranges li.active { background: var(--ldg-teal-800); color: #fff; }
/* calendar */
body.ldg-skin .daterangepicker .calendar-table th { font-family: var(--ldg-mono); font-size: 11px; color: var(--ldg-muted); font-weight: 500; }
body.ldg-skin .daterangepicker .calendar-table { border-color: transparent; }
body.ldg-skin .daterangepicker td { border-radius: 4px; font-size: 13px; font-variant-numeric: tabular-nums; }
body.ldg-skin .daterangepicker td.available:hover,
body.ldg-skin .daterangepicker th.available:hover { background: var(--ldg-field); }
body.ldg-skin .daterangepicker td.in-range { background: var(--ldg-teal-50); color: var(--ldg-tx-900); border-radius: 0; }
body.ldg-skin .daterangepicker td.active,
body.ldg-skin .daterangepicker td.active:hover { background: var(--ldg-teal-800); color: #fff; }
body.ldg-skin .daterangepicker td.start-date { border-radius: 4px 0 0 4px; }
body.ldg-skin .daterangepicker td.end-date { border-radius: 0 4px 4px 0; }
body.ldg-skin .daterangepicker td.start-date.end-date { border-radius: 4px; }
body.ldg-skin .daterangepicker td.off,
body.ldg-skin .daterangepicker td.off.in-range { color: var(--ldg-line-2); background: transparent; }
body.ldg-skin .daterangepicker .calendar-table .next span,
body.ldg-skin .daterangepicker .calendar-table .prev span { border-color: var(--ldg-ink-2); }
/* footer */
body.ldg-skin .daterangepicker .drp-buttons { border-top-color: var(--ldg-line); padding: 10px 12px; }
body.ldg-skin .daterangepicker .drp-selected { font-family: var(--ldg-mono); font-size: 12px; color: var(--ldg-muted); }
body.ldg-skin .daterangepicker .drp-buttons .btn { height: 32px; padding: 0 14px; border-radius: var(--ldg-radius); font-size: 13px; font-weight: 600; }
body.ldg-skin .daterangepicker .drp-buttons .applyBtn { background: var(--ldg-teal-800) !important; border-color: var(--ldg-teal-800) !important; color: #fff !important; }
body.ldg-skin .daterangepicker .drp-buttons .cancelBtn { background: var(--ldg-surface) !important; border: 1px solid var(--ldg-line-2) !important; color: var(--ldg-ink) !important; }
/* month + year selects side by side with room for a 4-digit year */
body.ldg-skin .daterangepicker .calendar-table th.month { white-space: nowrap; }
body.ldg-skin .daterangepicker th.month > select { width: auto !important; }
body.ldg-skin .daterangepicker select.monthselect { min-width: 80px; }
body.ldg-skin .daterangepicker select.yearselect { min-width: 76px; }

/* activity note: row with nothing recorded (logged before the Themes module was active) */
body.ldg-skin .ldg-act-none { color: var(--ldg-muted, #8a8f98); font-size: 12px; font-style: italic; }

/* ======================================================================
   Roles + sales commission agents (skin_paths: roles, roles/*, sales-commission-agents)
   ====================================================================== */

/* Pinned save bar also for forms inside a panel (role create / edit); same look as the page-level one */
body.ldg-skin .ldg-panel__body > form > .row.ldg-savebar {
    position: sticky;
    bottom: 0;
    z-index: 20;
    margin: 18px 0 0 !important;
    padding: 12px 16px;
    background: color-mix(in srgb, var(--ldg-surface) 92%, transparent);
    backdrop-filter: blur(6px);
    border: 1px solid var(--ldg-line);
    border-radius: var(--ldg-radius-lg);
    box-shadow: 0 -8px 24px rgba(7, 47, 44, .06);
}
body.ldg-skin .ldg-panel__body > form > .row.ldg-savebar > [class*="col-"] {
    display: flex; justify-content: flex-end; gap: 8px; float: none; width: 100%; padding: 0; text-align: end;
}
body.ldg-skin .ldg-panel__body > form > .row.ldg-savebar button,
body.ldg-skin .ldg-panel__body > form > .row.ldg-savebar .btn {
    height: 40px; min-height: 40px; padding: 0 22px !important; border-radius: var(--ldg-radius) !important; font-size: 14px !important; font-weight: 600;
}

/* List tables: sortable header text never runs under the sort arrow; row action buttons stay on one line */
body.ldg-skin table.dataTable thead th.sorting,
body.ldg-skin table.dataTable thead th.sorting_asc,
body.ldg-skin table.dataTable thead th.sorting_desc { padding-right: 26px !important; }
[dir="rtl"] body.ldg-skin table.dataTable thead th[class*="sorting"] { padding-right: 10px !important; padding-left: 26px !important; }
body.ldg-skin table.dataTable:not(.ldg-cards) tbody td:last-child:has(> .tw-dw-btn, > .btn, > a.btn) { white-space: nowrap; width: 1%; }

/* ---------- Role permissions: toolbar + group cards ---------- */
body.ldg-skin .ldg-perm__legacy-label { display: none; }
body.ldg-skin .ldg-perm { margin-top: 6px; }
body.ldg-skin .ldg-perm__bar {
    position: sticky;
    top: 0;
    z-index: 15;
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 8px;
    margin: 0 0 14px;
    padding: 10px 0;
    background: var(--ldg-surface);
    border-bottom: 1px solid var(--ldg-line);
}
body.ldg-skin .ldg-perm__search {
    position: relative;
    display: flex;
    align-items: center;
    flex: 1 1 260px;
    max-width: 380px;
    margin: 0;
    color: var(--ldg-muted);
    font-weight: 400;
}
body.ldg-skin .ldg-perm__search svg { position: absolute; left: 11px; pointer-events: none; }
[dir="rtl"] body.ldg-skin .ldg-perm__search svg { left: auto; right: 11px; }
body.ldg-skin .ldg-perm__search input {
    width: 100%;
    height: 36px;
    padding: 0 12px 0 34px;
    background: var(--ldg-field);
    border: 1px solid var(--ldg-line);
    border-radius: var(--ldg-radius);
    color: var(--ldg-ink);
    font-size: 13.5px;
    outline: none;
}
[dir="rtl"] body.ldg-skin .ldg-perm__search input { padding: 0 34px 0 12px; }
body.ldg-skin .ldg-perm__search input:focus { border-color: var(--ldg-teal-700); background: var(--ldg-surface); box-shadow: 0 0 0 3px var(--ldg-teal-50); }
body.ldg-skin .ldg-perm__total {
    margin-inline-start: auto;
    font-family: var(--ldg-mono);
    font-size: 12px;
    color: var(--ldg-muted);
    white-space: nowrap;
}
body.ldg-skin .ldg-perm__btn {
    height: 32px;
    padding: 0 12px;
    background: var(--ldg-surface);
    border: 1px solid var(--ldg-line-2);
    border-radius: var(--ldg-radius);
    color: var(--ldg-ink-2);
    font-size: 12.5px;
    font-weight: 600;
}
body.ldg-skin .ldg-perm__btn:hover { border-color: var(--ldg-teal-700); background: var(--ldg-teal-50); color: var(--ldg-tx-900); }

body.ldg-skin .ldg-perm__grid { display: flex; flex-direction: column; gap: 12px; }
body.ldg-skin .row.ldg-perm__card {
    margin: 0 !important;
    background: var(--ldg-surface);
    border: 1px solid var(--ldg-line);
    border-radius: var(--ldg-radius-lg);
    overflow: hidden;
}
body.ldg-skin .ldg-perm__card::before,
body.ldg-skin .ldg-perm__card::after { display: none !important; }
body.ldg-skin .ldg-perm__head {
    display: flex;
    align-items: center;
    gap: 12px;
    min-height: 46px;
    padding: 6px 10px 6px 16px;
    background: var(--ldg-field);
    border-bottom: 1px solid var(--ldg-line);
}
body.ldg-skin .ldg-perm__head > [class*="col-"] { float: none; width: auto; padding: 0; min-height: 0; }
body.ldg-skin .ldg-perm__title { flex: 1 1 auto; min-width: 0; }
body.ldg-skin .ldg-perm__title h4 {
    margin: 0;
    font-family: var(--ldg-mono);
    font-size: 11.5px;
    font-weight: 600;
    letter-spacing: .1em;
    text-transform: uppercase;
    color: var(--ldg-tx-900);
}
body.ldg-skin .ldg-perm__title h4 i { font-size: 12px; color: var(--ldg-muted); letter-spacing: 0; }
body.ldg-skin .ldg-perm__count {
    padding: 2px 8px;
    border-radius: 999px;
    background: var(--ldg-surface);
    border: 1px solid var(--ldg-line);
    font-family: var(--ldg-mono);
    font-size: 11px;
    color: var(--ldg-muted);
    white-space: nowrap;
}
body.ldg-skin .ldg-perm__count.is-some { color: var(--ldg-tx-900); border-color: var(--ldg-teal-100); background: var(--ldg-teal-50); }
body.ldg-skin .ldg-perm__count.is-all { color: #fff; border-color: var(--ldg-teal-800); background: var(--ldg-teal-800); }
body.ldg-skin .ldg-perm__all .checkbox { margin: 0; }
body.ldg-skin .ldg-perm__all label { font-size: 12.5px; font-weight: 600; color: var(--ldg-ink-2); white-space: nowrap; }
body.ldg-skin .ldg-perm__toggle {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 30px;
    height: 30px;
    padding: 0;
    background: none;
    border: 0;
    border-radius: var(--ldg-radius);
    color: var(--ldg-muted);
}
body.ldg-skin .ldg-perm__toggle:hover { background: var(--ldg-surface); color: var(--ldg-ink); }
body.ldg-skin .ldg-perm__toggle svg { transition: transform .15s ease; }
body.ldg-skin .ldg-perm__card.is-collapsed .ldg-perm__toggle svg { transform: rotate(-90deg); }
[dir="rtl"] body.ldg-skin .ldg-perm__card.is-collapsed .ldg-perm__toggle svg { transform: rotate(90deg); }
body.ldg-skin .ldg-perm__card.is-collapsed .ldg-perm__head { border-bottom-color: transparent; }
body.ldg-skin .ldg-perm__card.is-collapsed .ldg-perm__body { display: none !important; }

body.ldg-skin .ldg-perm__body.ldg-perm__body {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(230px, 1fr));
    column-gap: 18px;
    row-gap: 0;
    float: none;
    width: 100%;
    padding: 8px 16px 10px;
}
body.ldg-skin .ldg-perm__body > [class*="col-"] { float: none; width: auto; padding: 0; min-height: 0; }
body.ldg-skin .ldg-perm__body .checkbox { margin: 6px 0; }
body.ldg-skin .ldg-perm__body .checkbox label { display: inline-flex; align-items: flex-start; gap: 8px; font-size: 13px; font-weight: 500; line-height: 1.4; }
body.ldg-skin .ldg-perm__body .checkbox label > div[class*="icheckbox"],
body.ldg-skin .ldg-perm__body .checkbox label > div[class*="iradio"] { flex: 0 0 auto; margin-top: 1px; }
body.ldg-skin .ldg-perm__body h5,
body.ldg-skin .ldg-perm__body strong { grid-column: 1 / -1; }
body.ldg-skin .ldg-perm__sep { grid-column: 1 / -1; height: 1px; margin: 6px 0; background: var(--ldg-line); }
body.ldg-skin .ldg-perm__miss { display: none !important; }
body.ldg-skin .ldg-perm__empty {
    padding: 28px 16px;
    border: 1px dashed var(--ldg-line-2);
    border-radius: var(--ldg-radius-lg);
    color: var(--ldg-muted);
    text-align: center;
    font-size: 13.5px;
}
@media (max-width: 767px) {
    body.ldg-skin .ldg-perm__total { margin-inline-start: 0; }
    body.ldg-skin .ldg-perm__head { flex-wrap: wrap; }
    body.ldg-skin .ldg-perm__body.ldg-perm__body { grid-template-columns: 1fr; }
}
body.ldg-skin .ldg-perm__title h4 { border: 0 !important; padding: 0 !important; background: none !important; }
body.ldg-skin .ldg-perm__title h4::after, body.ldg-skin .ldg-perm__title h4::before { display: none !important; }
body.ldg-skin .ldg-perm__title { display: flex; align-items: center; min-height: 30px; }
body.ldg-skin .ldg-perm__title h4 { line-height: 1.3; }
body.ldg-skin .ldg-perm__all { display: flex; align-items: center; }
body.ldg-skin .ldg-perm__title h4 { margin: 0 !important; }
body.ldg-skin .ldg-perm__body .checkbox label { padding-left: 0 !important; padding-inline-start: 0 !important; }

/* Partly selected group: "Select all" box shows a dash (iCheck .indeterminate, set by theme.js) */
body.ldg-skin .icheckbox_square-blue.indeterminate:not(.checked) {
    background: var(--ldg-teal-800) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23fff' stroke-width='3' stroke-linecap='round'%3E%3Cpath d='M6 12h12'/%3E%3C/svg%3E") center / 12px 12px no-repeat !important;
    border-color: var(--ldg-teal-800);
}
body.ldg-skin .ldg-perm__all--theme .checkbox { margin: 0; }

/* Table toolbar: the search column always sits at the far end (":last-of-type" above hits the hidden processing <div>) */
body.ldg-skin .dataTables_wrapper > .row:first-child > [class*="col-"]:has(.dataTables_filter) { margin-inline-start: auto; justify-content: flex-end; }
body.ldg-skin .dataTables_wrapper > .row:first-child > [class*="col-"]:has(> .dt-buttons:empty) { display: none; }

/* ======================================================================
   Contacts (skin_paths: contacts, contacts/*, customer-group)
   ====================================================================== */

/* DataTables with horizontal scroll keep a zero-height copy of the header inside the body table:
   the theme's cell padding made it a visible empty row */
body.ldg-skin .dataTables_scrollBody > table > thead > tr,
body.ldg-skin .dataTables_scrollBody > table > thead > tr > th,
body.ldg-skin .dataTables_scrollBody > table > thead > tr > td {
    height: 0 !important;
    padding-top: 0 !important;
    padding-bottom: 0 !important;
    border-top: 0 !important;
    border-bottom: 0 !important;
    line-height: 0 !important;
}
body.ldg-skin .dataTables_scrollBody > table > thead > tr > th::after,
body.ldg-skin .dataTables_scrollBody > table > thead > tr > th::before { display: none !important; }
body.ldg-skin .dataTables_scrollBody > table > thead .dataTables_sizing { height: 0 !important; overflow: hidden !important; }
/* totals row under scrolling tables */
body.ldg-skin .dataTables_scrollFoot tfoot td,
body.ldg-skin .dataTables_scrollFoot tfoot th,
body.ldg-skin table.dataTable tfoot tr.footer-total td {
    background: var(--ldg-field) !important;
    border-top: 1px solid var(--ldg-line-2) !important;
    font-family: var(--ldg-mono);
    font-size: 12.5px;
    font-weight: 600;
    color: var(--ldg-ink);
    white-space: nowrap;
}

/* ---------- Filter panel ---------- */
body.ldg-skin .ldg-filters {
    position: relative;
    margin-bottom: 18px !important;
    background: var(--ldg-surface) !important;
    border: 1px solid var(--ldg-line) !important;
    border-radius: var(--ldg-radius-lg) !important;
    box-shadow: none !important;
    --tw-ring-shadow: 0 0 #0000 !important;
    overflow: visible !important;
}
body.ldg-skin .ldg-filters:hover { box-shadow: none !important; }
body.ldg-skin .ldg-filters__head {
    display: flex !important;
    align-items: center;
    gap: 10px;
    min-height: 46px;
    padding: 0 16px !important;
    background: transparent !important;
    border-bottom: 1px solid var(--ldg-line) !important;
}
body.ldg-skin .ldg-filters:not(.pf-open):has(.pf-body:not(.pf-body--open)) .ldg-filters__head,
body.ldg-skin .ldg-filters:has(#collapseFilter:not(.in)) .ldg-filters__head { border-bottom-color: transparent !important; }
body.ldg-skin .ldg-filters__head::before { display: none !important; }
body.ldg-skin .ldg-filters__head .box-title { display: flex; align-items: center; gap: 10px; flex: 1 1 auto; margin: 0; padding: 0 !important; }
body.ldg-skin .ldg-filters__head .box-title > a,
body.ldg-skin .ldg-filters__head.pf-btn > span:first-child {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    color: var(--ldg-tx-900) !important;
    font-family: var(--ldg-mono);
    font-size: 11.5px !important;
    font-weight: 600 !important;
    letter-spacing: .1em;
    text-transform: uppercase;
    text-decoration: none !important;
}
body.ldg-skin .ldg-filters__head .box-title > a { flex: 1 1 auto; padding: 13px 0; }
/* chevron for the Bootstrap-collapse version (core version has its own) */
body.ldg-skin .ldg-filters__head .box-title > a::after {
    content: "";
    width: 8px;
    height: 8px;
    margin-inline-start: auto;
    border-right: 1.8px solid var(--ldg-muted);
    border-bottom: 1.8px solid var(--ldg-muted);
    transform: rotate(45deg) translateY(-2px);
    transition: transform .15s ease;
}
body.ldg-skin .ldg-filters__head .box-title > a.collapsed::after { transform: rotate(-45deg); }
body.ldg-skin .ldg-filters__head .pf-chevron { color: var(--ldg-muted) !important; }
body.ldg-skin .ldg-filters__head.pf-btn > span:first-child > span:first-child { background: var(--ldg-teal-50) !important; color: var(--ldg-tx-800) !important; }
body.ldg-skin .ldg-filters__badge {
    padding: 2px 8px;
    border-radius: 999px;
    background: var(--ldg-teal-800);
    color: #fff;
    font-family: var(--ldg-mono);
    font-size: 10.5px;
    font-weight: 600;
    letter-spacing: .04em;
    text-transform: none;
}
body.ldg-skin .ldg-filters__reset {
    padding: 4px 10px;
    background: none;
    border: 1px solid var(--ldg-line-2);
    border-radius: var(--ldg-radius);
    color: var(--ldg-ink-2);
    font-size: 12px;
    font-weight: 600;
}
body.ldg-skin .ldg-filters__reset:hover { border-color: var(--ldg-bad); color: var(--ldg-bad); background: var(--ldg-bad-bg); }
body.ldg-skin .ldg-filters__reset.is-floating { position: absolute; top: 9px; inset-inline-end: 48px; z-index: 2; }
body.ldg-skin .ldg-filters__reset[hidden], body.ldg-skin .ldg-filters__badge[hidden] { display: none !important; }

body.ldg-skin #collapseFilter { padding: 0 !important; }
body.ldg-skin .ldg-filters__body {
    display: grid !important;
    grid-template-columns: repeat(auto-fill, minmax(220px, 1fr));
    gap: 4px 18px;
    padding: 16px !important;
}
body.ldg-skin .ldg-filters__body::before, body.ldg-skin .ldg-filters__body::after { display: none !important; }
body.ldg-skin .ldg-filters__body > [class*="col-"] { float: none; width: auto; padding: 0; min-height: 0; }
body.ldg-skin .ldg-filters__body > .clearfix { display: none; }
body.ldg-skin .ldg-filters__field .form-group { margin-bottom: 10px; }
body.ldg-skin .ldg-filters__field .select2-container { width: 100% !important; }

/* checkbox filters as toggle chips */
body.ldg-skin .ldg-filters__chips {
    grid-column: 1 / -1;
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    padding-bottom: 14px;
    margin-bottom: 6px;
    border-bottom: 1px dashed var(--ldg-line);
}
body.ldg-skin .ldg-filters__chip { float: none !important; width: auto !important; padding: 0 !important; }
body.ldg-skin .ldg-filters__chip .form-group,
body.ldg-skin .ldg-filters__chip .checkbox { margin: 0 !important; }
body.ldg-skin .ldg-filters__chip label {
    display: inline-flex !important;
    align-items: center;
    gap: 8px;
    height: 34px;
    margin: 0 !important;
    padding: 0 14px 0 10px !important;
    background: var(--ldg-surface);
    border: 1px solid var(--ldg-line-2);
    border-radius: 999px;
    color: var(--ldg-ink-2) !important;
    font-family: var(--ldg-sans) !important;
    font-size: 13px !important;
    font-weight: 500 !important;
    letter-spacing: 0 !important;
    text-transform: none !important;
    cursor: pointer;
    transition: background-color .12s, border-color .12s;
}
body.ldg-skin .ldg-filters__chip label strong { font-weight: 600; }
body.ldg-skin .ldg-filters__chip label:hover { border-color: var(--ldg-teal-700); }
body.ldg-skin .ldg-filters__chip.is-on label { background: var(--ldg-teal-50); border-color: var(--ldg-teal-700); color: var(--ldg-tx-900) !important; }
body.ldg-skin .ldg-filters__chip [class*="icheckbox"] { width: 16px !important; height: 16px !important; }

/* ---------- Contact view: ledger in theme colours ---------- */
body.ldg-skin .blue-heading {
    background: var(--ldg-teal-900) !important;
    color: #fff !important;
    border-radius: var(--ldg-radius) var(--ldg-radius) 0 0;
    font-family: var(--ldg-mono);
    font-size: 12px !important;
    font-weight: 600;
    letter-spacing: .1em;
    text-transform: uppercase;
    padding: 8px 12px !important;
    margin: 0 !important;
}
body.ldg-skin #ledger_tab h3.blue-heading { line-height: 1.4; }
body.ldg-skin #ledger_tab div[style*="border: 1px solid #000"] {
    border: 1px solid var(--ldg-line) !important;
    border-top: 0 !important;
    border-radius: 0 0 var(--ldg-radius-lg) var(--ldg-radius-lg);
    margin-bottom: 14px;
    background: var(--ldg-surface);
}
body.ldg-skin #ledger_tab div[style*="border: 1px solid #000"] + h3,
body.ldg-skin #ledger_tab div[style*="border: 1px solid #000"] + div[style*="border: 1px solid #000"] { margin-top: 0; }
body.ldg-skin #ledger_tab p.blue-heading { display: inline-block; min-width: 50%; }
body.ldg-skin #ledger_table thead tr.blue-heading,
body.ldg-skin #ledger_table thead tr.blue-heading th {
    background: var(--ldg-field) !important;
    color: var(--ldg-muted) !important;
    border-radius: 0;
    padding: 10px 8px !important;
    font-size: 10.5px !important;
    border-bottom: 1px solid var(--ldg-line-2) !important;
}
body.ldg-skin #ledger_table td { font-size: 13px; vertical-align: middle; }
body.ldg-skin #ledger_table td:nth-child(6),
body.ldg-skin #ledger_table td:nth-child(7) { font-family: var(--ldg-mono); font-size: 12.5px; white-space: nowrap; }
body.ldg-skin #ledger_tab .table-condensed td { padding: 7px 10px !important; }

/* ---------- Contact view: header card ---------- */
body.ldg-skin #view_contact_page + .row h3,
body.ldg-skin .box-solid:has(#view_contact_page) h3 { font-size: 22px; font-weight: 600; }
body.ldg-skin .box-solid:has(#view_contact_page) {
    background: var(--ldg-surface);
    border: 1px solid var(--ldg-line) !important;
    border-radius: var(--ldg-radius-lg);
    box-shadow: none;
}
body.ldg-skin .box-solid:has(#view_contact_page) strong { font-family: var(--ldg-mono); font-size: 10.5px; font-weight: 500; letter-spacing: .1em; text-transform: uppercase; color: var(--ldg-muted); }
body.ldg-skin .box-solid:has(#view_contact_page) strong i { color: var(--ldg-tx-800); letter-spacing: 0; margin-inline-end: 4px; }
body.ldg-skin .box-solid:has(#view_contact_page) .text-muted,
body.ldg-skin .box-solid:has(#view_contact_page) p { color: var(--ldg-ink); font-size: 14px; }
body.ldg-skin .box-solid:has(#view_contact_page) .mt-56 { margin-top: 56px; }

/* ---------- Columns picker (show / hide, remembered per browser) ---------- */
body.ldg-skin .ldg-cols { position: relative; display: inline-flex; }
body.ldg-skin .ldg-cols__btn {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    height: 34px;
    padding: 0 12px;
    background: var(--ldg-surface);
    border: 1px solid var(--ldg-line-2);
    border-radius: var(--ldg-radius);
    color: var(--ldg-ink-2);
    font-size: 12.5px;
    font-weight: 600;
    white-space: nowrap;
}
body.ldg-skin .ldg-cols__btn:hover,
body.ldg-skin .ldg-cols__btn.is-open { border-color: var(--ldg-teal-700); background: var(--ldg-teal-50); color: var(--ldg-tx-900); }
body.ldg-skin .ldg-cols__count {
    min-width: 18px;
    height: 18px;
    padding: 0 5px;
    border-radius: 999px;
    background: var(--ldg-teal-800);
    color: #fff;
    font-family: var(--ldg-mono);
    font-size: 10.5px;
    line-height: 18px;
    text-align: center;
}
body.ldg-skin .ldg-cols__count[hidden], body.ldg-skin .ldg-cols__panel[hidden] { display: none !important; }
body.ldg-skin .ldg-cols__panel {
    position: absolute;
    top: calc(100% + 6px);
    inset-inline-end: 0;
    z-index: 60;
    width: 260px;
    background: var(--ldg-surface);
    border: 1px solid var(--ldg-line);
    border-radius: var(--ldg-radius-lg);
    box-shadow: 0 14px 34px rgba(7, 47, 44, .14);
    text-align: start;
}
body.ldg-skin .ldg-cols__list { max-height: 340px; overflow-y: auto; padding: 6px; }
body.ldg-skin .ldg-cols__item {
    display: flex !important;
    align-items: center;
    gap: 10px;
    margin: 0 !important;
    padding: 7px 10px !important;
    border-radius: var(--ldg-radius);
    color: var(--ldg-ink) !important;
    font-family: var(--ldg-sans) !important;
    font-size: 13px !important;
    font-weight: 500 !important;
    letter-spacing: 0 !important;
    text-transform: none !important;
    cursor: pointer;
}
body.ldg-skin .ldg-cols__item:hover { background: var(--ldg-field); }
body.ldg-skin .ldg-cols__item input { width: 16px; height: 16px; margin: 0; accent-color: var(--ldg-teal-800); flex: 0 0 auto; }
body.ldg-skin .ldg-cols__item input:not(:checked) + span { color: var(--ldg-muted); }
body.ldg-skin .ldg-cols__foot { display: flex; justify-content: space-between; gap: 8px; padding: 8px 10px; border-top: 1px solid var(--ldg-line); }
body.ldg-skin .ldg-cols__foot button { padding: 4px 8px; background: none; border: 0; border-radius: var(--ldg-radius); color: var(--ldg-tx-800); font-size: 12.5px; font-weight: 600; }
body.ldg-skin .ldg-cols__foot button:hover { background: var(--ldg-teal-50); }
/* the theme picker replaces core's "Column visibility" button in themed toolbars (core one still works if shown elsewhere) */
body.ldg-skin .dataTables_wrapper:has(.ldg-cols) .dt-buttons .buttons-colvis { display: none !important; }

/* ---------- Contact ledger: format switch (segmented, selected = filled) ---------- */
body.ldg-skin #ledger_tab .btn-group[data-toggle="buttons"] {
    display: inline-flex;
    padding: 3px;
    gap: 2px;
    background: var(--ldg-field);
    border: 1px solid var(--ldg-line);
    border-radius: var(--ldg-radius);
}
body.ldg-skin #ledger_tab .btn-group[data-toggle="buttons"] > .btn {
    float: none;
    height: 32px;
    margin: 0 !important;
    padding: 0 14px !important;
    display: inline-flex;
    align-items: center;
    background: transparent !important;
    border: 0 !important;
    border-radius: calc(var(--ldg-radius) - 2px) !important;
    box-shadow: none !important;
    outline: none !important;
    color: var(--ldg-ink-2) !important;
    font-size: 13px !important;
    font-weight: 600;
    transition: background-color .12s, color .12s;
}
body.ldg-skin #ledger_tab .btn-group[data-toggle="buttons"] > .btn:hover { background: var(--ldg-surface) !important; color: var(--ldg-ink) !important; }
body.ldg-skin #ledger_tab .btn-group[data-toggle="buttons"] > .btn.active,
body.ldg-skin #ledger_tab .btn-group[data-toggle="buttons"] > .btn:has(input:checked) {
    background: var(--ldg-teal-800) !important;
    color: #fff !important;
    box-shadow: 0 1px 2px rgba(7, 47, 44, .2) !important;
}
body.ldg-skin #ledger_tab .btn-group[data-toggle="buttons"] > .btn.focus,
body.ldg-skin #ledger_tab .btn-group[data-toggle="buttons"] > .btn:focus-visible { box-shadow: 0 0 0 3px var(--ldg-teal-100) !important; }
body.ldg-skin #ledger_tab .btn-group[data-toggle="buttons"] input[type="radio"] { position: absolute; clip: rect(0, 0, 0, 0); pointer-events: none; }
/* PDF / e-mail icon buttons */
body.ldg-skin #print_ledger_pdf,
body.ldg-skin #send_ledger {
    width: 34px; height: 34px; padding: 0 !important;
    display: inline-flex; align-items: center; justify-content: center;
    background: var(--ldg-surface) !important; border: 1px solid var(--ldg-line-2) !important; border-radius: var(--ldg-radius) !important;
    color: var(--ldg-ink-2) !important; margin-top: 22px;
}
body.ldg-skin #print_ledger_pdf:hover, body.ldg-skin #send_ledger:hover { border-color: var(--ldg-teal-700) !important; background: var(--ldg-teal-50) !important; color: var(--ldg-tx-900) !important; }

/* ---------- Contact ledger: content of all formats ---------- */
body.ldg-skin .ldg-cledger { padding-top: 6px; color: var(--ldg-ink); }
body.ldg-skin .ldg-cledger p,
body.ldg-skin .ldg-cledger td { font-size: 13px; }
body.ldg-skin .ldg-cledger strong, body.ldg-skin .ldg-cledger b { color: var(--ldg-ink); }
body.ldg-skin .ldg-cledger h3:not(.blue-heading) { font-size: 22px; font-weight: 700; margin: 0 0 4px; color: var(--ldg-tx-900); }
body.ldg-skin .ldg-cledger .ldg-cledger__title {
    margin: 0 !important;
    font-family: var(--ldg-mono);
    font-size: 20px !important;
    letter-spacing: .14em;
    color: var(--ldg-tx-900);
}
body.ldg-skin .ldg-cledger .ldg-cledger__title strong { color: inherit; font-weight: 600; }
body.ldg-skin .ldg-cledger h4 { font-family: var(--ldg-mono); font-size: 11.5px !important; letter-spacing: .1em; text-transform: uppercase; color: var(--ldg-muted); }
body.ldg-skin .ldg-cledger h4 strong { color: var(--ldg-tx-900); font-weight: 600; }
/* every table in the ledger: hairline rows, quiet mono head */
body.ldg-skin .ldg-cledger table.table { background: var(--ldg-surface); margin-bottom: 14px; }
body.ldg-skin .ldg-cledger table.table > thead > tr > th,
body.ldg-skin .ldg-cledger table.table > tbody > tr.row-border > th {
    background: var(--ldg-field) !important;
    color: var(--ldg-muted) !important;
    font-family: var(--ldg-mono);
    font-size: 10.5px !important;
    font-weight: 500;
    letter-spacing: .1em;
    text-transform: uppercase;
    border-bottom: 1px solid var(--ldg-line-2) !important;
    padding: 10px 10px !important;
}
body.ldg-skin .ldg-cledger table.table > tbody > tr > td { border-top: 1px solid var(--ldg-line) !important; padding: 10px !important; vertical-align: middle; }
body.ldg-skin .ldg-cledger table.table-striped > tbody > tr:nth-of-type(odd) { background: transparent; }
body.ldg-skin .ldg-cledger table.table > tbody > tr:not(.ldg-cledger__filler):hover > td { background: var(--ldg-teal-50); }
body.ldg-skin .ldg-cledger .ws-nowrap.align-right,
body.ldg-skin .ldg-cledger td.align-right { font-family: var(--ldg-mono); font-size: 12.5px; white-space: nowrap; }
body.ldg-skin .ldg-cledger tr.ldg-cledger__filler { display: none; }
/* Format 3: invoice lines under each sale */
body.ldg-skin .ldg-cledger td.ldg-cledger__lines {
    background: var(--ldg-bg) !important;
    padding: 0 0 10px 18px !important;
    border-top: 0 !important;
}
body.ldg-skin .ldg-cledger td.ldg-cledger__lines > table,
body.ldg-skin .ldg-cledger td.ldg-cledger__lines table.table {
    margin: 0 !important;
    background: var(--ldg-surface);
    border-inline-start: 3px solid var(--ldg-teal-700);
    border-radius: 0 var(--ldg-radius) var(--ldg-radius) 0;
}
body.ldg-skin .ldg-cledger td.ldg-cledger__lines table th { background: var(--ldg-surface) !important; font-size: 10px !important; }
body.ldg-skin .ldg-cledger td.ldg-cledger__lines table td { font-size: 12.5px; padding: 7px 10px !important; }
/* Format 2: "To" box and statement header */
body.ldg-skin .ldg-cledger--format_2 table.table:first-of-type th { border-radius: var(--ldg-radius) var(--ldg-radius) 0 0; }

/* Aging report: theme tones instead of the core neon colours */
body.ldg-skin .ldg-cledger table.ldg-aging { border: 1px solid var(--ldg-line); border-radius: var(--ldg-radius-lg); overflow: hidden; border-collapse: separate; border-spacing: 0; }
body.ldg-skin .ldg-cledger table.ldg-aging th { text-align: center !important; color: var(--ldg-ink-2) !important; }
body.ldg-skin .ldg-cledger table.ldg-aging td { text-align: center !important; font-family: var(--ldg-mono); font-size: 13px !important; font-weight: 600; }
body.ldg-skin .ldg-cledger table.ldg-aging th.ldg-age { box-shadow: inset 0 3px 0 var(--ldg-age-c); }
body.ldg-skin .ldg-cledger .ldg-age { color: var(--ldg-age-c) !important; }
body.ldg-skin .ldg-cledger td.ldg-age { background: var(--ldg-age-bg) !important; }
body.ldg-skin .ldg-cledger td.ldg-age.is-zero { background: transparent !important; color: var(--ldg-muted) !important; font-weight: 500; }
body.ldg-skin .ldg-cledger .ldg-age--1 { --ldg-age-c: #8a6d00; --ldg-age-bg: #fbf5dd; }
body.ldg-skin .ldg-cledger .ldg-age--2 { --ldg-age-c: #8a5a00; --ldg-age-bg: #fbedd2; }
body.ldg-skin .ldg-cledger .ldg-age--3 { --ldg-age-c: #a2470f; --ldg-age-bg: #fbe4d6; }
body.ldg-skin .ldg-cledger .ldg-age--4 { --ldg-age-c: var(--ldg-bad); --ldg-age-bg: var(--ldg-bad-bg); }
body.ldg-skin .ldg-cledger table.ldg-aging td:last-child { color: var(--ldg-tx-900); font-weight: 700; }

/* ---------- View contact: header card (theme/contacts/info_card) ---------- */
body.ldg-skin .box-solid:has(.ldg-contact) > .box-body { padding: 0 !important; }
body.ldg-skin .ldg-contact { display: flex; flex-direction: column; }
body.ldg-skin .ldg-contact__head {
    display: flex;
    align-items: center;
    gap: 16px;
    padding: 20px 22px;
    border-bottom: 1px solid var(--ldg-line);
}
body.ldg-skin .ldg-contact__avatar {
    flex: 0 0 auto;
    width: 56px;
    height: 56px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 50%;
    background: var(--ldg-teal-50);
    border: 1px solid var(--ldg-teal-100);
    color: var(--ldg-tx-900);
    font-family: var(--ldg-mono);
    font-size: 19px;
    font-weight: 600;
    letter-spacing: .04em;
}
body.ldg-skin .ldg-contact__id { flex: 1 1 auto; min-width: 0; }
body.ldg-skin h3.ldg-contact__name { margin: 0 0 6px !important; font-size: 22px !important; font-weight: 600 !important; color: var(--ldg-ink); line-height: 1.25; }
body.ldg-skin .ldg-contact__meta { display: flex; flex-wrap: wrap; align-items: center; gap: 6px; }
body.ldg-skin .ldg-contact__chip {
    padding: 2px 10px;
    border-radius: 999px;
    background: var(--ldg-teal-50);
    border: 1px solid var(--ldg-teal-100);
    color: var(--ldg-tx-900);
    font-size: 12px;
    font-weight: 600;
}
body.ldg-skin .ldg-contact__chip.is-off { background: var(--ldg-bad-bg); border-color: transparent; color: var(--ldg-bad); }
body.ldg-skin .ldg-contact__code { font-family: var(--ldg-mono); font-size: 12px; color: var(--ldg-muted); letter-spacing: .04em; }
body.ldg-skin .ldg-contact__actions { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 8px; }
body.ldg-skin .ldg-contact__actions .tw-dw-btn {
    height: 36px !important;
    min-height: 36px !important;
    padding: 0 14px !important;
    gap: 6px;
    border-radius: var(--ldg-radius) !important;
    font-size: 13px !important;
    font-weight: 600 !important;
}
body.ldg-skin .ldg-contact__actions .ldg-contact__btn {
    background: var(--ldg-surface) !important;
    border: 1px solid var(--ldg-line-2) !important;
    color: var(--ldg-ink-2) !important;
}
body.ldg-skin .ldg-contact__actions .ldg-contact__btn:hover { border-color: var(--ldg-teal-700) !important; background: var(--ldg-teal-50) !important; color: var(--ldg-tx-900) !important; }

body.ldg-skin .ldg-contact__stats {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(160px, 1fr));
    border-bottom: 1px solid var(--ldg-line);
}
body.ldg-skin .ldg-contact__stat {
    display: flex;
    flex-direction: column;
    gap: 4px;
    padding: 14px 22px;
    border-inline-start: 1px solid var(--ldg-line);
}
body.ldg-skin .ldg-contact__stat:first-child { border-inline-start: 0; }
body.ldg-skin .ldg-contact__stat-label {
    font-family: var(--ldg-mono);
    font-size: 10.5px;
    letter-spacing: .1em;
    text-transform: uppercase;
    color: var(--ldg-muted);
}
body.ldg-skin .ldg-contact__stat-value { font-size: 18px; font-weight: 600; color: var(--ldg-ink); font-variant-numeric: tabular-nums; white-space: nowrap; }
body.ldg-skin .ldg-contact__stat.is-good .ldg-contact__stat-value { color: var(--ldg-good); }
body.ldg-skin .ldg-contact__stat.is-due { background: var(--ldg-bad-bg); }
body.ldg-skin .ldg-contact__stat.is-due .ldg-contact__stat-value { color: var(--ldg-bad); }

body.ldg-skin .ldg-contact__fields {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(200px, 1fr));
    gap: 16px 24px;
    margin: 0;
    padding: 18px 22px 20px;
}
body.ldg-skin .ldg-contact__field { min-width: 0; }
body.ldg-skin .ldg-contact__field.is-wide { grid-column: span 2; }
body.ldg-skin .ldg-contact__field dt {
    display: flex;
    align-items: center;
    gap: 6px;
    margin-bottom: 4px;
    font-family: var(--ldg-mono);
    font-size: 10.5px;
    font-weight: 500;
    letter-spacing: .1em;
    text-transform: uppercase;
    color: var(--ldg-muted);
}
body.ldg-skin .ldg-contact__field dt i { color: var(--ldg-tx-700); font-size: 11px; width: 12px; text-align: center; letter-spacing: 0; }
body.ldg-skin .ldg-contact__field dd { margin: 0; font-size: 14px; color: var(--ldg-ink); word-break: break-word; line-height: 1.45; }
@media (max-width: 767px) {
    body.ldg-skin .ldg-contact__head { flex-wrap: wrap; }
    body.ldg-skin .ldg-contact__actions { width: 100%; justify-content: flex-start; }
    body.ldg-skin .ldg-contact__field.is-wide { grid-column: auto; }
    body.ldg-skin .ldg-contact__stat { border-inline-start: 0; border-top: 1px solid var(--ldg-line); }
}
/* tab tables: the moved "Add" leads the toolbar (no lonely wrapped line at the end) */
body.ldg-skin .tab-pane .dataTables_wrapper .ldg-toolbar-add { order: -1; }
body.ldg-skin .tab-pane .dataTables_wrapper > .row:first-child > [class*="col-"]:has(> .dt-buttons) { flex: 0 1 auto; }
body.ldg-skin .ldg-compact .dt-buttons > a,
body.ldg-skin .ldg-compact .dt-buttons > button,
body.ldg-skin .ldg-compact .dt-buttons > .btn-group > .btn { font-size: 0 !important; gap: 0 !important; padding: 0 11px !important; }
body.ldg-skin .ldg-compact .dt-buttons > a i,
body.ldg-skin .ldg-compact .dt-buttons > button i,
body.ldg-skin .ldg-compact .dt-buttons > .btn-group > .btn i { font-size: 13px !important; }
body.ldg-skin .ldg-compact .dt-buttons .caret { margin-inline-start: 4px; }
/* selected rows (DataTables select / row-select): theme tint instead of DataTables blue */
body.ldg-skin table.dataTable tbody tr.selected > td,
body.ldg-skin table.dataTable tbody tr.selected > th,
body.ldg-skin table.dataTable tbody tr:has(> td input.row-select:checked) > td { background: var(--ldg-teal-50) !important; color: var(--ldg-ink) !important; box-shadow: none !important; }
body.ldg-skin .ldg-compact .ldg-cols__btn > span,
body.ldg-skin .ldg-compact .ldg-viewswitch button > span { display: none; }
body.ldg-skin .ldg-compact .ldg-viewswitch button { padding-inline: 10px; }
body.ldg-skin .ldg-compact .dataTables_filter input { width: 200px; }

/* ======================================================================
   File inputs
   ====================================================================== */

/* Drop zone built by theme.js around a plain <input type="file"> */
body.ldg-skin .ldg-file { display: flex; flex-direction: column; gap: 8px; width: 100%; max-width: 560px; }
body.ldg-skin .ldg-file__zone {
    position: relative;
    display: grid;
    grid-template-columns: auto 1fr;
    grid-template-areas: "icon text" "icon hint";
    align-items: center;
    column-gap: 14px;
    row-gap: 2px;
    min-height: 76px;
    padding: 14px 18px;
    background: var(--ldg-field);
    border: 1.5px dashed var(--ldg-line-2);
    border-radius: var(--ldg-radius-lg);
    color: var(--ldg-ink-2);
    transition: background-color .15s, border-color .15s, box-shadow .15s;
}
body.ldg-skin .ldg-file__icon {
    grid-area: icon;
    width: 44px;
    height: 44px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 50%;
    background: var(--ldg-surface);
    border: 1px solid var(--ldg-line);
    color: var(--ldg-tx-800);
}
body.ldg-skin .ldg-file__text { grid-area: text; font-size: 14px; color: var(--ldg-ink-2); }
body.ldg-skin .ldg-file__text strong { color: var(--ldg-tx-800); font-weight: 600; text-decoration: underline; text-underline-offset: 3px; }
body.ldg-skin .ldg-file__hint { grid-area: hint; font-family: var(--ldg-mono); font-size: 11px; letter-spacing: .04em; color: var(--ldg-muted); }
/* the real input covers the zone: native click / keyboard / drop (works the same in Safari and iOS) */
body.ldg-skin .ldg-file__zone > input.ldg-file__input {
    position: absolute !important;
    inset: 0;
    width: 100% !important;
    height: 100% !important;
    margin: 0 !important;
    padding: 0 !important;
    opacity: 0 !important;
    cursor: pointer;
    font-size: 16px; /* iOS: no zoom on focus */
    z-index: 1;
}
body.ldg-skin .ldg-file__zone > input.ldg-file__input::-webkit-file-upload-button { cursor: pointer; }
body.ldg-skin .ldg-file__zone:hover,
body.ldg-skin .ldg-file.is-focus .ldg-file__zone { border-color: var(--ldg-teal-700); background: var(--ldg-teal-50); }
body.ldg-skin .ldg-file.is-focus .ldg-file__zone { box-shadow: 0 0 0 3px var(--ldg-teal-100); }
body.ldg-skin .ldg-file.is-drag .ldg-file__zone { border-style: solid; border-color: var(--ldg-teal-800); background: var(--ldg-teal-50); box-shadow: 0 0 0 4px var(--ldg-teal-100); }
body.ldg-skin .ldg-file.is-drag .ldg-file__icon { background: var(--ldg-teal-800); color: #fff; border-color: var(--ldg-teal-800); }
body.ldg-skin .ldg-file.has-file .ldg-file__zone { border-style: solid; }
body.ldg-skin .ldg-file.is-disabled .ldg-file__zone { opacity: .55; }
body.ldg-skin .ldg-file.is-disabled .ldg-file__zone > input { cursor: not-allowed; }
body.ldg-skin .has-error .ldg-file__zone { border-color: var(--ldg-bad); background: var(--ldg-bad-bg); }

body.ldg-skin .ldg-file__list[hidden] { display: none !important; }
body.ldg-skin .ldg-file__list { list-style: none; margin: 0; padding: 0; border: 1px solid var(--ldg-line); border-radius: var(--ldg-radius); background: var(--ldg-surface); }
body.ldg-skin .ldg-file__item { display: flex; align-items: center; gap: 10px; padding: 8px 12px; border-bottom: 1px solid var(--ldg-line); }
body.ldg-skin .ldg-file__doc { color: var(--ldg-tx-800); display: inline-flex; }
body.ldg-skin .ldg-file__name { flex: 1 1 auto; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: 13.5px; font-weight: 500; color: var(--ldg-ink); }
body.ldg-skin .ldg-file__size { font-family: var(--ldg-mono); font-size: 11.5px; color: var(--ldg-muted); white-space: nowrap; }
body.ldg-skin .ldg-file__actions { display: flex; justify-content: flex-end; padding: 6px 8px; }
body.ldg-skin .ldg-file__remove { padding: 4px 10px; background: none; border: 0; border-radius: var(--ldg-radius); color: var(--ldg-bad); font-size: 12.5px; font-weight: 600; }
body.ldg-skin .ldg-file__remove:hover { background: var(--ldg-bad-bg); }

/* Native file inputs not enhanced (fallback): themed button — standard + WebKit/Safari pseudo-elements */
body.ldg-skin input[type="file"]:not(.ldg-file__input) { font-size: 13px; color: var(--ldg-ink-2); max-width: 100%; }
body.ldg-skin input[type="file"]:not(.ldg-file__input)::file-selector-button {
    margin-inline-end: 10px; padding: 7px 14px; border: 1px solid var(--ldg-line-2); border-radius: var(--ldg-radius);
    background: var(--ldg-surface); color: var(--ldg-tx-900); font: 600 13px var(--ldg-sans); cursor: pointer;
}
body.ldg-skin input[type="file"]:not(.ldg-file__input)::-webkit-file-upload-button {
    margin-inline-end: 10px; padding: 7px 14px; border: 1px solid var(--ldg-line-2); border-radius: var(--ldg-radius);
    background: var(--ldg-surface); color: var(--ldg-tx-900); font: 600 13px var(--ldg-sans); cursor: pointer;
}

/* bootstrap-fileinput plugin (documents, logos, shipping documents …): caption = field, joined buttons */
body.ldg-skin .file-input .input-group { display: flex; width: 100%; }
body.ldg-skin .file-input .file-caption,
body.ldg-skin .file-input .file-caption.form-control {
    flex: 1 1 auto;
    height: 38px;
    display: flex;
    align-items: center;
    background: var(--ldg-field) !important;
    border: 1px solid var(--ldg-line) !important;
    border-radius: var(--ldg-radius) 0 0 var(--ldg-radius) !important;
    color: var(--ldg-ink);
    font-size: 13.5px;
    box-shadow: none !important;
}
body.ldg-skin .file-input .file-caption-name { border: 0 !important; background: transparent !important; box-shadow: none !important; }
body.ldg-skin .file-input .input-group-btn { display: flex; }
body.ldg-skin .file-input .input-group-btn > .btn,
body.ldg-skin .file-input .btn-file {
    height: 38px;
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 0 14px !important;
    border-radius: 0 !important;
    font-size: 13px !important;
    font-weight: 600;
    box-shadow: none !important;
}
body.ldg-skin .file-input .input-group-btn > .btn:last-child { border-radius: 0 var(--ldg-radius) var(--ldg-radius) 0 !important; }
body.ldg-skin .file-input .btn-file,
body.ldg-skin .file-input .btn-primary { background: var(--ldg-teal-800) !important; border-color: var(--ldg-teal-800) !important; color: #fff !important; }
body.ldg-skin .file-input .btn-file:hover { background: var(--ldg-teal-900) !important; }
body.ldg-skin .file-input .fileinput-remove,
body.ldg-skin .file-input .btn-default { background: var(--ldg-surface) !important; border: 1px solid var(--ldg-line-2) !important; color: var(--ldg-bad) !important; }
body.ldg-skin .file-input .file-preview { border: 1px solid var(--ldg-line); border-radius: var(--ldg-radius-lg); padding: 10px; margin-bottom: 8px; background: var(--ldg-surface); }
body.ldg-skin .file-input .file-drop-zone { border: 1.5px dashed var(--ldg-line-2); border-radius: var(--ldg-radius); margin: 0; }
body.ldg-skin .file-input .file-drop-zone.clickable:hover,
body.ldg-skin .file-input .file-highlighted { border-color: var(--ldg-teal-700) !important; background: var(--ldg-teal-50) !important; }
body.ldg-skin .file-input .file-preview-frame { border: 1px solid var(--ldg-line) !important; border-radius: var(--ldg-radius); box-shadow: none !important; }
body.ldg-skin .file-input .file-footer-caption,
body.ldg-skin .file-input .file-size-info { font-size: 11.5px; color: var(--ldg-muted); }
body.ldg-skin .file-input .close.fileinput-remove { color: var(--ldg-muted) !important; border: 0 !important; background: none !important; }
body.ldg-skin .ldg-file, body.ldg-skin .ldg-file * { text-align: start; }
body.ldg-skin .ldg-file__zone { justify-items: start; }
/* page-level pinned bar: never for a last row that also holds form fields */
body.ldg-skin section.content > form > .row:last-of-type:has(button[type="submit"]):has(input:not([type="hidden"]):not([type="submit"]):not([type="button"]), select, textarea) {
    position: static; padding: 0; background: none; border: 0; box-shadow: none; backdrop-filter: none;
}

/* SweetAlert2 · plain message (v1 swal('text')): text is the body, sized like a message, close to the icon */
.ldg-swal .ldg-swal--message .ldg-swal-text { margin-top: 4px !important; font-size: 15px; font-weight: 500; color: var(--ldg-ink); }
.ldg-swal .ldg-swal--message .ldg-swal-icon { margin-bottom: 4px !important; }

/* ======================================================================
   Products (skin_paths: products, products/*, update-product-price, labels/show, variation-templates,
   import-products, import-opening-stock, selling-price-group, units, taxonomies, brands, warranties)
   ====================================================================== */

/* extra toolbar buttons moved in by theme.js (e.g. "Download Excel"): quiet outline, icon + label */
body.ldg-skin .dataTables_wrapper .ldg-toolbar-extra {
    order: -1;
    height: 34px !important;
    min-height: 34px !important;
    padding: 0 12px !important;
    gap: 6px;
    display: inline-flex;
    align-items: center;
    background: var(--ldg-surface) !important;
    border: 1px solid var(--ldg-line-2) !important;
    border-radius: var(--ldg-radius) !important;
    color: var(--ldg-tx-900) !important;
    font-size: 12.5px !important;
    font-weight: 600 !important;
}
body.ldg-skin .dataTables_wrapper .ldg-toolbar-extra svg { width: 16px; height: 16px; }
body.ldg-skin .dataTables_wrapper .ldg-toolbar-extra:hover { border-color: var(--ldg-teal-700) !important; background: var(--ldg-teal-50) !important; }

/* native checkboxes in tables (row select / select all) drawn like the themed iCheck boxes */
body.ldg-skin table input[type="checkbox"]:not(.input-icheck) {
    -webkit-appearance: none;
    appearance: none;
    width: 16px;
    height: 16px;
    margin: 0;
    flex: 0 0 auto;
    vertical-align: middle;
    background: var(--ldg-surface);
    border: 1.5px solid var(--ldg-line-2);
    border-radius: 4px;
    cursor: pointer;
    transition: background-color .12s, border-color .12s;
}
body.ldg-skin table input[type="checkbox"]:not(.input-icheck):hover { border-color: var(--ldg-teal-700); }
body.ldg-skin table input[type="checkbox"]:not(.input-icheck):checked {
    background: var(--ldg-teal-800) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23fff' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12l5 5l10 -10'/%3E%3C/svg%3E") center / 11px 11px no-repeat;
    border-color: var(--ldg-teal-800);
}
body.ldg-skin table input[type="checkbox"]:not(.input-icheck):indeterminate {
    background: var(--ldg-teal-800) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23fff' stroke-width='3' stroke-linecap='round'%3E%3Cpath d='M6 12h12'/%3E%3C/svg%3E") center / 11px 11px no-repeat;
    border-color: var(--ldg-teal-800);
}
body.ldg-skin table input[type="checkbox"]:not(.input-icheck):focus-visible { outline: none; box-shadow: 0 0 0 3px var(--ldg-teal-100); }

/* product list: readable product names, image thumbs */
body.ldg-skin table.dataTable#product_table tbody td:nth-child(4) { min-width: 240px; }
body.ldg-skin table.dataTable#product_table tbody td img,
body.ldg-skin table.dataTable#product_table tbody td .product-thumbnail-small { width: 44px !important; height: 44px !important; object-fit: cover; border-radius: var(--ldg-radius); border: 1px solid var(--ldg-line); }
body.ldg-skin .dataTables_wrapper.ldg-compact .dt-buttons > a.tw-dw-btn,
body.ldg-skin .dataTables_wrapper.ldg-compact .dt-buttons > button.tw-dw-btn,
body.ldg-skin .dataTables_wrapper.ldg-compact .dt-buttons > .btn-group > .tw-dw-btn { font-size: 0 !important; gap: 0 !important; padding: 0 11px !important; }
body.ldg-skin .dataTables_wrapper.ldg-compact .dt-buttons .tw-dw-btn i { font-size: 13px !important; }

/* Save bar with several submit actions (product add / edit: Save & add prices, Save & opening stock, Save & add another, Save) */
body.ldg-skin .ldg-savebar .text-center { display: contents; }
body.ldg-skin .ldg-savebar .btn-group {
    display: flex;
    flex-wrap: wrap;
    justify-content: flex-end;
    align-items: center;
    gap: 8px;
    float: none;
}
body.ldg-skin .ldg-savebar .btn-group > .btn,
body.ldg-skin .ldg-savebar .btn-group > .tw-dw-btn {
    float: none;
    margin: 0 !important;
    border-radius: var(--ldg-radius) !important;
}
body.ldg-skin .ldg-savebar > [class*="col-"] { flex-wrap: wrap; row-gap: 8px; }
body.ldg-skin .ldg-savebar .ldg-savebar__hint { margin-inline-end: auto; white-space: nowrap; }
/* secondary submit actions: outline; the last submit (plain Save) stays the filled primary */
body.ldg-skin .ldg-savebar .btn-group > button[type="submit"]:not(:last-child) {
    background: var(--ldg-surface) !important;
    background-image: none !important;
    border: 1px solid var(--ldg-line-2) !important;
    color: var(--ldg-tx-900) !important;
}
body.ldg-skin .ldg-savebar .btn-group > button[type="submit"]:not(:last-child):hover { border-color: var(--ldg-teal-700) !important; background: var(--ldg-teal-50) !important; }
body.ldg-skin .ldg-savebar .btn-group > button[type="submit"]:last-child { background: var(--ldg-teal-800) !important; border-color: var(--ldg-teal-800) !important; color: #fff !important; min-width: 120px; }
body.ldg-skin .ldg-savebar .btn-group > button[type="submit"][disabled] { opacity: .5; }

/* Green "success" buttons in page content (Download template file, Preview PDF …): theme outline */
body.ldg-skin section.content .tw-dw-btn-success,
body.ldg-skin section.content .btn-success:not(.btn-xs):not(.label),
body.ldg-skin section.content .tw-dw-btn.bg-green {
    background: var(--ldg-surface) !important;
    background-image: none !important;
    border: 1px solid var(--ldg-teal-700) !important;
    color: var(--ldg-tx-900) !important;
    border-radius: var(--ldg-radius) !important;
    box-shadow: none !important;
}
body.ldg-skin section.content .tw-dw-btn-success:hover,
body.ldg-skin section.content .btn-success:not(.btn-xs):not(.label):hover,
body.ldg-skin section.content .tw-dw-btn.bg-green:hover { background: var(--ldg-teal-50) !important; }
/* oversized "lg" action buttons outside the save bar (e.g. Print labels: Preview / Preview PDF) */
body.ldg-skin section.content .tw-dw-btn-lg:not(.ldg-savebar *) { height: 42px !important; min-height: 42px !important; font-size: 14px !important; padding: 0 20px !important; border-radius: var(--ldg-radius) !important; }

/* ---------- Payment modals (add / edit payment, pay contact due): wider, summary as one strip ---------- */
body.ldg-skin .modal-dialog:has(#transaction_payment_add_form),
body.ldg-skin .modal-dialog:has(#transaction_payment_edit_form),
body.ldg-skin .modal-dialog:has(#pay_contact_due_form) {
    width: min(920px, calc(100vw - 32px)) !important;
    max-width: none;
}
/* the three "well" info boxes → one bordered strip with three cells */
body.ldg-skin .modal-dialog:has(#transaction_payment_add_form) .row:has(> .col-md-4 > .well),
body.ldg-skin .modal-dialog:has(#transaction_payment_edit_form) .row:has(> .col-md-4 > .well),
body.ldg-skin .modal-dialog:has(#pay_contact_due_form) .row:has(> .col-md-4 > .well) {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    margin: 0 0 14px;
    border: 1px solid var(--ldg-line);
    border-radius: var(--ldg-radius-lg);
    background: var(--ldg-field);
    overflow: hidden;
}
body.ldg-skin .modal .row:has(> .col-md-4 > .well)::before,
body.ldg-skin .modal .row:has(> .col-md-4 > .well)::after { display: none; }
body.ldg-skin .modal .row:has(> .col-md-4 > .well) > .col-md-4 { float: none; width: auto; padding: 0; border-inline-start: 1px solid var(--ldg-line); }
body.ldg-skin .modal .row:has(> .col-md-4 > .well) > .col-md-4:first-child { border-inline-start: 0; }
body.ldg-skin .modal .row:has(> .col-md-4 > .well) .well {
    margin: 0;
    padding: 12px 16px;
    min-height: 100%;
    background: transparent;
    border: 0;
    border-radius: 0;
    box-shadow: none;
    font-size: 13.5px;
    line-height: 1.6;
}
@media (max-width: 767px) {
    body.ldg-skin .modal .row:has(> .col-md-4 > .well) { grid-template-columns: 1fr; }
    body.ldg-skin .modal .row:has(> .col-md-4 > .well) > .col-md-4 { border-inline-start: 0; border-top: 1px solid var(--ldg-line); }
}
/* in modals, a column holding a drop zone takes the whole row */
body.ldg-skin .modal [class*="col-"]:has(> .form-group .ldg-file),
body.ldg-skin .modal [class*="col-"]:has(> .ldg-file) { width: 100%; float: none; clear: both; }
body.ldg-skin .modal .ldg-file { max-width: none; }

/* drop zone adapts to its width (container query; Safari 16+, older browsers keep the default layout) */
body.ldg-skin .ldg-file { container-type: inline-size; }
@container (max-width: 300px) {
    .ldg-file__zone { grid-template-columns: 1fr; grid-template-areas: "icon" "text" "hint"; justify-items: center !important; text-align: center; row-gap: 6px; }
    .ldg-file__zone * { text-align: center !important; }
}
/* core help line under a drop zone ("Max File size / Allowed File"): quieter, the zone already lists types */
body.ldg-skin .form-group:has(.ldg-file) > .help-block { margin-top: 6px; font-size: 11.5px; color: var(--ldg-muted); }

/* First paint (before theme.js moves them into the table toolbar): gradient "Add / Download" buttons already in
   theme colours, and buttons floated in front of a tab table don't squeeze the table beside them */
body.ldg-skin section.content .tw-dw-btn.tw-bg-gradient-to-r {
    background: var(--ldg-teal-800) !important;
    background-image: none !important;
    border: 0 !important;
    border-radius: var(--ldg-radius) !important;
    color: #fff !important;
}
body.ldg-skin .tab-pane > .tw-dw-btn.pull-right,
body.ldg-skin .tab-pane > a.pull-right.tw-dw-btn { float: none !important; margin: 0 0 12px 8px !important; }

/* Drop zone: image preview of a chosen picture */
body.ldg-skin .ldg-file__thumb { width: 40px; height: 40px; flex: 0 0 auto; object-fit: cover; border-radius: var(--ldg-radius); border: 1px solid var(--ldg-line); background: var(--ldg-field); }

/* ---------- My profile (user/profile) ---------- */
/* core nests .box-header inside .box-header (change password / edit profile): one flat header, title at the start */
body.ldg-skin .box-header > .box-header { padding: 0 !important; margin: 0 !important; border: 0 !important; background: none !important; box-shadow: none !important; min-height: 0; }
body.ldg-skin .box-header:has(> .box-header) { display: flex; align-items: center; justify-content: flex-start; text-align: start; }
body.ldg-skin .box-header > .box-header .box-title { float: none; margin: 0; text-align: start; }
/* two forms one after the other: same gap as between cards */
body.ldg-skin section.content > form + form { display: block; margin-top: 18px; }
/* horizontal forms: label at the start, centred on its field */
body.ldg-skin .form-horizontal .control-label { text-align: start !important; padding-top: 0; display: flex; align-items: center; min-height: 38px; }
/* current profile photo */
body.ldg-skin #edit_user_profile_form img.img-circle { width: 112px; height: 112px; object-fit: cover; border: 3px solid var(--ldg-surface); box-shadow: 0 0 0 1px var(--ldg-line); margin: 4px auto 14px; display: block; }
body.ldg-skin section.content > form > .row:last-of-type:has(button[type="submit"]):has(input:not([type="hidden"]):not([type="submit"]):not([type="button"]), select, textarea) > [class*="col-"] { display: block; padding: 0 15px; text-align: inherit; }

/* ======================================================================
   Arabic / RTL text shaping
   Safari applies letter-spacing to cursive scripts and so breaks Arabic letter joining (Chrome / Firefox skip it).
   The theme's mono labels use letter-spacing → on RTL pages it is switched off everywhere. Arabic text inside
   mono labels uses IBM Plex Sans Arabic (added to --ldg-mono; IBM Plex Mono has no Arabic glyphs).
   ====================================================================== */
[dir="rtl"] body.ldg,
[dir="rtl"] body.ldg *,
[dir="rtl"] body.ldg *::before,
[dir="rtl"] body.ldg *::after,
[dir="rtl"] .swal2-container *,
body.ldg :lang(ar),
body.ldg :lang(ar) * { letter-spacing: normal !important; }
/* uppercase + mono make no sense for Arabic labels: use the Arabic sans at a readable size */
[dir="rtl"] body.ldg { --ldg-mono: "IBM Plex Sans Arabic", "IBM Plex Mono", ui-monospace, monospace; }
[dir="rtl"] body.ldg .ldg-label,
[dir="rtl"] body.ldg-skin label,
[dir="rtl"] body.ldg-skin table.dataTable thead th,
[dir="rtl"] body.ldg-skin .ldg-panel__title,
[dir="rtl"] body.ldg-skin .box-title { text-transform: none !important; font-size: max(12px, 1em); }
[dir="rtl"] body.ldg { font-feature-settings: normal; text-rendering: optimizeLegibility; }

/* Footer line always reads left to right (brand · version · year), also on RTL pages */
.ldg-footer__line { direction: ltr; unicode-bidi: isolate; display: inline-flex; gap: 6px; }

/* RTL: "back" arrows point to the reading start (right); directional chevrons mirrored */
[dir="rtl"] body.ldg .ldg-back svg,
[dir="rtl"] body.ldg .ldg-flip-rtl { transform: scaleX(-1); }
/* RTL: DataTables sort arrows sit on the left edge of the header cell (they overlapped Arabic header text) */
[dir="rtl"] body.ldg-skin table.dataTable thead > tr > th.sorting::before,
[dir="rtl"] body.ldg-skin table.dataTable thead > tr > th.sorting::after,
[dir="rtl"] body.ldg-skin table.dataTable thead > tr > th.sorting_asc::before,
[dir="rtl"] body.ldg-skin table.dataTable thead > tr > th.sorting_asc::after,
[dir="rtl"] body.ldg-skin table.dataTable thead > tr > th.sorting_desc::before,
[dir="rtl"] body.ldg-skin table.dataTable thead > tr > th.sorting_desc::after { right: auto !important; left: 8px !important; }
/* dates / times / codes keep their own left-to-right order on RTL pages */
[dir="rtl"] body.ldg .curr_datetime,
[dir="rtl"] body.ldg .ldg-bar__date,
[dir="rtl"] body.ldg .ldg-contact__code { direction: ltr; unicode-bidi: isolate; }

/* ======================================================================
   Add / edit product (theme/products/form): main column of numbered sections + sticky aside
   ====================================================================== */
body.ldg-skin .ldg-pform-page { padding-top: 6px; }
body.ldg-skin .ldg-pform-head { display: flex; align-items: flex-end; justify-content: space-between; gap: 16px 24px; flex-wrap: wrap; margin-bottom: 18px; }
body.ldg-skin .ldg-pform-head .ldg-h1 { margin: 2px 0 6px; }
body.ldg-skin .ldg-pform-head__meta { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; margin: 0; }
body.ldg-skin .ldg-pform-head__name { font-weight: 600; color: var(--ldg-ink-2); }
body.ldg-skin .ldg-pform-head__chip { padding: 2px 10px; border-radius: 999px; background: var(--ldg-surface); border: 1px solid var(--ldg-line); font-family: var(--ldg-mono); font-size: 11.5px; color: var(--ldg-muted); }
body.ldg-skin .ldg-pform-nav { display: flex; flex-wrap: wrap; gap: 6px; }
body.ldg-skin .ldg-pform-nav a {
    display: inline-flex; align-items: center; gap: 6px; height: 32px; padding: 0 12px;
    background: var(--ldg-surface); border: 1px solid var(--ldg-line); border-radius: 999px;
    color: var(--ldg-ink-2); font-size: 12.5px; font-weight: 600; text-decoration: none;
}
body.ldg-skin .ldg-pform-nav a span { font-family: var(--ldg-mono); font-size: 10.5px; color: var(--ldg-tx-700); }
body.ldg-skin .ldg-pform-nav a:hover { border-color: var(--ldg-teal-700); background: var(--ldg-teal-50); color: var(--ldg-tx-900); }

body.ldg-skin .ldg-pform { display: grid; grid-template-columns: minmax(0, 1fr) 340px; gap: 18px; align-items: start; }
body.ldg-skin .ldg-pform__main, body.ldg-skin .ldg-pform__aside { display: flex; flex-direction: column; gap: 18px; min-width: 0; }
body.ldg-skin .ldg-pform__aside { position: sticky; top: 12px; }

body.ldg-skin .ldg-pform-card { background: var(--ldg-surface); border: 1px solid var(--ldg-line); border-radius: var(--ldg-radius-lg); scroll-margin-top: 14px; }
body.ldg-skin .ldg-pform-card__head { display: flex; align-items: center; gap: 10px; padding: 14px 18px; border-bottom: 1px solid var(--ldg-line); }
body.ldg-skin .ldg-pform-card__head h2 { margin: 0; font-family: var(--ldg-mono); font-size: 11.5px; font-weight: 600; letter-spacing: .1em; text-transform: uppercase; color: var(--ldg-tx-900); }
body.ldg-skin .ldg-pform-card__num {
    display: inline-flex; align-items: center; justify-content: center; width: 26px; height: 26px; border-radius: 50%;
    background: var(--ldg-teal-50); border: 1px solid var(--ldg-teal-100); color: var(--ldg-tx-800);
    font-family: var(--ldg-mono); font-size: 11px; font-weight: 600;
}
body.ldg-skin .ldg-pform-card__body { padding: 16px 18px 6px; }
body.ldg-skin .ldg-pform-card__body > .row { margin-left: -9px; margin-right: -9px; }
body.ldg-skin .ldg-pform-card__body > .row > [class*="col-"] { padding-left: 9px; padding-right: 9px; }
body.ldg-skin .ldg-pform-card:target { box-shadow: 0 0 0 3px var(--ldg-teal-100); border-color: var(--ldg-teal-700); }
body.ldg-skin .ldg-pform-sub { margin: 6px 0 10px; padding-top: 12px; border-top: 1px dashed var(--ldg-line); font-family: var(--ldg-mono); font-size: 11px; letter-spacing: .1em; text-transform: uppercase; color: var(--ldg-muted); }
/* checkbox options as bordered rows */
body.ldg-skin .ldg-pform-toggle { padding: 10px 12px; border: 1px solid var(--ldg-line); border-radius: var(--ldg-radius); background: var(--ldg-field); }
body.ldg-skin .ldg-pform-toggle > label { margin: 0; display: inline-flex !important; align-items: center; gap: 8px; font-family: var(--ldg-sans) !important; font-size: 13.5px !important; letter-spacing: 0 !important; text-transform: none !important; color: var(--ldg-ink) !important; }
body.ldg-skin .ldg-pform-toggle .help-block { margin: 4px 0 0 26px; font-size: 12px; }
/* price editor (single / variable / combo) inside "Pricing & type": full width, scrolls if wide */
body.ldg-skin #product_form_part { overflow-x: auto; }
body.ldg-skin #product_form_part .table { min-width: 640px; }

/* aside: current image, actions */
body.ldg-skin .ldg-pform-current { display: flex; align-items: center; gap: 12px; margin-bottom: 12px; padding: 10px; border: 1px solid var(--ldg-line); border-radius: var(--ldg-radius); }
body.ldg-skin .ldg-pform-current img { width: 64px; height: 64px; object-fit: cover; border-radius: var(--ldg-radius); border: 1px solid var(--ldg-line); }
body.ldg-skin .ldg-pform-current span { font-size: 12px; color: var(--ldg-muted); }
body.ldg-skin .ldg-pform-actions .ldg-pform-card__body { display: flex; flex-direction: column; gap: 8px; padding: 14px; }
body.ldg-skin .ldg-pform-actions .tw-dw-btn {
    width: 100%; height: 40px !important; min-height: 40px !important; justify-content: center;
    background: var(--ldg-surface) !important; border: 1px solid var(--ldg-line-2) !important; border-radius: var(--ldg-radius) !important;
    color: var(--ldg-tx-900) !important; font-size: 13.5px !important; font-weight: 600 !important; box-shadow: none !important;
}
body.ldg-skin .ldg-pform-actions .tw-dw-btn:hover:not([disabled]) { border-color: var(--ldg-teal-700) !important; background: var(--ldg-teal-50) !important; }
body.ldg-skin .ldg-pform-actions .tw-dw-btn.ldg-pform-actions__primary { height: 44px !important; background: var(--ldg-teal-800) !important; border-color: var(--ldg-teal-800) !important; color: #fff !important; font-size: 14.5px !important; }
body.ldg-skin .ldg-pform-actions .tw-dw-btn.ldg-pform-actions__primary:hover { background: var(--ldg-teal-900) !important; }
body.ldg-skin .ldg-pform-actions .tw-dw-btn[disabled] { opacity: .45; cursor: not-allowed; }
body.ldg-skin .ldg-pform-actions__cancel { text-align: center; padding: 6px; font-size: 13px; font-weight: 600; color: var(--ldg-muted); }
body.ldg-skin .ldg-pform-actions__cancel:hover { color: var(--ldg-bad); }

@media (max-width: 1100px) {
    body.ldg-skin .ldg-pform { grid-template-columns: minmax(0, 1fr); }
    body.ldg-skin .ldg-pform__aside { position: static; }
    /* actions stay reachable: pinned bar at the bottom of the screen */
    body.ldg-skin .ldg-pform-actions { position: sticky; bottom: 0; z-index: 20; box-shadow: 0 -8px 24px rgba(7, 47, 44, .08); }
    body.ldg-skin .ldg-pform-actions .ldg-pform-card__body { flex-direction: row; flex-wrap: wrap; }
    body.ldg-skin .ldg-pform-actions .tw-dw-btn { width: auto; flex: 1 1 180px; }
}

/* ======================================================================
   bootstrap-fileinput (product image, documents, logos): same look in every browser
   ====================================================================== */
/* no file chosen yet → no Remove button (the plugin marks that state with .file-input-new) */
body.ldg-skin .file-input.file-input-new .fileinput-remove,
body.ldg-skin .file-input.file-input-new .fileinput-remove-button,
body.ldg-skin .file-input.file-input-new .fileinput-cancel { display: none !important; }
body.ldg-skin .file-input.file-input-new .file-preview { display: none !important; }
/* caption row: one bordered control of fixed height, no native widgets (Firefox / Safari / Chrome identical) */
body.ldg-skin .file-input .input-group.file-caption-main { display: flex; align-items: stretch; width: 100%; height: 40px; border: 1px solid var(--ldg-line-2); border-radius: var(--ldg-radius); overflow: hidden; background: var(--ldg-field); }
body.ldg-skin .file-input .file-caption-main > .file-caption,
body.ldg-skin .file-input .file-caption-main > .form-control { flex: 1 1 auto; min-width: 0; height: 100% !important; border: 0 !important; border-radius: 0 !important; background: transparent !important; }
body.ldg-skin .file-input .file-caption-name,
body.ldg-skin .file-input input.file-caption-name {
    -webkit-appearance: none; appearance: none;
    height: 100% !important; width: 100%; padding: 0 12px !important; margin: 0;
    border: 0 !important; background: transparent !important; box-shadow: none !important; outline: none;
    font: 500 13px var(--ldg-sans); color: var(--ldg-ink); line-height: 38px;
    overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
}
body.ldg-skin .file-input .file-caption-name::placeholder { color: var(--ldg-muted); opacity: 1; }
body.ldg-skin .file-input .file-caption .file-caption-icon,
body.ldg-skin .file-input .file-caption-main .kv-caption-icon { display: none; }
body.ldg-skin .file-input .file-caption-main > .input-group-btn,
body.ldg-skin .file-input .file-caption-main > .input-group-append { display: flex; width: auto; height: 100%; }
body.ldg-skin .file-input .file-caption-main .btn { height: 100% !important; margin: 0 !important; border: 0 !important; border-inline-start: 1px solid var(--ldg-line) !important; border-radius: 0 !important; padding: 0 14px !important; }
body.ldg-skin .file-input .file-caption-main .btn-file { background: var(--ldg-teal-800) !important; color: #fff !important; }
body.ldg-skin .file-input .file-caption-main .btn-file input[type="file"] { cursor: pointer; }
/* chosen file preview: one compact card */
body.ldg-skin .file-input .file-preview { margin: 0 0 8px; padding: 8px; border: 1px solid var(--ldg-line); border-radius: var(--ldg-radius-lg); }
body.ldg-skin .file-input .file-preview .fileinput-remove { top: 6px; right: 8px; }
body.ldg-skin .file-input .file-preview-thumbnails { display: flex; flex-wrap: wrap; gap: 8px; }
body.ldg-skin .file-input .file-preview-frame { margin: 0 !important; padding: 6px !important; width: auto; max-width: 100%; float: none; }
body.ldg-skin .file-input .kv-file-content { max-height: 160px; overflow: hidden; display: flex; align-items: center; justify-content: center; }
body.ldg-skin .file-input .kv-file-content img { max-height: 150px; width: auto !important; border-radius: var(--ldg-radius); }
body.ldg-skin .file-input .file-drop-zone-title { padding: 18px 10px; font-size: 13px; color: var(--ldg-muted); }
/* drop zone in narrow places (price table cells, side columns): stacked, then icon + "Choose" only */
@container (max-width: 300px) {
    body.ldg-skin .ldg-file__zone { grid-template-columns: 1fr !important; grid-template-areas: "icon" "text" "hint" !important; justify-items: center !important; text-align: center; row-gap: 6px; padding: 12px 10px; min-height: 0; }
    body.ldg-skin .ldg-file__zone * { text-align: center !important; }
}
@container (max-width: 200px) {
    body.ldg-skin .ldg-file__text > span,
    body.ldg-skin .ldg-file__hint { display: none !important; }
    body.ldg-skin .ldg-file__icon { width: 36px; height: 36px; }
    body.ldg-skin .ldg-file__item { flex-wrap: wrap; gap: 6px; }
}

/* ---------- Product list: location chips, bulk actions bar ---------- */
body.ldg-skin .ldg-locs { display: inline-flex; flex-wrap: nowrap; gap: 4px; white-space: nowrap; max-width: 260px; overflow: hidden; }
body.ldg-skin .ldg-loc { padding: 2px 8px; border-radius: 999px; background: var(--ldg-field); border: 1px solid var(--ldg-line); font-size: 12px; color: var(--ldg-ink-2); overflow: hidden; text-overflow: ellipsis; max-width: 130px; }
body.ldg-skin .ldg-loc--all { background: var(--ldg-teal-50); border-color: var(--ldg-teal-100); color: var(--ldg-tx-900); font-weight: 600; }
body.ldg-skin .ldg-loc--more { font-family: var(--ldg-mono); font-size: 11px; color: var(--ldg-muted); }

body.ldg-skin td.ldg-bulk { padding: 10px 12px !important; background: var(--ldg-field) !important; border-top: 1px solid var(--ldg-line-2) !important; }
body.ldg-skin .ldg-bulk__bar { display: flex !important; flex-wrap: wrap; align-items: center; gap: 8px !important; }
body.ldg-skin .ldg-bulk__bar form { display: inline-flex; margin: 0; }
body.ldg-skin .ldg-bulk__count {
    margin-inline-end: 6px; padding: 3px 10px; border-radius: 999px; background: var(--ldg-surface); border: 1px solid var(--ldg-line);
    font-family: var(--ldg-mono); font-size: 11.5px; color: var(--ldg-muted); white-space: nowrap;
}
body.ldg-skin .ldg-bulk__count.is-on { background: var(--ldg-teal-800); border-color: var(--ldg-teal-800); color: #fff; }
body.ldg-skin .ldg-bulk__bar .tw-dw-btn,
body.ldg-skin .ldg-bulk__bar input.tw-dw-btn {
    height: 32px !important; min-height: 32px !important; padding: 0 12px !important; gap: 6px;
    background: var(--ldg-surface) !important; border: 1px solid var(--ldg-line-2) !important; border-radius: var(--ldg-radius) !important;
    color: var(--ldg-ink-2) !important; font-size: 12.5px !important; font-weight: 600 !important; box-shadow: none !important;
}
body.ldg-skin .ldg-bulk__bar .tw-dw-btn:hover:not(:disabled) { border-color: var(--ldg-teal-700) !important; background: var(--ldg-teal-50) !important; color: var(--ldg-tx-900) !important; }
body.ldg-skin .ldg-bulk__bar #delete-selected:not(:disabled) { color: var(--ldg-bad) !important; }
body.ldg-skin .ldg-bulk__bar #delete-selected:hover:not(:disabled) { background: var(--ldg-bad-bg) !important; border-color: var(--ldg-bad) !important; }
body.ldg-skin .ldg-bulk__bar .tw-dw-btn:disabled,
body.ldg-skin .ldg-bulk__bar input.tw-dw-btn:disabled { opacity: .45; cursor: not-allowed; }
/* "&nbsp;" spacers between the core buttons */
body.ldg-skin .ldg-bulk__bar { font-size: 0; }
body.ldg-skin .ldg-bulk__bar > * { font-size: 13px; }

/* ---------- Product details: label / value grid (quick view + full page) ---------- */
body.ldg-skin .ldg-pkv { display: grid; grid-template-columns: 1fr; gap: 10px; margin: 0 0 12px; }
body.ldg-skin .ldg-pkv__item { min-width: 0; }
body.ldg-skin .ldg-pkv dt { margin-bottom: 2px; font-family: var(--ldg-mono); font-size: 10.5px; font-weight: 500; letter-spacing: .1em; text-transform: uppercase; color: var(--ldg-muted); }
body.ldg-skin .ldg-pkv dd { margin: 0; font-size: 13.5px; color: var(--ldg-ink); word-break: break-word; }
body.ldg-skin .ldg-pkv dd .label { display: inline-flex; align-items: center; gap: 6px; padding: 3px 8px; border-radius: 999px; background: var(--ldg-teal-50) !important; color: var(--ldg-tx-900) !important; font-size: 12px; font-weight: 600; }

/* quick view modal */
body.ldg-skin #view_product_modal .modal-dialog { width: min(1100px, calc(100vw - 32px)) !important; }
body.ldg-skin #view_product_modal .modal-body,
body.ldg-skin #view_product_page .modal-body { padding: 18px 20px; }
body.ldg-skin #view_product_modal .modal-body > .row:first-child,
body.ldg-skin #view_product_page .modal-body > .row:first-child { display: flex; flex-wrap: wrap; align-items: flex-start; }
body.ldg-skin #view_product_modal .invoice-col,
body.ldg-skin #view_product_page .invoice-col { padding-top: 4px; }
body.ldg-skin #view_product_modal .col-sm-3 .thumbnail,
body.ldg-skin #view_product_page .col-sm-3 .thumbnail,
body.ldg-skin #view_product_modal .invoice-col img,
body.ldg-skin #view_product_page .invoice-col img { width: 100%; max-width: 220px; aspect-ratio: 1 / 1; object-fit: cover; border-radius: var(--ldg-radius-lg); border: 1px solid var(--ldg-line); background: var(--ldg-field); padding: 0; }
body.ldg-skin #view_product_modal .modal-body h4,
body.ldg-skin #view_product_page .modal-body h4,
body.ldg-skin #view_product_modal .modal-body strong:only-child,
body.ldg-skin #view_product_page .modal-body > .row > .col-md-12 > strong { display: block; margin: 16px 0 8px; font-family: var(--ldg-mono); font-size: 11px; letter-spacing: .1em; text-transform: uppercase; color: var(--ldg-tx-900); }
body.ldg-skin #view_product_modal .table,
body.ldg-skin #view_product_page .table { background: var(--ldg-surface); border: 1px solid var(--ldg-line); border-radius: var(--ldg-radius); }
body.ldg-skin #view_product_modal .table > thead > tr > th,
body.ldg-skin #view_product_page .table > thead > tr > th,
body.ldg-skin #view_product_modal .table tr.bg-green > th,
body.ldg-skin #view_product_page .table tr.bg-green > th { background: var(--ldg-field) !important; color: var(--ldg-muted) !important; font-family: var(--ldg-mono); font-size: 10.5px; letter-spacing: .08em; text-transform: uppercase; border-bottom: 1px solid var(--ldg-line-2) !important; }
body.ldg-skin #view_product_modal .table.bg-gray,
body.ldg-skin #view_product_page .table.bg-gray { background: var(--ldg-surface) !important; }

/* full product page: core modal markup shown as a page */
body.ldg-skin .ldg-product-page .ldg-eyebrow a { color: inherit; }
body.ldg-skin .ldg-product-page__actions { display: flex; gap: 8px; }
body.ldg-skin .ldg-product-page__actions .tw-dw-btn { height: 38px; min-height: 38px; padding: 0 14px; border-radius: var(--ldg-radius); font-weight: 600; gap: 6px; }
body.ldg-skin .ldg-btn-primary { background: var(--ldg-teal-800) !important; border: 1px solid var(--ldg-teal-800) !important; color: #fff !important; }
body.ldg-skin .ldg-btn-ghost { background: var(--ldg-surface) !important; border: 1px solid var(--ldg-line-2) !important; color: var(--ldg-tx-900) !important; }
body.ldg-skin .ldg-pform-head__chip.is-off { background: var(--ldg-bad-bg); color: var(--ldg-bad); border-color: transparent; }
body.ldg-skin .ldg-static-modal { position: static !important; display: block !important; overflow: visible !important; z-index: auto !important; background: none !important; }
body.ldg-skin .ldg-static-modal .modal-dialog { width: auto !important; max-width: none; margin: 0 !important; transform: none !important; }
body.ldg-skin .ldg-static-modal .modal-content { box-shadow: none !important; border: 1px solid var(--ldg-line); border-radius: var(--ldg-radius-lg); }
body.ldg-skin .ldg-static-modal .modal-header,
body.ldg-skin .ldg-static-modal .modal-footer { display: none; }
@media print { body.ldg-skin .ldg-static-modal .modal-header { display: block; } }
body.ldg-skin .ldg-bulk__bar .tw-dw-btn, body.ldg-skin .ldg-bulk__bar input.tw-dw-btn { font-family: var(--ldg-sans) !important; letter-spacing: 0 !important; text-transform: none !important; }
body.ldg-skin button.ldg-loc--more { cursor: pointer; line-height: inherit; }
body.ldg-skin button.ldg-loc--more:hover, body.ldg-skin button.ldg-loc--more[aria-expanded="true"] { border-color: var(--ldg-teal-700); background: var(--ldg-teal-50); color: var(--ldg-tx-900); }
body.ldg-skin .ldg-locs__pop {
    position: absolute; z-index: 1060; min-width: 180px; max-width: 280px; max-height: 260px; overflow-y: auto; padding: 6px;
    background: var(--ldg-surface); border: 1px solid var(--ldg-line); border-radius: var(--ldg-radius-lg); box-shadow: 0 14px 34px rgba(7, 47, 44, .14);
}
body.ldg-skin .ldg-locs__item { padding: 6px 10px; border-radius: var(--ldg-radius); font-size: 13px; color: var(--ldg-ink); }
body.ldg-skin .ldg-locs__item:hover { background: var(--ldg-field); }

/* ---------- Product page ---------- */
body.ldg-skin .ldg-ppage .ldg-eyebrow a { color: inherit; }
body.ldg-skin .ldg-pform-head__chip.is-warn { background: var(--ldg-warn-bg); color: var(--ldg-warn); border-color: transparent; }
body.ldg-skin .ldg-ppage__hero { display: grid; grid-template-columns: 300px minmax(0, 1fr); gap: 18px; margin-bottom: 18px; }
body.ldg-skin .ldg-ppage__media { display: flex; flex-direction: column; gap: 10px; }
body.ldg-skin .ldg-ppage__img { aspect-ratio: 1 / 1; background: var(--ldg-surface); border: 1px solid var(--ldg-line); border-radius: var(--ldg-radius-lg); overflow: hidden; display: flex; align-items: center; justify-content: center; }
body.ldg-skin .ldg-ppage__img img { width: 100%; height: 100%; object-fit: contain; }
body.ldg-skin .ldg-ppage__file { display: flex; align-items: center; gap: 10px; padding: 10px 12px; background: var(--ldg-surface); border: 1px solid var(--ldg-line); border-radius: var(--ldg-radius); color: var(--ldg-ink); text-decoration: none; }
body.ldg-skin .ldg-ppage__file i { font-size: 18px; color: var(--ldg-tx-800); }
body.ldg-skin .ldg-ppage__file small { display: block; font-family: var(--ldg-mono); font-size: 10px; letter-spacing: .1em; text-transform: uppercase; color: var(--ldg-muted); }
body.ldg-skin .ldg-ppage__file:hover { border-color: var(--ldg-teal-700); background: var(--ldg-teal-50); }
body.ldg-skin .ldg-ppage__stats { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); grid-auto-rows: min-content; gap: 12px; align-content: start; }
body.ldg-skin .ldg-ppage__stat { display: flex; flex-direction: column; gap: 4px; padding: 16px 18px; background: var(--ldg-surface); border: 1px solid var(--ldg-line); border-radius: var(--ldg-radius-lg); min-width: 0; }
body.ldg-skin .ldg-ppage__stat-label { font-family: var(--ldg-mono); font-size: 10.5px; letter-spacing: .1em; text-transform: uppercase; color: var(--ldg-muted); }
body.ldg-skin .ldg-ppage__stat-value { font-size: 26px; font-weight: 600; color: var(--ldg-ink); font-variant-numeric: tabular-nums; line-height: 1.2; }
body.ldg-skin .ldg-ppage__stat-value small { font-size: 13px; font-weight: 500; color: var(--ldg-muted); }
body.ldg-skin .ldg-ppage__stat-sub { font-size: 12.5px; color: var(--ldg-muted); }
body.ldg-skin .ldg-ppage__stat.is-low { background: var(--ldg-bad-bg); border-color: transparent; }
body.ldg-skin .ldg-ppage__stat.is-low .ldg-ppage__stat-value { color: var(--ldg-bad); }
body.ldg-skin .ldg-ppage__locs { grid-column: 1 / -1; display: flex; flex-wrap: wrap; gap: 8px; }
body.ldg-skin .ldg-ppage__loc { padding: 6px 12px; border-radius: 999px; background: var(--ldg-surface); border: 1px solid var(--ldg-line); font-size: 12.5px; color: var(--ldg-muted); font-variant-numeric: tabular-nums; }
body.ldg-skin .ldg-ppage__loc b { color: var(--ldg-ink); font-weight: 600; margin-inline-end: 4px; }
body.ldg-skin .ldg-ppage__grid { display: grid; grid-template-columns: minmax(0, 1fr); gap: 18px; margin-bottom: 18px; }
body.ldg-skin .ldg-ppage__grid:has(> .ldg-pform-card + .ldg-pform-card) { grid-template-columns: minmax(0, 3fr) minmax(0, 2fr); align-items: start; }
body.ldg-skin .ldg-ppage__kv { display: grid; grid-template-columns: repeat(auto-fill, minmax(180px, 1fr)); gap: 14px 22px; margin: 0 0 12px; }
body.ldg-skin .ldg-ppage__kv dt { margin-bottom: 3px; font-family: var(--ldg-mono); font-size: 10.5px; font-weight: 500; letter-spacing: .1em; text-transform: uppercase; color: var(--ldg-muted); }
body.ldg-skin .ldg-ppage__kv dd { margin: 0; font-size: 14px; color: var(--ldg-ink); word-break: break-word; }
body.ldg-skin .ldg-ppage__kv dd small { color: var(--ldg-muted); }
body.ldg-skin .ldg-ppage__kv .is-wide { grid-column: 1 / -1; }
/* long custom field values (lists of models / part numbers): two lines across the whole width, click for the rest */
body.ldg-skin .ldg-ppage__kv dd.ldg-ppage__long {
    display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 2; line-clamp: 2; overflow: hidden;
    overflow-wrap: anywhere; cursor: pointer; border-radius: 4px;
}
body.ldg-skin .ldg-ppage__kv dd.ldg-ppage__long:hover { text-decoration: underline dotted var(--ldg-line-2); }
body.ldg-skin .ldg-ppage__kv dd.ldg-ppage__long.is-open { display: block; -webkit-line-clamp: unset; max-height: 18em; overflow-y: auto; text-decoration: none; cursor: auto; }
body.ldg-skin .ldg-ppage__chips { display: flex; flex-wrap: wrap; gap: 6px; }
body.ldg-skin .ldg-ppage__chips span { padding: 3px 10px; border-radius: 999px; background: var(--ldg-teal-50); border: 1px solid var(--ldg-teal-100); color: var(--ldg-tx-900); font-size: 12.5px; font-weight: 600; }
body.ldg-skin .ldg-ppage__desc { font-size: 14px; line-height: 1.65; color: var(--ldg-ink-2); padding-bottom: 16px; }
body.ldg-skin .ldg-ppage__section { margin-bottom: 18px; }
body.ldg-skin .ldg-ppage__table { overflow-x: auto; padding-bottom: 16px; }
body.ldg-skin .ldg-ppage__table .table { margin: 0; background: var(--ldg-surface) !important; }
body.ldg-skin .ldg-ppage__table .table > thead > tr > th,
body.ldg-skin .ldg-ppage__table .table tr.bg-green > th,
body.ldg-skin .ldg-ppage__table .table > tbody > tr:first-child > th {
    background: var(--ldg-field) !important; color: var(--ldg-muted) !important; font-family: var(--ldg-mono); font-size: 10.5px; font-weight: 500;
    letter-spacing: .08em; text-transform: uppercase; border-bottom: 1px solid var(--ldg-line-2) !important; white-space: nowrap;
}
body.ldg-skin .ldg-ppage__table .table td { font-size: 13.5px; vertical-align: middle; border-top: 1px solid var(--ldg-line) !important; }
body.ldg-skin .ldg-ppage__table .table.bg-gray { background: var(--ldg-surface) !important; }
body.ldg-skin .ldg-ppage__table img { width: 44px; height: 44px; object-fit: cover; border-radius: var(--ldg-radius); border: 1px solid var(--ldg-line); }
@media (max-width: 991px) {
    body.ldg-skin .ldg-ppage__hero, body.ldg-skin .ldg-ppage__grid:has(> .ldg-pform-card + .ldg-pform-card) { grid-template-columns: minmax(0, 1fr); }
    body.ldg-skin .ldg-ppage__img { max-width: 320px; }
}
@media print {
    body.ldg-skin .ldg-ppage__hero { grid-template-columns: 180px 1fr; }
    body.ldg-skin .ldg-pform-card { break-inside: avoid; }
}
body.ldg-skin .ldg-locs__pop { position: fixed !important; }

/* ---------- Print labels ---------- */
body.ldg-skin .ldg-labels .col-sm-offset-2 { margin-left: 0; }
body.ldg-skin .ldg-labels .col-sm-8.col-sm-offset-2,
body.ldg-skin .ldg-labels .col-sm-10.col-sm-offset-2 { width: 100%; }
body.ldg-skin .ldg-labels #search_product_for_label { height: 46px; font-size: 15px; }
body.ldg-skin .ldg-labels .input-group:has(#search_product_for_label) .input-group-addon { width: 46px; font-size: 15px; }
body.ldg-skin .ldg-labels table#product_table { margin-bottom: 0; }
body.ldg-skin .ldg-labels table#product_table.is-empty > tbody { display: none; }
body.ldg-skin .ldg-lbl-empty { margin: 0 0 6px; padding: 26px 16px; border: 1px dashed var(--ldg-line-2); border-top: 0; border-radius: 0 0 var(--ldg-radius-lg) var(--ldg-radius-lg); text-align: center; color: var(--ldg-muted); font-size: 13.5px; }
body.ldg-skin .ldg-lbl-empty[hidden] { display: none; }

body.ldg-skin .ldg-lbl-opts { display: grid; grid-template-columns: repeat(auto-fill, minmax(230px, 1fr)); gap: 12px; margin: 4px 0 6px; }
body.ldg-skin .ldg-lbl-opt { display: flex; flex-direction: column; gap: 10px; padding: 14px; background: var(--ldg-surface); border: 1px solid var(--ldg-line); border-radius: var(--ldg-radius-lg); transition: opacity .15s, border-color .15s, background-color .15s; }
body.ldg-skin .ldg-lbl-opt:not(.is-off) { border-color: var(--ldg-teal-100); background: linear-gradient(var(--ldg-teal-50), var(--ldg-surface) 46px); }
body.ldg-skin .ldg-lbl-opt.is-off { background: var(--ldg-field); }
body.ldg-skin .ldg-lbl-opt.is-off > :not(.checkbox) { opacity: .45; pointer-events: none; }
body.ldg-skin .ldg-lbl-opt .checkbox { margin: 0; }
body.ldg-skin .ldg-lbl-opt .checkbox label { display: flex !important; align-items: center; gap: 10px; padding: 0 !important; font-family: var(--ldg-sans) !important; font-size: 13.5px !important; letter-spacing: 0 !important; text-transform: none !important; color: var(--ldg-ink) !important; cursor: pointer; }
body.ldg-skin .ldg-lbl-opt .checkbox label b { font-weight: 600; }
body.ldg-skin .ldg-lbl-opt input[type="checkbox"] {
    -webkit-appearance: none; appearance: none; position: static !important; margin: 0 !important; flex: 0 0 auto;
    width: 34px; height: 20px; border-radius: 999px; background: var(--ldg-line-2); cursor: pointer; transition: background-color .15s;
    background-image: radial-gradient(circle at 10px 50%, #fff 7px, transparent 7.5px);
}
body.ldg-skin .ldg-lbl-opt input[type="checkbox"]:checked { background-color: var(--ldg-teal-800); background-image: radial-gradient(circle at 24px 50%, #fff 7px, transparent 7.5px); }
body.ldg-skin .ldg-lbl-opt input[type="checkbox"]:focus-visible { outline: none; box-shadow: 0 0 0 3px var(--ldg-teal-100); }
[dir="rtl"] body.ldg-skin .ldg-lbl-opt input[type="checkbox"] { transform: scaleX(-1); }
body.ldg-skin .ldg-lbl-opt .input-group { width: 100%; }
body.ldg-skin .ldg-lbl-opt .input-group-addon { min-width: 64px; font-family: var(--ldg-mono); font-size: 11px; letter-spacing: .08em; text-transform: uppercase; }
body.ldg-skin .ldg-lbl-opt #price_type_div .form-group { margin: 0; }
body.ldg-skin .ldg-lbl-opt #price_type_div label { font-size: 10.5px !important; }

body.ldg-skin .ldg-lbl-bar { clear: both; display: flex; flex-wrap: wrap; align-items: flex-end; justify-content: space-between; gap: 12px 18px; margin: 14px 15px 4px; padding: 14px 16px; background: var(--ldg-field); border: 1px solid var(--ldg-line); border-radius: var(--ldg-radius-lg); }
body.ldg-skin .ldg-lbl-bar__setting { flex: 1 1 320px; max-width: 520px; }
body.ldg-skin .ldg-lbl-bar__setting .form-group { margin: 0; }
body.ldg-skin .ldg-lbl-bar__actions { display: flex; gap: 8px; }
body.ldg-skin .ldg-lbl-bar__actions .tw-dw-btn { height: 40px !important; min-height: 40px !important; padding: 0 18px !important; border-radius: var(--ldg-radius) !important; font-size: 14px !important; }
body.ldg-skin .ldg-lbl-bar__actions #labels_preview { background: var(--ldg-teal-800) !important; border: 1px solid var(--ldg-teal-800) !important; color: #fff !important; }

/* preview area (labels.js fills #preview_box / .display_label_div) */
body.ldg-skin .display_label_div:not(.hide) { display: flex; align-items: center; justify-content: space-between; gap: 12px; width: 100%; margin: 18px 0 10px; padding: 0; }
body.ldg-skin .display_label_div .box-title { margin: 0; font-family: var(--ldg-mono); font-size: 12px; letter-spacing: .1em; text-transform: uppercase; color: var(--ldg-tx-900); }
body.ldg-skin .display_label_div #print_label { width: auto; margin: 0; padding: 0 18px; height: 38px; background: var(--ldg-teal-800) !important; border: 0; border-radius: var(--ldg-radius); font-weight: 600; }
body.ldg-skin #preview_box:not(:empty) { margin: 0 24px 24px; padding: 18px; background: var(--ldg-surface); border: 1px solid var(--ldg-line); border-radius: var(--ldg-radius-lg); overflow: auto; }
/* labels: preview container holds whitespace only → hide unless it has elements */
body.ldg-skin #preview_box:not(:has(*)) { display: none; }

/* product quick view (themed modal, same body as the product page) */
body.ldg-skin .modal-dialog.ldg-pquick { width: min(1180px, calc(100vw - 32px)) !important; }
body.ldg-skin .ldg-pquick .modal-body { padding: 16px 20px 6px; background: var(--ldg-bg); }
body.ldg-skin .ldg-pquick__meta { margin: -4px 0 14px; }
body.ldg-skin .ldg-pquick .ldg-ppage__hero { grid-template-columns: 240px minmax(0, 1fr); }
body.ldg-skin .ldg-pquick .ldg-ppage__stat-value { font-size: 22px; }
body.ldg-skin .ldg-pquick .modal-footer { display: flex; justify-content: flex-end; gap: 8px; }
body.ldg-skin .ldg-pquick .modal-footer .tw-dw-btn { height: 38px; min-height: 38px; padding: 0 14px; border-radius: var(--ldg-radius); font-weight: 600; gap: 6px; }
@media (max-width: 767px) { body.ldg-skin .ldg-pquick .ldg-ppage__hero { grid-template-columns: 1fr; } }

/* more status label colours (AdminLTE bg-* used by purchase / sell / payment statuses) → theme tints */
body.ldg-skin .label.bg-light-green, body.ldg-skin .label.bg-olive { background: var(--ldg-good-bg) !important; color: var(--ldg-good) !important; }
body.ldg-skin .label.bg-orange { background: var(--ldg-warn-bg) !important; color: var(--ldg-warn) !important; }
body.ldg-skin .label.bg-maroon { background: var(--ldg-bad-bg) !important; color: var(--ldg-bad) !important; }
body.ldg-skin .label.bg-purple, body.ldg-skin .label.bg-navy, body.ldg-skin .label.bg-blue, body.ldg-skin .label.bg-teal { background: var(--ldg-teal-50) !important; color: var(--ldg-tx-900) !important; }
body.ldg-skin .label.bg-gray, body.ldg-skin .label.label-default { background: var(--ldg-field) !important; color: var(--ldg-ink-2) !important; }
/* totals row: multi-line summary cells (e.g. "Purchase due / Purchase return due") must wrap */
body.ldg-skin .dataTables_scrollFoot tfoot td,
body.ldg-skin table.dataTable tfoot tr.footer-total td { white-space: normal; }
body.ldg-skin table.dataTable tfoot td small, body.ldg-skin .dataTables_scrollFoot tfoot td small { display: block; font-size: 11.5px; line-height: 1.5; }
/* table view: totals read like the column under them (start-aligned, wrap inside the column width) */
body.ldg-skin .dataTables_scrollFoot tfoot tr.footer-total td:not([colspan]),
body.ldg-skin table.dataTable tfoot tr.footer-total td:not([colspan]) { text-align: start !important; overflow-wrap: anywhere; }
/* page-level save bar set by theme.js (e.g. purchase order: button#submit_purchase_form) */
body.ldg-skin section.content > form > .row.ldg-savebar {
    position: sticky; bottom: 0; z-index: 20; margin: 18px 0 0 !important; padding: 12px 16px;
    background: color-mix(in srgb, var(--ldg-surface) 92%, transparent); backdrop-filter: blur(6px);
    border: 1px solid var(--ldg-line); border-radius: var(--ldg-radius-lg); box-shadow: 0 -8px 24px rgba(7, 47, 44, .06);
}
body.ldg-skin section.content > form > .row.ldg-savebar > [class*="col-"] { display: flex; justify-content: flex-end; align-items: center; gap: 8px; float: none; width: 100%; padding: 0; }
body.ldg-skin section.content > form > .row.ldg-savebar .tw-dw-btn { height: 40px; min-height: 40px; padding: 0 22px !important; border-radius: var(--ldg-radius) !important; font-size: 14px !important; }
/* item entry tables: empty state */
body.ldg-skin .ldg-entry-empty { margin: -1px 0 10px; padding: 22px 16px; border: 1px dashed var(--ldg-line-2); border-radius: 0 0 var(--ldg-radius-lg) var(--ldg-radius-lg); text-align: center; color: var(--ldg-muted); font-size: 13.5px; }
body.ldg-skin .ldg-entry-empty[hidden] { display: none; }

/* ---------- Table minimum height (list tables): empty / loading / 1–2 rows keep their size and
   row "Actions" dropdowns open inside the table instead of being clipped ---------- */
body.ldg-skin .dataTables_wrapper .dataTables_scrollBody,
body.ldg-skin .dataTables_wrapper:not(:has(.dataTables_scrollBody)) > .table-responsive,
body.ldg-skin .table-responsive:has(> .dataTables_wrapper):not(:has(.dataTables_scrollBody)) { min-height: 280px; }
body.ldg-skin .tab-pane .dataTables_wrapper .dataTables_scrollBody,
body.ldg-skin .tab-pane .table-responsive:has(> .dataTables_wrapper):not(:has(.dataTables_scrollBody)) { min-height: 220px; }
/* not for tables inside modals, the POS, dashboard panels, activity and ledger */
body.ldg-skin .modal .dataTables_scrollBody,
body.ldg-skin .modal .table-responsive,
body.ldg-skin .ldg-page .dataTables_scrollBody,
body.ldg-skin .ldg-page .table-responsive,
body.ldg-skin .ldg-activity .table-responsive,
body.ldg-skin #ledger_tab .table-responsive { min-height: 0 !important; }
/* the empty-table message sits in the middle of that space */
body.ldg-skin table.dataTable tbody td.dataTables_empty { height: 200px; vertical-align: middle; color: var(--ldg-muted); }
body.ldg-skin .tab-pane table.dataTable tbody td.dataTables_empty { height: 140px; }

/* detail modals (purchase / sell / transfer …): item tables on white rows, product names readable */
body.ldg-skin .modal .table.bg-gray,
body.ldg-skin .modal .table.bg-gray > tbody > tr,
body.ldg-skin .modal .table tr.bg-gray:not(.footer-total) { background: var(--ldg-surface) !important; }
body.ldg-skin .modal .table > tbody > tr > td { border-top: 1px solid var(--ldg-line) !important; }
body.ldg-skin .modal .table-responsive table th:nth-child(2),
body.ldg-skin .modal .table-responsive table td:nth-child(2) { min-width: 220px; }
body.ldg-skin .modal .modal-body > .row strong:first-child,
body.ldg-skin .modal .modal-body .invoice-col > b:first-child { color: var(--ldg-ink); }

/* ---------- Cards view: no fixed scroll height; totals row → summary strip ---------- */
body.ldg-skin .ldg-cards-mode .dataTables_scrollBody { max-height: none !important; height: auto !important; overflow: visible !important; }
/* the product list's bulk bar stays a full-width bar in cards view */
body.ldg-skin .ldg-cards-mode tfoot td.ldg-bulk { flex: 1 1 100%; background: var(--ldg-field) !important; border: 0 !important; }

/* ---------- Add / edit purchase: main + sticky side ---------- */
body.ldg-skin .ldg-pur { display: grid; grid-template-columns: minmax(0, 1fr) 360px; gap: 18px; align-items: start; }
body.ldg-skin .ldg-pur__main, body.ldg-skin .ldg-pur__side { display: flex; flex-direction: column; gap: 18px; min-width: 0; }
body.ldg-skin .ldg-pur__main > .ldg-panel, body.ldg-skin .ldg-pur__side > .ldg-panel,
body.ldg-skin .ldg-pur__main > .box, body.ldg-skin .ldg-pur__side > .box { margin: 0 !important; }
/* Expenses → Recurring (core expense/recur_expense_form_part): the switch on its own line, the interval / repetitions /
   repeat-on fields only while it is ticked; number + days / months / years as one field */
body.ldg-skin #recur_expense_div .box-body > .row { display: flex; flex-wrap: wrap; row-gap: 14px; }
@media (max-width: 767px) { body.ldg-skin #recur_expense_div .box-body > .row > [class*="col-"] { flex: 0 0 100%; width: 100%; } }
body.ldg-skin #recur_expense_div .box-body > .row::before, body.ldg-skin #recur_expense_div .box-body > .row::after { display: none; }
body.ldg-skin #recur_expense_div .box-body > .row > :first-child { flex: 0 0 100%; width: 100%; display: flex; align-items: center; gap: 6px; margin-bottom: 2px; }
body.ldg-skin #recur_expense_div .box-body > .row > :first-child > br { display: none; }
body.ldg-skin #recur_expense_div .box-body > .row > :first-child > label { display: inline-flex; align-items: center; gap: 10px; margin: 0; cursor: pointer; font-weight: 600; }
body.ldg-skin #recur_expense_div:not(:has(#is_recurring:checked)) .box-body > .row > :first-child { margin-bottom: 0; }
body.ldg-skin #recur_expense_div:not(:has(#is_recurring:checked)) .box-body > .row > :not(:first-child) { display: none !important; }
body.ldg-skin #recur_expense_div .box-body > .row > :not(:first-child) .form-group { margin-bottom: 0; }
body.ldg-skin #recur_expense_div .input-group { display: flex; width: 100%; }
body.ldg-skin #recur_expense_div .input-group > .form-control { float: none; width: auto !important; min-width: 0; }
body.ldg-skin #recur_expense_div .input-group > input.form-control { flex: 1 1 auto; border-start-end-radius: 0 !important; border-end-end-radius: 0 !important; }
body.ldg-skin #recur_expense_div .input-group > select.form-control { flex: 0 0 44%; margin-inline-start: -1px; border-start-start-radius: 0 !important; border-end-start-radius: 0 !important; }
body.ldg-skin #recur_expense_div .help-block { margin: 6px 0 0; font-size: 12px; }
body.ldg-skin .ldg-pur__side { position: sticky; top: 12px; }
body.ldg-skin .ldg-pur__head { min-height: 0; }
body.ldg-skin .ldg-pur__rows { margin: 0 0 14px; }
body.ldg-skin .ldg-pur__row { display: flex; justify-content: space-between; gap: 12px; padding: 8px 0; border-bottom: 1px dashed var(--ldg-line); font-size: 13.5px; }
body.ldg-skin .ldg-pur__row dt { font-weight: 500; color: var(--ldg-muted); }
body.ldg-skin .ldg-pur__row dd { margin: 0; font-variant-numeric: tabular-nums; font-weight: 600; color: var(--ldg-ink); white-space: nowrap; }
body.ldg-skin .ldg-pur__row.is-total { margin-top: 6px; padding: 12px; border: 0; border-radius: var(--ldg-radius); background: var(--ldg-teal-900); }
body.ldg-skin .ldg-pur__row.is-total dt { color: rgba(255,255,255,.75); font-family: var(--ldg-mono); font-size: 11px; letter-spacing: .1em; text-transform: uppercase; align-self: center; }
body.ldg-skin .ldg-pur__row.is-total dd { color: #fff; font-size: 20px; }
body.ldg-skin .ldg-pur__row.is-due { border-bottom: 0; }
body.ldg-skin .ldg-pur__row.is-due.has-due dd { color: var(--ldg-bad); }
body.ldg-skin .ldg-pur__save #submit_purchase_form { width: 100%; height: 44px !important; min-height: 44px !important; border-radius: var(--ldg-radius) !important; font-size: 15px !important; background: var(--ldg-teal-800) !important; border: 0 !important; }
/* payment panel in the narrow side column: one field per line */
body.ldg-skin .ldg-pur__side .ldg-panel .row > [class*="col-"] { width: 100%; float: none; }
body.ldg-skin .ldg-pur__side .ldg-panel .pull-right { float: none !important; }
/* items section: the entry table may scroll sideways; its search row tidy */
body.ldg-skin .ldg-pur__main .table-responsive { overflow-x: auto; }
body.ldg-skin .ldg-pur__main #purchase_entry_table { min-width: 900px; }
@media (max-width: 1199px) {
    body.ldg-skin .ldg-pur { grid-template-columns: minmax(0, 1fr); }
    body.ldg-skin .ldg-pur__side { position: static; }
    body.ldg-skin .ldg-pur__summary { position: sticky; bottom: 0; z-index: 20; order: 2; box-shadow: 0 -8px 24px rgba(7, 47, 44, .08); }
}
/* purchase details: two fields per row in the main column (four were too narrow next to the summary) */
@media (min-width: 768px) {
    body.ldg-skin .ldg-pur__main > .ldg-panel:first-child .ldg-panel__body > .row > [class*="col-sm-3"],
    body.ldg-skin .ldg-pur__main > .ldg-panel:first-child .ldg-panel__body > .row > [class*="col-sm-4"] { width: 50%; }
}
body.ldg-skin .ldg-pur__main > .ldg-panel:first-child .ldg-panel__body > .row { display: flex; flex-wrap: wrap; }
body.ldg-skin .ldg-pur__main > .ldg-panel:first-child .ldg-panel__body > .row::before,
body.ldg-skin .ldg-pur__main > .ldg-panel:first-child .ldg-panel__body > .row::after { display: none; }
body.ldg-skin .ldg-pur__main > .ldg-panel:first-child .ldg-panel__body > .row > .clearfix { display: none; }
/* items: search row on one line */
body.ldg-skin .ldg-pur__main .ldg-panel:has(#purchase_entry_table) .ldg-panel__body > .row:first-child { display: flex; flex-wrap: wrap; align-items: center; gap: 10px; margin: 0 0 12px; }
body.ldg-skin .ldg-pur__main .ldg-panel:has(#purchase_entry_table) .ldg-panel__body > .row:first-child::before,
body.ldg-skin .ldg-pur__main .ldg-panel:has(#purchase_entry_table) .ldg-panel__body > .row:first-child::after { display: none; }
body.ldg-skin .ldg-pur__main .ldg-panel:has(#purchase_entry_table) .ldg-panel__body > .row:first-child > [class*="col-"] { width: auto; float: none; padding: 0; }
body.ldg-skin .ldg-pur__main .ldg-panel:has(#purchase_entry_table) .ldg-panel__body > .row:first-child > .col-sm-8 { flex: 1 1 320px; }
body.ldg-skin .ldg-pur__main .ldg-panel:has(#purchase_entry_table) .ldg-panel__body > .row:first-child > .missing-product-warning { flex: 1 1 100%; }
body.ldg-skin .ldg-pur__main .ldg-panel:has(#purchase_entry_table) .ldg-panel__body > .row:first-child .form-group { margin: 0; }
body.ldg-skin .ldg-pur__main .ldg-panel:has(#purchase_entry_table) .tw-dw-btn,
body.ldg-skin .ldg-pur__main .ldg-panel:has(#purchase_entry_table) a { white-space: nowrap; }
body.ldg-skin .ldg-pur__save { display: flex; flex-direction: column; gap: 8px; }
body.ldg-skin .ldg-pur__save .ldg-savebar__cancel { width: 100%; height: 38px; display: inline-flex; align-items: center; justify-content: center; border-radius: var(--ldg-radius) !important; }
body.ldg-skin #purchase_entry_table td:nth-child(2), body.ldg-skin #purchase_entry_table th:nth-child(2) { min-width: 220px; text-align: start !important; }
/* cards view fixes: sizing copy of the totals row (scroll body) is not shown; empty totals hidden; header strip off-screen */
body.ldg-skin .ldg-cards-mode .dataTables_scrollBody > table > tfoot { display: none !important; }
body.ldg-skin .ldg-cards-mode .dataTables_scrollHead { position: absolute !important; left: -10000px !important; }
[dir="rtl"] body.ldg-skin .ldg-cards-mode .dataTables_scrollHead { left: auto !important; right: -10000px !important; }
/* fields: inline content stays inline ("Purchase: £ 0.00"); the label sits on its own line above */
body.ldg-skin .ldg-cards-mode table.dataTable > tbody > tr > td.ldg-c-field,
body.ldg-skin .ldg-cards-mode table.dataTable > tbody > tr > td.ldg-c-title,
body.ldg-skin .ldg-cards-mode table.dataTable > tbody > tr > td.ldg-c-sub { display: block; }
body.ldg-skin .ldg-cards-mode table.dataTable > tbody > tr > td.ldg-c-field::before { display: block; margin-bottom: 3px; }
body.ldg-skin .ldg-cards-mode table.dataTable > tbody > tr > td.ldg-c-field b,
body.ldg-skin .ldg-cards-mode table.dataTable > tbody > tr > td.ldg-c-field strong { font-weight: 600; color: var(--ldg-ink-2); }

/* scroll tables: the sizing copy of the totals row inside the body (DataTables keeps it at height 0 for column widths)
   must stay invisible in table view too — the footer styles above gave it a background, border and line height */
body.ldg-skin .dataTables_scrollBody > table > tfoot,
body.ldg-skin .dataTables_scrollBody > table > tfoot > tr,
body.ldg-skin .dataTables_scrollBody > table > tfoot > tr > td,
body.ldg-skin .dataTables_scrollBody > table > tfoot > tr > th {
    height: 0 !important;
    padding-top: 0 !important;
    padding-bottom: 0 !important;
    border: 0 !important;
    background: none !important;
    line-height: 0 !important;
    font-size: 0 !important;
    visibility: hidden;
}

/* ======================================================================
   Totals summary bar (table and cards view) — tfoot rows marked .ldg-foot-strip by theme.js
   ====================================================================== */
body.ldg-skin .dataTables_scrollFoot:has(tr.ldg-foot-strip),
body.ldg-skin .dataTables_scrollFoot:has(tr.ldg-foot-strip) .dataTables_scrollFootInner,
body.ldg-skin .dataTables_scrollFoot:has(tr.ldg-foot-strip) .dataTables_scrollFootInner > table,
body.ldg-skin .dataTables_scrollFoot:has(tr.ldg-foot-strip) tfoot { display: block !important; width: 100% !important; padding: 0 !important; margin: 0 !important; border: 0 !important; background: none !important; }
body.ldg-skin .dataTables_wrapper table tfoot tr.ldg-foot-strip {
    display: flex !important;
    flex-wrap: wrap;
    align-items: stretch;
    gap: 10px;
    width: 100%;
    box-sizing: border-box;
    margin-top: 14px;
    padding: 12px !important;
    background: var(--ldg-field) !important;
    border: 1px solid var(--ldg-line) !important;
    border-radius: var(--ldg-radius-lg);
    height: auto !important;
}
body.ldg-skin .dataTables_wrapper table tfoot tr.ldg-foot-strip > td,
body.ldg-skin .dataTables_wrapper table tfoot tr.ldg-foot-strip > th {
    display: flex !important;
    flex-direction: column;
    justify-content: center;
    gap: 4px;
    flex: 1 1 0 !important;
    min-width: 170px;
    width: auto !important;
    height: auto !important;
    padding: 10px 14px !important;
    background: var(--ldg-surface) !important;
    border: 1px solid var(--ldg-line) !important;
    border-radius: var(--ldg-radius) !important;
    text-align: start !important;
    font-family: var(--ldg-sans);
    font-size: 15px !important;
    font-weight: 600 !important;
    font-variant-numeric: tabular-nums;
    color: var(--ldg-ink) !important;
    white-space: normal;
    line-height: 1.35;
}
body.ldg-skin .dataTables_wrapper table tfoot tr.ldg-foot-strip > td::before {
    content: attr(data-label);
    font-family: var(--ldg-mono);
    font-size: 10px;
    font-weight: 500;
    letter-spacing: .1em;
    text-transform: uppercase;
    color: var(--ldg-muted);
}
body.ldg-skin .dataTables_wrapper table tfoot tr.ldg-foot-strip > td[data-label=""]::before { display: none; }
body.ldg-skin .dataTables_wrapper table tfoot tr.ldg-foot-strip > td.ldg-foot-empty { display: none !important; }
/* first cell = the bar's label ("TOTAL") */
body.ldg-skin .dataTables_wrapper table tfoot tr.ldg-foot-strip > td.ldg-foot-label {
    flex: 0 0 auto !important;
    min-width: 0;
    background: var(--ldg-teal-900) !important;
    border-color: var(--ldg-teal-900) !important;
    color: #fff !important;
    font-family: var(--ldg-mono);
    font-size: 11.5px !important;
    letter-spacing: .14em;
    text-transform: uppercase;
    justify-content: center;
}
body.ldg-skin .dataTables_wrapper table tfoot tr.ldg-foot-strip > td.ldg-foot-label * { color: inherit !important; font: inherit; }
body.ldg-skin .dataTables_wrapper table tfoot tr.ldg-foot-strip .ldg-colon { display: none; }
/* multi-line totals (status counts, "Purchase due / Purchase return"): one line each, smaller */
body.ldg-skin .dataTables_wrapper table tfoot tr.ldg-foot-strip small,
body.ldg-skin .dataTables_wrapper table tfoot tr.ldg-foot-strip p { display: block; margin: 0; font-size: 12.5px; font-weight: 500; color: var(--ldg-ink-2); line-height: 1.6; white-space: nowrap; }
body.ldg-skin .dataTables_wrapper table tfoot tr.ldg-foot-strip small span { font-weight: 600; color: var(--ldg-ink); }
body.ldg-skin .dataTables_wrapper table tfoot tr.ldg-foot-strip .text-left, body.ldg-skin .dataTables_wrapper table tfoot tr.ldg-foot-strip .text-center { text-align: start !important; }
/* amounts that read as due stand out */
body.ldg-skin .dataTables_wrapper table tfoot tr.ldg-foot-strip .footer_total_due:not(:empty) { color: var(--ldg-bad); }
/* tables without horizontal scroll: the totals tfoot becomes the table's bottom caption, so the bar spans the whole
   table width (a flex row inside a table row group would be squeezed into the first column) */
body.ldg-skin .dataTables_wrapper table.dataTable > tfoot:has(> tr.ldg-foot-strip) { display: table-caption; caption-side: bottom; width: 100%; }
body.ldg-skin .ldg-cards-mode table.dataTable > tfoot:has(> tr.ldg-foot-strip) { display: block; }

/* ---------- Add / edit purchase: no field alone on a row ---------- */
/* generic: panel rows in the main column become a grid; offsets / clearfix gone; full-width cols span the row */
body.ldg-skin .ldg-pur__main .ldg-panel__body > .row:not(:has(#purchase_entry_table)) {
    display: grid; grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); column-gap: 18px; margin-left: 0; margin-right: 0;
}
body.ldg-skin .ldg-pur__main .ldg-panel__body > .row:not(:has(#purchase_entry_table))::before,
body.ldg-skin .ldg-pur__main .ldg-panel__body > .row:not(:has(#purchase_entry_table))::after { display: none; }
body.ldg-skin .ldg-pur__main .ldg-panel__body > .row:not(:has(#purchase_entry_table)) > [class*="col-"] { width: auto; float: none; margin-left: 0 !important; padding: 0; }
body.ldg-skin .ldg-pur__main .ldg-panel__body > .row:not(:has(#purchase_entry_table)) > [class*="col-"][class*="-12"] { grid-column: 1 / -1; }
body.ldg-skin .ldg-pur__main .ldg-panel__body > .row > .clearfix { display: none; }
body.ldg-skin .ldg-pur__main .ldg-panel__body > .row:empty { display: none; }

/* Discount & tax: the core layout table → one grid (type, amount, tax side by side; notes full width) */
body.ldg-skin .ldg-pur__main table.table:has(#discount_type, #tax_id) { display: block; margin: 0; background: none; }
body.ldg-skin .ldg-pur__main table.table:has(#discount_type, #tax_id) > tbody {
    display: grid; grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); column-gap: 18px;
}
body.ldg-skin .ldg-pur__main table.table:has(#discount_type, #tax_id) tr { display: contents; }
body.ldg-skin .ldg-pur__main table.table:has(#discount_type, #tax_id) td { display: block; width: auto !important; padding: 0 !important; border: 0 !important; background: none !important; }
body.ldg-skin .ldg-pur__main table.table:has(#discount_type, #tax_id) td[colspan] { grid-column: 1 / -1; }
/* spacer cells and the "Discount (-) … / Purchase tax (+) …" lines (shown live in the summary) */
body.ldg-skin .ldg-pur__main table.table:has(#discount_type, #tax_id) td:not(:has(input, select, textarea)) { display: none; }
body.ldg-skin .ldg-pur__main table.table:has(#discount_type, #tax_id) tr.hide td { display: none; }

/* Shipping: the purchase total repeated here is shown in the summary (span kept for the page script) */
body.ldg-skin .ldg-pur__main .ldg-panel__body > .row > [class*="col-"]:has(> .pull-right #grand_total),
body.ldg-skin .ldg-pur__main .ldg-panel__body > .row > [class*="col-"]:has(#grand_total):not(:has(input, select, textarea)) { display: none; }
body.ldg-skin .ldg-pur__main .ldg-panel__body > .row > .text-center:has(#toggle_additional_expense) { text-align: start !important; }
body.ldg-skin .ldg-pur__main #additional_expenses_div { grid-column: 1 / -1; width: auto; margin-left: 0 !important; }
body.ldg-skin .ldg-pur__main [class*="col-"]:has(> #grand_total) { display: none !important; }
/* selects take their cell's width (select2 kept the pixel width it got at load) */
body.ldg-skin .ldg-pur__main .select2-container { width: 100% !important; max-width: 100%; }
body.ldg-skin .ldg-pur__main .input-group .select2-container { width: 1% !important; flex: 1 1 auto; }

/* document forms (sale): totals texts mirrored in the summary are hidden in the main column (elements kept) */
body.ldg-skin .ldg-pur__main [class*="col-"]:has(#total_discount, #order_tax, #total_payable):not(:has(input:not([type=hidden]), select, textarea)) { display: none !important; }
body.ldg-skin .ldg-pur__main .ldg-panel:has(#pos_table) .ldg-panel__body > .row:has(.total_quantity):not(:has(input:not([type=hidden]), select)) { display: none; }
body.ldg-skin .ldg-pur__save #submit-sell { width: 100%; height: 44px !important; min-height: 44px !important; border-radius: var(--ldg-radius) !important; font-size: 15px !important; background: var(--ldg-teal-800) !important; border: 0 !important; color: #fff !important; }
body.ldg-skin .ldg-pur__save #save-and-print { width: 100%; height: 40px !important; min-height: 40px !important; border-radius: var(--ldg-radius) !important; }
body.ldg-skin .ldg-pur__main #pos_table { min-width: 860px; }
/* the site's "Return Autocomplete" button (custom sell list): theme font */
body.ldg-skin .box-tools .tw-dw-btn i.fa-history, body.ldg-skin a:has(> i.fa-history) { font-family: var(--ldg-sans) !important; font-style: normal; font-weight: 600; }
/* document forms: generic submit button in the summary; payment due text of the expense form mirrored in the summary */
body.ldg-skin .ldg-pur__save button[type="submit"] { width: 100%; height: 44px !important; min-height: 44px !important; border-radius: var(--ldg-radius) !important; font-size: 15px !important; background: var(--ldg-teal-800) !important; border: 0 !important; color: #fff !important; }
body.ldg-skin .ldg-pur__main [class*="col-"]:has(#total_adjustment):not(:has(input:not([type=hidden]), select, textarea)) { display: none !important; }
body.ldg-skin .ldg-pur__main .ldg-panel:has(#stock_adjustment_product_table) .row:has(> [class*="col-"] > #total_adjustment, #total_adjustment) > :has(#total_adjustment) { display: none !important; }

/* totals bar of a table inside .ldg-tscroll: pinned to the visible width while the columns scroll */
/* totals footer moved out of the scroller (theme.js): below the scrollbar, full width */
body.ldg-skin table.ldg-foot-out { display: block; width: 100%; margin: 0; border: 0; background: none; }
body.ldg-skin table.ldg-foot-out > tfoot { display: block; width: 100%; }
body.ldg-skin table.ldg-foot-out > tfoot > tr:not(.ldg-foot-strip) { display: table; width: 100%; }
body.ldg-skin .table-responsive:has(> .dataTables_wrapper) { overflow-x: visible; }

/* ---------- Payment accounts + account reports ---------- */
/* a box whose only content is a tabbed card: no second frame */
body.ldg-skin .box:has(> .box-body > .nav-tabs-custom:only-child),
body.ldg-skin .ldg-panel:has(> .ldg-panel__body > .nav-tabs-custom:only-child) { background: none !important; border: 0 !important; box-shadow: none !important; padding: 0 !important; }
body.ldg-skin .box:has(> .box-body > .nav-tabs-custom:only-child) > .box-body,
body.ldg-skin .ldg-panel:has(> .ldg-panel__body > .nav-tabs-custom:only-child) > .ldg-panel__body { padding: 0 !important; }
/* account names readable */
body.ldg-skin #other_account_table td:first-child,
body.ldg-skin #capital_account_table td:first-child,
body.ldg-skin table.dataTable[id*="account"] tbody td:first-child { min-width: 170px; }
/* report totals rows (bg-gray / #d2d6de cells) → theme tint */
body.ldg-skin section.content .table .bg-gray,
body.ldg-skin section.content .table tr.bg-gray > th,
body.ldg-skin section.content .table tr.bg-gray > td,
body.ldg-skin section.content .table td.bg-gray,
body.ldg-skin section.content .table th.bg-gray { background: var(--ldg-teal-50) !important; color: var(--ldg-tx-900) !important; font-weight: 600; }
/* plain bold labels used as filter labels ("Filter by date:") match the field labels */
body.ldg-skin .ldg-filters__body .form-group > label:not(:has(input)),
body.ldg-skin .ldg-filters__body label > strong:only-child {
    font-family: var(--ldg-mono); font-size: 10.5px; font-weight: 500; letter-spacing: .1em; text-transform: uppercase; color: var(--ldg-ink-2);
}
/* filter labels written straight in the column (no .form-group), e.g. "Filter by date:" */
body.ldg-skin .ldg-filters__body > [class*="col-"] > label {
    font-family: var(--ldg-mono); font-size: 10.5px; font-weight: 500; letter-spacing: .1em; text-transform: uppercase; color: var(--ldg-ink-2);
}
/* amounts never wrap; long descriptions get room */
body.ldg-skin table.dataTable span.debit, body.ldg-skin table.dataTable span.credit,
body.ldg-skin table.dataTable span.display_currency { white-space: nowrap; }
body.ldg-skin #cash_flow_table td:nth-child(2) { min-width: 130px; }
body.ldg-skin #cash_flow_table td:nth-child(3), body.ldg-skin #payment_account_report td:nth-child(7) { min-width: 220px; }
body.ldg-skin table.dataTable td.ldg-money { white-space: nowrap; }
/* balance sheet / trial balance: label cells are plain text, not grey header cells */
body.ldg-skin .table-pl-12 > tbody > tr > td { vertical-align: top !important; }
body.ldg-skin .table-pl-12 .table > tbody > tr > th,
body.ldg-skin .table-pl-12 .table > tr > th,
body.ldg-skin #trial_balance_table > tbody > tr > th {
    background: transparent !important; color: var(--ldg-ink-2); font-family: var(--ldg-mono); font-size: 10.5px; font-weight: 500; letter-spacing: .1em; text-transform: uppercase;
}
/* totals row: one tint, no inner frames */
body.ldg-skin .table-pl-12 tr.bg-gray .table,
body.ldg-skin .table-pl-12 tr.bg-gray .table th,
body.ldg-skin .table-pl-12 tr.bg-gray .table td { background: transparent !important; border: 0 !important; }
body.ldg-skin .table-pl-12 tr.bg-gray .table th { color: var(--ldg-tx-900) !important; }
body.ldg-skin .table-pl-12 > tbody > tr.bg-gray > td { border-top: 2px solid var(--ldg-teal-700, #0f5e57) !important; }
[dir="rtl"] body.ldg-skin .table-pl-12 .table th, html[dir="rtl"] body.ldg-skin #trial_balance_table th { letter-spacing: normal; }
/* product search in a document form's Items section: full width */
body.ldg-skin form [class*="col-"]:has(> .form-group > .input-group > #search_product_for_srock_adjustment),
body.ldg-skin form [class*="col-"]:has(> .form-group > .input-group > #search_product) { width: 100% !important; max-width: 720px; margin-left: 0 !important; float: none; }

/* Profit / Loss summary skeleton (theme.js 1b) */
body.ldg-skin .ldg-plskel { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; padding: 0 15px 16px; }
body.ldg-skin .ldg-plskel__card { background: var(--ldg-surface); border: 1px solid var(--ldg-line); border-radius: var(--ldg-radius-lg); padding: 18px 20px; display: flex; flex-direction: column; gap: 14px; }
body.ldg-skin .ldg-plskel__card--wide { grid-column: 1 / -1; }
body.ldg-skin .ldg-plskel__row { display: flex; justify-content: space-between; align-items: center; gap: 16px; padding-top: 12px; border-top: 1px solid var(--ldg-line); }
body.ldg-skin .ldg-plskel .ldg-skel { display: block; }
@media (max-width: 767px) { body.ldg-skin .ldg-plskel { grid-template-columns: 1fr; padding: 0 0 16px; } }

/* filter fields wrapped in a <form> (e.g. stock expiry, stock report): the form takes no box, its columns join the grid */
body.ldg-skin .ldg-filters__body > form { display: contents; }
body.ldg-skin .ldg-filters__body > form > [class*="col-"] { float: none; width: auto; padding: 0; min-height: 0; }
body.ldg-skin .ldg-filters__body > form > .clearfix { display: none; }
body.ldg-skin .ldg-filters__body > form > [class*="col-"] > label {
    font-family: var(--ldg-mono); font-size: 10.5px; font-weight: 500; letter-spacing: .1em; text-transform: uppercase; color: var(--ldg-ink-2);
}

/* filter grid: a full-width column (col-*-12) spans the whole row; a lone button sits at the end */
body.ldg-skin .ldg-filters__body > [class*="col-"][class*="-12"],
body.ldg-skin .ldg-filters__body > form > [class*="col-"][class*="-12"] { grid-column: 1 / -1; display: flex; justify-content: flex-end; align-items: center; gap: 8px; }
body.ldg-skin .ldg-filters__body [class*="col-"][class*="-12"] > .pull-right { float: none !important; }

/* key / value summary tables (report totals: purchase & sale, stock adjustment, tax …): labels without the grey header fill */
body.ldg-skin section.content .table:not(.dataTable) > tbody > tr > th {
    background: transparent !important; color: var(--ldg-ink-2); font-family: var(--ldg-mono); font-size: 10.5px; font-weight: 500;
    letter-spacing: .1em; text-transform: uppercase; vertical-align: middle;
}
html[dir="rtl"] body.ldg-skin section.content .table:not(.dataTable) > tbody > tr > th { letter-spacing: normal; }
/* rows core adds only to even out two cards: no lines */
body.ldg-skin section.content .table:not(.dataTable) > tbody > tr:has(> th:empty):has(> td:empty) > * { border-color: transparent !important; }

/* template variable chips (theme.js) */
body.ldg-skin .ldg-tags { display: flex; flex-wrap: wrap; gap: 6px; margin: 6px 0 10px; }
body.ldg-skin .ldg-tag {
    font-family: var(--ldg-mono); font-size: 11.5px; line-height: 1; padding: 6px 8px; border-radius: var(--ldg-radius);
    background: var(--ldg-teal-50); color: var(--ldg-tx-900); border: 1px solid var(--ldg-teal-100); cursor: pointer;
    transition: background .15s, border-color .15s;
}
body.ldg-skin .ldg-tag:hover { background: var(--ldg-teal-100); border-color: var(--ldg-teal-700); }
body.ldg-skin .ldg-tag:focus-visible { outline: 2px solid var(--ldg-teal-700); outline-offset: 1px; }
body.ldg-skin .ldg-tag.is-done { background: var(--ldg-teal-700); color: #fff; border-color: var(--ldg-teal-700); }

/* ---------- Backup / Manage modules / admin pages ---------- */
body.ldg-skin section.content code {
    background: var(--ldg-field); color: var(--ldg-ink); border: 1px solid var(--ldg-line); border-radius: var(--ldg-radius);
    padding: 2px 6px; font-family: var(--ldg-mono); font-size: 12px; white-space: pre-wrap; word-break: break-all;
}
/* outline buttons in the theme palette (install / buy = teal, uninstall = amber, delete = red) */
body.ldg-skin section.content .tw-dw-btn-outline.tw-dw-btn-accent { background: transparent !important; color: var(--ldg-tx-700) !important; border-color: var(--ldg-teal-700) !important; }
body.ldg-skin section.content .tw-dw-btn-outline.tw-dw-btn-accent:hover { background: var(--ldg-teal-50) !important; }
body.ldg-skin section.content .tw-dw-btn-outline.tw-dw-btn-error { background: transparent !important; color: var(--ldg-bad) !important; border-color: var(--ldg-bad) !important; }
body.ldg-skin section.content .tw-dw-btn-outline.tw-dw-btn-error:hover { background: var(--ldg-bad-bg) !important; }
body.ldg-skin section.content .btn.btn-warning.btn-xs { background: transparent !important; color: var(--ldg-warn) !important; border: 1px solid var(--ldg-amber) !important; box-shadow: none !important; }
body.ldg-skin section.content .btn.btn-warning.btn-xs:hover { background: var(--ldg-warn-bg) !important; }
/* notices (e.g. "a new version of X is available") */
body.ldg-skin section.content .alert.alert-warning {
    background: var(--ldg-warn-bg) !important; color: var(--ldg-warn) !important; border: 1px solid #efd9a3 !important; border-radius: var(--ldg-radius-lg);
    display: flex; align-items: center; justify-content: space-between; gap: 12px; flex-wrap: wrap;
}
body.ldg-skin section.content .alert.alert-warning a.btn, body.ldg-skin section.content .alert.alert-warning .btn {
    background: var(--ldg-teal-700) !important; color: #fff !important; border: 0 !important; text-decoration: none !important; border-radius: var(--ldg-radius); padding: 6px 14px;
}
/* a table whose only row says it is empty (backup list) */
body.ldg-skin section.content .table:not(.dataTable) > tbody:only-of-type > tr:only-child > td:only-child,
body.ldg-skin section.content .table:not(.dataTable) > tbody:only-of-type > tr:only-child > th:only-child {
    background: transparent !important; text-align: center !important; color: var(--ldg-muted) !important; padding: 28px 12px !important;
    font-family: var(--ldg-sans) !important; text-transform: none !important; letter-spacing: normal !important; font-size: 13px !important;
}

/* ---------- Start page (GET /start): own full page, short list ---------- */
html:has(> body.ldg-startpage) { background: var(--ldg-bg) !important; min-height: 100%; }
body.ldg-startpage { margin: 0; min-height: 100vh; background: var(--ldg-bg) !important; overflow-y: auto !important; height: auto !important; font-family: var(--ldg-sans); color: var(--ldg-ink); }
.ldg-startpage__bar { display: flex; align-items: center; justify-content: space-between; gap: 16px; height: 56px; padding: 0 24px; background: var(--ldg-teal-900); color: #fff; }
.ldg-startpage__brand { font-weight: 600; font-size: 15px; }
.ldg-startpage__nav { display: flex; align-items: center; gap: 16px; font-size: 13px; }
.ldg-startpage__nav a, .ldg-startpage__nav button { color: #fff !important; background: none; border: 0; padding: 0; font: inherit; cursor: pointer; text-decoration: none; opacity: .85; }
.ldg-startpage__nav a:hover, .ldg-startpage__nav button:hover { opacity: 1; text-decoration: underline; }
.ldg-startpage__nav form { margin: 0; }
.ldg-startpage__user { opacity: .7; }
.ldg-startpage__main { max-width: 920px; margin: 0 auto; padding: 36px 24px 48px; }
.ldg-startpage__date { margin: 0 0 6px; font-family: var(--ldg-mono); font-size: 11px; letter-spacing: .08em; text-transform: uppercase; color: var(--ldg-muted); }
.ldg-startpage__hello { margin: 0 0 18px; font-size: 26px; font-weight: 600; }
.ldg-startpage__search { position: relative; display: block; margin: 0 0 18px; }
.ldg-startpage__search svg { position: absolute; inset-inline-start: 14px; top: 50%; width: 16px; height: 16px; transform: translateY(-50%); color: var(--ldg-muted); }
.ldg-startpage__search input { width: 100%; height: 48px; padding-inline: 40px 14px; border: 1px solid var(--ldg-line); border-radius: var(--ldg-radius-lg); background: var(--ldg-surface); font-size: 15px; color: var(--ldg-ink); }
.ldg-startpage__search input:focus { outline: none; border-color: var(--ldg-teal-700); box-shadow: 0 0 0 3px var(--ldg-teal-50); }
.ldg-startpage__list { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); gap: 12px; }
.ldg-startpage__list li[hidden], .ldg-startpage__results li[hidden] { display: none; }
.ldg-sc { display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 10px; aspect-ratio: 1 / 1; padding: 10px; text-align: center; line-height: 1.25; background: var(--ldg-surface); border: 1px solid var(--ldg-line); border-radius: var(--ldg-radius-lg); color: var(--ldg-ink) !important; text-decoration: none !important; font-size: 14px; font-weight: 500; transition: border-color .15s, background .15s, box-shadow .15s, transform .15s; }
.ldg-sc i { display: inline-flex; align-items: center; justify-content: center; width: 42px; height: 42px; border-radius: 11px; background: var(--ldg-teal-50); font-size: 18px; color: var(--ldg-tx-700); }
.ldg-sc span { font-size: 13.5px; font-weight: 600; }
.ldg-sc:hover { box-shadow: 0 8px 22px rgba(10, 69, 65, .12); transform: translateY(-2px); }
.ldg-sc:hover { border-color: var(--ldg-teal-700); }
.ldg-sc:focus-visible { outline: 2px solid var(--ldg-teal-700); outline-offset: 2px; }
.ldg-sc--primary { background: var(--ldg-teal-800); border-color: var(--ldg-teal-800); color: #fff !important; }
.ldg-sc--primary i { color: #fff; background: rgba(255, 255, 255, .14); }
.ldg-sc--primary:hover { background: var(--ldg-teal-900); border-color: var(--ldg-teal-900); }
.ldg-startpage__results { list-style: none; margin: 18px 0 0; padding: 4px; background: var(--ldg-surface); border: 1px solid var(--ldg-line); border-radius: var(--ldg-radius-lg); }
.ldg-res { display: flex; align-items: baseline; justify-content: space-between; gap: 12px; padding: 10px 12px; border-radius: var(--ldg-radius); color: var(--ldg-ink) !important; text-decoration: none !important; font-size: 14px; }
.ldg-res:hover, .ldg-res:focus-visible { background: var(--ldg-teal-50); outline: none; }
.ldg-res__sec { font-family: var(--ldg-mono); font-size: 10.5px; letter-spacing: .08em; text-transform: uppercase; color: var(--ldg-muted); }
.ldg-startpage__none { margin: 18px 0 0; color: var(--ldg-muted); }
html[dir="rtl"] .ldg-res__sec, html[dir="rtl"] .ldg-startpage__date { letter-spacing: normal; }
@media (max-width: 900px) { .ldg-startpage__list { grid-template-columns: repeat(4, minmax(0, 1fr)); } }
@media (max-width: 640px) {
    .ldg-startpage__main { padding: 24px 16px 40px; }
    .ldg-startpage__list { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 10px; }
    .ldg-sc i { width: 40px; height: 40px; font-size: 17px; }
    .ldg-sc span { font-size: 13px; }
    .ldg-startpage__user { display: none; }
    .ldg-startpage__hello { font-size: 21px; }
}

/* ---------- Settings pages ---------- */
/* plain checkboxes outside tables (barcode settings, location form …): same box as table checkboxes; low specificity so switches keep their look */
body.ldg-skin :where(input[type="checkbox"]:not(.input-icheck):not([class*="toggle"]):not([role="switch"])) {
    -webkit-appearance: none; appearance: none; width: 16px; height: 16px; margin: 0; flex: 0 0 auto; vertical-align: middle;
    background: var(--ldg-surface); border: 1.5px solid var(--ldg-line-2); border-radius: 4px; cursor: pointer; transition: background-color .12s, border-color .12s;
}
body.ldg-skin :where(input[type="checkbox"]:not(.input-icheck):not([class*="toggle"]):not([role="switch"])):hover { border-color: var(--ldg-teal-700); }
body.ldg-skin :where(input[type="checkbox"]:not(.input-icheck):not([class*="toggle"]):not([role="switch"])):checked {
    background: var(--ldg-teal-800) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23fff' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12l5 5l10 -10'/%3E%3C/svg%3E") center / 11px 11px no-repeat;
    border-color: var(--ldg-teal-800);
}
body.ldg-skin :where(input[type="checkbox"]:not(.input-icheck):not([class*="toggle"]):not([role="switch"])):focus-visible { outline: none; box-shadow: 0 0 0 3px var(--ldg-teal-100); }

/* Business settings: section menu + one content card (core: widget.pos-tab-container > body > .pos-tab-menu + .pos-tab) */
body.ldg-skin .ldg-panel.pos-tab-container, body.ldg-skin .box.pos-tab-container { background: none !important; border: 0 !important; box-shadow: none !important; padding: 0 !important; }
body.ldg-skin .pos-tab-container > .ldg-panel__body, body.ldg-skin .pos-tab-container > .box-body { display: flex !important; align-items: flex-start; gap: 20px; padding: 0 !important; }
body.ldg-skin .pos-tab-container > .ldg-panel__body::before, body.ldg-skin .pos-tab-container > .ldg-panel__body::after,
body.ldg-skin .pos-tab-container > .box-body::before, body.ldg-skin .pos-tab-container > .box-body::after { display: none !important; }
body.ldg-skin .pos-tab-container .pos-tab-menu { float: none !important; width: 232px !important; min-width: 232px; max-width: 232px; flex: 0 0 232px; padding: 0 !important; position: sticky; top: 64px; }
body.ldg-skin .pos-tab-container .pos-tab {
    float: none !important; width: auto !important; flex: 1 1 0; min-width: 0; padding: 24px 24px 8px !important;
    background: var(--ldg-surface); border: 1px solid var(--ldg-line); border-radius: var(--ldg-radius-lg);
}
body.ldg-skin .pos-tab-menu .list-group { margin: 0; padding: 6px; background: var(--ldg-surface); border: 1px solid var(--ldg-line); border-radius: var(--ldg-radius-lg); }
body.ldg-skin .pos-tab-menu .list-group-item {
    display: flex !important; align-items: center; gap: 8px; height: auto !important; min-height: 36px; margin: 0 0 2px !important; padding: 8px 12px 8px 14px !important;
    border: 0 !important; border-radius: var(--ldg-radius) !important; background: transparent !important; color: var(--ldg-ink-2) !important;
    font-family: var(--ldg-sans) !important; font-size: 13.5px !important; font-weight: 500 !important; text-align: start !important; line-height: 1.3 !important; position: relative; white-space: normal;
}
body.ldg-skin .pos-tab-menu .list-group-item:hover { background: var(--ldg-field) !important; color: var(--ldg-ink) !important; }
body.ldg-skin .pos-tab-menu .list-group-item.active { background: var(--ldg-teal-50) !important; color: var(--ldg-tx-900) !important; font-weight: 600 !important; }
body.ldg-skin .pos-tab-menu .list-group-item.active::before { content: ""; position: absolute; inset-inline-start: 0; top: 8px; bottom: 8px; width: 3px; border-radius: 3px; background: var(--ldg-teal-700); }
body.ldg-skin .pos-tab-menu .list-group-item .hover-q, body.ldg-skin .pos-tab-menu .list-group-item i { display: none !important; }
/* content: each row is a 12-column grid (a field keeps core's width), fields align to the bottom so checkboxes sit level with inputs */
body.ldg-skin .pos-tab .pos-tab-content { padding: 0 !important; margin: 0 !important; border: 0 !important; background: none !important; }
body.ldg-skin .pos-tab .pos-tab-content .row {
    display: grid !important; grid-template-columns: repeat(12, minmax(0, 1fr)); column-gap: 20px; row-gap: 0; align-items: start; margin: 0 !important;
}
body.ldg-skin .pos-tab .pos-tab-content .row::before, body.ldg-skin .pos-tab .pos-tab-content .row::after { display: none !important; }
body.ldg-skin .pos-tab .pos-tab-content .row > * { grid-column: 1 / -1; float: none !important; width: auto !important; padding: 0 !important; min-width: 0; }
/* a wrapper core puts between the row and its columns (e.g. Email settings #toggle_visibility): no box of its own */
body.ldg-skin .pos-tab .pos-tab-content .row > div:not([class*="col-"]):not(.clearfix) { display: contents; }
body.ldg-skin .pos-tab .pos-tab-content .row > div:not([class*="col-"]) > * { float: none !important; width: auto !important; padding: 0 !important; min-width: 0; grid-column: 1 / -1; }
body.ldg-skin .pos-tab .pos-tab-content .row > .col-xs-1, body.ldg-skin .pos-tab .pos-tab-content .row > :not([class*="col-"]) > .col-xs-1 { grid-column: span 1; }
body.ldg-skin .pos-tab .pos-tab-content .row > .col-xs-2, body.ldg-skin .pos-tab .pos-tab-content .row > :not([class*="col-"]) > .col-xs-2 { grid-column: span 2; }
body.ldg-skin .pos-tab .pos-tab-content .row > .col-xs-3, body.ldg-skin .pos-tab .pos-tab-content .row > :not([class*="col-"]) > .col-xs-3 { grid-column: span 3; }
body.ldg-skin .pos-tab .pos-tab-content .row > .col-xs-4, body.ldg-skin .pos-tab .pos-tab-content .row > :not([class*="col-"]) > .col-xs-4 { grid-column: span 4; }
body.ldg-skin .pos-tab .pos-tab-content .row > .col-xs-5, body.ldg-skin .pos-tab .pos-tab-content .row > :not([class*="col-"]) > .col-xs-5 { grid-column: span 5; }
body.ldg-skin .pos-tab .pos-tab-content .row > .col-xs-6, body.ldg-skin .pos-tab .pos-tab-content .row > :not([class*="col-"]) > .col-xs-6 { grid-column: span 6; }
body.ldg-skin .pos-tab .pos-tab-content .row > .col-xs-7, body.ldg-skin .pos-tab .pos-tab-content .row > :not([class*="col-"]) > .col-xs-7 { grid-column: span 7; }
body.ldg-skin .pos-tab .pos-tab-content .row > .col-xs-8, body.ldg-skin .pos-tab .pos-tab-content .row > :not([class*="col-"]) > .col-xs-8 { grid-column: span 8; }
body.ldg-skin .pos-tab .pos-tab-content .row > .col-xs-9, body.ldg-skin .pos-tab .pos-tab-content .row > :not([class*="col-"]) > .col-xs-9 { grid-column: span 9; }
body.ldg-skin .pos-tab .pos-tab-content .row > .col-xs-10, body.ldg-skin .pos-tab .pos-tab-content .row > :not([class*="col-"]) > .col-xs-10 { grid-column: span 10; }
body.ldg-skin .pos-tab .pos-tab-content .row > .col-xs-11, body.ldg-skin .pos-tab .pos-tab-content .row > :not([class*="col-"]) > .col-xs-11 { grid-column: span 11; }
body.ldg-skin .pos-tab .pos-tab-content .row > .col-xs-12, body.ldg-skin .pos-tab .pos-tab-content .row > :not([class*="col-"]) > .col-xs-12 { grid-column: span 12; }
body.ldg-skin .pos-tab .pos-tab-content .row > .col-sm-1, body.ldg-skin .pos-tab .pos-tab-content .row > :not([class*="col-"]) > .col-sm-1 { grid-column: span 1; }
body.ldg-skin .pos-tab .pos-tab-content .row > .col-sm-2, body.ldg-skin .pos-tab .pos-tab-content .row > :not([class*="col-"]) > .col-sm-2 { grid-column: span 2; }
body.ldg-skin .pos-tab .pos-tab-content .row > .col-sm-3, body.ldg-skin .pos-tab .pos-tab-content .row > :not([class*="col-"]) > .col-sm-3 { grid-column: span 3; }
body.ldg-skin .pos-tab .pos-tab-content .row > .col-sm-4, body.ldg-skin .pos-tab .pos-tab-content .row > :not([class*="col-"]) > .col-sm-4 { grid-column: span 4; }
body.ldg-skin .pos-tab .pos-tab-content .row > .col-sm-5, body.ldg-skin .pos-tab .pos-tab-content .row > :not([class*="col-"]) > .col-sm-5 { grid-column: span 5; }
body.ldg-skin .pos-tab .pos-tab-content .row > .col-sm-6, body.ldg-skin .pos-tab .pos-tab-content .row > :not([class*="col-"]) > .col-sm-6 { grid-column: span 6; }
body.ldg-skin .pos-tab .pos-tab-content .row > .col-sm-7, body.ldg-skin .pos-tab .pos-tab-content .row > :not([class*="col-"]) > .col-sm-7 { grid-column: span 7; }
body.ldg-skin .pos-tab .pos-tab-content .row > .col-sm-8, body.ldg-skin .pos-tab .pos-tab-content .row > :not([class*="col-"]) > .col-sm-8 { grid-column: span 8; }
body.ldg-skin .pos-tab .pos-tab-content .row > .col-sm-9, body.ldg-skin .pos-tab .pos-tab-content .row > :not([class*="col-"]) > .col-sm-9 { grid-column: span 9; }
body.ldg-skin .pos-tab .pos-tab-content .row > .col-sm-10, body.ldg-skin .pos-tab .pos-tab-content .row > :not([class*="col-"]) > .col-sm-10 { grid-column: span 10; }
body.ldg-skin .pos-tab .pos-tab-content .row > .col-sm-11, body.ldg-skin .pos-tab .pos-tab-content .row > :not([class*="col-"]) > .col-sm-11 { grid-column: span 11; }
body.ldg-skin .pos-tab .pos-tab-content .row > .col-sm-12, body.ldg-skin .pos-tab .pos-tab-content .row > :not([class*="col-"]) > .col-sm-12 { grid-column: span 12; }
body.ldg-skin .pos-tab .pos-tab-content .row > .col-md-1, body.ldg-skin .pos-tab .pos-tab-content .row > :not([class*="col-"]) > .col-md-1 { grid-column: span 1; }
body.ldg-skin .pos-tab .pos-tab-content .row > .col-md-2, body.ldg-skin .pos-tab .pos-tab-content .row > :not([class*="col-"]) > .col-md-2 { grid-column: span 2; }
body.ldg-skin .pos-tab .pos-tab-content .row > .col-md-3, body.ldg-skin .pos-tab .pos-tab-content .row > :not([class*="col-"]) > .col-md-3 { grid-column: span 3; }
body.ldg-skin .pos-tab .pos-tab-content .row > .col-md-4, body.ldg-skin .pos-tab .pos-tab-content .row > :not([class*="col-"]) > .col-md-4 { grid-column: span 4; }
body.ldg-skin .pos-tab .pos-tab-content .row > .col-md-5, body.ldg-skin .pos-tab .pos-tab-content .row > :not([class*="col-"]) > .col-md-5 { grid-column: span 5; }
body.ldg-skin .pos-tab .pos-tab-content .row > .col-md-6, body.ldg-skin .pos-tab .pos-tab-content .row > :not([class*="col-"]) > .col-md-6 { grid-column: span 6; }
body.ldg-skin .pos-tab .pos-tab-content .row > .col-md-7, body.ldg-skin .pos-tab .pos-tab-content .row > :not([class*="col-"]) > .col-md-7 { grid-column: span 7; }
body.ldg-skin .pos-tab .pos-tab-content .row > .col-md-8, body.ldg-skin .pos-tab .pos-tab-content .row > :not([class*="col-"]) > .col-md-8 { grid-column: span 8; }
body.ldg-skin .pos-tab .pos-tab-content .row > .col-md-9, body.ldg-skin .pos-tab .pos-tab-content .row > :not([class*="col-"]) > .col-md-9 { grid-column: span 9; }
body.ldg-skin .pos-tab .pos-tab-content .row > .col-md-10, body.ldg-skin .pos-tab .pos-tab-content .row > :not([class*="col-"]) > .col-md-10 { grid-column: span 10; }
body.ldg-skin .pos-tab .pos-tab-content .row > .col-md-11, body.ldg-skin .pos-tab .pos-tab-content .row > :not([class*="col-"]) > .col-md-11 { grid-column: span 11; }
body.ldg-skin .pos-tab .pos-tab-content .row > .col-md-12, body.ldg-skin .pos-tab .pos-tab-content .row > :not([class*="col-"]) > .col-md-12 { grid-column: span 12; }
body.ldg-skin .pos-tab .pos-tab-content .row > .col-lg-1, body.ldg-skin .pos-tab .pos-tab-content .row > :not([class*="col-"]) > .col-lg-1 { grid-column: span 1; }
body.ldg-skin .pos-tab .pos-tab-content .row > .col-lg-2, body.ldg-skin .pos-tab .pos-tab-content .row > :not([class*="col-"]) > .col-lg-2 { grid-column: span 2; }
body.ldg-skin .pos-tab .pos-tab-content .row > .col-lg-3, body.ldg-skin .pos-tab .pos-tab-content .row > :not([class*="col-"]) > .col-lg-3 { grid-column: span 3; }
body.ldg-skin .pos-tab .pos-tab-content .row > .col-lg-4, body.ldg-skin .pos-tab .pos-tab-content .row > :not([class*="col-"]) > .col-lg-4 { grid-column: span 4; }
body.ldg-skin .pos-tab .pos-tab-content .row > .col-lg-5, body.ldg-skin .pos-tab .pos-tab-content .row > :not([class*="col-"]) > .col-lg-5 { grid-column: span 5; }
body.ldg-skin .pos-tab .pos-tab-content .row > .col-lg-6, body.ldg-skin .pos-tab .pos-tab-content .row > :not([class*="col-"]) > .col-lg-6 { grid-column: span 6; }
body.ldg-skin .pos-tab .pos-tab-content .row > .col-lg-7, body.ldg-skin .pos-tab .pos-tab-content .row > :not([class*="col-"]) > .col-lg-7 { grid-column: span 7; }
body.ldg-skin .pos-tab .pos-tab-content .row > .col-lg-8, body.ldg-skin .pos-tab .pos-tab-content .row > :not([class*="col-"]) > .col-lg-8 { grid-column: span 8; }
body.ldg-skin .pos-tab .pos-tab-content .row > .col-lg-9, body.ldg-skin .pos-tab .pos-tab-content .row > :not([class*="col-"]) > .col-lg-9 { grid-column: span 9; }
body.ldg-skin .pos-tab .pos-tab-content .row > .col-lg-10, body.ldg-skin .pos-tab .pos-tab-content .row > :not([class*="col-"]) > .col-lg-10 { grid-column: span 10; }
body.ldg-skin .pos-tab .pos-tab-content .row > .col-lg-11, body.ldg-skin .pos-tab .pos-tab-content .row > :not([class*="col-"]) > .col-lg-11 { grid-column: span 11; }
body.ldg-skin .pos-tab .pos-tab-content .row > .col-lg-12, body.ldg-skin .pos-tab .pos-tab-content .row > :not([class*="col-"]) > .col-lg-12 { grid-column: span 12; }
body.ldg-skin .pos-tab .pos-tab-content .row > .clearfix, body.ldg-skin .pos-tab .pos-tab-content .row > br { display: none !important; }
body.ldg-skin .pos-tab .pos-tab-content .form-group { margin-bottom: 18px; }
body.ldg-skin .pos-tab .pos-tab-content h4, body.ldg-skin .pos-tab .pos-tab-content .box-title, body.ldg-skin .pos-tab .pos-tab-content legend {
    grid-column: 1 / -1; margin: 10px 0 16px !important; padding: 0 0 8px !important; border-bottom: 1px solid var(--ldg-line) !important;
    font-family: var(--ldg-mono); font-size: 11px !important; font-weight: 600 !important; letter-spacing: .12em; text-transform: uppercase; color: var(--ldg-ink-2) !important;
}
body.ldg-skin .pos-tab .pos-tab-content .row > hr, body.ldg-skin .pos-tab .pos-tab-content hr { grid-column: 1 / -1; margin: 4px 0 18px; border-color: var(--ldg-line); }
/* checkbox fields: input height, label next to the box, info icon inline */
/* fields sit on the row's bottom line (inputs level even when a label wraps); tables / text stay at the top */
body.ldg-skin .pos-tab .pos-tab-content .row > *:has(> .form-group) { align-self: end; }
body.ldg-skin .pos-tab .pos-tab-content .form-group:has(> .checkbox) { display: flex; align-items: center; min-height: 40px; margin-bottom: 8px; }
body.ldg-skin .pos-tab .pos-tab-content .checkbox { display: flex; align-items: center; flex-wrap: nowrap; gap: 6px; margin: 0 !important; }
body.ldg-skin .pos-tab .pos-tab-content .checkbox > label { flex: 0 1 auto; }
body.ldg-skin .pos-tab .pos-tab-content .checkbox > br { display: none; }
body.ldg-skin .pos-tab .pos-tab-content .checkbox > label { display: inline-flex !important; align-items: center; gap: 8px; padding: 0 !important; line-height: 1.35; }
body.ldg-skin .pos-tab .pos-tab-content .form-group:has(> .checkbox) > .hover-q, body.ldg-skin .pos-tab .pos-tab-content .form-group:has(> .checkbox) > i { margin-inline-start: 6px; }
body.ldg-skin .pos-tab .pos-tab-content .help-block { margin-top: 6px; font-size: 12.5px; color: var(--ldg-muted); }
@media (max-width: 767px) { body.ldg-skin .pos-tab .pos-tab-content .row > [class*="col-"] { grid-column: 1 / -1 !important; } }
@media (max-width: 991px) {
    body.ldg-skin .pos-tab-container > .ldg-panel__body, body.ldg-skin .pos-tab-container > .box-body { flex-direction: column; }
    body.ldg-skin .pos-tab-container .pos-tab-menu { position: sticky; top: 48px; z-index: 5; width: 100% !important; min-width: 0; max-width: none; flex: none; }
    body.ldg-skin .pos-tab-menu .list-group { display: flex; overflow-x: auto; gap: 2px; }
    body.ldg-skin .pos-tab-menu .list-group-item { flex: 0 0 auto; white-space: nowrap; margin: 0 !important; }
    body.ldg-skin .pos-tab-menu .list-group-item.active::before { inset-inline-start: 10px; inset-inline-end: 10px; top: auto; bottom: 2px; width: auto; height: 3px; }
    body.ldg-skin .pos-tab-container .pos-tab { width: 100% !important; flex: none !important; padding: 18px 16px 4px !important; }
}
/* settings save buttons (core uses the red "error" style for Update / Save) */
body.ldg-skin section.content .ldg-savebar .tw-dw-btn-error, body.ldg-skin section.content form .tw-dw-btn-error[type="submit"] {
    background: var(--ldg-teal-800) !important; border-color: var(--ldg-teal-800) !important; color: #fff !important;
}
/* tabs on settings pages (Invoice schemes / layouts …) at the theme's size */
body.ldg-skin .nav-tabs-custom > .nav-tabs > li > a { font-size: 14px !important; font-weight: 600 !important; }
/* a card inside a tab: title and its tools on one row */
body.ldg-skin .tab-content .box > .box-header { display: flex; align-items: center; justify-content: space-between; gap: 12px; flex-wrap: wrap; padding: 4px 0 12px !important; }
body.ldg-skin .tab-content .box > .box-header::before, body.ldg-skin .tab-content .box > .box-header::after { display: none; }
body.ldg-skin .tab-content .box > .box-header > .box-tools { position: static !important; }
/* plain Bootstrap tabs (not .nav-tabs-custom), e.g. Invoice settings: underline tabs like the rest of the theme */
body.ldg-skin section.content :not(.nav-tabs-custom) > .nav.nav-tabs { display: flex; flex-wrap: wrap; gap: 4px; border-bottom: 1px solid var(--ldg-line) !important; margin: 0 0 18px; }
body.ldg-skin section.content :not(.nav-tabs-custom) > .nav.nav-tabs::before, body.ldg-skin section.content :not(.nav-tabs-custom) > .nav.nav-tabs::after { display: none; }
body.ldg-skin section.content :not(.nav-tabs-custom) > .nav.nav-tabs > li { float: none; margin-bottom: -1px; }
body.ldg-skin section.content :not(.nav-tabs-custom) > .nav.nav-tabs > li > a {
    margin: 0; padding: 10px 14px !important; border: 0 !important; border-bottom: 2px solid transparent !important; border-radius: 0 !important; background: none !important;
    font-family: var(--ldg-sans); font-size: 14px !important; font-weight: 600; color: var(--ldg-ink-2) !important;
}
body.ldg-skin section.content :not(.nav-tabs-custom) > .nav.nav-tabs > li > a:hover { color: var(--ldg-ink) !important; }
body.ldg-skin section.content :not(.nav-tabs-custom) > .nav.nav-tabs > li.active > a { color: var(--ldg-tx-900) !important; border-bottom-color: var(--ldg-teal-700) !important; }
/* a heading with a floated action button: one row */
body.ldg-skin section.content .tab-content h4:has(> .pull-right), body.ldg-skin section.content .tab-content h4:has(> button) {
    display: flex; align-items: center; justify-content: space-between; gap: 12px; border-bottom: 0 !important; padding-bottom: 0;
}
body.ldg-skin section.content .tab-content h4 > .pull-right { float: none !important; margin: 0 !important; }
/* the sticky section menu sticks to the page, not to its own card */
body.ldg-skin .pos-tab-container, body.ldg-skin .pos-tab-container > .ldg-panel__body, body.ldg-skin .pos-tab-container > .box-body,
body.ldg-skin .col-xs-12:has(> .pos-tab-container), body.ldg-skin .row:has(> .col-xs-12 > .pos-tab-container) { overflow: visible !important; }

/* settings: small select inside an input addon (SMS "send to" type), redundant per-file Upload buttons (form save uploads) */
body.ldg-skin .pos-tab .input-group-addon select { background: transparent !important; color: var(--ldg-ink) !important; border: 0 !important; font-size: 12.5px; padding: 0 4px; height: auto; }
body.ldg-skin .pos-tab .fileinput-upload, body.ldg-skin .pos-tab .fileinput-upload-button { display: none !important; }
/* grey wells / inner boxes inside a settings section (reward points …): no second frame */
body.ldg-skin .pos-tab .pos-tab-content .well, body.ldg-skin .pos-tab .pos-tab-content .box, body.ldg-skin .pos-tab .pos-tab-content .ldg-panel {
    background: none !important; border: 0 !important; box-shadow: none !important; padding: 0 !important; margin: 0 0 6px !important;
}

/* POS suggestions: "In stock only" */
body.ldg-skin .ldg-instock-toggle { display: inline-flex !important; align-items: center; gap: 8px; margin: 2px 4px 8px; font-size: 12.5px !important; font-weight: 500 !important; color: var(--ldg-ink-2) !important; cursor: pointer; text-transform: none !important; letter-spacing: 0 !important; font-family: var(--ldg-sans) !important; }

/* busy buttons (theme.js): spinner over the label, size kept; other buttons of the form / modal locked */
body.ldg-skin .ldg-loading { position: relative !important; color: transparent !important; pointer-events: none !important; }
body.ldg-skin .ldg-loading > * { visibility: hidden; }
body.ldg-skin .ldg-loading::after {
    content: ""; position: absolute; top: 50%; left: 50%; width: 16px; height: 16px; margin: -8px 0 0 -8px; border-radius: 50%;
    border: 2px solid currentColor; border-color: rgba(255, 255, 255, .85) rgba(255, 255, 255, .85) rgba(255, 255, 255, .85) transparent;
    animation: ldg-spin .7s linear infinite; visibility: visible;
}
body.ldg-skin .ldg-loading:is(.tw-dw-btn-outline, .btn-default, .ldg-btn--ghost, [class*="outline"])::after { border-color: var(--ldg-teal-700) var(--ldg-teal-700) var(--ldg-teal-700) transparent; }
body.ldg-skin .ldg-locked-busy { opacity: .5 !important; pointer-events: none !important; cursor: not-allowed !important; }
@keyframes ldg-spin { to { transform: rotate(360deg); } }

/* POS: drag handle between cart and products (theme.js); width in --ldg-pos-products-w, saved per browser */
body.ldg-skin .ldg-pos { position: relative; }
body.ldg-skin .ldg-pos__resize {
    position: absolute; top: 0; width: 12px; z-index: 30; cursor: col-resize; touch-action: none;
}
body.ldg-skin .ldg-pos__resize::after {
    content: ""; position: absolute; top: 0; bottom: 0; inset-inline-start: 5px; width: 2px; background: transparent; transition: background .15s;
}
body.ldg-skin .ldg-pos__resize:hover::after, body.ldg-skin .ldg-pos__resize:focus-visible::after, body.ldg-skin.ldg-resizing .ldg-pos__resize::after { background: var(--ldg-teal-700); }
body.ldg-skin .ldg-pos__resize:focus-visible { outline: none; }
body.ldg-skin.ldg-resizing, body.ldg-skin.ldg-resizing * { cursor: col-resize !important; user-select: none !important; }
@media (max-width: 1023px) { body.ldg-skin .ldg-pos__resize { display: none; } }
/* POS product grid: tiles per row follow the pane width (resizable) */
body.ldg-skin .ldg-pos__products #product_list_items,
body.ldg-skin .ldg-pos__products #product_list_body:not(:has(> #product_list_items)) {
    display: grid !important; grid-template-columns: repeat(auto-fill, minmax(118px, 1fr)); gap: 6px; align-content: start;
}
body.ldg-skin .ldg-pos__products #product_list_items > [class*="col-"],
body.ldg-skin .ldg-pos__products #product_list_body:not(:has(> #product_list_items)) > [class*="col-"] { width: auto !important; float: none !important; padding: 0 !important; margin: 0 !important; }
body.ldg-skin .ldg-pos__products #product_list_items > .col-md-12,
body.ldg-skin .ldg-pos__products #product_list_body > .col-md-12 { grid-column: 1 / -1; }
body.ldg-skin .ldg-pos__products #product_list_body::before, body.ldg-skin .ldg-pos__products #product_list_body::after,
body.ldg-skin .ldg-pos__products #product_list_items::before, body.ldg-skin .ldg-pos__products #product_list_items::after { display: none !important; }
body.ldg-skin .ldg-pos__products .product_box { margin: 0 !important; height: 100%; }

/* ---------- POS product layouts: Grid / Pages / Grouped ---------- */
body.ldg-skin .ldg-pos-tools { display: flex; align-items: center; justify-content: space-between; gap: 10px; margin: 2px 4px 8px; }
body.ldg-skin .ldg-pos-tools .ldg-instock-toggle { margin: 0; }
body.ldg-skin .ldg-pos-layout { display: inline-flex; padding: 2px; gap: 2px; background: var(--ldg-field); border: 1px solid var(--ldg-line); border-radius: var(--ldg-radius); }
body.ldg-skin .ldg-pos-layout button { display: inline-flex; align-items: center; justify-content: center; width: 30px; height: 26px; padding: 0; border: 0; border-radius: 4px; background: transparent; color: var(--ldg-muted); cursor: pointer; }
body.ldg-skin .ldg-pos-layout button svg { width: 16px; height: 16px; }
body.ldg-skin .ldg-pos-layout button:hover { color: var(--ldg-ink); }
body.ldg-skin .ldg-pos-layout button[aria-pressed="true"] { background: var(--ldg-surface); color: var(--ldg-tx-800); box-shadow: 0 1px 2px rgba(0, 0, 0, .08); }
body.ldg-skin .ldg-pos__products #product_list_body.ldg-layout-alt { display: block !important; }
body.ldg-skin .ldg-pos-items { display: grid; grid-template-columns: repeat(auto-fill, minmax(118px, 1fr)); gap: 6px; align-content: start; }
body.ldg-skin .ldg-pos-items > [class*="col-"] { width: auto !important; float: none !important; padding: 0 !important; margin: 0 !important; }
body.ldg-skin .ldg-pos-items > .ldg-pos-empty { grid-column: 1 / -1; }
body.ldg-skin .ldg-pos-empty { margin: 14px 4px; color: var(--ldg-muted); font-size: 13px; text-align: center; }
body.ldg-skin .ldg-pos-loading { display: grid; gap: 8px; padding: 12px 4px; }
/* Pages */
body.ldg-skin .ldg-pos-crumbs { display: flex; align-items: center; flex-wrap: wrap; gap: 4px; margin: 0 2px 10px; font-size: 13px; }
body.ldg-skin .ldg-pos-crumbs button { border: 0; background: none; padding: 4px 6px; border-radius: var(--ldg-radius); color: var(--ldg-tx-800); font-weight: 600; cursor: pointer; }
body.ldg-skin .ldg-pos-crumbs button:hover { background: var(--ldg-teal-50); }
body.ldg-skin .ldg-pos-crumbs button:last-of-type { color: var(--ldg-ink); cursor: default; background: none; }
body.ldg-skin .ldg-pos-crumbs span { color: var(--ldg-muted); }
body.ldg-skin .ldg-cat-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(140px, 1fr)); gap: 8px; }
body.ldg-skin .ldg-cat-tile {
    display: flex; flex-direction: column; justify-content: space-between; gap: 10px; min-height: 84px; padding: 12px; text-align: start;
    background: var(--ldg-surface); border: 1px solid var(--ldg-line); border-radius: var(--ldg-radius-lg); cursor: pointer; transition: border-color .15s, box-shadow .15s;
}
body.ldg-skin .ldg-cat-tile:hover { border-color: var(--ldg-teal-700); box-shadow: 0 4px 12px rgba(10, 69, 65, .1); }
body.ldg-skin .ldg-cat-tile__name { font-size: 14px; font-weight: 600; color: var(--ldg-ink); line-height: 1.3; }
body.ldg-skin .ldg-cat-tile__count { align-self: flex-start; font-family: var(--ldg-mono); font-size: 11px; color: var(--ldg-tx-800); background: var(--ldg-teal-50); padding: 2px 7px; border-radius: 999px; }
body.ldg-skin .ldg-cat-tile--all { background: var(--ldg-teal-800); border-color: var(--ldg-teal-800); }
body.ldg-skin .ldg-cat-tile--all .ldg-cat-tile__name { color: #fff; }
body.ldg-skin .ldg-cat-tile--all .ldg-cat-tile__count { background: rgba(255, 255, 255, .16); color: #fff; }
body.ldg-skin .ldg-cat-tile--muted { background: var(--ldg-field); }
/* Grouped */
body.ldg-skin .ldg-grp-cat { margin: 0 0 14px; }
body.ldg-skin .ldg-grp-cat__h {
    position: sticky; top: 0; z-index: 3; margin: 0 0 8px !important; padding: 8px 4px !important; background: var(--ldg-surface);
    border-bottom: 2px solid var(--ldg-teal-700); font-size: 14px !important; font-weight: 700 !important; color: var(--ldg-ink) !important;
}
body.ldg-skin .ldg-grp-cat__h small, body.ldg-skin .ldg-grp__h small { font-family: var(--ldg-mono); font-size: 11px; color: var(--ldg-muted); font-weight: 500; }
body.ldg-skin .ldg-grp { margin: 0 0 12px; }
body.ldg-skin .ldg-grp__h { margin: 4px 4px 6px !important; font-size: 12.5px !important; font-weight: 600 !important; color: var(--ldg-ink-2) !important; text-transform: none !important; letter-spacing: 0 !important; border: 0 !important; padding: 0 !important; }
body.ldg-skin .ldg-grp .ldg-pos-items:empty { min-height: 60px; background: var(--ldg-field); border-radius: var(--ldg-radius); }
body.ldg-skin .ldg-grp__more { display: block; width: 100%; margin: 6px 0 0; padding: 7px; border: 1px dashed var(--ldg-line-2); border-radius: var(--ldg-radius); background: none; color: var(--ldg-tx-800); font-weight: 600; font-size: 12.5px; cursor: pointer; }
body.ldg-skin .ldg-grp__more:hover { background: var(--ldg-teal-50); }
body.ldg-skin .ldg-grp__more[hidden] { display: none; }

/* POS suspended sales (JSON) */
body.ldg-skin .ldg-susp .modal-title small { font-family: var(--ldg-mono); font-size: 12px; color: var(--ldg-muted); margin-inline-start: 6px; }
body.ldg-skin .ldg-susp__grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(240px, 1fr)); gap: 12px; }
body.ldg-skin .ldg-susp__card { display: flex; flex-direction: column; gap: 8px; padding: 14px; background: var(--ldg-surface); border: 1px solid var(--ldg-line); border-radius: var(--ldg-radius-lg); }
body.ldg-skin .ldg-susp__card header { display: flex; justify-content: space-between; align-items: baseline; gap: 8px; }
body.ldg-skin .ldg-susp__card header strong { font-family: var(--ldg-mono); font-size: 14px; color: var(--ldg-ink); }
body.ldg-skin .ldg-susp__card header time { font-size: 12px; color: var(--ldg-muted); }
body.ldg-skin .ldg-susp__who { margin: 0; font-weight: 600; color: var(--ldg-ink); }
body.ldg-skin .ldg-susp__note { margin: 0; font-size: 12.5px; color: var(--ldg-ink-2); background: var(--ldg-warn-bg); padding: 6px 8px; border-radius: var(--ldg-radius); }
body.ldg-skin .ldg-susp__card dl { margin: 0; display: grid; gap: 4px; }
body.ldg-skin .ldg-susp__card dl > div { display: flex; justify-content: space-between; gap: 8px; font-size: 13px; }
body.ldg-skin .ldg-susp__card dt { font-weight: 500; color: var(--ldg-muted); }
body.ldg-skin .ldg-susp__card dd { margin: 0; color: var(--ldg-ink); }
body.ldg-skin .ldg-susp__total { font-weight: 700; color: var(--ldg-tx-900) !important; }
body.ldg-skin .ldg-susp__card footer { display: flex; flex-wrap: wrap; gap: 6px; margin-top: auto; padding-top: 8px; border-top: 1px solid var(--ldg-line); }
body.ldg-skin .ldg-susp__btn { flex: 1 1 auto; text-align: center; padding: 7px 10px; border-radius: var(--ldg-radius); border: 1px solid var(--ldg-line-2); color: var(--ldg-ink) !important; font-size: 12.5px; font-weight: 600; text-decoration: none !important; }
body.ldg-skin .ldg-susp__btn--primary { background: var(--ldg-teal-800); border-color: var(--ldg-teal-800); color: #fff !important; }
body.ldg-skin .ldg-susp__btn--danger { color: var(--ldg-bad) !important; border-color: var(--ldg-bad); }
body.ldg-skin .ldg-pos__products #product_list_items.ldg-layout-alt,
body.ldg-skin .ldg-pos__products #product_list_body.ldg-layout-alt { display: block !important; }
body.ldg-skin .ldg-susp__who { display: flex; align-items: center; gap: 6px; }
body.ldg-skin .ldg-susp__card dd, body.ldg-skin .ldg-susp__card dt { border: 0 !important; padding: 0 !important; }
/* Pages / Grouped: categories are the navigation — core's Category drawer button is hidden (Brands / Featured stay) */
body.ldg-skin .pos-sidebar-root.ldg-pos--nocat #product_category_div { display: none !important; }

/* Grouped: collapsible category / sub-category sections */
body.ldg-skin .ldg-grp-cat__h, body.ldg-skin .ldg-grp__h {
    display: flex !important; align-items: center; gap: 6px; width: 100%; text-align: start; cursor: pointer; font-family: var(--ldg-sans);
}
body.ldg-skin button.ldg-grp-cat__h { border: 0; border-bottom: 2px solid var(--ldg-teal-700); background: var(--ldg-surface); }
body.ldg-skin button.ldg-grp__h { border: 0; background: none; }
body.ldg-skin .ldg-grp-cat__h:hover, body.ldg-skin .ldg-grp__h:hover { color: var(--ldg-tx-800) !important; }
body.ldg-skin .ldg-grp__chev { width: 15px; height: 15px; flex: 0 0 auto; color: var(--ldg-muted); transition: transform .15s; }
body.ldg-skin [data-ldg-fold][aria-expanded="false"] .ldg-grp__chev { transform: rotate(-90deg); }
html[dir="rtl"] body.ldg-skin [data-ldg-fold][aria-expanded="false"] .ldg-grp__chev { transform: rotate(90deg); }
body.ldg-skin [data-ldg-fold][aria-expanded="false"] + .ldg-grp-cat__body,
body.ldg-skin [data-ldg-fold][aria-expanded="false"] + .ldg-grp__body { display: none; }
body.ldg-skin .ldg-grp-cat__h[aria-expanded="false"] { border-bottom-color: var(--ldg-line); }
/* POS product tools (In stock only + layout switch) stay on top while the products scroll;
   Grouped headings and the Pages breadcrumb stick right under them (--ldg-tools-h, measured in theme.js) */
body.ldg-skin .ldg-pos-tools { position: sticky; top: 0; z-index: 6; margin: 0 !important; padding: 6px 4px 8px; background: var(--ldg-surface); }
body.ldg-skin .ldg-grp-cat__h { top: var(--ldg-tools-h, 40px) !important; }
body.ldg-skin .ldg-pos-crumbs { position: sticky; top: var(--ldg-tools-h, 40px); z-index: 5; margin: 0 0 10px !important; padding: 4px 2px; background: var(--ldg-surface); }
/* the themed POS scrolls a parent of #product_list_body; the list itself must not be a scroll box, or sticky headings attach to it */
body.ldg-skin .ldg-pos__products #product_list_body { overflow: visible !important; max-height: none !important; }

/* Grouped: collapse all / expand all (next to the layout switch) */
body.ldg-skin .ldg-pos-tools { gap: 6px; }
body.ldg-skin .ldg-pos-tools .ldg-instock-toggle { margin-inline-end: auto !important; }
body.ldg-skin .ldg-pos-foldall { display: inline-flex; padding: 2px; gap: 2px; background: var(--ldg-field); border: 1px solid var(--ldg-line); border-radius: var(--ldg-radius); }
body.ldg-skin .ldg-pos-foldall button { display: inline-flex; align-items: center; justify-content: center; width: 28px; height: 26px; padding: 0; border: 0; border-radius: 4px; background: transparent; color: var(--ldg-muted); cursor: pointer; }
body.ldg-skin .ldg-pos-foldall button:hover { background: var(--ldg-surface); color: var(--ldg-tx-800); }
body.ldg-skin .ldg-pos-foldall svg { width: 16px; height: 16px; }

/* Manage modules: update notice card (theme.js) */
body.ldg-skin .ldg-update {
    display: flex; align-items: center; gap: 12px; margin: 8px 0 2px; padding: 10px 12px;
    background: var(--ldg-warn-bg); border: 1px solid #efd9a3; border-radius: var(--ldg-radius-lg);
}
body.ldg-skin .ldg-update__icon { display: inline-flex; align-items: center; justify-content: center; flex: 0 0 34px; width: 34px; height: 34px; border-radius: 50%; background: #fff; color: var(--ldg-warn); }
body.ldg-skin .ldg-update__icon svg { width: 18px; height: 18px; }
body.ldg-skin .ldg-update__text { display: flex; flex-direction: column; gap: 2px; min-width: 0; flex: 1 1 auto; }
body.ldg-skin .ldg-update__text strong { font-size: 13px; color: var(--ldg-ink); }
body.ldg-skin .ldg-update__ver { font-size: 12.5px; color: var(--ldg-ink-2); }
body.ldg-skin .ldg-update__ver code { padding: 1px 6px; font-size: 11.5px; background: #fff; border: 1px solid var(--ldg-line); border-radius: 4px; color: var(--ldg-ink-2); }
body.ldg-skin .ldg-update__ver code.is-new { border-color: var(--ldg-teal-700); color: var(--ldg-tx-900); font-weight: 600; }
html[dir="rtl"] body.ldg-skin .ldg-update__ver span[aria-hidden] { display: inline-block; transform: scaleX(-1); }
body.ldg-skin .ldg-update__btn {
    flex: 0 0 auto; padding: 8px 16px; border-radius: var(--ldg-radius); background: var(--ldg-teal-800); color: #fff !important;
    font-weight: 600; font-size: 13px; text-decoration: none !important;
}
body.ldg-skin .ldg-update__btn:hover { background: var(--ldg-teal-900); }

/* Cards: an action cell with plain buttons (Edit / View / Delete …, no dropdown menu) is the card's footer row —
   pinned top-right it covered the title and fields. A single "Actions" dropdown keeps the top-right corner. */
body.ldg-skin .ldg-cards-mode table.dataTable > tbody > tr > td.ldg-c-action:not(:has(.dropdown-toggle)) {
    position: static !important; grid-column: 1 / -1; order: 90; margin-top: auto;
    flex-direction: row !important; flex-wrap: wrap; align-items: center; justify-content: flex-end; gap: 6px;
    padding-top: 10px !important; border-top: 1px solid var(--ldg-line);
}
body.ldg-skin .ldg-cards-mode table.dataTable > tbody > tr > td.ldg-c-action:not(:has(.dropdown-toggle)) > * { margin: 0 !important; }
body.ldg-skin .ldg-cards-mode table.dataTable > tbody > tr:has(> td.ldg-c-action:not(:has(.dropdown-toggle))) > td.ldg-c-title { padding-inline-end: 0 !important; }
/* Cards: fields stay inside their column — long labels ("Unit purchase price") and values wrap instead of running into the next field */
body.ldg-skin .ldg-cards-mode table.dataTable > tbody > tr > td { min-width: 0; }
body.ldg-skin .ldg-cards-mode table.dataTable > tbody > tr > td.ldg-c-field::before,
body.ldg-skin .ldg-cards-mode table.dataTable > tbody > tr > td.ldg-c-chip::before { white-space: normal; overflow-wrap: anywhere; }
body.ldg-skin .ldg-cards-mode table.dataTable > tbody > tr > td.ldg-c-field { overflow-wrap: anywhere; }
/* Cards: the title keeps room for the top-right Actions button only when it shares that line; with an image on top
   (products) the title is on its own line — no reserved space, and the box never wider than the card */
body.ldg-skin .ldg-cards-mode table.dataTable > tbody > tr > td.ldg-c-title { box-sizing: border-box; max-width: 100%; overflow-wrap: anywhere; }
body.ldg-skin .ldg-cards-mode table.dataTable > tbody > tr:has(> td.ldg-c-image) > td.ldg-c-title { padding-inline-end: 0 !important; }
/* POS resize handle: a visible grip in the middle of the divider, so it reads as draggable */
body.ldg-skin .ldg-pos__grip {
    position: absolute; top: 50%; inset-inline-start: 50%; width: 12px; height: 40px; transform: translate(-50%, -50%);
    border-radius: 6px; background: var(--ldg-surface); border: 1px solid var(--ldg-line-2); box-shadow: 0 1px 3px rgba(0, 0, 0, .08);
    background-image: radial-gradient(circle, var(--ldg-muted) 1.2px, transparent 1.6px);
    background-size: 4px 6px; background-position: center; background-repeat: repeat-y;
    background-clip: content-box; padding: 9px 3px; transition: border-color .15s, background-color .15s;
}
html[dir="rtl"] body.ldg-skin .ldg-pos__grip { transform: translate(50%, -50%); }
body.ldg-skin .ldg-pos__resize:hover .ldg-pos__grip, body.ldg-skin .ldg-pos__resize:focus-visible .ldg-pos__grip, body.ldg-skin.ldg-resizing .ldg-pos__grip {
    border-color: var(--ldg-teal-700); background-image: radial-gradient(circle, var(--ldg-teal-700) 1.2px, transparent 1.6px);
}
/* Cards: business location tags on a row of their own (full width, tags wrap) */
body.ldg-skin .ldg-cards-mode table.dataTable > tbody > tr > td:has(.ldg-locs) { grid-column: 1 / -1 !important; }
body.ldg-skin .ldg-cards-mode table.dataTable > tbody > tr > td .ldg-locs { display: flex; flex-wrap: wrap; gap: 4px; max-width: 100%; }

/* DataTables row groups (e.g. TpsTransfer Prepare / Receive): group heading rows in the theme */
body.ldg-skin table.dataTable tr.dtrg-group > td, body.ldg-skin table.dataTable tr.dtrg-group > th {
    background: var(--ldg-teal-50) !important; color: var(--ldg-tx-900) !important; font-weight: 600 !important;
    border-top: 1px solid var(--ldg-line) !important; border-inline-start: 3px solid var(--ldg-teal-700) !important; padding-block: 8px !important;
}
body.ldg-skin table.dataTable tr.dtrg-group.dtrg-level-1 > td { background: var(--ldg-field) !important; border-inline-start-color: var(--ldg-line-2) !important; }
/* popups (transfer / sale / purchase details …): key-value totals and note wells like on pages */
body.ldg-skin .modal .table:not(.dataTable) > tbody > tr > th {
    background: transparent !important; color: var(--ldg-ink-2); font-family: var(--ldg-mono); font-size: 10.5px; font-weight: 500;
    letter-spacing: .1em; text-transform: uppercase; vertical-align: middle;
}
html[dir="rtl"] body.ldg-skin .modal .table:not(.dataTable) > tbody > tr > th { letter-spacing: normal; }
body.ldg-skin .modal .well { background: var(--ldg-field) !important; border: 1px solid var(--ldg-line) !important; box-shadow: none !important; border-radius: var(--ldg-radius); color: var(--ldg-ink-2); }

/* ---------------------------------------------------------------------------------------------------------------
 * Dashboard (.ldg-home): totals tiles, sales chart card, "needs attention" tabs
 * ------------------------------------------------------------------------------------------------------------- */
.ldg-home { display: flex; flex-direction: column; gap: 18px; }
.ldg-home > .ldg-pagehead { margin-bottom: 0; }

/* Sales chart */
.ldg-dchart { overflow: visible; }
.ldg-dchart__head {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    padding: 12px 16px;
    border-bottom: 1px solid var(--ldg-line);
}
.ldg-dchart__loc.form-control { width: auto; min-width: 180px; max-width: 100%; height: 34px; }
.ldg-dchart__sum {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 0;
    border-bottom: 1px solid var(--ldg-line);
}
.ldg-dchart__sum > div { display: flex; flex-direction: column; gap: 4px; min-width: 0; padding: 12px 16px; }
.ldg-dchart__sum > div + div { border-inline-start: 1px solid var(--ldg-line); }
.ldg-dchart__sum strong { font-size: 18px; font-weight: 600; font-variant-numeric: tabular-nums; color: var(--ldg-ink); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.ldg-dchart__sum strong .ldg-skel { width: 60%; }
.ldg-dchart__sum small { font-size: 12px; color: var(--ldg-muted); }
@media (max-width: 560px) {
    .ldg-dchart__sum { grid-template-columns: minmax(0, 1fr); }
    .ldg-dchart__sum > div + div { border-inline-start: 0; border-top: 1px solid var(--ldg-line); }
}
.ldg-dchart__plot { position: relative; min-height: 300px; padding: 4px 8px 8px; }
.ldg-dchart__skel { display: block; height: 276px; margin: 8px; width: auto; }
.ldg-dchart__empty {
    position: absolute;
    inset: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    margin: 0;
    color: var(--ldg-muted);
    font-size: 13.5px;
    pointer-events: none;
}

/* Needs attention: tabs + one list at a time */
.ldg-work__head { border-bottom: 1px solid var(--ldg-line); background: var(--ldg-surface); }
.ldg-work__tabs {
    display: flex;
    gap: 2px;
    padding: 0 8px;
    overflow-x: auto;
    scrollbar-width: thin;
}
.ldg-work__tab {
    position: relative;
    display: inline-flex;
    align-items: center;
    gap: 8px;
    flex: none;
    padding: 13px 12px 12px;
    background: none;
    border: 0;
    border-bottom: 2px solid transparent;
    color: var(--ldg-muted);
    font-size: 13px;
    font-weight: 600;
    white-space: nowrap;
    cursor: pointer;
}
.ldg-work__tab i { font-size: 12px; }
.ldg-work__tab:hover { color: var(--ldg-ink); }
.ldg-work__tab:focus-visible { outline: 2px solid var(--ldg-teal-700); outline-offset: -2px; border-radius: 4px; }
.ldg-work__tab.is-active { color: var(--ldg-tx-800); border-bottom-color: var(--ldg-teal-800); }
.ldg-work__count {
    min-width: 20px;
    padding: 1px 7px;
    border-radius: 10px;
    background: var(--ldg-bad-bg);
    color: var(--ldg-bad);
    font-size: 11.5px;
    font-weight: 600;
    line-height: 16px;
    text-align: center;
    font-variant-numeric: tabular-nums;
}
.ldg-work__count.is-zero { background: var(--ldg-field); color: var(--ldg-muted); }
.ldg-work__pane { padding: 4px 0 8px; }
.ldg-work__pane[hidden] { display: none !important; }
.ldg-work__pane > .dataTables_wrapper { padding: 0 16px; }
.ldg-work__tools {
    display: flex;
    flex-wrap: wrap;
    align-items: flex-end;
    justify-content: space-between;
    gap: 10px 16px;
    padding: 10px 16px 6px;
}
.ldg-work__tools .ldg-field { min-width: 220px; margin-inline-start: auto; }
.ldg-work__help { flex: 1 1 320px; margin: 0; font-size: 12.5px; line-height: 1.5; color: var(--ldg-muted); }
@media (max-width: 560px) { .ldg-work__tools .ldg-field { min-width: 0; width: 100%; } }
/* wide lists scroll sideways inside the pane (tables with their own scroller keep it) */
.ldg-work__pane > .dataTables_wrapper > table.dataTable,
.ldg-work__pane > .dataTables_wrapper { max-width: 100%; }
.ldg-work__pane > .dataTables_wrapper { overflow-x: auto; }
.ldg-work__pane > .dataTables_wrapper .dt-buttons,
.ldg-work__pane > .dataTables_wrapper .dataTables_length,
.ldg-work__pane > .dataTables_wrapper .dataTables_filter,
.ldg-work__pane > .dataTables_wrapper .dataTables_info,
.ldg-work__pane > .dataTables_wrapper .dataTables_paginate { position: sticky; inset-inline-start: 0; }
/* tab count while it is being worked out */
.ldg-work__count.is-busy {
    width: 26px;
    height: 16px;
    padding: 0;
    background: linear-gradient(90deg, var(--ldg-field) 0%, color-mix(in srgb, var(--ldg-line) 70%, var(--ldg-field)) 40%, var(--ldg-field) 80%);
    background-size: 300% 100%;
    animation: ldg-skel 1.3s ease-in-out infinite;
}
/* dashboard for users without dashboard data: link to the start page */
.ldg-home__start {
    display: flex;
    align-items: center;
    gap: 12px;
    max-width: 420px;
    padding: 14px 16px;
    background: var(--ldg-surface);
    border: 1px solid var(--ldg-line);
    border-radius: var(--ldg-radius-lg);
    color: var(--ldg-ink) !important;
    font-weight: 600;
    text-decoration: none !important;
}
.ldg-home__start:hover { border-color: var(--ldg-teal-700); }
.ldg-home__start-icon { display: inline-flex; align-items: center; justify-content: center; width: 30px; height: 30px; border-radius: 6px; background: var(--ldg-teal-50); color: var(--ldg-tx-700); font-size: 13px; }
.ldg-home__chev { margin-inline-start: auto; color: var(--ldg-muted); font-size: 12px; }
[dir="rtl"] .ldg-home__chev { transform: scaleX(-1); }
/* Dashboard totals: quick periods + 4 cards (Sales · Net · Purchases · Expenses) */
.ldg-sum { display: flex; flex-direction: column; gap: 12px; }
.ldg-sum__periods { display: flex; flex-wrap: wrap; gap: 6px; }
.ldg-sum__periods:empty { display: none; }
.ldg-sum__period {
    padding: 6px 12px;
    background: var(--ldg-surface);
    border: 1px solid var(--ldg-line);
    border-radius: 999px;
    color: var(--ldg-ink-2);
    font-size: 12.5px;
    font-weight: 600;
    line-height: 1.2;
    cursor: pointer;
}
.ldg-sum__period:hover { border-color: var(--ldg-teal-700); color: var(--ldg-ink); }
.ldg-sum__period:focus-visible { outline: 2px solid var(--ldg-teal-700); outline-offset: 2px; }
.ldg-sum__period.is-active { background: var(--ldg-teal-800); border-color: var(--ldg-teal-800); color: #fff; }

.ldg-sum__cards { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 12px; }
@media (max-width: 1279px) { .ldg-sum__cards { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 560px) { .ldg-sum__cards { grid-template-columns: minmax(0, 1fr); } }
.ldg-sum.is-empty .ldg-sum__cards { display: none; }

.ldg-card {
    --c: var(--ldg-teal-700);
    --c-bg: var(--ldg-teal-50);
    position: relative;
    display: flex;
    flex-direction: column;
    gap: 8px;
    min-width: 0;
    padding: 14px 16px 14px;
    background: var(--ldg-surface);
    border: 1px solid var(--ldg-line);
    border-radius: var(--ldg-radius-lg);
    color: var(--ldg-ink) !important;
    text-decoration: none !important;
    transition: border-color .15s, box-shadow .15s;
}
a.ldg-card:hover { border-color: var(--c); box-shadow: 0 2px 10px rgba(10, 69, 65, .08); }
a.ldg-card:focus-visible { outline: 2px solid var(--ldg-teal-700); outline-offset: 2px; }
.ldg-card--net { --c: var(--ldg-good); --c-bg: var(--ldg-good-bg); }
.ldg-card--purchases { --c: #8a5a00; --c-bg: var(--ldg-warn-bg); }
.ldg-card--expenses { --c: var(--ldg-bad); --c-bg: var(--ldg-bad-bg); }

.ldg-card__head { display: flex; align-items: center; gap: 8px; min-width: 0; }
.ldg-card__icon {
    display: inline-flex; align-items: center; justify-content: center; flex: none;
    width: 28px; height: 28px; border-radius: 6px;
    background: var(--c-bg); color: var(--c); font-size: 12.5px;
}
.ldg-card__label { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: 13px; font-weight: 600; color: var(--ldg-ink-2); }
.ldg-card__head > i.fa-info-circle { color: var(--ldg-muted) !important; font-size: 12px; }
.ldg-card__delta {
    margin-inline-start: auto; flex: none;
    padding: 2px 8px; border-radius: 10px;
    background: var(--ldg-field); color: var(--ldg-muted);
    font-size: 11.5px; font-weight: 600; font-variant-numeric: tabular-nums; white-space: nowrap;
}
.ldg-card__delta[hidden] { display: none; }
.ldg-card__delta--up { background: var(--ldg-good-bg); color: var(--ldg-good); }
.ldg-card__delta--down { background: var(--ldg-bad-bg); color: var(--ldg-bad); }

.ldg-card__value {
    min-height: 30px;
    font-size: 24px; font-weight: 600; line-height: 1.2;
    font-variant-numeric: tabular-nums; letter-spacing: -.01em;
    white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
}
.ldg-card__value .ldg-skel { width: 70%; height: 24px; }

.ldg-card__spark { position: relative; display: block; height: 40px; color: var(--c); }
.ldg-card__spark:empty { background: linear-gradient(var(--ldg-line), var(--ldg-line)) left 50% / 100% 1px no-repeat; opacity: .7; }
.ldg-spark { display: block; width: 100%; height: 100%; overflow: visible; }
.ldg-spark__area { fill: currentColor; opacity: .1; }
.ldg-spark__line { fill: none; stroke: currentColor; stroke-width: 1.75; stroke-linejoin: round; stroke-linecap: round; }
.ldg-spark__dot { position: absolute; width: 7px; height: 7px; margin: -3.5px 0 0 -3.5px; border-radius: 50%; background: currentColor; box-shadow: 0 0 0 2px var(--ldg-surface); }
[dir="rtl"] .ldg-card__spark { transform: scaleX(-1); }

.ldg-card__split { display: flex; flex-direction: column; gap: 5px; }
.ldg-card__bar { position: relative; display: block; height: 6px; border-radius: 3px; background: var(--ldg-warn-bg); overflow: hidden; }
.ldg-card__bar i { position: absolute; inset-block: 0; inset-inline-start: 0; width: 0; border-radius: 3px; background: var(--c); transition: width .4s ease; }
.ldg-card__split.is-none .ldg-card__bar { background: var(--ldg-field); }
.ldg-card__splittext { display: flex; justify-content: space-between; gap: 8px; font-size: 12px; color: var(--ldg-muted); }
.ldg-card__splittext b, .ldg-card__foot b { color: var(--ldg-ink-2); font-weight: 600; font-variant-numeric: tabular-nums; }
.ldg-card__splittext [data-part="due"] b { color: var(--ldg-warn); }
.ldg-card__foot { margin-top: auto; padding-top: 8px; border-top: 1px dashed var(--ldg-line); font-size: 12px; color: var(--ldg-muted); }
.ldg-card__foot.is-zero b { color: var(--ldg-muted); font-weight: 500; }

/* loading: figures being worked out (first load, new range / location) */
.ldg-sum.is-loading .ldg-card__value,
.ldg-sum.is-loading .ldg-card__splittext,
.ldg-sum.is-loading .ldg-card__foot[data-part] { color: transparent !important; border-radius: 4px; background: linear-gradient(90deg, var(--ldg-field) 0%, color-mix(in srgb, var(--ldg-line) 70%, var(--ldg-field)) 40%, var(--ldg-field) 80%); background-size: 300% 100%; animation: ldg-skel 1.3s ease-in-out infinite; }
.ldg-sum.is-loading .ldg-card__value .ldg-skel { visibility: hidden; }
.ldg-sum.is-loading .ldg-card__splittext b { color: transparent; }
.ldg-sum.is-loading .ldg-card__delta { visibility: hidden; }

/* nothing in the period */
.ldg-sum__empty {
    display: flex; align-items: center; gap: 14px;
    padding: 16px 18px;
    background: var(--ldg-surface);
    border: 1px dashed var(--ldg-line);
    border-radius: var(--ldg-radius-lg);
}
.ldg-sum__empty[hidden] { display: none; }
.ldg-sum__empty-icon { display: inline-flex; align-items: center; justify-content: center; flex: none; width: 36px; height: 36px; border-radius: 50%; background: var(--ldg-field); color: var(--ldg-muted); }
.ldg-sum__empty > div { display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.ldg-sum__empty-title { font-weight: 600; color: var(--ldg-ink); }
.ldg-sum__empty-text { font-size: 13px; color: var(--ldg-muted); }
.ldg-sum__empty-btn {
    margin-inline-start: auto; flex: none;
    padding: 7px 14px;
    background: var(--ldg-teal-800); border: 0; border-radius: var(--ldg-radius);
    color: #fff; font-size: 13px; font-weight: 600; cursor: pointer;
}
.ldg-sum__empty-btn:hover { background: var(--ldg-teal-900); }
@media (max-width: 560px) { .ldg-sum__empty { flex-wrap: wrap; } .ldg-sum__empty-btn { margin-inline-start: 50px; } }
/* period buttons + "Updated … · Refresh" */
.ldg-sum__bar { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 8px 16px; }
.ldg-sum__fresh { display: inline-flex; align-items: center; gap: 10px; margin-inline-start: auto; font-size: 12.5px; color: var(--ldg-muted); }
.ldg-sum__fresh[hidden] { display: none; }
.ldg-sum__age { cursor: help; }
.ldg-sum__refresh {
    display: inline-flex; align-items: center; gap: 6px;
    padding: 5px 10px;
    background: none; border: 1px solid var(--ldg-line); border-radius: var(--ldg-radius);
    color: var(--ldg-ink-2); font-size: 12.5px; font-weight: 600; cursor: pointer;
}
.ldg-sum__refresh:hover { border-color: var(--ldg-teal-700); color: var(--ldg-ink); }
.ldg-sum__refresh i { font-size: 11px; }
.ldg-sum__refresh.is-busy { opacity: .7; pointer-events: none; }
.ldg-sum__refresh.is-busy i { animation: fa-spin 1s linear infinite; }
/* open tab waiting for the panel to come into view: skeleton rows instead of "No data" */
.ldg-work__pane.is-waiting td.dataTables_empty {
    height: 160px;
    color: transparent !important;
    background: repeating-linear-gradient(to bottom, transparent 0 14px, var(--ldg-field) 14px 26px, transparent 26px 40px) !important;
    background-clip: content-box !important;
    padding: 12px 16px !important;
    animation: ldg-skel 1.3s ease-in-out infinite;
}
.ldg-work__pane.is-waiting .dataTables_info,
.ldg-work__pane.is-waiting .dataTables_paginate { visibility: hidden; }
/* Dashboard · own lists (rows built from /themes/home/<list>) */
.ldg-raw td { vertical-align: middle !important; }
.ldg-raw__who { display: flex; flex-direction: column; gap: 1px; min-width: 0; }
.ldg-raw__who b, .ldg-raw__strong { font-weight: 600; color: var(--ldg-ink); }
.ldg-raw__who b + span { color: var(--ldg-ink-2); font-size: 12.5px; }
.ldg-raw__who small, .ldg-raw__lot { display: block; color: var(--ldg-muted); font-size: 11.5px; font-variant-numeric: tabular-nums; direction: ltr; unicode-bidi: isolate; }
td.ldg-raw__num, .ldg-raw__link { font-family: var(--ldg-mono); font-weight: 500; white-space: nowrap; }
.ldg-raw__date { display: inline-flex; flex-direction: column; white-space: nowrap; font-variant-numeric: tabular-nums; }
.ldg-raw__date small { color: var(--ldg-muted); font-size: 11.5px; }
.ldg-raw__when { display: inline-flex; flex-wrap: wrap; align-items: center; gap: 4px 8px; white-space: nowrap; }
.ldg-raw__badge { padding: 1px 8px; border-radius: 10px; background: var(--ldg-field); color: var(--ldg-muted); font-size: 11.5px; font-weight: 600; }
.ldg-raw__badge.is-late { background: var(--ldg-bad-bg); color: var(--ldg-bad); }
.ldg-raw__badge.is-today { background: var(--ldg-warn-bg); color: var(--ldg-warn); }
td.ldg-raw__amount { white-space: nowrap; font-variant-numeric: tabular-nums; }
td.ldg-raw__amount b { display: block; font-weight: 600; color: var(--ldg-ink); }
td.ldg-raw__amount small { display: block; color: var(--ldg-muted); font-size: 11.5px; }
.ldg-raw__qty { font-weight: 600; color: var(--ldg-ink); }
.ldg-raw__qty small { font-weight: 500; color: var(--ldg-muted); }
.ldg-raw__qty.is-out { color: var(--ldg-bad); }
.ldg-raw__bar { display: block; width: 120px; max-width: 100%; height: 4px; margin-top: 4px; border-radius: 2px; background: var(--ldg-warn-bg); overflow: hidden; }
.ldg-raw__bar i { display: block; height: 100%; background: var(--ldg-good); }
.ldg-raw__actions { display: inline-flex; flex-wrap: nowrap; gap: 6px; }
.ldg-raw__btn {
    display: inline-flex; align-items: center; gap: 6px; white-space: nowrap;
    padding: 5px 10px; border: 1px solid var(--ldg-line); border-radius: var(--ldg-radius);
    color: var(--ldg-tx-800) !important; font-size: 12.5px; font-weight: 600; text-decoration: none !important;
}
.ldg-raw__btn:hover { border-color: var(--ldg-teal-700); background: var(--ldg-teal-50); }
.ldg-raw__stlink { text-decoration: none !important; }
/* status pills (order / shipping / payment statuses, by key) */
.ldg-st { display: inline-block; padding: 2px 9px; border-radius: 10px; background: var(--ldg-field); color: var(--ldg-ink-2); font-size: 11.5px; font-weight: 600; white-space: nowrap; }
.ldg-st--ordered, .ldg-st--packed { background: var(--ldg-teal-50); color: var(--ldg-tx-800); }
.ldg-st--partial, .ldg-st--shipped { background: var(--ldg-warn-bg); color: var(--ldg-warn); }
.ldg-st--completed, .ldg-st--delivered, .ldg-st--paid { background: var(--ldg-good-bg); color: var(--ldg-good); }
.ldg-st--due, .ldg-st--cancelled { background: var(--ldg-bad-bg); color: var(--ldg-bad); }

/* TpsTransfer add / prepare / receive: the centred button row under the table (module markup
   ".form-group.text-center" with .btn-login buttons) becomes the theme's sticky save bar —
   Delete selected on the start side; Add shipping, Save, then the finishing action (solid) on the end side. */
body.ldg-skin .form-group.text-center:has(> .btn-login) {
    position: sticky;
    bottom: 0;
    z-index: 20;
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: flex-end;
    gap: 8px;
    margin: 18px 0 0 !important;
    padding: 12px 16px;
    text-align: end;
    background: color-mix(in srgb, var(--ldg-surface) 92%, transparent);
    backdrop-filter: blur(6px);
    border: 1px solid var(--ldg-line);
    border-radius: var(--ldg-radius-lg);
    box-shadow: 0 -8px 24px rgba(7, 47, 44, .06);
}
body.ldg-skin .form-group.text-center:has(> .btn-login) > .btn {
    order: 1;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    height: 40px;
    min-width: 120px;
    margin: 0 !important;
    padding: 0 20px !important;
    border-radius: var(--ldg-radius) !important;
    font-size: 14px !important;
    font-weight: 600;
    box-shadow: none !important;
}
/* Delete selected: apart, on the start side, quiet until hovered */
body.ldg-skin .form-group.text-center:has(> .btn-login) > .btn-danger {
    order: -1;
    margin-inline-end: auto !important;
    background: transparent !important;
    border: 1px solid color-mix(in srgb, var(--ldg-bad) 35%, transparent) !important;
    color: var(--ldg-bad) !important;
}
body.ldg-skin .form-group.text-center:has(> .btn-login) > .btn-danger:hover { background: var(--ldg-bad-bg) !important; }
/* Add shipping and a plain "Save" next to a finishing action: outline */
body.ldg-skin .form-group.text-center:has(> .btn-login) > .add-shipping,
body.ldg-skin .form-group.text-center:has(> .btn-login) > .updatePrepareData[data-status="prepare"],
body.ldg-skin .form-group.text-center:has(> .btn-login) > #update-receive-products,
body.ldg-skin .form-group.text-center:has(> #saveAndCompleteAddProductData) > #saveAddProductData {
    background: var(--ldg-surface) !important;
    border: 1px solid var(--ldg-line) !important;
    color: var(--ldg-tx-800) !important;
}
body.ldg-skin .form-group.text-center:has(> .btn-login) > .add-shipping { order: 0; cursor: pointer; }
body.ldg-skin .form-group.text-center:has(> .btn-login) > .add-shipping:hover,
body.ldg-skin .form-group.text-center:has(> .btn-login) > .updatePrepareData[data-status="prepare"]:hover,
body.ldg-skin .form-group.text-center:has(> .btn-login) > #update-receive-products:hover,
body.ldg-skin .form-group.text-center:has(> #saveAndCompleteAddProductData) > #saveAddProductData:hover { border-color: var(--ldg-teal-700) !important; background: var(--ldg-teal-50) !important; }
/* add page: "Save & set as complete" is the finishing action (theme primary, not core's green) */
body.ldg-skin .form-group.text-center > #saveAndCompleteAddProductData { background: var(--ldg-teal-800) !important; border-color: var(--ldg-teal-800) !important; color: #fff !important; }
body.ldg-skin .form-group.text-center > #saveAndCompleteAddProductData:hover { background: var(--ldg-teal-900) !important; }
body.ldg-skin:has(.form-group.text-center > .btn-login) .scrolltop { bottom: 130px; }
@media (max-width: 640px) {
    body.ldg-skin .form-group.text-center:has(> .btn-login) > .btn { flex: 1 1 auto; }
    body.ldg-skin .form-group.text-center:has(> .btn-login) > .btn-danger { flex-basis: 100%; margin-inline-end: 0 !important; }
}
/* sticky needs ancestors that do not clip (panels clip by default) */
body.ldg-skin .ldg-panel:has(.form-group.text-center > .btn-login),
body.ldg-skin .box:has(.form-group.text-center > .btn-login),
body.ldg-skin .ldg-panel__body:has(.form-group.text-center > .btn-login),
body.ldg-skin .box-body:has(.form-group.text-center > .btn-login) { overflow: visible !important; }

/* ---------- Top bar (option B): page title · Out | In · Tools · notifications · POS · user (date and time) ---------- */
.ldg-pagetitle { display: flex; flex-direction: column; justify-content: center; min-width: 0; line-height: 1.2; }
.ldg-pagetitle__where {
    display: flex; align-items: center; gap: 6px; min-width: 0;
    font-family: var(--ldg-mono); font-size: 11px; color: rgba(255, 255, 255, .66);
    white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
}
.ldg-pagetitle__where a { color: inherit !important; text-decoration: none !important; }
.ldg-pagetitle__where a:hover { color: #fff !important; }
.ldg-pagetitle__sep { opacity: .7; }
.ldg-pagetitle__title {
    font-size: 16px; font-weight: 600; color: #fff;
    white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
}
@media (max-width: 640px) { .ldg-pagetitle__where { display: none; } .ldg-pagetitle__title { font-size: 15px; } }

/* icon button with a label (Tools) */
.ldg-iconbtn.ldg-iconbtn--label { width: auto; gap: 6px; padding: 0 8px 0 9px !important; font-size: 12.5px; font-weight: 600; }
.ldg-iconbtn--label svg { width: 17px; height: 17px; }
.ldg-iconbtn--label .ldg-iconbtn__chev { width: 13px !important; height: 13px !important; opacity: .75; }
@media (max-width: 1199px) { .ldg-iconbtn--label .ldg-iconbtn__label, .ldg-iconbtn--label .ldg-iconbtn__chev { display: none; } .ldg-iconbtn.ldg-iconbtn--label { width: 32px; padding: 0 !important; } }
.ldg-menu__sep { border: 0; border-top: 1px solid var(--ldg-line); margin: 6px 4px; }

/* calculator popover anchor: core's popover lives on #btnCalculator; it sits under the Tools button, invisible */
.ldg-tools { position: relative; display: inline-flex; }
.ldg-tools__calc {
    position: absolute; inset: 0; z-index: -1;
    width: 100%; height: 100%; padding: 0; margin: 0;
    border: 0; background: none; opacity: 0; pointer-events: none;
}

/* TpsTransfer Out | In: one joined chip (module links moved in by the layout) */
.ldg-chipgroup {
    display: inline-flex; align-items: stretch; height: 32px;
    border: 1px solid rgba(255, 255, 255, .18); border-radius: var(--ldg-radius); overflow: hidden;
}
.ldg-chipgroup[hidden] { display: none !important; }
.ldg-topbar .ldg-chipgroup > a.btn {
    float: none !important; display: inline-flex !important; align-items: center; gap: 6px;
    height: auto !important; margin: 0 !important; padding: 0 9px !important;
    border: 0 !important; border-radius: 0 !important; background: transparent !important; background-color: transparent !important; background-image: none !important; box-shadow: none !important;
    color: #fff !important; font-size: 12.5px; font-weight: 600; line-height: 1; text-decoration: none !important; white-space: nowrap;
}
.ldg-topbar .ldg-chipgroup > a.btn + a.btn { border-inline-start: 1px solid rgba(255, 255, 255, .16) !important; }
.ldg-topbar .ldg-chipgroup > a.btn:hover, .ldg-topbar .ldg-chipgroup > a.btn:focus-visible { background: rgba(255, 255, 255, .1) !important; background-color: rgba(255, 255, 255, .1) !important; outline: none; }
.ldg-topbar .ldg-chipgroup > a.btn::before { font-family: "Font Awesome 5 Free"; font-weight: 900; font-size: 12px; opacity: .85; }
.ldg-topbar .ldg-chipgroup > a.btn[href*="prepare-stock"]::before { content: "\f2f5"; }
.ldg-topbar .ldg-chipgroup > a.btn[href*="receive-stock"]::before { content: "\f2f6"; }
[dir="rtl"] .ldg-topbar .ldg-chipgroup > a.btn::before { display: inline-block; transform: scaleX(-1); }
.ldg-topbar .ldg-chipgroup > a.btn strong { font-weight: 600; }
.ldg-topbar .ldg-chipgroup > a.btn .badge {
    min-width: 20px; padding: 3px 6px; border-radius: 10px; top: 0;
    background: var(--ldg-amber) !important; color: var(--ldg-teal-950) !important;
    font-size: 11.5px; font-weight: 700; line-height: 1; font-variant-numeric: tabular-nums;
}

/* user chip: name with date · time under it */
.ldg-user { height: 36px; padding: 0 8px 0 4px; border-radius: 18px; background: rgba(255, 255, 255, .06); }
.ldg-user__avatar { width: 28px; height: 28px; border-radius: 50%; }
.ldg-user__who { display: flex; flex-direction: column; justify-content: center; line-height: 1.15; min-width: 0; }
.ldg-user__name { font-size: 12.5px; font-weight: 600; }
.ldg-user__when { font-family: var(--ldg-mono); font-size: 10.5px; color: rgba(255, 255, 255, .7); white-space: nowrap; font-variant-numeric: tabular-nums; }
.ldg-user__chev { width: 13px; height: 13px; opacity: .75; flex: none; }
/* top-bar icon for the page you are on (Dashboard on /home) */
.ldg-topbar .ldg-iconbtn.is-current { background: rgba(255, 255, 255, .16) !important; border-color: rgba(255, 255, 255, .4) !important; }

/* Calculator popover (from Tools): wider, bigger keys, close button beside History */
.popover:has(#calculator) { width: 340px; max-width: calc(100vw - 24px); border-radius: var(--ldg-radius-lg); border-color: var(--ldg-line); box-shadow: 0 16px 40px rgba(7, 47, 44, .2); }
.popover:has(#calculator) .popover-content { padding: 0; }
.popover #calculator { padding: 12px !important; border-radius: var(--ldg-radius-lg); }
.popover #calculator > div:first-child { margin: -12px -12px 12px !important; padding: 8px 10px 8px 14px !important; }
.popover #calculator #calc-display { height: 52px; font-size: 26px !important; font-variant-numeric: tabular-nums; }
.popover #calculator #calc-grid { gap: 6px !important; }
.popover #calculator .calc-btn { height: 46px !important; min-height: 46px; font-size: 16px !important; border-radius: 6px !important; }
.ldg-calc-actions { display: inline-flex; align-items: center; gap: 2px; }
.ldg-calc-close {
    display: inline-flex; align-items: center; justify-content: center;
    width: 28px; height: 28px; padding: 0; border: 0; border-radius: 6px;
    background: transparent; color: var(--ldg-muted); font-size: 20px; line-height: 1; cursor: pointer;
}
.ldg-calc-close:hover { background: var(--ldg-bad-bg); color: var(--ldg-bad); }
.ldg-calc-close:focus-visible { outline: 2px solid var(--ldg-teal-700); outline-offset: 1px; }

/* Header language switcher */
.ldg-lang .ldg-lang__code { font-family: var(--ldg-mono); font-size: 11.5px; font-weight: 600; letter-spacing: .04em; }
.ldg-lang .ldg-menu__panel { min-width: 200px; }
.ldg-lang__form { margin: 0; }
.ldg-lang button.ldg-menu__item { width: 100%; border: 0; background: none; text-align: start; cursor: pointer; font: inherit; }
.ldg-lang__badge { display: inline-flex; align-items: center; justify-content: center; min-width: 28px; height: 20px; padding: 0 5px; border-radius: 4px; background: var(--ldg-field); color: var(--ldg-ink-2); font: 600 10.5px var(--ldg-mono); }
.ldg-lang__name { flex: 1 1 auto; }
.ldg-lang__check { width: 16px !important; height: 16px !important; color: var(--ldg-tx-700) !important; }
.ldg-lang button.is-current { color: var(--ldg-tx-900) !important; font-weight: 600; }
.ldg-lang button.is-current .ldg-lang__badge { background: var(--ldg-teal-800); color: #fff; }
@media (max-width: 1199px) { .ldg-lang .ldg-iconbtn.ldg-iconbtn--label { width: auto; padding: 0 7px !important; } .ldg-lang .ldg-lang__code { display: inline; } }

/* Long text cells in list tables (theme.js "Long text cells"): two lines, click to expand */
body.ldg-skin table.dataTable td .ldg-clamp {
    display: -webkit-box;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 2;
    line-clamp: 2;
    overflow: hidden;
    min-width: 180px;
    max-width: 360px;
    white-space: normal;
    overflow-wrap: anywhere;
    cursor: pointer;
}
body.ldg-skin table.dataTable td .ldg-clamp.is-open {
    display: block;
    -webkit-line-clamp: unset;
    max-height: 16em;
    overflow-y: auto;
}
body.ldg-skin table.dataTable td .ldg-clamp:hover { color: var(--ldg-ink); text-decoration: underline dotted var(--ldg-line-2); }

/* Search highlight in list tables (theme.js "Search highlight") */
body.ldg-skin table.dataTable mark.ldg-hl { background: var(--ldg-warn-bg); color: inherit; padding: 0 1px; border-radius: 2px; box-shadow: inset 0 -1px 0 var(--ldg-amber); }
body.ldg-skin table.dataTable td .ldg-clamp { position: relative; }

/* ProductCompat block (product view / quick view / product page header, product form status bar): its status label and
   actions (Edit compatibility · Enrich now · Mark as checked) as one tidy row — pill status, matching buttons. CSS only. */
body.ldg-skin .pc-panel .box-header { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 8px 12px; }
body.ldg-skin .pc-panel .box-header > .box-title { margin: 0; }
/* Bootstrap's clearfix pseudo-elements would be flex items at both ends (title and actions pushed to the middle) */
body.ldg-skin .pc-panel .box-header::before,
body.ldg-skin .pc-panel .box-header::after { display: none; }
body.ldg-skin .pc-panel .pc-panel__tools,
body.ldg-skin .pc-form-block .pc-f-status {
    position: static; float: none; display: flex; flex-wrap: wrap; align-items: center; gap: 6px; margin: 0;
}
body.ldg-skin .pc-form-block .pc-f-status { margin-bottom: 12px; padding-bottom: 10px; border-bottom: 1px solid var(--ldg-line); }
body.ldg-skin .pc-panel .pc-panel__tools form { display: inline-flex !important; margin: 0; }
/* status: pill with a dot */
body.ldg-skin .pc-panel .pc-panel__tools > .label,
body.ldg-skin .pc-form-block .pc-f-status > .label {
    display: inline-flex; align-items: center; gap: 6px; height: 26px; padding: 0 10px; border-radius: 999px;
    font: 600 11px var(--ldg-mono); letter-spacing: .06em; text-transform: uppercase; line-height: 1; border: 1px solid transparent;
}
body.ldg-skin .pc-panel .pc-panel__tools > .label::before,
body.ldg-skin .pc-form-block .pc-f-status > .label::before { content: ""; width: 7px; height: 7px; border-radius: 50%; background: currentColor; }
body.ldg-skin .pc-panel .pc-panel__tools > .label > .fa,
body.ldg-skin .pc-form-block .pc-f-status > .label > .fa { display: none; }
body.ldg-skin .pc-panel .pc-panel__tools > .label-warning,
body.ldg-skin .pc-form-block .pc-f-status > .label-warning { background: var(--ldg-warn-bg); color: var(--ldg-warn); border-color: color-mix(in srgb, var(--ldg-warn) 25%, transparent); }
body.ldg-skin .pc-panel .pc-panel__tools > .label-success,
body.ldg-skin .pc-form-block .pc-f-status > .label-success { background: var(--ldg-good-bg); color: var(--ldg-good); border-color: color-mix(in srgb, var(--ldg-good) 25%, transparent); }
/* actions: same height, radius and weight; neutral outline, theme colour for "Enrich", solid green for "Mark as checked" */
body.ldg-skin .pc-panel .pc-panel__tools .btn,
body.ldg-skin .pc-form-block .pc-f-status .btn {
    display: inline-flex; align-items: center; gap: 6px; height: 28px; padding: 0 10px; border-radius: var(--ldg-radius);
    font: 600 12.5px var(--ldg-sans); line-height: 1; white-space: nowrap; box-shadow: none;
    background: var(--ldg-surface); color: var(--ldg-ink-2); border: 1px solid var(--ldg-line-2);
}
body.ldg-skin .pc-panel .pc-panel__tools .btn:hover,
body.ldg-skin .pc-form-block .pc-f-status .btn:hover { background: var(--ldg-field); color: var(--ldg-ink); }
body.ldg-skin .pc-panel .pc-panel__tools .btn-info,
body.ldg-skin .pc-form-block .pc-f-status .btn-info { color: var(--ldg-tx-800); border-color: color-mix(in srgb, var(--ldg-teal-800) 45%, transparent); background: var(--ldg-teal-50); }
body.ldg-skin .pc-panel .pc-panel__tools .btn-info:hover,
body.ldg-skin .pc-form-block .pc-f-status .btn-info:hover { background: var(--ldg-teal-100); color: var(--ldg-tx-900); }
body.ldg-skin .pc-panel .pc-panel__tools .btn-success,
body.ldg-skin .pc-form-block .pc-f-status .btn-success { background: var(--ldg-good); border-color: var(--ldg-good); color: #fff; }
body.ldg-skin .pc-panel .pc-panel__tools .btn-success:hover,
body.ldg-skin .pc-form-block .pc-f-status .btn-success:hover { background: color-mix(in srgb, var(--ldg-good) 85%, #000); color: #fff; }
body.ldg-skin .pc-panel .pc-panel__tools .btn .fa,
body.ldg-skin .pc-panel .pc-panel__tools .btn .fas,
body.ldg-skin .pc-form-block .pc-f-status .btn .fa,
body.ldg-skin .pc-form-block .pc-f-status .btn .fas { font-size: 12px; opacity: .85; }
body.ldg-skin .pc-panel .pc-panel__tools .btn:focus-visible,
body.ldg-skin .pc-form-block .pc-f-status .btn:focus-visible { outline: 2px solid var(--ldg-teal-800); outline-offset: 2px; }
@media (max-width: 640px) {
    body.ldg-skin .pc-panel .pc-panel__tools { width: 100%; }
}

/* Native form controls (number arrows, date / time pickers, selects, scrollbars) follow the page's color-scheme.
   Core's Tailwind / DaisyUI CSS sets "color-scheme: dark" on :root when the computer is in dark mode, so on these light
   pages the browser drew them dark (black number arrows). The Ledger theme is light: keep the light scheme. */
:root:has(body.ldg), body.ldg { color-scheme: light; }
body.ldg { accent-color: var(--ldg-teal-800); } /* native checkboxes, radios, range, progress */
body.ldg input[type="number"]::-webkit-inner-spin-button,
body.ldg input[type="number"]::-webkit-outer-spin-button { opacity: .45; cursor: pointer; }
body.ldg input[type="number"]:hover::-webkit-inner-spin-button,
body.ldg input[type="number"]:focus::-webkit-inner-spin-button { opacity: .9; }
body.ldg input[type="date"]::-webkit-calendar-picker-indicator,
body.ldg input[type="time"]::-webkit-calendar-picker-indicator,
body.ldg input[type="datetime-local"]::-webkit-calendar-picker-indicator { opacity: .55; cursor: pointer; }
body.ldg input[type="date"]:hover::-webkit-calendar-picker-indicator,
body.ldg input[type="time"]:hover::-webkit-calendar-picker-indicator,
body.ldg input[type="datetime-local"]:hover::-webkit-calendar-picker-indicator { opacity: .9; }

/* ProductCompat pages (/product-compat/*, in skin_paths): the module's Bootstrap markup in the theme's look.
   Scoped with body[data-ldg-page] (first URL segment, set by the theme layout). CSS only — no module change. */
body.ldg-skin[data-ldg-page="product-compat"] .nav-pills { display: flex; flex-wrap: wrap; gap: 4px; border-bottom: 1px solid var(--ldg-line); padding-bottom: 8px; }
body.ldg-skin[data-ldg-page="product-compat"] .nav-pills > li { float: none; margin: 0; }
body.ldg-skin[data-ldg-page="product-compat"] .nav-pills > li > a {
    display: inline-flex; align-items: center; gap: 7px; padding: 6px 12px; border-radius: var(--ldg-radius);
    color: var(--ldg-ink-2); font-weight: 600; font-size: 13px; background: none; border: 1px solid transparent;
}
body.ldg-skin[data-ldg-page="product-compat"] .nav-pills > li > a:hover { background: var(--ldg-field); color: var(--ldg-ink); }
body.ldg-skin[data-ldg-page="product-compat"] .nav-pills > li.active > a,
body.ldg-skin[data-ldg-page="product-compat"] .nav-pills > li.active > a:hover,
body.ldg-skin[data-ldg-page="product-compat"] .nav-pills > li.active > a:focus { background: var(--ldg-teal-50); border-color: var(--ldg-teal-100); color: var(--ldg-tx-800); }
body.ldg-skin[data-ldg-page="product-compat"] .nav-pills .badge {
    background: var(--ldg-field); color: var(--ldg-ink-2); font: 600 11px var(--ldg-mono); padding: 2px 7px; border-radius: 999px; border: 1px solid var(--ldg-line);
}
body.ldg-skin[data-ldg-page="product-compat"] .nav-pills > li.active .badge { background: var(--ldg-teal-800); border-color: var(--ldg-teal-800); color: #fff; }
/* Bootstrap info / warning buttons → theme colours (info: theme outline, warning: amber) */
body.ldg-skin[data-ldg-page="product-compat"] .btn-info {
    background: var(--ldg-teal-50) !important; border-color: color-mix(in srgb, var(--ldg-teal-800) 45%, transparent) !important; color: var(--ldg-tx-800) !important;
}
body.ldg-skin[data-ldg-page="product-compat"] .btn-info:hover { background: var(--ldg-teal-100) !important; color: var(--ldg-tx-900) !important; }
body.ldg-skin[data-ldg-page="product-compat"] .btn-warning {
    background: var(--ldg-warn-bg) !important; border-color: color-mix(in srgb, var(--ldg-warn) 40%, transparent) !important; color: var(--ldg-warn) !important;
}
body.ldg-skin[data-ldg-page="product-compat"] .btn-warning:hover { background: color-mix(in srgb, var(--ldg-amber) 30%, var(--ldg-warn-bg)) !important; }
body.ldg-skin[data-ldg-page="product-compat"] .btn .fa,
body.ldg-skin[data-ldg-page="product-compat"] .btn .fas { margin-inline-end: 2px; }

/* Module navigation bars (Essentials / HRM, CRM … : section.no-print > nav.navbar-default) as the theme's tab strip:
   module name on the left, links in ink, the open page underlined in the theme colour. */
body.ldg-skin section.no-print > nav.navbar-default {
    margin: 0 0 16px !important; border: 1px solid var(--ldg-line) !important; border-radius: var(--ldg-radius-lg) !important;
    background: var(--ldg-surface) !important; box-shadow: none !important; min-height: 0;
}
body.ldg-skin section.no-print > nav.navbar-default .container-fluid { display: flex; flex-wrap: wrap; align-items: stretch; padding: 0 8px; }
body.ldg-skin section.no-print > nav.navbar-default .navbar-header { float: none; display: flex; align-items: center; }
body.ldg-skin section.no-print > nav.navbar-default .navbar-brand {
    float: none; height: auto; padding: 12px 14px 12px 8px; display: inline-flex; align-items: center; gap: 8px;
    font: 600 15px var(--ldg-sans); color: var(--ldg-ink) !important; border-inline-end: 1px solid var(--ldg-line); margin-inline-end: 6px;
}
body.ldg-skin section.no-print > nav.navbar-default .navbar-brand .fa,
body.ldg-skin section.no-print > nav.navbar-default .navbar-brand .fas { color: var(--ldg-tx-800); }
body.ldg-skin section.no-print > nav.navbar-default .navbar-collapse { flex: 1; padding: 0; border: 0; box-shadow: none; }
body.ldg-skin section.no-print > nav.navbar-default .navbar-nav { float: none; display: flex; flex-wrap: wrap; margin: 0; }
body.ldg-skin section.no-print > nav.navbar-default .navbar-nav > li { float: none; }
body.ldg-skin section.no-print > nav.navbar-default .navbar-nav > li > a {
    padding: 14px 12px 12px !important; font: 500 13.5px var(--ldg-sans); color: var(--ldg-ink-2) !important;
    background: none !important; border-bottom: 2px solid transparent; line-height: 1.3;
}
body.ldg-skin section.no-print > nav.navbar-default .navbar-nav > li > a:hover { color: var(--ldg-ink) !important; border-bottom-color: var(--ldg-line-2); }
body.ldg-skin section.no-print > nav.navbar-default .navbar-nav > li.active > a,
body.ldg-skin section.no-print > nav.navbar-default .navbar-nav > li.active > a:hover,
body.ldg-skin section.no-print > nav.navbar-default .navbar-nav > li.active > a:focus { color: var(--ldg-tx-800) !important; font-weight: 600; border-bottom-color: var(--ldg-teal-800); background: none !important; }
@media (max-width: 767px) {
    body.ldg-skin section.no-print > nav.navbar-default .navbar-collapse.collapse:not(.in) { display: none !important; }
    body.ldg-skin section.no-print > nav.navbar-default .navbar-nav { flex-direction: column; width: 100%; }
    body.ldg-skin section.no-print > nav.navbar-default .navbar-header { width: 100%; justify-content: space-between; }
}

/* Settings pages whose sections each sit in their own .pos-tab box (Essentials / HRM settings): only the box holding the
   open section is shown — the others were empty white boxes squeezing it. Core's settings page (one box) is unchanged. */
body.ldg-skin .pos-tab-container .pos-tab:not(:has(> .pos-tab-content.active)):has(> .pos-tab-content) { display: none !important; }

/* Delete buttons that are a form's submit button inside a list row (e.g. Connector clients): red outline like the other
   row delete buttons (the save-bar rule "section.content form .tw-dw-btn-error[type=submit]" had made them solid teal). */
body.ldg-skin section.content table td form .tw-dw-btn.tw-dw-btn-error[type="submit"],
body.ldg-skin section.content table td form .btn.btn-danger[type="submit"] {
    background: transparent !important; color: var(--ldg-bad) !important; border: 1px solid color-mix(in srgb, var(--ldg-bad) 45%, transparent) !important;
}
body.ldg-skin section.content table td form .tw-dw-btn.tw-dw-btn-error[type="submit"]:hover,
body.ldg-skin section.content table td form .btn.btn-danger[type="submit"]:hover { background: var(--ldg-bad-bg) !important; }

/* StockIssues reports (/stock-issues/reports, in skin_paths): its filter panel holds a form, a divider and the two cron
   commands directly, so the theme's field grid made them cells (a giant Submit button, squeezed commands). Here the
   panel is a normal block: location + Submit on one row, then the commands full width. CSS only — no module change. */
body.ldg-skin[data-ldg-page="stock-issues"] .ldg-filters__body { display: block !important; }
body.ldg-skin[data-ldg-page="stock-issues"] .ldg-filters__body > br { display: none; }
body.ldg-skin[data-ldg-page="stock-issues"] .ldg-filters__body > form { display: flex; flex-wrap: wrap; align-items: flex-end; gap: 12px; }
body.ldg-skin[data-ldg-page="stock-issues"] .ldg-filters__body > form > [class*="col-"] { float: none; width: 280px; max-width: 100%; padding: 0; }
body.ldg-skin[data-ldg-page="stock-issues"] .ldg-filters__body > form .form-group { margin: 0; }
body.ldg-skin[data-ldg-page="stock-issues"] .ldg-filters__body > form > .btn { width: auto !important; height: 38px !important; min-height: 0 !important; padding: 0 20px !important; flex: none; }
body.ldg-skin[data-ldg-page="stock-issues"] .ldg-filters__body > hr { margin: 16px 0 6px; border: 0; border-top: 1px solid var(--ldg-line); }
body.ldg-skin[data-ldg-page="stock-issues"] .ldg-filters__body > strong { display: block; margin: 12px 0 6px; font-weight: 600; color: var(--ldg-ink-2); }
body.ldg-skin[data-ldg-page="stock-issues"] .ldg-filters__body > code {
    display: block; width: 100%; padding: 8px 12px; white-space: pre-wrap; word-break: break-all; font-size: 12.5px;
    background: var(--ldg-field); color: var(--ldg-ink); border: 1px solid var(--ldg-line); border-radius: var(--ldg-radius);
}

/* Activity log (/activity-log-module): the product search's clear button matches the field */
body.ldg-skin #eal_product_filter + .input-group-btn .btn { height: 38px; padding: 0 12px; background: var(--ldg-surface); border: 1px solid var(--ldg-line); border-inline-start: 0; color: var(--ldg-muted); border-radius: 0 var(--ldg-radius) var(--ldg-radius) 0; }
[dir="rtl"] body.ldg-skin #eal_product_filter + .input-group-btn .btn { border-radius: var(--ldg-radius) 0 0 var(--ldg-radius); }
body.ldg-skin #eal_product_filter + .input-group-btn .btn i { font-size: 13px; }
body.ldg-skin #eal_product_filter + .input-group-btn .btn:hover { color: var(--ldg-bad); background: var(--ldg-bad-bg); }

/* PurchaseRequisition list (/pr-module): Filter / Generate / Make purchase stay on one line, level with the fields
   (core markup: a col-md-4 with <br> + three buttons, which wrapped); the supplier response line does not break */
body.ldg-skin[data-ldg-page="pr-module"] .form-group:has(> #filter_btn) { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; padding-top: 25px; }
body.ldg-skin[data-ldg-page="pr-module"] .form-group:has(> #filter_btn) > br { display: none; }
/* fields hidden by the filter builder: the buttons move up */
body.ldg-skin[data-ldg-page="pr-module"] .form-group:has(> #filter_btn.ldg-at-corefilters-off) { padding-top: 0; margin-bottom: 12px; }
body.ldg-skin[data-ldg-page="pr-module"] .form-group:has(> #filter_btn) > .btn { margin: 0; white-space: nowrap; height: 38px; display: inline-flex; align-items: center; gap: 6px; }
@media (min-width: 992px) {
    body.ldg-skin[data-ldg-page="pr-module"] .row:has(> [class*="col-"] > .form-group > #filter_btn) { display: flex; flex-wrap: wrap; }
    body.ldg-skin[data-ldg-page="pr-module"] .row:has(> [class*="col-"] > .form-group > #filter_btn) > [class*="col-"] { width: auto; flex: 1 1 150px; min-width: 0; }
    body.ldg-skin[data-ldg-page="pr-module"] .row:has(> [class*="col-"] > .form-group > #filter_btn) > [class*="col-"]:has(#filter_btn) { flex: 0 0 auto; }
}
body.ldg-skin #pr_requests_table .supplier-row { display: flex; flex-wrap: wrap; align-items: center; gap: 4px 8px; margin-bottom: 6px !important; }
body.ldg-skin #pr_requests_table .supplier-row:last-child { margin-bottom: 0 !important; }
body.ldg-skin #pr_requests_table .supplier-row a { white-space: nowrap; }
body.ldg-skin #pr_requests_table td:first-child { white-space: nowrap; }

/* ------------------------------------------------------------------ no flash of core's layout
   html.ldg-boot (head script in partials/css, removed after 2s at the latest): the forms theme.js lays out and the
   content of pages with an attached table bar stay invisible until theme.js / advanced-tables.js mark them done
   ([data-ldg-laid] on the form, html.ldg-at-ready), then fade in. */
html.ldg-boot body.ldg-skin :is(form#add_purchase_form, form#add_sell_form, form#edit_sell_form, form#stock_transfer_form, form#stock_adjustment_form, form#add_expense_form):not([data-ldg-laid]),
html.ldg-boot.ldg-boot--tables:not(.ldg-at-ready) body.ldg-skin #scrollable-container > section.content { opacity: 0; pointer-events: none; }
body.ldg-skin :is(form#add_purchase_form, form#add_sell_form, form#edit_sell_form, form#stock_transfer_form, form#stock_adjustment_form, form#add_expense_form),
body.ldg-skin #scrollable-container > section.content { transition: opacity .16s ease-out; }
@media (prefers-reduced-motion: reduce) {
    body.ldg-skin :is(form#add_purchase_form, form#add_sell_form, form#edit_sell_form, form#stock_transfer_form, form#stock_adjustment_form, form#add_expense_form),
    body.ldg-skin #scrollable-container > section.content { transition: none; }
}
