/* Praayog ERP theme.
   The look follows ThemeSelection's free "Sneat" admin template (MIT): its colours, type sizes, menu, floating navbar and cards.
   It is rebuilt on stock Bootstrap 5; no Sneat code is copied. Light theme only. */

@font-face { font-family: 'Public Sans'; font-style: normal; font-weight: 400; font-display: swap; src: url(/vendor/public-sans/public-sans-latin-400-normal.woff2) format('woff2'); }
@font-face { font-family: 'Public Sans'; font-style: normal; font-weight: 500; font-display: swap; src: url(/vendor/public-sans/public-sans-latin-500-normal.woff2) format('woff2'); }
@font-face { font-family: 'Public Sans'; font-style: normal; font-weight: 600; font-display: swap; src: url(/vendor/public-sans/public-sans-latin-600-normal.woff2) format('woff2'); }
@font-face { font-family: 'Public Sans'; font-style: normal; font-weight: 700; font-display: swap; src: url(/vendor/public-sans/public-sans-latin-700-normal.woff2) format('woff2'); }

:root {
  --erp-primary: #696cff;
  --erp-primary-rgb: 105, 108, 255;
  --erp-primary-hover: #5f61e6;
  --erp-primary-subtle: #e7e7ff;
  --erp-secondary: #8592a3;
  --erp-success: #71dd37;
  --erp-info: #03c3ec;
  --erp-warning: #ffab00;
  --erp-danger: #ff3e1d;
  --erp-bg: #f5f5f9;
  --erp-paper: #fff;
  --erp-text: #646e78;
  --erp-heading: #384551;
  --erp-muted: #a7acb2;
  --erp-border: #e4e6e8;
  --erp-input-border: #d9dee3;
  --erp-hover: rgba(34, 48, 62, .06);
  --erp-grid: #eceef1;
  --erp-shadow: 0 .1875rem .5rem 0 rgba(34, 48, 62, .1);
  --erp-shadow-sm: 0 .125rem .375rem 0 rgba(34, 48, 62, .08);
  --erp-radius: .375rem;
  --erp-menu-width: 260px;
  --erp-navbar-height: 64px;
  --erp-gutter: 1.625rem;

  --bs-primary: var(--erp-primary);
  --bs-primary-rgb: var(--erp-primary-rgb);
  --bs-secondary-rgb: 133, 146, 163;
  --bs-success-rgb: 113, 221, 55;
  --bs-info-rgb: 3, 195, 236;
  --bs-warning-rgb: 255, 171, 0;
  --bs-danger-rgb: 255, 62, 29;
  --bs-body-bg: var(--erp-bg);
  --bs-body-color: var(--erp-text);
  --bs-body-font-family: 'Public Sans', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif;
  --bs-body-font-size: .9375rem;
  --bs-body-line-height: 1.375;
  --bs-heading-color: var(--erp-heading);
  --bs-emphasis-color: var(--erp-heading);
  --bs-secondary-color: var(--erp-muted);
  --bs-border-color: var(--erp-border);
  --bs-border-radius: var(--erp-radius);
  --bs-link-color: var(--erp-primary);
  --bs-link-color-rgb: var(--erp-primary-rgb);
  --bs-link-hover-color: var(--erp-primary-hover);
  --bs-link-hover-color-rgb: 95, 97, 230;
}

body { background: var(--erp-bg); -webkit-font-smoothing: antialiased; }
h1, h2, h3, h4, h5, h6 { font-weight: 500; color: var(--erp-heading); }
.text-muted { color: var(--erp-muted) !important; }
.text-body-secondary { color: var(--erp-text) !important; }
.text-heading { color: var(--erp-heading) !important; }
.fw-medium { font-weight: 500 !important; }
.tabular { font-variant-numeric: tabular-nums; }

/* ---------- Layout ---------- */
.layout { min-height: 100vh; }
.layout-menu {
  position: fixed; inset: 0 auto 0 0; width: var(--erp-menu-width); z-index: 1040;
  display: flex; flex-direction: column; background: var(--erp-paper);
  box-shadow: 0 .125rem .375rem 0 rgba(34, 48, 62, .08);
  transition: transform .25s ease;
}
.layout-page { margin-left: var(--erp-menu-width); min-height: 100vh; display: flex; flex-direction: column; }
.layout-overlay { display: none; }

.app-brand { height: var(--erp-navbar-height); display: flex; align-items: center; padding: 0 1.5rem 0 2rem; flex-shrink: 0; }
.app-brand-link { display: flex; align-items: center; gap: .625rem; text-decoration: none; }
.app-brand-link img { height: 24px; width: auto; }
.app-brand-text { font-size: 1.375rem; font-weight: 700; color: var(--erp-heading); letter-spacing: -.01em; white-space: nowrap; }
.menu-close { margin-left: auto; border: 0; background: transparent; color: var(--erp-heading); font-size: 1.5rem; line-height: 1; padding: .25rem; }

/* ---------- Menu ---------- */
.menu-inner { list-style: none; margin: 0; padding: .25rem 0 1.5rem; overflow-y: auto; flex: 1; }
.menu-header {
  display: flex; align-items: center; gap: .625rem; margin-top: 1rem; padding: .625rem 2rem;
  font-size: .8125rem; text-transform: uppercase; letter-spacing: .02em; color: var(--erp-muted);
}
.menu-header::before { content: ''; width: .875rem; height: 1px; background: currentColor; }
.menu-item { list-style: none; }
.menu-item + .menu-item { margin-top: .125rem; }
.menu-link {
  display: flex; align-items: center; gap: .5rem; margin: 0 1rem; padding: .4375rem .9375rem; min-height: 38px;
  border-radius: var(--erp-radius); color: var(--erp-heading); text-decoration: none; cursor: pointer;
  transition: background-color .15s ease, color .15s ease;
}
.menu-link:hover { background: var(--erp-hover); color: var(--erp-heading); }
.menu-icon { font-size: 1.375rem; flex-shrink: 0; }
.menu-label { flex: 1; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.menu-arrow { font-size: 1.125rem; transition: transform .2s ease; color: var(--erp-muted); }
.menu-item.open > .menu-link .menu-arrow { transform: rotate(90deg); }
.menu-inner > .menu-item.active > .menu-link { background: var(--erp-primary-subtle); color: var(--erp-primary); }
.menu-inner > .menu-item.active > .menu-link .menu-arrow { color: var(--erp-primary); }
.menu-sub { display: none; margin: .125rem 0 0; padding: 0; }
.menu-item.open > .menu-sub { display: block; }
.menu-sub .menu-link { position: relative; padding-left: 3.125rem; }
.menu-sub .menu-link::before {
  content: ''; position: absolute; left: 1.4rem; top: 50%; width: .375rem; height: .375rem; margin-top: -.1875rem;
  border-radius: 50%; border: 1px solid var(--erp-muted);
}
.menu-sub .menu-item.active > .menu-link { color: var(--erp-heading); font-weight: 500; }
.menu-sub .menu-item.active > .menu-link::before { background: var(--erp-primary); border-color: var(--erp-primary); box-shadow: 0 0 0 .1875rem var(--erp-primary-subtle); }
.menu-badge { font-size: .6875rem; font-weight: 600; letter-spacing: .02em; padding: .2rem .5rem; border-radius: 1rem; flex-shrink: 0; }

/* ---------- Navbar (detached card, like Sneat) ---------- */
.navbar-wrap {
  position: sticky; top: 0; z-index: 1030; padding: 1rem var(--erp-gutter) 0;
  background: linear-gradient(180deg, rgba(245, 245, 249, .95) 44%, rgba(245, 245, 249, .46) 73%, rgba(245, 245, 249, 0));
}
.layout-navbar {
  height: var(--erp-navbar-height); display: flex; align-items: center; gap: 1rem; padding: 0 1.5rem;
  background: var(--erp-paper); border-radius: var(--erp-radius); box-shadow: var(--erp-shadow-sm);
}
.menu-toggle-btn { display: none; border: 0; background: transparent; font-size: 1.5rem; color: var(--erp-heading); padding: 0; line-height: 1; }
.navbar-search { display: flex; align-items: center; gap: .625rem; flex: 1; min-width: 0; color: var(--erp-heading); }
.navbar-search i { font-size: 1.25rem; }
.navbar-search input { border: 0; outline: 0; background: transparent; width: 100%; color: var(--erp-heading); }
.navbar-search input::placeholder { color: var(--erp-muted); }
.avatar {
  width: 2.5rem; height: 2.5rem; flex-shrink: 0; border-radius: 50%; display: inline-flex; align-items: center; justify-content: center;
  font-weight: 600; font-size: .9375rem;
}
.avatar-sm { width: 2rem; height: 2rem; font-size: .8125rem; }
.avatar-rounded { border-radius: var(--erp-radius); font-size: 1.5rem; }
.user-chip { display: flex; align-items: center; gap: .625rem; border: 0; background: transparent; padding: 0; text-align: left; }
.dropdown-menu {
  --bs-dropdown-border-width: 0; --bs-dropdown-box-shadow: 0 .25rem 1.125rem 0 rgba(34, 48, 62, .14);
  --bs-dropdown-link-color: var(--erp-heading); --bs-dropdown-link-hover-bg: var(--erp-hover);
  --bs-dropdown-link-active-bg: var(--erp-primary-subtle); --bs-dropdown-link-active-color: var(--erp-primary);
  --bs-dropdown-font-size: .9375rem; --bs-dropdown-item-padding-y: .5rem; --bs-dropdown-item-padding-x: 1rem;
  box-shadow: var(--bs-dropdown-box-shadow); padding: .5rem; border-radius: var(--erp-radius);
}
.dropdown-item { border-radius: var(--erp-radius); }
.dropdown-header { color: var(--erp-muted); font-size: .75rem; text-transform: uppercase; letter-spacing: .03em; }

/* ---------- Content ---------- */
.content { flex: 1; padding: 1.5rem var(--erp-gutter); }
.content-footer { padding: 1rem var(--erp-gutter) 1.25rem; font-size: .875rem; color: var(--erp-text); }
.page-title { font-size: 1.375rem; margin-bottom: 1.5rem; }
.page-title .crumb { color: var(--erp-muted); font-weight: 400; }

/* ---------- Cards ---------- */
.card {
  --bs-card-border-width: 0; --bs-card-border-radius: var(--erp-radius); --bs-card-inner-border-radius: var(--erp-radius);
  --bs-card-spacer-y: 1.5rem; --bs-card-spacer-x: 1.5rem; --bs-card-cap-padding-y: 1.5rem; --bs-card-cap-padding-x: 1.5rem;
  --bs-card-cap-bg: transparent; --bs-card-title-color: var(--erp-heading); --bs-card-color: var(--erp-text);
  box-shadow: var(--erp-shadow);
}
.card-header { border-bottom: 0; display: flex; align-items: center; justify-content: space-between; gap: 1rem; flex-wrap: wrap; }
.card-header + .card-body, .card-header + .table-responsive { padding-top: 0; }
.card-title { font-size: 1.125rem; font-weight: 500; color: var(--erp-heading); margin: 0; }
.card-subtitle { color: var(--erp-muted); font-size: .875rem; margin-top: .25rem; }
.card-section-title { font-size: .8125rem; text-transform: uppercase; letter-spacing: .03em; color: var(--erp-muted); margin: 0 0 1rem; }
.card hr, hr { border-color: var(--erp-border); opacity: 1; }

/* Stat tiles */
.stat-label { color: var(--erp-text); margin: 1rem 0 .25rem; }
.stat-value { font-size: 1.625rem; font-weight: 600; color: var(--erp-heading); line-height: 1.2; margin: 0; }
.stat-foot { font-size: .8125rem; margin-top: .375rem; color: var(--erp-text); }

/* ---------- Buttons ---------- */
.btn { --bs-btn-font-weight: 500; --bs-btn-padding-x: 1.25rem; --bs-btn-padding-y: .4815rem; --bs-btn-font-size: .9375rem; --bs-btn-border-radius: var(--erp-radius); }
.btn-sm { --bs-btn-padding-x: .875rem; --bs-btn-padding-y: .3rem; --bs-btn-font-size: .8125rem; }
.btn-primary {
  --bs-btn-bg: var(--erp-primary); --bs-btn-border-color: var(--erp-primary);
  --bs-btn-hover-bg: var(--erp-primary-hover); --bs-btn-hover-border-color: var(--erp-primary-hover);
  --bs-btn-active-bg: var(--erp-primary-hover); --bs-btn-active-border-color: var(--erp-primary-hover);
  --bs-btn-disabled-bg: var(--erp-primary); --bs-btn-disabled-border-color: var(--erp-primary);
  --bs-btn-focus-shadow-rgb: var(--erp-primary-rgb);
  box-shadow: 0 .125rem .25rem 0 rgba(105, 108, 255, .4);
}
.btn-primary:disabled, .btn-primary.disabled { box-shadow: none; }
.btn-outline-primary {
  --bs-btn-color: var(--erp-primary); --bs-btn-border-color: var(--erp-primary);
  --bs-btn-hover-color: #fff; --bs-btn-hover-bg: var(--erp-primary); --bs-btn-hover-border-color: var(--erp-primary);
  --bs-btn-active-color: #fff; --bs-btn-active-bg: var(--erp-primary-hover); --bs-btn-active-border-color: var(--erp-primary-hover);
  --bs-btn-focus-shadow-rgb: var(--erp-primary-rgb);
}
.btn-label-primary { --bs-btn-color: var(--erp-primary); --bs-btn-bg: var(--erp-primary-subtle); --bs-btn-border-color: transparent; --bs-btn-hover-color: #fff; --bs-btn-hover-bg: var(--erp-primary); --bs-btn-hover-border-color: var(--erp-primary); --bs-btn-active-color: #fff; --bs-btn-active-bg: var(--erp-primary-hover); }
.btn-label-secondary { --bs-btn-color: #6d7a8a; --bs-btn-bg: #ebeef0; --bs-btn-border-color: transparent; --bs-btn-hover-color: #fff; --bs-btn-hover-bg: var(--erp-secondary); --bs-btn-hover-border-color: var(--erp-secondary); --bs-btn-active-color: #fff; --bs-btn-active-bg: #78869a; }
.btn-label-success { --bs-btn-color: #3f8f14; --bs-btn-bg: #e8fadf; --bs-btn-border-color: transparent; --bs-btn-hover-color: #fff; --bs-btn-hover-bg: var(--erp-success); --bs-btn-hover-border-color: var(--erp-success); --bs-btn-active-color: #fff; --bs-btn-active-bg: #66c732; }
.btn-label-info { --bs-btn-color: #00809c; --bs-btn-bg: #d7f5fc; --bs-btn-border-color: transparent; --bs-btn-hover-color: #fff; --bs-btn-hover-bg: var(--erp-info); --bs-btn-hover-border-color: var(--erp-info); --bs-btn-active-color: #fff; --bs-btn-active-bg: #03b0d4; }
.btn-label-warning { --bs-btn-color: #a86f00; --bs-btn-bg: #fff2d6; --bs-btn-border-color: transparent; --bs-btn-hover-color: #fff; --bs-btn-hover-bg: var(--erp-warning); --bs-btn-hover-border-color: var(--erp-warning); --bs-btn-active-color: #fff; --bs-btn-active-bg: #e69a00; }
.btn-label-danger { --bs-btn-color: #d42f12; --bs-btn-bg: #ffe0db; --bs-btn-border-color: transparent; --bs-btn-hover-color: #fff; --bs-btn-hover-bg: var(--erp-danger); --bs-btn-hover-border-color: var(--erp-danger); --bs-btn-active-color: #fff; --bs-btn-active-bg: #e6381a; }
/* Approve / reject: Sneat's green and red instead of Bootstrap's */
.btn-success { --bs-btn-color: #fff; --bs-btn-bg: var(--erp-success); --bs-btn-border-color: var(--erp-success); --bs-btn-hover-color: #fff; --bs-btn-hover-bg: #66c732; --bs-btn-hover-border-color: #66c732; --bs-btn-active-color: #fff; --bs-btn-active-bg: #66c732; --bs-btn-disabled-bg: var(--erp-success); --bs-btn-disabled-border-color: var(--erp-success); box-shadow: 0 .125rem .25rem 0 rgba(113, 221, 55, .4); }
.btn-danger { --bs-btn-color: #fff; --bs-btn-bg: var(--erp-danger); --bs-btn-border-color: var(--erp-danger); --bs-btn-hover-color: #fff; --bs-btn-hover-bg: #e6381a; --bs-btn-hover-border-color: #e6381a; --bs-btn-active-color: #fff; --bs-btn-active-bg: #e6381a; --bs-btn-disabled-bg: var(--erp-danger); --bs-btn-disabled-border-color: var(--erp-danger); box-shadow: 0 .125rem .25rem 0 rgba(255, 62, 29, .4); }
.btn-icon { --bs-btn-padding-x: .5rem; --bs-btn-padding-y: .375rem; display: inline-flex; align-items: center; justify-content: center; }

/* ---------- Tabs (Sneat nav-pills) ---------- */
.nav-pills { --bs-nav-pills-border-radius: var(--erp-radius); --bs-nav-pills-link-active-bg: var(--erp-primary); --bs-nav-pills-link-active-color: #fff; }
.nav-pills .nav-link { --bs-nav-link-padding-x: 1.25rem; --bs-nav-link-padding-y: .4815rem; color: var(--erp-heading); font-weight: 500; display: inline-flex; align-items: center; }
.nav-pills .nav-link:not(.active):hover { color: var(--erp-primary); background: var(--erp-primary-subtle); }
.nav-pills .nav-link.active { box-shadow: 0 .125rem .25rem 0 rgba(105, 108, 255, .4); }
.nav-pills .nav-link.active .badge { background: #fff !important; }
@media (max-width: 575.98px) {
  .nav-pills { flex-wrap: nowrap; overflow-x: auto; padding-bottom: .25rem; }
  .nav-pills .nav-link { white-space: nowrap; }
}

/* ---------- Lists ---------- */
.list-group { --bs-list-group-color: var(--erp-text); --bs-list-group-border-color: var(--erp-border); --bs-list-group-action-hover-bg: var(--erp-hover); --bs-list-group-action-hover-color: var(--erp-heading); --bs-list-group-action-color: var(--erp-text); }
.list-group-flush > .list-group-item { padding-left: 1.5rem; padding-right: 1.5rem; }

/* Label colours (Sneat's "bg-label-*"): tint background + a darker text step so labels stay readable */
.bg-label-primary { background-color: var(--erp-primary-subtle) !important; color: var(--erp-primary) !important; }
.bg-label-secondary { background-color: #ebeef0 !important; color: #6d7a8a !important; }
.bg-label-success { background-color: #e8fadf !important; color: #3f8f14 !important; }
.bg-label-info { background-color: #d7f5fc !important; color: #00809c !important; }
.bg-label-warning { background-color: #fff2d6 !important; color: #a86f00 !important; }
.bg-label-danger { background-color: #ffe0db !important; color: #d42f12 !important; }
.badge { font-weight: 500; font-size: .8125em; padding: .4235em .77em; border-radius: .25rem; }

/* ---------- Alerts ---------- */
.alert { border: 0; border-radius: var(--erp-radius); }
.alert-primary { background: var(--erp-primary-subtle); color: #4e51d6; }
.alert-warning { background: #fff2d6; color: #8a5b00; }
.alert-danger { background: #ffe0db; color: #b3260e; }
.alert-success { background: #e8fadf; color: #336f12; }
.alert-info { background: #d7f5fc; color: #006d85; }
.alert-secondary { background: #ebeef0; color: #5c6877; }
.alert .alert-icon { font-size: 1.25rem; flex-shrink: 0; }

/* ---------- Forms ---------- */
.form-label { color: var(--erp-heading); font-size: .875rem; margin-bottom: .375rem; }
.form-control, .form-select {
  border-color: var(--erp-input-border); color: var(--erp-heading); font-size: .9375rem; padding: .4815rem .875rem;
  border-radius: var(--erp-radius);
}
.form-select { padding-right: 2.25rem; }
.form-select-sm { padding-top: .3rem; padding-bottom: .3rem; font-size: .8125rem; }
.form-control::placeholder { color: var(--erp-muted); }
.form-control:focus, .form-select:focus { border-color: var(--erp-primary); box-shadow: 0 .125rem .25rem 0 rgba(105, 108, 255, .4); }
.form-text { color: var(--erp-muted); font-size: .8125rem; }
.input-group-text { border-color: var(--erp-input-border); color: var(--erp-text); background: var(--erp-paper); font-size: .875rem; }
/* Values the system fills in (openings and results): not editable, clearly different from inputs */
.form-control.is-auto, .form-control[readonly] { background: #f8f8fb; border-style: dashed; color: var(--erp-heading); }
.field-hint { display: flex; align-items: center; gap: .25rem; font-size: .75rem; color: var(--erp-muted); margin-top: .25rem; }

/* Key–value details (record pages) */
.kv dt, .kv dd { margin-bottom: .625rem; }
.kv dt { color: var(--erp-muted); font-weight: 400; }
.kv dd { color: var(--erp-heading); overflow-wrap: anywhere; }
.kv > :nth-last-child(-n + 2) { margin-bottom: 0; }
@media (max-width: 575.98px) { .kv dt { margin-bottom: .125rem; } }

/* Line tables (GRN, transfers, bills, journals, roles): rows of inputs that never squash below a usable width */
.table.lines > :not(caption) > * > * { padding: .375rem .5rem; vertical-align: middle; }
.table.lines > :not(caption) > * > :first-child { padding-left: 0; }
.table.lines > thead th { font-size: .75rem; border-bottom-width: 1px; }
.table.lines > tbody > tr > td { border-bottom: 0; }
.table.lines .form-control, .table.lines .form-select { min-width: 7rem; }
.table.lines > tbody > tr > td:first-child .form-select, .table.lines > tbody > tr > td:first-child .form-control { min-width: 13rem; }
.table.lines > tbody > tr > td:last-child { width: 1%; padding-right: 0; }
.table.lines + .btn { margin-top: .25rem; }

/* ---------- Tables ---------- */
.table {
  --bs-table-color: var(--erp-text); --bs-table-border-color: var(--erp-border); --bs-table-bg: transparent;
  --bs-table-hover-bg: rgba(34, 48, 62, .04); --bs-table-hover-color: var(--erp-text); margin-bottom: 0;
}
.table > :not(caption) > * > * { padding: .75rem 1.5rem; }
.table-sm > :not(caption) > * > * { padding: .5rem 1rem; }
.table > thead th {
  font-size: .8125rem; font-weight: 500; text-transform: uppercase; letter-spacing: .02em; color: var(--erp-heading);
  white-space: nowrap; border-bottom-color: var(--erp-border);
}
.table td.num, .table th.num { text-align: right; font-variant-numeric: tabular-nums; white-space: nowrap; }
.table .row-group td { background: #fafafc; font-size: .8125rem; text-transform: uppercase; letter-spacing: .03em; color: var(--erp-muted); padding-top: .5rem; padding-bottom: .5rem; }

/* ---------- Charts (dataviz rules: hairline grid, 24px bars, 4px rounded caps, text in ink not series colour) ---------- */
.chart { width: 100%; height: auto; display: block; overflow: visible; }
.chart .grid { stroke: var(--erp-grid); stroke-width: 1; shape-rendering: crispEdges; }
.chart .baseline { stroke: var(--erp-border); stroke-width: 1; shape-rendering: crispEdges; }
.chart .tick { fill: var(--erp-text); font-size: 12px; font-variant-numeric: tabular-nums; }
.chart .value { fill: var(--erp-heading); font-size: 12px; font-weight: 600; }
.chart .missing { fill: var(--erp-muted); font-size: 11px; }
.chart .bar { fill: var(--erp-primary); }
.chart .hit { fill: transparent; cursor: default; }
.chart .hit:hover + .bar, .chart .bar.is-hover { fill: var(--erp-primary-hover); }
.chart-tip {
  position: fixed; z-index: 2000; pointer-events: none; background: var(--erp-heading); color: #fff; font-size: .8125rem;
  padding: .375rem .625rem; border-radius: var(--erp-radius); box-shadow: var(--erp-shadow); white-space: nowrap; display: none;
}

/* ---------- Empty states ---------- */
.empty-state { text-align: center; padding: 2rem 1rem; }
.empty-state .avatar { margin-bottom: .75rem; }

/* ---------- Roles matrix ---------- */
.matrix-wrap { max-height: 70vh; overflow: auto; }
.matrix th, .matrix td { white-space: nowrap; }
.matrix thead th { position: sticky; top: 0; background: var(--erp-paper); z-index: 2; }
.matrix td:first-child, .matrix th:first-child { position: sticky; left: 0; background: var(--erp-paper); z-index: 1; min-width: 17rem; white-space: normal; }
.matrix thead th:first-child { z-index: 3; }
.matrix .lvl { display: inline-block; min-width: 2.1rem; text-align: center; }

/* ---------- Daily sheet (same layout and colours as the plant's Excel sheet) ---------- */
.sheet { --sheet-blue: #5b80b2; --sheet-yellow: #ffff00; --sheet-red: #e00000; background: #fff; color: #000; font-family: Arial, Helvetica, sans-serif; max-width: 1000px; }
.sheet table { width: 100%; border-collapse: collapse; margin-bottom: 1.75rem; }
.sheet th, .sheet td { border: 1px solid #000; padding: .45rem .5rem; text-align: center; font-size: .875rem; font-weight: 700; }
.sheet td { font-weight: 400; }
.sheet td:first-child b { white-space: nowrap; }
.sheet .s-head td { background: var(--sheet-blue); color: #fff; font-weight: 700; }
.sheet .s-head .s-company { font-size: 1.375rem; padding-top: .6rem; }
.sheet .s-head .s-sub { font-size: .9375rem; padding-bottom: .6rem; }
.sheet .s-title th { background: var(--sheet-yellow); font-size: .9375rem; }
.sheet .s-cols th { background: var(--sheet-yellow); }
.sheet .red { color: var(--sheet-red); }
.sheet td.red { font-weight: 700; }
.sheet .s-erp { background: #eef0ff; }
.sheet-note { font-size: .8125rem; color: var(--erp-text); }

/* ---------- Mobile ---------- */
@media (max-width: 1199.98px) {
  .layout-menu { transform: translateX(-100%); }
  .layout.menu-open .layout-menu { transform: none; }
  .layout.menu-open .layout-overlay { display: block; position: fixed; inset: 0; background: rgba(34, 48, 62, .5); z-index: 1035; }
  .layout-page { margin-left: 0; }
  .menu-toggle-btn { display: inline-flex; }
  .app-brand { padding: 0 .75rem 0 1.5rem; }
}
@media (max-width: 575.98px) {
  :root { --erp-gutter: 1rem; }
  .layout-navbar { padding: 0 1rem; gap: .75rem; }
  .navbar-search input { display: none; }
  .content { padding-top: 1rem; }
  .table > :not(caption) > * > * { padding: .625rem 1rem; }
  .page-title { font-size: 1.1875rem; margin-bottom: 1rem; }
}

/* ---------- Print: only the page content (used for the daily sheet) ---------- */
@media print {
  .layout-menu, .navbar-wrap, .content-footer, .no-print, .preview-banner { display: none !important; }
  .layout-page { margin: 0; }
  .content { padding: 0; }
  body { background: #fff; }
  .card { box-shadow: none; }
  .sheet { max-width: none; }
}
