/* DeveInventory Workspace UI v2 — calm enterprise design system */
:root {
    --workspace-bg: #f5f7fa;
    --workspace-surface: #ffffff;
    --workspace-surface-muted: #f8fafc;
    --workspace-line: #e6eaf0;
    --workspace-line-strong: #d8dee8;
    --workspace-text: #172033;
    --workspace-muted: #697586;
    --workspace-subtle: #98a2b3;
    --workspace-primary: #0f766e;
    --workspace-primary-soft: #ecfdf9;
    --workspace-blue: #2563eb;
    --workspace-radius: 12px;
    --workspace-shadow: 0 1px 2px rgba(16,24,40,.025), 0 5px 14px rgba(16,24,40,.035);
}

html { font-size: 14px; }
body.app-page { color: var(--workspace-text); background: var(--workspace-bg); }
.app-page .main-content { padding: 26px clamp(18px,2.5vw,34px) 44px; }
.app-page .main-content > .container-fluid { max-width: 1540px; margin-inline: auto; padding-inline: 0; }

/* Shell */
.app-page .sidebar { padding: 14px 12px; background: #fff; border-right-color: var(--workspace-line); }
.app-page .sidebar-brand { min-height: 50px; padding: 4px 8px 15px; }
.app-page .sidebar-logo { width: 34px; height: 34px; border-radius: 9px; background: #0f766e; font-size: 12px; box-shadow: none; }
.app-page .sidebar-title { font-size: 15px; font-weight: 720; letter-spacing: -.025em; }
.app-page .nav-section { margin-top: 9px; }
.app-page .nav-section-title { padding: 11px 10px 6px; color: #98a2b3; font-size: 9.5px; font-weight: 750; letter-spacing: .095em; }
.app-page .nav-item { min-height: 38px; gap: 10px; margin: 1px 0; padding: 7px 9px; border-radius: 8px; color: #667085; font-size: 12.5px; font-weight: 560; }
.app-page .nav-item:hover { color: #344054; background: #f7f9fb; }
.app-page .nav-item.active { color: #0f766e; background: #edf9f7; box-shadow: inset 3px 0 #0f766e; }
.app-page .nav-item i,
.app-page .nav-item.active i { width: 20px; height: 20px; border: 0; border-radius: 0; color: #98a2b3; background: transparent; box-shadow: none; filter: none; font-size: 13px; }
.app-page .nav-item.active i { color: #0f766e; }
.app-page .sidebar-footer { padding: 10px 4px 0; border-top-color: #eef1f5; }
.app-page .sidebar-collapse-btn { min-height: 36px; color: #7a8699; border: 0; background: transparent; }

.app-page .topbar { height: 60px; padding: 0 clamp(16px,2vw,26px); background: rgba(255,255,255,.96); border-bottom-color: var(--workspace-line); box-shadow: none; }
.app-page .app-launcher-btn { width: 29px; height: 29px; grid-template-columns: repeat(3,2px); grid-template-rows: repeat(3,2px); gap: 2.5px; border-radius: 7px; background: #0f766e; box-shadow: none; }
.app-page .app-launcher-btn span { width: 2px; height: 2px; }
.app-page .topbar-brand-mark { width: 30px; height: 30px; color: #0f766e; background: #ecfdf9; border-radius: 8px; box-shadow: none; }
.app-page .topbar-brand-copy strong { color: #263244; font-size: 13px; }
.app-page .topbar-brand-copy small { font-size: 9.5px; }
.app-page .topbar-search .input-group,
.app-page .board-topbar .search-box { height: 36px; max-width: 520px; background: #f6f8fb; border-color: #e7ebf1; border-radius: 9px; box-shadow: none; }
.app-page .board-topbar .search-box:focus-within { background: #fff; border-color: #8bc7c1; box-shadow: 0 0 0 3px rgba(15,118,110,.09); }
.app-page .btn-icon { box-shadow: none; }

/* Header hierarchy */
.workspace-header { align-items: flex-start !important; gap: 16px; margin-bottom: 22px !important; }
.workspace-header h1,.workspace-header h2,.workspace-header h3,.workspace-header h4,.workspace-header .page-title { margin: 2px 0 3px !important; color: #182230; font-size: 21px !important; line-height: 1.25; font-weight: 720 !important; letter-spacing: -.028em; }
.workspace-kicker { color: #0f766e; font-size: 9.5px; font-weight: 760; letter-spacing: .09em; text-transform: uppercase; }
.workspace-header .page-subtitle,.workspace-header p,.workspace-header small { color: var(--workspace-muted) !important; font-size: 12px; }

/* Surfaces */
.app-page .workspace-surface,
.app-page .card,
.app-page .stat-card,
.app-page .summary-card { border: 1px solid var(--workspace-line); border-radius: var(--workspace-radius); background: #fff; box-shadow: var(--workspace-shadow); }
.app-page .workspace-surface:hover,
.app-page .card:hover { border-color: var(--workspace-line-strong); box-shadow: 0 3px 10px rgba(16,24,40,.055); transform: none; }
.app-page .card-header { min-height: 49px; padding: 13px 16px; background: #fff !important; border-bottom: 1px solid #edf0f4; }
.app-page .card-header h5,.app-page .card-header h6,.app-page .card-title { color: #263244; font-size: 13px; font-weight: 680; }
.app-page .card-header i { width: auto; height: auto; padding: 0; color: #0f766e; background: transparent; border-radius: 0; filter: none; }
.app-page .card-body { padding: 17px; }

/* Forms */
.workspace-form-section { overflow: hidden; }
.workspace-form-section .card-header { margin: 0; }
.workspace-form-section .card-title { display: flex; align-items: center; gap: 8px; }
.section-toggle { width: 30px; height: 30px; margin-left: auto; color: #8490a3; border: 0; border-radius: 7px; background: transparent; font-size: 10px; }
.section-toggle:hover { color: #0f766e; background: #edf9f7; }
.section-collapsed { display: none; }
.section-index { display: inline-flex; align-items: center; justify-content: center; width: 24px; height: 24px; border-radius: 7px; color: #0f766e; background: #edf9f7; font-size: 9px; font-weight: 800; letter-spacing: .04em; }
.app-page .form-label,.app-page label { margin-bottom: 6px; color: #475467; font-size: 11.5px; font-weight: 620; }
.app-page .form-control,.app-page .form-select,.app-page textarea.form-control,.app-page .select2-container--default .select2-selection--single,.app-page .select2-container--default .select2-selection--multiple { min-height: 39px; color: #253044; background-color: #fafbfc; border-color: #dfe4eb; border-radius: 8px; box-shadow: inset 0 1px 1px rgba(16,24,40,.018); font-size: 12.5px; }
.app-page .select2-container { width: 100% !important; }
.app-page .select2-container--default .select2-selection--single { display: flex; align-items: center; height: 39px; padding: 0 34px 0 11px; border: 1px solid #dfe4eb; }
.app-page .select2-container--default .select2-selection--single .select2-selection__rendered { padding: 0; color: #344054; line-height: 1.35; }
.app-page .select2-container--default .select2-selection--single .select2-selection__arrow { top: 6px; right: 7px; }
.app-page .select2-container--default .select2-selection--single .select2-selection__clear { position: absolute; right: 27px; color: #98a2b3; }
.app-page .select2-dropdown { overflow: hidden; border-color: #dfe4eb; border-radius: 9px; box-shadow: 0 12px 28px rgba(16,24,40,.12); }
.app-page .select2-search--dropdown { padding: 8px; }
.app-page .select2-search--dropdown .select2-search__field { min-height: 35px; padding: 6px 9px; border: 1px solid #dfe4eb; border-radius: 7px; outline: 0; }
.app-page .select2-results__option { padding: 8px 10px; font-size: 12px; }
.app-page .select2-container--default .select2-results__option--highlighted[aria-selected] { background: #0f766e; }
.app-page .form-control:hover,.app-page .form-select:hover { border-color: #c9d1dc; }
.app-page .form-control:focus,.app-page .form-select:focus { background: #fff; border-color: #5baaa2; box-shadow: 0 0 0 3px rgba(15,118,110,.09); }
.app-page textarea.form-control { min-height: 86px; }

/* Buttons */
.app-page .btn { min-height: 35px; padding: 7px 12px; gap: 6px; border-radius: 7px; font-size: 12px; font-weight: 620; box-shadow: none; }
.app-page .btn i { font-size: 11.5px; filter: none; }
.app-page .btn-primary,.app-page .btn-primary:focus { color: #fff; background: #0f766e; border-color: #0f766e; box-shadow: 0 1px 2px rgba(15,118,110,.15); }
.app-page .btn-primary:hover { background: #0b655e; border-color: #0b655e; box-shadow: 0 2px 5px rgba(15,118,110,.18); transform: translateY(-1px); }
.app-page .btn-outline-primary { color: #0f766e; background: #fff; border-color: #a8d5d0; }
.app-page .btn-outline-secondary { color: #475467; background: #fff; border-color: #d9dee7; }
.app-page .btn-square { width: 32px; height: 32px; min-height: 32px; padding: 0; align-items: center; justify-content: center; }
.compact-actions { gap: 3px; padding: 2px; border: 1px solid #e8ebf0; border-radius: 8px; background: #fafbfc; }
.compact-actions .btn { width: 29px; height: 29px; min-height: 29px; padding: 0; border: 0; background: transparent; }

/* Data workspace */
.workspace-table-surface > .card-body { padding: 0; }
.workspace-table-surface .dataTables_wrapper { padding: 0; }
.workspace-table-toolbar { align-items: center; margin: 0 !important; padding: 18px 20px 16px; border-bottom: 1px solid #edf0f4; background: #fff; }
.workspace-datatable > .row:last-child { align-items: center; min-height: 68px; margin: 0 !important; padding: 16px 20px 18px; border-top: 1px solid #edf0f4; background: #fbfcfd; }
.app-page .workspace-datatable > .workspace-table-toolbar:first-child { margin: 0 !important; padding: 18px 22px 16px !important; }
.app-page .workspace-datatable > .row:last-child { margin: 0 !important; padding: 16px 22px 18px !important; }
.workspace-tools { display: flex; align-items: center; gap: 6px; margin-left: auto; order: 3; }
.workspace-tools .btn { min-height: 33px; padding: 6px 9px; }
.workspace-tools .btn:last-child { width: 33px; padding: 0; justify-content: center; }
.app-page .dataTables_filter label,.app-page .dataTables_length label { color: #667085; font-size: 11.5px; font-weight: 520; }
.app-page .dataTables_filter input { width: min(260px,40vw); min-height: 34px; margin-left: 7px; padding: 6px 10px; background: #f8fafc; border: 1px solid #e0e5ec; border-radius: 8px; }
.app-page .dataTables_length select { min-height: 32px; margin: 0 5px; border-color: #e0e5ec; border-radius: 7px; }
.app-page .workspace-table { width: 100%; margin: 0 !important; color: #344054; font-size: 12px; border-collapse: separate; border-spacing: 0; }
.app-page .workspace-table thead th { height: 40px; padding: 9px 13px !important; color: #667085; background: #f8f9fb !important; border-top: 0 !important; border-bottom: 1px solid #e6eaf0 !important; font-size: 10px; font-weight: 750; letter-spacing: .045em; text-transform: uppercase; white-space: nowrap; }
.app-page .workspace-table tbody td { height: 48px; padding: 9px 13px !important; border-bottom: 1px solid #f0f2f5 !important; vertical-align: middle; }
.app-page .workspace-table thead th:first-child,
.app-page .workspace-table tbody td:first-child { padding-left: 20px !important; }
.app-page .workspace-table thead th:last-child,
.app-page .workspace-table tbody td:last-child { padding-right: 20px !important; }
.app-page .workspace-table tbody tr { transition: background .12s ease; }
.app-page .workspace-table tbody tr:hover { background: #f8fbfb !important; box-shadow: inset 3px 0 #5baaa2; transform: none; }
.app-page .workspace-table tbody tr:last-child td { border-bottom: 0 !important; }
.app-page .badge { padding: 3px 8px; border-radius: 999px; font-size: 10px; font-weight: 650; letter-spacing: .01em; }
.app-page .page-link { min-width: 31px; height: 31px; padding: 5px 8px; color: #667085; border-color: #e2e6ec; font-size: 11px; }
.app-page .page-item.active .page-link { color: #fff; background: #0f766e; border-color: #0f766e; }
.dataTables_processing { top: 76px !important; left: 50% !important; width: min(320px,80%) !important; min-height: 52px; margin: 0 !important; padding: 16px !important; transform: translateX(-50%); border: 1px solid #dfe5eb !important; border-radius: 10px; background: rgba(255,255,255,.96) !important; box-shadow: 0 12px 28px rgba(16,24,40,.12); }
.dataTables_processing::after { content: ""; display: block; width: 100%; height: 7px; margin-top: 10px; border-radius: 99px; background: linear-gradient(90deg,#edf1f4 20%,#dce8e6 42%,#edf1f4 64%); background-size: 220% 100%; animation: workspaceSkeleton 1.15s ease-in-out infinite; }
.app-page .dataTables_empty { padding: 44px 16px !important; color: #7a8699 !important; text-align: center !important; }
.app-page .dataTables_empty::before { content: "\f49e"; display: block; margin-bottom: 9px; color: #b2bcc8; font: 22px/1 "Font Awesome 6 Free"; font-weight: 900; }
@keyframes workspaceSkeleton { to { background-position: -220% 0; } }
.workspace-column-popover { position: fixed; z-index: 1090; min-width: 190px; max-height: 330px; overflow-y: auto; padding: 7px; border: 1px solid var(--workspace-line); border-radius: 10px; background: #fff; box-shadow: 0 14px 34px rgba(16,24,40,.15); }
.workspace-column-popover label { display: flex; align-items: center; gap: 8px; min-height: 32px; margin: 0; padding: 6px 8px; border-radius: 6px; cursor: pointer; }
.workspace-column-popover label:hover { background: #f5f8fa; }
.workspace-column-popover input { accent-color: #0f766e; }
.workspace-filter-drawer { width: min(390px,94vw) !important; border-left: 1px solid var(--workspace-line); }
.workspace-filter-drawer .offcanvas-header { padding: 20px; border-bottom: 1px solid var(--workspace-line); }
.workspace-filter-drawer h5 { margin: 2px 0 0; color: #1d2939; font-size: 17px; }
.drawer-kicker { color: #0f766e; font-size: 9px; font-weight: 800; letter-spacing: .1em; }
.workspace-filter-drawer .offcanvas-body { padding: 18px 20px 90px; }
.filter-field { margin-bottom: 15px; }
.filter-field label { display: block; margin-bottom: 6px; }
.filter-input-wrap { position: relative; }
.filter-input-wrap i { position: absolute; left: 12px; top: 50%; z-index: 1; color: #98a2b3; font-size: 11px; transform: translateY(-50%); }
.filter-input-wrap .form-control { padding-left: 34px; }
.drawer-actions { position: absolute; inset: auto 0 0; display: flex; justify-content: flex-end; gap: 8px; padding: 13px 20px; border-top: 1px solid var(--workspace-line); background: rgba(255,255,255,.96); }
.crud-action-group { display: inline-flex !important; align-items: center; gap: 5px; white-space: nowrap; }
.crud-action-group form { display: inline-flex !important; flex: 0 0 auto; width: 30px; height: 30px; margin: 0 !important; padding: 0 !important; }
.crud-action-group .crud-action { display: inline-flex !important; flex: 0 0 30px; align-items: center; justify-content: center; width: 30px !important; min-width: 30px !important; height: 30px !important; min-height: 30px !important; margin: 0 !important; padding: 0 !important; overflow: visible; border: 1px solid #dfe5eb !important; border-radius: 8px !important; background: #fff !important; box-shadow: 0 1px 2px rgba(16,24,40,.03); }
.crud-action-group .crud-action svg { display: block; flex: 0 0 15px; width: 15px; height: 15px; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
.app-page .workspace-table td:has(.crud-action-group) { min-width: 112px; overflow: visible !important; white-space: nowrap; }
.crud-action-view { color: #0284c7 !important; }
.crud-action-edit { color: #2563eb !important; }
.crud-action-delete { color: #dc2626 !important; }
.crud-action-view:hover,.crud-action-view:focus { border-color: #a7d8ed !important; background: #eff9fd !important; }
.crud-action-edit:hover,.crud-action-edit:focus { border-color: #b8cdfb !important; background: #eff5ff !important; }
.crud-action-delete:hover,.crud-action-delete:focus { border-color: #fecaca !important; background: #fef2f2 !important; }
.dropdown-item-danger { color: #dc2626 !important; }
.dropdown-item-danger:hover { color: #b91c1c !important; background: #fef2f2 !important; }
.workspace-toast { position: fixed; top: 72px; right: 18px; z-index: 1085; width: min(380px,calc(100vw - 24px)); animation: toastIn .22s ease-out; }
@keyframes toastIn { from { opacity: 0; transform: translateY(-8px); } }
.table-loader { display: inline-flex; align-items: center; gap: 7px; color: #667085; font-size: 11px; }
.table-loader span { width: 13px; height: 13px; border: 2px solid #d6e5e3; border-top-color: #0f766e; border-radius: 50%; animation: workspaceSpin .65s linear infinite; }
@keyframes workspaceSpin { to { transform: rotate(360deg); } }

/* Dashboard: remove the overly glossy treatment, keep useful interaction */
.dashboard-modern .dashboard-hero { padding: 0; border: 0; border-radius: 0; background: transparent; box-shadow: none; overflow: visible; }
.dashboard-modern .dashboard-hero::after,.dashboard-modern .modern-kpi-card::after { display: none; }
.dashboard-modern .dashboard-toolbar { min-height: 50px; padding: 9px 12px; border-color: var(--workspace-line); border-radius: 10px; background: #fff; box-shadow: var(--workspace-shadow); backdrop-filter: none; }
.dashboard-modern .toolbar-copy > i { width: 30px; height: 30px; color: #0f766e; background: #edf9f7; border-radius: 8px; box-shadow: none; }
.dashboard-modern .modern-kpi-card { cursor: pointer; overflow: hidden; border-color: var(--workspace-line) !important; border-radius: 12px !important; background: #fff !important; box-shadow: var(--workspace-shadow) !important; transform: none !important; }
.dashboard-modern .modern-kpi-card:hover { border-color: #a8d5d0 !important; box-shadow: 0 4px 12px rgba(16,24,40,.065) !important; transform: translateY(-2px) !important; }
.dashboard-modern .modern-kpi-card .card-body { min-height: 94px; padding: 15px; }
.dashboard-modern .modern-kpi-card .rounded-circle { width: 38px; height: 38px; border: 0; border-radius: 9px !important; background: #f5f8fa !important; box-shadow: none; }
.dashboard-modern .modern-kpi-card .fs-4 { color: #1d2939; font-size: 20px !important; }
.dashboard-modern .modern-kpi-card .small { color: #7a8699 !important; font-size: 9.5px; }
.dashboard-modern .dashboard-panel { border-color: var(--workspace-line) !important; border-radius: 12px !important; box-shadow: var(--workspace-shadow) !important; transform: none !important; }
.dashboard-modern .dashboard-panel:hover { border-color: var(--workspace-line-strong) !important; box-shadow: 0 3px 10px rgba(16,24,40,.05) !important; transform: none !important; }
.dashboard-modern .dashboard-panel .card-header i { width: auto; height: auto; background: transparent; }

/* Management inventory control tower */
.management-overview { padding: 22px; border: 1px solid #dfe6ec; border-radius: 14px; background: linear-gradient(135deg,#fff 0%,#f8fbfb 100%); box-shadow: var(--workspace-shadow); }
.management-overview-head,.dashboard-section-head { display: flex; align-items: flex-start; justify-content: space-between; gap: 18px; margin-bottom: 18px; }
.management-overview h2,.dashboard-section-head h2 { margin: 3px 0 4px; color: #182230; font-size: 18px; font-weight: 750; letter-spacing: -.02em; }
.management-overview-head p,.dashboard-section-head p { margin: 0; color: #7a8699; font-size: 11.5px; }
.health-legend { display: flex; align-items: center; gap: 14px; padding: 8px 11px; border: 1px solid #e4e9ef; border-radius: 9px; background: #fff; color: #667085; font-size: 10px; white-space: nowrap; }
.health-legend span { display: inline-flex; align-items: center; gap: 5px; }
.health-dot { width: 7px; height: 7px; border-radius: 50%; }
.health-dot-good { background: #16a34a; }.health-dot-watch { background: #f59e0b; }.health-dot-risk { background: #dc2626; }
.stock-lifecycle-grid { display: grid; grid-template-columns: 1fr 26px 1fr 26px 1fr 26px 1.1fr; align-items: center; gap: 8px; margin-bottom: 16px; }
.lifecycle-card { display: flex; align-items: center; gap: 12px; min-height: 82px; padding: 14px; border: 1px solid #e3e8ee; border-radius: 11px; background: #fff; }
.lifecycle-card > div { min-width: 0; }.lifecycle-card small,.lifecycle-card em { display: block; color: #7a8699; font-size: 9.5px; font-style: normal; }
.lifecycle-card strong { display: block; margin: 2px 0; color: #1d2939; font-size: 20px; line-height: 1.15; }
.lifecycle-icon { display: grid; place-items: center; flex: 0 0 36px; width: 36px; height: 36px; color: #fff; border-radius: 9px; background: #0f766e; }
.lifecycle-neutral { color: #475467; background: #eef2f5; }.lifecycle-in { color: #15803d; background: #ecfdf3; }.lifecycle-out { color: #dc2626; background: #fef2f2; }
.lifecycle-current { color: #fff; border-color: #0f766e; background: #0f766e; }.lifecycle-current small,.lifecycle-current em,.lifecycle-current strong { color: #fff; }.lifecycle-current em { opacity: .72; }.lifecycle-current .lifecycle-icon { background: rgba(255,255,255,.14); }
.lifecycle-arrow { color: #a6b0bd; text-align: center; font-size: 10px; }
.management-risk-grid { display: grid; grid-template-columns: repeat(9,minmax(0,1fr)); gap: 8px; }
.risk-metric { position: relative; display: flex; align-items: center; gap: 8px; min-width: 0; min-height: 63px; padding: 10px; color: #344054; border: 1px solid #e6eaf0; border-radius: 9px; background: #fff; text-decoration: none; transition: .16s ease; }
.risk-metric:hover { color: #1d2939; border-color: #b8d8d4; box-shadow: 0 4px 12px rgba(16,24,40,.06); transform: translateY(-1px); }
.risk-metric > span { display: grid; place-items: center; flex: 0 0 28px; width: 28px; height: 28px; border-radius: 7px; background: #f3f6f8; font-size: 11px; }
.risk-metric div { min-width: 0; }.risk-metric small { display: block; overflow: hidden; color: #7a8699; font-size: 8.5px; text-overflow: ellipsis; white-space: nowrap; }.risk-metric strong { display: block; font-size: 14px; }
.risk-good > span { color:#15803d;background:#ecfdf3 }.risk-info > span { color:#2563eb;background:#eff5ff }.risk-watch > span { color:#b45309;background:#fff7e6 }.risk-risk > span { color:#dc2626;background:#fef2f2 }
.metric-arrow { position: absolute; right: 7px; bottom: 7px; color: #c0c7d0; font-size: 7px; }
.dashboard-section-head { align-items: end; }.dashboard-section-head .eyebrow,.management-overview .eyebrow,.management-chart-card .eyebrow,.dead-stock-panel .eyebrow { color:#0f766e;font-size:8.5px;font-weight:800;letter-spacing:.1em; }
.warehouse-health-card { padding: 17px; overflow: hidden; border: 1px solid #e1e6ec; border-top: 3px solid #16a34a; border-radius: 12px; background: #fff; box-shadow: var(--workspace-shadow); }
.warehouse-watch { border-top-color:#f59e0b }.warehouse-risk { border-top-color:#dc2626 }.warehouse-neutral { border-top-color:#94a3b8 }
.health-help { display:inline-grid;place-items:center;width:20px;height:20px;margin-left:4px;color:#64748b;border-radius:50%;background:#f1f5f9;font-size:10px;vertical-align:2px;cursor:help }
.warehouse-health-top,.warehouse-identity,.warehouse-primary-stats,.location-usage > div,.warehouse-health-card footer { display:flex;align-items:center; }
.warehouse-health-top { justify-content:space-between;gap:12px;margin-bottom:15px }.warehouse-identity { gap:10px;min-width:0 }.warehouse-identity > span { display:grid;place-items:center;flex:0 0 36px;width:36px;height:36px;color:#0f766e;border-radius:9px;background:#edf9f7 }.warehouse-identity div{min-width:0}.warehouse-identity small{color:#8994a5;font-size:8.5px;font-weight:750}.warehouse-identity h3{overflow:hidden;margin:1px 0 0;color:#1d2939;font-size:12.5px;font-weight:720;text-overflow:ellipsis;white-space:nowrap}
.health-score { display:grid;grid-template-columns:auto auto;align-items:baseline;text-align:right;cursor:help }.health-score strong{color:#15803d;font-size:19px}.warehouse-watch .health-score strong{color:#b45309}.warehouse-risk .health-score strong{color:#dc2626}.warehouse-neutral .health-score strong{color:#64748b}.health-score small{color:#98a2b3;font-size:8px}.health-score em{grid-column:1/span 2;color:#667085;font-size:8.5px;font-style:normal}
.warehouse-primary-stats { display:grid;grid-template-columns:repeat(3,1fr);gap:1px;margin-bottom:14px;overflow:hidden;border:1px solid #e9edf1;border-radius:9px;background:#e9edf1 }.warehouse-primary-stats div{padding:10px;background:#fafbfc}.warehouse-primary-stats small{display:block;color:#8994a5;font-size:8.5px}.warehouse-primary-stats strong{display:block;margin-top:2px;color:#263244;font-size:13px}
.location-usage { margin-bottom:13px }.location-usage > div{justify-content:space-between;color:#667085;font-size:9.5px}.location-usage .progress{height:5px;margin-top:7px;border-radius:99px;background:#edf1f4}.location-usage .progress-bar{border-radius:99px;background:#0f766e}
.warehouse-risk-list{display:flex;flex-wrap:wrap;gap:6px 12px;margin-bottom:13px;color:#667085;font-size:9px}.warehouse-risk-list span{display:inline-flex;align-items:center;gap:5px}.warehouse-health-card footer{justify-content:space-between;gap:10px;padding-top:11px;border-top:1px solid #edf0f3;color:#8994a5;font-size:8.5px}.warehouse-health-card footer a{color:#0f766e;text-decoration:none;font-weight:700;white-space:nowrap}
.management-chart-card .card-header { display:flex;align-items:center;justify-content:space-between;padding:16px 18px 0;border:0 }.management-chart-card h6{margin:2px 0 0;color:#263244;font-size:13px}.threshold-note{padding:5px 8px;color:#b42318;border-radius:6px;background:#fef3f2;font-size:8.5px;font-weight:700}
.dead-stock-panel .card-header{padding:16px 18px}.dead-stock-panel .card-header h6{font-size:13px}.dead-stock-panel .card-header small{color:#8994a5;font-size:9.5px}.dead-stock-summary{text-align:right}.dead-stock-summary span{display:block;color:#8994a5;font-size:8.5px}.dead-stock-summary strong{color:#dc2626;font-size:15px}.management-table th{padding:9px 13px!important;color:#667085;background:#f8fafb!important;font-size:8.5px!important}.management-table td{padding:10px 13px!important;font-size:10.5px}.management-table td small{display:block;color:#8994a5;font-size:8.5px}.healthy-empty{display:flex;align-items:center;justify-content:center;gap:10px;padding:25px;color:#15803d}.healthy-empty i{font-size:22px}.healthy-empty strong,.healthy-empty span{display:block}.healthy-empty span{margin-top:2px;color:#7a8699;font-size:9.5px}

@media (max-width: 1399.98px) { .management-risk-grid{grid-template-columns:repeat(5,1fr)} }
@media (max-width: 991.98px) { .stock-lifecycle-grid{grid-template-columns:1fr 1fr}.lifecycle-arrow{display:none}.management-risk-grid{grid-template-columns:repeat(3,1fr)}.management-overview-head,.dashboard-section-head{align-items:flex-start;flex-direction:column}.health-legend{flex-wrap:wrap}.warehouse-health-grid>.col-12{width:50%} }
@media (max-width: 575.98px) { .management-overview{padding:14px}.stock-lifecycle-grid{grid-template-columns:1fr}.management-risk-grid{grid-template-columns:repeat(2,1fr)}.risk-metric{min-height:60px}.warehouse-health-grid>.col-12{width:100%}.health-legend{width:100%;gap:8px}.dead-stock-panel .card-header{align-items:flex-start!important;flex-direction:column}.dead-stock-summary{text-align:left}.management-table{min-width:720px}.lifecycle-card{min-height:70px} }

.alert { border: 0; border-radius: 9px; font-size: 12px; box-shadow: var(--workspace-shadow); }
.dropdown-menu { padding: 6px; border-color: var(--workspace-line); border-radius: 10px; box-shadow: 0 12px 28px rgba(16,24,40,.12); }
.dropdown-item { min-height: 34px; padding: 7px 9px; border-radius: 7px; font-size: 12px; }
.modal-content { border: 1px solid var(--workspace-line); border-radius: 14px; box-shadow: 0 20px 48px rgba(16,24,40,.16); }
.app-page .modal.fade { position: fixed; inset: 0; z-index: 1055; display: none; width: auto; max-width: none; max-height: none; overflow-x: hidden; overflow-y: auto; padding: 0; border-radius: 0; background: transparent; box-shadow: none; transform: none; }
.app-page .modal.fade.show { display: block; transform: none; }
.app-page .modal.fade .modal-dialog { width: auto; transform: translateY(-10px); }
.app-page .modal.fade.show .modal-dialog { transform: none; }
.app-page .modal-backdrop.fade { display: block; padding: 0; visibility: visible; background: #0f172a; opacity: 0; }
.app-page .modal-backdrop.show { opacity: .42; }

/* Authentication */
.page-auth { min-height: 100vh; background: radial-gradient(circle at 16% 10%,rgba(15,118,110,.08),transparent 28%),radial-gradient(circle at 88% 88%,rgba(37,99,235,.07),transparent 30%),#f5f7fa; }
.page-auth .auth-container { padding: 24px; }
.page-auth .auth-card { width: min(410px,100%); padding: 34px; border: 1px solid #e3e8ef; border-radius: 16px; box-shadow: 0 18px 50px rgba(16,24,40,.10); }
.auth-brand-mark { display: grid; place-items: center; width: 46px; height: 46px; margin: 0 auto 14px; color: #fff; background: #0f766e; border-radius: 12px; box-shadow: 0 8px 18px rgba(15,118,110,.22); }
.page-auth .auth-logo { color: #172033; font-size: 22px; letter-spacing: -.035em; }
.page-auth .auth-header p { color: #7a8699; font-size: 11.5px; }
.page-auth .input-group-text { color: #8490a3; background: #f8fafc; border-color: #dfe4eb; }
.page-auth .input-group .form-control { min-height: 42px; border-color: #dfe4eb; background: #fafbfc; font-size: 13px; }
.page-auth .btn-primary { min-height: 42px; background: #0f766e; border-color: #0f766e; }
.auth-secure { display: inline-flex; align-items: center; gap: 6px; color: #667085; font-size: 10.5px; }

/* Barcode operational workspace */
.route-barcode-scan #camera-container { overflow: hidden; border: 1px solid #dfe5eb; border-radius: 12px; background: #111827; box-shadow: inset 0 0 0 1px rgba(255,255,255,.04); }
.route-barcode-scan #scanner-video { display: block; min-height: 250px; object-fit: cover; border: 0 !important; border-radius: 0 !important; }
.route-barcode-scan #scanner-overlay { height: 2px !important; background: #22c55e !important; box-shadow: 0 0 12px rgba(34,197,94,.8); animation: scanLine 1.8s ease-in-out infinite alternate; }
@keyframes scanLine { from { top: 18%; } to { top: 82%; } }
.route-barcode-scan #scan-history > div { border-color: #eef1f4 !important; }
.mobile-scan-fab { display: none; }

/* Embedded transaction scanner */
.transaction-scan-button { box-shadow: 0 5px 12px rgba(15,118,110,.16) !important; }
.scanner-modal-content { overflow: hidden; border-radius: 16px; }
.scanner-modal-content .modal-header { align-items: flex-start; padding: 18px 20px; }
.scanner-modal-content .modal-header h5 { margin: 2px 0; color: #1d2939; font-size: 16px; }
.scanner-modal-content .modal-header small { color: #7a8699; font-size: 10px; }
.scanner-modal-content .modal-body { padding: 16px 20px; background: #f8fafb; }
.transaction-camera-shell { position: relative; min-height: 250px; overflow: hidden; border: 1px solid #dce3e9; border-radius: 13px; background: #111827; }
#transactionScannerReader { position: relative; z-index: 2; width: 100%; min-height: 250px; }
#transactionScannerReader video { width: 100% !important; min-height: 250px; object-fit: cover; }
#transactionScannerReader img { display: none; }
#transactionScannerReader__scan_region { min-height: 250px; background: transparent !important; }
#transactionScannerReader__dashboard { display: none !important; }
.camera-placeholder { position: absolute; inset: 0; z-index: 1; display: flex; align-items: center; justify-content: center; flex-direction: column; gap: 6px; color: #cbd5e1; text-align: center; }
.camera-placeholder i { margin-bottom: 4px; font-size: 28px; opacity: .7; }.camera-placeholder strong { font-size: 12px; }.camera-placeholder span { max-width: 260px; color: #94a3b8; font-size: 9.5px; }
.camera-running .camera-placeholder { display: none; }
.scanner-primary-actions { display: flex; gap: 8px; margin: 12px 0; }.scanner-primary-actions .btn { flex: 1; }.scanner-primary-actions [data-scanner-torch] { flex: 0 0 auto; }.scanner-primary-actions [data-scanner-torch].active { color: #92400e; border-color: #fbbf24; background: #fef3c7; }
.scanner-status { display: flex; align-items: flex-start; gap: 8px; margin-bottom: 12px; padding: 9px 11px; color: #475467; border: 1px solid #dfe5eb; border-radius: 8px; background: #fff; font-size: 10.5px; }.scanner-status i { margin-top: 2px; }.scanner-status-success { color:#166534;border-color:#bbf7d0;background:#f0fdf4 }.scanner-status-danger { color:#991b1b;border-color:#fecaca;background:#fef2f2 }.scanner-status-warning { color:#92400e;border-color:#fde68a;background:#fffbeb }.scanner-status-info { color:#075985;border-color:#bae6fd;background:#f0f9ff }
.scanner-result-card { display: grid; grid-template-columns: 34px 1fr auto; align-items: center; gap: 10px; margin-bottom: 12px; padding: 12px; border: 1px solid #bde7df; border-radius: 10px; background: #f0fdfa; }.scanner-result-icon { display:grid;place-items:center;width:34px;height:34px;color:#15803d;border-radius:9px;background:#dcfce7 }.scanner-result-card>div:nth-child(2){min-width:0}.scanner-result-card small,.scanner-result-card span{display:block;color:#667085;font-size:8.5px}.scanner-result-card strong{display:block;overflow:hidden;margin:2px 0;color:#1d2939;font-size:11px;text-overflow:ellipsis;white-space:nowrap}.scanner-result-qty{text-align:right}.scanner-result-qty strong{color:#0f766e;font-size:16px}
.scanner-manual-entry { padding: 12px; border: 1px solid #e1e6ec; border-radius: 10px; background: #fff; }.scanner-manual-entry label { display:block;margin-bottom:6px;color:#667085;font-size:9.5px;font-weight:650 }.scanner-manual-entry .input-group-text { color:#7a8699;background:#f8fafb;border-color:#dfe5eb }.scanner-manual-entry .form-control { min-height:38px }.scanner-manual-entry .btn { min-height:38px }
.scanner-session { display:grid;grid-template-columns:1fr auto;align-items:center;margin-top:11px;color:#667085;font-size:9.5px}.scanner-session strong{display:grid;place-items:center;width:25px;height:25px;color:#fff;border-radius:50%;background:#0f766e}.scanner-session small{grid-column:1/span 2;margin-top:2px;color:#98a2b3;font-size:8.5px}
.scanner-modal-content .modal-footer { padding: 12px 20px; border-top-color: #e7ebef; }

/* Report catalog */
.app-page .report-card { min-height: 150px; overflow: hidden; border: 1px solid var(--workspace-line) !important; border-radius: 12px; box-shadow: var(--workspace-shadow) !important; transform: none !important; }
.app-page .report-card:hover { border-color: #a8d5d0 !important; box-shadow: 0 5px 15px rgba(16,24,40,.07) !important; transform: translateY(-2px) !important; }
.app-page .report-card .card-body { display: grid; grid-template-columns: 44px 1fr; grid-template-rows: auto 1fr; column-gap: 13px; padding: 17px 17px 9px !important; text-align: left !important; }
.app-page .report-card .rounded-circle { grid-row: 1 / span 2; width: 42px; height: 42px; margin: 0 !important; padding: 0 !important; align-items: center; justify-content: center; border-radius: 10px !important; }
.app-page .report-card .rounded-circle i { font-size: 16px !important; }
.app-page .report-card .card-title { align-self: end; margin: 1px 0 3px !important; font-size: 12.5px; }
.app-page .report-card .card-text { grid-column: 2; line-height: 1.45; }
.app-page .report-card .card-footer { padding: 4px 17px 13px !important; text-align: right !important; }
.app-page .report-card .card-footer .btn { min-height: 29px; padding: 4px 9px; border: 0; background: #f7f9fb; font-size: 10.5px; }

@media (max-width: 991.98px) {
    .app-page .main-content { padding: 18px 13px 86px; }
    .workspace-header { align-items: stretch !important; }
    .workspace-header > div:last-child { display: flex; gap: 7px; overflow-x: auto; }
}
@media (max-width: 575.98px) {
    .app-page .main-content { padding: 13px 9px 82px; }
    .workspace-header { flex-direction: column; }
    .workspace-table-surface { border-radius: 10px; }
    .app-page .workspace-datatable > .workspace-table-toolbar { gap: 10px; padding: 14px !important; }
    .app-page .dataTables_filter input { width: 100%; margin: 5px 0 0; }
    .workspace-table-toolbar { align-items: stretch; }
    .workspace-table-toolbar > div { width: 100%; }
    .workspace-tools { width: 100%; order: 4; overflow-x: auto; }
    .workspace-tools .btn { flex: 1; justify-content: center; }
    .workspace-datatable .table-responsive { overflow: visible; }
    .app-page table.workspace-table.mobile-card-table,
    .app-page table.workspace-table { display: block; width: 100% !important; }
    .app-page table.workspace-table thead { display: none; }
    .app-page table.workspace-table tbody { display: grid; gap: 10px; padding: 10px; }
    .app-page table.workspace-table tbody tr { display: grid; grid-template-columns: 1fr; overflow: hidden; border: 1px solid #e5e9ef; border-radius: 10px; background: #fff; box-shadow: 0 2px 7px rgba(16,24,40,.04); }
    .app-page table.workspace-table tbody tr:hover { box-shadow: 0 2px 7px rgba(16,24,40,.04); }
    .app-page table.workspace-table tbody td { display: flex; align-items: center; gap: 7px; width: 100% !important; height: auto; min-height: 39px; padding: 8px 11px !important; border-bottom: 1px solid #f0f2f5 !important; text-align: left !important; white-space: normal; }
    .app-page table.workspace-table tbody td:first-child,
    .app-page table.workspace-table tbody td:last-child { padding-left: 11px !important; padding-right: 11px !important; }
    .app-page .workspace-datatable > .row:last-child { gap: 10px; min-height: 0; padding: 14px !important; }
    .app-page table.workspace-table tbody td::before { content: attr(data-label); flex: 0 0 38%; color: #8490a3; font-size: 9px; font-weight: 760; letter-spacing: .045em; text-transform: uppercase; }
    .app-page table.workspace-table tbody td:last-child { border-bottom: 0 !important; }
    .app-page table.workspace-table tbody td.dataTables_empty { display: block; padding: 35px 16px !important; text-align: center !important; }
    .app-page table.workspace-table tbody td.dataTables_empty::before { display: none; }
    .mobile-sticky-actions { position: sticky; bottom: 8px; z-index: 20; display: flex; justify-content: flex-end; gap: 8px; margin: 12px -2px 0; padding: 9px; border: 1px solid #e1e6ec; border-radius: 10px; background: rgba(255,255,255,.94); box-shadow: 0 10px 26px rgba(16,24,40,.14); backdrop-filter: blur(10px); }
    .mobile-scan-fab { position: fixed; right: 14px; bottom: 15px; z-index: 1035; display: inline-flex; align-items: center; gap: 7px; min-height: 44px; padding: 0 15px; color: #fff; background: #0f766e; border-radius: 999px; box-shadow: 0 10px 24px rgba(15,118,110,.28); text-decoration: none; font-size: 12px; font-weight: 700; }
    .mobile-scan-fab:hover { color: #fff; background: #0b655e; }
    .route-dashboard .dashboard-kpis > [class*="col-"] { width: 50%; }
    .route-dashboard .modern-kpi-card .card-body { min-height: 112px; flex-direction: column; align-items: flex-start !important; gap: 9px; }
    .route-dashboard .modern-kpi-card .rounded-circle { width: 32px; height: 32px; margin: 0 !important; }
    .route-dashboard .modern-kpi-card .fs-4 { font-size: 17px !important; }
    .transaction-scan-button { min-height: 38px !important; padding-inline: 12px !important; }
    .route-receiving-create .card-header:has([data-open-transaction-scanner]),
    .route-stock-out-create .card-header:has([data-open-transaction-scanner]) { align-items: stretch !important; flex-direction: column; gap: 10px; }
    .route-receiving-create .card-header:has([data-open-transaction-scanner]) > div,
    .route-stock-out-create .card-header:has([data-open-transaction-scanner]) > div { display: grid !important; grid-template-columns: 1.35fr 1fr; width: 100%; }
    .route-receiving-create [data-open-transaction-scanner],
    .route-stock-out-create [data-open-transaction-scanner] { width: 100%; justify-content: center; }
    .scanner-modal-content { min-height: 100%; border: 0; border-radius: 0; }
    .scanner-modal-content .modal-body { padding: 12px; }
    .transaction-camera-shell,#transactionScannerReader,#transactionScannerReader video,#transactionScannerReader__scan_region { min-height: 285px; }
    .scanner-modal-content .modal-footer { position: sticky; bottom: 0; z-index: 4; background: #fff; }
}
