/* Digimerch Portal UI System — Dark-first admin shell */
:root {
  --dm-bg:#07111f;
  --dm-bg-2:#0b1626;
  --dm-surface:#0f1b2d;
  --dm-surface-2:#122239;
  --dm-surface-3:#172941;
  --dm-border:#22344d;
  --dm-border-soft:#1a2a40;
  --dm-text:#f8fafc;
  --dm-text-2:#cbd5e1;
  --dm-muted:#8fa3bd;
  --dm-green:#22c55e;
  --dm-green-2:#16a34a;
  --dm-blue:#2496ff;
  --dm-cyan:#22d3ee;
  --dm-orange:#fb923c;
  --dm-purple:#a78bfa;
  --dm-danger:#fb7185;
  --dm-shadow:0 16px 45px rgba(0,0,0,.22);
}

html { background:var(--dm-bg); }
html.dark body {
  background:
    radial-gradient(circle at 78% -10%, rgba(36,150,255,.09), transparent 28%),
    radial-gradient(circle at 15% 0%, rgba(34,197,94,.06), transparent 25%),
    var(--dm-bg) !important;
  color:var(--dm-text) !important;
}

/* Global dark surface normalization for existing Tailwind markup. */
html.dark .bg-white { background:var(--dm-surface) !important; }
html.dark .bg-slate-50 { background:var(--dm-bg-2) !important; }
html.dark .bg-slate-100 { background:#111f33 !important; }
html.dark .bg-slate-200 { background:#172941 !important; }
html.dark .bg-slate-700 { background:#182a42 !important; }
html.dark .bg-slate-800 { background:var(--dm-surface) !important; }
html.dark .bg-slate-900 { background:#060e19 !important; }
html.dark .border-slate-100 { border-color:var(--dm-border-soft) !important; }
html.dark .border-slate-200 { border-color:var(--dm-border) !important; }
html.dark .border-slate-300 { border-color:#30445e !important; }
html.dark .border-slate-600,
html.dark .border-slate-700 { border-color:var(--dm-border) !important; }
html.dark .divide-slate-100 > :not([hidden]) ~ :not([hidden]) { border-color:var(--dm-border-soft) !important; }
html.dark .divide-slate-700 > :not([hidden]) ~ :not([hidden]) { border-color:var(--dm-border) !important; }
html.dark .text-slate-900,
html.dark .text-slate-800 { color:var(--dm-text) !important; }
html.dark .text-slate-700 { color:#dbe5f0 !important; }
html.dark .text-slate-600 { color:var(--dm-text-2) !important; }
html.dark .text-slate-500,
html.dark .text-slate-400 { color:var(--dm-muted) !important; }
html.dark .placeholder-slate-400::placeholder { color:#6f829c !important; }
html.dark input,
html.dark select,
html.dark textarea {
  color:var(--dm-text) !important;
  background:#0c192b !important;
  border-color:var(--dm-border) !important;
}
html.dark input:focus,
html.dark select:focus,
html.dark textarea:focus { border-color:rgba(34,197,94,.75) !important; box-shadow:0 0 0 3px rgba(34,197,94,.12) !important; }

/* Application shell */
#appHeader {
  background:rgba(7,17,31,.88) !important;
  border-color:var(--dm-border) !important;
  backdrop-filter:blur(18px);
  box-shadow:0 1px 0 rgba(255,255,255,.02), 0 10px 30px rgba(0,0,0,.12);
}
#appHeaderTitle { letter-spacing:-.025em; }
#appHeaderSubtitle { color:var(--dm-muted) !important; }
#appMainLayout { max-width:1500px !important; gap:22px !important; }
#appMainLayout > aside { width:250px !important; }
#appMainLayout > main { min-width:0; }

#appMainLayout aside nav {
  background:rgba(15,27,45,.92) !important;
  border-color:var(--dm-border) !important;
  box-shadow:var(--dm-shadow) !important;
  padding:10px !important;
  position:sticky;
  top:88px;
}
#appMainLayout aside .nav-btn {
  color:#9fb1c7 !important;
  min-height:42px;
  border-radius:12px !important;
  transition:background .16s ease,color .16s ease,transform .16s ease;
}
#appMainLayout aside .nav-btn:hover {
  color:#f8fafc !important;
  background:#172941 !important;
  transform:translateX(1px);
}
#appMainLayout aside .nav-btn.bg-brand-50,
#appMainLayout aside .nav-btn.dark\:bg-brand-900\/30 {
  color:#fff !important;
  background:linear-gradient(90deg,rgba(34,197,94,.19),rgba(34,197,94,.07)) !important;
  box-shadow:inset 3px 0 0 var(--dm-green), 0 5px 16px rgba(34,197,94,.08);
}

/* Sidebar group labels injected by the redesign. */
.dm-nav-label {
  margin:13px 8px 5px;
  color:#5f7590;
  font-size:9px;
  font-weight:800;
  letter-spacing:.13em;
  text-transform:uppercase;
}
.dm-nav-label:first-child { margin-top:4px; }

/* Sidebar information cards */
#appMainLayout aside > div {
  border-color:var(--dm-border) !important;
  box-shadow:0 12px 30px rgba(0,0,0,.12) !important;
}
#appMainLayout aside > div.bg-slate-900 { background:linear-gradient(145deg,#0d1b2e,#091321) !important; }

/* Dashboard / content surfaces */
.tab-content > .bg-white,
.tab-content .rounded-2xl.bg-white,
.tab-content .rounded-2xl.bg-slate-800,
#tab-dashboard .rounded-2xl {
  box-shadow:0 12px 32px rgba(0,0,0,.13);
}
#tab-dashboard > div:first-child { margin-bottom:-2px; }
#tab-dashboard .grid > .bg-white {
  position:relative;
  overflow:hidden;
}
#tab-dashboard .grid > .bg-white::after {
  content:"";
  position:absolute;
  width:100px;height:100px;
  right:-35px;top:-35px;
  border-radius:50%;
  background:rgba(34,197,94,.045);
  pointer-events:none;
}

/* KPI emphasis */
#tab-dashboard .text-2xl { letter-spacing:-.035em; }
#tab-dashboard .text-2xl,
#tab-dashboard .text-3xl { font-variant-numeric:tabular-nums; }

/* Tables */
html.dark table thead,
html.dark .bg-slate-50 { color:#aebed1; }
html.dark table tbody tr:hover { background:#132238 !important; }
html.dark table th { border-color:var(--dm-border) !important; }
html.dark table td { border-color:var(--dm-border-soft) !important; }

/* Buttons */
html.dark .hover\:bg-slate-50:hover { background:#172941 !important; }
html.dark .hover\:bg-slate-100:hover { background:#1a2d46 !important; }
html.dark .hover\:bg-slate-200:hover { background:#203550 !important; }
html.dark .bg-indigo-50 { background:rgba(99,102,241,.14) !important; }
html.dark .bg-indigo-100 { background:rgba(99,102,241,.2) !important; }
html.dark .bg-emerald-50 { background:rgba(34,197,94,.10) !important; }
html.dark .bg-rose-50 { background:rgba(244,63,94,.10) !important; }
html.dark .bg-amber-50 { background:rgba(245,158,11,.10) !important; }
html.dark .bg-sky-50 { background:rgba(14,165,233,.10) !important; }

/* Modals / overlays generated by the existing app. */
html.dark .fixed.inset-0 { color:var(--dm-text); }
html.dark .fixed.inset-0 > .bg-white,
html.dark .fixed.inset-0 .bg-white { border-color:var(--dm-border) !important; box-shadow:0 24px 80px rgba(0,0,0,.5) !important; }

/* Login */
html.dark #auth { background:radial-gradient(circle at 50% 0%,rgba(34,197,94,.12),transparent 32%),var(--dm-bg) !important; }
html.dark #auth > div { background:rgba(15,27,45,.95) !important; border-color:var(--dm-border) !important; box-shadow:0 30px 90px rgba(0,0,0,.45) !important; }

/* Theme toggle */
.dm-theme-toggle {
  width:36px;height:36px;border-radius:11px;
  display:inline-flex;align-items:center;justify-content:center;
  color:#a9bad0;background:#111f33;border:1px solid var(--dm-border);
  transition:.16s ease;
}
.dm-theme-toggle:hover { color:#fff;background:#1a2d46;transform:translateY(-1px); }
html:not(.dark) .dm-theme-toggle { color:#475569;background:#f1f5f9;border-color:#e2e8f0; }

/* Compact top header on smaller desktop widths */
@media (max-width:1100px) {
  #appMainLayout > aside { width:220px !important; }
  #appHeaderSubtitle { display:none; }
}
@media (max-width:768px) {
  #appMainLayout { padding-left:10px !important; padding-right:10px !important; }
  #appMainLayout > aside { width:100% !important; }
  #appMainLayout aside nav { position:static; }
  #appHeader .max-w-7xl { padding-left:10px !important; padding-right:10px !important; }
  #globalSearch { display:none; }
}

/* ============================================================
   Digimerch Portal multi-theme layer
   Midnight = default, Graphite = neutral dark, Light = bright.
   ============================================================ */
html[data-dm-theme="graphite"] {
  --dm-bg:#111318;
  --dm-bg-2:#17191e;
  --dm-surface:#1b1e24;
  --dm-surface-2:#22262e;
  --dm-surface-3:#292e37;
  --dm-border:#343943;
  --dm-border-soft:#292e36;
  --dm-text:#f5f6f8;
  --dm-text-2:#d2d6dc;
  --dm-muted:#9aa1ad;
  --dm-green:#34d399;
  --dm-green-2:#10b981;
  --dm-blue:#60a5fa;
  --dm-cyan:#67e8f9;
  --dm-orange:#fb923c;
  --dm-purple:#c4b5fd;
  --dm-danger:#fb7185;
}
html.dark[data-dm-theme="graphite"] body {
  background:
    radial-gradient(circle at 80% -10%, rgba(96,165,250,.07), transparent 28%),
    radial-gradient(circle at 10% 0%, rgba(52,211,153,.05), transparent 25%),
    var(--dm-bg) !important;
}
html.dark[data-dm-theme="graphite"] .bg-white { background:var(--dm-surface) !important; }
html.dark[data-dm-theme="graphite"] .bg-slate-50 { background:var(--dm-bg-2) !important; }
html.dark[data-dm-theme="graphite"] .bg-slate-100 { background:#20242b !important; }
html.dark[data-dm-theme="graphite"] .bg-slate-200 { background:#2a2f38 !important; }
html.dark[data-dm-theme="graphite"] .bg-slate-700,
html.dark[data-dm-theme="graphite"] .bg-slate-800 { background:var(--dm-surface) !important; }
html.dark[data-dm-theme="graphite"] .bg-slate-900 { background:#0d0f12 !important; }
html.dark[data-dm-theme="graphite"] .border-slate-100,
html.dark[data-dm-theme="graphite"] .border-slate-200,
html.dark[data-dm-theme="graphite"] .border-slate-600,
html.dark[data-dm-theme="graphite"] .border-slate-700 { border-color:var(--dm-border) !important; }
html.dark[data-dm-theme="graphite"] .text-slate-900,
html.dark[data-dm-theme="graphite"] .text-slate-800 { color:var(--dm-text) !important; }
html.dark[data-dm-theme="graphite"] .text-slate-700 { color:#e0e3e8 !important; }
html.dark[data-dm-theme="graphite"] .text-slate-600 { color:var(--dm-text-2) !important; }
html.dark[data-dm-theme="graphite"] .text-slate-500,
html.dark[data-dm-theme="graphite"] .text-slate-400 { color:var(--dm-muted) !important; }
html.dark[data-dm-theme="graphite"] input,
html.dark[data-dm-theme="graphite"] select,
html.dark[data-dm-theme="graphite"] textarea { background:#15181d !important; border-color:var(--dm-border) !important; color:var(--dm-text) !important; }
html.dark[data-dm-theme="graphite"] #appHeader { background:rgba(17,19,24,.9) !important; border-color:var(--dm-border) !important; }
html.dark[data-dm-theme="graphite"] #appMainLayout aside nav { background:rgba(27,30,36,.94) !important; border-color:var(--dm-border) !important; }
html.dark[data-dm-theme="graphite"] #appMainLayout aside .nav-btn:hover { background:#292e37 !important; }

html[data-dm-theme="light"] .dm-dashboard-card,
html[data-dm-theme="light"] .dm-dashboard-panel { box-shadow:0 8px 24px rgba(15,23,42,.06); }

.dm-theme-card { min-height:82px; }
.dm-theme-card:focus-visible { outline:2px solid var(--dm-green); outline-offset:2px; }

.dm-dashboard-card {
  min-width:0;
  padding:14px;
  border:1px solid var(--dm-border);
  border-radius:16px;
  background:linear-gradient(145deg,rgba(15,27,45,.98),rgba(18,34,57,.82));
  box-shadow:0 10px 28px rgba(0,0,0,.10);
  transition:transform .16s ease,border-color .16s ease,box-shadow .16s ease;
}
.dm-dashboard-card:hover { transform:translateY(-2px); border-color:rgba(34,197,94,.45); box-shadow:0 14px 30px rgba(0,0,0,.16); }
html:not(.dark) .dm-dashboard-card { background:#fff; border-color:#e2e8f0; color:#172033; }
html[data-dm-theme="graphite"] .dm-dashboard-card { background:linear-gradient(145deg,#1b1e24,#22262e); }
.dm-dash-icon { width:32px;height:32px;border-radius:10px;display:grid;place-items:center;margin-bottom:10px; }
.dm-dash-icon svg { width:16px;height:16px; }
.dm-dash-blue { color:#60a5fa;background:rgba(37,99,235,.16); }
.dm-dash-green { color:#34d399;background:rgba(16,185,129,.15); }
.dm-dash-purple { color:#c4b5fd;background:rgba(124,58,237,.15); }
.dm-dash-orange { color:#fb923c;background:rgba(249,115,22,.15); }
.dm-dash-cyan { color:#67e8f9;background:rgba(8,145,178,.15); }
.dm-dash-pink { color:#f0abfc;background:rgba(192,38,211,.15); }
.dm-dash-label { font-size:9px;text-transform:uppercase;letter-spacing:.08em;font-weight:800;color:var(--dm-muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis; }
.dm-dash-value { margin-top:4px;font-size:21px;line-height:1.1;font-weight:850;color:var(--dm-text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis; }
html:not(.dark) .dm-dash-value { color:#172033; }
.dm-dash-meta { margin-top:5px;font-size:9px;color:var(--dm-muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis; }
.dm-dashboard-panel {
  min-width:0;
  padding:16px;
  border:1px solid var(--dm-border);
  border-radius:16px;
  background:rgba(15,27,45,.88);
  box-shadow:0 10px 28px rgba(0,0,0,.08);
}
html:not(.dark) .dm-dashboard-panel { background:#fff;border-color:#e2e8f0; }
html[data-dm-theme="graphite"] .dm-dashboard-panel { background:#1b1e24; }
.dm-status-tile { display:flex;align-items:center;gap:7px;padding:10px;border-radius:11px;background:rgba(255,255,255,.025);border:1px solid var(--dm-border-soft);font-size:10px;color:var(--dm-text-2); }
html:not(.dark) .dm-status-tile { background:#f8fafc;color:#475569;border-color:#e2e8f0; }
.dm-status-tile b { margin-left:auto;font-size:15px;color:var(--dm-text); }
html:not(.dark) .dm-status-tile b { color:#172033; }
.dm-status-dot { width:7px;height:7px;border-radius:50%;flex:0 0 7px; }
.dm-dot-gray { background:#94a3b8; }.dm-dot-amber { background:#f59e0b; }.dm-dot-blue { background:#3b82f6; }.dm-dot-green { background:#22c55e; }
.dm-dash-table { width:100%;border-collapse:collapse;font-size:10px; }
.dm-dash-table th { padding:7px 6px;text-align:left;font-size:8px;text-transform:uppercase;letter-spacing:.06em;color:var(--dm-muted);border-bottom:1px solid var(--dm-border);white-space:nowrap; }
.dm-dash-table td { padding:8px 6px;color:var(--dm-text-2);border-bottom:1px solid var(--dm-border-soft);white-space:nowrap; }
html:not(.dark) .dm-dash-table td { color:#475569;border-color:#eef2f7; }
.dm-dash-table tbody tr:hover td { background:rgba(34,197,94,.035); }
.dm-progress { height:5px;background:rgba(148,163,184,.18);border-radius:99px;overflow:hidden; }
.dm-progress span { display:block;height:100%;border-radius:99px;background:linear-gradient(90deg,#2496ff,#22c55e); }
.dm-status-badge { display:inline-flex;align-items:center;padding:3px 7px;border-radius:999px;font-size:8px;font-weight:800; }
.dm-status-badge.is-gray { background:rgba(148,163,184,.14);color:#94a3b8; }
.dm-status-badge.is-amber { background:rgba(245,158,11,.15);color:#fbbf24; }
.dm-status-badge.is-blue { background:rgba(59,130,246,.15);color:#60a5fa; }
.dm-status-badge.is-green { background:rgba(34,197,94,.15);color:#4ade80; }
html:not(.dark) .dm-status-badge.is-gray { background:#f1f5f9;color:#64748b; }
html:not(.dark) .dm-status-badge.is-amber { background:#fffbeb;color:#b45309; }
html:not(.dark) .dm-status-badge.is-blue { background:#eff6ff;color:#2563eb; }
html:not(.dark) .dm-status-badge.is-green { background:#f0fdf4;color:#15803d; }
.dm-attention-row { width:100%;display:flex;align-items:center;gap:9px;padding:10px;border-radius:11px;border:1px solid var(--dm-border-soft);background:rgba(255,255,255,.02);text-align:left;transition:.15s; }
.dm-attention-row:hover { transform:translateX(2px);border-color:rgba(34,197,94,.35); }
html:not(.dark) .dm-attention-row { background:#f8fafc;border-color:#e2e8f0; }
.dm-attention-icon { width:29px;height:29px;border-radius:9px;display:grid;place-items:center;flex:0 0 29px; }
.dm-attention-icon svg { width:14px;height:14px; }.dm-attention-icon.amber{color:#f59e0b;background:rgba(245,158,11,.14)}.dm-attention-icon.red{color:#fb7185;background:rgba(244,63,94,.14)}.dm-attention-icon.blue{color:#60a5fa;background:rgba(59,130,246,.14)}.dm-attention-icon.green{color:#4ade80;background:rgba(34,197,94,.14)}
.dm-attention-row b { display:block;font-size:10px;color:var(--dm-text); }.dm-attention-row small { display:block;font-size:9px;color:var(--dm-muted);margin-top:2px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap; }
html:not(.dark) .dm-attention-row b { color:#172033; }
.dm-payroll-mini { padding:11px;border-radius:11px;background:rgba(255,255,255,.025);border:1px solid var(--dm-border-soft); }
html:not(.dark) .dm-payroll-mini { background:#f8fafc;border-color:#e2e8f0; }
.dm-payroll-mini span { display:block;font-size:8px;text-transform:uppercase;letter-spacing:.06em;color:var(--dm-muted); }.dm-payroll-mini b { display:block;margin-top:4px;font-size:14px;color:var(--dm-text); }.dm-payroll-mini:nth-child(2) b { color:#fb923c; }.dm-payroll-mini:nth-child(3) b { color:#4ade80; }
html:not(.dark) .dm-payroll-mini b { color:#172033; }
.dm-quick-action { min-height:74px;display:flex;align-items:center;gap:10px;padding:12px;border:1px solid var(--dm-border);border-radius:12px;background:rgba(255,255,255,.025);color:var(--dm-text-2);font-size:11px;font-weight:700;text-align:left;transition:.15s; }
.dm-quick-action:hover { transform:translateY(-1px);border-color:rgba(34,197,94,.4);color:var(--dm-text); }
.dm-quick-action svg { width:17px;height:17px;color:var(--dm-green);flex:0 0 auto; }
html:not(.dark) .dm-quick-action { background:#f8fafc;border-color:#e2e8f0;color:#475569; }
html:not(.dark) .dm-quick-action:hover { background:#f0fdf4;color:#166534; }

@media (max-width:900px) {
  .dm-dashboard-card { padding:11px; }
  .dm-dash-value { font-size:18px; }
}

/* Keep the PDF/print surfaces unchanged. */
@media print {
  html.dark body { background:#fff !important; color:#000 !important; }
}

/* ============================================================
   Odoo-style top navigation — desktop primary navigation
   Hover/focus dropdowns with click + keyboard support.
   The sidebar remains available on compact/mobile layouts.
   ============================================================ */
.dm-topnav{
  display:flex;
  align-items:center;
  gap:2px;
  margin-left:18px;
  min-width:0;
}
.dm-topnav-link{
  position:relative;
  display:inline-flex;
  align-items:center;
  gap:6px;
  height:40px;
  padding:0 12px;
  border:0;
  border-radius:4px;
  background:transparent;
  color:#273142;
  font-size:14px;
  font-weight:600;
  white-space:nowrap;
  cursor:pointer;
  transition:background .14s ease,color .14s ease;
}
.dm-topnav-link:hover,
.dm-topnav-link:focus-visible,
.dm-topnav-link.is-active,
.dm-menu:hover > .dm-menu-trigger,
.dm-menu:focus-within > .dm-menu-trigger,
.dm-menu.is-open > .dm-menu-trigger{
  background:var(--dm-color-primary-soft);
  color:var(--dm-color-primary);
  outline:none;
}
.dm-chevron{font-size:13px;line-height:1;color:#667085;transform:translateY(-1px);transition:transform .14s ease}
.dm-menu:hover .dm-chevron,
.dm-menu:focus-within .dm-chevron,
.dm-menu.is-open .dm-chevron{transform:rotate(180deg) translateY(1px);color:var(--dm-color-primary)}
.dm-menu{position:relative;height:40px;display:flex;align-items:center}
.dm-dropdown{
  position:absolute;
  top:calc(100% + 7px);
  left:0;
  width:270px;
  padding:6px;
  background:#fff;
  border:1px solid #e2e5e9;
  border-radius:6px;
  box-shadow:0 12px 30px rgba(15,23,42,.14),0 2px 6px rgba(15,23,42,.06);
  opacity:0;
  visibility:hidden;
  transform:translateY(-4px);
  pointer-events:none;
  transition:opacity .12s ease,transform .12s ease,visibility .12s ease;
  z-index:80;
}
.dm-menu:hover > .dm-dropdown,
.dm-menu:focus-within > .dm-dropdown,
.dm-menu.is-open > .dm-dropdown{
  opacity:1;
  visibility:visible;
  transform:translateY(0);
  pointer-events:auto;
}
.dm-dropdown::before{
  content:"";
  position:absolute;
  top:-6px;
  left:22px;
  width:10px;
  height:10px;
  background:#fff;
  border-left:1px solid #e2e5e9;
  border-top:1px solid #e2e5e9;
  transform:rotate(45deg);
}
.dm-dropdown > button{
  width:100%;
  min-height:50px;
  display:flex;
  align-items:center;
  gap:10px;
  padding:8px 10px;
  border:0;
  border-radius:4px;
  background:transparent;
  color:#344054;
  text-align:left;
  cursor:pointer;
}
.dm-dropdown > button:hover,
.dm-dropdown > button:focus-visible{
  background:var(--dm-color-primary-soft);
  color:var(--dm-color-primary);
  outline:none;
}
.dm-dropdown > button svg{width:17px;height:17px;flex:0 0 17px;color:var(--dm-color-primary);stroke-width:1.8}
.dm-dropdown > button span{display:flex;flex-direction:column;min-width:0}
.dm-dropdown > button b{font-size:12px;font-weight:650;line-height:1.2}
.dm-dropdown > button small{margin-top:3px;font-size:10px;color:#98a2b3;line-height:1.25}
.dm-dropdown > button:hover small{color:#667085}

/* Desktop Odoo-style shell: navigation is top-level, content uses full width. */
@media (min-width:901px){
  #appMainLayout{display:block !important;max-width:1500px !important;padding-top:18px !important}
  #appMainLayout > aside{display:none !important}
  #appMainLayout > main{width:100% !important;max-width:none !important}
  #appHeader .max-w-7xl{max-width:1500px !important}
  #appHeader .flex.items-center.justify-between{height:64px}
  #appHeader .flex.items-center.gap-3:first-child{min-width:0}
  #appHeaderLogo{max-height:40px}
}

html.dark .dm-topnav-link{color:#d8dee8}
html.dark .dm-topnav-link:hover,
html.dark .dm-topnav-link:focus-visible,
html.dark .dm-topnav-link.is-active,
html.dark .dm-menu:hover > .dm-menu-trigger,
html.dark .dm-menu:focus-within > .dm-menu-trigger,
html.dark .dm-menu.is-open > .dm-menu-trigger{background:#292e37;color:#c4b5fd}
html.dark .dm-chevron{color:#9aa1ad}
html.dark .dm-menu:hover .dm-chevron,
html.dark .dm-menu:focus-within .dm-chevron,
html.dark .dm-menu.is-open .dm-chevron{color:#c4b5fd}
html.dark .dm-dropdown{background:#1b1e24;border-color:#343943;box-shadow:0 16px 38px rgba(0,0,0,.42)}
html.dark .dm-dropdown::before{background:#1b1e24;border-color:#343943}
html.dark .dm-dropdown > button{color:#d2d6dc}
html.dark .dm-dropdown > button:hover,
html.dark .dm-dropdown > button:focus-visible{background:#292e37;color:#c4b5fd}
html.dark .dm-dropdown > button svg{color:#c4b5fd}
html.dark .dm-dropdown > button small{color:#9aa1ad}

@media (max-width:1100px){
  .dm-topnav{margin-left:8px}
  .dm-topnav-link{padding:0 9px;font-size:13px}
  .dm-dropdown{width:250px}
}
@media (max-width:900px){
  #dmTopNav{order:3;width:100%;margin:0;padding-top:4px;overflow-x:auto;scrollbar-width:none}
  #dmTopNav::-webkit-scrollbar{display:none}
  #appHeader .max-w-7xl > .flex.items-center.justify-between{flex-wrap:wrap;height:auto;padding-top:8px;padding-bottom:8px}
  .dm-topnav-link{height:38px;font-size:12px;padding:0 9px}
  .dm-menu{height:38px}
  .dm-dropdown{position:fixed;top:112px;left:10px;right:10px;width:auto;max-width:360px}
  #appMainLayout{display:flex !important;}
  #appMainLayout > aside{display:block !important;}
}

/* ============================================================
   Digimerch Odoo-style application shell — clean persistent top nav
   Company mark + navigation stay left aligned; user actions stay right.
   Default light theme is intentionally plain white.
   ============================================================ */
.dm-header-brand{display:flex;align-items:center;flex:0 0 auto;height:64px}
.dm-header-logo{display:block;max-height:42px;width:auto;max-width:52px;object-fit:contain}
#appHeader{background:#fff !important;border-color:#e5e7eb !important;box-shadow:none !important}
#appHeader .max-w-7xl{max-width:none !important;width:100% !important;padding-left:18px !important;padding-right:18px !important}
#appHeader .flex.items-center.justify-between{height:64px;justify-content:flex-start !important;gap:18px}
#dmTopNav{order:2;margin-left:0;flex:1 1 auto;min-width:0;overflow:visible}
#appHeader > .max-w-7xl > .flex > .flex.items-center.gap-3:last-child{margin-left:auto;flex:0 0 auto}
#appHeader .pl-2.border-l{padding-left:12px !important}
#appHeader .pl-2.border-l #navUserEmail{color:#344054 !important}
#appHeader .pl-2.border-l #navUserRole{color:var(--dm-color-primary) !important}
#appHeader .pl-2.border-l button{background:transparent !important}
.dm-topnav-link{font-size:14px;font-weight:600;height:42px;padding:0 13px;border-radius:4px;color:#344054}
.dm-topnav-link:hover,.dm-topnav-link:focus-visible,.dm-topnav-link.is-active,.dm-menu:hover>.dm-menu-trigger,.dm-menu:focus-within>.dm-menu-trigger,.dm-menu.is-open>.dm-menu-trigger{background:var(--dm-color-primary-soft);color:var(--dm-color-primary)}
.dm-dropdown{top:calc(100% + 3px);border-radius:5px;box-shadow:0 10px 28px rgba(15,23,42,.12);width:290px}
.dm-dropdown > button{min-height:48px;border-radius:4px}
.dm-dropdown > button b{font-size:12px}
.dm-dropdown > button small{font-size:10px}
.dm-menu{height:42px}
/* Persistent top navigation at every viewport size; compact screens scroll horizontally. */
#appMainLayout{display:block !important;width:100% !important;max-width:none !important;padding:18px 18px 28px !important}
#appMainLayout > aside{display:none !important}
#appMainLayout > main{width:100% !important;max-width:none !important}
@media (max-width:900px){
  #appHeader .max-w-7xl{padding-left:10px !important;padding-right:10px !important}
  #appHeader .flex.items-center.justify-between{height:auto;min-height:58px;gap:10px;flex-wrap:nowrap}
  .dm-header-brand{height:58px}
  .dm-header-logo{max-height:36px;max-width:46px}
  #dmTopNav{display:flex;order:2;overflow-x:auto;scrollbar-width:none;flex:1 1 auto;min-width:0;margin:0}
  #dmTopNav::-webkit-scrollbar{display:none}
  .dm-topnav-link{height:38px;padding:0 10px;font-size:12px}
  .dm-menu{height:38px}
  .dm-dropdown{position:fixed;top:61px;left:10px;right:auto;width:min(290px,calc(100vw - 20px));max-width:none}
  #appHeader > .max-w-7xl > .flex > .flex.items-center.gap-3:last-child{display:flex;gap:4px}
  #navUserEmail,#navUserRole{display:none !important}
  #appHeader .pl-2.border-l{border-left:0 !important;padding-left:0 !important}
  #appMainLayout{padding:12px 10px 22px !important}
}
/* Keep the standalone production top bar white and logo-only on desktop too. */
.dm-production-topnav{margin-left:18px;margin-right:auto}
@media(min-width:761px){.topbar{background:#fff !important;border-color:#e5e7eb !important}.toprow{max-width:none !important;padding:0 18px}.brandrow .production-header-logo{max-height:42px;width:auto}.userbox{margin-left:auto}}


/* ============================================================
   DIGIMERCH 2026 UI POLISH
   Persistent shell + clean white business dashboard.
   ============================================================ */
:root{
  --dm-ui-primary:var(--dm-color-primary);
  --dm-ui-primary-soft:var(--dm-color-primary-soft);
  --dm-ui-border:#e5e7eb;
  --dm-ui-muted:#667085;
  --dm-ui-text:#1f2937;
  --dm-ui-green:#198754;
}

/* Persistent shell stays above document-style pages. */
#appHeader{
  position:sticky !important;
  top:0 !important;
  z-index:1000 !important;
  height:64px;
}
#appHeader .max-w-7xl{height:64px}
#appHeader .dm-header-brand{
  width:48px; min-width:48px; justify-content:flex-start;
}
#appHeaderLogo{
  width:42px !important; height:42px !important;
  max-width:42px !important; max-height:42px !important;
  object-fit:contain !important;
}
#appHeader > .max-w-7xl > .flex > .flex.items-center.gap-3:last-child{
  margin-left:auto !important;
  align-self:stretch;
}
#appHeader .pl-2.border-l{
  border-left:0 !important;
  padding-left:0 !important;
  height:100%;
  display:flex;
  align-items:center;
  gap:10px;
}
#appHeader #navUserEmail{
  font-size:12px !important;
  line-height:1.2;
  font-weight:600 !important;
  color:#344054 !important;
  max-width:230px;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}
#appHeader #navUserRole{
  font-size:9px !important;
  letter-spacing:.08em;
  color:var(--dm-ui-primary) !important;
  margin-top:3px;
}
#appHeader .pl-2.border-l button{
  width:34px; height:34px;
  display:grid; place-items:center;
  padding:0 !important; border-radius:5px !important;
}
#appHeader .pl-2.border-l button:hover{background:var(--dm-color-primary-soft) !important}
#appHeader .pl-2.border-l button svg{width:19px;height:19px}

/* Quotation page starts below the persistent application header. */
#quotationModal{
  top:64px !important;
  z-index:900 !important;
  background:#f6f7f9 !important;
  backdrop-filter:none !important;
}
#quotationModal > div{min-height:100% !important}
#quotationModal header{
  position:sticky !important;
  top:0 !important;
  z-index:20 !important;
}

/* Clean white dashboard */
.dm-dashboard-page{
  background:#fff;
  color:var(--dm-ui-text);
  padding-bottom:18px;
}
.dm-dashboard-page > div:first-child{padding:4px 2px 2px}
.dm-dashboard-page > div:first-child .text-\[10px\]{
  color:#198754 !important;
  letter-spacing:.14em;
  font-size:10px !important;
}
.dm-dashboard-page > div:first-child h2{
  font-size:30px !important;
  line-height:1.1 !important;
  letter-spacing:-.035em;
  color:#172033 !important;
}
.dm-dashboard-page > div:first-child p{
  font-size:12px !important;
  color:#667085 !important;
}

/* KPI cards */
.dm-dashboard-page .dm-dashboard-card{
  position:relative;
  padding:16px 16px 15px !important;
  min-height:142px;
  border:1px solid #e4e7ec !important;
  border-radius:8px !important;
  background:#fff !important;
  box-shadow:0 2px 8px rgba(16,24,40,.035) !important;
  transform:none !important;
  overflow:hidden;
}
.dm-dashboard-page .dm-dashboard-card::after{
  content:"";
  position:absolute;
  left:0; top:0; bottom:0; width:3px;
  background:#d0c1cc;
}
.dm-dashboard-page .dm-dashboard-card:hover{
  transform:translateY(-1px) !important;
  border-color:var(--dm-color-primary-border) !important;
  box-shadow:0 6px 18px rgba(16,24,40,.07) !important;
}
.dm-dashboard-page .dm-dash-icon{
  width:34px;height:34px;border-radius:6px;margin-bottom:13px;
}
.dm-dashboard-page .dm-dash-label{
  color:#98a2b3 !important;font-size:9px !important;letter-spacing:.08em;
}
.dm-dashboard-page .dm-dash-value{
  color:#172033 !important;font-size:25px !important;font-weight:750 !important;margin-top:5px;
}
.dm-dashboard-page .dm-dash-meta{color:#98a2b3 !important;font-size:10px !important}

/* Main panels */
.dm-dashboard-page .dm-dashboard-panel{
  padding:18px !important;
  border:1px solid #e4e7ec !important;
  border-radius:8px !important;
  background:#fff !important;
  box-shadow:0 2px 8px rgba(16,24,40,.035) !important;
}
.dm-dashboard-page .dm-dashboard-panel h3{font-size:15px !important;color:#172033 !important}
.dm-dashboard-page .dm-dashboard-panel p{color:#98a2b3 !important}
.dm-dashboard-page .dm-status-tile{
  border:1px solid #eaecf0 !important;
  background:#f8f9fa !important;
  border-radius:6px !important;
  min-height:44px;padding:10px 12px !important;
}
.dm-dashboard-page .dm-status-tile b{color:#172033 !important}
.dm-dashboard-page .dm-dash-table{font-size:11px !important}
.dm-dashboard-page .dm-dash-table th{
  color:#98a2b3 !important;font-size:8px !important;
  border-bottom:1px solid #dfe3e8 !important;
}
.dm-dashboard-page .dm-dash-table td{
  color:#475467 !important;border-bottom:1px solid #f0f2f4 !important;
  padding:10px 6px !important;
}
.dm-dashboard-page .dm-dash-table tbody tr:hover td{background:#fbfafb !important}
.dm-dashboard-page .dm-payroll-mini{
  border:1px solid #eaecf0 !important;background:#f8f9fa !important;
  border-radius:6px !important;padding:12px !important;
}
.dm-dashboard-page .dm-payroll-mini span{color:#98a2b3 !important}
.dm-dashboard-page .dm-payroll-mini b{color:#172033 !important}
.dm-dashboard-page .dm-quick-action{
  border:1px solid #e4e7ec !important;background:#fff !important;
  color:#344054 !important;border-radius:6px !important;
}
.dm-dashboard-page .dm-quick-action:hover{
  border-color:var(--dm-color-primary-border) !important;background:#faf8fa !important;color:var(--dm-color-primary) !important;
}
@media(min-width:901px){
  #appMainLayout{padding:22px 24px 32px !important;background:#fff}
  #appMainLayout > main{max-width:1500px !important;margin:0 auto}
}
@media(max-width:900px){
  #appHeader{height:58px !important}
  #appHeader .max-w-7xl{height:58px !important}
  #appHeaderLogo{width:36px !important;height:36px !important}
  #appHeader .pl-2.border-l{gap:4px}
  #appHeader #navUserEmail{display:none !important}
  #quotationModal{top:58px !important}
  .dm-dashboard-page > div:first-child h2{font-size:25px !important}
}


/* ==========================================================================
   DIGIMERCH ERP DESIGN SYSTEM v2 — Odoo-inspired enterprise shell
   Source: latest Phase 4A dashboard/persistent-navigation build.
   Philosophy: compact, flat, information-dense, reusable across modules.
   ========================================================================== */
:root{
  --dm-erp-bg:#f8f9fa;
  --dm-erp-surface:#ffffff;
  --dm-erp-surface-muted:#f5f6f7;
  --dm-erp-border:#d9dde2;
  --dm-erp-border-soft:#e8ebee;
  --dm-erp-text:#212529;
  --dm-erp-muted:#6c757d;
  --dm-erp-primary:var(--dm-color-primary);
  --dm-erp-primary-hover:var(--dm-color-primary-hover);
  --dm-erp-info:#17a2b8;
  --dm-erp-success:#28a745;
  --dm-erp-warning:#f0ad4e;
  --dm-erp-danger:#dc3545;
  --dm-erp-radius:4px;
  --dm-erp-shadow:0 2px 8px rgba(33,37,41,.06);
}

html:not(.dark), body{
  background:var(--dm-erp-bg) !important;
  color:var(--dm-erp-text);
}
body{font-family:Inter,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif !important;}
button,input,select,textarea{font-family:inherit !important}

/* ---- Persistent global shell ------------------------------------------------ */
#appHeader{
  position:sticky !important;
  top:0 !important;
  z-index:1000 !important;
  height:64px !important;
  background:#fff !important;
  border-bottom:1px solid var(--dm-erp-border) !important;
  box-shadow:0 1px 2px rgba(33,37,41,.04) !important;
  backdrop-filter:none !important;
}
#appHeader > .max-w-7xl{
  width:100% !important;
  max-width:none !important;
  padding:0 20px !important;
}
#appHeader > .max-w-7xl > .flex.items-center.justify-between{
  height:64px !important;
  gap:16px !important;
  justify-content:flex-start !important;
}
.dm-header-brand{
  height:64px !important;
  width:44px !important;
  flex:0 0 44px !important;
  display:flex !important;
  align-items:center !important;
  justify-content:flex-start !important;
}
#appHeaderLogo{
  width:34px !important;
  height:42px !important;
  max-width:34px !important;
  max-height:42px !important;
  object-fit:contain !important;
  object-position:left center !important;
}
#dmTopNav{
  order:2 !important;
  flex:1 1 auto !important;
  min-width:0 !important;
  margin:0 !important;
  display:flex !important;
  align-items:center !important;
  gap:2px !important;
  overflow:visible !important;
}
.dm-topnav-link{
  height:40px !important;
  padding:0 14px !important;
  border-radius:4px !important;
  color:#343a40 !important;
  font-size:14px !important;
  font-weight:600 !important;
}
.dm-topnav-link:hover,
.dm-topnav-link:focus-visible,
.dm-topnav-link.is-active,
.dm-menu:hover>.dm-menu-trigger,
.dm-menu:focus-within>.dm-menu-trigger,
.dm-menu.is-open>.dm-menu-trigger{
  background:#f2edef !important;
  color:var(--dm-erp-primary) !important;
}
.dm-dropdown{
  width:286px !important;
  border:1px solid var(--dm-erp-border) !important;
  border-radius:4px !important;
  box-shadow:0 10px 24px rgba(33,37,41,.12) !important;
  background:#fff !important;
  z-index:1100 !important;
}
.dm-dropdown > button{
  min-height:46px !important;
  border-radius:3px !important;
  padding:8px 10px !important;
}
.dm-dropdown > button:hover,
.dm-dropdown > button:focus-visible{background:#f6f4f5 !important;color:var(--dm-erp-primary) !important}

/* ---- Right-side workspace controls ----------------------------------------- */
.dm-header-actions{
  order:3;
  margin-left:auto;
  display:flex;
  align-items:center;
  gap:3px;
  flex:0 0 auto;
}
.dm-header-icon{
  position:relative;
  width:36px;
  height:36px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  border:1px solid transparent;
  border-radius:4px;
  background:transparent;
  color:#667085;
  cursor:pointer;
}
.dm-header-icon:hover,
.dm-header-icon:focus-visible{
  background:#f5f6f7;
  border-color:var(--dm-erp-border);
  color:var(--dm-erp-primary);
  outline:none;
}
.dm-header-icon svg{width:17px;height:17px;stroke-width:1.8}
.dm-header-badge{
  position:absolute;
  top:4px;
  right:3px;
  min-width:12px;
  height:12px;
  padding:0 3px;
  display:flex;
  align-items:center;
  justify-content:center;
  border-radius:7px;
  background:#adb5bd;
  color:#fff;
  font-size:7px;
  font-weight:700;
  line-height:1;
}
.dm-header-user{
  display:flex;
  align-items:center;
  gap:8px;
  margin-left:7px;
  padding-left:10px;
  border-left:1px solid var(--dm-erp-border);
}
.dm-header-user-text{text-align:right;min-width:0}
.dm-header-email{
  max-width:190px;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
  color:#343a40;
  font-size:12px;
  font-weight:600;
}
.dm-header-role{
  color:var(--dm-erp-primary);
  font-size:9px;
  font-weight:800;
  letter-spacing:.06em;
  text-transform:uppercase;
}
.dm-header-logout{
  width:34px;
  height:34px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  border:0;
  border-radius:4px;
  background:transparent;
  color:var(--dm-erp-danger);
  cursor:pointer;
}
.dm-header-logout:hover{background:#fff1f2}
.dm-header-logout svg{width:18px;height:18px}

/* Small enterprise toast used by header workspace controls. */
.dm-enterprise-toast{
  position:fixed;
  top:76px;
  right:20px;
  z-index:2000;
  padding:9px 12px;
  border:1px solid var(--dm-erp-border);
  border-radius:4px;
  background:#fff;
  color:#343a40;
  box-shadow:0 8px 22px rgba(33,37,41,.12);
  font-size:12px;
  font-weight:600;
  opacity:0;
  transform:translateY(-5px);
  pointer-events:none;
  transition:opacity .12s ease,transform .12s ease;
}
.dm-enterprise-toast.is-visible{opacity:1;transform:translateY(0)}

/* ---- Full-width application workspace -------------------------------------- */
#appMainLayout{
  display:block !important;
  width:100% !important;
  max-width:none !important;
  padding:16px 20px 28px !important;
  margin:0 !important;
}
#appMainLayout > aside{display:none !important}
#appMainLayout > main{
  width:100% !important;
  min-width:0 !important;
  max-width:none !important;
}

/* ---- Reusable page toolbar -------------------------------------------------- */
.odoo-page-toolbar,
.dm-page-toolbar{
  min-height:52px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  padding:0 2px 10px;
  border-bottom:1px solid var(--dm-erp-border);
  margin-bottom:10px;
}
.odoo-title,.dm-page-title{
  margin:0;
  color:var(--dm-erp-text) !important;
  font-size:20px !important;
  line-height:1.25 !important;
  font-weight:600 !important;
  letter-spacing:-.01em;
}
.odoo-new,
.dm-primary-action{
  min-height:36px;
  padding:0 13px !important;
  border-radius:4px !important;
  background:var(--dm-erp-primary) !important;
  color:#fff !important;
  border:1px solid var(--dm-erp-primary) !important;
  box-shadow:none !important;
  font-size:13px !important;
  font-weight:600 !important;
}
.odoo-new:hover,.dm-primary-action:hover{background:var(--dm-erp-primary-hover) !important}
.dm-secondary-action{
  min-height:36px;
  padding:0 12px;
  border:1px solid var(--dm-erp-border);
  border-radius:4px;
  background:#fff;
  color:#495057;
  font-size:13px;
  font-weight:600;
}
.dm-secondary-action:hover{background:#f5f6f7;border-color:#c8cdd2}

/* ---- Search/filter framework ------------------------------------------------ */
.odoo-search-panel,.dm-search-panel{
  padding:7px 0 10px !important;
  background:transparent !important;
  border:0 !important;
  box-shadow:none !important;
}
.odoo-search,.dm-search,
.odoo-filter,.dm-filter{
  min-height:38px !important;
  border:1px solid #bfc5ca !important;
  border-radius:4px !important;
  background:#fff !important;
  color:#343a40 !important;
  box-shadow:none !important;
}
.odoo-search:focus,.dm-search:focus,
.odoo-filter:focus,.dm-filter:focus{
  outline:none !important;
  border-color:var(--dm-color-primary-border-strong) !important;
  box-shadow:0 0 0 2px color-mix(in srgb, var(--dm-color-primary) 12%, transparent) !important;
}
.odoo-search::placeholder,.dm-search::placeholder{color:#8a9299}

/* ---- Transactional tables --------------------------------------------------- */
.dm-enterprise-table,
.odoo-table,
table.dm-enterprise-table{
  width:100%;
  border-collapse:separate;
  border-spacing:0;
  background:#fff;
  border:1px solid var(--dm-erp-border);
  border-radius:4px;
  overflow:hidden;
}
.dm-enterprise-table th,
.odoo-table th,
table.dm-enterprise-table th{
  height:38px;
  padding:0 10px;
  background:#f7f8f9;
  border-bottom:1px solid var(--dm-erp-border);
  color:#495057;
  font-size:11px;
  font-weight:700;
  text-transform:none;
  white-space:nowrap;
}
.dm-enterprise-table td,
.odoo-table td,
table.dm-enterprise-table td{
  min-height:42px;
  padding:8px 10px;
  border-bottom:1px solid var(--dm-erp-border-soft);
  color:#343a40;
  font-size:12px;
  vertical-align:middle;
}
.dm-enterprise-table tbody tr:last-child td,
.odoo-table tbody tr:last-child td{border-bottom:0}
.dm-enterprise-table tbody tr:hover,
.odoo-table tbody tr:hover{background:var(--dm-color-primary-soft)}
.dm-enterprise-table .numeric,
.odoo-table .numeric,
.dm-enterprise-table td.text-right,
.odoo-table td.text-right{text-align:right;font-variant-numeric:tabular-nums}
.dm-enterprise-table .status,
.odoo-table .status{text-align:center}

/* Existing app tables get the same compact hierarchy without requiring markup rewrites. */
#appMainLayout table thead th{
  background:#f7f8f9 !important;
  color:#495057 !important;
  border-color:var(--dm-erp-border) !important;
  font-size:11px !important;
  font-weight:700 !important;
}
#appMainLayout table tbody td{
  border-color:var(--dm-erp-border-soft) !important;
  font-size:12px !important;
}
#appMainLayout table tbody tr:hover{background:var(--dm-color-primary-soft) !important}

/* ---- Semantic state badges -------------------------------------------------- */
.dm-status-badge,.status-badge{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:22px;
  padding:2px 8px;
  border-radius:10px;
  font-size:10px;
  line-height:1;
  font-weight:700;
  white-space:nowrap;
}
.dm-status-info{background:#e7f7fa;color:#117a8b}
.dm-status-success{background:#eaf7ed;color:#218739}
.dm-status-neutral{background:#eef0f2;color:#59636d}
.dm-status-warning{background:#fff4df;color:#9a6500}
.dm-status-danger{background:#fdebec;color:#b02a37}

/* ---- View switchers --------------------------------------------------------- */
.dm-view-switcher{
  display:inline-flex;
  align-items:center;
  border:1px solid var(--dm-erp-border);
  border-radius:4px;
  overflow:hidden;
  background:#fff;
}
.dm-view-switcher button{
  width:36px;height:34px;
  border:0;border-right:1px solid var(--dm-erp-border);
  background:#fff;color:#667085;
  display:inline-flex;align-items:center;justify-content:center;
}
.dm-view-switcher button:last-child{border-right:0}
.dm-view-switcher button:hover{background:#f5f6f7;color:var(--dm-erp-primary)}
.dm-view-switcher button.is-active{background:var(--dm-color-primary-soft);color:var(--dm-erp-primary);box-shadow:inset 0 -2px 0 var(--dm-erp-primary)}
.dm-view-switcher svg{width:16px;height:16px}

/* ---- Record navigation ------------------------------------------------------ */
.dm-record-navigation{display:flex;align-items:center;gap:2px}
.dm-record-range{font-size:12px;color:#667085;font-variant-numeric:tabular-nums}
.dm-record-navigation button{
  width:34px;height:34px;border:1px solid var(--dm-erp-border);
  background:#fff;color:#495057;border-radius:4px;
}
.dm-record-navigation button:hover{background:#f5f6f7;color:var(--dm-erp-primary)}

/* ---- Cards/panels: flat ERP surfaces, not marketing cards ------------------- */
#appMainLayout .rounded-2xl,
#appMainLayout .rounded-xl{
  border-radius:4px !important;
}
#appMainLayout .shadow-sm,
#appMainLayout .shadow,
#appMainLayout .shadow-lg,
#appMainLayout .shadow-xl{
  box-shadow:none !important;
}
#appMainLayout .bg-white{
  background:#fff !important;
}
#appMainLayout .border-slate-200,
#appMainLayout .border-slate-300{
  border-color:var(--dm-erp-border) !important;
}

/* ---- Dashboard: compact business cockpit ------------------------------------ */
#tab-dashboard{
  max-width:1600px;
  margin:0 auto;
}
#tab-dashboard > div:first-child{
  padding-bottom:10px;
  border-bottom:1px solid var(--dm-erp-border);
}
#tab-dashboard .text-\[10px\]{
  font-size:10px !important;
  letter-spacing:.12em !important;
  color:var(--dm-erp-primary) !important;
}
#tab-dashboard h2{
  font-size:24px !important;
  font-weight:650 !important;
  color:#212529 !important;
}
#tab-dashboard .dm-dashboard-card{
  min-height:132px;
  padding:16px !important;
  border:1px solid var(--dm-erp-border) !important;
  border-radius:4px !important;
  background:#fff !important;
  box-shadow:none !important;
  transition:background .12s ease,border-color .12s ease;
}
#tab-dashboard .dm-dashboard-card:hover{
  background:#fbfafb !important;
  border-color:#c9bcc5 !important;
  transform:none !important;
}
#tab-dashboard .dm-dash-icon{
  width:30px;height:30px;
  border-radius:4px !important;
  margin-bottom:12px;
}
#tab-dashboard .dm-dash-label{
  color:#6c757d !important;
  font-size:10px !important;
  letter-spacing:.08em !important;
}
#tab-dashboard .dm-dash-value{
  margin-top:3px;
  color:#212529 !important;
  font-size:24px !important;
  line-height:1.15;
  font-weight:650 !important;
}
#tab-dashboard .dm-dash-meta{
  color:#8a9299 !important;
  font-size:10px !important;
  margin-top:5px;
}
#tab-dashboard .dm-dashboard-panel{
  border:1px solid var(--dm-erp-border) !important;
  border-radius:4px !important;
  background:#fff !important;
  box-shadow:none !important;
  padding:16px !important;
}
#tab-dashboard .dm-status-tile,
#tab-dashboard .dm-payroll-mini{
  border:1px solid var(--dm-erp-border-soft) !important;
  border-radius:4px !important;
  background:#fafbfc !important;
  box-shadow:none !important;
}
#tab-dashboard .dm-quick-action{
  min-height:42px;
  border:1px solid var(--dm-erp-border) !important;
  border-radius:4px !important;
  background:#fff !important;
  color:#495057 !important;
  box-shadow:none !important;
}
#tab-dashboard .dm-quick-action:hover{background:#f7f8f9 !important;color:var(--dm-erp-primary) !important}

/* ---- Quotation document keeps global shell visible -------------------------- */
#quotationModal{
  top:64px !important;
  z-index:900 !important;
  padding:0 !important;
}
#quotationModal > div{min-height:calc(100vh - 64px) !important}
#quotationModal > div > header{
  position:sticky !important;
  top:0 !important;
  z-index:920 !important;
}
#quotationModal .odoo-statusbar{margin-top:0px}
#quotationModal main{background:#fff !important}
#quotationModal input,
#quotationModal select,
#quotationModal textarea{
  border-radius:4px !important;
  box-shadow:none !important;
}
#quotationModal section{box-shadow:none !important;border-radius:4px !important}
#quotationModal button{border-radius:4px !important}

/* ---- Generic forms ---------------------------------------------------------- */
#appMainLayout input,
#appMainLayout select,
#appMainLayout textarea{
  border-radius:4px !important;
  box-shadow:none !important;
}
#appMainLayout input:focus,
#appMainLayout select:focus,
#appMainLayout textarea:focus{
  outline:none !important;
  border-color:var(--dm-color-primary-border-strong) !important;
  box-shadow:0 0 0 2px color-mix(in srgb, var(--dm-color-primary) 10%, transparent) !important;
}

/* ---- Compact responsive behavior ------------------------------------------- */
@media (max-width:1100px){
  .dm-header-email{max-width:130px}
  .dm-topnav-link{padding:0 10px !important}
}
@media (max-width:800px){
  #appHeader,#appHeader > .max-w-7xl > .flex.items-center.justify-between{height:56px !important}
  #appHeader > .max-w-7xl{padding:0 10px !important}
  .dm-header-brand{height:56px !important;width:34px !important;flex-basis:34px !important}
  #appHeaderLogo{width:28px !important;height:34px !important}
  #dmTopNav{overflow-x:auto !important;scrollbar-width:none}
  #dmTopNav::-webkit-scrollbar{display:none}
  .dm-topnav-link{height:36px !important;font-size:12px !important;padding:0 9px !important}
  .dm-menu{height:36px !important}
  .dm-header-icon{display:none}
  .dm-header-user{margin-left:3px;padding-left:6px}
  .dm-header-email{display:none}
  #appMainLayout{padding:10px !important}
  #quotationModal{top:56px !important}
  #quotationModal > div{min-height:calc(100vh - 56px) !important}
}
@media (max-width:520px){
  .dm-header-role{display:none}
  .dm-header-logout{width:32px;height:32px}
  .odoo-page-toolbar,.dm-page-toolbar{align-items:flex-start;flex-direction:column;padding-bottom:8px}
  #tab-dashboard .grid{gap:8px !important}
  #tab-dashboard .dm-dashboard-card{min-height:112px;padding:12px !important}
}

/* Dark mode is still supported, but the default remains clean white. */
html.dark #appHeader{background:#202326 !important;border-color:#3a3f44 !important}
html.dark .dm-header-email{color:#e9ecef}
html.dark .dm-header-icon{color:#adb5bd}
html.dark .dm-header-icon:hover{background:#2b2f33;border-color:#495057;color:#d8c9d4}
html.dark .dm-header-user{border-color:#495057}
html.dark #appMainLayout,
html.dark #appMainLayout .bg-white{color:#e9ecef}
html.dark .dm-dashboard-card,
html.dark .dm-dashboard-panel,
html.dark .dm-enterprise-table,
html.dark .odoo-table{background:#24282c !important;border-color:#3a3f44 !important}
html.dark #appMainLayout table thead th{background:#2b2f33 !important;color:#d9dde1 !important;border-color:#3a3f44 !important}
html.dark #appMainLayout table tbody td{border-color:#34393e !important;color:#d9dde1 !important}


/* ========================================================================
   ERP UI QA FIXES — reusable Odoo-style enterprise interaction framework
   ======================================================================== */
:root{
  --dm-erp-bg:#f8f9fa;
  --dm-erp-surface:#fff;
  --dm-erp-border:#d9dde2;
  --dm-erp-border-soft:#e8ebef;
  --dm-erp-primary:var(--dm-color-primary);
  --dm-erp-primary-dark:var(--dm-color-primary-hover);
  --dm-erp-text:#374151;
  --dm-erp-muted:#6b7280;
  --dm-erp-radius:4px;
}
.dm-enterprise-page{color:var(--dm-erp-text)}
.dm-page-toolbar{
  min-height:52px;display:flex;align-items:center;justify-content:space-between;
  gap:16px;padding:8px 0;border-bottom:1px solid var(--dm-erp-border);
  background:#fff;
}
.dm-toolbar-left,.dm-toolbar-right{display:flex;align-items:center;gap:10px;min-width:0}
.dm-page-title-wrap{display:flex;align-items:baseline;gap:8px;min-width:0}
.dm-page-title{margin:0;font-size:18px;line-height:1.2;font-weight:700;color:#172033;letter-spacing:-.01em}
.dm-page-context{font-size:11px;color:#98a2b3}
.dm-primary-action,.dm-secondary-action,.dm-filter-button,.dm-saved-filter-button,.dm-icon-action,.dm-compact-select{
  min-height:34px;border:1px solid var(--dm-erp-border);border-radius:4px;background:#fff;
  color:var(--dm-erp-text);font-size:12px;font-weight:600;display:inline-flex;align-items:center;
  justify-content:center;gap:6px;padding:0 11px;cursor:pointer;transition:background .12s,border-color .12s,color .12s;
}
.dm-primary-action{background:var(--dm-erp-primary);border-color:var(--dm-erp-primary);color:#fff}
.dm-primary-action:hover{background:var(--dm-erp-primary-dark);border-color:var(--dm-erp-primary-dark)}
.dm-primary-action-small{min-height:32px}
.dm-secondary-action:hover,.dm-filter-button:hover,.dm-saved-filter-button:hover,.dm-icon-action:hover{background:var(--dm-color-primary-soft);border-color:var(--dm-color-primary-border-strong)}
.dm-icon-action{width:34px;padding:0}
.dm-icon-action:disabled{opacity:.35;cursor:not-allowed;background:#f3f4f6}
.dm-primary-action svg,.dm-secondary-action svg,.dm-filter-button svg,.dm-saved-filter-button svg,.dm-icon-action svg{width:15px;height:15px}
.dm-search-filter-bar{
  position:relative;display:flex;align-items:center;gap:6px;flex-wrap:wrap;
  padding:8px 0;border-bottom:1px solid var(--dm-erp-border-soft);
}
.dm-search-box{position:relative;flex:1 1 280px;min-width:220px}
.dm-search-box>svg{position:absolute;left:10px;top:50%;transform:translateY(-50%);width:16px;height:16px;color:#98a2b3}
.dm-search-input{width:100%;height:34px;border:1px solid #bfc5cc!important;border-radius:4px!important;padding:0 10px 0 34px!important;background:#fff!important;box-shadow:none!important;font-size:12px!important}
.dm-search-input:focus{border-color:var(--dm-color-primary-border-strong)!important;box-shadow:0 0 0 2px color-mix(in srgb, var(--dm-color-primary) 8%, transparent)!important}
.dm-filter-chips{display:flex;align-items:center;gap:4px;flex-wrap:wrap}
.dm-filter-chip{border:1px solid var(--dm-color-primary-border);background:var(--dm-color-primary-soft-strong);color:var(--dm-color-primary);border-radius:999px;padding:5px 8px;font-size:10px;font-weight:700;cursor:pointer}
.dm-compact-select{min-width:116px;padding:0 28px 0 9px}
.dm-column-control,.dm-group-control,.dm-sort-control{position:relative}
.dm-floating-menu,.dm-saved-filters{
  position:absolute;z-index:1100;background:#fff;border:1px solid var(--dm-erp-border);
  box-shadow:0 8px 20px rgba(15,23,42,.08);border-radius:4px;
}
.dm-column-control .dm-floating-menu{right:0;top:40px;width:210px;padding:8px}
.dm-floating-menu label{display:flex;align-items:center;gap:7px;padding:7px 6px;font-size:11px;color:#475467;cursor:pointer}
.dm-floating-menu label:hover{background:#f8f9fa}
.dm-advanced-filter-panel{
  border-bottom:1px solid var(--dm-erp-border-soft);background:#fbfbfc;padding:10px 0;
}
.dm-advanced-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}
.dm-advanced-grid label{font-size:10px;font-weight:700;color:#667085}
.dm-advanced-grid input,.dm-advanced-grid select{
  display:block;width:100%;height:34px;margin-top:4px;border:1px solid #c9ced4!important;border-radius:4px!important;
  background:#fff!important;padding:0 8px!important;font-size:12px!important;
}
.dm-advanced-actions{display:flex;justify-content:flex-end;gap:6px;margin-top:8px}
.dm-saved-filters{position:relative;padding:6px;box-shadow:none;border-radius:4px}
.dm-saved-filter-row{display:flex;align-items:center;justify-content:space-between;gap:4px}
.dm-saved-filter-row>button:first-child{flex:1;text-align:left;border:0;background:transparent;padding:7px;font-size:11px;color:#475467;cursor:pointer}
.dm-saved-filter-row>button:first-child:hover{background:#f8f9fa}
.dm-saved-delete{border:0;background:transparent;color:#98a2b3;cursor:pointer;padding:5px 8px}
.dm-saved-empty{font-size:11px;color:#98a2b3;padding:8px}
.dm-view-switcher{display:flex;align-items:center;border:1px solid var(--dm-erp-border);border-radius:4px;overflow:hidden;background:#fff}
.dm-view-btn{width:34px;height:32px;border:0;border-right:1px solid var(--dm-erp-border);background:#fff;color:#667085;display:flex;align-items:center;justify-content:center;cursor:pointer}
.dm-view-btn:last-child{border-right:0}
.dm-view-btn:hover{background:var(--dm-color-primary-soft);color:var(--dm-color-primary)}
.dm-view-btn.active{background:var(--dm-color-primary-soft-strong);color:var(--dm-color-primary);box-shadow:inset 0 -2px 0 var(--dm-color-primary)}
.dm-view-btn svg{width:15px;height:15px}
.dm-record-navigation{display:flex;align-items:center;gap:4px}
.dm-record-range{font-size:11px;color:#667085;white-space:nowrap;margin-right:2px}
.dm-selection-toolbar{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:7px 0;border-bottom:1px solid var(--dm-erp-border-soft)}
.dm-selection-count{font-size:11px;font-weight:700;color:#475467}
.dm-selection-actions{display:flex;gap:6px}
.dm-record-list-host{padding-top:8px}
.dm-record-list-shell{overflow:auto;border:1px solid var(--dm-erp-border);background:#fff}
.dm-record-list{width:100%;min-width:1080px;border-collapse:collapse;font-size:12px}
.dm-record-list th{position:sticky;top:0;z-index:2;padding:9px 10px;background:#f8f9fa;color:#475467;border-bottom:1px solid #cfd4da;font-size:10px;font-weight:800;white-space:nowrap}
.dm-record-list td{padding:9px 10px;border-bottom:1px solid #eaecf0;color:#475467;vertical-align:middle}
.dm-record-list tbody tr{background:#fff}
.dm-record-list tbody tr:hover{background:var(--dm-color-primary-soft)}
.dm-record-list .record-number{font-weight:800;color:#344054}
.dm-record-list .record-customer{font-weight:600;color:#344054}
.dm-record-list .record-total{text-align:right;font-weight:800;color:#344054;white-space:nowrap}
.dm-record-list .record-date{white-space:nowrap}
.dm-record-list .record-ref{max-width:180px;word-break:break-word;color:#667085}
.dm-record-list .record-summary{max-width:360px}
.dm-record-list .record-summary-item{display:block;line-height:1.35}
.dm-group-row td{background:#f8f9fa!important;color:var(--dm-color-primary)!important;font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.04em}
.dm-group-row td span{float:right;color:#98a2b3;text-transform:none;letter-spacing:0}
.dm-empty-state{border:1px dashed var(--dm-erp-border);background:#fff;padding:40px 20px;text-align:center;color:#98a2b3;font-size:12px}
.dm-kanban-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;padding-top:8px}
.dm-kanban-card{border:1px solid var(--dm-erp-border);background:#fff;border-radius:4px;padding:12px;cursor:pointer}
.dm-kanban-card:hover{background:var(--dm-color-primary-soft);border-color:var(--dm-color-primary-border-strong)}
.dm-card-top,.dm-card-bottom{display:flex;align-items:center;justify-content:space-between;gap:8px}
.dm-card-number{font-weight:800;color:var(--dm-color-primary);font-size:12px}
.dm-card-customer{margin-top:8px;font-size:13px;font-weight:700;color:#344054}
.dm-card-summary{margin-top:8px;font-size:11px;color:#667085;line-height:1.5;min-height:38px}
.dm-card-bottom{margin-top:10px;padding-top:8px;border-top:1px solid #eaecf0;color:#98a2b3;font-size:10px}
.dm-card-bottom strong{font-size:12px;color:#344054}
.dm-calendar-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;padding-top:8px}
.dm-calendar-day{border:1px solid var(--dm-erp-border);background:#fff;border-radius:4px;padding:8px;min-width:0}
.dm-calendar-day>header{display:flex;justify-content:space-between;padding:4px 2px 8px;border-bottom:1px solid #eaecf0;font-size:11px;color:#475467}
.dm-calendar-day .dm-kanban-card{border:0;border-bottom:1px solid #eaecf0;border-radius:0;padding:9px 2px}
.dm-pivot-grid{padding-top:8px}.dm-pivot-card,.dm-graph-card{border:1px solid var(--dm-erp-border);background:#fff;border-radius:4px;padding:12px}
.dm-pivot-title{font-size:12px;font-weight:800;color:#344054;margin-bottom:10px}
.dm-pivot-table{width:100%;border-collapse:collapse;font-size:11px}.dm-pivot-table th,.dm-pivot-table td{padding:8px;border-bottom:1px solid #eaecf0;text-align:left}.dm-pivot-table th:not(:first-child),.dm-pivot-table td:not(:first-child){text-align:right}
.dm-graph-card{padding:16px}.dm-graph-row{display:grid;grid-template-columns:120px 1fr 110px;align-items:center;gap:10px;margin:12px 0}.dm-graph-label{font-size:11px;color:#475467}.dm-graph-track{height:12px;background:#eef0f2;border-radius:3px;overflow:hidden}.dm-graph-bar{height:100%;background:var(--dm-color-primary);min-width:3px}.dm-graph-row strong{text-align:right;font-size:11px;color:#344054}
.dm-activity-list{display:grid;gap:6px;padding-top:8px}.dm-activity-item{display:grid;grid-template-columns:30px 1fr auto;gap:10px;align-items:center;border:1px solid var(--dm-erp-border);background:#fff;padding:10px;border-radius:4px;cursor:pointer}.dm-activity-item:hover{background:var(--dm-color-primary-soft)}.dm-activity-icon{width:28px;height:28px;display:grid;place-items:center;background:var(--dm-color-primary-soft-strong);color:var(--dm-color-primary);border-radius:4px}.dm-activity-item strong{font-size:12px;color:#344054}.dm-activity-item p{margin:2px 0;font-size:10px;color:#667085}.dm-activity-item small{font-size:9px;color:#98a2b3}.dm-activity-item>b{font-size:11px;color:#344054}

#tab-so-management>div:first-child,
#tab-production>div:first-child,
#tab-job-orders>div:first-child,
#tab-employees>div:first-child,
#tab-loans>div:first-child,
#tab-overtime>div:first-child,
#tab-history>div:first-child,
#tab-tahi>div:first-child,
#tab-payroll>div:first-child{
  border-radius:4px!important;box-shadow:none!important;border:1px solid var(--dm-erp-border)!important;background:#fff!important;
}
#tab-so-management input,#tab-so-management select,#tab-production input,#tab-job-orders input,#tab-job-orders select,#tab-employees input,#tab-loans input,#tab-loans select,#tab-overtime input,#tab-overtime select,#tab-history input,#tab-tahi input{
  border-radius:4px!important;box-shadow:none!important;
}
#tab-so-management>div:nth-child(2),#tab-job-orders>div:nth-child(2){border-radius:4px!important;box-shadow:none!important}
.dm-enterprise-page .odoo-page-toolbar{border-bottom:1px solid var(--dm-erp-border)!important;background:#fff!important}

/* Explicit mobile transformation: transactional tables become stacked record cards. */
@media(max-width:700px){
  .dm-page-toolbar{align-items:flex-start;flex-direction:column;padding:8px 0}
  .dm-toolbar-left,.dm-toolbar-right{width:100%;flex-wrap:wrap}
  .dm-toolbar-right{justify-content:space-between}
  .dm-search-filter-bar{align-items:stretch}
  .dm-search-box{flex-basis:100%;min-width:100%}
  .dm-advanced-grid{grid-template-columns:1fr 1fr}
  .dm-view-switcher{margin-left:auto}
  .dm-record-list-shell{overflow:visible;border:0;background:transparent}
  .dm-record-list{min-width:0!important;width:100%;display:block}
  .dm-record-list thead{display:none}
  .dm-record-list tbody,.dm-record-list tr,.dm-record-list td{display:block;width:100%;box-sizing:border-box}
  .dm-record-list tbody{display:grid;gap:8px}
  .dm-record-list tr{position:relative;border:1px solid var(--dm-erp-border);background:#fff;border-radius:4px;padding:5px 8px}
  .dm-record-list td{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;padding:6px 4px;border-bottom:1px solid #eef0f2;text-align:right!important}
  .dm-record-list td:last-child{border-bottom:0}
  .dm-record-list td::before{content:attr(data-col);font-size:9px;font-weight:800;text-transform:uppercase;color:#98a2b3;letter-spacing:.04em;text-align:left}
  .dm-record-list td[data-col="select"]{position:absolute;top:7px;left:6px;width:auto;border:0;padding:0}
  .dm-record-list td[data-col="select"]::before{display:none}
  .dm-record-list td[data-col="number"]{padding-left:28px}
  .dm-record-list td[data-col="number"]::before{content:"Number"}
  .dm-record-list td[data-col="date"]::before{content:"Created"}
  .dm-record-list td[data-col="customer"]::before{content:"Customer"}
  .dm-record-list td[data-col="summary"]{display:block;text-align:left!important}.dm-record-list td[data-col="summary"]::before{display:block;margin-bottom:3px}
  .dm-record-list td[data-col="total"]::before{content:"Total"}
  .dm-record-list td[data-col="status"]::before{content:"Status"}
  .dm-record-list td[data-col="invoice"]::before{content:"Invoice"}
  .dm-record-list td[data-col="reference"]::before{content:"Reference"}
  .dm-record-list td[data-col="summary"]{max-width:none}
  .dm-kanban-grid,.dm-calendar-grid{grid-template-columns:1fr}
  .dm-graph-row{grid-template-columns:90px 1fr 90px}
  .dm-activity-item{grid-template-columns:28px 1fr}
  .dm-activity-item>b{grid-column:2;text-align:left}
}
@media(max-width:480px){
  .dm-advanced-grid{grid-template-columns:1fr}
  .dm-toolbar-right .dm-record-range{font-size:10px}
  .dm-view-btn{width:30px}
  .dm-primary-action,.dm-secondary-action,.dm-filter-button,.dm-saved-filter-button,.dm-compact-select{font-size:11px}
}

.dm-page-module-header{border-radius:4px!important;box-shadow:none!important;border:1px solid var(--dm-erp-border)!important;background:#fff!important}
.dm-enterprise-control{border-radius:4px!important;box-shadow:none!important}

/* Compact ERP dashboard override */
.dm-dashboard-page .dm-dashboard-card,
#tab-dashboard .dm-dashboard-card,
#tab-dashboard .dm-dashboard-panel{
  border-radius:4px!important;
  box-shadow:none!important;
}
.dm-dashboard-page .dm-dashboard-card{
  min-height:96px!important;
  padding:12px!important;
  transform:none!important;
}
.dm-dashboard-page .dm-dashboard-card:hover{
  transform:none!important;
  box-shadow:none!important;
  border-color:#d9dde2!important;
}
.dm-dashboard-page .dm-dashboard-panel{padding:14px!important}
.dm-dashboard-page .dm-dash-value{font-size:22px!important}


/* ============================================================
   Unified ERP List Framework — Phase 4B
   Reusable Odoo-inspired list controls for transactional pages.
   ============================================================ */
.dm-unified-list-toolbar{
  display:flex;align-items:center;gap:8px;flex-wrap:wrap;
  padding:8px 10px;
  background:var(--dm-surface,#fff);
  border:1px solid var(--dm-border,#e2e8f0);
  border-radius:8px;
  margin-bottom:8px;
}
.dm-unified-search{
  position:relative;flex:1 1 240px;min-width:190px;
}
.dm-unified-search svg{
  position:absolute;left:10px;top:50%;transform:translateY(-50%);
  width:15px;height:15px;color:#94a3b8;pointer-events:none;
}
.dm-unified-search input{
  width:100%;height:34px;padding:0 10px 0 32px;
  border:1px solid var(--dm-border,#dbe2ea);border-radius:6px;
  background:var(--dm-surface-2,#f8fafc);color:var(--dm-text,#172033);
  font-size:12px;outline:none;
}
.dm-unified-search input:focus{
  border-color:var(--dm-color-primary);box-shadow:0 0 0 2px color-mix(in srgb, var(--dm-color-primary) 10%, transparent);
}
.dm-unified-select,.dm-unified-toolbar button{
  height:34px;border:1px solid var(--dm-border,#dbe2ea);
  border-radius:6px;background:var(--dm-surface,#fff);
  color:var(--dm-text,#334155);font-size:12px;font-weight:600;
}
.dm-unified-select{padding:0 28px 0 9px}
.dm-unified-toolbar button{padding:0 10px;display:inline-flex;align-items:center;gap:6px;cursor:pointer}
.dm-unified-toolbar button:hover{background:#f8fafc;border-color:#cbd5e1}
.dm-unified-toolbar button:disabled{opacity:.45;cursor:not-allowed}
.dm-unified-toolbar .dm-list-count{
  margin-left:auto;font-size:11px;color:#64748b;white-space:nowrap;
}
.dm-unified-toolbar .dm-list-page{
  font-size:11px;color:#475569;min-width:72px;text-align:center;
}
.dm-unified-columns-menu{
  position:absolute;right:0;top:40px;z-index:60;width:210px;
  padding:8px;background:var(--dm-surface,#fff);
  border:1px solid var(--dm-border,#dbe2ea);border-radius:8px;
  box-shadow:0 12px 30px rgba(15,23,42,.12);
}
.dm-unified-columns-menu label{
  display:flex;align-items:center;gap:8px;padding:6px 4px;font-size:11px;
}
.dm-unified-toolbar .dm-relative{position:relative}
.dm-list-group-row td,.dm-list-group-row{
  background:var(--dm-color-primary-soft)!important;color:var(--dm-color-primary);font-size:10px;font-weight:800;
  text-transform:uppercase;letter-spacing:.06em;
}
.dm-list-empty{
  padding:32px 16px;text-align:center;color:#94a3b8;font-size:12px;
  border:1px dashed var(--dm-border,#dbe2ea);background:var(--dm-surface,#fff);
}
.dm-record-card{
  background:var(--dm-surface,#fff);border:1px solid var(--dm-border,#e2e8f0);
  border-radius:8px;padding:12px;transition:background .12s,border-color .12s;
}
.dm-record-card:hover{background:#fafafa;border-color:#cbd5e1}
.dm-table-enterprise{width:100%;border-collapse:collapse;font-size:12px}
.dm-table-enterprise th{
  padding:9px 10px;text-align:left;font-size:10px;font-weight:800;
  color:#64748b;text-transform:uppercase;letter-spacing:.05em;
  border-bottom:1px solid #cbd5e1;background:#f8fafc;white-space:nowrap;
}
.dm-table-enterprise td{padding:9px 10px;border-bottom:1px solid #edf1f5;vertical-align:middle}
.dm-table-enterprise tbody tr:hover{background:#fafafa}
.dm-table-enterprise .num{text-align:right;font-variant-numeric:tabular-nums}
.dm-table-enterprise .center{text-align:center}
.dm-list-status{
  display:inline-flex;align-items:center;padding:3px 7px;border-radius:999px;
  font-size:10px;font-weight:700;line-height:1.2;white-space:nowrap;
}
.dm-list-status.info{background:#e6f7fb;color:#0e7490}
.dm-list-status.success{background:#eaf8ef;color:#15803d}
.dm-list-status.warning{background:#fff6df;color:#a16207}
.dm-list-status.neutral{background:#eef0f2;color:#475569}
.dm-list-status.danger{background:#fff0f1;color:#be123c}
html.dark .dm-unified-list-toolbar,
html.dark .dm-unified-columns-menu,
html.dark .dm-record-card,
html.dark .dm-list-empty{background:var(--dm-surface,#1b1e24);border-color:var(--dm-border,#343943)}
html.dark .dm-unified-search input,
html.dark .dm-unified-select,
html.dark .dm-unified-toolbar button,
html.dark .dm-table-enterprise th{background:var(--dm-surface-2,#22262e);color:var(--dm-text,#f5f6f8);border-color:var(--dm-border,#343943)}
html.dark .dm-table-enterprise td{border-color:var(--dm-border-soft,#292e36)}
html.dark .dm-table-enterprise tbody tr:hover{background:rgba(255,255,255,.025)}
@media(max-width:768px){
  .dm-unified-list-toolbar{padding:7px;gap:6px}
  .dm-unified-search{flex-basis:100%}
  .dm-unified-toolbar .dm-list-count{margin-left:0}
  .dm-unified-select,.dm-unified-toolbar button{height:36px}
  .dm-table-responsive{overflow-x:visible!important}
  .dm-table-responsive table{min-width:0!important}
  .dm-table-responsive thead{display:none}
  .dm-table-responsive tbody,.dm-table-responsive tr,.dm-table-responsive td{display:block;width:100%}
  .dm-table-responsive tr{padding:10px 12px;border-bottom:1px solid #e5e7eb}
  .dm-table-responsive td{display:flex;justify-content:space-between;gap:12px;border:0!important;padding:4px 0!important;text-align:right!important}
  .dm-table-responsive td::before{content:attr(data-label);font-size:10px;font-weight:700;color:#94a3b8;text-transform:uppercase;text-align:left}
}

.dm-erp-context-bar{
  min-height:28px;display:flex;align-items:center;justify-content:space-between;
  gap:10px;padding:2px 2px 6px;border-bottom:1px solid var(--dm-erp-border-soft,#e8ebef);
  font-size:10px;color:#98a2b3;
}
.dm-breadcrumbs{display:flex;align-items:center;gap:7px;min-width:0}
.dm-breadcrumbs b{font-size:11px;color:#475467}
.dm-context-route{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;color:#98a2b3}
@media(max-width:700px){.dm-erp-context-bar{display:none}}

.dm-record-workspace{
  border:1px solid var(--dm-erp-border,#d9dde2)!important;
  border-radius:4px!important;
  box-shadow:0 14px 36px rgba(15,23,42,.12)!important;
  background:#fff!important;
}
.dm-record-workspace h3,.dm-record-workspace h2{color:#172033}
.dm-record-workspace .border-b{border-color:#e8ebef!important}

/* ============================================================
   SALES ORDER WORKSPACE — enterprise/Odoo-inspired refresh
   Keeps existing DigiMerch tokens and responsive shell.
   ============================================================ */
.dm-so-page-head{background:var(--dm-surface,#fff);border:1px solid var(--dm-border,#e2e8f0);padding:14px 16px;border-radius:10px}
.dm-so-page-title{font-size:22px;line-height:1.1;font-weight:800;color:var(--dm-text,#172033);margin:0}
.dm-so-page-subtitle{font-size:11px;color:#64748b;margin-top:5px}
.dm-breadcrumb-line{display:flex;align-items:center;gap:5px;color:#64748b;font-size:10px}
.dm-breadcrumb-line svg{width:12px;height:12px}.dm-breadcrumb-line strong{color:#334155}
.dm-so-kpi-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:8px}
.dm-so-kpi{display:flex;align-items:center;gap:10px;background:var(--dm-surface,#fff);border:1px solid var(--dm-border,#e2e8f0);padding:10px 12px;border-radius:9px;min-width:0}
.dm-so-kpi svg{width:17px;height:17px;color:var(--dm-erp-primary,#7b385e);flex:none}.dm-so-kpi span{display:block;font-size:9px;text-transform:uppercase;letter-spacing:.06em;font-weight:800;color:#94a3b8}.dm-so-kpi strong{display:block;margin-top:2px;font-size:15px;color:var(--dm-text,#172033);font-variant-numeric:tabular-nums}
.dm-so-workspace-bar{background:var(--dm-surface,#fff);border:1px solid var(--dm-border,#e2e8f0);border-radius:9px;padding:5px}
.dm-so-list-workspace{display:grid;gap:9px}.dm-so-group{display:grid;gap:8px}.dm-so-group-title{display:flex;justify-content:space-between;align-items:center;font-size:11px;text-transform:uppercase;letter-spacing:.06em;color:#64748b;padding:4px 2px}.dm-so-group-title b{font-size:10px;background:#eef2f6;border-radius:999px;padding:2px 7px}
.dm-so-order-card{background:var(--dm-surface,#fff);border:1px solid var(--dm-border,#dfe5ec);border-radius:10px;overflow:hidden}.dm-so-order-card:hover{border-color:#c7d0da}
.dm-so-order-head{padding:12px 14px;border-bottom:1px solid #edf1f5}.dm-so-order-ident{display:flex;align-items:center;gap:7px;flex-wrap:wrap}.dm-so-number{font-size:15px;font-weight:800;color:var(--dm-erp-primary,#7b385e);background:none;border:0;padding:0;cursor:pointer}.dm-so-number:hover{text-decoration:underline}.dm-so-version{font-size:10px;color:#64748b;font-weight:700}.dm-so-order-customer{font-size:13px;font-weight:700;color:#172033;margin-top:3px}.dm-so-order-meta{font-size:10px;color:#64748b;margin-top:3px}
.dm-so-lifecycle,.dm-so-modal-lifecycle{display:flex;align-items:center;gap:5px;padding:9px 14px;border-bottom:1px solid #edf1f5;overflow:auto}.dm-so-lifecycle>svg,.dm-so-modal-lifecycle>svg{width:12px;height:12px;color:#cbd5e1;flex:none}.dm-so-stage{display:inline-flex;align-items:center;gap:5px;white-space:nowrap;color:#94a3b8;font-size:9px}.dm-so-stage span{display:grid;place-items:center;width:18px;height:18px;border-radius:50%;border:1px solid #d7dee7;font-size:9px;font-weight:800}.dm-so-stage.done{color:#15803d}.dm-so-stage.done span{background:#eaf8ef;border-color:#b7e3c4;color:#15803d}.dm-so-stage.current{color:var(--dm-erp-primary,#7b385e);font-weight:800}.dm-so-stage.current span{background:var(--dm-color-primary-soft-strong);border-color:#d9b7c8;color:var(--dm-erp-primary,#7b385e)}.dm-so-stage.muted{color:#64748b}.dm-so-stage.future{color:#b0bac6}
.dm-so-next{display:flex;justify-content:space-between;align-items:center;gap:12px;margin:10px 14px;padding:10px 12px;background:#f8fafc;border:1px solid #e6ebf0;border-left:3px solid var(--dm-erp-primary,#7b385e);border-radius:7px}.dm-so-next span{display:block;font-size:9px;font-weight:800;letter-spacing:.07em;color:#94a3b8}.dm-so-next strong{display:block;font-size:12px;color:#172033;margin-top:2px}.dm-so-next p{font-size:10px;color:#64748b;margin:2px 0 0}.dm-so-summary-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:7px;margin:10px 14px}.dm-so-summary-grid>div{padding:8px 10px;border:1px solid #e6ebf0;border-radius:7px;background:#fff}.dm-so-summary-grid span{display:block;font-size:9px;text-transform:uppercase;font-weight:800;color:#94a3b8}.dm-so-summary-grid strong{display:block;font-size:14px;margin-top:2px;color:#172033;font-variant-numeric:tabular-nums}
.dm-so-progress{padding:0 14px 10px}.dm-so-progress-head{display:flex;justify-content:space-between;gap:8px;font-size:10px;color:#64748b;margin-bottom:5px}.dm-so-progress-head strong{color:#334155;font-variant-numeric:tabular-nums}.dm-so-progress-track{height:6px;background:#e8edf2;border-radius:999px;overflow:hidden}.dm-so-progress-fill{height:100%;background:#2d7fb3;border-radius:999px}.dm-so-progress-fill.over{background:#dc2626}
.dm-so-exception{display:flex;align-items:center;gap:6px;margin:0 14px 10px;padding:7px 9px;border:1px solid #fed7aa;background:#fff7ed;color:#9a3412;border-radius:7px;font-size:10px}.dm-so-exception svg{width:14px;height:14px;flex:none}
.dm-so-order-lines{padding:0 14px 10px}.dm-so-lines-table{width:100%;border-collapse:collapse;font-size:11px}.dm-so-lines-table th{text-align:left;font-size:9px;text-transform:uppercase;letter-spacing:.05em;color:#94a3b8;background:#f8fafc;border-bottom:1px solid #e2e8f0;padding:7px 8px}.dm-so-lines-table td{border-bottom:1px solid #edf1f5;padding:8px;text-align:right;font-variant-numeric:tabular-nums}.dm-so-lines-table th:not(:first-child){text-align:right}.dm-so-lines-table td:first-child{text-align:left}.dm-so-lines-table td:first-child small{display:block;color:#64748b;font-size:9px;margin-top:2px}.dm-line-progress{min-width:90px}.dm-line-progress>div:first-child{display:flex;justify-content:flex-end;font-size:9px;color:#64748b;margin-bottom:3px}
.dm-so-order-actions{display:flex;justify-content:space-between;align-items:center;gap:8px;padding:9px 14px;border-top:1px solid #edf1f5;background:#fbfcfd}.dm-so-related{display:flex;gap:9px;align-items:center;font-size:10px;color:#64748b}.dm-so-related button{border:0;background:none;color:var(--dm-erp-primary,#7b385e);font-weight:700;cursor:pointer}.dm-so-related button:hover{text-decoration:underline}
.dm-so-modal{border-radius:12px}.dm-so-modal-head{display:flex;justify-content:space-between;gap:16px;padding:16px 18px;border-bottom:1px solid #e5eaf0}.dm-so-modal-title{font-size:20px;font-weight:800;color:#172033;margin:0}.dm-so-modal-customer{font-size:11px;color:#64748b;margin-top:3px}.dm-icon-close{width:34px;height:34px;border:1px solid #e2e8f0;background:#fff;border-radius:7px;display:grid;place-items:center;color:#64748b}.dm-icon-close:hover{background:#f8fafc}.dm-so-modal-lifecycle{padding:10px 18px}.dm-so-tabs{display:flex;gap:0;border-bottom:1px solid #e2e8f0;padding:0 18px;overflow:auto}.dm-so-tabs button{border:0;background:none;padding:10px 13px;font-size:11px;font-weight:700;color:#64748b;white-space:nowrap;border-bottom:2px solid transparent}.dm-so-tabs button:hover{color:#334155}.dm-so-tabs button.active{color:var(--dm-erp-primary,#7b385e);border-bottom-color:var(--dm-erp-primary,#7b385e)}.dm-so-tab-panel{padding:0 18px 14px}.dm-so-tab-panel>.grid{margin-left:0;margin-right:0}.dm-so-tab-section{padding-top:12px}.dm-so-section-title{font-size:12px;font-weight:800;color:#172033;border-bottom:1px solid #e5eaf0;padding-bottom:7px}.dm-so-section-title span{float:right;color:#64748b}.dm-so-empty-tab{padding:28px;text-align:center;color:#94a3b8;font-size:11px;border:1px dashed #d9e0e7;margin-top:10px}.dm-so-production-row,.dm-so-jobs-list>div,.dm-so-history-list>div{display:flex;justify-content:space-between;gap:10px;align-items:center;padding:9px 10px;border:1px solid #e5eaf0;border-radius:7px;margin-top:7px}.dm-so-production-row small,.dm-so-jobs-list small,.dm-so-history-list span,.dm-so-history-list small{display:block;color:#64748b;font-size:9px;margin-top:2px}.dm-so-history-list small{color:#475569}.dm-so-modal .dm-so-summary-grid{margin-left:0;margin-right:0}.dm-so-modal .dm-so-next{margin-left:0;margin-right:0}
html.dark .dm-so-page-head,html.dark .dm-so-kpi,html.dark .dm-so-workspace-bar,html.dark .dm-so-order-card,html.dark .dm-so-summary-grid>div,html.dark .dm-so-modal{background:var(--dm-surface,#1b1e24);border-color:var(--dm-border,#343943)}
html.dark .dm-so-order-head,html.dark .dm-so-lifecycle,html.dark .dm-so-order-actions,html.dark .dm-so-tabs,html.dark .dm-so-modal-head{border-color:var(--dm-border,#343943)}
html.dark .dm-so-order-actions,html.dark .dm-so-next,html.dark .dm-so-lines-table th{background:var(--dm-surface-2,#22262e)}
html.dark .dm-so-page-title,html.dark .dm-so-kpi strong,html.dark .dm-so-order-customer,html.dark .dm-so-next strong,html.dark .dm-so-summary-grid strong,html.dark .dm-so-modal-title,html.dark .dm-so-section-title{color:var(--dm-text,#f5f6f8)}
html.dark .dm-so-lines-table td{border-color:var(--dm-border-soft,#292e36)}
@media(max-width:900px){.dm-so-kpi-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.dm-so-kpi:last-child{grid-column:span 2}.dm-so-summary-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:640px){.dm-so-page-head{padding:12px}.dm-so-page-title{font-size:19px}.dm-so-kpi-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.dm-so-kpi:last-child{grid-column:auto}.dm-so-next{align-items:flex-start;flex-direction:column}.dm-so-order-actions{align-items:flex-start;flex-direction:column}.dm-so-related{width:100%;justify-content:space-between}.dm-so-order-card{border-radius:8px}.dm-so-lines-table{display:block}.dm-so-lines-table thead{display:none}.dm-so-lines-table tbody,.dm-so-lines-table tr,.dm-so-lines-table td{display:block;width:100%;box-sizing:border-box}.dm-so-lines-table tr{border:1px solid #e5eaf0;border-radius:7px;padding:8px;margin-bottom:7px}.dm-so-lines-table td{border:0;padding:4px 0;text-align:right!important;display:flex;justify-content:space-between;gap:10px}.dm-so-lines-table td::before{content:attr(data-label);font-size:9px;text-transform:uppercase;color:#94a3b8;font-weight:800;text-align:left}.dm-so-lines-table td:first-child{display:block;text-align:left!important}.dm-so-lines-table td:first-child::before{display:none}.dm-line-progress{width:60%;min-width:0}.dm-so-modal{border-radius:8px}.dm-so-modal-head{padding:13px}.dm-so-modal-lifecycle{padding:9px 13px}.dm-so-tab-panel{padding:0 13px 12px}.dm-so-tabs{padding:0 13px}.dm-so-tabs button{padding:9px 10px}.dm-so-modal .grid{grid-template-columns:1fr!important}.dm-so-modal .md\:col-span-2,.dm-so-modal .md\:col-span-3{grid-column:span 1!important}.dm-so-modal .dm-so-summary-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.dm-so-modal .dm-so-summary-grid>div{min-width:0}}

/* Sales Order workspace refinement — UX2 */
.dm-so-kpi small{display:block;font-size:8px;color:#b0bac6;margin-top:1px;letter-spacing:.03em}
.dm-so-progress-head span{display:flex;align-items:center;gap:6px}
.dm-so-progress-head span small{font-size:8px;text-transform:uppercase;letter-spacing:.05em;color:#a1aab5;font-weight:800}
.dm-so-related-section{margin:0 14px 10px;border-top:1px solid #edf1f5;padding-top:9px}
.dm-so-related-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px;margin-top:7px}
.dm-so-related-link{min-width:0;display:flex;align-items:center;gap:7px;padding:8px 9px;border:1px solid #e5eaf0;border-radius:7px;background:#fff;color:#334155;text-align:left;font-size:9px}
button.dm-so-related-link{cursor:pointer}
.dm-so-related-link:hover{border-color:#c7d0da;background:#fafbfd}
.dm-so-related-link svg{width:14px;height:14px;color:var(--dm-erp-primary,#7b385e);flex:none}
.dm-so-related-link span{font-weight:700;flex:1}
.dm-so-related-link b{font-size:9px;color:#475569;font-variant-numeric:tabular-nums}
.dm-so-related-link.muted{color:#94a3b8;background:#fafbfc}
.dm-so-related-link.muted svg{color:#b8c1cb}
.dm-so-related-link.muted b{color:#94a3b8}
@media(max-width:900px){.dm-so-related-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:640px){.dm-so-related-grid{grid-template-columns:1fr}.dm-so-related-link{min-height:38px}}

/* ============================================================
   SALES ORDER LIGHT WORKSPACE — ALWAYS LIGHT
   The Sales Order workspace intentionally remains light even when
   the global ERP theme is in dark mode. Other ERP modules are unchanged.
   ============================================================ */
html.dark #tab-so-management,
html.dark #tab-so-management .dm-so-page-head,
html.dark #tab-so-management .dm-so-kpi,
html.dark #tab-so-management .dm-so-workspace-bar,
html.dark #tab-so-management .dm-so-order-card,
html.dark #tab-so-management .dm-so-summary-grid > div,
html.dark #tab-so-management .dm-so-modal,
html.dark #tab-so-management .dm-so-next,
html.dark #tab-so-management .dm-so-related-link,
html.dark #tab-so-management .dm-so-order-actions,
html.dark #tab-so-management .dm-so-lines-table th {
  background:#fff !important;
  color:#334155 !important;
}
html.dark #tab-so-management .dm-so-page-head,
html.dark #tab-so-management .dm-so-kpi,
html.dark #tab-so-management .dm-so-workspace-bar,
html.dark #tab-so-management .dm-so-order-card,
html.dark #tab-so-management .dm-so-summary-grid > div,
html.dark #tab-so-management .dm-so-modal,
html.dark #tab-so-management .dm-so-related-link {
  border-color:#e2e8f0 !important;
}
html.dark #tab-so-management .dm-so-page-title,
html.dark #tab-so-management .dm-so-kpi strong,
html.dark #tab-so-management .dm-so-order-customer,
html.dark #tab-so-management .dm-so-next strong,
html.dark #tab-so-management .dm-so-summary-grid strong,
html.dark #tab-so-management .dm-so-modal-title,
html.dark #tab-so-management .dm-so-section-title,
html.dark #tab-so-management .dm-so-lines-table td,
html.dark #tab-so-management .dm-so-order-actions,
html.dark #tab-so-management .dm-so-order-actions button {
  color:#172033 !important;
}
html.dark #tab-so-management .dm-so-page-subtitle,
html.dark #tab-so-management .dm-so-order-meta,
html.dark #tab-so-management .dm-so-version,
html.dark #tab-so-management .dm-so-next p,
html.dark #tab-so-management .dm-so-summary-grid span,
html.dark #tab-so-management .dm-so-progress-head,
html.dark #tab-so-management .dm-so-progress-head strong,
html.dark #tab-so-management .dm-so-kpi small,
html.dark #tab-so-management .dm-so-lines-table th,
html.dark #tab-so-management .dm-so-lines-table td small,
html.dark #tab-so-management .dm-so-section-title span,
html.dark #tab-so-management .dm-so-related-link b {
  color:#64748b !important;
}
html.dark #tab-so-management .dm-so-lifecycle,
html.dark #tab-so-management .dm-so-modal-lifecycle,
html.dark #tab-so-management .dm-so-tabs,
html.dark #tab-so-management .dm-so-modal-head,
html.dark #tab-so-management .dm-so-order-head {
  border-color:#e5eaf0 !important;
}
html.dark #tab-so-management .dm-so-lifecycle,
html.dark #tab-so-management .dm-so-modal-lifecycle {
  background:#fff !important;
}
html.dark #tab-so-management .dm-so-order-actions,
html.dark #tab-so-management .dm-so-next,
html.dark #tab-so-management .dm-so-lines-table th {
  background:#f8fafc !important;
}
html.dark #tab-so-management .dm-so-related-link.muted {
  background:#fafbfc !important;
  color:#94a3b8 !important;
}
html.dark #tab-so-management .dm-so-progress-track {
  background:#e8edf2 !important;
}
html.dark #tab-so-management .dm-so-lines-table td {
  border-color:#edf1f5 !important;
}
html.dark #tab-so-management .dm-so-number,
html.dark #tab-so-management .dm-so-related-link,
html.dark #tab-so-management .dm-so-related button {
  color:var(--dm-erp-primary,#7b385e) !important;
}
html.dark #tab-so-management .dm-so-stage.future { color:#b0bac6 !important; }
html.dark #tab-so-management .dm-so-stage.muted { color:#64748b !important; }
html.dark #tab-so-management .dm-so-stage.done { color:#15803d !important; }
html.dark #tab-so-management .dm-so-stage.current { color:var(--dm-erp-primary,#7b385e) !important; }
html.dark #tab-so-management .dm-so-stage.done span { background:#eaf8ef !important; border-color:#b7e3c4 !important; color:#15803d !important; }
html.dark #tab-so-management .dm-so-stage.current span { background:var(--dm-color-primary-soft-strong) !important; border-color:#d9b7c8 !important; color:var(--dm-erp-primary,#7b385e) !important; }


/* ============================================================
   SALES ORDER — QUOTATION-STYLE LIST WORKSPACE
   Light enterprise table; list is for scan/filter/compare,
   detail remains in the existing Sales Order workspace/modal.
   ============================================================ */
#tab-so-management{background:var(--dm-page-bg,#f8fafc);color:var(--dm-text,#172033)}
#tab-so-management .dm-page-toolbar,
#tab-so-management .dm-search-filter-bar,
#tab-so-management .dm-advanced-filter-panel,
#tab-so-management .dm-saved-filters,
#tab-so-management .dm-record-list-shell{
  background:#fff;
  border-color:var(--dm-border,#e2e8f0);
}
#tab-so-management .dm-page-toolbar{min-height:54px}
#tab-so-management .dm-search-filter-bar{border:1px solid var(--dm-border,#e2e8f0);border-radius:8px}
#tab-so-management .dm-record-list-shell{overflow-x:auto;border:1px solid var(--dm-border,#e2e8f0);border-radius:8px;box-shadow:none}
#tab-so-management .dm-record-list{min-width:1120px}
#tab-so-management .dm-record-list thead th{background:#f8fafc;color:#64748b;font-size:9px;letter-spacing:.05em;text-transform:uppercase;font-weight:800;border-bottom:1px solid #e2e8f0;padding:9px 10px;white-space:nowrap}
#tab-so-management .dm-record-list tbody td{background:#fff;color:#334155;border-bottom:1px solid #edf1f5;padding:9px 10px;font-size:11px;vertical-align:middle}
#tab-so-management .dm-record-list tbody tr.record-row-clickable:hover td{background:#fbfcfe}
#tab-so-management .dm-record-list tbody tr:last-child td{border-bottom:0}
#tab-so-management .dm-record-list .record-number{font-weight:800;white-space:nowrap}
#tab-so-management .dm-record-list .record-customer{font-weight:700;color:#172033;white-space:nowrap}
#tab-so-management .dm-record-list .record-date{font-size:10px;color:#64748b;white-space:nowrap}
#tab-so-management .dm-record-list .record-total{font-weight:800;color:#172033;white-space:nowrap}
#tab-so-management .dm-record-list .record-summary{max-width:260px}
#tab-so-management .dm-record-list .record-summary-item{display:block;color:#64748b;font-size:10px;line-height:1.45;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
#tab-so-management .dm-record-link{border:0;background:none;padding:0;color:var(--dm-erp-primary,#7b385e);font-weight:800;cursor:pointer}
#tab-so-management .dm-record-link:hover{text-decoration:underline}
#tab-so-management .dm-so-version{display:inline-block;margin-left:5px;color:#94a3b8;font-size:9px;font-weight:700}
#tab-so-management .dm-so-list-production{min-width:130px}
#tab-so-management .dm-so-list-production strong{display:block;color:#334155;font-size:10px;font-variant-numeric:tabular-nums}
#tab-so-management .dm-so-list-production span{display:block;color:#94a3b8;font-size:9px;margin-top:2px}
#tab-so-management .dm-so-mini-progress{height:4px;background:#e8edf2;border-radius:999px;overflow:hidden;margin-top:4px}
#tab-so-management .dm-so-mini-progress i{display:block;height:100%;background:#2d7fb3;border-radius:999px}
#tab-so-management .dm-so-mini-progress i.over{background:#dc2626}
#tab-so-management .dm-so-due-overdue{color:#b91c1c!important;font-weight:800}
#tab-so-management .dm-so-next-compact{display:inline-flex;align-items:center;padding:4px 7px;border-radius:5px;background:var(--dm-color-primary-soft-strong);color:var(--dm-erp-primary,#7b385e);font-size:9px;font-weight:800;white-space:nowrap}
#tab-so-management .dm-group-row td{background:#f8fafc!important;color:#64748b!important;border-bottom:1px solid #e2e8f0!important;font-size:10px!important;text-transform:uppercase;letter-spacing:.05em;padding:7px 10px!important}
#tab-so-management .dm-group-row td span{float:right;text-transform:none;letter-spacing:0}
#tab-so-management .dm-so-kpi-grid{margin:0}
#tab-so-management .dm-so-kpi{background:#fff}
#tab-so-management .dm-so-kpi small{display:block;font-size:8px;color:#94a3b8;margin-top:1px}
#tab-so-management .dm-so-kpi strong{font-size:15px}
#tab-so-management .dm-empty-state{padding:32px 16px;background:#fff;color:#64748b;text-align:center}
@media(max-width:900px){
  #tab-so-management .dm-page-toolbar{align-items:flex-start}
  #tab-so-management .dm-so-kpi-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
  #tab-so-management .dm-record-list{min-width:920px}
}
@media(max-width:640px){
  #tab-so-management .dm-so-kpi-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  #tab-so-management .dm-search-filter-bar{display:grid;grid-template-columns:1fr auto auto;gap:6px}
  #tab-so-management .dm-search-box{grid-column:1/-1}
  #tab-so-management .dm-record-list-shell{border-radius:7px}
  #tab-so-management .dm-record-list{min-width:0}
  #tab-so-management .dm-record-list thead{display:none}
  #tab-so-management .dm-record-list tbody tr.record-row-clickable{display:block;padding:8px 10px;border-bottom:1px solid #e2e8f0}
  #tab-so-management .dm-record-list tbody tr.record-row-clickable td{display:block;border:0;padding:2px 0;background:#fff!important}
  #tab-so-management .dm-record-list tbody tr.record-row-clickable td[data-col="select"]{position:absolute;margin-left:-2px}
  #tab-so-management .dm-record-list tbody tr.record-row-clickable td[data-col="number"]{padding-left:24px}
  #tab-so-management .dm-record-list tbody tr.record-row-clickable td[data-col="number"]::before{content:"Sales Order";display:block;color:#94a3b8;font-size:8px;text-transform:uppercase;letter-spacing:.05em;margin-bottom:1px}
  #tab-so-management .dm-record-list tbody tr.record-row-clickable td[data-col="customer"]::before{content:"Customer";display:inline-block;width:72px;color:#94a3b8;font-size:8px;text-transform:uppercase}
  #tab-so-management .dm-record-list tbody tr.record-row-clickable td[data-col="products"]::before{content:"Products";display:inline-block;width:72px;color:#94a3b8;font-size:8px;text-transform:uppercase;vertical-align:top}
  #tab-so-management .dm-record-list tbody tr.record-row-clickable td[data-col="total"]::before{content:"Total";display:inline-block;width:72px;color:#94a3b8;font-size:8px;text-transform:uppercase;text-align:left}
  #tab-so-management .dm-record-list tbody tr.record-row-clickable td[data-col="status"]::before{content:"Status";display:inline-block;width:72px;color:#94a3b8;font-size:8px;text-transform:uppercase}
  #tab-so-management .dm-record-list tbody tr.record-row-clickable td[data-col="production"]::before{content:"Production";display:inline-block;width:72px;color:#94a3b8;font-size:8px;text-transform:uppercase;vertical-align:top}
  #tab-so-management .dm-record-list tbody tr.record-row-clickable td[data-col="due"]::before{content:"Due";display:inline-block;width:72px;color:#94a3b8;font-size:8px;text-transform:uppercase}
  #tab-so-management .dm-record-list tbody tr.record-row-clickable td[data-col="next"]::before{content:"Next";display:inline-block;width:72px;color:#94a3b8;font-size:8px;text-transform:uppercase}
  #tab-so-management .dm-record-list tbody tr.record-row-clickable td[data-col="date"]{display:none}
  #tab-so-management .dm-record-list tbody tr.record-row-clickable td[data-col="select"] input{margin-top:4px}
  #tab-so-management .dm-record-list tbody tr.dm-group-row{display:table-row}
  #tab-so-management .dm-record-list tbody tr.dm-group-row td{display:table-cell}
}


/* =========================================================
   SALES ORDER FULL-PAGE DOCUMENT
   Quotation-aligned ERP document architecture
   ========================================================= */
#tab-so-management #salesOrderDetailPage{
  width:100%;
  min-height:calc(100vh - 74px);
  background:#f8fafc;
}
#tab-so-management #salesOrderDetailPage.hidden{display:none!important}
#tab-so-management .dm-so-fullpage-document{
  width:100%;
  max-width:1500px;
  margin:0 auto;
  background:#fff;
  color:#1e293b;
  border:1px solid #e2e8f0;
  border-radius:0 0 14px 14px;
  box-shadow:0 1px 3px rgba(15,23,42,.04);
  overflow:hidden;
}
#tab-so-management .dm-so-modal-head{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:20px;
  padding:18px 24px 14px;
  background:#fff!important;
  border-bottom:1px solid #e2e8f0;
}
#tab-so-management .dm-so-modal-head > div:first-child{min-width:0}
#tab-so-management .dm-breadcrumb-line{
  display:flex;
  align-items:center;
  flex-wrap:wrap;
  gap:6px;
  color:#64748b;
  font-size:12px;
  font-weight:600;
}
#tab-so-management .dm-breadcrumb-line strong{color:#334155}
#tab-so-management .dm-so-modal-title{
  margin:0;
  color:#0f172a!important;
  font-size:25px;
  line-height:1.2;
  font-weight:800;
}
#tab-so-management .dm-so-modal-customer{
  margin-top:5px;
  color:#64748b!important;
  font-size:12px;
}
#tab-so-management .dm-so-back-button{
  flex:0 0 auto;
  display:inline-flex;
  align-items:center;
  gap:7px;
  padding:8px 11px;
  border:1px solid #e2e8f0;
  border-radius:8px;
  background:#fff;
  color:#475569;
  font-size:12px;
  font-weight:700;
  cursor:pointer;
}
#tab-so-management .dm-so-back-button:hover{background:#f8fafc;color:#4f46e5;border-color:#c7d2fe}
#tab-so-management .dm-so-modal-lifecycle{
  display:flex;
  align-items:center;
  gap:8px;
  padding:12px 24px;
  background:#fff!important;
  border-bottom:1px solid #e2e8f0;
  overflow-x:auto;
}
#tab-so-management .dm-so-stage{
  display:inline-flex;
  align-items:center;
  gap:7px;
  white-space:nowrap;
  color:#94a3b8;
  font-size:11px;
  font-weight:700;
}
#tab-so-management .dm-so-stage span{
  width:24px;height:24px;border-radius:999px;
  display:inline-flex;align-items:center;justify-content:center;
  border:1px solid #cbd5e1;background:#fff;color:#64748b;font-size:10px;
}
#tab-so-management .dm-so-stage.done{color:#15803d}
#tab-so-management .dm-so-stage.done span{border-color:#86efac;background:#f0fdf4;color:#15803d}
#tab-so-management .dm-so-stage.current{color:#4f46e5}
#tab-so-management .dm-so-stage.current span{border-color:#a5b4fc;background:#eef2ff;color:#4f46e5}
#tab-so-management .dm-so-stage.muted{color:#94a3b8}
#tab-so-management .dm-so-modal-lifecycle > svg{width:14px;height:14px;color:#cbd5e1;flex:0 0 auto}
#tab-so-management .dm-so-actionbar{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
  padding:12px 24px;
  background:#fff;
  border-bottom:1px solid #e2e8f0;
}
#tab-so-management .dm-so-actionbar-primary{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
#tab-so-management .odoo-primary,
#tab-so-management .odoo-secondary{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:7px;
  min-height:36px;
  padding:8px 13px;
  border-radius:8px;
  font-size:12px;
  font-weight:800;
  cursor:pointer;
}
#tab-so-management .odoo-primary{border:1px solid #4f46e5;background:#4f46e5;color:#fff}
#tab-so-management .odoo-primary:hover{background:#4338ca}
#tab-so-management .odoo-secondary{border:1px solid #dbe2ea;background:#fff;color:#475569}
#tab-so-management .odoo-secondary:hover{background:#f8fafc;color:#4f46e5;border-color:#c7d2fe}
#tab-so-management .dm-so-action-menu{
  position:absolute;right:0;top:calc(100% + 6px);z-index:50;
  width:190px;background:#fff;border:1px solid #e2e8f0;border-radius:9px;
  box-shadow:0 10px 30px rgba(15,23,42,.10);overflow:hidden;
}
#tab-so-management .dm-so-action-menu button{
  display:block;width:100%;padding:10px 13px;text-align:left;
  background:#fff;border:0;color:#475569;font-size:12px;font-weight:600;cursor:pointer;
}
#tab-so-management .dm-so-action-menu button:hover{background:#f8fafc;color:#4f46e5}
#tab-so-management .dm-so-next{
  margin:16px 24px 0;
  display:flex;align-items:center;justify-content:space-between;gap:16px;
  padding:14px 16px;background:#f8fafc;border:1px solid #e2e8f0;
  border-left:3px solid #8b5cf6;border-radius:9px;
}
#tab-so-management .dm-so-next span{
  display:block;margin-bottom:3px;color:#8b5cf6;font-size:10px;font-weight:800;letter-spacing:.08em
}
#tab-so-management .dm-so-next strong{display:block;color:#1e293b;font-size:13px}
#tab-so-management .dm-so-next p{margin:3px 0 0;color:#64748b;font-size:11px}
#tab-so-management .dm-so-tabs{
  display:flex;gap:0;padding:0 24px;margin-top:16px;
  background:#fff;border-bottom:1px solid #e2e8f0;
  overflow-x:auto;
}
#tab-so-management .dm-so-tabs button{
  padding:11px 15px;border:0;border-bottom:2px solid transparent;
  background:transparent;color:#64748b;font-size:12px;font-weight:700;white-space:nowrap;cursor:pointer;
}
#tab-so-management .dm-so-tabs button:hover{color:#4f46e5}
#tab-so-management .dm-so-tabs button.active{color:#4f46e5;border-bottom-color:#4f46e5}
#tab-so-management .dm-so-tab-panel{
  padding:20px 24px 28px;background:#fff;
}
#tab-so-management .dm-so-tab-panel.hidden{display:none}
#tab-so-management .dm-so-summary-grid{
  display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;
  margin-bottom:16px;
}
#tab-so-management .dm-so-summary-grid > div{
  padding:13px 14px;background:#fff;border:1px solid #e2e8f0;border-radius:9px;
}
#tab-so-management .dm-so-summary-grid span{
  display:block;color:#94a3b8;font-size:10px;text-transform:uppercase;letter-spacing:.04em;font-weight:800
}
#tab-so-management .dm-so-summary-grid strong{display:block;margin-top:4px;color:#1e293b;font-size:17px}
#tab-so-management .dm-so-tab-section{
  border:1px solid #e2e8f0;border-radius:10px;background:#fff;padding:16px
}
#tab-so-management .dm-so-section-title{
  color:#1e293b;font-size:14px;font-weight:800;padding-bottom:10px;border-bottom:1px solid #eef2f7
}
#tab-so-management .dm-so-exception{
  display:flex;align-items:center;gap:7px;padding:10px 12px;
  border:1px solid #fecaca;background:#fff7f7;color:#b91c1c;border-radius:8px;font-size:11px
}
#tab-so-management .dm-so-fullpage-document input,
#tab-so-management .dm-so-fullpage-document select,
#tab-so-management .dm-so-fullpage-document textarea{
  background:#fff!important;color:#1e293b!important;border-color:#dbe2ea!important;
}
#tab-so-management .dm-so-fullpage-document label{color:#475569}
#tab-so-management .dm-so-fullpage-document .dm-so-related-link{
  background:#fff;border:1px solid #e2e8f0;color:#475569;border-radius:9px;
}
#tab-so-management .dm-so-fullpage-document .dm-so-related-link:hover{background:#f8fafc;border-color:#c7d2fe}
#tab-so-management .dm-so-fullpage-document .dm-so-modal-lifecycle + .dm-so-actionbar + .dm-so-next{}
#tab-so-management .dm-so-fullpage-document .dm-so-lines-table table{width:100%}
@media(max-width:900px){
  #tab-so-management .dm-so-summary-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  #tab-so-management .dm-so-modal-head{padding:15px 16px}
  #tab-so-management .dm-so-modal-lifecycle,
  #tab-so-management .dm-so-actionbar,
  #tab-so-management .dm-so-tabs{padding-left:16px;padding-right:16px}
  #tab-so-management .dm-so-next,
  #tab-so-management .dm-so-tab-panel{margin-left:16px;margin-right:16px}
  #tab-so-management .dm-so-tab-panel{padding-left:0;padding-right:0}
}
@media(max-width:640px){
  #tab-so-management .dm-so-fullpage-document{border-left:0;border-right:0;border-radius:0}
  #tab-so-management .dm-so-modal-title{font-size:20px}
  #tab-so-management .dm-so-actionbar{align-items:stretch;flex-direction:column}
  #tab-so-management .dm-so-actionbar-primary{width:100%}
  #tab-so-management .dm-so-actionbar-primary .odoo-primary,
  #tab-so-management .dm-so-actionbar-primary .odoo-secondary{flex:1}
  #tab-so-management .dm-so-summary-grid{grid-template-columns:1fr 1fr}
  #tab-so-management .dm-so-next{align-items:flex-start;margin-top:12px}
  #tab-so-management .dm-so-tabs{margin-top:12px}
  #tab-so-management .dm-so-tab-panel{padding-top:14px}
}


 /* PHASE 5A — Sales Order → Job Order management */
#tab-so-management .dm-so-jobs-summary>div{
    background:#fff;border:1px solid var(--dm-border,#e2e8f0);border-radius:7px;padding:9px 10px;
}
#tab-so-management .dm-so-jobs-summary span{
    display:block;color:#94a3b8;font-size:9px;text-transform:uppercase;letter-spacing:.05em;font-weight:800;
}
#tab-so-management .dm-so-jobs-summary strong{
    display:block;margin-top:3px;color:#1e293b;font-size:16px;font-variant-numeric:tabular-nums;
}
#tab-so-management .dm-so-jobs-table{width:100%;border-collapse:collapse;font-size:11px;background:#fff;border:1px solid #e5eaf0}
#tab-so-management .dm-so-jobs-table th{
    background:#f8fafc;color:#64748b;text-transform:uppercase;letter-spacing:.05em;font-size:9px;font-weight:800;text-align:left;padding:8px;border-bottom:1px solid #e5eaf0;white-space:nowrap
}
#tab-so-management .dm-so-jobs-table td{
    padding:9px 8px;border-bottom:1px solid #edf1f5;color:#334155;vertical-align:middle
}
#tab-so-management .dm-so-jobs-table tr:last-child td{border-bottom:0}
#tab-so-management .dm-so-jobs-table tr:hover td{background:#fafbfd}
#tab-so-management .dm-so-jobs-table td:first-child small{display:block;color:#94a3b8;font-size:8px;margin-top:2px}
#tab-so-management .dm-job-focus{outline:2px solid #c4b5fd;outline-offset:2px;background:#faf5ff!important}
@media(max-width:700px){
    #tab-so-management .dm-so-jobs-table{min-width:760px}
}


/* Phase 5A — Job Order ERP workspace: inherit the Sales Order light visual language */
#tab-job-orders{background:#fff;color:#172033}
#tab-job-orders .dm-page-toolbar{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;padding:2px 0 10px}
#tab-job-orders .dm-page-eyebrow{font-size:10px;text-transform:uppercase;letter-spacing:.08em;font-weight:800;color:#98a2b3}
#tab-job-orders .dm-page-title{margin:2px 0 0;font-size:22px;line-height:1.2;font-weight:800;color:#172033}
#tab-job-orders .dm-page-subtitle{margin-top:4px;font-size:11px;color:#667085}
#tab-job-orders .dm-page-actions{display:flex;gap:7px;flex-wrap:wrap}
#tab-job-orders .dm-job-kpi-grid{margin:2px 0 8px}
#tab-job-orders .dm-job-kpi{cursor:pointer;text-align:left;transition:border-color .15s,background .15s,box-shadow .15s;min-height:68px}
#tab-job-orders .dm-job-kpi:hover{background:#fcf9fb;border-color:var(--dm-color-primary-border-strong)}
#tab-job-orders .dm-job-kpi.is-selected{border-color:var(--dm-color-primary);box-shadow:0 0 0 2px color-mix(in srgb, var(--dm-color-primary) 8%, transparent);background:var(--dm-color-primary-soft)}
#tab-job-orders .dm-job-kpi svg{color:var(--dm-color-primary)}
#tab-job-orders .dm-job-kpi small{display:block;font-size:8px;color:#98a2b3;margin-top:1px}
#tab-job-orders .dm-job-kpi strong{font-size:15px}
#tab-job-orders .dm-jo-list-shell{border-radius:6px}
#tab-job-orders .dm-job-order-table{min-width:1220px}
#tab-job-orders .dm-job-order-table th:nth-child(9),
#tab-job-orders .dm-job-order-table td:nth-child(9){text-align:right}
#tab-job-orders .dm-job-order-table td{font-size:11px}
#tab-job-orders .dm-job-product{font-weight:700;color:#344054}
#tab-job-orders .dm-job-order-table td small{display:block;margin-top:2px;color:#98a2b3;font-size:9px}
#tab-job-orders .dm-jo-profile{display:inline-block;padding:3px 6px;border:1px solid #e2e8f0;border-radius:5px;background:#f8fafc;color:#475467;font-size:9px;font-weight:700}
#tab-job-orders .dm-jo-assignee{font-weight:600;color:#344054}
#tab-job-orders .dm-jo-unassigned{display:inline-flex;padding:3px 6px;border-radius:5px;background:#fff7ed;color:#b45309;font-size:9px;font-weight:800}
#tab-job-orders .dm-jo-qty{font-variant-numeric:tabular-nums;color:#344054;font-weight:700;white-space:nowrap}
#tab-job-orders .dm-jo-next-action{display:inline-flex;align-items:center;justify-content:center;border:1px solid var(--dm-color-primary-border);background:var(--dm-color-primary-soft-strong);color:var(--dm-color-primary);border-radius:5px;padding:5px 8px;font-size:9px;font-weight:800;white-space:nowrap}
#tab-job-orders .dm-jo-next-action:hover{background:#f0e3eb}
#tab-job-orders .dm-jo-so-link{font-size:11px}
#tab-job-orders .dm-jo-empty-icon{width:34px;height:34px;display:flex;align-items:center;justify-content:center;margin:0 auto 8px;border-radius:50%;background:var(--dm-color-primary-soft-strong);color:var(--dm-color-primary)}
#tab-job-orders .dm-empty-state strong{display:block;color:#344054;font-size:13px}
#tab-job-orders .dm-empty-state span{display:block;margin-top:4px;font-size:11px;color:#98a2b3}

/* Full-page Job Order document */
.dm-job-detail{max-width:1440px;margin:0 auto;padding:0 0 40px;background:#fff;color:#172033}
.dm-job-detail-top{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:4px 0 10px;border-bottom:1px solid #eaecf0}
.dm-breadcrumb-line{display:flex;align-items:center;gap:7px;font-size:11px;color:#98a2b3}
.dm-breadcrumb-line strong{color:#475467}
.dm-link-button{border:0;background:none;padding:0;color:var(--dm-color-primary);font-weight:700;cursor:pointer}
.dm-document-header{display:flex;justify-content:space-between;gap:18px;padding:18px 0;border-bottom:1px solid #dfe5ec}
.dm-document-heading{min-width:0}
.dm-document-title-row{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.dm-document-title-row h1{margin:0;font-size:25px;line-height:1.15;font-weight:800;color:#172033}
.dm-document-customer{margin-top:5px;font-size:14px;font-weight:700;color:#344054}
.dm-document-meta{margin-top:5px;font-size:10px;color:#667085}
.dm-job-header-actions{display:flex;align-items:center;justify-content:flex-end;gap:7px;flex-wrap:wrap}
.dm-job-lifecycle{display:flex;align-items:center;gap:6px;padding:12px 0;border-bottom:1px solid #eaecf0;overflow:auto}
.dm-job-lifecycle .dm-job-step{display:flex;align-items:center;gap:6px;white-space:nowrap;color:#98a2b3;font-size:10px}
.dm-job-lifecycle .dm-job-step span{width:22px;height:22px;border:1px solid #cfd4da;border-radius:50%;display:flex;align-items:center;justify-content:center;font-weight:800}
.dm-job-lifecycle .dm-job-step.current{color:var(--dm-color-primary)}
.dm-job-lifecycle .dm-job-step.current span{border-color:var(--dm-color-primary);background:var(--dm-color-primary-soft-strong);color:var(--dm-color-primary)}
.dm-job-lifecycle .dm-job-step.done{color:#16803c}
.dm-job-lifecycle .dm-job-step.done span{border-color:#b7dfc4;background:#ecfdf3;color:#16803c}
.dm-job-lifecycle>svg{width:13px;color:#cbd5e1;flex:none}
.dm-job-next-action{display:flex;align-items:center;justify-content:space-between;gap:15px;margin:14px 0;padding:13px 15px;background:#fff;border:1px solid var(--dm-color-primary-border);border-left:3px solid var(--dm-color-primary);border-radius:7px}
.dm-job-next-action strong{display:block;font-size:13px;color:#172033}
.dm-job-next-action span{display:block;margin-top:3px;font-size:10px;color:#667085}
.dm-job-tabs{display:flex;gap:2px;border-bottom:1px solid #dfe5ec;margin-top:4px}
.dm-job-tabs button{border:0;background:transparent;padding:10px 14px;margin-bottom:-1px;border-bottom:2px solid transparent;color:#667085;font-size:11px;font-weight:700;cursor:pointer}
.dm-job-tabs button:hover{color:#344054}
.dm-job-tabs button.active{color:var(--dm-color-primary);border-bottom-color:var(--dm-color-primary)}
.dm-job-tab-content{padding-top:16px}
.dm-job-summary-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}
.dm-job-summary-grid>div{border:1px solid #e2e8f0;background:#fff;border-radius:6px;padding:11px 12px;min-width:0}
.dm-job-summary-grid span{display:block;font-size:9px;text-transform:uppercase;letter-spacing:.05em;font-weight:800;color:#98a2b3}
.dm-job-summary-grid strong{display:block;margin-top:4px;font-size:12px;color:#344054;word-break:break-word}
.dm-job-detail-sections{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-top:12px}
.dm-job-detail-section,.dm-job-detail-sections section{border:1px solid #e2e8f0;border-radius:6px;background:#fff;padding:13px}
.dm-job-detail-sections h3,.dm-job-detail-section h3{margin:0;font-size:11px;font-weight:800;color:#344054}
.dm-job-detail-sections p,.dm-job-detail-section p{margin:5px 0 0;white-space:pre-wrap;font-size:11px;line-height:1.55;color:#667085}
.dm-job-production-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}
.dm-job-prod-card{border:1px solid #e2e8f0;border-radius:6px;padding:13px;background:#fff}
.dm-job-prod-card span{display:block;font-size:9px;text-transform:uppercase;letter-spacing:.05em;font-weight:800;color:#98a2b3}
.dm-job-prod-card strong{display:block;margin-top:5px;font-size:21px;color:#172033;font-variant-numeric:tabular-nums}
.dm-job-prod-card small{display:block;margin-top:2px;color:#98a2b3;font-size:9px}
.dm-job-prod-card.good{border-color:#cce8d5;background:#f8fffa}
.dm-job-prod-card.good span,.dm-job-prod-card.good strong{color:#16803c}
.dm-job-prod-card.reject{border-color:#f5c2c7;background:#fffafa}
.dm-job-prod-card.reject span,.dm-job-prod-card.reject strong{color:#b42318}
.dm-job-progress{margin-top:12px;border:1px solid #e2e8f0;border-radius:6px;padding:13px}
.dm-job-progress>div:first-child{display:flex;justify-content:space-between;gap:8px;font-size:11px;color:#344054}
.dm-job-progress-track{height:8px;background:#edf0f3;border-radius:99px;overflow:hidden;margin-top:8px}
.dm-job-progress-track i{display:block;height:100%;background:var(--dm-color-primary);border-radius:99px}
.dm-job-progress p{margin:6px 0 0;color:#98a2b3;font-size:9px}
.dm-job-assignment-panel{max-width:760px;border:1px solid #e2e8f0;border-radius:7px;background:#fff;padding:16px}
.dm-job-assignment-panel h3{margin:3px 0;font-size:16px;color:#172033}
.dm-job-assignment-panel p{margin:4px 0 15px;color:#667085;font-size:11px}
.dm-job-assignment-panel label{display:block;font-size:10px;font-weight:800;color:#475467}
.dm-form-control{display:block;width:100%;margin-top:5px;padding:9px 10px;border:1px solid #d0d5dd;border-radius:5px;background:#fff;color:#344054;font-size:11px}
.dm-job-assignment-current{display:flex;justify-content:space-between;gap:10px;align-items:center;margin:12px 0;padding:10px;background:#f8fafc;border:1px solid #eaecf0;border-radius:5px}
.dm-job-assignment-current strong{font-size:11px;color:#344054}
.dm-job-assignment-current span{font-size:10px;color:#667085}
.dm-job-history-list{border:1px solid #e2e8f0;border-radius:6px;background:#fff}
.dm-job-history-list>div{padding:11px 13px;border-bottom:1px solid #eaecf0}
.dm-job-history-list>div:last-child{border-bottom:0}
.dm-job-history-list strong{display:block;font-size:11px;color:#344054}
.dm-job-history-list span{display:block;margin-top:2px;font-size:9px;color:#98a2b3}
.dm-job-history-list small{display:block;margin-top:3px;font-size:10px;color:#667085}
@media(max-width:900px){
  #tab-job-orders .dm-page-toolbar{align-items:flex-start}
  #tab-job-orders .dm-job-kpi-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
  #tab-job-orders .dm-job-order-table{min-width:1040px}
  .dm-job-summary-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .dm-job-production-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:640px){
  #tab-job-orders .dm-page-title{font-size:19px}
  #tab-job-orders .dm-page-toolbar{display:block}
  #tab-job-orders .dm-page-actions{margin-top:8px}
  #tab-job-orders .dm-job-kpi-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  #tab-job-orders .dm-job-order-table{min-width:0}
  #tab-job-orders .dm-job-order-table thead{display:none}
  #tab-job-orders .dm-job-order-table tbody tr.dm-job-row{display:block;padding:9px 10px;border-bottom:1px solid #e2e8f0;background:#fff}
  #tab-job-orders .dm-job-order-table tbody tr.dm-job-row td{display:block;border:0;padding:3px 0;background:#fff!important}
  #tab-job-orders .dm-job-order-table tbody tr.dm-job-row td:first-child{display:none}
  #tab-job-orders .dm-job-order-table tbody tr.dm-job-row td:nth-child(2){padding-top:2px}
  #tab-job-orders .dm-job-order-table tbody tr.dm-job-row td:nth-child(3):before{content:'Sales Order · ';color:#98a2b3;font-weight:600}
  #tab-job-orders .dm-job-order-table tbody tr.dm-job-row td:nth-child(4):before{content:'Customer · ';color:#98a2b3;font-weight:600}
  #tab-job-orders .dm-job-order-table tbody tr.dm-job-row td:nth-child(5):before{content:'Product · ';color:#98a2b3;font-weight:600}
  #tab-job-orders .dm-job-order-table tbody tr.dm-job-row td:nth-child(6):before{content:'Profile · ';color:#98a2b3;font-weight:600}
  #tab-job-orders .dm-job-order-table tbody tr.dm-job-row td:nth-child(7):before{content:'Assigned · ';color:#98a2b3;font-weight:600}
  #tab-job-orders .dm-job-order-table tbody tr.dm-job-row td:nth-child(8):before{content:'Status · ';color:#98a2b3;font-weight:600}
  #tab-job-orders .dm-job-order-table tbody tr.dm-job-row td:nth-child(9):before{content:'Good / Reject · ';color:#98a2b3;font-weight:600}
  #tab-job-orders .dm-job-order-table tbody tr.dm-job-row td:nth-child(10):before{content:'Due · ';color:#98a2b3;font-weight:600}
  .dm-job-detail{padding-bottom:24px}
  .dm-document-header{display:block}
  .dm-job-header-actions{justify-content:flex-start;margin-top:12px}
  .dm-job-lifecycle{padding-bottom:9px}
  .dm-job-summary-grid,.dm-job-detail-sections,.dm-job-production-grid{grid-template-columns:1fr}
  .dm-job-next-action{display:block}
  .dm-job-next-action .dm-primary-action{margin-top:10px;width:100%}
  .dm-job-tabs{overflow:auto}
  .dm-job-tabs button{white-space:nowrap}
}

/* ========================================================================
   DIGIMERCH GLOBAL DESIGN SYSTEM v2026.09
   Final consistency layer — quotation page is the visual benchmark.
   This layer intentionally overrides legacy phase-specific styling without
   changing application logic, routes, APIs, data structures, or workflows.
   ======================================================================== */
:root {
  /* User-configurable GUI accent. Change --dm-color-primary only; all accent variants derive from it. */
  --dm-color-primary: #714b67;
  --dm-color-primary-hover: color-mix(in srgb, var(--dm-color-primary) 82%, #000 18%);
  --dm-color-primary-soft: color-mix(in srgb, var(--dm-color-primary) 8%, #fff 92%);
  --dm-color-primary-soft-strong: color-mix(in srgb, var(--dm-color-primary) 14%, #fff 86%);
  --dm-color-primary-border: color-mix(in srgb, var(--dm-color-primary) 32%, #fff 68%);
  --dm-color-primary-border-strong: color-mix(in srgb, var(--dm-color-primary) 48%, #fff 52%);
  --dm-color-primary-focus: color-mix(in srgb, var(--dm-color-primary) 16%, transparent);
  --dm-color-text: #172033;
  --dm-color-text-secondary: #667085;
  --dm-color-muted: #98a2b3;
  --dm-color-border: #e2e5e9;
  --dm-color-border-soft: #edf0f3;
  --dm-color-surface: #ffffff;
  --dm-color-background: #f8f9fa;
  --dm-color-success: #15803d;
  --dm-color-success-soft: #eaf8ef;
  --dm-color-warning: #a16207;
  --dm-color-warning-soft: #fff6df;
  --dm-color-danger: #be123c;
  --dm-color-danger-soft: #fff0f1;
  --dm-color-info: #2563eb;
  --dm-color-info-soft: #eff6ff;
  --dm-radius-sm: 4px;
  --dm-radius-md: 6px;
  --dm-radius-lg: 8px;
  --dm-space-1: 4px;
  --dm-space-2: 8px;
  --dm-space-3: 12px;
  --dm-space-4: 16px;
  --dm-space-5: 20px;
  --dm-space-6: 24px;
  --dm-space-8: 32px;
  --dm-font-xs: 10px;
  --dm-font-sm: 12px;
  --dm-font-md: 14px;
  --dm-font-lg: 18px;
  --dm-font-xl: 24px;
}

html:not(.dark), html[data-dm-theme="light"] { background:var(--dm-color-background) !important; }
html:not(.dark) body {
  background:var(--dm-color-background) !important;
  color:var(--dm-color-text) !important;
  font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif !important;
  -webkit-font-smoothing: antialiased;
}

/* Global shell */
#appHeader {
  height:70px !important;
  background:#fff !important;
  border-bottom:1px solid var(--dm-color-border) !important;
  box-shadow:0 1px 3px rgba(15,23,42,.04) !important;
  backdrop-filter:none !important;
}
#appHeader .max-w-7xl { max-width:1480px !important; height:100% !important; }
#appHeader .flex.items-center.justify-between { height:70px !important; }
#appHeaderLogo { max-height:42px !important; width:auto !important; object-fit:contain !important; }
.dm-header-brand { display:flex; align-items:center; min-width:180px; }
.dm-header-actions { display:flex !important; align-items:center !important; gap:6px !important; }
.dm-header-icon {
  width:36px !important; height:36px !important; border:1px solid transparent !important;
  border-radius:var(--dm-radius-md) !important; background:transparent !important;
  color:#667085 !important; display:inline-flex !important; align-items:center !important;
  justify-content:center !important; position:relative !important;
}
.dm-header-icon:hover { background:var(--dm-color-primary-soft) !important; color:var(--dm-color-primary) !important; border-color:#e8dfe6 !important; }
.dm-header-icon svg { width:17px !important; height:17px !important; }
.dm-header-badge { background:var(--dm-color-primary) !important; color:#fff !important; }
.dm-header-user { display:flex !important; align-items:center !important; gap:8px !important; padding-left:10px !important; margin-left:4px !important; border-left:1px solid var(--dm-color-border) !important; }
.dm-header-email { color:#344054 !important; font-size:12px !important; font-weight:600 !important; }
.dm-header-role { color:#98a2b3 !important; font-size:10px !important; margin-top:2px !important; }
.dm-header-logout {
  width:34px !important; height:34px !important; border:1px solid var(--dm-color-border) !important;
  border-radius:var(--dm-radius-md) !important; background:#fff !important; color:#667085 !important;
  display:inline-flex !important; align-items:center !important; justify-content:center !important;
}
.dm-header-logout:hover { color:var(--dm-color-primary) !important; background:var(--dm-color-primary-soft) !important; border-color:var(--dm-color-primary-border) !important; }

/* Primary navigation */
.dm-topnav { margin-left:24px !important; gap:2px !important; }
.dm-topnav-link {
  height:40px !important; padding:0 12px !important; border-radius:var(--dm-radius-sm) !important;
  color:#344054 !important; font-size:13px !important; font-weight:600 !important;
}
.dm-topnav-link:hover,
.dm-topnav-link:focus-visible,
.dm-topnav-link.is-active,
.dm-menu:hover > .dm-menu-trigger,
.dm-menu:focus-within > .dm-menu-trigger,
.dm-menu.is-open > .dm-menu-trigger { background:var(--dm-color-primary-soft) !important; color:var(--dm-color-primary) !important; }
.dm-chevron { color:#98a2b3 !important; }
.dm-dropdown {
  width:280px !important; padding:6px !important; background:#fff !important;
  border:1px solid var(--dm-color-border) !important; border-radius:var(--dm-radius-md) !important;
  box-shadow:0 12px 30px rgba(15,23,42,.12) !important;
}
.dm-dropdown > button { border-radius:var(--dm-radius-sm) !important; color:#344054 !important; }
.dm-dropdown > button:hover,.dm-dropdown > button:focus-visible { background:var(--dm-color-primary-soft) !important; color:var(--dm-color-primary) !important; }
.dm-dropdown > button svg { color:var(--dm-color-primary) !important; }

/* Main workspace */
#appMainLayout { max-width:1480px !important; padding:20px 24px 32px !important; }
#appMainLayout > main { width:100% !important; }
#appMainLayout aside { display:none !important; }

/* Page headers */
.dm-page-toolbar,
.odoo-page-toolbar {
  min-height:56px !important; padding:8px 0 12px !important; margin-bottom:12px !important;
  border-bottom:1px solid var(--dm-color-border) !important; background:transparent !important;
}
.dm-page-title,
.odoo-title { color:var(--dm-color-text) !important; font-size:22px !important; line-height:1.2 !important; font-weight:700 !important; letter-spacing:-.02em !important; }
.dm-page-eyebrow { color:var(--dm-color-primary) !important; font-size:10px !important; font-weight:700 !important; letter-spacing:.08em !important; text-transform:uppercase !important; }
.dm-page-subtitle,.dm-page-context { color:var(--dm-color-text-secondary) !important; font-size:12px !important; }
.dm-page-actions { display:flex !important; align-items:center !important; gap:8px !important; flex-wrap:wrap !important; }

/* Buttons */
.odoo-primary,
.odoo-new,
.dm-primary-action {
  min-height:36px !important; padding:0 13px !important; border:1px solid var(--dm-color-primary) !important;
  border-radius:var(--dm-radius-md) !important; background:var(--dm-color-primary) !important;
  color:#fff !important; box-shadow:none !important; font-size:12px !important; font-weight:700 !important;
}
.odoo-primary:hover,.odoo-new:hover,.dm-primary-action:hover { background:var(--dm-color-primary-hover) !important; border-color:var(--dm-color-primary-hover) !important; }
.odoo-secondary,
.dm-secondary-action,
.dm-filter-button,
.dm-saved-filter-button,
.dm-icon-action,
.dm-compact-select {
  min-height:36px !important; padding:0 12px !important; border:1px solid var(--dm-color-border) !important;
  border-radius:var(--dm-radius-md) !important; background:#fff !important; color:#344054 !important;
  box-shadow:none !important; font-size:12px !important; font-weight:600 !important;
}
.odoo-secondary:hover,.dm-secondary-action:hover,.dm-filter-button:hover,.dm-saved-filter-button:hover,.dm-icon-action:hover { background:var(--dm-color-primary-soft) !important; color:var(--dm-color-primary) !important; border-color:var(--dm-color-primary-border) !important; }
.dm-icon-action { width:36px !important; padding:0 !important; }

/* Search/filter toolbar */
.dm-search-filter-bar { padding:8px 0 !important; gap:8px !important; border-bottom:1px solid var(--dm-color-border-soft) !important; }
.dm-search-box { min-width:240px !important; }
.dm-search-input,
.odoo-search,
.dm-search,
.odoo-filter,
.dm-filter,
.dm-form-control,
input:not([type="checkbox"]):not([type="radio"]),
select,
textarea {
  border-color:#d0d5dd !important; border-radius:var(--dm-radius-md) !important; background:#fff !important;
  color:#344054 !important; box-shadow:none !important;
}
.dm-search-input { height:36px !important; font-size:12px !important; }
.dm-search-input:focus,
.dm-form-control:focus,
input:focus,select:focus,textarea:focus { border-color:var(--dm-color-primary-border-strong) !important; box-shadow:0 0 0 3px color-mix(in srgb, var(--dm-color-primary) 10%, transparent) !important; outline:none !important; }
.dm-filter-chip { background:var(--dm-color-primary-soft) !important; color:var(--dm-color-primary) !important; border-color:var(--dm-color-primary-border) !important; }

/* Tables */
.dm-table-enterprise,
table {
  border-collapse:collapse !important; background:#fff !important; color:#344054 !important;
}
.dm-table-enterprise th,
table thead th {
  background:#f8f9fa !important; color:#667085 !important; border-bottom:1px solid #d9dde2 !important;
  border-top:0 !important; font-size:10px !important; font-weight:700 !important;
  text-transform:uppercase !important; letter-spacing:.045em !important; padding:10px 12px !important;
}
.dm-table-enterprise td,
table tbody td {
  border-bottom:1px solid var(--dm-color-border-soft) !important; border-top:0 !important;
  color:#344054 !important; font-size:12px !important; padding:10px 12px !important; vertical-align:middle !important;
}
.dm-table-enterprise tbody tr:hover,
table tbody tr:hover { background:#fbfafb !important; }
.dm-table-responsive,
.dm-unified-list,
.dm-record-card { border-color:var(--dm-color-border) !important; box-shadow:none !important; }

/* Status badges */
.dm-list-status,
.dm-status-badge {
  min-height:22px !important; padding:3px 8px !important; border-radius:999px !important;
  font-size:10px !important; font-weight:700 !important; line-height:1.2 !important; border:0 !important;
}
.dm-list-status.success,.dm-status-badge.is-green { background:var(--dm-color-success-soft) !important; color:var(--dm-color-success) !important; }
.dm-list-status.warning,.dm-status-badge.is-amber { background:var(--dm-color-warning-soft) !important; color:var(--dm-color-warning) !important; }
.dm-list-status.danger { background:var(--dm-color-danger-soft) !important; color:var(--dm-color-danger) !important; }
.dm-list-status.info,.dm-status-badge.is-blue { background:var(--dm-color-info-soft) !important; color:var(--dm-color-info) !important; }
.dm-list-status.neutral,.dm-status-badge.is-gray { background:#f1f3f5 !important; color:#667085 !important; }

/* Cards and panels */
.dm-dashboard-card,
.dm-dashboard-panel,
.dm-record-card,
.dm-list-empty,
.dm-enterprise-card,
.card {
  border:1px solid var(--dm-color-border) !important; border-radius:var(--dm-radius-lg) !important;
  background:#fff !important; box-shadow:0 2px 8px rgba(15,23,42,.035) !important;
}
.dm-dashboard-card:hover { transform:none !important; box-shadow:0 3px 10px rgba(15,23,42,.05) !important; border-color:var(--dm-color-primary-border) !important; }

/* Form sections */
.dm-form-section,
.dm-form-card,
.form-section {
  border-color:var(--dm-color-border) !important; background:#fff !important; border-radius:var(--dm-radius-lg) !important;
}
.dm-form-section-title,
.form-section-title { color:#344054 !important; font-size:13px !important; font-weight:700 !important; }
label { color:#475467; font-size:11px; font-weight:600; }

/* Modals / drawers */
.fixed.inset-0 > .bg-white,
.fixed.inset-0 .bg-white,
.dm-modal,
.dm-drawer {
  border:1px solid var(--dm-color-border) !important; border-radius:var(--dm-radius-lg) !important;
  box-shadow:0 24px 70px rgba(15,23,42,.16) !important; background:#fff !important;
}

/* Toasts */
.dm-enterprise-toast { top:82px !important; right:24px !important; border-color:var(--dm-color-primary-border) !important; color:#344054 !important; box-shadow:0 8px 24px rgba(15,23,42,.10) !important; }

/* Numeric alignment */
.num,.amount,.money,[data-type="currency"],[data-type="number"] { font-variant-numeric:tabular-nums; }
td.num,th.num,td.amount,th.amount { text-align:right !important; }

/* Accessibility and interaction consistency */
button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible {
  outline:2px solid color-mix(in srgb, var(--dm-color-primary) 38%, transparent) !important; outline-offset:2px !important;
}
button:disabled,input:disabled,select:disabled,textarea:disabled { cursor:not-allowed !important; opacity:.55 !important; }

/* Mobile: same design language, adapted density */
@media (max-width:900px) {
  #appHeader { height:62px !important; }
  #appHeader .flex.items-center.justify-between { height:62px !important; }
  #appHeader .max-w-7xl { padding-left:12px !important; padding-right:12px !important; }
  .dm-topnav { display:none !important; }
  .dm-header-brand { min-width:0 !important; }
  .dm-header-email { display:none !important; }
  #appMainLayout { padding:14px 12px 24px !important; }
  .dm-page-toolbar,.odoo-page-toolbar { display:flex !important; align-items:flex-start !important; flex-direction:column !important; gap:10px !important; }
  .dm-page-actions { width:100% !important; }
  .dm-page-actions > * { flex:0 0 auto !important; }
  .dm-search-filter-bar { align-items:stretch !important; }
  .dm-search-box { min-width:100% !important; flex-basis:100% !important; }
  .dm-table-responsive { overflow-x:auto !important; -webkit-overflow-scrolling:touch; }
  .dm-table-enterprise, .dm-table-responsive table { min-width:720px; }
  .dm-table-enterprise th,.dm-table-enterprise td,table thead th,table tbody td { white-space:nowrap; }
}

@media (max-width:640px) {
  .dm-page-title,.odoo-title { font-size:19px !important; }
  .dm-page-actions { gap:6px !important; }
  .dm-page-actions button { min-height:38px !important; }
  .dm-dashboard-card,.dm-dashboard-panel { border-radius:6px !important; }
}

/* Dark mode retains the same component system and brand accent. */
html.dark {
  /* Primary accent remains user-configurable in dark mode. */
  --dm-color-text:#f8fafc;
  --dm-color-text-secondary:#cbd5e1;
  --dm-color-muted:#94a3b8;
  --dm-color-border:#343943;
  --dm-color-border-soft:#29303a;
  --dm-color-surface:#1b1e24;
  --dm-color-background:#111318;
}
html.dark #appHeader { background:#17191e !important; border-color:var(--dm-color-border) !important; }
html.dark .dm-topnav-link { color:#e5e7eb !important; }
html.dark .dm-topnav-link:hover,html.dark .dm-topnav-link:focus-visible,html.dark .dm-topnav-link.is-active,html.dark .dm-menu:hover > .dm-menu-trigger,html.dark .dm-menu:focus-within > .dm-menu-trigger { background:var(--dm-color-primary-soft-strong) !important; color:var(--dm-color-primary) !important; }
html.dark .dm-dropdown,html.dark .dm-dashboard-card,html.dark .dm-dashboard-panel,html.dark .dm-record-card,html.dark .dm-list-empty,html.dark .dm-enterprise-card,html.dark .fixed.inset-0 > .bg-white,html.dark .fixed.inset-0 .bg-white { background:#1b1e24 !important; border-color:#343943 !important; color:#f8fafc !important; }
html.dark .dm-search-input,html.dark .dm-form-control,html.dark input,html.dark select,html.dark textarea,html.dark .odoo-secondary,html.dark .dm-secondary-action,html.dark .dm-filter-button,html.dark .dm-saved-filter-button,html.dark .dm-icon-action { background:#15181d !important; color:#e5e7eb !important; border-color:#343943 !important; }
html.dark .dm-table-enterprise,html.dark table { background:#1b1e24 !important; color:#e5e7eb !important; }
html.dark .dm-table-enterprise th,html.dark table thead th { background:#22262e !important; color:#aab4c1 !important; border-color:#343943 !important; }
html.dark .dm-table-enterprise td,html.dark table tbody td { color:#d7dce3 !important; border-color:#29303a !important; }
html.dark .dm-table-enterprise tbody tr:hover,html.dark table tbody tr:hover { background:#20242b !important; }

/* Sewing Production work activity detail */
.sewing-work-section .sewing-section-head > div { display:flex; flex-direction:column; gap:3px; }
.sewing-work-section .sewing-section-head > div > span { font-size:12px; color:#98a2b3; font-weight:500; }
.sewing-work-summary { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:10px; padding:12px 16px 0; }
.sewing-work-summary > div { background:#f8f7fa; border:1px solid #ece7ef; border-radius:10px; padding:11px 13px; display:flex; justify-content:space-between; align-items:center; gap:10px; }
.sewing-work-summary span { font-size:11px; color:#667085; font-weight:600; text-transform:uppercase; letter-spacing:.04em; }
.sewing-work-summary b { font-size:15px; color:#27324a; }
.sewing-table-wrap { width:100%; overflow-x:auto; }
.sewing-work-table { min-width:900px; margin-top:12px; }
.sewing-work-table th, .sewing-work-table td { white-space:nowrap; }
.sewing-work-table td:first-child b { color:#7c4a73; }
@media (max-width: 760px) {
  .sewing-work-summary { grid-template-columns:1fr; }
}


/* 2026-10-02 user-requested responsive shell alignment */
#appHeader > .max-w-7xl,
#appHeader .max-w-7xl{max-width:none !important;width:100% !important;margin-left:0 !important;margin-right:0 !important;}
#appHeader > .max-w-7xl > .flex.items-center.justify-between{width:100% !important;margin:0 !important;}
#appHeader .dm-header-brand{margin-left:0 !important;}
#appHeader .dm-topnav{margin-left:0 !important;}
#appHeader .dm-header-actions{margin-left:auto !important;}
@media (max-width:1100px){#appHeader .dm-topnav{gap:0 !important;}#appHeader .dm-topnav-link{padding-left:9px !important;padding-right:9px !important;}}

/* Settings is a page, not a modal. */
.dm-settings-page-head{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;margin-bottom:18px;}
.dm-settings-card{background:#fff;border:1px solid #e5e7eb;border-radius:12px;padding:22px;margin-bottom:14px;box-shadow:0 1px 2px rgba(16,24,40,.03);}
.dm-settings-card-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;padding-bottom:16px;margin-bottom:18px;border-bottom:1px solid #eef0f3;}
.dm-settings-card-head h2{margin:0;font-size:15px;font-weight:800;color:#172033;}
.dm-settings-card-head p{margin:4px 0 0;font-size:11px;color:#667085;}
.dm-settings-card-head>svg{width:20px;height:20px;color:var(--dm-color-primary);flex:0 0 auto;}
.dm-settings-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;}
.dm-settings-grid label,.dm-settings-template-grid label{display:flex;flex-direction:column;gap:6px;font-size:11px;font-weight:700;color:#344054;}
.dm-settings-grid label.md-span-2{grid-column:span 2;}
.dm-settings-grid input,.dm-settings-template-grid select,.dm-settings-logo-controls input{width:100%;height:40px;border:1px solid #d0d5dd;border-radius:7px;padding:0 11px;background:#fff;color:#172033;font:inherit;font-weight:500;outline:none;box-sizing:border-box;}
.dm-settings-grid input:focus,.dm-settings-template-grid select:focus{border-color:var(--dm-color-primary);box-shadow:0 0 0 3px color-mix(in srgb, var(--dm-color-primary) 10%, transparent);}
.dm-settings-logo-row{display:flex;align-items:center;gap:20px;}
.dm-settings-logo-preview{width:180px;height:92px;border:1px dashed #d0d5dd;border-radius:8px;display:flex;align-items:center;justify-content:center;background:#fafafa;overflow:hidden;flex:0 0 auto;}
.dm-settings-logo-preview img{max-width:160px;max-height:72px;object-fit:contain;}
.dm-settings-logo-controls{flex:1;min-width:0;}
.dm-settings-help{margin-top:7px;font-size:10px;color:#667085;}
.dm-settings-template-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;}
.dm-settings-template-grid select{height:38px;}
.dm-settings-actions{display:flex;justify-content:flex-end;gap:8px;margin:4px 0 28px;}
.dm-settings-save-status{font-size:11px;font-weight:700;color:#667085;min-height:20px;}
.dm-settings-save-status.is-saving{color:#667085}.dm-settings-save-status.is-success{color:#087443}.dm-settings-save-status.is-error{color:#b42318}
@media(max-width:700px){.dm-settings-page-head{align-items:flex-start;flex-direction:column}.dm-settings-grid,.dm-settings-template-grid{grid-template-columns:1fr}.dm-settings-grid label.md-span-2{grid-column:auto}.dm-settings-logo-row{align-items:flex-start;flex-direction:column}.dm-settings-logo-preview{width:100%;}.dm-settings-actions{justify-content:stretch}.dm-settings-actions>*{flex:1;justify-content:center;}}

.dm-settings-theme-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;}
.dm-settings-theme-grid>button{border:1px solid #d0d5dd;border-radius:9px;background:#fff;padding:10px;text-align:left;cursor:pointer;transition:.15s ease;}
.dm-settings-theme-grid>button:hover{border-color:var(--dm-color-primary);transform:translateY(-1px);}
.dm-settings-theme-grid>button[aria-pressed="true"]{border-color:var(--dm-color-primary);box-shadow:0 0 0 2px rgba(113,75,103,.14);}
.dm-settings-theme-preview{height:54px;border-radius:7px;border:1px solid #d0d5dd;margin-bottom:8px;position:relative;overflow:hidden;}
.dm-settings-theme-preview.midnight{background:#07111f;border-color:#22344d}.dm-settings-theme-preview.graphite{background:#17191d;border-color:#353942}.dm-settings-theme-preview.light{background:#fff;}
.dm-settings-theme-preview span{position:absolute;left:9px;top:10px;width:34px;height:5px;border-radius:3px;background:#60a5fa}.dm-settings-theme-preview b{position:absolute;left:9px;top:22px;width:48px;height:5px;border-radius:3px;background:#22c55e;}
.dm-settings-theme-grid strong{display:block;font-size:11px;color:#172033}.dm-settings-theme-grid small{display:block;margin-top:2px;font-size:9px;color:#667085;}
.dm-settings-accent-row{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-top:18px;padding-top:18px;border-top:1px solid #eef0f3;}
.dm-settings-accent-copy{display:flex;flex-direction:column;gap:4px;min-width:0;}
.dm-settings-accent-copy strong{font-size:12px;font-weight:800;color:#172033;}
.dm-settings-accent-copy span{font-size:10px;color:#667085;line-height:1.45;}
.dm-settings-accent-controls{display:flex;align-items:center;gap:8px;flex:0 0 auto;}
.dm-settings-accent-picker-wrap{position:relative;width:40px;height:40px;border:1px solid #d0d5dd;border-radius:8px;background:#fff;overflow:hidden;display:grid;place-items:center;}
.dm-settings-accent-picker{position:absolute;inset:0;width:100%;height:100%;padding:0;border:0;opacity:0;cursor:pointer;}
.dm-settings-accent-swatch{width:24px;height:24px;border-radius:6px;background:var(--dm-color-primary);box-shadow:inset 0 0 0 1px rgba(0,0,0,.12),0 1px 2px rgba(16,24,40,.08);pointer-events:none;}
.dm-settings-accent-hex{width:92px!important;height:40px!important;border:1px solid #d0d5dd!important;border-radius:7px!important;padding:0 10px!important;background:#fff!important;color:#172033!important;font:600 11px ui-monospace,SFMono-Regular,Menlo,monospace!important;text-transform:uppercase;}
.dm-settings-accent-hex:focus{border-color:var(--dm-color-primary)!important;box-shadow:0 0 0 3px color-mix(in srgb,var(--dm-color-primary) 12%,transparent)!important;}
.dm-settings-accent-reset{height:40px;padding:0 12px;border:1px solid #d0d5dd;border-radius:7px;background:#fff;color:#344054;font-size:11px;font-weight:700;cursor:pointer;}
.dm-settings-accent-reset:hover{border-color:var(--dm-color-primary-border);background:var(--dm-color-primary-soft);color:var(--dm-color-primary);}
.dm-settings-accent-presets{display:flex;align-items:center;gap:8px;margin-top:12px;flex-wrap:wrap;}
.dm-settings-accent-presets button{display:inline-flex;align-items:center;gap:6px;border:1px solid #e1e4e8;border-radius:999px;background:#fff;padding:5px 9px 5px 6px;color:#475467;font-size:9px;font-weight:700;cursor:pointer;transition:.15s ease;}
.dm-settings-accent-presets button:hover{border-color:var(--dm-color-primary-border);background:var(--dm-color-primary-soft);}
.dm-settings-accent-presets button.is-active{border-color:var(--preset);box-shadow:0 0 0 2px color-mix(in srgb,var(--preset) 16%,transparent);color:#172033;}
.dm-settings-accent-presets button span{width:16px;height:16px;border-radius:50%;background:var(--preset);box-shadow:inset 0 0 0 1px rgba(0,0,0,.12);}
html.dark .dm-settings-accent-row{border-color:var(--dm-color-border);}
html.dark .dm-settings-accent-copy strong{color:#f8fafc;}
html.dark .dm-settings-accent-copy span{color:#94a3b8;}
html.dark .dm-settings-accent-picker-wrap,html.dark .dm-settings-accent-hex,html.dark .dm-settings-accent-reset,html.dark .dm-settings-accent-presets button{background:#15181d!important;border-color:#343943!important;color:#e5e7eb!important;}
html.dark .dm-settings-accent-presets button:hover,html.dark .dm-settings-accent-reset:hover{background:var(--dm-color-primary-soft)!important;border-color:var(--dm-color-primary-border)!important;color:var(--dm-color-primary)!important;}
@media(max-width:700px){.dm-settings-theme-grid{grid-template-columns:1fr;}.dm-settings-accent-row{align-items:flex-start;flex-direction:column;}.dm-settings-accent-controls{width:100%;}.dm-settings-accent-hex{flex:1;width:auto!important;}}


/* Quotation document preview: deterministic A4 sheet with exact 1-inch margins. */
.dm-quotation-preview-workspace .dm-quotation-preview-root{
  width:100%;
  display:flex;
  flex-direction:column;
  align-items:center;
}
.dm-quotation-preview-workspace .dm-quotation-preview-sheet{
  flex:0 0 auto;
  width:210mm!important;
  height:297mm!important;
  min-width:210mm!important;
  max-width:210mm!important;
  min-height:297mm!important;
  max-height:297mm!important;
  margin:0 auto 8mm!important;
}
@media(max-width:900px){
  .dm-quotation-preview-workspace .dm-quotation-preview-sheet{
    transform-origin:top center;
  }
}

/* Sales Orders intentionally share the Quotation list/search visual language. */
#tab-so-management .dm-search-filter-bar{
  flex-wrap:nowrap;
  align-items:center;
  padding:8px 10px;
  gap:6px;
  border:1px solid var(--dm-erp-border);
  border-radius:4px;
  background:#fff;
}
#tab-so-management .dm-search-box{flex:1 1 auto;min-width:260px}
#tab-so-management .dm-search-input{height:34px}
#tab-so-management .dm-filter-button,
#tab-so-management .dm-saved-filter-button,
#tab-so-management .dm-compact-select{min-height:34px}
#tab-so-management .dm-record-list-shell{
  border:1px solid var(--dm-erp-border);
  border-radius:4px;
  background:#fff;
}
#tab-so-management .dm-record-list th{
  background:#fff;
  color:#495057;
  font-size:12px;
  font-weight:600;
  padding:10px 12px;
  border-bottom:1px solid var(--dm-erp-border);
}
#tab-so-management .dm-record-list td{
  padding:10px 12px;
  border-bottom:1px solid #e9ecef;
  color:#374151;
}
#tab-so-management .dm-record-list tbody tr:hover{background:#f8f9fa}
#tab-so-management .dm-record-list .record-number{color:var(--dm-erp-primary);font-weight:600}
#tab-so-management .dm-record-list .record-customer{font-weight:500;color:#343a40}
#tab-so-management .dm-record-list .record-summary{color:#6c757d}
#tab-so-management .dm-so-fullpage-document{
  border-color:var(--dm-erp-border);
  border-radius:0 0 4px 4px;
}
#tab-so-management .dm-so-tab-section,
#tab-so-management .dm-so-summary-grid > div{
  border-color:var(--dm-erp-border);
  border-radius:4px;
}
@media(max-width:1100px){
  #tab-so-management .dm-search-filter-bar{flex-wrap:wrap}
  #tab-so-management .dm-search-box{flex:1 1 100%;min-width:0}
}

/* Sales Order list: keep search/filter controls on one compact desktop line. */
#tab-so-management .dm-so-single-line-search{flex-wrap:nowrap;overflow-x:auto;overflow-y:visible;white-space:nowrap;}
#tab-so-management .dm-so-single-line-search .dm-search-box{min-width:280px;}
#tab-so-management .dm-so-single-line-search > *{flex-shrink:0;}


/* Dashboard Quick Actions — compact, single-row fast-access toolbar */
#tab-dashboard .dm-quick-actions-panel{
  padding:14px 16px !important;
}
#tab-dashboard .dm-quick-actions-row{
  display:grid;
  grid-template-columns:repeat(6,minmax(0,1fr));
  gap:10px;
  width:100%;
}
#tab-dashboard .dm-quick-actions-row .dm-quick-action{
  min-width:0;
  min-height:64px;
  display:flex;
  align-items:center;
  justify-content:flex-start;
  gap:11px;
  padding:12px 14px;
  border-radius:6px;
  font-size:12px;
  white-space:nowrap;
}
#tab-dashboard .dm-quick-actions-row .dm-quick-action svg{
  width:24px;
  height:24px;
  stroke-width:2;
  flex:0 0 24px;
}
@media(max-width:1100px){
  #tab-dashboard .dm-quick-actions-row{
    grid-template-columns:repeat(6,minmax(145px,1fr));
    overflow-x:auto;
    scrollbar-width:thin;
  }
}
@media(max-width:700px){
  #tab-dashboard .dm-quick-actions-row{
    grid-template-columns:repeat(6,150px);
    overflow-x:auto;
    padding-bottom:3px;
  }
}

/* Invoice module */
.dm-invoice-single-line-search{display:flex;align-items:center;gap:10px;flex-wrap:nowrap;overflow-x:auto}.dm-invoice-single-line-search .dm-search-box{flex:1 1 auto;min-width:320px}.dm-invoice-list-table{min-width:1280px}.dm-invoice-list-table th,.dm-invoice-list-table td{vertical-align:middle}.dm-invoice-detail{background:#fff;border:1px solid #d8e0e8;border-radius:8px;overflow:hidden}.dm-invoice-detail-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px;padding:20px}.dm-invoice-info-card{border:1px solid #d8e0e8;border-radius:8px;padding:16px;background:#fff}.dm-invoice-info-card>div:not(.dm-section-label){display:flex;justify-content:space-between;gap:18px;margin-top:8px;font-size:12px}.dm-invoice-info-card>span{display:block;margin-top:4px;font-size:12px;color:#64748b}.dm-section-label{font-size:10px;font-weight:800;letter-spacing:.12em;text-transform:uppercase;color:#147f91;margin-bottom:8px}.dm-invoice-lines{padding:0 20px;overflow-x:auto}.dm-invoice-bottom-grid{display:grid;grid-template-columns:1.4fr .8fr;gap:16px;padding:20px}.dm-invoice-totals{border:1px solid #d8e0e8;border-radius:8px;padding:16px;align-self:start}.dm-invoice-totals>div{display:flex;justify-content:space-between;padding:7px 0;font-size:13px}.dm-invoice-totals .grand{border-top:1px solid #d8e0e8;margin-top:4px;padding-top:12px;font-size:16px;font-weight:800}.dm-invoice-pdf-extra{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:10px}.dm-invoice-pdf-extra>div{border:1px solid #d8e0e8;border-radius:5px;padding:8px;font-size:9px}.dm-invoice-pdf-extra strong{display:block;font-size:8px;text-transform:uppercase;letter-spacing:.08em;color:#147f91;margin-bottom:3px}.dm-invoice-pdf-extra span{display:block;color:#4b5563;line-height:1.4}@media(max-width:800px){.dm-invoice-detail-grid,.dm-invoice-bottom-grid{grid-template-columns:1fr}.dm-invoice-single-line-search{padding-bottom:6px}.dm-invoice-pdf-extra{grid-template-columns:1fr}}

/* Invoice payment dialog — Odoo-style payment entry */
.dm-invoice-payment-backdrop{position:fixed;inset:0;background:rgba(15,23,42,.32);z-index:1200;display:flex;align-items:center;justify-content:center;padding:20px}
.dm-invoice-payment-modal{width:min(980px,96vw);max-height:92vh;overflow:auto;background:#fff;border:1px solid #d8e0e8;border-radius:8px;box-shadow:0 24px 70px rgba(15,23,42,.24)}
.dm-invoice-payment-head{display:flex;align-items:center;justify-content:space-between;padding:24px 32px;border-bottom:1px solid #d8e0e8}.dm-invoice-payment-head h2{margin:0;font-size:28px;font-weight:800;color:#172033}.dm-invoice-payment-close{width:38px;height:38px;border:0;background:transparent;font-size:34px;line-height:1;color:#64748b;cursor:pointer}.dm-invoice-payment-close:hover{color:#172033}
.dm-invoice-payment-body{padding:28px 32px}.dm-invoice-payment-grid{display:grid;grid-template-columns:1fr 1fr;gap:22px 48px}.dm-invoice-payment-grid label{display:block;margin-bottom:7px;font-size:14px;font-weight:800;color:#172033}.dm-invoice-payment-grid input,.dm-invoice-payment-grid select,.dm-invoice-payment-grid textarea{width:100%;border:1px solid #cbd5e1;border-radius:6px;background:#fff;padding:11px 13px;font-size:15px;color:#334155;outline:none}.dm-invoice-payment-grid input:focus,.dm-invoice-payment-grid select:focus,.dm-invoice-payment-grid textarea:focus{border-color:#7b385e;box-shadow:0 0 0 2px rgba(123,56,94,.08)}.dm-invoice-payment-value{font-size:18px;color:#334155;padding:9px 0}.dm-invoice-payment-full{grid-column:1 / -1}.dm-invoice-payment-hint{margin-top:22px;padding:12px 14px;border:1px solid #d8e0e8;border-radius:6px;background:#f8fafc;color:#64748b;font-size:13px}.dm-invoice-payment-hint strong{color:#172033}.dm-invoice-payment-foot{display:flex;gap:10px;padding:20px 32px;border-top:1px solid #d8e0e8}.dm-invoice-payment-foot button{min-height:44px;padding:0 20px;border-radius:6px;font-size:15px;font-weight:800}.dm-invoice-payment-modal .odoo-primary:disabled{opacity:.45;cursor:not-allowed}
@media(max-width:700px){.dm-invoice-payment-backdrop{padding:8px}.dm-invoice-payment-head{padding:18px 20px}.dm-invoice-payment-body{padding:20px}.dm-invoice-payment-grid{grid-template-columns:1fr;gap:16px}.dm-invoice-payment-full{grid-column:auto}.dm-invoice-payment-foot{padding:16px 20px;flex-wrap:wrap}.dm-invoice-payment-foot button{flex:1}}


/* Canonical ERP command-button style — shared by Quotation, Sales Order, Invoice and Payment command bars. */
.dm-command-button{
  display:inline-flex;
  flex-direction:row;
  align-items:center;
  justify-content:center;
  gap:6px;
  min-height:38px;
  height:38px;
  min-width:0;
  padding:8px 16px;
  border:1px solid #d8dee8;
  border-radius:8px;
  background:#fff;
  color:#3f4b5f;
  font-size:12px;
  line-height:1;
  font-weight:800;
  white-space:nowrap;
  cursor:pointer;
  box-sizing:border-box;
  box-shadow:none;
  transition:background .15s ease,border-color .15s ease,color .15s ease,opacity .15s ease;
}
.dm-command-button:hover:not(:disabled){
  background:#f7f8fa;
  border-color:#cbd2dc;
  color:#273247;
}
.dm-command-button:focus-visible{outline:2px solid color-mix(in srgb,var(--dm-color-primary) 35%,transparent);outline-offset:1px}
.dm-command-button:disabled,.dm-command-button[disabled]{
  background:#f0f1f3;
  border-color:#e5e7eb;
  color:#9aa2ad;
  cursor:not-allowed;
  opacity:.65;
}
.dm-command-button.dm-command-primary{
  background:var(--dm-color-primary);
  border-color:var(--dm-color-primary);
  color:#fff;
}
.dm-command-button.dm-command-primary:hover:not(:disabled){
  background:var(--dm-color-primary-hover);
  border-color:var(--dm-color-primary-hover);
  color:#fff;
}
.dm-command-button.dm-command-success{background:#168b45;border-color:#168b45;color:#fff}
.dm-command-button.dm-command-success:hover:not(:disabled){background:#11763a;border-color:#11763a;color:#fff}
.dm-command-button.dm-command-danger{background:#fff;border-color:#e5b7bd;color:#b42318}
.dm-command-button.dm-command-danger:hover:not(:disabled){background:#fff5f5;border-color:#d99099;color:#9f1c12}
.dm-command-button.dm-command-warning{background:#fff;border-color:#e7c77b;color:#946200}
.dm-command-button.dm-command-warning:hover:not(:disabled){background:#fffaf0;border-color:#d9b35c;color:#7d5200}
.dm-command-button .lucide,.dm-command-button svg{width:16px;height:16px;flex:0 0 auto}
.dm-so-actionbar-primary .dm-command-button{min-height:38px;height:38px}
@media(max-width:700px){.dm-command-button{padding:8px 13px}}


.dm-invoice-draft-input{
  width:100%;
  min-height:38px;
  padding:8px 10px;
  border:1px solid #d8e0e8;
  border-radius:8px;
  background:#fff;
  color:#334155;
  font-size:12px;
  box-sizing:border-box;
}
.dm-invoice-draft-input:focus{
  outline:none;
  border-color:var(--dm-color-primary,#7a4b70);
  box-shadow:0 0 0 2px color-mix(in srgb,var(--dm-color-primary,#7a4b70) 12%,transparent);
}

/* Wave 12.4 Payment Receipt full-page preview — follows Quotation Preview workspace. */
.dm-payment-receipt-preview-workspace .dm-payment-receipt-preview-canvas{background:#fff;min-height:297mm;box-shadow:0 1px 4px rgba(15,23,42,.12);display:flex;justify-content:center;align-items:flex-start;overflow:auto;padding:0;margin:0 auto}
.dm-payment-receipt-preview-workspace .payment-receipt-page{flex:0 0 794px;margin:0 auto;box-shadow:none}
@media(max-width:900px){.dm-payment-receipt-preview-workspace .dm-payment-receipt-preview-canvas{justify-content:flex-start}.dm-payment-receipt-preview-workspace .payment-receipt-page{transform-origin:top left}}

/* Sales Order > Job Orders lightweight production controls */
.dm-so-jobs-table .dm-so-jo-control{min-width:150px;max-width:210px;height:36px;border:1px solid #d7dee8;border-radius:8px;background:#fff;padding:0 9px;font-size:12px;color:#344054;outline:none}.dm-so-jobs-table .dm-so-jo-control:focus{border-color:var(--accent-color,#7b486c);box-shadow:0 0 0 2px rgba(123,72,108,.10)}.dm-so-jobs-table .dm-so-jo-date{min-width:132px}.dm-so-jo-warning{display:block;margin-top:4px;color:#b54708;font-size:9px;font-weight:700}.dm-so-jo-actions{position:relative;display:flex;gap:6px;justify-content:flex-end}.dm-so-jo-more{min-width:36px;padding-left:10px!important;padding-right:10px!important;font-size:18px;line-height:1}.dm-so-jo-menu{position:absolute;right:0;top:40px;z-index:30;width:165px;background:#fff;border:1px solid #d7dee8;border-radius:9px;box-shadow:0 10px 28px rgba(16,24,40,.14);padding:5px}.dm-so-jo-menu button{display:block;width:100%;text-align:left;padding:9px 10px;border:0;background:transparent;border-radius:6px;font-size:12px;font-weight:650;color:#344054}.dm-so-jo-menu button:hover{background:#f5f7fa}.dm-so-jo-menu button.danger{color:#b42318}.dm-so-jo-menu.hidden{display:none}
.dm-so-jobs-table .dm-so-jo-control{min-width:150px;max-width:210px;height:36px;border:1px solid #d7dee8;border-radius:8px;background:#fff;padding:0 9px;font-size:12px;color:#344054}.dm-so-jobs-table .dm-so-jo-date{min-width:132px}.dm-so-jo-warning{display:block;margin-top:4px;color:#b54708;font-size:9px;font-weight:700}.dm-so-jo-actions{position:relative;display:flex;gap:6px;justify-content:flex-end}.dm-so-jo-more{min-width:36px;padding-left:10px!important;padding-right:10px!important;font-size:18px}.dm-so-jo-menu{position:absolute;right:0;top:40px;z-index:30;width:165px;background:#fff;border:1px solid #d7dee8;border-radius:9px;box-shadow:0 10px 28px rgba(16,24,40,.14);padding:5px}.dm-so-jo-menu button{display:block;width:100%;text-align:left;padding:9px 10px;border:0;background:transparent;border-radius:6px;font-size:12px;font-weight:650;color:#344054}.dm-so-jo-menu button:hover{background:#f5f7fa}.dm-so-jo-menu button.danger{color:#b42318}.dm-so-jo-menu.hidden{display:none}

/* Job Order configuration modal */
.dm-so-jo-clickable{cursor:pointer}.dm-so-jo-clickable:focus{outline:2px solid var(--accent-color,#7b486c);outline-offset:-2px}.dm-jo-config-backdrop{position:fixed;inset:0;z-index:80;background:rgba(15,23,42,.55);display:flex;align-items:center;justify-content:center;padding:24px}.dm-jo-config-modal{width:min(920px,96vw);max-height:92vh;overflow:auto;background:#fff;border-radius:14px;box-shadow:0 24px 70px rgba(15,23,42,.24)}.dm-jo-config-head{display:flex;justify-content:space-between;gap:16px;padding:20px 22px;border-bottom:1px solid #e5eaf0}.dm-jo-config-head span{font-size:10px;font-weight:800;text-transform:uppercase;letter-spacing:.08em;color:var(--accent-color,#7b486c)}.dm-jo-config-head h3{font-size:20px;margin:3px 0;color:#172033}.dm-jo-config-head p{font-size:12px;color:#667085}.dm-jo-config-head button{border:0;background:#f5f7fa;width:34px;height:34px;border-radius:8px;font-size:22px;color:#667085}.dm-jo-config-body{padding:18px 22px}.dm-jo-config-section{border:1px solid #e5eaf0;border-radius:10px;padding:14px;margin-bottom:12px}.dm-jo-config-section h4{font-size:11px;text-transform:uppercase;letter-spacing:.04em;color:#344054;margin:0 0 12px}.dm-jo-spec-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.dm-jo-spec-grid>div{background:#f8fafc;border-radius:7px;padding:9px}.dm-jo-spec-grid span{display:block;font-size:9px;text-transform:uppercase;color:#98a2b3;font-weight:700}.dm-jo-spec-grid b{display:block;margin-top:3px;font-size:12px;color:#344054}.dm-jo-edit-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.dm-jo-edit-grid label{font-size:10px;font-weight:800;color:#475467}.dm-jo-edit-grid select,.dm-jo-edit-grid input{display:block;width:100%;height:38px;margin-top:5px;border:1px solid #d7dee8;border-radius:8px;padding:0 9px;background:#fff}.dm-jo-artwork-preview{display:block;max-width:100%;max-height:300px;object-fit:contain;margin:0 auto 10px;border:1px solid #e5eaf0;border-radius:8px}.dm-jo-reference-small .dm-jo-artwork-preview{max-height:150px;margin-top:10px}.dm-jo-config-section p{font-size:11px;color:#475467;margin-top:10px}.dm-jo-config-section a{display:block;margin-top:6px}.dm-jo-config-actions{display:flex;justify-content:space-between;gap:12px;padding:14px 22px;border-top:1px solid #e5eaf0;background:#fafbfd;position:sticky;bottom:0}.dm-jo-config-actions>div{display:flex;gap:8px}@media(max-width:720px){.dm-jo-spec-grid,.dm-jo-edit-grid{grid-template-columns:1fr}.dm-jo-config-backdrop{padding:8px}.dm-jo-config-actions{display:block}.dm-jo-config-actions>div{margin-top:8px}}
/* Invoice List UI/UX R16.4 */
.dm-invoice-list-shell{overflow-x:auto}.dm-invoice-list-table{min-width:1120px;table-layout:fixed}.dm-invoice-list-table .dm-select-col{width:44px;text-align:center}.dm-invoice-list-table th:nth-child(2){width:11%}.dm-invoice-list-table th:nth-child(3){width:9%}.dm-invoice-list-table th:nth-child(4){width:16%}.dm-invoice-list-table .dm-order-summary-col{width:34%}.dm-invoice-list-table .dm-money-col{width:12%;text-align:right;white-space:nowrap}.dm-invoice-list-table th:last-child{width:10%}.dm-order-summary-cell{white-space:normal!important;vertical-align:top!important}.dm-invoice-order-summary{display:flex;flex-direction:column;gap:4px;line-height:1.35}.dm-summary-math{white-space:nowrap;color:#475569}.dm-summary-more{font-size:11px;font-weight:700;color:var(--dm-accent,#7d4f73);margin-top:2px}.dm-invoice-row-selected td{background:color-mix(in srgb,var(--dm-accent,#7d4f73) 7%,white)}.dm-invoice-row-selected{box-shadow:inset 3px 0 0 var(--dm-accent,#7d4f73)}.dm-settled-balance{color:#64748b}.dm-open-balance{color:#172033}.record-badge-info{background:#e8f1ff;color:#245ea8}.record-badge-danger{background:#feecec;color:#b42318}.dm-invoice-list-table input[type=checkbox]{width:16px;height:16px;cursor:pointer;accent-color:var(--dm-accent,#7d4f73)}
/* R16.5 Quotation detail document-family standardization */
.quotation-summary-cards>div{background:#fff;border-color:var(--dm-border,#e2e8f0)}
.dm-document-flow{display:flex;align-items:center;gap:14px;flex-wrap:wrap}.dm-document-flow>div,.dm-document-flow>button{display:flex;flex-direction:column;align-items:flex-start;padding:12px 14px;border:1px solid var(--dm-border,#e2e8f0);border-radius:10px;background:#fff}.dm-document-flow small{font-size:11px;color:#64748b;margin-top:2px}
@media(max-width:768px){.quotation-summary-cards{grid-template-columns:1fr!important}.dm-document-flow{align-items:stretch;flex-direction:column}.dm-document-flow>span{transform:rotate(90deg);align-self:flex-start;margin-left:18px}}

/* R16.7 Invoice Product / Description hierarchy */
.dm-invoice-product-name{font-weight:700;color:var(--dm-text,#172033);line-height:1.3}.dm-invoice-line-description{margin-top:4px;font-size:.9em;font-weight:400;color:#64748b;line-height:1.35;white-space:normal;overflow-wrap:anywhere}
/* Commercial Document Template Manager R34 */
.dm-settings-template-summary{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:14px 0}.dm-settings-template-summary>div{display:flex;flex-direction:column;gap:4px;padding:14px;border:1px solid var(--dm-border,#d9e0e8);border-radius:10px}.dm-settings-template-summary span{font-size:12px;color:#64748b}.dm-commercial-template-overlay{position:fixed;inset:0;z-index:10000;background:rgba(15,23,42,.62);display:flex;padding:2vh;align-items:center;justify-content:center}.dm-commercial-template-modal{width:min(1500px,98vw);height:96vh;background:#fff;color:#172033;border-radius:14px;box-shadow:0 24px 80px rgba(0,0,0,.3);display:flex;flex-direction:column;overflow:hidden}.dm-commercial-template-modal>header,.dm-commercial-template-modal>footer{padding:14px 18px;border-bottom:1px solid #e2e8f0;display:flex;align-items:center;gap:10px}.dm-commercial-template-modal>footer{border-top:1px solid #e2e8f0;border-bottom:0}.dm-commercial-template-modal h2{margin:0;font-size:20px}.dm-commercial-template-modal header p{margin:3px 0 0;font-size:12px;color:#64748b}.dm-commercial-template-modal header>div:first-child{flex:1}.dm-ct-tabs{display:flex;align-items:center;gap:8px;padding:10px 18px;border-bottom:1px solid #e2e8f0}.dm-ct-tabs [data-ct-type]{padding:8px 14px;border-radius:8px;border:1px solid #cbd5e1;background:#fff}.dm-ct-tabs [data-ct-type].active{background:var(--dm-color-primary,#714b67);color:#fff;border-color:transparent}.dm-ct-spacer{flex:1}.dm-ct-main{display:grid;grid-template-columns:minmax(420px,1fr) minmax(420px,1fr);min-height:0;flex:1}.dm-ct-editor,.dm-ct-preview{min-height:0;padding:14px;display:flex;flex-direction:column}.dm-ct-editor{border-right:1px solid #e2e8f0}.dm-ct-editor label{font-size:11px;font-weight:700}.dm-ct-editor input{display:block;width:100%;padding:8px;margin:5px 0 8px;border:1px solid #cbd5e1;border-radius:7px}.dm-ct-editor-tabs{display:flex;gap:6px;margin-bottom:6px}.dm-ct-editor textarea{flex:1;min-height:0;width:100%;resize:none;background:#0f172a;color:#e2e8f0;border:0;border-radius:8px;padding:12px;font:12px/1.5 ui-monospace,SFMono-Regular,Menlo,monospace;tab-size:2}.dm-ct-preview-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px}.dm-ct-preview-scroll{flex:1;overflow:auto;background:#e8edf3;padding:18px}.dm-ct-preview #ctPreview{min-height:0}.dm-ct-preview .dm-commercial-preview-frame{box-shadow:0 3px 18px rgba(15,23,42,.2)}.dm-ct-errors{color:#b91c1c;font-size:11px;padding-top:6px}.dm-ct-fields{padding:10px 18px;border-bottom:1px solid #e2e8f0;max-height:180px;overflow:auto;display:grid;grid-template-columns:repeat(4,1fr);gap:10px}.dm-ct-fields>div{display:flex;flex-wrap:wrap;gap:4px;align-content:start}.dm-ct-fields b{width:100%;font-size:10px;color:#64748b}.dm-ct-fields button{font:10px ui-monospace,monospace;padding:4px 6px;border:1px solid #cbd5e1;border-radius:5px;background:#fff}.hidden{display:none!important}@media(max-width:900px){.dm-ct-main{grid-template-columns:1fr;overflow:auto}.dm-ct-editor,.dm-ct-preview{min-height:70vh;border-right:0}.dm-ct-fields{grid-template-columns:1fr 1fr}.dm-settings-template-summary{grid-template-columns:1fr}}
/* R35.4.6 canonical Quotation / Invoice header */
.cd-document .cd-canonical-header{position:sticky;top:0;z-index:30;background:#fff;border-bottom:1px solid #e2e8f0;box-shadow:none;color:#172033}
.cd-document .cd-header-shell{max-width:1500px;margin:auto;padding:14px 24px;display:flex;flex-direction:column;gap:9px}
.cd-document .cd-breadcrumb{font-size:12px;color:#64748b}
.cd-document .cd-header-top{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}
.cd-document .cd-name{display:flex;align-items:center;gap:12px;min-width:0}
.cd-document .cd-document-number{font-size:22px;font-weight:700;letter-spacing:-.025em;margin:0}
.cd-document .cd-status{font-size:11px;font-weight:700;text-transform:uppercase;border:1px solid #cbd5e1;border-radius:6px;padding:4px 9px}
.cd-document .cd-meta{font-size:13px;color:#64748b}
.cd-document .cd-navigation,.cd-document .cd-toolbar{display:flex;align-items:center;flex-wrap:wrap;gap:8px}
.cd-document .cd-toolbar{padding:5px 0 0;min-height:40px}
.cd-document .cd-toolbar button{min-height:36px}
.cd-document .cd-protected-action{display:none!important}
@media(max-width:768px){.cd-document .cd-header-shell{padding:12px}.cd-document .cd-toolbar{overflow-x:auto;flex-wrap:nowrap}.cd-document .cd-toolbar>button{flex-shrink:0}}
