:root {
    --app-bg: #f3f6f9;
    --app-brand-muted: #9fb0c0;
    --app-accent: #e5722a;
    --app-border: #dfe7ee;
    --app-text: #1c2b36;
}
* { box-sizing: border-box; }
body { margin: 0; background: var(--app-bg); color: var(--app-text); font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif; }
a { text-decoration: none; }
.app-shell { min-height: 100vh; }
.brand { display: flex; align-items: center; gap: .75rem; color: white; padding: .25rem .5rem 1.5rem; }
.brand:hover { color: white; }
.brand-mark { display: grid; place-items: center; width: 42px; height: 42px; border-radius: 12px; background: var(--app-accent); font-size: 1.25rem; font-weight: 800; box-shadow: 0 8px 22px rgba(229,114,42,.28); }
.brand-logo-frame { display: grid; place-items: center; flex: 0 0 auto; width: 42px; height: 42px; padding: 4px; border-radius: 12px; background: rgba(255,255,255,.96); box-shadow: 0 8px 22px rgba(0,0,0,.16); overflow: hidden; }
.brand-logo-image { display: block; width: 100%; height: 100%; object-fit: contain; }
.branding-preview-panel { min-height: 260px; }
.branding-preview-frame { display: grid; place-items: center; width: min(100%, 320px); height: 180px; padding: 1.5rem; border: 1px solid var(--app-border); border-radius: 1rem; background: #f8fafc; }
.branding-preview-frame img { display: block; max-width: 100%; max-height: 100%; object-fit: contain; }
.branding-preview-default { width: 84px; height: 84px; border-radius: 22px; font-size: 2.4rem; }
.brand span:last-child { display: flex; flex-direction: column; line-height: 1.1; letter-spacing: .02em; }
.brand small { color: var(--app-brand-muted); font-size: .72rem; text-transform: uppercase; letter-spacing: .15em; margin-top: .25rem; }
.avatar { flex: 0 0 auto; display: grid; place-items: center; width: 36px; height: 36px; border-radius: 50%; background: rgba(255,255,255,.12); font-weight: 800; }
.app-main { min-height: 100vh; margin-left: 0; }
.page-wrap { padding: 2rem; }
.page-heading { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 1rem; align-items: flex-start; margin-bottom: 1.5rem; }
.page-heading h1 { font-size: 1.75rem; font-weight: 750; margin: 0 0 .25rem; }
.page-heading p { color: #657785; margin: 0; }
.card {
    --app-card-radius: .9rem;
    border-color: var(--app-border);
    border-radius: var(--app-card-radius);
    box-shadow: 0 7px 22px rgba(26,48,64,.055);
    overflow: hidden;
}
.card > .card-header:first-child {
    border-radius: calc(var(--app-card-radius) - 1px) calc(var(--app-card-radius) - 1px) 0 0;
}
.card > .card-footer:last-child {
    border-radius: 0 0 calc(var(--app-card-radius) - 1px) calc(var(--app-card-radius) - 1px);
}
.card > .table-responsive:first-child,
.card > .list-group:first-child,
.card > .empty-state:first-child {
    border-top-left-radius: calc(var(--app-card-radius) - 1px);
    border-top-right-radius: calc(var(--app-card-radius) - 1px);
}
.card > .table-responsive:last-child,
.card > .list-group:last-child,
.card > .empty-state:last-child {
    border-bottom-right-radius: calc(var(--app-card-radius) - 1px);
    border-bottom-left-radius: calc(var(--app-card-radius) - 1px);
}
.card > .table-responsive,
.card > .list-group,
.card > .empty-state {
    overflow: hidden;
}
.metric-card { height: 100%; overflow: hidden; }
.metric-card .card-body { display: flex; align-items: center; gap: 1rem; }
.metric-icon { display: grid; place-items: center; flex: 0 0 auto; width: 48px; height: 48px; border-radius: .8rem; background: #e9f0f5; color: #24445e; font-size: 1.3rem; }
.metric-value { font-size: 1.65rem; font-weight: 800; line-height: 1.1; }
.metric-label { color: #71818d; font-size: .84rem; }
.table > :not(caption) > * > * { padding: .85rem 1rem; border-bottom-color: #e8eef3; }
.table thead th { color: #60717e; background: #f7f9fb; font-size: .74rem; text-transform: uppercase; letter-spacing: .055em; border-bottom-width: 1px; white-space: nowrap; }
.table-hover tbody tr:hover { background: #fafcfd; }
.btn-primary { --bs-btn-bg: #24445e; --bs-btn-border-color: #24445e; --bs-btn-hover-bg: #19364d; --bs-btn-hover-border-color: #19364d; }
.btn-accent { color: white; background: var(--app-accent); border-color: var(--app-accent); }
.btn-accent:hover { color: white; background: #cb5d1d; border-color: #cb5d1d; }
.form-control, .form-select { border-color: #ccd8e1; border-radius: .65rem; min-height: 42px; }
.form-control:focus, .form-select:focus { border-color: #6688a2; box-shadow: 0 0 0 .2rem rgba(36,68,94,.12); }
.badge { font-weight: 650; letter-spacing: .01em; }
.app-alert-modal .modal-content { border: 0; border-radius: .9rem; box-shadow: 0 24px 70px rgba(19,39,54,.22); overflow: hidden; }
.app-alert-modal .modal-header { gap: .75rem; padding: 1rem 1.25rem; background: #f8fafc; border-bottom-color: var(--app-border); }
.app-alert-modal .modal-body { padding: 1.25rem; color: #526575; }
.app-alert-modal .modal-footer { padding: 1rem 1.25rem; background: white; border-top-color: var(--app-border); }
.app-alert-icon { display: grid; place-items: center; flex: 0 0 auto; width: 38px; height: 38px; border-radius: .75rem; color: #24445e; background: #e8f0f6; font-size: 1.18rem; }
.app-alert-icon-confirm { color: #7a3d14; background: #fff1e7; }
.empty-state { padding: 4rem 1rem; text-align: center; }
.empty-state i { display: inline-grid; place-items: center; width: 68px; height: 68px; margin-bottom: 1rem; border-radius: 50%; background: #edf2f6; color: #6e8291; font-size: 1.8rem; }
.detail-list { display: grid; grid-template-columns: repeat(2, minmax(0,1fr)); gap: 1rem 1.5rem; }
.detail-list dt { color: #71818d; font-size: .78rem; text-transform: uppercase; letter-spacing: .045em; }
.detail-list dd { margin: .2rem 0 0; font-weight: 600; }
.login-page { min-height: 100vh; display: grid; grid-template-columns: minmax(320px, 430px) 1fr; background: white; }
.login-panel { display: flex; flex-direction: column; justify-content: center; padding: 3rem clamp(1.5rem,5vw,4rem); }
.login-hero { position: relative; display: flex; align-items: flex-end; padding: 4rem; color: white; background: linear-gradient(145deg, rgba(16,38,59,.94), rgba(36,68,94,.82)), radial-gradient(circle at 80% 20%, #e5722a, transparent 45%); overflow: hidden; }
.login-hero::after { content: ''; position: absolute; width: 420px; height: 420px; right: -130px; top: -100px; border: 70px solid rgba(255,255,255,.06); border-radius: 50%; }
.login-hero-content { position: relative; z-index: 1; max-width: 620px; }
.login-brand { display: flex; align-items: center; gap: .8rem; margin-bottom: 2rem; }
.login-brand .brand-mark { color: white; }
.scan-result { border-left: 4px solid var(--app-accent); }
.print-label { width: 4in; height: 2.3125in; min-height: 0; padding: .125in .125in .1in .25in; border: 1px solid #111; background: white; color: #111; overflow: hidden; display: flex; flex-direction: column; align-items: flex-start; justify-content: space-between; text-align: left; font-family: Arial, Helvetica, sans-serif; }
/* DYMO 30347 preview (1 in x 1-1/2 in, displayed landscape) */
.print-label.label-size-30347 { width: 1.5in; height: 1in; padding: .125in .125in .012in .25in; justify-content: flex-start; gap: .018in; }
.print-label.label-size-30347 > .d-flex:first-child { gap: .025in; }
.print-label.label-size-30347 .fs-4 { font-size: .72rem !important; line-height: 1 !important; }
.print-label.label-size-30347 .label-description { display: none; }
.print-label.label-size-30347 .label-comments { display: block; white-space: pre-line !important; text-overflow: clip; }
.print-label.label-size-30347 .small { font-size: .45rem; line-height: 1.05; }
.print-label.label-size-30347 .mt-1 { margin-top: .015in !important; }
.print-label.label-size-30347 .mt-2 { margin-top: .018in !important; }
.print-label.label-size-30347 .inventory-barcode { width: 100% !important; max-height: .34in; }
.print-label.label-size-30347 .project-tag-context { max-width: 1.4in; }
.print-label.label-size-30252 { width: 3.5in; height: 1.125in; padding: .15in .1in .005in .18in; justify-content: flex-start; gap: .025in; }
.print-label.label-size-30252 > .d-flex:first-child { gap: .05in; }
.print-label.label-size-30252 .fs-4 { font-size: .82rem !important; line-height: 1 !important; }
.print-label.label-size-30252 .label-description { font-size: .46rem; line-height: 1.05; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.print-label.label-size-30252 .label-comments { white-space: pre-line !important; text-overflow: clip; }
.print-label.label-size-30252 .small { font-size: .48rem; line-height: 1.05; }
.print-label.label-size-30252 .mt-1 { margin-top: .015in !important; }
.print-label.label-size-30252 .mt-2 { margin-top: .02in !important; }
.print-label.label-size-30252 .inventory-barcode { align-self: flex-start !important; width: auto !important; max-width: 100% !important; max-height: .38in; margin-right: auto !important; }
.print-label.label-size-30252 .project-tag-context { max-width: 3.25in; }
.print-label.label-size-30334 { width: 2.25in; height: 1.25in; padding: .125in .1in .03in .18in; justify-content: flex-start; gap: .025in; }
.print-label.label-size-30334 > .d-flex:first-child { gap: .05in; }
.print-label.label-size-30334 .fs-4 { font-size: .9rem !important; line-height: 1 !important; }
.print-label.label-size-30334 .label-description { font-size: .5rem; line-height: 1.05; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.print-label .label-comments { white-space: pre-line !important; overflow: hidden; text-overflow: clip; }
.print-label:not(.label-size-30252):not(.label-size-30334):not(.label-size-30347) .label-allocation-comments { display: none !important; }
.print-label.label-size-30334 .label-comments { white-space: pre-line !important; text-overflow: clip; }
.print-label.label-size-30334 .label-part-row { display: none !important; }
.print-label.label-size-30334 .small { font-size: .5rem; line-height: 1.05; }
.print-label.label-size-30334 .mt-1 { margin-top: .015in !important; }
.print-label.label-size-30334 .mt-2 { margin-top: .02in !important; }
.print-label.label-size-30334 .inventory-barcode { align-self: flex-start !important; width: auto !important; max-width: 100% !important; max-height: .36in; margin-right: auto !important; }
.print-label.label-size-30334 .project-tag-context { max-width: 2.05in; }
@media (max-width: 991.98px) {
    .app-main { margin-left: 0; }
    .page-wrap { padding: 1.25rem; }
    .login-page { grid-template-columns: 1fr; }
    .login-hero { display: none; }
}
@media (max-width: 575.98px) {
    .detail-list { grid-template-columns: 1fr; }
    .page-heading .btn-group, .page-heading .d-flex { width: 100%; }
    .page-heading .btn { flex: 1; }
}
@media print {
    body { background: white; }
    .no-print { display: none !important; }
    .app-main { margin: 0; }
    .page-wrap { padding: 0; }
    .print-label { margin: 0; page-break-inside: avoid; }
    .pmi-report .card { box-shadow: none; border-color: #bbb; }
    .pmi-report { font-size: 8.5pt; }
    .pmi-report .card { margin-bottom: .12in !important; }
    .pmi-report .card-body { padding: .12in !important; }
    .pmi-report .card-header { padding: .07in .12in !important; }
    .pmi-report img { max-height: 1.55in; }
    .report-footer { margin-top: .16in; padding-top: .08in; font-size: 7.5pt; }
}

/* Project, purchasing, reconciliation, and tablet workflows */
.sticky-action-bar { position: sticky; bottom: 0; z-index: 1010; display: flex; justify-content: flex-end; gap: .75rem; margin: 1.5rem -2rem -2rem; padding: 1rem 2rem; background: rgba(255,255,255,.94); border-top: 1px solid var(--app-border); backdrop-filter: blur(10px); }
.order-line .card-header { border-radius: .9rem .9rem 0 0; }
.progress-stack { display: grid; grid-template-columns: 1fr auto; align-items: center; gap: .45rem .75rem; }
.progress-stack .progress { grid-column: 1 / -1; height: .48rem; background: #e6edf2; }
.progress-stack .progress-bar { background: var(--app-accent); }
.progress-stack span { color: #60717e; font-size: .8rem; text-transform: uppercase; letter-spacing: .04em; }
.timeline { position: relative; display: grid; gap: 1.25rem; padding-left: 1.2rem; }
.timeline::before { content: ''; position: absolute; left: .29rem; top: .35rem; bottom: .35rem; width: 2px; background: #dce6ed; }
.timeline-item { position: relative; display: grid; grid-template-columns: 1fr; }
.timeline-dot { position: absolute; left: -1.2rem; top: .3rem; width: .65rem; height: .65rem; border: 2px solid white; border-radius: 50%; background: var(--app-accent); box-shadow: 0 0 0 2px #dce6ed; }
.pmi-report { font-size: .9rem; }
.pmi-report .card { --app-card-radius: .45rem; }
.pmi-report .card-body { padding: .85rem 1rem !important; }
.pmi-report .card-header { padding: .55rem 1rem !important; }
.pmi-report .detail-list { grid-template-columns: repeat(4, minmax(0,1fr)); gap: .45rem 1rem; }
.pmi-report .detail-list dt { font-size: .66rem; margin-bottom: .05rem; }
.pmi-report .detail-list dd { margin-top: 0; font-weight: 600; line-height: 1.25; }
.pmi-report h1.h3 { font-size: 1.25rem; }
.pmi-report h2.h5 { font-size: .92rem; margin-bottom: .25rem; }
.pmi-report .pmi-field-row { padding-top: .28rem !important; padding-bottom: .28rem !important; line-height: 1.2; }
.pmi-report-radio { break-inside: avoid; page-break-inside: avoid; }
.pmi-report img { max-height: 170px; object-fit: contain; background: #fff; }
.pmi-report .row.g-3 { --bs-gutter-x: .6rem; --bs-gutter-y: .6rem; }
.pmi-report-embed { padding: 1rem; }
.pmi-report-frame { display: block; width: 100%; height: min(76vh, 820px); border: 0; background: #f6f8fb; }
.report-footer { display: flex; justify-content: space-between; gap: 1rem; margin-top: 1.25rem; padding-top: .65rem; border-top: 1px solid var(--app-border); color: #647684; font-size: .78rem; }
.report-footer strong { color: var(--app-text); }
.report-footer .report-footer-meta { text-align: right; }
.warehouse-page { max-width: 1500px; margin: 0 auto; }
.warehouse-search { position: sticky; top: 1rem; z-index: 1000; box-shadow: 0 10px 32px rgba(16,38,59,.12); }
.warehouse-item { overflow: hidden; }
.warehouse-qty { min-width: 130px; display: grid; justify-items: end; padding: .8rem 1rem; border-radius: .8rem; background: #edf4f8; }
.warehouse-qty span, .warehouse-qty small { color: #60717e; font-size: .75rem; text-transform: uppercase; letter-spacing: .04em; }
.warehouse-qty strong { font-size: 2rem; line-height: 1.05; }
.warehouse-location { display: flex; align-items: center; gap: .55rem; padding: .75rem 1rem; border: 1px solid #dce6ed; border-radius: .7rem; background: #fafcfd; font-weight: 650; }
.warehouse-item .accordion-button { min-height: 60px; font-weight: 700; font-size: 1rem; }
.warehouse-item .accordion-button:not(.collapsed) { color: #19364d; background: #edf4f8; box-shadow: none; }
.warehouse-item .accordion-body { padding: 1.25rem; background: #fbfcfd; }
.min-w-0 { min-width: 0; }
.bg-light-subtle { background: #f8fafc !important; }
@media (max-width: 991.98px) {
    .sticky-action-bar { margin-left: -1.25rem; margin-right: -1.25rem; margin-bottom: -1.25rem; padding: 1rem 1.25rem; }
    .warehouse-search { top: 4.25rem; }
    .warehouse-item .form-control-lg, .warehouse-item .form-select-lg, .warehouse-item .btn-lg { min-height: 54px; }
}
@media (max-width: 575.98px) {
    .sticky-action-bar { flex-direction: column-reverse; }
    .sticky-action-bar .btn { width: 100%; }
    .warehouse-qty { width: 100%; justify-items: start; }
    .warehouse-item .card-body { padding: 1rem !important; }
}

/* Searchable fields that need result lists to extend outside rounded cards */
.part-search-card { position: relative; z-index: 20; overflow: visible; }
.line-items-card,
.line-items-card > .table-responsive {
    overflow: visible;
}
.line-items-card .part-search {
    z-index: 30;
}
.line-items-card tr:focus-within .part-search {
    z-index: 40;
}

/* Live system-part search used by order line items */
.part-search { position: relative; }
.inventory-bin-move-card { position: relative; z-index: 20; overflow: visible; }
.part-search-results {
    position: absolute;
    z-index: 1080;
    top: calc(100% + .35rem);
    right: 0;
    left: 0;
    max-height: 22rem;
    overflow-y: auto;
    border: 1px solid var(--app-border);
    border-radius: .7rem;
    background: white;
    box-shadow: 0 14px 34px rgba(16,38,59,.16);
}
.part-search-result {
    display: block;
    width: 100%;
    padding: .75rem .9rem;
    border: 0;
    border-bottom: 1px solid #e8eef3;
    background: white;
    color: var(--app-text);
    text-align: left;
    white-space: normal;
}
.part-search-result strong {
    display: block;
    margin-bottom: .15rem;
    line-height: 1.2;
}
.part-search-result small {
    line-height: 1.25;
    overflow-wrap: anywhere;
}
.part-search-result:first-child { border-top: 0; }
.part-search-result:last-child { border-bottom: 0; }
.part-search-result:hover,
.part-search-result:focus {
    background: #f7fafc;
    color: var(--app-text);
    outline: none;
}
.part-search-result.active,
.part-search-result:active {
    color: var(--app-text);
    background: #edf4f8;
    border-color: #d7e3eb;
}
.part-search-empty { padding: .9rem; color: #60717e; font-size: .9rem; }

/* Inventory tag preview modal */
.tag-print-modal .modal-dialog { max-width: 600px; }
.tag-print-modal .modal-body { padding: 1.5rem; background: #f5f7f9; }
.tag-print-modal .print-label { max-width: 100%; }

.assembly-packing-modal .modal-body { padding: 1.5rem; background: #f5f7f9; }
.assembly-packing-labels { display: grid; justify-items: center; gap: .35rem; }
.assembly-packing-label { width: 4in; height: 2.3125in; padding: .14in .28in .06in .16in; border: 1px solid #111; background: #fff; color: #111; overflow: hidden; font-family: Arial, Helvetica, sans-serif; text-align: left; }
.assembly-packing-label-content { width: 100%; }
.assembly-packing-header { display: flex; align-items: start; justify-content: space-between; gap: .1in; margin-bottom: .035in; padding-bottom: .035in; border-bottom: 2px solid #111; }
.assembly-packing-heading-text { min-width: 0; display: grid; gap: .018in; }
.assembly-packing-title { min-width: 0; font-size: .975rem; font-weight: 800; line-height: 1.02; white-space: nowrap; overflow: hidden; text-overflow: clip; }
.assembly-packing-subtitle { min-width: 0; font-size: .65rem; font-weight: 700; line-height: 1.04; white-space: normal; overflow-wrap: anywhere; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.assembly-packing-page-count { flex: 0 0 auto; display: none; font-size: .72rem; font-weight: 800; line-height: 1; white-space: nowrap; }
.assembly-packing-components { display: grid; gap: .02in; min-height: 0; overflow: hidden; }
.assembly-packing-component { display: grid; gap: .008in; break-inside: avoid; page-break-inside: avoid; padding-top: .02in; border-top: 1px solid #d4dde5; }
.assembly-packing-component:first-child { border-top: 0; padding-top: 0; }
.assembly-packing-component-heading { display: flex; align-items: start; justify-content: space-between; gap: .04in; margin-bottom: 0; font-size: .65rem; line-height: 1.04; }
.assembly-packing-component-heading strong { min-width: 0; white-space: nowrap; overflow: hidden; text-overflow: clip; }
.assembly-packing-component-heading span { flex: 0 0 auto; font-weight: 700; }
.assembly-packing-barcode-pair { display: grid; gap: .025in; width: 100%; }
.assembly-packing-barcode-block { display: grid; gap: .003in; min-width: 0; width: 100%; }
.packing-part-block { justify-self: start; justify-items: start; text-align: left; }
.packing-serial-block { justify-self: start; justify-items: start; text-align: left; }
.assembly-packing-barcode-caption { width: 100%; font-size: .65rem; font-weight: 700; line-height: 1.04; white-space: nowrap; overflow: hidden; text-overflow: clip; }
.assembly-packing-barcode { display: block; width: 3.78in; max-width: 100%; height: .15in; }
.packing-part-block .assembly-packing-barcode { justify-self: start; margin-left: 0; margin-right: auto; }
.packing-serial-block .assembly-packing-barcode { justify-self: start; margin-left: 0; margin-right: auto; }
.packing-serial-barcode { height: .14in; }


/* DYMO 30256 inventory label (4 in x 2-5/16 in) */
.print-label > .d-flex:first-child { flex: 0 0 auto; justify-content: flex-start !important; width: 100%; gap: .12in; text-align: left; }
.print-label > .d-flex:first-child > div { flex: 1 1 auto; min-width: 0; max-width: 100%; }
.print-label .label-title { display: block; width: 100%; max-width: 100%; font-size: 1.18rem !important; text-align: left; white-space: nowrap; overflow: hidden; text-overflow: clip; }
.print-label .fs-4 { font-size: 1.18rem !important; text-align: left; white-space: nowrap; overflow: hidden; text-overflow: clip; }
.print-label .small { font-size: .68rem; line-height: 1.12; text-align: left; }
.print-label svg { display: block; flex: 0 0 auto; max-width: 100%; }
.print-label .inventory-barcode { align-self: flex-start; width: auto !important; max-width: 100% !important; margin-right: auto; margin-left: 0 !important; }
.print-label:not(.label-size-30252):not(.label-size-30334):not(.label-size-30347) .barcode-part { max-height: .42in; }
.print-label:not(.label-size-30252):not(.label-size-30334):not(.label-size-30347).has-serial .inventory-barcode { max-height: .24in; }

/* Project pick sheet modal and printable document */
.project-picksheet-modal .modal-dialog { max-width: min(1400px, calc(100vw - 2rem)); }
.project-picksheet-modal .modal-body { background: #eef2f5; }
.picksheet-print-frame { position: fixed; right: 0; bottom: 0; width: 1px; height: 1px; border: 0; opacity: 0; pointer-events: none; }
.project-picksheet { max-width: 8.5in; margin: 0 auto; padding: .4in; background: white; color: #111; font-size: .86rem; }
.picksheet-header { display: flex; justify-content: space-between; gap: 2rem; padding-bottom: .18in; border-bottom: 3px solid #10263b; }
.picksheet-header h1 { margin: .02in 0; font-size: 1.65rem; font-weight: 800; }
.picksheet-brand { color: #e5722a; font-size: 1rem; font-weight: 900; letter-spacing: .18em; }
.picksheet-project-number { color: #536573; font-weight: 700; }
.picksheet-meta { min-width: 2.65in; display: grid; gap: .06in; }
.picksheet-meta div, .picksheet-project-details div { display: grid; grid-template-columns: 1fr; }
.picksheet-meta span, .picksheet-project-details span, .picksheet-summary span { color: #62727e; font-size: .67rem; text-transform: uppercase; letter-spacing: .055em; }
.picksheet-meta strong { font-size: .78rem; }
.picksheet-project-details { display: grid; grid-template-columns: repeat(4, minmax(0,1fr)); gap: .14in; padding: .18in 0; }
.picksheet-project-details > div { padding: .1in; border: 1px solid #d8e0e6; border-radius: .05in; }
.picksheet-project-details strong { margin-top: .02in; }
.picksheet-summary { display: grid; grid-template-columns: repeat(4, minmax(0,1fr)); gap: .1in; margin-bottom: .2in; }
.picksheet-summary > div { padding: .1in .12in; background: #edf3f7; border-left: 4px solid #24445e; }
.picksheet-summary strong { display: block; margin-top: .02in; font-size: 1.05rem; }
.picksheet-section { margin-top: .18in; break-inside: auto; }
.picksheet-section-heading { display: flex; justify-content: space-between; align-items: end; gap: 1rem; margin-bottom: .06in; }
.picksheet-section-heading h2 { margin: 0; font-size: 1rem; font-weight: 800; }
.picksheet-section-heading span { color: #687985; font-size: .72rem; }
.picksheet-table { border: 1px solid #aebbc5; font-size: .75rem; }
.picksheet-table thead { display: table-header-group; }
.picksheet-table thead th { padding: .07in .08in; color: #111; background: #dfe8ee; border-color: #aebbc5; font-size: .64rem; }
.picksheet-table tbody td { padding: .075in .08in; border-color: #cbd5dc; vertical-align: top; }
.picksheet-table tbody tr { break-inside: avoid; }
.picksheet-table small { display: block; color: #596b77; line-height: 1.15; }
.picksheet-table .check-column { width: .42in; text-align: center; }
.picksheet-check { display: inline-block; width: .17in; height: .17in; border: 1.5px solid #111; background: white; }
.picksheet-order-table th:nth-child(n+4):nth-child(-n+8),
.picksheet-order-table td:nth-child(n+4):nth-child(-n+8) { width: .48in; }
.serial-barcode-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .12in; }
.serial-barcode-card { min-height: 1.48in; padding: .1in; border: 1px solid #aebbc5; break-inside: avoid; page-break-inside: avoid; }
.serial-barcode-card-heading { display: flex; justify-content: space-between; gap: .12in; align-items: flex-start; }
.serial-barcode-card-heading strong, .serial-barcode-card-heading small { display: block; }
.serial-barcode-card-heading small { margin-top: .02in; color: #596b77; line-height: 1.15; }
.serial-barcode-card-heading span { flex: 0 0 auto; max-width: 1.55in; color: #62727e; font-size: .6rem; text-align: right; text-transform: uppercase; letter-spacing: .045em; }
.serial-sheet-barcode { display: block; width: 100%; height: .48in; margin: .06in 0 .04in; }
.serial-barcode-meta { display: grid; grid-template-columns: 1.1fr 1.2fr 1fr; gap: .07in; }
.serial-barcode-meta span { display: block; color: #62727e; font-size: .55rem; text-transform: uppercase; letter-spacing: .045em; }
.serial-barcode-meta strong { display: block; font-size: .68rem; line-height: 1.1; overflow-wrap: anywhere; }
.picksheet-footer { display: grid; grid-template-columns: 1fr 1fr .55fr; gap: .25in; margin-top: .3in; padding-top: .12in; border-top: 1px solid #8898a4; }
.picksheet-footer span { display: block; margin-bottom: .18in; color: #536573; font-size: .68rem; text-transform: uppercase; letter-spacing: .05em; }
.signature-line { height: 1px; border-bottom: 1px solid #111; }

@media (max-width: 767.98px) {
    .project-picksheet { padding: 1rem; }
    .picksheet-header { flex-direction: column; gap: 1rem; }
    .picksheet-meta { min-width: 0; }
    .picksheet-project-details, .picksheet-summary { grid-template-columns: repeat(2, minmax(0,1fr)); }
    .serial-barcode-grid { grid-template-columns: 1fr; }
    .serial-barcode-card-heading, .serial-barcode-meta { grid-template-columns: 1fr; }
    .serial-barcode-card-heading { display: grid; }
    .serial-barcode-card-heading span { max-width: none; text-align: left; }
}

.print-label > .d-flex:first-child .small {
    display: -webkit-box;
    overflow: hidden;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 2;
}

/* Employee inventory check in/out */
.checkout-page,
.tablet-checkout-page { max-width: 1500px; margin: 0 auto; }
.tablet-scan-card { position: sticky; top: 1rem; z-index: 1005; box-shadow: 0 12px 34px rgba(16,38,59,.16); }
.tablet-result-card { overflow: hidden; }
.tablet-result-card .form-control-lg,
.tablet-result-card .form-select-lg,
.tablet-result-card .btn-lg { min-height: 56px; }
.tablet-stock-summary { min-width: 145px; display: grid; justify-items: end; align-content: center; padding: .8rem 1rem; border-radius: .8rem; background: #edf4f8; }
.tablet-stock-summary span,
.tablet-stock-summary small { color: #60717e; font-size: .75rem; text-transform: uppercase; letter-spacing: .04em; }
.tablet-stock-summary strong { font-size: 2rem; line-height: 1.05; }
.tablet-action-form { padding-top: .25rem; }
.project-tag-context { overflow: hidden; white-space: nowrap; text-overflow: ellipsis; }

@media (max-width: 991.98px) {
    .tablet-scan-card { top: 4.25rem; }
}
@media (max-width: 575.98px) {
    .tablet-stock-summary { width: 100%; justify-items: start; }
    .tablet-result-card .card-body { padding: 1rem !important; }
}

/* Settings tabs stay usable on tablets and narrow screens. */
.settings-tabs {
    flex-wrap: nowrap;
    overflow-x: auto;
    overflow-y: hidden;
    scrollbar-width: thin;
}
.settings-tabs .nav-link {
    white-space: nowrap;
}

/* Top account navigation */
.app-topbar {
    position: sticky;
    top: 0;
    z-index: 1020;
    min-height: 66px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    padding: .65rem 1.25rem;
    background: rgba(255,255,255,.96);
    border-bottom: 1px solid var(--app-border);
    box-shadow: 0 4px 18px rgba(16,38,59,.045);
    backdrop-filter: blur(12px);
}
.app-topbar-start,
.app-topbar-actions { display: flex; align-items: center; gap: .45rem; }
.app-topbar-start { flex: 1 1 auto; min-width: 0; gap: .85rem; }
.app-topbar-actions { flex: 0 1 auto; justify-content: flex-end; min-width: 0; }
.app-menu-toggle { display: none; width: 42px; height: 42px; padding: 0; align-items: center; justify-content: center; }
.app-topbar-title { color: var(--app-text); font-weight: 750; letter-spacing: .01em; }
.app-topbar-title:hover { color: var(--app-text); }
.topbar-brand {
    display: inline-flex;
    align-items: center;
    gap: .62rem;
    flex: 0 0 auto;
    color: var(--app-text);
    min-height: 42px;
}
.topbar-brand:hover { color: var(--app-text); }
.topbar-brand-mark,
.topbar-brand-logo {
    display: grid;
    place-items: center;
    width: 36px;
    height: 36px;
    border-radius: .7rem;
    overflow: hidden;
    flex: 0 0 auto;
}
.topbar-brand-mark {
    color: white;
    background: var(--app-accent);
    font-weight: 800;
}
.topbar-brand-logo {
    padding: 3px;
    background: white;
    border: 1px solid var(--app-border);
}
.topbar-brand-logo img { display: block; width: 100%; height: 100%; object-fit: contain; }
.topbar-brand span:last-child { display: flex; flex-direction: column; line-height: 1.08; }
.topbar-brand strong { font-size: .92rem; letter-spacing: .01em; }
.topbar-brand small { color: #71818d; font-size: .7rem; font-weight: 700; }
.app-topnav {
    display: flex;
    align-items: center;
    gap: .25rem;
    min-width: 0;
    flex-wrap: wrap;
}
.app-topnav-link {
    display: inline-flex;
    align-items: center;
    gap: .42rem;
    min-height: 40px;
    padding: .48rem .68rem;
    border: 1px solid transparent;
    border-radius: .68rem;
    background: transparent;
    color: #4e6271;
    font-weight: 700;
    white-space: nowrap;
}
.app-topnav-link:hover,
.app-topnav-link[aria-expanded="true"] {
    color: #19364d;
    background: #f3f7fa;
}
.app-topnav-link.active {
    color: #19364d;
    background: #eaf1f6;
    border-color: #d8e4ec;
}
.app-topnav-menu {
    min-width: 220px;
    border-color: var(--app-border);
    border-radius: .8rem;
    box-shadow: 0 14px 36px rgba(16,38,59,.14);
}
.app-topnav-menu .dropdown-item {
    display: flex;
    align-items: center;
    min-height: 38px;
    font-weight: 650;
}
.app-topnav-menu .dropdown-item.active,
.app-topnav-menu .dropdown-item:active {
    color: #19364d;
    background: #eaf1f6;
}
.app-topbar-search {
    position: relative;
    display: flex;
    align-items: center;
    flex: 0 1 360px;
    min-width: 220px;
    max-width: 360px;
}
.app-topbar-search i {
    position: absolute;
    left: .85rem;
    color: #71818d;
    pointer-events: none;
}
.app-topbar-search input {
    width: 100%;
    min-height: 42px;
    padding: .5rem 4.75rem .5rem 2.35rem;
    border: 1px solid #ccd8e1;
    border-radius: .7rem;
    background: #f8fafc;
    color: var(--app-text);
}
.app-topbar-search input:focus {
    outline: 0;
    border-color: #6688a2;
    background: white;
    box-shadow: 0 0 0 .2rem rgba(36,68,94,.12);
}
.app-topbar-search button {
    position: absolute;
    right: .25rem;
    display: inline-flex;
    align-items: center;
    gap: .25rem;
    min-height: 34px;
    padding-left: .75rem;
    padding-right: .75rem;
}
.app-topbar-search button i { position: static; color: currentColor; }
.lightning-search-results {
    position: absolute;
    top: calc(100% + .45rem);
    left: 0;
    right: 0;
    z-index: 1080;
    overflow: hidden;
    border: 1px solid #ccd8e1;
    border-radius: .7rem;
    background: white;
    box-shadow: 0 18px 42px rgba(16,38,59,.16);
}
.lightning-search-result {
    display: grid;
    grid-template-columns: 2rem minmax(0, 1fr) auto;
    align-items: center;
    gap: .65rem;
    padding: .72rem .85rem;
    color: var(--app-text);
    text-decoration: none;
    border-bottom: 1px solid #edf2f6;
}
.lightning-search-result:last-child { border-bottom: 0; }
.lightning-search-result:hover,
.lightning-search-result.active {
    color: #19364d;
    background: #f3f7fa;
}
.lightning-search-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 2rem;
    height: 2rem;
    border-radius: .55rem;
    background: #eaf1f6;
    color: #24445e;
}
.lightning-search-copy {
    min-width: 0;
    line-height: 1.18;
}
.lightning-search-copy strong,
.lightning-search-copy small {
    display: block;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}
.lightning-search-copy strong { font-size: .9rem; }
.lightning-search-copy small { color: #647785; font-size: .78rem; margin-top: .18rem; }
.lightning-search-type {
    font-size: .68rem;
    font-weight: 750;
    letter-spacing: .03em;
    text-transform: uppercase;
}
.lightning-search-empty {
    padding: .85rem;
    color: #60717e;
    font-size: .9rem;
}
.grid-column-full { grid-column: 1 / -1; }
.app-topbar-link {
    position: relative;
    display: inline-flex;
    align-items: center;
    gap: .48rem;
    min-height: 42px;
    padding: .55rem .75rem;
    border: 1px solid transparent;
    border-radius: .7rem;
    color: #4e6271;
    font-weight: 650;
    white-space: nowrap;
}
.app-topbar-link:hover { color: #19364d; background: #f3f7fa; }
.app-topbar-link.active { color: #19364d; background: #eaf1f6; border-color: #d8e4ec; }
.topbar-notification-badge { min-width: 1.35rem; padding: .24rem .38rem; }
.app-account-button {
    display: flex;
    align-items: center;
    gap: .6rem;
    min-height: 44px;
    padding: .3rem .65rem .3rem .35rem;
    border: 1px solid var(--app-border);
    border-radius: .75rem;
    background: white;
    color: var(--app-text);
}
.app-account-button:hover,
.app-account-button[aria-expanded="true"] { background: #f7fafc; border-color: #c9d7e1; }
.app-account-button .avatar { width: 34px; height: 34px; color: white; background: #24445e; }
.app-account-copy { min-width: 0; text-align: left; line-height: 1.08; }
.app-account-copy strong,
.app-account-copy small { display: block; max-width: 150px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.app-account-copy strong { font-size: .86rem; }
.app-account-copy small { margin-top: .2rem; color: #71818d; font-size: .72rem; }
.app-account-menu { min-width: 250px; border-color: var(--app-border); border-radius: .8rem; box-shadow: 0 14px 36px rgba(16,38,59,.14); }

@media (max-width: 1199.98px) {
    .app-topbar { flex-wrap: wrap; }
    .app-topbar-start,
    .app-topbar-actions { flex: 1 1 100%; }
    .app-topbar-start { align-items: flex-start; }
    .app-topnav { padding-top: .1rem; }
    .app-topbar-search { max-width: none; }
}
@media (max-width: 991.98px) {
    .app-topbar { padding: .6rem .85rem; }
    .app-topbar-title { display: none; }
    .app-topbar-search { flex-basis: 280px; min-width: 190px; max-width: none; }
}
@media (max-width: 767.98px) {
    .app-topbar-start { flex-wrap: wrap; gap: .45rem; }
    .app-topnav {
        flex: 1 1 100%;
        gap: .18rem;
    }
    .app-topnav-link {
        min-height: 38px;
        padding: .43rem .55rem;
        font-size: .9rem;
    }
    .app-topbar-actions { gap: .2rem; }
    .app-topbar-search {
        order: 10;
        flex: 1 0 100%;
        max-width: none;
        margin-top: .35rem;
    }
    .app-topbar-link { width: 42px; justify-content: center; padding: .5rem; }
    .app-topbar-link > span:not(.topbar-notification-badge) { display: none; }
    .topbar-notification-badge { position: absolute; top: -.2rem; right: -.35rem; }
    .app-account-copy { display: none; }
    .app-account-button { padding: .25rem .45rem .25rem .25rem; }
}
@media (max-width: 420px) {
    .app-topbar { gap: .35rem; padding-left: .55rem; padding-right: .55rem; }
    .app-topbar-link { width: 38px; min-height: 38px; }
    .app-account-button .avatar { width: 32px; height: 32px; }
    .app-topbar-search input { padding-right: 2.6rem; }
    .app-topbar-search button {
        width: 34px;
        padding: 0;
        justify-content: center;
    }
    .app-topbar-search button span { display: none; }
}
@media print {
    .app-topbar { display: none !important; }
}
/* Order line progress summaries */
.progress-stack {
    display: grid;
    gap: 1rem;
}
.order-progress-item {
    display: grid;
    gap: .45rem;
}
.order-progress-heading {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: 1rem;
}
.order-progress-heading > span {
    color: #60717e;
    font-size: .8rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: .04em;
}
.order-progress-heading strong {
    color: var(--bs-body-color);
    font-size: 1rem;
    font-variant-numeric: tabular-nums;
    white-space: nowrap;
}
.order-progress-separator {
    color: #8a99a5;
    font-weight: 500;
    padding: 0 .15rem;
}
.progress-stack .progress {
    height: .5rem;
    background: #e6edf2;
}
.progress-stack {
    grid-template-columns: minmax(0, 1fr);
}
.order-progress-heading .order-progress-separator {
    font-size: inherit;
    text-transform: none;
    letter-spacing: normal;
}


/* Account dashboard preferences */
.app-account-button.active { background: #edf4f8; border-color: #aac0cf; color: #173d56; }
.account-settings-page { max-width: 1500px; margin: 0 auto; }
.account-settings-avatar { display: inline-flex; align-items: center; justify-content: center; flex: 0 0 auto; width: 58px; height: 58px; border-radius: 50%; color: #fff; background: #24445e; font-size: 1.35rem; font-weight: 800; }
.account-settings-nav-card { position: sticky; top: 5.75rem; }
.account-settings-tabs { gap: .35rem; }
.account-settings-tabs .nav-link { display: flex; align-items: center; gap: .65rem; padding: .75rem .85rem; border-radius: .7rem; color: #526775; font-weight: 600; text-align: left; white-space: nowrap; }
.account-settings-tabs .nav-link i { flex: 0 0 auto; width: 1.2rem; font-size: 1.05rem; }
.account-settings-tabs .nav-link:hover { color: #19364d; background: #f2f6f9; }
.account-settings-tabs .nav-link.active { color: #173d56; background: #e7f0f6; box-shadow: inset 3px 0 0 #2b6f96; }
@media (max-width: 991.98px) {
    .account-settings-nav-card { position: static; }
    .account-settings-tabs { flex-direction: row !important; flex-wrap: nowrap; overflow-x: auto; }
    .account-settings-tabs .nav-link.active { box-shadow: inset 0 -3px 0 #2b6f96; }
}
.dashboard-preference-group + .dashboard-preference-group { margin-top: 1.75rem; padding-top: 1.5rem; border-top: 1px solid var(--app-border); }
.dashboard-preference-group h2 { margin: 0 0 .85rem; color: #536573; font-size: .78rem; font-weight: 800; letter-spacing: .075em; text-transform: uppercase; }
.dashboard-preference-option,
.dashboard-preference-required { display: flex; align-items: center; gap: .85rem; min-height: 88px; padding: 1rem; border: 1px solid var(--app-border); border-radius: .85rem; background: #fff; }
.dashboard-preference-option { height: 100%; cursor: pointer; transition: border-color .15s ease, box-shadow .15s ease, background-color .15s ease; }
.dashboard-preference-option:hover { border-color: #9eb6c6; box-shadow: 0 7px 20px rgba(25,58,83,.08); background: #fbfdfe; }
.dashboard-preference-option strong,
.dashboard-preference-required strong { display: block; color: #203847; line-height: 1.2; }
.dashboard-preference-option small { display: block; margin-top: .28rem; color: #6b7c87; line-height: 1.35; }
.dashboard-preference-required { border-color: #bdd5e5; background: #f3f8fb; }
.dashboard-preference-icon { display: inline-flex; align-items: center; justify-content: center; flex: 0 0 auto; width: 42px; height: 42px; border-radius: .7rem; color: #24445e; background: #e5eef4; font-size: 1.15rem; }
.dashboard-preference-option .form-switch,
.dashboard-preference-required .form-switch { padding-left: 2.6em; }
.dashboard-preference-option .form-check-input,
.dashboard-preference-required .form-check-input { width: 2.35em; height: 1.25em; margin-left: -2.6em; cursor: pointer; }
.dashboard-preference-required .form-check-input { cursor: not-allowed; opacity: .75; }

/* Assigned-project dashboard and bin management */
.project-dashboard-item { padding: 1rem 1.15rem; }
.project-dashboard-progress { height: .42rem; background: #e7eef3; }
.project-dashboard-progress .progress-bar { background: #2b6f96; }
.project-status-badges .badge { font-weight: 600; }
.bin-list-scroll { max-height: 540px; overflow-y: auto; }
.bin-list-scroll .list-group-item.active small { color: rgba(255,255,255,.75) !important; }
@media (max-width: 767.98px) {
    .project-status-badges { gap: .35rem !important; }
    .project-status-badges .badge { font-size: .72rem; }
}

/* Dashboard feature sections */
.dashboard-feature-card { overflow: hidden; }
.dashboard-feature-header { background: linear-gradient(135deg, #eaf1f6, #f8fafc); border-bottom: 1px solid #cad8e2; }
.dashboard-feature-title { margin: 0 0 .2rem; color: #17344b; font-size: 1.05rem; font-weight: 800; letter-spacing: .01em; }
.bins-by-site-title { font-weight: 700; }
.dashboard-feature-card > .table-responsive,
.dashboard-feature-card > .list-group,
.dashboard-feature-card > .empty-state { border-radius: 0 0 .9rem .9rem; overflow: hidden; }
.site-bin-accordion .accordion-item { border: 1px solid var(--app-border); border-radius: .8rem; overflow: hidden; }
.site-bin-accordion .accordion-button { font-weight: 400; background: #f7f9fb; }
.site-bin-accordion strong { font-weight: 700; }
.site-bin-accordion .accordion-button:not(.collapsed) { color: #17344b; background: #eaf1f6; box-shadow: none; }

/* Help and procedure guide */
.help-page { max-width: 1560px; margin: 0 auto; }
.help-section h2,
.help-start-panel h2 { margin: 0 0 .45rem; color: #536573; font-size: .82rem; font-weight: 800; letter-spacing: .075em; text-transform: uppercase; }
.help-chain { display: grid; grid-template-columns: repeat(8, minmax(92px, 1fr)); gap: .55rem; }
.help-chain span { position: relative; display: flex; align-items: center; justify-content: center; min-height: 46px; padding: .5rem .65rem; border: 1px solid #bdd5e5; border-radius: .75rem; color: #203847; background: #f3f8fb; font-size: .82rem; font-weight: 800; text-align: center; }
.help-chain span:not(:last-child)::after { content: ''; position: absolute; right: -.43rem; width: .55rem; height: .55rem; border-top: 2px solid #9eb6c6; border-right: 2px solid #9eb6c6; transform: rotate(45deg); background: #f3f8fb; }
.help-feature-icon { display: inline-flex; align-items: center; justify-content: center; flex: 0 0 auto; width: 44px; height: 44px; border-radius: .75rem; color: #204c68; background: #e3eef5; font-size: 1.2rem; }
.help-procedure-card { display: flex; flex-direction: row; align-items: flex-start; gap: .9rem; width: 100%; min-height: 176px; padding: 1rem; color: var(--app-text); text-align: left; background: #fff; cursor: pointer; transition: border-color .15s ease, box-shadow .15s ease, background-color .15s ease; }
.help-procedure-card:hover,
.help-procedure-card:focus { border-color: #9eb6c6; background: #fbfdfe; box-shadow: 0 7px 20px rgba(25,58,83,.08); outline: none; }
.help-procedure-card-copy { display: grid; gap: .35rem; min-width: 0; }
.help-procedure-card-copy strong { color: #203847; font-size: 1.02rem; line-height: 1.22; }
.help-procedure-card-copy small { color: #627482; line-height: 1.38; }
.help-procedure-meta { align-self: start; width: fit-content; margin-top: .25rem; padding: .25rem .5rem; border: 1px solid #cbd9e3; border-radius: 999px; color: #526775; background: #f8fafc; font-size: .76rem; font-weight: 700; }
.help-category { color: #7a3d14; font-size: .72rem; font-weight: 850; letter-spacing: .075em; text-transform: uppercase; }
.help-procedure-modal .modal-header { align-items: flex-start; gap: .9rem; background: #f8fafc; border-bottom-color: var(--app-border); }
.help-procedure-modal .modal-title { margin: 0 0 .25rem; color: #203847; font-size: 1.2rem; font-weight: 800; }
.help-procedure-modal .modal-header p { margin: 0; color: #627482; line-height: 1.38; }
.help-procedure-modal .modal-body { padding: 1.25rem; }
.help-procedure-modal h3 { margin: 0 0 .8rem; color: #536573; font-size: .78rem; font-weight: 800; letter-spacing: .075em; text-transform: uppercase; }
.help-modal-copy { margin: 0; color: #2f414d; line-height: 1.45; }
.help-step-list { display: grid; gap: .72rem; margin: 1rem 0 0; padding-left: 1.35rem; color: #2f414d; }
.help-step-list li { padding-left: .2rem; line-height: 1.42; }
.help-result { display: grid; gap: .2rem; margin-top: 1rem; padding: .85rem 1rem; border: 1px solid #bdd5e5; border-radius: .75rem; background: #f3f8fb; }
.help-result strong { color: #203847; font-size: .78rem; letter-spacing: .055em; text-transform: uppercase; }
.help-result span { color: #526775; line-height: 1.38; }
.help-side-panel { padding: 1rem; border: 1px solid var(--app-border); border-radius: .75rem; background: #fbfdfe; }
.help-side-panel ul { display: grid; gap: .55rem; margin: 0; padding-left: 1.1rem; color: #526775; line-height: 1.35; }
.help-chip-list { display: flex; flex-wrap: wrap; gap: .45rem; }
.help-link-chip { display: inline-flex; align-items: center; gap: .35rem; min-height: 34px; padding: .35rem .6rem; border: 1px solid #cbd9e3; border-radius: 999px; color: #24445e; background: #fff; font-size: .82rem; font-weight: 700; text-decoration: none; }
.help-link-chip:hover { color: #19364d; border-color: #9eb6c6; background: #f3f8fb; }
.help-link-chip.disabled { color: #748592; background: #f8fafc; }
.help-link-chip small { margin-left: .15rem; color: #8a99a5; font-size: .72rem; font-weight: 600; }
.help-decision-card { padding: 1rem; }
.help-decision-card strong { display: block; margin-bottom: .4rem; color: #203847; }
.help-decision-card p { margin: 0; color: #627482; line-height: 1.4; }
@media (max-width: 1199.98px) {
    .help-chain { grid-template-columns: repeat(4, minmax(120px, 1fr)); }
    .help-chain span:not(:last-child)::after { display: none; }
}
@media (max-width: 575.98px) {
    .help-chain { grid-template-columns: 1fr; }
    .help-procedure-card { min-height: 0; }
}

/* v6.11 authentication, role, user and log management */
.security-method-card { padding: 1.25rem; border: 1px solid var(--app-border); border-radius: .9rem; background: #fbfdfe; }
.security-method-icon { display: inline-flex; align-items: center; justify-content: center; width: 44px; height: 44px; margin-bottom: .85rem; border-radius: .75rem; color: #204c68; background: #e3eef5; font-size: 1.2rem; }
.security-setup-panel { padding: 1.25rem; border: 1px solid #bdd5e5; border-radius: .9rem; background: #f3f8fb; }
.otp-setup-qr { display: flex; align-items: center; justify-content: center; min-width: 216px; min-height: 216px; padding: 12px; border: 1px solid var(--app-border); border-radius: .7rem; background: #fff; }
.otp-setup-qr canvas { display: block; max-width: 100%; height: auto !important; }
.otp-setup-qr img { display: block; max-width: 100%; height: auto !important; }
.security-code-input { max-width: 15rem; font-size: 1.35rem; font-weight: 750; letter-spacing: .3em; text-align: center; font-variant-numeric: tabular-nums; }
.permission-check { display: flex; align-items: flex-start; gap: .7rem; height: 100%; padding: .8rem; border: 1px solid var(--app-border); border-radius: .7rem; background: #fff; cursor: pointer; }
.permission-check:hover { border-color: #9eb6c6; background: #fbfdfe; }
.permission-check strong, .permission-check small { display: block; }
.permission-check small { margin-top: .15rem; color: #6b7c87; line-height: 1.3; }
.user-list-search { width: min(100%, 280px); }
.user-permission-grid { max-height: 48vh; overflow-y: auto; padding-right: .2rem; }
.log-context { max-width: 720px; white-space: pre-wrap; overflow-wrap: anywhere; }
@media (max-width: 575.98px) {
    .otp-setup-qr { min-width: 0; width: fit-content; margin-inline: auto; }
    .security-code-input { max-width: none; }
    .user-list-search { width: 100%; }
}

/* Serialized inventory assemblies */
.assembly-card { position: relative; z-index: 18; overflow: visible; }
.assembly-components-table { table-layout: fixed; min-width: 760px; }
.assembly-component-part-col { width: 34%; }
.assembly-component-serial-col { width: 20%; }
.assembly-component-location-col { width: 24%; }
.assembly-component-actions-col { width: 22%; }
.assembly-quantity-input { width: 5.25rem; }
.assembly-quantity-form { align-items: stretch; }
.assembly-components-table td:last-child .btn-sm,
.assembly-components-table td:last-child .form-control-sm {
    min-height: 31px;
    height: 31px;
}
.assembly-components-table td:last-child .btn-sm {
    display: inline-flex;
    align-items: center;
    justify-content: center;
}
.assembly-components-table td,
.assembly-components-table th { vertical-align: middle; }
.assembly-components-table td:first-child a,
.assembly-components-table td:first-child small { overflow-wrap: anywhere; }
.assembly-components-table th:last-child,
.assembly-components-table td:last-child { white-space: nowrap; }
.assembly-component-form .part-search { position: relative; z-index: 30; }
.assembly-component-form .assembly-add-action .btn { min-height: 42px; }
.assembly-label-components { display: grid; justify-items: start; width: 100%; font-size: .58rem; line-height: 1.05; overflow: hidden; text-align: left; }
.assembly-label-components > div { width: 100%; text-align: left; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.print-label.label-size-30347 .assembly-label-components { max-height: .2in; gap: 0; font-size: .34rem; line-height: 1.02; }
.print-label.label-size-30347 .assembly-label-components > div:nth-child(n+4) { display: none; }
.print-label.label-size-30347 .project-tag-context { font-size: .42rem !important; }
.print-label.label-size-30347.has-serial .barcode-part { display: none !important; }
.print-label.label-size-30252 .assembly-label-components { max-height: .22in; gap: 0; font-size: .38rem; line-height: 1.02; }
.print-label.label-size-30252 .assembly-label-components > div:nth-child(n+4) { display: none; }
.print-label.label-size-30252.has-serial .barcode-part { display: none !important; }
.print-label.label-size-30334 .assembly-label-components { display: none !important; }

/* Inventory detail page */
.inventory-overview .metric-card .card-body { min-height: 92px; align-items: flex-start; }
.inventory-overview .metric-value { max-width: 100%; font-size: 1.35rem; line-height: 1.15; overflow-wrap: anywhere; }
.inventory-overview .inventory-location-value { font-size: .95rem; line-height: 1.25; }
.inventory-detail-layout .card-header { border-bottom-color: #edf2f6; }
.inventory-detail-list { grid-template-columns: 1fr; gap: .85rem; }
.inventory-detail-list dd { overflow-wrap: anywhere; line-height: 1.35; }
.inventory-readable-table { min-width: 780px; }
.inventory-readable-table td { vertical-align: top; }
.inventory-readable-table td:first-child,
.inventory-readable-table td:nth-child(3),
.inventory-notes-cell { white-space: normal; overflow-wrap: anywhere; }
.inventory-notes-cell { min-width: 180px; max-width: 320px; }

@media (min-width: 1400px) {
    .inventory-detail-list { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
.print-label.label-size-30334 .project-tag-context { font-size: .46rem !important; }
.print-label.label-size-30334.has-serial .barcode-part { display: none !important; }
