/*
 * Soft dark theme for the NETWORK admin pages (Jeremy + Claude co-dev, 2026-09-19).
 *
 * One shared stylesheet so every network tab matches the dashboards and the Orders page, instead of a
 * dark block per page. Everything is scoped to body.net-dark, which resources/views/vendor/adminlte/
 * page.blade.php adds only when no store is selected, so store-level pages, the login page and the
 * storefront are untouched. It loads AFTER each page's own CSS and carries the extra body class, so it
 * wins over page-level light colours without editing those pages. all-admin.css is not modified.
 *
 * Palette (same as the dashboards): ground #33353a, panel #3d4046, lines rgba(255,255,255,.10),
 * text #f4f5f7, muted #bcc1cb, brand #c1122f, link #8ab4ff.
 *
 * Product images: every product thumbnail sits on a LIGHT PLATE (#f3f4f6 + thin border). A dark part on
 * a transparent background would vanish on a dark page and a white-background photo would glare.
 */

/* ---------- page ground and text ---------- */
body.net-dark .content-wrapper { background-color: #33353a !important; color: #f4f5f7; }
body.net-dark .main-footer { background: #2c2c2c; border-top-color: rgba(255, 255, 255, .08); color: #bcc1cb; }
/* Headings inherit the light text colour. Labels and plain links use :where() so they carry almost no
   specificity: they replace the browser / Bootstrap defaults but never beat a page's own class rules (the
   dashboards' double button, tiles and lists keep their colours). */
:where(body.net-dark) :where(.content-wrapper, .modal-content) label { color: #dfe2e8; }
body.net-dark .content-wrapper .text-muted, body.net-dark .modal-content .text-muted,
body.net-dark .content-wrapper small, body.net-dark .modal-content small,
body.net-dark .content-wrapper .form-text, body.net-dark .modal-content .form-text { color: #bcc1cb !important; }
body.net-dark .content-wrapper .text-dark, body.net-dark .modal-content .text-dark,
body.net-dark .content-wrapper .text-body, body.net-dark .modal-content .text-body { color: #f4f5f7 !important; }
body.net-dark .content-wrapper .text-secondary, body.net-dark .modal-content .text-secondary { color: #bcc1cb !important; }
:where(body.net-dark) :where(.content-wrapper, .modal-content) a:where(:not(.btn):not(.page-link):not(.nav-link):not(.dropdown-item):not(.badge)) { color: #8ab4ff; }
:where(body.net-dark) :where(.content-wrapper, .modal-content) a:where(:not(.btn):not(.page-link):not(.nav-link):not(.dropdown-item):not(.badge)):hover { color: #b9d2ff; }
body.net-dark .content-wrapper hr, body.net-dark .modal-content hr { border-color: rgba(255, 255, 255, .10); }
body.net-dark .content-header .breadcrumb { background: transparent; }
body.net-dark .breadcrumb-item, body.net-dark .breadcrumb-item.active, body.net-dark .breadcrumb-item + .breadcrumb-item::before { color: #bcc1cb; }
body.net-dark .content-wrapper code, body.net-dark .modal-content code { color: #fca5a5; background: rgba(0, 0, 0, .25); border-radius: 4px; padding: 1px 4px; }
body.net-dark .content-wrapper pre, body.net-dark .modal-content pre { color: #f4f5f7; background: rgba(0, 0, 0, .28); border: 1px solid rgba(255, 255, 255, .10); }

/* utilities that carry a light colour */
body.net-dark .content-wrapper .bg-white, body.net-dark .modal-content .bg-white { background-color: rgba(255, 255, 255, .04) !important; color: #f4f5f7 !important; }
body.net-dark .content-wrapper .bg-light, body.net-dark .modal-content .bg-light { background-color: rgba(255, 255, 255, .06) !important; color: #f4f5f7 !important; }
/* AdminLTE forces #1f2d3d !important on .bg-white / .bg-light and their direct links, hence the !important above and here. */
body.net-dark .content-wrapper .bg-white > a:not(.btn), body.net-dark .content-wrapper .bg-light > a:not(.btn),
body.net-dark .modal-content .bg-white > a:not(.btn), body.net-dark .modal-content .bg-light > a:not(.btn) { color: #8ab4ff !important; }
body.net-dark .content-wrapper .bg-light.border-success, body.net-dark .modal-content .bg-light.border-success { background-color: rgba(16, 185, 129, .14) !important; }
body.net-dark .content-wrapper .border, body.net-dark .modal-content .border,
body.net-dark .content-wrapper .border-top, body.net-dark .content-wrapper .border-bottom,
body.net-dark .content-wrapper .border-left, body.net-dark .content-wrapper .border-right,
body.net-dark .modal-content .border-top, body.net-dark .modal-content .border-bottom { border-color: rgba(255, 255, 255, .12) !important; }

/* ---------- cards ---------- */
body.net-dark .content-wrapper .card, body.net-dark .modal-content .card {
    background-color: #3d4046; border: 1px solid rgba(255, 255, 255, .10); color: #f4f5f7; box-shadow: none;
}
body.net-dark .content-wrapper .card .card { background-color: rgba(0, 0, 0, .12); }
body.net-dark .content-wrapper .card-header, body.net-dark .modal-content .card-header,
body.net-dark .content-wrapper .card-footer, body.net-dark .modal-content .card-footer {
    background-color: rgba(255, 255, 255, .04); border-color: rgba(255, 255, 255, .10); color: #f4f5f7;
}
body.net-dark .content-wrapper .card-title, body.net-dark .content-wrapper .card-header .btn-tool { color: #f4f5f7; }

/* ---------- tables ---------- */
body.net-dark .content-wrapper .table, body.net-dark .modal-content .table { color: #f4f5f7; }
body.net-dark .content-wrapper .table th, body.net-dark .content-wrapper .table td,
body.net-dark .modal-content .table th, body.net-dark .modal-content .table td { border-color: rgba(255, 255, 255, .08); }
body.net-dark .content-wrapper .table thead th, body.net-dark .modal-content .table thead th,
body.net-dark .content-wrapper .table .thead-light th, body.net-dark .modal-content .table .thead-light th {
    background-color: rgba(255, 255, 255, .06); border-color: rgba(255, 255, 255, .10); color: #bcc1cb;
}
body.net-dark .content-wrapper .table-striped tbody tr:nth-of-type(odd), body.net-dark .modal-content .table-striped tbody tr:nth-of-type(odd) { background-color: rgba(255, 255, 255, .03); }
body.net-dark .content-wrapper .table-hover tbody tr:hover, body.net-dark .modal-content .table-hover tbody tr:hover { background-color: rgba(255, 255, 255, .07); color: #fff; }
body.net-dark .content-wrapper .table-bordered, body.net-dark .modal-content .table-bordered { border-color: rgba(255, 255, 255, .10); }
body.net-dark .table-success, body.net-dark .table-success > td, body.net-dark .table-success > th { background-color: rgba(16, 185, 129, .16); color: #f4f5f7; }
body.net-dark .table-danger, body.net-dark .table-danger > td, body.net-dark .table-danger > th { background-color: rgba(239, 68, 68, .16); color: #f4f5f7; }
body.net-dark .table-warning, body.net-dark .table-warning > td, body.net-dark .table-warning > th { background-color: rgba(245, 158, 11, .16); color: #f4f5f7; }
body.net-dark .table-info, body.net-dark .table-info > td, body.net-dark .table-info > th { background-color: rgba(14, 165, 233, .16); color: #f4f5f7; }
body.net-dark .table-active, body.net-dark .table-active > td, body.net-dark .table-secondary, body.net-dark .table-secondary > td { background-color: rgba(255, 255, 255, .08); color: #f4f5f7; }

/* ---------- forms ---------- */
body.net-dark .content-wrapper .form-control, body.net-dark .modal-content .form-control,
body.net-dark .content-wrapper .custom-select, body.net-dark .modal-content .custom-select,
body.net-dark .content-wrapper .custom-file-label, body.net-dark .modal-content .custom-file-label,
body.net-dark .content-wrapper textarea, body.net-dark .modal-content textarea {
    background-color: rgba(0, 0, 0, .28); border-color: rgba(255, 255, 255, .16); color: #f4f5f7;
}
body.net-dark .content-wrapper .form-control::placeholder, body.net-dark .modal-content .form-control::placeholder { color: #9aa0aa; }
body.net-dark .content-wrapper .form-control:focus, body.net-dark .modal-content .form-control:focus,
body.net-dark .content-wrapper .custom-select:focus, body.net-dark .modal-content .custom-select:focus {
    background-color: rgba(0, 0, 0, .34); border-color: #8ab4ff; color: #fff; box-shadow: 0 0 0 .2rem rgba(138, 180, 255, .18);
}
body.net-dark .content-wrapper .form-control:disabled, body.net-dark .content-wrapper .form-control[readonly],
body.net-dark .modal-content .form-control:disabled, body.net-dark .modal-content .form-control[readonly] { background-color: rgba(255, 255, 255, .05); color: #bcc1cb; }
/* date and time boxes: the small calendar / clock icon and the browser's own pop-up in the dark colours (Jeremy, 2026-09-24) */
body.net-dark .content-wrapper input:is([type="date"], [type="datetime-local"], [type="month"], [type="week"], [type="time"]),
body.net-dark .modal-content input:is([type="date"], [type="datetime-local"], [type="month"], [type="week"], [type="time"]) { color-scheme: dark; }
body.net-dark .content-wrapper select option, body.net-dark .modal-content select option { background: #3d4046; color: #f4f5f7; }
body.net-dark .content-wrapper .input-group-text, body.net-dark .modal-content .input-group-text,
body.net-dark .content-wrapper .custom-file-label::after, body.net-dark .modal-content .custom-file-label::after {
    background-color: rgba(255, 255, 255, .08); border-color: rgba(255, 255, 255, .16); color: #dfe2e8;
}
body.net-dark .content-wrapper .custom-control-label::before, body.net-dark .modal-content .custom-control-label::before { background-color: rgba(0, 0, 0, .28); border-color: rgba(255, 255, 255, .30); }
body.net-dark .content-wrapper .custom-control-input:checked ~ .custom-control-label::before,
body.net-dark .modal-content .custom-control-input:checked ~ .custom-control-label::before { background-color: #0d6efd; border-color: #0d6efd; }
body.net-dark .content-wrapper .invalid-feedback, body.net-dark .modal-content .invalid-feedback,
body.net-dark .content-wrapper .text-danger, body.net-dark .modal-content .text-danger { color: #fca5a5 !important; }
body.net-dark .content-wrapper .text-success, body.net-dark .modal-content .text-success { color: #6ee7b7 !important; }
body.net-dark .content-wrapper .text-primary, body.net-dark .modal-content .text-primary,
body.net-dark .content-wrapper .text-info, body.net-dark .modal-content .text-info { color: #8ab4ff !important; }
body.net-dark .content-wrapper .text-warning, body.net-dark .modal-content .text-warning { color: #fde68a !important; }

/* summernote editor keeps a light writing surface on purpose (it edits content shown on a light storefront) */
body.net-dark .note-editor.note-frame { border-color: rgba(255, 255, 255, .16); }
body.net-dark .note-editor .note-toolbar { background: rgba(255, 255, 255, .06); border-bottom-color: rgba(255, 255, 255, .10); }
/* ...but summernote never paints that surface itself: it stayed dark, and text in its default (dark) colour - the eBay
   listing template, a pasted description - was dark on dark (staff bug report #13, Alicia 2026-09-23, List Product on
   eBay: "still can't see the text"). The writing area is white with dark text, like the page it becomes. */
body.net-dark .note-editor .note-editing-area .note-editable { background: #fff; color: #1f2430; }
body.net-dark .note-editor .note-editing-area .note-editable a { color: #1a56db; }
body.net-dark .note-editor .note-placeholder { color: #6b7280; }
/* Light AND dark mode (not scoped to net-dark): a divider line (<hr>) in a description is drawn like on wgp.com (the
   storefront's Tailwind draws it in the text colour). The admin theme's hr is 10% black, so the line looked missing in
   the editor while the store showed it (Jeremy, 2026-09-24; about 3,350 product descriptions have one). */
.note-editor .note-editing-area .note-editable hr { height: 0; border: 0; border-top: 1px solid currentColor; margin: 1rem 0; }

/* ---------- solid buttons: calmer colours for the dark theme ----------
   Stock Bootstrap solids (bright teal .btn-info for "Filter", saturated blue / green / red) glare on the dark
   ground. Same meaning, deeper tones from the dashboard palette. .btn-info and .btn-secondary are "quiet"
   actions, so they become tinted glass instead of a solid block. !important where all-admin.css forces a colour. */
body.net-dark .content-wrapper .btn-primary, body.net-dark .modal-content .btn-primary { background-color: #2f6fed; border-color: #2f6fed; color: #fff; }
body.net-dark .content-wrapper .btn-primary:hover, body.net-dark .modal-content .btn-primary:hover,
body.net-dark .content-wrapper .btn-primary:focus, body.net-dark .modal-content .btn-primary:focus { background-color: #255fd6; border-color: #255fd6; color: #fff; }
body.net-dark .content-wrapper .btn-info, body.net-dark .modal-content .btn-info { background-color: rgba(138, 180, 255, .16); border-color: rgba(138, 180, 255, .38); color: #cfe0ff; }
body.net-dark .content-wrapper .btn-info:hover, body.net-dark .modal-content .btn-info:hover,
body.net-dark .content-wrapper .btn-info:focus, body.net-dark .modal-content .btn-info:focus { background-color: rgba(138, 180, 255, .28); border-color: rgba(138, 180, 255, .55); color: #fff; }
body.net-dark .content-wrapper .btn-secondary, body.net-dark .modal-content .btn-secondary { background-color: rgba(255, 255, 255, .10) !important; border-color: rgba(255, 255, 255, .18) !important; color: #f4f5f7 !important; }
body.net-dark .content-wrapper .btn-secondary:hover, body.net-dark .modal-content .btn-secondary:hover { background-color: rgba(255, 255, 255, .18) !important; border-color: rgba(255, 255, 255, .30) !important; color: #fff !important; }
body.net-dark .content-wrapper .btn-success, body.net-dark .modal-content .btn-success { background-color: #12946a; border-color: #12946a; color: #fff; }
body.net-dark .content-wrapper .btn-success:hover, body.net-dark .modal-content .btn-success:hover { background-color: #0f7f5b; border-color: #0f7f5b; color: #fff; }
body.net-dark .content-wrapper .btn-danger, body.net-dark .modal-content .btn-danger { background-color: #c9383f; border-color: #c9383f; color: #fff; }
body.net-dark .content-wrapper .btn-danger:hover, body.net-dark .modal-content .btn-danger:hover { background-color: #b02d34; border-color: #b02d34; color: #fff; }
body.net-dark .content-wrapper .btn-warning, body.net-dark .modal-content .btn-warning { background-color: #e0941a; border-color: #e0941a; color: #1f2124; }
body.net-dark .content-wrapper .btn-warning:hover, body.net-dark .modal-content .btn-warning:hover { background-color: #c98210; border-color: #c98210; color: #1f2124; }
body.net-dark .content-wrapper .btn-dark, body.net-dark .modal-content .btn-dark { background-color: rgba(0, 0, 0, .35); border-color: rgba(255, 255, 255, .16); color: #f4f5f7; }
body.net-dark .content-wrapper .btn-dark:hover, body.net-dark .modal-content .btn-dark:hover { background-color: rgba(0, 0, 0, .5); border-color: rgba(255, 255, 255, .28); color: #fff; }
body.net-dark .content-wrapper .btn.disabled, body.net-dark .content-wrapper .btn:disabled,
body.net-dark .modal-content .btn.disabled, body.net-dark .modal-content .btn:disabled { opacity: .45; }

/* ---------- buttons that are light by default ---------- */
body.net-dark .content-wrapper .btn-default, body.net-dark .modal-content .btn-default,
body.net-dark .content-wrapper .btn-light, body.net-dark .modal-content .btn-light,
body.net-dark .content-wrapper .btn-outline-primary, body.net-dark .modal-content .btn-outline-primary,
body.net-dark .content-wrapper .btn-outline-secondary, body.net-dark .modal-content .btn-outline-secondary,
body.net-dark .content-wrapper .btn-outline-dark, body.net-dark .modal-content .btn-outline-dark {
    /* !important: all-admin.css forces .btn-outline-primary to #eef5fe with !important on every page */
    color: #f4f5f7; background-color: rgba(255, 255, 255, .08) !important; border-color: rgba(255, 255, 255, .20);
}
body.net-dark .content-wrapper .btn-default:hover, body.net-dark .modal-content .btn-default:hover,
body.net-dark .content-wrapper .btn-light:hover, body.net-dark .modal-content .btn-light:hover,
body.net-dark .content-wrapper .btn-outline-primary:hover, body.net-dark .modal-content .btn-outline-primary:hover,
body.net-dark .content-wrapper .btn-outline-secondary:hover, body.net-dark .modal-content .btn-outline-secondary:hover,
body.net-dark .content-wrapper .btn-outline-dark:hover, body.net-dark .modal-content .btn-outline-dark:hover {
    color: #fff; background-color: rgba(255, 255, 255, .18) !important; border-color: rgba(255, 255, 255, .32);
}
body.net-dark .content-wrapper .btn-outline-danger, body.net-dark .modal-content .btn-outline-danger { color: #fca5a5; border-color: rgba(239, 68, 68, .6); background-color: rgba(239, 68, 68, .08); }
body.net-dark .content-wrapper .btn-outline-danger:hover, body.net-dark .modal-content .btn-outline-danger:hover { color: #fff; background-color: #ef4444; border-color: #ef4444; }
body.net-dark .content-wrapper .btn-outline-success, body.net-dark .modal-content .btn-outline-success { color: #6ee7b7; border-color: rgba(16, 185, 129, .6); background-color: rgba(16, 185, 129, .08); }
body.net-dark .content-wrapper .btn-outline-success:hover, body.net-dark .modal-content .btn-outline-success:hover { color: #fff; background-color: #10b981; border-color: #10b981; }
body.net-dark .content-wrapper .btn-link, body.net-dark .modal-content .btn-link { color: #8ab4ff; }

/* ---------- alerts, badges, progress ---------- */
body.net-dark .content-wrapper .alert-warning, body.net-dark .modal-content .alert-warning { background: rgba(245, 158, 11, .14); border-color: rgba(245, 158, 11, .5); color: #fde68a; }
body.net-dark .content-wrapper .alert-danger, body.net-dark .modal-content .alert-danger { background: rgba(239, 68, 68, .16); border-color: rgba(239, 68, 68, .5); color: #fecaca; }
body.net-dark .content-wrapper .alert-success, body.net-dark .modal-content .alert-success { background: rgba(16, 185, 129, .16); border-color: rgba(16, 185, 129, .5); color: #a7f3d0; }
body.net-dark .content-wrapper .alert-info, body.net-dark .modal-content .alert-info,
body.net-dark .content-wrapper .alert-primary, body.net-dark .modal-content .alert-primary { background: rgba(14, 165, 233, .16); border-color: rgba(14, 165, 233, .5); color: #bae6fd; }
body.net-dark .content-wrapper .alert-secondary, body.net-dark .content-wrapper .alert-light,
body.net-dark .modal-content .alert-secondary, body.net-dark .modal-content .alert-light { background: rgba(255, 255, 255, .06); border-color: rgba(255, 255, 255, .14); color: #f4f5f7; }
body.net-dark .content-wrapper .alert .close, body.net-dark .modal-content .alert .close { color: inherit; text-shadow: none; }
body.net-dark .content-wrapper .badge-light, body.net-dark .modal-content .badge-light { background: rgba(255, 255, 255, .14); color: #f4f5f7; }
body.net-dark .content-wrapper .progress, body.net-dark .modal-content .progress { background-color: rgba(255, 255, 255, .10); }
body.net-dark .content-wrapper .callout { background: rgba(255, 255, 255, .05); color: #f4f5f7; }

/* ---------- pagination, tabs, dropdowns ---------- */
body.net-dark .content-wrapper .page-link, body.net-dark .modal-content .page-link { background: rgba(255, 255, 255, .06); border-color: rgba(255, 255, 255, .12); color: #dfe2e8; }
body.net-dark .content-wrapper .page-link:hover, body.net-dark .modal-content .page-link:hover { background: rgba(255, 255, 255, .14); color: #fff; }
body.net-dark .content-wrapper .page-item.active .page-link, body.net-dark .modal-content .page-item.active .page-link { background: #c1122f; border-color: #c1122f; color: #fff; }
body.net-dark .content-wrapper .page-item.disabled .page-link, body.net-dark .modal-content .page-item.disabled .page-link { background: rgba(255, 255, 255, .03); border-color: rgba(255, 255, 255, .08); color: #7c828c; }

body.net-dark .content-wrapper .nav-tabs, body.net-dark .modal-content .nav-tabs { border-bottom-color: rgba(255, 255, 255, .12); }
body.net-dark .content-wrapper .nav-tabs .nav-link, body.net-dark .modal-content .nav-tabs .nav-link { color: #bcc1cb; }
body.net-dark .content-wrapper .nav-tabs .nav-link:hover, body.net-dark .modal-content .nav-tabs .nav-link:hover { border-color: rgba(255, 255, 255, .12); color: #fff; }
body.net-dark .content-wrapper .nav-tabs .nav-link.active, body.net-dark .modal-content .nav-tabs .nav-link.active { background: #3d4046; border-color: rgba(255, 255, 255, .12) rgba(255, 255, 255, .12) #3d4046; color: #fff; }
body.net-dark .content-wrapper .nav-pills .nav-link:not(.active) { color: #bcc1cb; }

body.net-dark .content-wrapper .dropdown-menu, body.net-dark .modal-content .dropdown-menu { background: #46494f; border-color: rgba(255, 255, 255, .14); color: #f4f5f7; }
body.net-dark .content-wrapper .dropdown-item, body.net-dark .modal-content .dropdown-item { color: #f4f5f7; }
body.net-dark .content-wrapper .dropdown-item:hover, body.net-dark .content-wrapper .dropdown-item:focus,
body.net-dark .modal-content .dropdown-item:hover, body.net-dark .modal-content .dropdown-item:focus { background: rgba(255, 255, 255, .10); color: #fff; }
body.net-dark .content-wrapper .dropdown-divider, body.net-dark .modal-content .dropdown-divider { border-top-color: rgba(255, 255, 255, .12); }

/* ---------- popups ---------- */
body.net-dark .modal-content { background-color: #3d4046; border: 1px solid rgba(255, 255, 255, .10); color: #f4f5f7; }
body.net-dark .modal-header, body.net-dark .modal-footer { border-color: rgba(255, 255, 255, .10); }
body.net-dark .modal-footer { background-color: #36383d !important; }
body.net-dark .modal-content .close { color: #fff; text-shadow: none; opacity: .75; }
body.net-dark .modal-content .close:hover { opacity: 1; }

/* SweetAlert2 boxes ("Generate New Shipping Label", delete / confirm questions) in the same look as the popups above
   (Jeremy, 2026-09-23: "this pop and other similar pop ups"). They were plain white with a huge icon on the dark
   pages. Compact: smaller icon, tighter spacing, the theme's button colours. A colour a page sets itself
   (confirmButtonColor) is inline and still wins. */
body.net-dark .swal2-container.swal2-backdrop-show { background: rgba(0, 0, 0, .55); }
body.net-dark .swal2-popup { background: #3d4046; color: #f4f5f7; border: 1px solid rgba(255, 255, 255, .10); border-radius: 12px; padding: 18px 18px 16px; box-shadow: 0 18px 48px rgba(0, 0, 0, .45); }
body.net-dark .swal2-popup:not(.swal2-toast) { width: min(30em, calc(100vw - 32px)); }
body.net-dark .swal2-title { color: #f4f5f7; font-size: 1.3rem; font-weight: 600; padding: 4px 8px 0; }
body.net-dark .swal2-html-container { color: #c9ced6; font-size: .98rem; margin: 8px 8px 0; }
body.net-dark .swal2-popup:not(.swal2-toast) .swal2-icon { font-size: .6rem; margin: 6px auto 4px; } /* every part of the icon is sized in em */
body.net-dark .swal2-icon.swal2-question { border-color: rgba(138, 180, 255, .55); color: #8ab4ff; }
body.net-dark .swal2-icon.swal2-info { border-color: rgba(138, 180, 255, .55); color: #8ab4ff; }
body.net-dark .swal2-icon.swal2-warning { border-color: rgba(224, 148, 26, .7); color: #f0b45a; }
body.net-dark .swal2-icon.swal2-success .swal2-success-ring { border-color: rgba(18, 148, 106, .5); }
body.net-dark .swal2-icon.swal2-success [class^=swal2-success-line] { background-color: #2fbf8b; }
body.net-dark .swal2-icon.swal2-success [class^=swal2-success-circular-line], body.net-dark .swal2-icon.swal2-success .swal2-success-fix { background-color: transparent !important; }
body.net-dark .swal2-icon.swal2-error { border-color: rgba(201, 56, 63, .7); }
body.net-dark .swal2-icon.swal2-error [class^=swal2-x-mark-line] { background-color: #e5646a; }
body.net-dark .swal2-actions { margin-top: 16px; gap: 8px; }
body.net-dark .swal2-styled { margin: 0; border-radius: 8px; padding: 8px 16px; font-size: .95rem; font-weight: 500; box-shadow: none !important; }
body.net-dark .swal2-styled.swal2-confirm { background-color: #2f6fed; }
body.net-dark .swal2-styled.swal2-confirm:hover { background-image: none; background-color: #255fd6; }
body.net-dark .swal2-styled.swal2-deny { background-color: #c9383f; }
body.net-dark .swal2-styled.swal2-deny:hover { background-image: none; background-color: #b02d34; }
body.net-dark .swal2-styled.swal2-cancel { background-color: rgba(255, 255, 255, .10); border: 1px solid rgba(255, 255, 255, .18); color: #f4f5f7; }
body.net-dark .swal2-styled.swal2-cancel:hover { background-image: none; background-color: rgba(255, 255, 255, .18); }
body.net-dark .swal2-styled:focus-visible { outline: 2px solid #8ab4ff; outline-offset: 2px; }
body.net-dark .swal2-close { color: #bcc1cb; }
body.net-dark .swal2-close:hover { color: #fff; }
body.net-dark .swal2-input, body.net-dark .swal2-textarea, body.net-dark .swal2-select, body.net-dark .swal2-file { background: rgba(0, 0, 0, .22); color: #f4f5f7; border: 1px solid rgba(255, 255, 255, .18); box-shadow: none; }
body.net-dark .swal2-input:focus, body.net-dark .swal2-textarea:focus { border-color: #8ab4ff; box-shadow: 0 0 0 2px rgba(138, 180, 255, .25); }
body.net-dark .swal2-validation-message { background: rgba(201, 56, 63, .16); color: #fca5a5; }
body.net-dark .swal2-footer { border-top-color: rgba(255, 255, 255, .10); color: #bcc1cb; }
body.net-dark .swal2-timer-progress-bar { background: rgba(138, 180, 255, .55); }

/* ---------- DataTables ---------- */
body.net-dark .dataTables_wrapper, body.net-dark .dataTables_wrapper .dataTables_info,
body.net-dark .dataTables_wrapper .dataTables_length, body.net-dark .dataTables_wrapper .dataTables_filter { color: #bcc1cb; }
/* Whole-row click: rows that carry a hidden .row-primary-action link (see master.blade.php). Not scoped to
   net-dark so store-level grids get the pointer too. */
tr:has(.row-primary-action), .orders-mobile-card:has(.row-primary-action) { cursor: pointer; }
body.net-dark tr:has(.row-primary-action):hover > td { background-color: rgba(138, 180, 255, .10) !important; }
/* Loading state on every grid ("Processing..."): a soft glass pill in the theme's own greys with a small spinner, so
   it reads as part of the page instead of a dark slab or an alert. Sits just below the column headings. */
body.net-dark .dataTables_wrapper .dataTables_processing {
    top: 118px; left: 50%; margin: 0; transform: translateX(-50%); width: auto; min-width: 0; height: auto; z-index: 50;
    align-items: center; gap: 10px; padding: 10px 20px 10px 16px;
    background: rgba(61, 64, 70, .92) !important; color: #dfe2e8 !important;
    -webkit-backdrop-filter: blur(6px); backdrop-filter: blur(6px);
    border: 1px solid rgba(255, 255, 255, .14) !important; border-radius: 999px;
    box-shadow: 0 8px 24px rgba(0, 0, 0, .28) !important;
    font-size: .95rem; font-weight: 500; letter-spacing: .01em; white-space: nowrap; opacity: 1;
}
body.net-dark .dataTables_wrapper .dataTables_processing::before {
    content: ""; flex: 0 0 auto; width: 16px; height: 16px; border-radius: 50%;
    border: 2px solid rgba(255, 255, 255, .22); border-top-color: #8ab4ff;
    animation: net-dark-spin .8s linear infinite;
}
/* DataTables shows the box with an inline display:block; switch that to flex so spinner and text share a line */
body.net-dark .dataTables_wrapper .dataTables_processing[style*="block"] { display: inline-flex !important; }
@keyframes net-dark-spin { to { transform: rotate(360deg); } }
/* while loading, the rows underneath fade slightly so the pill is clearly the active thing */
body.net-dark .dataTables_wrapper .dataTables_processing[style*="block"] ~ table tbody,
body.net-dark .dataTables_wrapper .dataTables_processing[style*="block"] ~ .table-responsive tbody { opacity: .55; transition: opacity .15s; }
body.net-dark table.dataTable thead th, body.net-dark table.dataTable thead td,
body.net-dark table.dataTable.no-footer { border-bottom-color: rgba(255, 255, 255, .10); }
body.net-dark table.dataTable tbody tr { background-color: transparent; }
body.net-dark table.dataTable.stripe tbody tr.odd, body.net-dark table.dataTable.display tbody tr.odd { background-color: rgba(255, 255, 255, .03); }
body.net-dark table.dataTable.hover tbody tr:hover, body.net-dark table.dataTable.display tbody tr:hover { background-color: rgba(255, 255, 255, .07); }

/* ---------- Select2 (the dropdown is attached to <body>, outside .content-wrapper) ---------- */
body.net-dark .select2-container--default .select2-selection--single,
body.net-dark .select2-container--default .select2-selection--multiple,
body.net-dark .select2-container--bootstrap4 .select2-selection { background-color: rgba(0, 0, 0, .28); border-color: rgba(255, 255, 255, .16); color: #f4f5f7; }
body.net-dark .select2-container--default .select2-selection--single .select2-selection__rendered,
body.net-dark .select2-container--bootstrap4 .select2-selection--single .select2-selection__rendered { color: #f4f5f7; }
body.net-dark .select2-container--default .select2-selection--single .select2-selection__placeholder { color: #9aa0aa; }
body.net-dark .select2-container--default .select2-selection--single .select2-selection__arrow b { border-color: #bcc1cb transparent transparent transparent; }
body.net-dark .select2-container--default .select2-selection--multiple .select2-selection__choice,
body.net-dark .select2-container--bootstrap4 .select2-selection--multiple .select2-selection__choice { background-color: rgba(255, 255, 255, .12); border-color: rgba(255, 255, 255, .18); color: #f4f5f7; }
body.net-dark .select2-container--default .select2-selection--multiple .select2-selection__choice__remove { color: #dfe2e8; }
body.net-dark .select2-container--default .select2-search--inline .select2-search__field { color: #f4f5f7; }
body.net-dark .select2-dropdown { background-color: #46494f; border-color: rgba(255, 255, 255, .16); color: #f4f5f7; }
body.net-dark .select2-container--default .select2-search--dropdown .select2-search__field,
body.net-dark .select2-container--bootstrap4 .select2-search--dropdown .select2-search__field { background: rgba(0, 0, 0, .28); border-color: rgba(255, 255, 255, .16); color: #f4f5f7; }
body.net-dark .select2-container--default .select2-results__option,
body.net-dark .select2-container--bootstrap4 .select2-results__option { color: #f4f5f7; }
body.net-dark .select2-container--default .select2-results__option[aria-selected="true"],
body.net-dark .select2-container--default .select2-results__option--selected,
body.net-dark .select2-container--bootstrap4 .select2-results__option[aria-selected="true"] { background-color: rgba(255, 255, 255, .10); color: #fff; }
body.net-dark .select2-container--default .select2-results__option--highlighted[aria-selected],
body.net-dark .select2-container--default .select2-results__option--highlighted.select2-results__option--selectable,
body.net-dark .select2-container--bootstrap4 .select2-results__option--highlighted { background-color: #c1122f; color: #fff; }
body.net-dark .select2-container--default.select2-container--disabled .select2-selection--single { background-color: rgba(255, 255, 255, .05); }

/* ---------- shared custom pieces used on several network pages ---------- */
body.net-dark .cart-dashboard-list { border-color: rgba(255, 255, 255, .10); background: rgba(0, 0, 0, .10); }
body.net-dark .cart-dashboard-heading { color: #bcc1cb; background: rgba(255, 255, 255, .06); border-bottom-color: rgba(255, 255, 255, .10); }
body.net-dark .cart-dashboard-item { border-bottom-color: rgba(255, 255, 255, .08); color: #f4f5f7; background: transparent; }
body.net-dark .cart-dashboard-item:hover { background: rgba(255, 255, 255, .06); box-shadow: none; } /* no coloured edge on hover (the page CSS adds a blue one) */
body.net-dark .cart-dashboard-item:focus { background: rgba(255, 255, 255, .09); box-shadow: none; } /* no coloured edge on rows anywhere (Jeremy, 2026-09-19) */
body.net-dark .cart-dashboard-row small { color: #bcc1cb; }
body.net-dark .cart-dashboard-item > div:not(.cart-dashboard-customer)::before { color: #bcc1cb; }
body.net-dark .per-page-form .form-control, body.net-dark .cart-per-page .form-control { background-color: rgba(0, 0, 0, .28); border-color: rgba(255, 255, 255, .16); color: #f4f5f7; }
body.net-dark .empty-state { background: rgba(255, 255, 255, .04); border-color: rgba(255, 255, 255, .12); color: #bcc1cb; }
body.net-dark .page-shell { background: transparent; }
body.net-dark .logs-table { background: transparent; color: #f4f5f7; }
body.net-dark .logs-table thead th { background: rgba(255, 255, 255, .06); color: #bcc1cb; border-color: rgba(255, 255, 255, .10); }
body.net-dark .dt-stack-mobile table tbody tr { background: rgba(0, 0, 0, .10); border-color: rgba(255, 255, 255, .10); }
body.net-dark .stat-card, body.net-dark .status-card, body.net-dark .summary-item, body.net-dark .count-pill { background: rgba(255, 255, 255, .06); border-color: rgba(255, 255, 255, .12); color: #f4f5f7; }
body.net-dark .sortable-placeholder, body.net-dark .ui-sortable-placeholder, body.net-dark .table-row-placeholder { background: rgba(138, 180, 255, .12) !important; border: 1px dashed rgba(138, 180, 255, .6) !important; }
body.net-dark .ui-sortable-helper, body.net-dark .brand-item.dragging { background: #46494f !important; color: #f4f5f7; }

@media (max-width: 991.98px) {
    body.net-dark .cart-dashboard-list { background: transparent; }
    body.net-dark .cart-dashboard-item { border: 1px solid rgba(255, 255, 255, .10); background: rgba(0, 0, 0, .10); }
}

/* ---------- product images: the light plate ---------- */
body.net-dark .content-wrapper table td img,
body.net-dark .modal-content table td img,
body.net-dark .cart-dashboard-item img,
body.net-dark .image-preview,
body.net-dark .image-preview img {
    background-color: #f3f4f6; border: 1px solid rgba(0, 0, 0, .22); border-radius: 8px; padding: 3px; object-fit: contain;
}

/* ==================== GENERATED PAGE OVERRIDES ====================
 * Many admin pages carry their own <style> block with hard-coded light colours (white grid headings, pale
 * borders, dark grey text). Those leave white patches on the dark ground. This section is GENERATED from
 * those blocks by resources/css/tools/gen_dark_overrides.pl: for every page rule it keeps only the colour
 * declarations and maps light backgrounds to translucent white, dark text to light text and pale borders
 * to translucent lines. Image, preview, barcode and label selectors are skipped so light plates stay light.
 * Re-generate after a page's styles change:
 *     perl resources/css/tools/gen_dark_overrides.pl "$(pwd)/resources/views"
 * and replace everything from this banner to the "END GENERATED" line.
 */

/* buyback-orders/add.blade.php */
body.net-dark .buyback-table thead th { background-color: rgba(255, 255, 255, .05); border-bottom-color: rgba(255, 255, 255, .12); }

/* buyback-products/index.blade.php */
body.net-dark .ui-sortable-helper { background-color: rgba(255, 255, 255, .05); }
body.net-dark .ui-sortable-placeholder { background-color: rgba(255, 255, 255, .05); }

/* categories/empty-categories.blade.php */
body.net-dark .slider:before { background-color: rgba(255, 255, 255, .05); }

/* categories/index.blade.php */
body.net-dark .sortable-placeholder { background-color: rgba(255, 255, 255, .05); border-color: rgba(255, 255, 255, .12); }

/* fba/index.blade.php */
body.net-dark .fba-grid .fba-rec.is-saving { background-color: rgba(255, 255, 255, .05); }
body.net-dark .fba-grid .fba-rec.is-over { background-color: rgba(255, 255, 255, .05); }
body.net-dark .fba-grid th.fba-sort.asc::after { color: #bcc1cb; }
body.net-dark .fba-grid th.fba-sort.desc::after { color: #bcc1cb; }

/* footer-menu/index.blade.php */
body.net-dark .sortable-placeholder { border-color: rgba(255, 255, 255, .12); background-color: rgba(255, 255, 255, .05); }
body.net-dark .brand-item.dragging { background-color: rgba(255, 255, 255, .05); }

/* general-settings/list.blade.php */
body.net-dark .loading-spinner { color: #bcc1cb; }

/* inbound/receive/index.blade.php */
body.net-dark .order-status-filters a { color: #8ab4ff; }
body.net-dark .order-status-filters a.active { color: #f4f5f7; }
body.net-dark .receive-list { border-color: rgba(255, 255, 255, .12); }
body.net-dark .receive-heading { background-color: rgba(255, 255, 255, .05); border-bottom-color: rgba(255, 255, 255, .12); color: #bcc1cb; }
body.net-dark .receive-shipment { border-bottom-color: rgba(255, 255, 255, .12); }
body.net-dark .receive-count { color: #bcc1cb; }
body.net-dark .receive-header { background-color: rgba(255, 255, 255, .05); }
body.net-dark .receive-scanner { background-color: rgba(255, 255, 255, .05); border-bottom-color: rgba(255, 255, 255, .12); }
body.net-dark .receive-complete-row { background-color: rgba(16, 185, 129, .14) !important; }
body.net-dark .receive-complete-row td { background-color: rgba(16, 185, 129, .14) !important; }
body.net-dark #completedSection .card-header { border-bottom-color: rgba(255, 255, 255, .12); }
body.net-dark .receive-shipment { border-color: rgba(255, 255, 255, .12); }
body.net-dark .receive-shipment>div:before { color: #bcc1cb; }
body.net-dark .receive-without-shipment-icon { background-color: rgba(255, 255, 255, .05); color: #8ab4ff; }

/* inbound/shipments.blade.php */
body.net-dark .shipment-summary { background-color: rgba(255, 255, 255, .05); border-color: rgba(255, 255, 255, .12); }
body.net-dark .shipment-summary span,
body.net-dark .shipment-meta span { color: #bcc1cb; }
body.net-dark .shipment-summary strong { color: #f4f5f7; }
body.net-dark .cancellation-summary { background-color: rgba(255, 255, 255, .05); border-color: rgba(255, 255, 255, .12); }
body.net-dark .shipment-card { border-color: rgba(255, 255, 255, .12); }
body.net-dark .shipment-card-header { background-color: rgba(255, 255, 255, .05); }
body.net-dark .cancellation-card { border-color: rgba(255, 255, 255, .12); }
body.net-dark .cancellation-card .shipment-card-header { background-color: rgba(255, 255, 255, .05); }
body.net-dark .cancellation-status { background-color: rgba(255, 255, 255, .05); border-color: rgba(255, 255, 255, .12); }
body.net-dark .shipment-meta strong { color: #f4f5f7; }
body.net-dark .shipment-items-table thead th { background-color: rgba(255, 255, 255, .05); border-top-color: rgba(255, 255, 255, .12); border-bottom-color: rgba(255, 255, 255, .12); color: #bcc1cb; }
body.net-dark .quantity-pill { background-color: rgba(255, 255, 255, .05); }
body.net-dark .cancelled-quantity-pill { background-color: rgba(255, 255, 255, .05); }
body.net-dark .discrepancy-section { background-color: rgba(255, 255, 255, .05); }
body.net-dark .discrepancy-count { background-color: rgba(245, 158, 11, .14); }
body.net-dark .reconciled-message { background-color: rgba(255, 255, 255, .05); }
body.net-dark .discrepancy-table { background-color: rgba(255, 255, 255, .05); border-color: rgba(255, 255, 255, .12); }
body.net-dark .discrepancy-table th { background-color: rgba(255, 255, 255, .05); border-bottom-color: rgba(255, 255, 255, .12); }
body.net-dark .discrepancy-quantity.unshipped { background-color: rgba(245, 158, 11, .14); }
body.net-dark .discrepancy-quantity.over-shipped { background-color: rgba(255, 255, 255, .05); }
body.net-dark .empty-shipments { border-color: rgba(255, 255, 255, .12); }

/* inventory/index.blade.php */
body.net-dark .inventory-restock-level-btn { color: #bcc1cb; }
body.net-dark .inventory-restock-level-btn:hover { color: #8ab4ff; }
body.net-dark .inventory-meta-item { color: #bcc1cb; }
body.net-dark .inventory-meta-item strong { color: #bcc1cb; }
body.net-dark .inventory-stack-table tbody tr { border-color: rgba(255, 255, 255, .12); background-color: rgba(255, 255, 255, .05) !important; }
body.net-dark .inventory-stack-table tbody td { border-top-color: rgba(255, 255, 255, .12); }
body.net-dark .inventory-stack-table tbody td::before { color: #bcc1cb; }
body.net-dark .search-location-row:hover { background-color: rgba(255, 255, 255, .05); }
body.net-dark .inventory-weight-btn { color: #bcc1cb; }
body.net-dark .inventory-weight-btn:hover { color: #8ab4ff; }
body.net-dark .adjust-qty-trigger,
body.net-dark .adjust-qty-trigger[readonly] { background-color: rgba(255, 255, 255, .05); }
body.net-dark .adjust-quantity-sku { color: #f4f5f7; }
body.net-dark .adjust-quantity-location { color: #bcc1cb; }
body.net-dark .move-quantity-keypad { background-color: rgba(255, 255, 255, .05); border-color: rgba(255, 255, 255, .12); }
body.net-dark .quantity-key { border-color: rgba(255, 255, 255, .12); background-color: rgba(255, 255, 255, .05); color: #f4f5f7; }
body.net-dark .quantity-key:hover { background-color: rgba(255, 255, 255, .05); }
body.net-dark .quantity-key:active { background-color: rgba(255, 255, 255, .05); }
body.net-dark .quantity-key.keypad-clear:hover { background-color: rgba(255, 255, 255, .05); }

/* marketplaces/add.blade.php */
body.net-dark .marketplace-editor { color: #8ab4ff; }
body.net-dark .marketplace-shell { background-color: rgba(255, 255, 255, .05); border-color: rgba(255, 255, 255, .12); }
body.net-dark .marketplace-header { border-bottom-color: rgba(255, 255, 255, .12); }
body.net-dark .eyebrow { color: #bcc1cb; }
body.net-dark .page-subtitle,
body.net-dark .section-heading p,
body.net-dark .tool-item span,
body.net-dark .form-group small,
body.net-dark .map-header small { color: #bcc1cb; }
body.net-dark .btn-back { background-color: rgba(255, 255, 255, .05); border-color: rgba(255, 255, 255, .12); color: #bcc1cb; }
body.net-dark .btn-back:hover { background-color: rgba(255, 255, 255, .05); color: #8ab4ff; }
body.net-dark .status-pill { border-color: rgba(255, 255, 255, .12); }
body.net-dark .status-pill.is-active,
body.net-dark .status-pill.is-connected { background-color: rgba(255, 255, 255, .05); border-color: rgba(255, 255, 255, .12); }
body.net-dark .status-pill.is-inactive,
body.net-dark .status-pill.is-muted { background-color: rgba(255, 255, 255, .05); color: #bcc1cb; }
body.net-dark .settings-panel { border-color: rgba(255, 255, 255, .12); }
body.net-dark .section-heading { border-bottom-color: rgba(255, 255, 255, .12); }
body.net-dark .section-icon { background-color: rgba(255, 255, 255, .05); color: #8ab4ff; }
body.net-dark .choice-box { background-color: rgba(255, 255, 255, .05); border-color: rgba(255, 255, 255, .12); }
body.net-dark .formula-note { background-color: rgba(255, 255, 255, .05); border-color: rgba(255, 255, 255, .12); color: #bcc1cb; }
body.net-dark .shipping-map-row { background-color: rgba(255, 255, 255, .05); border-color: rgba(255, 255, 255, .12); }
body.net-dark .map-field span { color: #bcc1cb; }
body.net-dark .map-arrow { color: #bcc1cb; }
body.net-dark .tool-item { border-color: rgba(255, 255, 255, .12); }
body.net-dark .connection-state { background-color: rgba(255, 255, 255, .05); border-color: rgba(255, 255, 255, .12); }
body.net-dark .token-text { color: #bcc1cb; }
body.net-dark .form-footer { background-color: rgba(255, 255, 255, .05); border-top-color: rgba(255, 255, 255, .12); }
body.net-dark .export-status-pill.pending { background-color: rgba(245, 158, 11, .14); }
body.net-dark .export-status-pill.processing { background-color: rgba(255, 255, 255, .05); color: #8ab4ff; }
body.net-dark .export-status-pill.completed { background-color: rgba(255, 255, 255, .05); border-color: rgba(255, 255, 255, .12); }
body.net-dark .export-status-pill.failed { background-color: rgba(255, 255, 255, .05); border-color: rgba(255, 255, 255, .12); }
body.net-dark .hazmat-list { background-color: rgba(255, 255, 255, .05); border-color: rgba(255, 255, 255, .12); }
body.net-dark .hazmat-item { border-color: rgba(255, 255, 255, .12); background-color: rgba(255, 255, 255, .05); }
body.net-dark .hazmat-item:hover { background-color: rgba(255, 255, 255, .05); }

/* marketplaces/create-ebay-listing.blade.php */
body.net-dark .card-header { background-color: rgba(255, 255, 255, .05); }

/* marketplaces/index.blade.php */
body.net-dark .marketplace-page { background-color: rgba(255, 255, 255, .05); border-color: rgba(255, 255, 255, .12); }
body.net-dark .marketplace-header h3 { color: #8ab4ff; }
body.net-dark .marketplace-table-wrap { border-color: rgba(255, 255, 255, .12); }
body.net-dark #marketplacesTable thead th { background-color: rgba(255, 255, 255, .05); border-bottom-color: rgba(255, 255, 255, .12); color: #f4f5f7; }
body.net-dark #marketplacesTable tbody td { color: #f4f5f7; }
body.net-dark .sync-timer-lines span { color: #bcc1cb; }
body.net-dark .sync-timer-lines strong { color: #8ab4ff; }
body.net-dark .sync-process-status { background-color: rgba(255, 255, 255, .05); border-color: rgba(255, 255, 255, .12); color: #bcc1cb; }
body.net-dark .sync-process-status small { color: #bcc1cb; }
body.net-dark .sync-status-queued { background-color: rgba(14, 165, 233, .14); color: #8ab4ff; }
body.net-dark .sync-status-processing { background-color: rgba(255, 255, 255, .05); color: #8ab4ff; }
body.net-dark .sync-status-success { background-color: rgba(255, 255, 255, .05); border-color: rgba(255, 255, 255, .12); }
body.net-dark .sync-status-failed { background-color: rgba(255, 255, 255, .05); border-color: rgba(255, 255, 255, .12); }

/* marketplaces/missing-database-matches.blade.php */
body.net-dark .section-title { border-bottom-color: rgba(255, 255, 255, .12); }
body.net-dark .per-page-form label { color: #bcc1cb; }
body.net-dark .empty-state { background-color: rgba(255, 255, 255, .05); border-color: rgba(255, 255, 255, .12); color: #bcc1cb; }
body.net-dark .pagination-summary { color: #bcc1cb; }

/* marketplaces/product-listings.blade.php */
body.net-dark .page-shell { background-color: rgba(255, 255, 255, .05); border-color: rgba(255, 255, 255, .12); }
body.net-dark .page-header { background-color: rgba(255, 255, 255, .05); border-color: rgba(255, 255, 255, .12); }
body.net-dark .page-header h3 { color: #8ab4ff; }
body.net-dark .page-header p,
body.net-dark .sync-panel p,
body.net-dark .section-heading p,
body.net-dark .form-group small,
body.net-dark .marketplace-table td span,
body.net-dark .pagination-summary { color: #bcc1cb; }
body.net-dark .status-card { background-color: rgba(255, 255, 255, .05); border-color: rgba(255, 255, 255, .12); }
body.net-dark .status-card-success { border-color: rgba(255, 255, 255, .12); }
body.net-dark .status-card-success .status-icon,
body.net-dark .summary-item-enabled .summary-icon { background-color: rgba(255, 255, 255, .05); }
body.net-dark .status-card-primary .status-icon,
body.net-dark .summary-item-count .summary-icon { background-color: rgba(255, 255, 255, .05); color: #8ab4ff; }
body.net-dark .status-card span,
body.net-dark .status-card small { color: #bcc1cb; }
body.net-dark .status-card strong { color: #8ab4ff; }
body.net-dark .summary-item,
body.net-dark .sync-panel,
body.net-dark .settings-panel { border-color: rgba(255, 255, 255, .12); }
body.net-dark .summary-item { background-color: rgba(255, 255, 255, .05); }
body.net-dark .summary-item-rule .summary-icon { background-color: rgba(255, 255, 255, .05); color: #8ab4ff; }
body.net-dark .summary-item span { color: #bcc1cb; }
body.net-dark .summary-item strong { color: #8ab4ff; }
body.net-dark .mapping-help { background-color: rgba(255, 255, 255, .05); border-color: rgba(255, 255, 255, .12); }
body.net-dark .mapping-help strong { color: #8ab4ff; }
body.net-dark .mapping-help span { color: #bcc1cb; }
body.net-dark .components-panel { background-color: rgba(255, 255, 255, .05); border-color: rgba(255, 255, 255, .12); }
body.net-dark .components-heading { border-bottom-color: rgba(255, 255, 255, .12); }
body.net-dark .components-heading p { color: #bcc1cb; }
body.net-dark .component-row { background-color: rgba(255, 255, 255, .05); border-color: rgba(255, 255, 255, .12); }
body.net-dark .mapping-footer { border-top-color: rgba(255, 255, 255, .12); }
body.net-dark .sync-check { background-color: rgba(255, 255, 255, .05); border-color: rgba(255, 255, 255, .12); }
body.net-dark .mapped-filter-form label,
body.net-dark .per-page-form label { color: #bcc1cb; }
body.net-dark .marketplace-table { border-color: rgba(255, 255, 255, .12); }
body.net-dark .marketplace-table thead th { background-color: rgba(255, 255, 255, .05); border-bottom-color: rgba(255, 255, 255, .12); }
body.net-dark .action-btn { background-color: rgba(255, 255, 255, .05); border-color: rgba(255, 255, 255, .12); }
body.net-dark .action-btn.is-warning:hover { background-color: rgba(245, 158, 11, .14); }
body.net-dark .action-btn.is-success:hover { background-color: rgba(255, 255, 255, .05); }
body.net-dark .action-btn.is-danger:hover { background-color: rgba(255, 255, 255, .05); }
body.net-dark .sync-status-message.is-success { background-color: rgba(255, 255, 255, .05); border-color: rgba(255, 255, 255, .12); }
body.net-dark .sync-status-message.is-danger { background-color: rgba(255, 255, 255, .05); }
body.net-dark .status-badge.is-success { background-color: rgba(255, 255, 255, .05); }
body.net-dark .status-badge.is-muted { background-color: rgba(255, 255, 255, .05); color: #bcc1cb; }

/* marketplaces/sync-logs.blade.php */
body.net-dark .page-header { border-bottom-color: rgba(255, 255, 255, .12); }
body.net-dark .page-header p,
body.net-dark .section-heading p,
body.net-dark .pagination-summary { color: #bcc1cb; }
body.net-dark .filter-panel,
body.net-dark .settings-panel { border-color: rgba(255, 255, 255, .12); }
body.net-dark .filter-grid label { color: #bcc1cb; }
body.net-dark .count-pill { background-color: rgba(255, 255, 255, .05); color: #bcc1cb; }
body.net-dark .logs-table { border-color: rgba(255, 255, 255, .12); }
body.net-dark .logs-table thead th { background-color: rgba(255, 255, 255, .05); border-bottom-color: rgba(255, 255, 255, .12); }
body.net-dark .logs-table td span,
body.net-dark .logs-table td small { color: #bcc1cb; }
body.net-dark .status-badge.is-warning { background-color: rgba(245, 158, 11, .14); }
body.net-dark .status-badge.is-info { background-color: rgba(14, 165, 233, .14); color: #8ab4ff; }
body.net-dark .status-badge.is-danger { background-color: rgba(255, 255, 255, .05); }

/* multiple-order-returns/add.blade.php */
body.net-dark .return-item-warning { background-color: rgba(245, 158, 11, .14); }

/* network/cycle-count/index.blade.php */
body.net-dark .cycle-count-table tbody tr:hover { background-color: rgba(255, 255, 255, .05); }
body.net-dark .cycle-count-badge { background-color: rgba(255, 255, 255, .05); color: #8ab4ff; }
body.net-dark .cycle-count-row-selected { background-color: rgba(16, 185, 129, .14) !important; }
body.net-dark .cycle-count-row-selected td { background-color: rgba(16, 185, 129, .14) !important; }

/* network/fba/partials/style.blade.php */
body.net-dark .fba-row-done { background-color: rgba(255, 255, 255, .05); }
body.net-dark .fba-row-done:hover { background-color: rgba(255, 255, 255, .05) !important; }

/* network/fba/show.blade.php */
body.net-dark .fba-totals-row { border-top-color: rgba(255, 255, 255, .12); color: #f4f5f7; }
body.net-dark .fba-summary { background-color: rgba(255, 255, 255, .05); border-color: rgba(255, 255, 255, .12); }
body.net-dark .process-header { background-color: rgba(255, 255, 255, .05); border-bottom-color: rgba(255, 255, 255, .12); }
body.net-dark .scanner-wrapper { background-color: rgba(255, 255, 255, .05); border-bottom-color: rgba(255, 255, 255, .12); }
body.net-dark .scanner-box i { color: #8ab4ff; }
body.net-dark .process-footer { background-color: rgba(255, 255, 255, .05); }
body.net-dark .fba-process-table tbody tr.table-success { background-color: rgba(255, 255, 255, .05); }
body.net-dark .fba-process-table tbody tr.table-danger { background-color: rgba(255, 255, 255, .05); }
body.net-dark .fba-process-table tbody tr.just-scanned td { background-color: rgba(245, 158, 11, .14); }
body.net-dark #fbaScan.is-invalid { background-color: rgba(255, 255, 255, .05); }
body.net-dark .fba-copy:hover { color: #8ab4ff; }
body.net-dark .shipping-modal .modal-footer { background-color: rgba(255, 255, 255, .05); border-top-color: rgba(255, 255, 255, .12); }
body.net-dark .shipping-header { background-color: rgba(255, 255, 255, .05); border-bottom-color: rgba(255, 255, 255, .12); }
body.net-dark .shipping-card { background-color: rgba(255, 255, 255, .05); border-color: rgba(255, 255, 255, .12); }
body.net-dark .shipping-label { color: #f4f5f7; }
body.net-dark .shipping-card .input-group-text { background-color: rgba(255, 255, 255, .05); }
body.net-dark .dimension-preset-card { border-color: rgba(255, 255, 255, .12); background-color: rgba(255, 255, 255, .05); }
body.net-dark .dimension-preset-card.active { border-color: #10b981; background-color: rgba(16, 185, 129, .16); box-shadow: 0 0 0 1px #10b981; }
body.net-dark .dimension-preset-size { color: #bcc1cb; }

/* network/verify-order/rules.blade.php */
body.net-dark .rule-wrapper { background-color: rgba(255, 255, 255, .05); }
body.net-dark .condition-row,
body.net-dark .action-row { background-color: rgba(255, 255, 255, .05); }

/* orders/add.blade.php */
body.net-dark .dt-stack-mobile table tbody tr { border-color: rgba(255, 255, 255, .12); background-color: rgba(255, 255, 255, .05) !important; }
body.net-dark .dt-stack-mobile table tbody td { border-top-color: rgba(255, 255, 255, .12); }
body.net-dark .dt-stack-mobile table tbody td::before { color: #bcc1cb; }
body.net-dark .product-actions .fa-edit { color: #8ab4ff; }
body.net-dark ul.order-notes li .note_content { background-color: rgba(255, 255, 255, .05); }
body.net-dark ul.order-notes li .note_content::after { border-color: rgba(255, 255, 255, .12); }
body.net-dark ul.order-notes li.system-note .note_content { background-color: rgba(255, 255, 255, .05); }
body.net-dark ul.order-notes li.system-note .note_content::after { border-color: rgba(255, 255, 255, .12); }
body.net-dark .add_note { border-top-color: rgba(255, 255, 255, .12); }
body.net-dark .add_note select { color: #f4f5f7; background-color: rgba(255, 255, 255, .05); }
body.net-dark button.add_note.button,
body.net-dark button.order_tracking.button { color: #8ab4ff; background-color: rgba(255, 255, 255, .05); }

/* orders/index.blade.php */
body.net-dark .status_filter { color: #f4f5f7; }
body.net-dark .status_filter.active-status { color: #8ab4ff; }
body.net-dark .count { color: #bcc1cb; }
body.net-dark .orders-grid-wrap { border-color: rgba(255, 255, 255, .12); background-color: rgba(255, 255, 255, .05); }
body.net-dark .orders-grid-wrap #table1 thead th { color: #bcc1cb; background-color: rgba(255, 255, 255, .05); border-bottom-color: rgba(255, 255, 255, .12); }
body.net-dark .orders-grid-wrap #table1 tbody td { border-top-color: rgba(255, 255, 255, .12); }
body.net-dark .orders-grid-wrap #table1 tbody tr:hover { background-color: rgba(255, 255, 255, .05); }
body.net-dark .orders-grid-wrap #table1 tbody small { color: #bcc1cb; }
body.net-dark .orders-grid-wrap #table1 tfoot th { background-color: rgba(255, 255, 255, .05); border-top-color: rgba(255, 255, 255, .12); }
body.net-dark .orders-mobile-copy { color: #bcc1cb; }
body.net-dark .orders-mobile-status { background-color: rgba(255, 255, 255, .05); border-color: rgba(255, 255, 255, .12); color: #f4f5f7; }
body.net-dark .orders-mobile-status.active-status { background-color: rgba(255, 255, 255, .05); color: #8ab4ff; }
body.net-dark .orders-mobile-per-page label { color: #bcc1cb; }
body.net-dark .orders-mobile-card { border-color: rgba(255, 255, 255, .12); }
body.net-dark .orders-mobile-name { color: #8ab4ff; }
body.net-dark .orders-mobile-label { color: #bcc1cb; }
body.net-dark .orders-mobile-value { color: #8ab4ff; }
body.net-dark .orders-mobile-empty { border-color: rgba(255, 255, 255, .12); color: #bcc1cb; }
body.net-dark .orders-mobile-total { border-top-color: rgba(255, 255, 255, .12); }
body.net-dark .orders-mobile-total span,
body.net-dark .orders-mobile-total strong { color: #f4f5f7; }

/* package-block-methods/index.blade.php */
body.net-dark .package-shipping-card { border-color: rgba(255, 255, 255, .12); }
body.net-dark .package-page-header { background-color: rgba(255, 255, 255, .05); border-bottom-color: rgba(255, 255, 255, .12); }
body.net-dark .package-page-header .page-description { color: #bcc1cb; }
body.net-dark .package-card-body { background-color: rgba(255, 255, 255, .05); }
body.net-dark .package-item { background-color: rgba(255, 255, 255, .05); border-bottom-color: rgba(255, 255, 255, .12); }
body.net-dark .package-name { color: #f4f5f7; }
body.net-dark .package-dimensions { color: #bcc1cb; }
body.net-dark .shipping-label { color: #bcc1cb; }
body.net-dark .package-card-footer { background-color: rgba(255, 255, 255, .05); border-top-color: rgba(255, 255, 255, .12); }
body.net-dark .empty-package-state { background-color: rgba(255, 255, 255, .05); color: #bcc1cb; }
body.net-dark .empty-package-title { color: #bcc1cb; }

/* partners/logs.blade.php */
body.net-dark .logs-table td small { color: #bcc1cb; }
body.net-dark .status-badge.is-success { background-color: rgba(16, 185, 129, .14); border-color: rgba(255, 255, 255, .12); }
body.net-dark .status-badge.is-danger { background-color: rgba(245, 158, 11, .14); border-color: rgba(255, 255, 255, .12); }
body.net-dark .logs-table tbody tr.failed-row { background-color: rgba(255, 255, 255, .05); }
body.net-dark .logs-table tbody tr.failed-row:hover { background-color: rgba(255, 255, 255, .05); }
body.net-dark .stat-card { background-color: rgba(255, 255, 255, .05); border-color: rgba(255, 255, 255, .12); }
body.net-dark .stat-label { color: #bcc1cb; }

/* products/add.blade.php */
body.net-dark .card { background-color: rgba(255, 255, 255, .05) !important; }
body.net-dark .product_input_area { background-color: rgba(255, 255, 255, .05) !important; }
body.net-dark .dropFiles { border-color: rgba(255, 255, 255, .12); }
body.net-dark .loader-content-modal { border-color: rgba(255, 255, 255, .12); }

/* shipping-zone/add.blade.php */
body.net-dark .table-row-placeholder { background-color: rgba(14, 165, 233, .14) !important; }
body.net-dark #shipping-methods-sortable tr:hover { background-color: rgba(255, 255, 255, .05); }
body.net-dark td i.fa-bars:hover { color: #bcc1cb; }

/* users/index.blade.php */
body.net-dark .users-list-card { border-color: rgba(255, 255, 255, .12); }

/* welcome.blade.php */
body.net-dark *,
body.net-dark ::after,
body.net-dark ::before { border-color: rgba(255, 255, 255, .12); }

/* ==================== END GENERATED ==================== */

/* ---------- status filter links ("Pending | Received", Orders-style) become pills on every page ---------- */
body.net-dark .content-wrapper .order-status-filters { display: flex; flex-wrap: wrap; gap: 6px; }
body.net-dark .content-wrapper .order-status-filters > span:not(.status_filter) { display: none; } /* the "|" separators (network Orders / FBA wrap them in a span) */
/* Store Orders builds the filters themselves as span.status_filter with BARE "|" text between them: never hide
   those spans, give them the same pill look, and collapse the bare pipes by zeroing the container's font size. */
body.net-dark .content-wrapper .order-status-filters:has(> .status_filter) { font-size: 0; gap: 3px; } /* each zero-width pipe still counts as a flex item, so halve the gap */
body.net-dark .content-wrapper .order-status-filters > .status_filter { display: inline-flex; align-items: center; gap: 4px; padding: 5px 12px; border-radius: 99px; background: rgba(255, 255, 255, .06); border: 1px solid rgba(255, 255, 255, .10); color: #dfe2e8; font-size: .9rem; cursor: pointer; }
body.net-dark .content-wrapper .order-status-filters > .status_filter:hover { background: rgba(255, 255, 255, .12); color: #fff; }
body.net-dark .content-wrapper .order-status-filters > .status_filter.active-status { background: #c1122f; border-color: #c1122f; color: #fff; }
body.net-dark .content-wrapper .order-status-filters > .status_filter .count { color: inherit; font-size: inherit; }
body.net-dark .content-wrapper .order-status-filters a:not(.btn) { display: inline-flex; align-items: center; gap: 4px; padding: 5px 12px; border-radius: 99px; background: rgba(255, 255, 255, .06); border: 1px solid rgba(255, 255, 255, .10); color: #bcc1cb; font-weight: 600; text-decoration: none; }
body.net-dark .content-wrapper .order-status-filters a:not(.btn):hover { background: rgba(255, 255, 255, .12); color: #fff; }
body.net-dark .content-wrapper .order-status-filters a.active:not(.btn) { background: #c1122f; border-color: #c1122f; color: #fff; }
body.net-dark .content-wrapper .order-status-filters a span { color: inherit; }

/* ---------- Inventory: Adjust quantity box, Adjust popup and the keypads (Jeremy, 2026-09-19) ---------- */
body.net-dark .content-wrapper .adjust-qty-trigger,
body.net-dark .content-wrapper .adjust-qty-trigger[readonly],
body.net-dark .modal-content .adjust-quantity-control #adjustQuantity {
    background-color: rgba(0, 0, 0, .30); border-color: rgba(255, 255, 255, .22); color: #fff; text-align: center;
}
body.net-dark .content-wrapper .adjust-qty-trigger:hover { border-color: #8ab4ff; }
body.net-dark .adjust-quantity-sku { color: #f4f5f7; }
body.net-dark .adjust-quantity-location { color: #bcc1cb; }
body.net-dark .quantity-key:hover { background-color: rgba(255, 255, 255, .14); }
body.net-dark .quantity-key:active { background-color: rgba(255, 255, 255, .24); }

/* ---------- Inventory: the four stock cards, restyled like the dashboard tiles (Jeremy, 2026-09-19) ----------
 * They were Bootstrap colour blocks (bg-light / bg-warning / bg-info / bg-secondary): on the dark ground the
 * Warehouse Stock number was dark on dark and the other three were loud solid slabs. Now each is a dark glass
 * tile with a coloured icon chip, a large white number and muted labels, like the dashboard. Markup unchanged;
 * the colours are forced because the Bootstrap utility classes carry !important. */
body.net-dark .inventory-stock-summary > div > .border {
    background-color: rgba(255, 255, 255, .07) !important; border: 1px solid rgba(255, 255, 255, .12) !important;
    border-radius: 10px !important; color: #f4f5f7 !important; padding: 10px 6px !important;
}
body.net-dark .inventory-stock-summary > div > .border > div:first-child {
    display: inline-flex; align-items: center; justify-content: center; width: 34px; height: 34px; border-radius: 9px;
    color: #fff !important; font-size: 1rem; margin-bottom: 6px !important; background: #64748b;
}
body.net-dark .inventory-stock-summary > div:nth-child(1) > .border > div:first-child { background: #0ea5e9; } /* warehouse */
body.net-dark .inventory-stock-summary > div:nth-child(2) > .border > div:first-child { background: #f59e0b; } /* pending order */
body.net-dark .inventory-stock-summary > div:nth-child(3) > .border > div:first-child { background: #10b981; } /* inbound */
body.net-dark .inventory-stock-summary > div:nth-child(4) > .border > div:first-child { background: #8b5cf6; } /* reserved */
body.net-dark .inventory-stock-summary > div > .border > div:first-child i { color: #fff !important; }
body.net-dark .inventory-stock-summary .small { color: #bcc1cb !important; letter-spacing: .04em; font-size: .72rem; }
body.net-dark .inventory-stock-summary .h4 { color: #fff !important; font-size: 1.7rem; line-height: 1.1; font-variant-numeric: tabular-nums; }
body.net-dark .inventory-stock-summary small { color: #bcc1cb !important; }

/* ---------- link-style buttons never get a box (Jeremy, 2026-09-19) ----------
 * On Inventory the weight, restock level, auto print and PDF controls are .btn.btn-link and showed a box around
 * them on the dark ground. A link button is text / an icon only: no background, border or shadow, in any state. */
body.net-dark .content-wrapper .btn-link, body.net-dark .modal-content .btn-link,
body.net-dark .content-wrapper .btn-link:hover, body.net-dark .modal-content .btn-link:hover,
body.net-dark .content-wrapper .btn-link:focus, body.net-dark .modal-content .btn-link:focus,
body.net-dark .content-wrapper .btn-link:active, body.net-dark .modal-content .btn-link:active {
    background: transparent !important; border-color: transparent !important; box-shadow: none !important; outline: 0;
}
body.net-dark .content-wrapper .btn-link:focus-visible, body.net-dark .modal-content .btn-link:focus-visible { outline: 2px solid #8ab4ff; outline-offset: 2px; }
body.net-dark .inventory-weight-btn, body.net-dark .inventory-restock-level-btn { color: #f4f5f7; }
body.net-dark .inventory-weight-btn strong, body.net-dark .inventory-restock-level-btn strong { color: #fff; }
body.net-dark .inventory-weight-btn:hover, body.net-dark .inventory-restock-level-btn:hover,
body.net-dark .inventory-weight-btn:hover strong, body.net-dark .inventory-restock-level-btn:hover strong { color: #8ab4ff; }

/* A list page's grid wrapped in its own small card inside the page card (Purchasing, and the same pattern on other
   list pages) drew a box within a box. The inner card only pads the grid, so flatten it, like the Receive list. */
body.net-dark .content-wrapper .card > .card:has(> .dataTables_wrapper),
body.net-dark .content-wrapper .card > .card:has(> .table-responsive),
body.net-dark .content-wrapper .card > .card:has(.dataTables_wrapper) {
    background: transparent !important; border: 0 !important; box-shadow: none !important; padding: 0 !important; margin-bottom: 0;
}

/* Number boxes that are walked with the arrow keys (Reorder "Order", FBA "Recommended"): no spinner arrows, so a
   stray click cannot change the quantity. */
body.net-dark .reorder-qty::-webkit-outer-spin-button, body.net-dark .reorder-qty::-webkit-inner-spin-button,
body.net-dark .fba-rec::-webkit-outer-spin-button, body.net-dark .fba-rec::-webkit-inner-spin-button { -webkit-appearance: none; margin: 0; }
body.net-dark .reorder-qty, body.net-dark .fba-rec { -moz-appearance: textfield; appearance: textfield; }
/* Reorder (Jeremy, 2026-09-20): Order quantity centred in its box; Days Supply without the up / down arrows */
body.net-dark .reorder-qty { text-align: center; }
body.net-dark #days_supply::-webkit-outer-spin-button, body.net-dark #days_supply::-webkit-inner-spin-button { -webkit-appearance: none; margin: 0; }
body.net-dark #days_supply { -moz-appearance: textfield; appearance: textfield; }

/* Cycle Count title row: no header band or rule under it, so it reads like the Receive page's plain title. */
body.net-dark .content-wrapper .cycle-count-card > .cycle-count-header { background: transparent !important; border: 0 !important; padding-bottom: .25rem; }

/* ---------- Product images (Edit Product: thumbnail + gallery, with rotate) ----------
   The preview keeps a LIGHT plate on purpose (product photos have white backgrounds), but it gets the theme's plate
   colour, a rounded hairline frame and a little shadow instead of a hard white square. The rotate button was a bare
   button with dark text (invisible here) and the remove button a thin red ring with a white default face. */
body.net-dark .content-wrapper .image-preview, body.net-dark .modal-content .image-preview {
    background: #f3f4f6 !important; border: 1px solid rgba(255, 255, 255, .16) !important; border-radius: 10px;
    box-shadow: 0 2px 8px rgba(0, 0, 0, .25); overflow: visible;
}
body.net-dark .content-wrapper .image-preview img, body.net-dark .modal-content .image-preview img { border-radius: 6px; background: transparent; border: 0; }
body.net-dark .rotate-image-icon {
    color: #dfe2e8 !important; background: rgba(255, 255, 255, .08) !important; border: 1px solid rgba(255, 255, 255, .18) !important;
    border-radius: 8px; line-height: 1; padding: 5px 16px; font-size: 1.15rem;
}
body.net-dark .rotate-image-icon:hover, body.net-dark .rotate-image-icon:focus { color: #fff !important; background: rgba(255, 255, 255, .18) !important; border-color: rgba(255, 255, 255, .32) !important; }
body.net-dark .remove-image-icon {
    top: -8px; right: -8px; width: 24px; height: 24px; padding: 0; line-height: 20px; font-size: 16px; font-weight: 700;
    color: #fff; background: #c9383f; border: 2px solid #33353a; border-radius: 50%; display: inline-flex;
    align-items: center; justify-content: center; box-shadow: 0 1px 4px rgba(0, 0, 0, .4);
}
body.net-dark .remove-image-icon:hover { background: #b02d34; }
body.net-dark .sortable-placeholder { border: 2px dashed rgba(255, 255, 255, .22) !important; background: rgba(255, 255, 255, .04) !important; border-radius: 10px; }

/* ==================== ONE GRID STYLE (Jeremy, 2026-09-19) ====================
 * Every table on the network pages takes the look of the Orders grid (.cart-dashboard-list): a rounded outer
 * frame, small uppercase muted headings on a slightly lighter band, rows separated by a single hairline, no
 * stripes, no vertical lines, 14px / 18px cell padding and the same hover. 62 screens render their grid with
 * the same <x-adminlte-datatable> component (class "table table-bordered table-hover table-striped"), so
 * these rules make Purchasing, Locations, the log pages, Settings lists and the rest uniform in one place.
 * !important is needed on borders and stripes because Bootstrap's .table-bordered / .table-striped and the
 * DataTables Bootstrap skin set them on th / td directly.
 */
body.net-dark .content-wrapper .table,
body.net-dark .modal-content .table {
    border-collapse: separate !important; border-spacing: 0; width: 100%;
    border: 1px solid rgba(255, 255, 255, .10) !important; border-radius: 8px;
    background: rgba(0, 0, 0, .10); color: #f4f5f7;
}
body.net-dark .content-wrapper .table thead th, body.net-dark .content-wrapper .table thead td,
body.net-dark .modal-content .table thead th, body.net-dark .modal-content .table thead td {
    padding: 14px 18px; font-size: 12px; font-weight: 700; text-transform: uppercase; letter-spacing: .02em;
    color: #bcc1cb; background: rgba(255, 255, 255, .06); vertical-align: middle;
    border: 0 !important; border-bottom: 1px solid rgba(255, 255, 255, .10) !important;
}
body.net-dark .content-wrapper .table thead tr:first-child th:first-child, body.net-dark .modal-content .table thead tr:first-child th:first-child { border-top-left-radius: 7px; }
body.net-dark .content-wrapper .table thead tr:first-child th:last-child, body.net-dark .modal-content .table thead tr:first-child th:last-child { border-top-right-radius: 7px; }
body.net-dark .content-wrapper .table tbody td, body.net-dark .content-wrapper .table tbody th,
body.net-dark .content-wrapper .table tfoot td, body.net-dark .content-wrapper .table tfoot th,
body.net-dark .modal-content .table tbody td, body.net-dark .modal-content .table tbody th,
body.net-dark .modal-content .table tfoot td, body.net-dark .modal-content .table tfoot th {
    padding: 14px 18px; vertical-align: middle;
    border: 0 !important; border-top: 1px solid rgba(255, 255, 255, .08) !important;
}
body.net-dark .content-wrapper .table tbody tr:first-child td, body.net-dark .content-wrapper .table tbody tr:first-child th,
body.net-dark .modal-content .table tbody tr:first-child td, body.net-dark .modal-content .table tbody tr:first-child th { border-top: 0 !important; }
body.net-dark .content-wrapper .table.table-sm thead th, body.net-dark .content-wrapper .table.table-sm tbody td,
body.net-dark .modal-content .table.table-sm thead th, body.net-dark .modal-content .table.table-sm tbody td { padding: 9px 12px; }

/* no zebra stripes; the row state colours (success / danger / warning / info) defined earlier still apply */
body.net-dark .content-wrapper .table-striped tbody tr:nth-of-type(odd),
body.net-dark .modal-content .table-striped tbody tr:nth-of-type(odd),
body.net-dark table.dataTable.table-striped > tbody > tr.odd > *,
body.net-dark table.dataTable.stripe tbody tr.odd, body.net-dark table.dataTable.display tbody tr.odd { background-color: transparent; box-shadow: none !important; }
body.net-dark .content-wrapper .table tbody tr, body.net-dark .modal-content .table tbody tr { transition: background-color .15s ease; }
body.net-dark .content-wrapper .table tbody tr:hover > *, body.net-dark .modal-content .table tbody tr:hover > * { background-color: rgba(255, 255, 255, .06); box-shadow: none !important; color: #fff; }

/* DataTables chrome to match: sort arrows, search box, length select, info line */
body.net-dark table.dataTable thead > tr > th.sorting:before, body.net-dark table.dataTable thead > tr > th.sorting:after,
body.net-dark table.dataTable thead > tr > th.sorting_asc:before, body.net-dark table.dataTable thead > tr > th.sorting_asc:after,
body.net-dark table.dataTable thead > tr > th.sorting_desc:before, body.net-dark table.dataTable thead > tr > th.sorting_desc:after { color: #bcc1cb; }
body.net-dark table.dataTable thead > tr > th.sorting_asc:before, body.net-dark table.dataTable thead > tr > th.sorting_desc:after { color: #fff; opacity: 1; }
body.net-dark .dataTables_wrapper .dataTables_filter input, body.net-dark .dataTables_wrapper .dataTables_length select {
    background-color: rgba(0, 0, 0, .28); border: 1px solid rgba(255, 255, 255, .16); color: #f4f5f7; border-radius: 6px;
}
body.net-dark .dataTables_wrapper .dataTables_info { font-size: 13px; padding-top: 12px; }
body.net-dark .dataTables_wrapper .row:first-child { margin-bottom: 10px; }
body.net-dark .dataTables_wrapper .table { margin-top: 0 !important; margin-bottom: 0 !important; }

/* the Receive list already follows the Orders pattern; bring its metrics in line too */
body.net-dark .receive-list { border-radius: 8px; overflow: hidden; background: rgba(0, 0, 0, .10); }
body.net-dark .receive-heading { font-size: 12px; font-weight: 700; text-transform: uppercase; }
body.net-dark .receive-shipment:hover { background: rgba(255, 255, 255, .06); }

/* Whole-row links on the dashboard report pages (Put Away, Restock, Missing Weight). */
body.net-dark .report-row-link { cursor: pointer; }
body.net-dark .report-row-link:hover > td, body.net-dark .report-row-link:focus > td { background-color: rgba(138, 180, 255, .10) !important; }
body.net-dark .report-row-link:focus { outline: none; }

/* ---------- Purchasing > PO page (inbound/shipments): readable status colours ----------
   The generated overrides above darken this page's backgrounds; its chips and headings also carry dark text
   colours (#6e4d00, #216a3c, #a71d2a) that disappear on the dark tints, so give them bright equivalents. */
body.net-dark .discrepancy-section { border-color: rgba(245, 158, 11, .35); }
body.net-dark .discrepancy-section h4 { color: #fbbf24; }
body.net-dark .discrepancy-section h4 .fa { color: #fbbf24; }
body.net-dark .discrepancy-section p, body.net-dark .discrepancy-section .text-muted { color: #dfe2e8 !important; }
body.net-dark .discrepancy-count { color: #fcd34d; background-color: rgba(245, 158, 11, .20); border: 1px solid rgba(245, 158, 11, .40); }
body.net-dark .discrepancy-table th { color: #bcc1cb; }
body.net-dark .discrepancy-table td { color: #f4f5f7; border-color: rgba(255, 255, 255, .10); }
body.net-dark .discrepancy-quantity.unshipped { color: #fcd34d; background-color: rgba(245, 158, 11, .22); }
body.net-dark .discrepancy-quantity.over-shipped { color: #fca5a5; background-color: rgba(239, 68, 68, .20); }
body.net-dark .quantity-pill { color: #6ee7b7; background-color: rgba(16, 185, 129, .18); }
body.net-dark .cancelled-quantity-pill { color: #fca5a5; background-color: rgba(239, 68, 68, .20); }
body.net-dark .cancellation-status { color: #fca5a5; background-color: rgba(239, 68, 68, .16); border-color: rgba(239, 68, 68, .40); }
body.net-dark .cancellation-summary .fa { color: #f87171; }
body.net-dark .reconciled-message { color: #6ee7b7; background-color: rgba(16, 185, 129, .16); }
body.net-dark .empty-shipments { color: #bcc1cb; }
body.net-dark .empty-shipments h5, body.net-dark .empty-shipments .fa { color: #dfe2e8; }
body.net-dark .po-actions .btn { white-space: nowrap; }

/* Tree expand / collapse buttons (Categories and other nested grids): the bare <button> kept the browser's light
   grey face, which showed as a pale box around the +/- icon on the dark theme. */
body.net-dark .toggle-btn { background: transparent !important; color: #8ab4ff; padding: 0 6px 0 0; line-height: 1; }
body.net-dark .toggle-btn:hover, body.net-dark .toggle-btn:focus { color: #b9d2ff; outline: none; }
body.net-dark .toggle-btn .fas { font-size: 1.05rem; }

/* ---------- Coloured card headers (Returns "Issue Credit", "Return Label", Edit Order "Order Label", ...) ----------
   Pages mark sections with solid Bootstrap bars (.card-header.bg-info etc.) and coloured card outlines
   (.card.border-danger). On the dark theme those read as loud blocks and red lines, so headers become the normal
   plain panel header (no accent edge, no tint), and outlines go back to the theme's hairline. */
body.net-dark .content-wrapper .card-header[class*="bg-"], body.net-dark .modal-content .card-header[class*="bg-"] {
    background-color: rgba(255, 255, 255, .05) !important; color: #f4f5f7 !important;
    border-bottom: 1px solid rgba(255, 255, 255, .10);
}
/* No coloured edge and no tint (Jeremy, 2026-09-19): every section header is the same plain panel header. */
body.net-dark .content-wrapper .card-header[class*="bg-"] > .fa, body.net-dark .content-wrapper .card-header[class*="bg-"] > .fas,
body.net-dark .content-wrapper .card-header[class*="bg-"] > i { opacity: .9; }
body.net-dark .content-wrapper .card[class*="border-"] { border-color: rgba(255, 255, 255, .10) !important; }

/* ---------- Customer Snapshot (components/customer-snapshot.blade.php): dashboard-style tiles ----------
   The stat cards were solid Bootstrap colour blocks with an inline-coloured right half. Here each card becomes a
   dark glass tile; its colour moves into an icon chip, like the dashboard tiles. */
body.net-dark .customer-snapshot { border-top: 0 !important; }
body.net-dark .customer-snapshot > .card-header { border-left: 0; }
/* Contact card without labels (Jeremy, 2026-09-24): name bright, company muted, small muted icons; links = the theme's link colour. */
body.net-dark .customer-snapshot .cs-name { color: #f4f5f7; }
body.net-dark .customer-snapshot .cs-company { color: #bcc1cb; }
body.net-dark .customer-snapshot .cs-line i { color: #9aa1ad; }
body.net-dark .customer-snapshot .stat-card {
    background: rgba(255, 255, 255, .05); border: 1px solid rgba(255, 255, 255, .10); border-radius: 12px;
    overflow: hidden; box-shadow: none !important; color: #f4f5f7; transition: background-color .15s, border-color .15s;
}
body.net-dark .customer-snapshot a:hover .stat-card { background: rgba(255, 255, 255, .08); border-color: rgba(255, 255, 255, .20); }
body.net-dark .customer-snapshot .stat-card > div[class*="bg-"] { background-color: transparent !important; color: #f4f5f7 !important; }
body.net-dark .customer-snapshot .stat-card > div[class*="bg-"] > div:last-child > div:first-child { color: #bcc1cb; font-size: .82rem; text-transform: uppercase; letter-spacing: .04em; }
body.net-dark .customer-snapshot .stat-card > div[class*="bg-"] .font-weight-bold { font-size: 1.5rem; line-height: 1.1; font-variant-numeric: tabular-nums; }
body.net-dark .customer-snapshot .stat-card > div:last-child {
    background: rgba(0, 0, 0, .18) !important; border-left: 1px solid rgba(255, 255, 255, .10) !important; color: #f4f5f7;
}
body.net-dark .customer-snapshot .stat-card > div:last-child .text-light, body.net-dark .customer-snapshot .stat-card > div:last-child small { color: #bcc1cb !important; opacity: 1 !important; }
body.net-dark .customer-snapshot .stat-card > div:last-child div[style*="border-bottom"] { border-bottom-color: rgba(255, 255, 255, .10) !important; }
body.net-dark .customer-snapshot .stat-card .fa-2x {
    font-size: 1.15rem; width: 40px; height: 40px; border-radius: 10px; display: inline-flex; align-items: center;
    justify-content: center; color: #fff; background: #2563eb;
}
body.net-dark .customer-snapshot .stat-card .bg-info .fa-2x { background: #0ea5e9; }
body.net-dark .customer-snapshot .stat-card .bg-success .fa-2x { background: #10b981; }
body.net-dark .customer-snapshot .stat-card .bg-warning .fa-2x { background: #f59e0b; }
body.net-dark .customer-snapshot .stat-card .bg-danger .fa-2x { background: #ef4444; }
body.net-dark .customer-snapshot .stat-card .bg-purple .fa-2x, body.net-dark .customer-snapshot .stat-card .bg-indigo .fa-2x { background: #8b5cf6; }
body.net-dark .customer-snapshot .stat-card .bg-secondary .fa-2x, body.net-dark .customer-snapshot .stat-card .bg-dark .fa-2x { background: #6b7280; }
/* Credits card: there the colour class sits on the .stat-card itself (one centred block), so it stayed solid green. */
body.net-dark .customer-snapshot .stat-card[class*="bg-"] { background-color: rgba(255, 255, 255, .05) !important; color: #f4f5f7 !important; padding: 14px 10px; }
body.net-dark .customer-snapshot a:hover .stat-card[class*="bg-"] { background-color: rgba(255, 255, 255, .08) !important; }
body.net-dark .customer-snapshot .stat-card[class*="bg-"] > .fas {
    font-size: 1.15rem; width: 40px; height: 40px; border-radius: 10px; display: inline-flex; align-items: center;
    justify-content: center; color: #fff; background: #10b981;
}
body.net-dark .customer-snapshot .stat-card[class*="bg-"] > .font-weight-bold { font-size: 1.5rem; line-height: 1.1; font-variant-numeric: tabular-nums; }
body.net-dark .customer-snapshot .stat-card[class*="bg-"] > small { color: #bcc1cb; font-size: .82rem; text-transform: uppercase; letter-spacing: .04em; }

/* A grid wrapped in its own small card INSIDE a section card's body (Edit Order "Credits Issued for this order",
   and the same pattern elsewhere) drew a box within a box on the dark theme. The inner card only exists to pad the
   grid, so flatten it: the section card and the grid's own rounded frame are enough. */
body.net-dark .content-wrapper .card-body > .card:has(> .dataTables_wrapper),
body.net-dark .content-wrapper .card-body > .card:has(> .table-responsive),
body.net-dark .content-wrapper .card-body > .card:has(> table) {
    background: transparent !important; border: 0 !important; box-shadow: none !important; padding: 0 !important; margin-bottom: 0;
}

/* Customer Snapshot Credits tile: same layout as the other tiles (icon chip on the left, label over value) instead
   of a centred stack, so its icon lines up with the rest. The markup order is icon, value, label. */
body.net-dark .customer-snapshot .stat-card[class*="bg-"] {
    display: grid !important; grid-template-columns: auto 1fr; grid-template-areas: "icon label" "icon value";
    column-gap: .5rem; align-items: center; align-content: center; justify-items: start; text-align: left;
    padding: 12px 1rem !important;
}
body.net-dark .customer-snapshot .stat-card[class*="bg-"] > .fas { grid-area: icon; margin: 0 !important; }
body.net-dark .customer-snapshot .stat-card[class*="bg-"] > small { grid-area: label; align-self: end; color: #bcc1cb; font-size: .82rem; text-transform: uppercase; letter-spacing: .04em; }
body.net-dark .customer-snapshot .stat-card[class*="bg-"] > .font-weight-bold { grid-area: value; align-self: start; margin: 0 !important; font-size: 1.5rem; line-height: 1.1; font-variant-numeric: tabular-nums; }

/* ---------- Edit Order: no box within a box ----------
   Refund Information is one titled card that holds a card per payment: on the dark theme the inner cards drew a
   second box. They become plain sub-sections (a heading band, the fields, then the transactions), separated by a
   hairline instead of a frame. */
body.net-dark .order-refunds-card .card { background: transparent !important; border: 0 !important; box-shadow: none !important; margin-bottom: 1rem; }
body.net-dark .order-refunds-card .card > .card-header { background-color: rgba(255, 255, 255, .06) !important; border: 1px solid rgba(255, 255, 255, .10); border-radius: 8px; color: #f4f5f7 !important; }
body.net-dark .order-refunds-card .card > .card-body { padding-left: 2px; padding-right: 2px; }
body.net-dark .order-refunds-card .card > .card-footer { background: transparent !important; border-top: 1px solid rgba(255, 255, 255, .10); padding-left: 2px; padding-right: 2px; }
body.net-dark .order-refunds-card .card + .card { border-top: 1px solid rgba(255, 255, 255, .10) !important; border-radius: 0; padding-top: 1rem; }

/* Section cards with a coloured header (Order Label, Credits Issued, Return Label, Issue Credit...): the small table
   inside already sits in the section's own box, so it drops the grid's rounded outer frame and keeps only its
   heading band and row lines. Full list pages (white / light headers) keep the framed grid. */
body.net-dark .content-wrapper .card:has(> .card-header.bg-info) > .card-body .table,
body.net-dark .content-wrapper .card:has(> .card-header.bg-primary) > .card-body .table,
body.net-dark .content-wrapper .card:has(> .card-header.bg-success) > .card-body .table,
body.net-dark .content-wrapper .card:has(> .card-header.bg-danger) > .card-body .table,
body.net-dark .content-wrapper .card:has(> .card-header.bg-warning) > .card-body .table,
body.net-dark .content-wrapper .card:has(> .card-header.bg-secondary) > .card-body .table {
    border: 0 !important; border-radius: 0; background: transparent;
}
