/* /Components/Admin/AdminLabels.razor.rz.scp.css */
/* Partner List — scoped (Core CSS is per-page, never global; and scoped CSS does not
   cross component boundaries either). Panels, field grid and table mirror the Labels
   pages so the Portal reads as one product. */

.panel[b-16s5wa1tt0] {
    background: var(--uds-white);
    border: 1px solid var(--uds-grey-200);
    border-radius: 6px;
    padding: 1rem 1.25rem;
    margin-bottom: 1rem;
}

.panel h3[b-16s5wa1tt0] { margin: 0 0 0.75rem; font-size: 1rem; }

.field-grid[b-16s5wa1tt0] {
    display: grid;
    gap: 0.6rem 1.25rem;
    grid-template-columns: minmax(280px, 2fr) auto;
    align-items: end;
}

.field-grid label[b-16s5wa1tt0] {
    display: flex;
    flex-direction: column;
    font-size: 0.78rem;
    color: var(--uds-secondary);
    gap: 0.2rem;
}

.field-grid input:not([type="checkbox"])[b-16s5wa1tt0] {
    font-family: var(--uds-font-body);
    font-size: 0.85rem;
    color: var(--uds-ink);
    border: 1px solid #c9ccd4;
    border-radius: 4px;
    padding: 0.35rem 0.5rem;
    background: var(--uds-white);
}

.field-grid input:focus[b-16s5wa1tt0] { outline: 2px solid var(--uds-primary); outline-offset: -1px; }

/* The checkbox sits on the baseline with the input, not above it. */
.checkline[b-16s5wa1tt0] { flex-direction: row !important; align-items: center; gap: 0.4rem !important; padding-bottom: 0.4rem; }
.checkline input[b-16s5wa1tt0] { margin: 0; }

.actions[b-16s5wa1tt0] { margin-top: 0.9rem; display: flex; gap: 0.5rem; align-items: center; }
.muted[b-16s5wa1tt0] { color: var(--uds-secondary); }
.small[b-16s5wa1tt0] { font-size: 0.75rem; }
.hint[b-16s5wa1tt0] { margin: 0.5rem 0 0; }

.table-scroll[b-16s5wa1tt0] { overflow-x: auto; }

table.labels[b-16s5wa1tt0] { width: 100%; border-collapse: collapse; font-size: 0.8rem; }

table.labels th[b-16s5wa1tt0] {
    text-align: left;
    background: var(--uds-grey-100, #f2f3f5);
    border-bottom: 1px solid var(--uds-grey-200);
    padding: 0.4rem 0.5rem;
    font-weight: 600;
    white-space: nowrap;
}

table.labels td[b-16s5wa1tt0] {
    border-bottom: 1px solid var(--uds-grey-200);
    padding: 0.4rem 0.5rem;
    vertical-align: top;
}

table.labels tbody tr:hover td[b-16s5wa1tt0] { background: #f6f9fd; }

td.mono[b-16s5wa1tt0] { font-family: var(--uds-font-mono, ui-monospace, "Cascadia Mono", Consolas, monospace); }

/* A closed account is greyed, never hidden — "where did that account go" is a real question. */
tr.closed td[b-16s5wa1tt0] { color: var(--uds-secondary); background: #fbfbfc; }

.tag[b-16s5wa1tt0] {
    display: inline-block;
    margin-left: 0.35rem;
    padding: 0 0.35rem;
    border-radius: 3px;
    background: #fdf3f2;
    border: 1px solid #f3c5c1;
    color: #7a271a;
    font-size: 0.68rem;
    text-transform: uppercase;
    letter-spacing: 0.04em;
}

.empty[b-16s5wa1tt0] { text-align: center; padding: 2.5rem 1.25rem; }
.empty p[b-16s5wa1tt0] { margin: 0 0 0.5rem; }
.empty .btn[b-16s5wa1tt0] { margin-top: 0.5rem; }

/* The link through to Partner View/Edit. */
td.links[b-16s5wa1tt0], th.links[b-16s5wa1tt0] { width: 3.5rem; white-space: nowrap; }
td.links a[b-16s5wa1tt0] { color: var(--uds-primary); font-weight: 600; }

/* ── admin labels specifics ──────────────────────────────────────────────── */

/* Seven filters, so let the grid template wrap rather than forcing two columns. */
.field-grid[b-16s5wa1tt0] { grid-template-columns: repeat(auto-fit, minmax(190px, 1fr)); }
.field-grid select[b-16s5wa1tt0] {
    font-family: var(--uds-font-body);
    font-size: 0.85rem;
    border: 1px solid #c9ccd4;
    border-radius: 4px;
    padding: 0.35rem 0.5rem;
    background: var(--uds-white);
}

th.num[b-16s5wa1tt0], td.num[b-16s5wa1tt0] { text-align: right; width: 4.5rem; white-space: nowrap; }
td.tracking[b-16s5wa1tt0] { font-family: var(--uds-font-mono, ui-monospace, "Cascadia Mono", Consolas, monospace); }
tr.cancelled td[b-16s5wa1tt0] { color: var(--uds-secondary); background: #fbfbfc; }

.pager[b-16s5wa1tt0] { margin-top: 0.9rem; display: flex; gap: 0.75rem; align-items: center; font-size: 0.82rem; }
.pager .pagesize[b-16s5wa1tt0] { margin-left: auto; display: flex; gap: 0.35rem; align-items: center; color: var(--uds-secondary); }
.pager select[b-16s5wa1tt0] {
    font-size: 0.8rem;
    border: 1px solid #c9ccd4;
    border-radius: 4px;
    padding: 0.15rem 0.3rem;
    background: var(--uds-white);
}

/* Rows are not clickable here — no detail expand, so no pointer affordance. */
table.labels tbody tr[b-16s5wa1tt0] { cursor: default; }
/* /Components/Admin/OnlinePassword.razor.rz.scp.css */
/* Online Password — scoped (Core CSS is per-page, never global). */

.panel[b-auxuyjf8x2] {
    background: var(--uds-white);
    border: 1px solid var(--uds-grey-200);
    border-radius: 6px;
    padding: 1rem 1.25rem;
    margin-bottom: 1rem;
}

.panel h3[b-auxuyjf8x2] { margin: 0 0 0.75rem; font-size: 1rem; }

.field-grid[b-auxuyjf8x2] {
    display: grid;
    gap: 0.6rem 1rem;
    grid-template-columns: minmax(280px, 1fr) auto;
    align-items: end;
}

.field-grid label[b-auxuyjf8x2] {
    display: flex;
    flex-direction: column;
    font-size: 0.78rem;
    color: var(--uds-secondary);
    gap: 0.2rem;
}

.field-grid input[b-auxuyjf8x2] {
    font-family: var(--uds-font-body);
    font-size: 0.85rem;
    color: var(--uds-ink);
    border: 1px solid #c9ccd4;
    border-radius: 4px;
    padding: 0.35rem 0.5rem;
    background: var(--uds-white);
}

.field-grid input:focus[b-auxuyjf8x2] { outline: 2px solid var(--uds-primary); outline-offset: -1px; }

.actions[b-auxuyjf8x2] { margin-top: 0.9rem; display: flex; gap: 0.5rem; align-items: center; }
.actions.inline[b-auxuyjf8x2] { margin-top: 0; padding-bottom: 0.1rem; }

.muted[b-auxuyjf8x2] { color: var(--uds-secondary); }
.small[b-auxuyjf8x2] { font-size: 0.75rem; }
.hint[b-auxuyjf8x2] { margin: 0.4rem 0 0; }
.mono[b-auxuyjf8x2] { font-family: var(--uds-font-mono, ui-monospace, "Cascadia Mono", Consolas, monospace); }

.table-scroll[b-auxuyjf8x2] { overflow-x: auto; }
.matches[b-auxuyjf8x2] { margin-top: 0.9rem; max-height: 18rem; overflow-y: auto; }

table.labels[b-auxuyjf8x2] { width: 100%; border-collapse: collapse; font-size: 0.8rem; }

table.labels th[b-auxuyjf8x2] {
    text-align: left;
    background: var(--uds-grey-100, #f2f3f5);
    border-bottom: 1px solid var(--uds-grey-200);
    padding: 0.4rem 0.5rem;
    font-weight: 600;
    white-space: nowrap;
    position: sticky;
    top: 0;
}

table.labels td[b-auxuyjf8x2] {
    border-bottom: 1px solid var(--uds-grey-200);
    padding: 0.4rem 0.5rem;
    vertical-align: top;
}

th.act[b-auxuyjf8x2], td.act[b-auxuyjf8x2] { width: 6rem; white-space: nowrap; }
table.labels tbody tr.picked td[b-auxuyjf8x2] { background: #eef4fd; }

/* The chosen partner — set apart, because everything below it changes somebody's access. */
.chosen[b-auxuyjf8x2] {
    margin-top: 1rem;
    padding: 0.9rem 1rem;
    border: 1px solid var(--uds-grey-200);
    border-left: 4px solid var(--uds-primary);
    border-radius: 4px;
    background: #f8fafc;
}
.chosen > p:first-child[b-auxuyjf8x2] { margin: 0 0 0.7rem; font-size: 0.85rem; }

.error-line[b-auxuyjf8x2] {
    margin: 0.9rem 0 0;
    padding: 0.5rem 0.7rem;
    border-left: 4px solid #b42318;
    background: #fdf3f2;
    color: #7a271a;
    font-size: 0.82rem;
}

/* ── the once-only panel (CD202) ─────────────────────────────────────────────
   Loud on purpose. This is the only moment the value exists outside the
   partner's head — there is no read path back to it. */

.issued[b-auxuyjf8x2] { border-left: 4px solid #1a7f37; }

.new-password[b-auxuyjf8x2] {
    margin: 0.5rem 0 0.8rem;
    padding: 0.8rem 1rem;
    background: var(--uds-grey-100, #eef1f5);
    border: 1px dashed var(--uds-grey-200);
    border-radius: 4px;
    font-size: 1.35rem;
    letter-spacing: 0.06em;
    user-select: all;      /* one click selects the whole thing to copy */
    word-break: break-all;
}

.issued .warn[b-auxuyjf8x2] { margin: 0 0 0.5rem; color: #7a271a; font-size: 0.85rem; }
.issued .btn[b-auxuyjf8x2] { margin-top: 0.6rem; }
/* /Components/Admin/PartnerEdit.razor.rz.scp.css */
/* Partner View/Edit — scoped (Core CSS is per-page, never global). */

.panel[b-ah0oszedhk] {
    background: var(--uds-white);
    border: 1px solid var(--uds-grey-200);
    border-radius: 6px;
    padding: 1rem 1.25rem;
    margin-bottom: 1rem;
}

.head[b-ah0oszedhk] { display: flex; align-items: baseline; gap: 1rem; }
.head h3[b-ah0oszedhk] { margin: 0 0 0.75rem; font-size: 1rem; flex: 1 1 auto; }
.head .btn[b-ah0oszedhk] { flex: 0 0 auto; }

h4[b-ah0oszedhk] {
    margin: 1.1rem 0 0.5rem;
    font-size: 0.8rem;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    color: var(--uds-secondary);
    border-bottom: 1px solid var(--uds-grey-200);
    padding-bottom: 0.25rem;
}

.field-grid[b-ah0oszedhk] {
    display: grid;
    gap: 0.6rem 1.1rem;
    grid-template-columns: repeat(auto-fit, minmax(210px, 1fr));
    align-items: end;
}

.field-grid label[b-ah0oszedhk] {
    display: flex;
    flex-direction: column;
    font-size: 0.78rem;
    color: var(--uds-secondary);
    gap: 0.2rem;
}

.field-grid input[b-ah0oszedhk] {
    font-family: var(--uds-font-body);
    font-size: 0.85rem;
    color: var(--uds-ink);
    border: 1px solid #c9ccd4;
    border-radius: 4px;
    padding: 0.35rem 0.5rem;
    background: var(--uds-white);
}

.field-grid input:focus[b-ah0oszedhk] { outline: 2px solid var(--uds-primary); outline-offset: -1px; }

.checkline[b-ah0oszedhk] { flex-direction: row !important; align-items: center; gap: 0.4rem !important; padding-bottom: 0.4rem; }
.checkline input[b-ah0oszedhk] { margin: 0; }

.actions[b-ah0oszedhk] { margin-top: 0.9rem; display: flex; gap: 0.5rem; align-items: center; flex-wrap: wrap; }
.actions.inline[b-ah0oszedhk] { margin-top: 0; padding-bottom: 0.1rem; }

.muted[b-ah0oszedhk] { color: var(--uds-secondary); }
.small[b-ah0oszedhk] { font-size: 0.75rem; }
.mono[b-ah0oszedhk] { font-family: var(--uds-font-mono, ui-monospace, "Cascadia Mono", Consolas, monospace); }
.warn[b-ah0oszedhk] { color: #7a271a; }

/* ── the API key block ───────────────────────────────────────────────────────
   Set apart because it is a credential, not a form field: masked by default,
   and loud when a new one is pending an unsaved save. */

.apikey-block[b-ah0oszedhk] {
    padding: 0.7rem 0.9rem;
    border: 1px solid var(--uds-grey-200);
    border-left: 4px solid #b54708;
    border-radius: 4px;
    background: #fffaf5;
}

.apikey[b-ah0oszedhk] {
    margin: 0;
    font-size: 0.9rem;
    word-break: break-all;
    user-select: all;
}

.apikey.masked[b-ah0oszedhk] { color: var(--uds-secondary); user-select: none; letter-spacing: 0.04em; }

/* ── surcharges ──────────────────────────────────────────────────────────── */

.table-scroll[b-ah0oszedhk] { overflow-x: auto; }
table.labels[b-ah0oszedhk] { width: 100%; border-collapse: collapse; font-size: 0.8rem; }

table.labels th[b-ah0oszedhk] {
    text-align: left;
    background: var(--uds-grey-100, #f2f3f5);
    border-bottom: 1px solid var(--uds-grey-200);
    padding: 0.4rem 0.5rem;
    font-weight: 600;
    white-space: nowrap;
}

table.labels td[b-ah0oszedhk] {
    border-bottom: 1px solid var(--uds-grey-200);
    padding: 0.4rem 0.5rem;
    vertical-align: top;
}

th.num[b-ah0oszedhk], td.num[b-ah0oszedhk] { text-align: right; width: 7rem; }
th.act[b-ah0oszedhk], td.act[b-ah0oszedhk] { width: 6rem; text-align: right; }

.add-surcharge[b-ah0oszedhk] { margin-top: 0.8rem; }

/* ── save bar and messages ───────────────────────────────────────────────── */

.save-bar[b-ah0oszedhk] {
    margin-top: 1.4rem;
    padding-top: 0.9rem;
    border-top: 1px solid var(--uds-grey-200);
}

.btn.danger[b-ah0oszedhk] { background: #b42318; border-color: #b42318; color: #fff; }
.btn.danger:hover:not(:disabled)[b-ah0oszedhk] { background: #96200f; }

.ok-line[b-ah0oszedhk] {
    margin: 0 0 0.8rem;
    padding: 0.5rem 0.7rem;
    border-left: 4px solid #1a7f37;
    background: #eef8f0;
    font-size: 0.82rem;
}

.error-line[b-ah0oszedhk] {
    margin: 0 0 0.8rem;
    padding: 0.5rem 0.7rem;
    border-left: 4px solid #b42318;
    background: #fdf3f2;
    color: #7a271a;
    font-size: 0.82rem;
}

.tag[b-ah0oszedhk] {
    display: inline-block;
    margin-left: 0.4rem;
    padding: 0 0.35rem;
    border-radius: 3px;
    background: #fdf3f2;
    border: 1px solid #f3c5c1;
    color: #7a271a;
    font-size: 0.68rem;
    text-transform: uppercase;
    letter-spacing: 0.04em;
}

.empty[b-ah0oszedhk] { text-align: center; padding: 2.5rem 1.25rem; }
.empty p[b-ah0oszedhk] { margin: 0 0 0.8rem; }

/* ── documents (CHG-122) ─────────────────────────────────────────────────── */

.doc-filter[b-ah0oszedhk] { display: flex; gap: 0.35rem; flex-wrap: wrap; margin: 0.4rem 0 0.6rem; }
.doc-filter .btn.on[b-ah0oszedhk] { background: var(--uds-navy, #1f2a44); color: #fff; border-color: var(--uds-navy, #1f2a44); }
th.date[b-ah0oszedhk], td.date[b-ah0oszedhk] { width: 9rem; white-space: nowrap; }
th.type[b-ah0oszedhk], td.type[b-ah0oszedhk] { width: 7rem; }
td.file a[b-ah0oszedhk] { word-break: break-all; }
.upload-row[b-ah0oszedhk] { display: flex; gap: 0.6rem; align-items: center; flex-wrap: wrap; margin-top: 0.7rem; font-size: 0.82rem; }
.upload-row[b-ah0oszedhk]  input[type=file] { font-size: 0.8rem; }
/* /Components/Admin/PartnerNew.razor.rz.scp.css */
/* Partner View/Edit — scoped (Core CSS is per-page, never global). */

.panel[b-vehobjq8lo] {
    background: var(--uds-white);
    border: 1px solid var(--uds-grey-200);
    border-radius: 6px;
    padding: 1rem 1.25rem;
    margin-bottom: 1rem;
}

.head[b-vehobjq8lo] { display: flex; align-items: baseline; gap: 1rem; }
.head h3[b-vehobjq8lo] { margin: 0 0 0.75rem; font-size: 1rem; flex: 1 1 auto; }
.head .btn[b-vehobjq8lo] { flex: 0 0 auto; }

h4[b-vehobjq8lo] {
    margin: 1.1rem 0 0.5rem;
    font-size: 0.8rem;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    color: var(--uds-secondary);
    border-bottom: 1px solid var(--uds-grey-200);
    padding-bottom: 0.25rem;
}

.field-grid[b-vehobjq8lo] {
    display: grid;
    gap: 0.6rem 1.1rem;
    grid-template-columns: repeat(auto-fit, minmax(210px, 1fr));
    align-items: end;
}

.field-grid label[b-vehobjq8lo] {
    display: flex;
    flex-direction: column;
    font-size: 0.78rem;
    color: var(--uds-secondary);
    gap: 0.2rem;
}

.field-grid input[b-vehobjq8lo] {
    font-family: var(--uds-font-body);
    font-size: 0.85rem;
    color: var(--uds-ink);
    border: 1px solid #c9ccd4;
    border-radius: 4px;
    padding: 0.35rem 0.5rem;
    background: var(--uds-white);
}

.field-grid input:focus[b-vehobjq8lo] { outline: 2px solid var(--uds-primary); outline-offset: -1px; }

.checkline[b-vehobjq8lo] { flex-direction: row !important; align-items: center; gap: 0.4rem !important; padding-bottom: 0.4rem; }
.checkline input[b-vehobjq8lo] { margin: 0; }

.actions[b-vehobjq8lo] { margin-top: 0.9rem; display: flex; gap: 0.5rem; align-items: center; flex-wrap: wrap; }
.actions.inline[b-vehobjq8lo] { margin-top: 0; padding-bottom: 0.1rem; }

.muted[b-vehobjq8lo] { color: var(--uds-secondary); }
.small[b-vehobjq8lo] { font-size: 0.75rem; }
.mono[b-vehobjq8lo] { font-family: var(--uds-font-mono, ui-monospace, "Cascadia Mono", Consolas, monospace); }
.warn[b-vehobjq8lo] { color: #7a271a; }

/* ── the API key block ───────────────────────────────────────────────────────
   Set apart because it is a credential, not a form field: masked by default,
   and loud when a new one is pending an unsaved save. */

.apikey-block[b-vehobjq8lo] {
    padding: 0.7rem 0.9rem;
    border: 1px solid var(--uds-grey-200);
    border-left: 4px solid #b54708;
    border-radius: 4px;
    background: #fffaf5;
}

.apikey[b-vehobjq8lo] {
    margin: 0;
    font-size: 0.9rem;
    word-break: break-all;
    user-select: all;
}

.apikey.masked[b-vehobjq8lo] { color: var(--uds-secondary); user-select: none; letter-spacing: 0.04em; }

/* ── surcharges ──────────────────────────────────────────────────────────── */

.table-scroll[b-vehobjq8lo] { overflow-x: auto; }
table.labels[b-vehobjq8lo] { width: 100%; border-collapse: collapse; font-size: 0.8rem; }

table.labels th[b-vehobjq8lo] {
    text-align: left;
    background: var(--uds-grey-100, #f2f3f5);
    border-bottom: 1px solid var(--uds-grey-200);
    padding: 0.4rem 0.5rem;
    font-weight: 600;
    white-space: nowrap;
}

table.labels td[b-vehobjq8lo] {
    border-bottom: 1px solid var(--uds-grey-200);
    padding: 0.4rem 0.5rem;
    vertical-align: top;
}

th.num[b-vehobjq8lo], td.num[b-vehobjq8lo] { text-align: right; width: 7rem; }
th.act[b-vehobjq8lo], td.act[b-vehobjq8lo] { width: 6rem; text-align: right; }

.add-surcharge[b-vehobjq8lo] { margin-top: 0.8rem; }

/* ── save bar and messages ───────────────────────────────────────────────── */

.save-bar[b-vehobjq8lo] {
    margin-top: 1.4rem;
    padding-top: 0.9rem;
    border-top: 1px solid var(--uds-grey-200);
}

.btn.danger[b-vehobjq8lo] { background: #b42318; border-color: #b42318; color: #fff; }
.btn.danger:hover:not(:disabled)[b-vehobjq8lo] { background: #96200f; }

.ok-line[b-vehobjq8lo] {
    margin: 0 0 0.8rem;
    padding: 0.5rem 0.7rem;
    border-left: 4px solid #1a7f37;
    background: #eef8f0;
    font-size: 0.82rem;
}

.error-line[b-vehobjq8lo] {
    margin: 0 0 0.8rem;
    padding: 0.5rem 0.7rem;
    border-left: 4px solid #b42318;
    background: #fdf3f2;
    color: #7a271a;
    font-size: 0.82rem;
}

.tag[b-vehobjq8lo] {
    display: inline-block;
    margin-left: 0.4rem;
    padding: 0 0.35rem;
    border-radius: 3px;
    background: #fdf3f2;
    border: 1px solid #f3c5c1;
    color: #7a271a;
    font-size: 0.68rem;
    text-transform: uppercase;
    letter-spacing: 0.04em;
}

.empty[b-vehobjq8lo] { text-align: center; padding: 2.5rem 1.25rem; }
.empty p[b-vehobjq8lo] { margin: 0 0 0.8rem; }

/* ── Create Partner (CHG-122) ─────────────────────────────────────────────── */

.field-grid select[b-vehobjq8lo] {
    font-family: var(--uds-font-body);
    font-size: 0.85rem;
    color: var(--uds-ink);
    border: 1px solid #c9ccd4;
    border-radius: 4px;
    padding: 0.35rem 0.5rem;
    background: var(--uds-white);
}

.next-steps[b-vehobjq8lo] { margin: 0.4rem 0 0.8rem 1.2rem; padding: 0; font-size: 0.85rem; line-height: 1.5; }
.next-steps li[b-vehobjq8lo] { margin-bottom: 0.4rem; }
/* /Components/Admin/Partners.razor.rz.scp.css */
/* Partner List — scoped (Core CSS is per-page, never global; and scoped CSS does not
   cross component boundaries either). Panels, field grid and table mirror the Labels
   pages so the Portal reads as one product. */

.panel[b-oqhnl94top] {
    background: var(--uds-white);
    border: 1px solid var(--uds-grey-200);
    border-radius: 6px;
    padding: 1rem 1.25rem;
    margin-bottom: 1rem;
}

.panel h3[b-oqhnl94top] { margin: 0 0 0.75rem; font-size: 1rem; }

.field-grid[b-oqhnl94top] {
    display: grid;
    gap: 0.6rem 1.25rem;
    grid-template-columns: minmax(280px, 2fr) auto;
    align-items: end;
}

.field-grid label[b-oqhnl94top] {
    display: flex;
    flex-direction: column;
    font-size: 0.78rem;
    color: var(--uds-secondary);
    gap: 0.2rem;
}

.field-grid input:not([type="checkbox"])[b-oqhnl94top] {
    font-family: var(--uds-font-body);
    font-size: 0.85rem;
    color: var(--uds-ink);
    border: 1px solid #c9ccd4;
    border-radius: 4px;
    padding: 0.35rem 0.5rem;
    background: var(--uds-white);
}

.field-grid input:focus[b-oqhnl94top] { outline: 2px solid var(--uds-primary); outline-offset: -1px; }

/* The checkbox sits on the baseline with the input, not above it. */
.checkline[b-oqhnl94top] { flex-direction: row !important; align-items: center; gap: 0.4rem !important; padding-bottom: 0.4rem; }
.checkline input[b-oqhnl94top] { margin: 0; }

.actions[b-oqhnl94top] { margin-top: 0.9rem; display: flex; gap: 0.5rem; align-items: center; }
.muted[b-oqhnl94top] { color: var(--uds-secondary); }
.small[b-oqhnl94top] { font-size: 0.75rem; }
.hint[b-oqhnl94top] { margin: 0.5rem 0 0; }

.table-scroll[b-oqhnl94top] { overflow-x: auto; }

table.labels[b-oqhnl94top] { width: 100%; border-collapse: collapse; font-size: 0.8rem; }

table.labels th[b-oqhnl94top] {
    text-align: left;
    background: var(--uds-grey-100, #f2f3f5);
    border-bottom: 1px solid var(--uds-grey-200);
    padding: 0.4rem 0.5rem;
    font-weight: 600;
    white-space: nowrap;
}

table.labels td[b-oqhnl94top] {
    border-bottom: 1px solid var(--uds-grey-200);
    padding: 0.4rem 0.5rem;
    vertical-align: top;
}

table.labels tbody tr:hover td[b-oqhnl94top] { background: #f6f9fd; }

td.mono[b-oqhnl94top] { font-family: var(--uds-font-mono, ui-monospace, "Cascadia Mono", Consolas, monospace); }

/* A closed account is greyed, never hidden — "where did that account go" is a real question. */
tr.closed td[b-oqhnl94top] { color: var(--uds-secondary); background: #fbfbfc; }

.tag[b-oqhnl94top] {
    display: inline-block;
    margin-left: 0.35rem;
    padding: 0 0.35rem;
    border-radius: 3px;
    background: #fdf3f2;
    border: 1px solid #f3c5c1;
    color: #7a271a;
    font-size: 0.68rem;
    text-transform: uppercase;
    letter-spacing: 0.04em;
}

.empty[b-oqhnl94top] { text-align: center; padding: 2.5rem 1.25rem; }
.empty p[b-oqhnl94top] { margin: 0 0 0.5rem; }
.empty .btn[b-oqhnl94top] { margin-top: 0.5rem; }

/* The link through to Partner View/Edit. */
td.links[b-oqhnl94top], th.links[b-oqhnl94top] { width: 3.5rem; white-space: nowrap; }
td.links a[b-oqhnl94top] { color: var(--uds-primary); font-weight: 600; }
/* /Components/Layout/LoginLayout.razor.rz.scp.css */
.login-shell[b-qj6vkcl6ur] {
    min-height: 100vh;
    display: flex;
    align-items: center;
    justify-content: center;
    background-image: linear-gradient(180deg, var(--uds-navy) 0%, var(--uds-navy-deep) 100%);
    padding: 1.5rem;
}

.login-card[b-qj6vkcl6ur] {
    background: var(--uds-white);
    border-radius: 10px;
    box-shadow: 0 12px 40px rgba(0, 0, 0, 0.35);
    width: 100%;
    max-width: 26rem;
    padding: 2rem 2.25rem 2.25rem;
}

.login-logo[b-qj6vkcl6ur] {
    display: block;
    margin: 0 auto 1.25rem;
    height: 5.5rem;
    width: auto;
    max-width: 100%;
    /* The white logo on a white card: give it the navy backing it was drawn for. */
    background-image: linear-gradient(180deg, var(--uds-navy) 0%, var(--uds-navy-deep) 100%);
    border-radius: 8px;
    padding: 0.75rem 1.25rem;
    box-sizing: content-box;
}

[b-qj6vkcl6ur] .uds-stripe {
    margin-bottom: 1.25rem;
}
/* /Components/Layout/NavMenu.razor.rz.scp.css */
.brand-row[b-itk2kmflw4] {
    background-color: rgba(0, 0, 0, 0.25);
    display: flex;
    justify-content: center;
    padding: 1.1rem 0.75rem;
}

.brand-link[b-itk2kmflw4] {
    display: flex;
    justify-content: center;
    width: 100%;
}

.brand-logo[b-itk2kmflw4] {
    height: 6rem;
    width: auto;
    max-width: 100%;
}

.navbar-toggler[b-itk2kmflw4] {
    appearance: none;
    cursor: pointer;
    width: 3.5rem;
    height: 2.5rem;
    color: white;
    position: absolute;
    top: 0.5rem;
    right: 1rem;
    border: 1px solid rgba(255, 255, 255, 0.1);
    background: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 30'%3e%3cpath stroke='rgba%28255, 255, 255, 0.55%29' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e") no-repeat center/1.75rem rgba(255, 255, 255, 0.1);
}

.navbar-toggler:checked[b-itk2kmflw4] {
    background-color: rgba(255, 255, 255, 0.5);
}

.portal-nav[b-itk2kmflw4] {
    display: flex;
    flex-direction: column;
    padding: 0 0.75rem;
}

/* ── Icons (white, data-URI Bootstrap Icons — the Core idiom) ────────────── */
.pi[b-itk2kmflw4] {
    /* ⚠ flex-shrink MUST stay 0: .nav-link is a flex row with nowrap text, so a label
       longer than the sidebar makes the flex algorithm crush this fixed-width icon to
       nothing. UDSUSA (35 chars) was the first label long enough to trigger it; DPOST
       (27) is next at P7. The icon is not optional — do not let it shrink. */
    flex: 0 0 auto;
    display: inline-block;
    position: relative;
    width: 1.25rem;
    height: 1.25rem;
    margin-right: 0.75rem;
    top: -1px;
    background-size: cover;
}

.pi-home[b-itk2kmflw4] {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='white' viewBox='0 0 16 16'%3E%3Cpath d='M6.5 14.5v-3.505c0-.245.25-.495.5-.495h2c.25 0 .5.25.5.5v3.5a.5.5 0 0 0 .5.5h4a.5.5 0 0 0 .5-.5v-7a.5.5 0 0 0-.146-.354L13 5.793V2.5a.5.5 0 0 0-.5-.5h-1a.5.5 0 0 0-.5.5v1.293L8.354 1.146a.5.5 0 0 0-.708 0l-6 6A.5.5 0 0 0 1.5 7.5v7a.5.5 0 0 0 .5.5h4a.5.5 0 0 0 .5-.5Z'/%3E%3C/svg%3E");
}

/* Bootstrap "box-seam" — carrier booking pages. */
.pi-box[b-itk2kmflw4] {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='white' viewBox='0 0 16 16'%3E%3Cpath d='M8.186 1.113a.5.5 0 0 0-.372 0L1.846 3.5 8 5.961 14.154 3.5 8.186 1.113ZM15 4.239l-6.5 2.6v7.922l6.5-2.6V4.24ZM7.5 14.762V6.838L1 4.239v7.923l6.5 2.6ZM7.443.184a1.5 1.5 0 0 1 1.114 0l7.129 2.852A.5.5 0 0 1 16 3.5v8.662a1 1 0 0 1-.629.928l-7.185 2.874a.5.5 0 0 1-.372 0L.63 13.09a1 1 0 0 1-.63-.928V3.5a.5.5 0 0 1 .314-.464L7.443.184Z'/%3E%3C/svg%3E");
}

/* Bootstrap "person-fill" — the account page. */
.pi-account[b-itk2kmflw4] {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='white' viewBox='0 0 16 16'%3E%3Cpath d='M3 14s-1 0-1-1 1-4 6-4 6 3 6 4-1 1-1 1H3Zm5-6a3 3 0 1 0 0-6 3 3 0 0 0 0 6Z'/%3E%3C/svg%3E");
}

/* Group heading inside the nav — quiet, uppercase, structural not clickable. */
.nav-section[b-itk2kmflw4] {
    color: rgba(255, 255, 255, 0.55);
    font-size: 0.72rem;
    font-weight: 600;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    padding: 1rem 1rem 0.25rem;
}

.nav-item[b-itk2kmflw4] {
    font-size: 0.9rem;
    padding-bottom: 0.15rem;
}

.nav-item:first-of-type[b-itk2kmflw4] {
    padding-top: 1rem;
}

.nav-item[b-itk2kmflw4]  .nav-link {
    color: #d7d7d7;
    background: none;
    border: none;
    border-radius: 4px;
    height: 2.5rem;
    display: flex;
    align-items: center;
    line-height: 2.5rem;
    width: 100%;
    padding: 0 1rem;
    text-decoration: none;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.nav-item[b-itk2kmflw4]  a.active {
    background-color: rgba(255, 255, 255, 0.37);
    color: white;
}

.nav-item[b-itk2kmflw4]  .nav-link:hover {
    background-color: rgba(255, 255, 255, 0.1);
    color: white;
}

.nav-scrollable[b-itk2kmflw4] {
    display: none;
}

.navbar-toggler:checked ~ .nav-scrollable[b-itk2kmflw4] {
    display: block;
}

/* Must match PortalLayout.razor.css's sidebar breakpoint (1100px — see the note there). */
@media (min-width: 1100px) {
    .navbar-toggler[b-itk2kmflw4] {
        display: none;
    }

    .nav-scrollable[b-itk2kmflw4] {
        display: block;
        flex: 1 1 auto;
        min-height: 0;
        overflow-y: auto;
    }
}

/* The carrier label. `min-width: 0` is the half people forget — without it a flex item
   refuses to shrink below its content width, so `overflow: hidden` never engages and the
   text runs past the sidebar edge instead of ellipsising. The full name stays available
   as a title tooltip. */
.nav-item[b-itk2kmflw4]  .nav-text {
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

/* ── Section groups — matched to Logix Core (Logix.Web NavMenu.razor.css) ─────────────
   The two products sit side by side on the same estate, so the sidebars read as one
   family: white icon, RED uppercase label, chevron that rotates when open, hairline
   rule above. Collapsible with a checkbox so it needs no script. */

.nav-group-head[b-itk2kmflw4] {
    display: flex;
    align-items: center;
    padding: 0.55rem 1rem;
    margin-top: 0.4rem;
    color: rgba(255, 255, 255, 0.55);
    font-size: 0.7rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.07em;
    cursor: pointer;
    user-select: none;
    border-top: 1px solid rgba(255, 255, 255, 0.10);
}

.nav-group-head:hover[b-itk2kmflw4] { color: #fff; }
.nav-group-head .pi[b-itk2kmflw4] { width: 1rem; height: 1rem; margin-right: 0.6rem; opacity: 0.85; }

.grp-label[b-itk2kmflw4] {
    flex: 1 1 auto;
    color: var(--uds-red);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.grp-chevron[b-itk2kmflw4] {
    width: 0.8rem;
    height: 0.8rem;
    background-repeat: no-repeat;
    background-position: center;
    background-size: contain;
    transition: transform 0.15s ease;
    /* Bootstrap "chevron-right" */
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='rgba(255,255,255,0.55)' viewBox='0 0 16 16'%3E%3Cpath fill-rule='evenodd' d='M4.646 1.646a.5.5 0 0 1 .708 0l6 6a.5.5 0 0 1 0 .708l-6 6a.5.5 0 0 1-.708-.708L10.293 8 4.646 2.354a.5.5 0 0 1 0-.708z'/%3E%3C/svg%3E");
}

/* The toggle itself is never seen — the label drives it. */
.grp-toggle[b-itk2kmflw4] { position: absolute; opacity: 0; pointer-events: none; width: 0; height: 0; }
.grp-toggle:checked ~ .nav-group-head .grp-chevron[b-itk2kmflw4] { transform: rotate(90deg); }
.grp-toggle:not(:checked) ~ .nav-group-body[b-itk2kmflw4] { display: none; }

/* Bootstrap "truck" — the Shipping group. */
.pi-truck[b-itk2kmflw4] {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='white' viewBox='0 0 16 16'%3E%3Cpath d='M0 3.5A1.5 1.5 0 0 1 1.5 2h9A1.5 1.5 0 0 1 12 3.5V5h1.02a1.5 1.5 0 0 1 1.17.563l1.481 1.85a1.5 1.5 0 0 1 .329.938V10.5a1.5 1.5 0 0 1-1.5 1.5H14a2 2 0 1 1-4 0H5a2 2 0 1 1-3.998-.085A1.5 1.5 0 0 1 0 10.5v-7zm1.294 7.456A1.999 1.999 0 0 1 4.732 11h5.536a2.01 2.01 0 0 1 .732-.732V3.5a.5.5 0 0 0-.5-.5h-9a.5.5 0 0 0-.5.5v7a.5.5 0 0 0 .294.456zM12 10a2 2 0 0 1 1.732 1h.768a.5.5 0 0 0 .5-.5V8.35a.5.5 0 0 0-.11-.312l-1.48-1.85A.5.5 0 0 0 13.02 6H12v4zm-9 1a1 1 0 1 0 0 2 1 1 0 0 0 0-2zm9 0a1 1 0 1 0 0 2 1 1 0 0 0 0-2z'/%3E%3C/svg%3E");
}

/* Bootstrap "tag-fill" — the Labels group and View Labels. */
.pi-tag[b-itk2kmflw4] {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='white' viewBox='0 0 16 16'%3E%3Cpath d='M2 1a1 1 0 0 0-1 1v4.586a1 1 0 0 0 .293.707l7 7a1 1 0 0 0 1.414 0l4.586-4.586a1 1 0 0 0 0-1.414l-7-7A1 1 0 0 0 6.586 1H2zm4 3.5a1.5 1.5 0 1 1-3 0 1.5 1.5 0 0 1 3 0z'/%3E%3C/svg%3E");
}

/* Bootstrap "upload" — Bulk upload, so it is not a third identical box icon. */
.pi-upload[b-itk2kmflw4] {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='white' viewBox='0 0 16 16'%3E%3Cpath d='M.5 9.9a.5.5 0 0 1 .5.5v2.5a1 1 0 0 0 1 1h12a1 1 0 0 0 1-1v-2.5a.5.5 0 0 1 1 0v2.5a2 2 0 0 1-2 2H2a2 2 0 0 1-2-2v-2.5a.5.5 0 0 1 .5-.5z'/%3E%3Cpath d='M7.646 1.146a.5.5 0 0 1 .708 0l3 3a.5.5 0 0 1-.708.708L8.5 2.707V11.5a.5.5 0 0 1-1 0V2.707L5.354 4.854a.5.5 0 1 1-.708-.708l3-3z'/%3E%3C/svg%3E");
}
/* /Components/Layout/PortalLayout.razor.rz.scp.css */
.page[b-ysokyc9sxv] {
    position: relative;
    display: flex;
    flex-direction: column;
    min-height: 100vh;
}

main[b-ysokyc9sxv] {
    flex: 1;
    /* min-width:0 keeps `main` at the viewport so wide grids scroll inside their own
       wrappers instead of stretching the page (the Logix.Web lesson). */
    min-width: 0;
    display: flex;
    flex-direction: column;
}

.sidebar[b-ysokyc9sxv] {
    background-image: linear-gradient(180deg, var(--uds-navy) 0%, var(--uds-navy-deep) 100%);
}

.top-row[b-ysokyc9sxv] {
    background-color: var(--uds-white);
    border-bottom: 1px solid var(--uds-grey-200);
    justify-content: space-between;
    height: 3.5rem;
    display: flex;
    align-items: center;
    padding: 0 1.5rem 0 2rem;
}

.top-row .context-title[b-ysokyc9sxv] {
    font-family: var(--uds-font-head);
    font-weight: 600;
    color: var(--uds-navy);
    display: inline-flex;
    align-items: baseline;
    gap: 0.4rem;
    min-width: 0;
}
.top-row .ctx-section[b-ysokyc9sxv] { font-size: 1.15rem; }
.top-row .ctx-sep[b-ysokyc9sxv] { color: var(--uds-secondary); font-weight: 400; }
.top-row .ctx-page[b-ysokyc9sxv] { font-size: 0.95rem; font-weight: 200; }

.top-row-right[b-ysokyc9sxv] {
    display: flex;
    align-items: center;
    gap: 0.85rem;
}

.top-row-right[b-ysokyc9sxv]  .user {
    font-size: 0.85rem;
    color: var(--uds-ink);
}

.top-row-right[b-ysokyc9sxv]  .user-custno {
    color: var(--uds-secondary);
    margin-left: 0.35rem;
}

[b-ysokyc9sxv] .signout-form {
    margin: 0;
}

[b-ysokyc9sxv] .signout {
    background: none;
    border: none;
    color: var(--uds-red);
    font-size: 0.85rem;
    cursor: pointer;
    padding: 0;
    font-family: var(--uds-font-body);
}

[b-ysokyc9sxv] .signout:hover {
    color: var(--uds-cta);
    text-decoration: underline;
}

article.content[b-ysokyc9sxv] {
    padding: 1.1rem 1.5rem 1.5rem 2rem;
    flex: 1;
}

/* Sidebar collapses to the hamburger below 1100px (not the template's 641px): the booking
   pages carry two wide grids, and a 16rem sidebar beside them starves the form well before
   641px is reached (PC 06 field report — Farrukh, 27 Aug). Keep in step with NavMenu.razor.css. */
@media (min-width: 1100px) {
    .page[b-ysokyc9sxv] {
        flex-direction: row;
    }

    .sidebar[b-ysokyc9sxv] {
        /* rem so the shell scales with the nav's rem-sized content (Logix.Web lesson). */
        width: 16rem;
        flex: 0 0 16rem;
        height: 100vh;
        position: sticky;
        top: 0;
        display: flex;
        flex-direction: column;
    }

    .top-row[b-ysokyc9sxv] {
        position: sticky;
        top: 0;
        z-index: 1;
    }
}

#blazor-error-ui[b-ysokyc9sxv] {
    color-scheme: light only;
    background: lightyellow;
    bottom: 0;
    box-shadow: 0 -1px 2px rgba(0, 0, 0, 0.2);
    box-sizing: border-box;
    display: none;
    left: 0;
    padding: 0.6rem 1.25rem 0.7rem 1.25rem;
    position: fixed;
    width: 100%;
    z-index: 1000;
}

#blazor-error-ui .dismiss[b-ysokyc9sxv] {
    cursor: pointer;
    position: absolute;
    right: 0.75rem;
    top: 0.5rem;
}
/* /Components/Pages/Account.razor.rz.scp.css */
.account-card[b-iskfg4xrgo] {
    background: var(--uds-white);
    border: 1px solid var(--uds-grey-200);
    border-radius: 8px;
    padding: 1.5rem 1.75rem;
    max-width: 44rem;
}

.account-card h1[b-iskfg4xrgo] {
    font-size: 1.35rem;
    margin: 0 0 1rem;
}

.account-card h2[b-iskfg4xrgo] {
    font-size: 1.05rem;
    margin: 1.25rem 0 0.6rem;
}

.account-card p[b-iskfg4xrgo] {
    margin: 0 0 0.6rem;
    line-height: 1.55;
}

.account-card .muted[b-iskfg4xrgo] {
    color: var(--uds-secondary);
    font-size: 0.9rem;
    margin-top: 1rem;
}

/* Label/value pairs as a two-column grid — reads as a record, not prose. */
.account-facts[b-iskfg4xrgo] {
    display: grid;
    grid-template-columns: max-content 1fr;
    gap: 0.45rem 1.5rem;
    margin: 0;
}

.account-facts dt[b-iskfg4xrgo] {
    font-weight: 600;
    color: var(--uds-navy);
    font-size: 0.9rem;
}

.account-facts dd[b-iskfg4xrgo] {
    margin: 0;
    font-size: 0.95rem;
}

.account-facts code[b-iskfg4xrgo] {
    font-family: ui-monospace, "Cascadia Mono", Consolas, monospace;
    font-size: 0.9rem;
    background: var(--uds-grey-100);
    padding: 0.1rem 0.4rem;
    border-radius: 3px;
}

/* TEST-mode marker — matches the register's amber pill vocabulary. */
.pill-test[b-iskfg4xrgo] {
    display: inline-block;
    margin-left: 0.5rem;
    padding: 0.1rem 0.55rem;
    border-radius: 999px;
    font-size: 0.74rem;
    font-weight: 600;
    background: #fdf0d5;
    color: #8a5a00;
}

.service-list[b-iskfg4xrgo] {
    list-style: none;
    margin: 0 0 0.25rem;
    padding: 0;
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem;
}

.service-list li[b-iskfg4xrgo] {
    background: var(--uds-grey-100);
    border: 1px solid var(--uds-grey-200);
    border-radius: 999px;
    padding: 0.3rem 0.9rem;
    font-size: 0.88rem;
    font-weight: 600;
    color: var(--uds-navy);
}
/* /Components/Pages/Denied.razor.rz.scp.css */
.denied-title[b-orxl9djb35] {
    font-size: 1.25rem;
    margin: 0 0 0.75rem;
    text-align: center;
}

.denied-text[b-orxl9djb35] {
    margin: 0 0 1rem;
    line-height: 1.5;
    text-align: center;
}

.denied-back[b-orxl9djb35] {
    text-align: center;
    margin: 0;
}
/* /Components/Pages/Error.razor.rz.scp.css */
.err-title[b-muenolgc5s] {
    font-size: 1.25rem;
    margin: 0 0 0.75rem;
    text-align: center;
}

.err-text[b-muenolgc5s] {
    margin: 0 0 1rem;
    line-height: 1.5;
    text-align: center;
}

.err-back[b-muenolgc5s] {
    text-align: center;
    margin: 0;
}
/* /Components/Pages/Forgot.razor.rz.scp.css */
.login-title[b-6ogf3btisn] {
    font-size: 1.25rem;
    margin: 0 0 1rem;
    text-align: center;
}

.notice[b-6ogf3btisn] {
    border-radius: 6px;
    padding: 0.65rem 0.9rem;
    font-size: 0.9rem;
    margin-bottom: 1rem;
}

.notice-error[b-6ogf3btisn] {
    background: rgba(229, 29, 58, 0.10);
    color: var(--uds-red);
}

.notice-info[b-6ogf3btisn] {
    background: var(--uds-grey-100);
    color: var(--uds-ink);
}

.notice-offline[b-6ogf3btisn] {
    background: var(--uds-grey-100);
    color: var(--uds-ink);
    text-align: center;
    padding: 1.25rem 1rem;
}

.field[b-6ogf3btisn] {
    margin-bottom: 1rem;
}

.field label[b-6ogf3btisn] {
    display: block;
    font-size: 0.85rem;
    color: var(--uds-secondary);
    margin-bottom: 0.3rem;
}

.field[b-6ogf3btisn]  input {
    width: 100%;
    box-sizing: border-box;
    border: 1px solid var(--uds-grey-200);
    border-radius: 6px;
    padding: 0.55rem 0.75rem;
    font-size: 0.95rem;
    font-family: var(--uds-font-body);
}

.field[b-6ogf3btisn]  input:focus {
    outline: 2px solid var(--uds-navy);
    outline-offset: 0;
    border-color: var(--uds-navy);
}

.btn-signin[b-6ogf3btisn] {
    width: 100%;
    margin-top: 0.35rem;
    background-color: var(--uds-navy);
    border: 1px solid var(--uds-navy-deep);
    color: #fff;
    border-radius: 6px;
    padding: 0.6rem 1rem;
    font-size: 0.95rem;
    font-family: var(--uds-font-head);
    font-weight: 600;
    cursor: pointer;
}

.btn-signin:hover[b-6ogf3btisn] {
    background-color: var(--uds-navy-deep);
}

.login-links[b-6ogf3btisn] {
    margin: 0.9rem 0 0;
    text-align: center;
    font-size: 0.85rem;
}

.login-links a[b-6ogf3btisn] { color: var(--uds-navy); }

.lead[b-6ogf3btisn] { font-size: 0.9rem; color: var(--uds-ink); margin: 0 0 1rem; }
.mono[b-6ogf3btisn] { font-family: ui-monospace, Consolas, monospace; }
/* /Components/Pages/Home.razor.rz.scp.css */
.home-card[b-knj9pljbyg] {
    background: var(--uds-white);
    border: 1px solid var(--uds-grey-200);
    border-radius: 8px;
    padding: 1.5rem 1.75rem;
    max-width: 44rem;
}

.home-card h1[b-knj9pljbyg] {
    font-size: 1.35rem;
    margin: 0 0 0.75rem;
}

.home-card p[b-knj9pljbyg] {
    margin: 0 0 0.6rem;
    line-height: 1.55;
}

.home-card .muted[b-knj9pljbyg] {
    color: var(--uds-secondary);
    font-size: 0.9rem;
    margin-top: 1rem;
}

.home-card h2[b-knj9pljbyg] {
    font-size: 1.05rem;
    margin: 0 0 0.6rem;
}

.services-card[b-knj9pljbyg] { margin-top: 1.25rem; }

/* Entitled services as quiet chips — informational, not clickable (the menu is
   where entitled carriers become pages, once ported). */
.service-list[b-knj9pljbyg] {
    list-style: none;
    margin: 0 0 0.25rem;
    padding: 0;
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem;
}

.service-list li[b-knj9pljbyg] {
    background: var(--uds-grey-100);
    border: 1px solid var(--uds-grey-200);
    border-radius: 999px;
    padding: 0.3rem 0.9rem;
    font-size: 0.88rem;
    font-weight: 600;
    color: var(--uds-navy);
}
/* /Components/Pages/Login.razor.rz.scp.css */
.login-title[b-3zll82uggp] {
    font-size: 1.25rem;
    margin: 0 0 1rem;
    text-align: center;
}

.notice[b-3zll82uggp] {
    border-radius: 6px;
    padding: 0.65rem 0.9rem;
    font-size: 0.9rem;
    margin-bottom: 1rem;
}

.notice-error[b-3zll82uggp] {
    background: rgba(229, 29, 58, 0.10);
    color: var(--uds-red);
}

.notice-info[b-3zll82uggp] {
    background: var(--uds-grey-100);
    color: var(--uds-ink);
}

.notice-offline[b-3zll82uggp] {
    background: var(--uds-grey-100);
    color: var(--uds-ink);
    text-align: center;
    padding: 1.25rem 1rem;
}

.field[b-3zll82uggp] {
    margin-bottom: 1rem;
}

.field label[b-3zll82uggp] {
    display: block;
    font-size: 0.85rem;
    color: var(--uds-secondary);
    margin-bottom: 0.3rem;
}

.field[b-3zll82uggp]  input {
    width: 100%;
    box-sizing: border-box;
    border: 1px solid var(--uds-grey-200);
    border-radius: 6px;
    padding: 0.55rem 0.75rem;
    font-size: 0.95rem;
    font-family: var(--uds-font-body);
}

.field[b-3zll82uggp]  input:focus {
    outline: 2px solid var(--uds-navy);
    outline-offset: 0;
    border-color: var(--uds-navy);
}

.btn-signin[b-3zll82uggp] {
    width: 100%;
    margin-top: 0.35rem;
    background-color: var(--uds-navy);
    border: 1px solid var(--uds-navy-deep);
    color: #fff;
    border-radius: 6px;
    padding: 0.6rem 1rem;
    font-size: 0.95rem;
    font-family: var(--uds-font-head);
    font-weight: 600;
    cursor: pointer;
}

.btn-signin:hover[b-3zll82uggp] {
    background-color: var(--uds-navy-deep);
}

.login-links[b-3zll82uggp] {
    margin: 0.9rem 0 0;
    text-align: center;
    font-size: 0.85rem;
}

.login-links a[b-3zll82uggp] { color: var(--uds-navy); }
/* /Components/Pages/NotFound.razor.rz.scp.css */
.nf-title[b-mmwn958956] {
    font-size: 1.25rem;
    margin: 0 0 0.75rem;
    text-align: center;
}

.nf-text[b-mmwn958956] {
    margin: 0 0 1rem;
    text-align: center;
}

.nf-back[b-mmwn958956] {
    text-align: center;
    margin: 0;
}
/* /Components/Pages/Reset.razor.rz.scp.css */
.login-title[b-0sheqlauzd] {
    font-size: 1.25rem;
    margin: 0 0 1rem;
    text-align: center;
}

.notice[b-0sheqlauzd] {
    border-radius: 6px;
    padding: 0.65rem 0.9rem;
    font-size: 0.9rem;
    margin-bottom: 1rem;
}

.notice-error[b-0sheqlauzd] {
    background: rgba(229, 29, 58, 0.10);
    color: var(--uds-red);
}

.notice-info[b-0sheqlauzd] {
    background: var(--uds-grey-100);
    color: var(--uds-ink);
}

.notice-offline[b-0sheqlauzd] {
    background: var(--uds-grey-100);
    color: var(--uds-ink);
    text-align: center;
    padding: 1.25rem 1rem;
}

.field[b-0sheqlauzd] {
    margin-bottom: 1rem;
}

.field label[b-0sheqlauzd] {
    display: block;
    font-size: 0.85rem;
    color: var(--uds-secondary);
    margin-bottom: 0.3rem;
}

.field[b-0sheqlauzd]  input {
    width: 100%;
    box-sizing: border-box;
    border: 1px solid var(--uds-grey-200);
    border-radius: 6px;
    padding: 0.55rem 0.75rem;
    font-size: 0.95rem;
    font-family: var(--uds-font-body);
}

.field[b-0sheqlauzd]  input:focus {
    outline: 2px solid var(--uds-navy);
    outline-offset: 0;
    border-color: var(--uds-navy);
}

.btn-signin[b-0sheqlauzd] {
    width: 100%;
    margin-top: 0.35rem;
    background-color: var(--uds-navy);
    border: 1px solid var(--uds-navy-deep);
    color: #fff;
    border-radius: 6px;
    padding: 0.6rem 1rem;
    font-size: 0.95rem;
    font-family: var(--uds-font-head);
    font-weight: 600;
    cursor: pointer;
}

.btn-signin:hover[b-0sheqlauzd] {
    background-color: var(--uds-navy-deep);
}

.login-links[b-0sheqlauzd] {
    margin: 0.9rem 0 0;
    text-align: center;
    font-size: 0.85rem;
}

.login-links a[b-0sheqlauzd] { color: var(--uds-navy); }

.lead[b-0sheqlauzd] { font-size: 0.9rem; color: var(--uds-ink); margin: 0 0 1rem; }
.mono[b-0sheqlauzd] { font-family: ui-monospace, Consolas, monospace; }
/* /Components/Pages/Retired.razor.rz.scp.css */
.nf-title[b-qkpd1fj2or] {
    font-size: 1.25rem;
    margin: 0 0 0.75rem;
    text-align: center;
}

.nf-text[b-qkpd1fj2or] {
    margin: 0 0 1rem;
    text-align: center;
}

.nf-back[b-qkpd1fj2or] {
    text-align: center;
    margin: 0;
}
/* /Components/Shipping/BulkUpload.razor.rz.scp.css */
/* Bulk upload page — scoped (the Core CSS is per-page, never global). Panel and
   field-grid rules mirror the carrier pages so the two read as one product. */

.panel[b-d908i5utbb] {
    background: var(--uds-white);
    border: 1px solid var(--uds-grey-200);
    border-radius: 6px;
    padding: 1rem 1.25rem;
    margin-bottom: 1rem;
}

.panel h3[b-d908i5utbb] {
    margin: 0 0 0.75rem;
    font-size: 1rem;
}

/* The carrier picker reads as a normal panel, like the five booking pages. (#b9bec7 is
   Logix.Web's BORDER grey — used as a fill it makes a heavy slab behind two controls.) */

.field-grid[b-d908i5utbb] { display: grid; gap: 0.6rem 1.25rem; }
.field-grid.two[b-d908i5utbb] { grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); }

.field-grid label[b-d908i5utbb] {
    display: flex;
    flex-direction: column;
    font-size: 0.78rem;
    color: var(--uds-secondary);
    gap: 0.2rem;
}

.field-grid select[b-d908i5utbb] {
    font-family: var(--uds-font-body);
    font-size: 0.85rem;
    color: var(--uds-ink);
    border: 1px solid #c9ccd4;
    border-radius: 4px;
    padding: 0.35rem 0.5rem;
    background: var(--uds-white);
}

.template-link[b-d908i5utbb] { align-self: end; font-size: 0.85rem; }
.template-link a[b-d908i5utbb] { color: var(--uds-primary); font-weight: 600; }

.muted[b-d908i5utbb] { color: var(--uds-secondary); }
.small[b-d908i5utbb] { font-size: 0.78rem; }
.ok[b-d908i5utbb] { color: #1a7f37; }
.bad[b-d908i5utbb] { color: #b42318; }

.linklike[b-d908i5utbb] {
    background: none;
    border: 0;
    padding: 0;
    font: inherit;
    color: inherit;
    cursor: pointer;
}

.notes[b-d908i5utbb] { margin: 0 0 0.75rem 1rem; padding: 0; font-size: 0.82rem; }
.notes li[b-d908i5utbb] { margin-bottom: 0.25rem; }

/* Wide content scrolls inside its own container — the page body never scrolls sideways. */
.table-scroll[b-d908i5utbb] { overflow-x: auto; }

table.spec[b-d908i5utbb], table.rows[b-d908i5utbb] {
    width: 100%;
    border-collapse: collapse;
    font-size: 0.8rem;
}

table.spec th[b-d908i5utbb], table.rows th[b-d908i5utbb] {
    text-align: left;
    background: var(--uds-grey-100, #f2f3f5);
    border-bottom: 1px solid var(--uds-grey-200);
    padding: 0.4rem 0.5rem;
    font-weight: 600;
    white-space: nowrap;
}

table.spec td[b-d908i5utbb], table.rows td[b-d908i5utbb] {
    border-bottom: 1px solid var(--uds-grey-200);
    padding: 0.35rem 0.5rem;
    vertical-align: top;
}

table.spec tr.req code[b-d908i5utbb] { font-weight: 700; }
table.spec code[b-d908i5utbb] { font-size: 0.78rem; }
.allowed[b-d908i5utbb] { display: block; }

/* Row states: pre-flight (ready/blocked) then post-flight (created/failed). */
table.rows tr.ready td[b-d908i5utbb] { background: #f4fbf5; }
table.rows tr.blocked td[b-d908i5utbb] { background: #fdf3f2; color: #7a271a; }
table.rows tr.created td[b-d908i5utbb] { background: #eef8f0; }
table.rows tr.failed td[b-d908i5utbb] { background: #fdf3f2; color: #7a271a; }

.actions[b-d908i5utbb] { margin-top: 0.9rem; display: flex; gap: 0.5rem; }

.notice[b-d908i5utbb] {
    position: relative;
    border-radius: 6px;
    padding: 0.7rem 2.2rem 0.7rem 0.9rem;
    margin-bottom: 1rem;
    font-size: 0.85rem;
}

.notice-info[b-d908i5utbb] { background: #eef4fd; border: 1px solid #c6d9f7; }
.notice-error[b-d908i5utbb] { background: #fdf3f2; border: 1px solid #f3c5c1; color: #7a271a; }

.notice-close[b-d908i5utbb] {
    position: absolute;
    top: 0.35rem;
    right: 0.5rem;
    background: none;
    border: 0;
    cursor: pointer;
    font-size: 0.9rem;
    color: inherit;
}

/* Louder than notice-error: this one says "you are about to create real shipments". */
.notice-danger[b-d908i5utbb] {
    background: #fff4ed;
    border: 2px solid #b42318;
    color: #7a271a;
    font-weight: 500;
}
/* /Components/Shipping/CancelLabels.razor.rz.scp.css */
/* View Labels — scoped (the Core CSS is per-page, never global). Panels and field grids
   mirror the carrier and bulk pages so the Portal reads as one product. */

.panel[b-gkt21y3qkr] {
    background: var(--uds-white);
    border: 1px solid var(--uds-grey-200);
    border-radius: 6px;
    padding: 1rem 1.25rem;
    margin-bottom: 1rem;
}

.panel h3[b-gkt21y3qkr] {
    margin: 0 0 0.75rem;
    font-size: 1rem;
}

/* Filters: the date pair stays narrow, the text boxes take the slack. */
.field-grid[b-gkt21y3qkr] {
    display: grid;
    gap: 0.6rem 1.25rem;
    grid-template-columns: minmax(220px, 2fr) repeat(2, minmax(130px, 0.7fr)) repeat(2, minmax(150px, 1fr)) auto;
    align-items: end;
}

.field-grid label[b-gkt21y3qkr] {
    display: flex;
    flex-direction: column;
    font-size: 0.78rem;
    color: var(--uds-secondary);
    gap: 0.2rem;
}

.field-grid input[type="text"][b-gkt21y3qkr],
.field-grid input[type="date"][b-gkt21y3qkr],
.field-grid input:not([type])[b-gkt21y3qkr] {
    font-family: var(--uds-font-body);
    font-size: 0.85rem;
    color: var(--uds-ink);
    border: 1px solid #c9ccd4;
    border-radius: 4px;
    padding: 0.35rem 0.5rem;
    background: var(--uds-white);
}

.field-grid input:focus[b-gkt21y3qkr] { outline: 2px solid var(--uds-primary); outline-offset: -1px; }

/* The checkbox sits on the baseline with the inputs, not above them. */
.checkline[b-gkt21y3qkr] { flex-direction: row !important; align-items: center; gap: 0.4rem !important; padding-bottom: 0.4rem; }
.checkline input[b-gkt21y3qkr] { margin: 0; }

.actions[b-gkt21y3qkr] { margin-top: 0.9rem; display: flex; gap: 0.5rem; align-items: center; }

.muted[b-gkt21y3qkr] { color: var(--uds-secondary); }
.small[b-gkt21y3qkr] { font-size: 0.75rem; }

/* Wide content scrolls inside its own container — the page body never scrolls sideways. */
.table-scroll[b-gkt21y3qkr] { overflow-x: auto; }

table.labels[b-gkt21y3qkr] {
    width: 100%;
    border-collapse: collapse;
    font-size: 0.8rem;
}

table.labels th[b-gkt21y3qkr] {
    text-align: left;
    background: var(--uds-grey-100, #f2f3f5);
    border-bottom: 1px solid var(--uds-grey-200);
    padding: 0.4rem 0.5rem;
    font-weight: 600;
    white-space: nowrap;
}

table.labels td[b-gkt21y3qkr] {
    border-bottom: 1px solid var(--uds-grey-200);
    padding: 0.4rem 0.5rem;
    vertical-align: top;
}

/* The whole row opens the detail (V15), so say so on hover. */
table.labels tbody tr:not(.detail-row)[b-gkt21y3qkr] { cursor: pointer; }
table.labels tbody tr:not(.detail-row):hover td[b-gkt21y3qkr] { background: #f6f9fd; }

td.links[b-gkt21y3qkr], th.links[b-gkt21y3qkr] { width: 4.5rem; white-space: nowrap; }
td.links a[b-gkt21y3qkr] { color: var(--uds-primary); font-weight: 600; }
td.tracking[b-gkt21y3qkr] { font-family: var(--uds-font-mono, ui-monospace, "Cascadia Mono", Consolas, monospace); }

/* A cancelled row is visible only when asked for (V3) — greyed, never hidden mid-list. */
tr.cancelled td[b-gkt21y3qkr] { color: var(--uds-secondary); background: #fbfbfc; }

.tag[b-gkt21y3qkr] {
    display: inline-block;
    margin-left: 0.35rem;
    padding: 0 0.35rem;
    border-radius: 3px;
    background: #fdf3f2;
    border: 1px solid #f3c5c1;
    color: #7a271a;
    font-size: 0.68rem;
    text-transform: uppercase;
    letter-spacing: 0.04em;
}

/* Sort headings and the detail panel are styled in SortHeader.razor.css and
   LabelDetail.razor.css - scoped CSS does not cross component boundaries. */

tr.detail-row td[b-gkt21y3qkr] { background: #f6f9fd; padding: 0; }

/* ── pager ──────────────────────────────────────────────────────────────── */

.pager[b-gkt21y3qkr] { margin-top: 0.9rem; display: flex; gap: 0.75rem; align-items: center; font-size: 0.82rem; }
.pager .pagesize[b-gkt21y3qkr] { margin-left: auto; display: flex; gap: 0.35rem; align-items: center; color: var(--uds-secondary); }
.pager select[b-gkt21y3qkr] {
    font-size: 0.8rem;
    border: 1px solid #c9ccd4;
    border-radius: 4px;
    padding: 0.15rem 0.3rem;
    background: var(--uds-white);
}

/* ── empty state ────────────────────────────────────────────────────────── */

.empty[b-gkt21y3qkr] { text-align: center; padding: 2.5rem 1.25rem; }
.empty p[b-gkt21y3qkr] { margin: 0 0 0.5rem; }
.empty .btn[b-gkt21y3qkr] { margin-top: 0.5rem; }

/* The reference hint sits UNDER the grid, not inside a label: as a child of the Reference
   label it made that cell taller than the rest, and `align-items: end` then lifted its input
   out of line with the other five fields. */
.hint[b-gkt21y3qkr] { margin: 0.5rem 0 0; }

/* ── cancel-specific ─────────────────────────────────────────────────────── */

th.act[b-gkt21y3qkr], td.act[b-gkt21y3qkr] { width: 9rem; white-space: nowrap; }
td.act .btn[b-gkt21y3qkr] { margin-right: 0.3rem; }

.btn.danger[b-gkt21y3qkr] { background: #b42318; border-color: #b42318; color: #fff; }
.btn.danger:hover:not(:disabled)[b-gkt21y3qkr] { background: #96200f; }
.btn.refresh[b-gkt21y3qkr] { margin-left: auto; }

/* The confirm sits in the row's own expansion, so it cannot be mistaken for another row's. */
.confirm[b-gkt21y3qkr] { padding: 0.7rem 1.1rem; font-size: 0.85rem; }
.confirm .warn[b-gkt21y3qkr] { display: block; margin-top: 0.4rem; color: #7a271a; font-weight: 500; }

/* C5: the three outcomes are visually distinct because they are different facts —
   voided at the carrier, marked cancelled at UDS only, or refused. WF said the same
   thing for all three. */
.outcome[b-gkt21y3qkr] { padding: 0.7rem 1.1rem; font-size: 0.85rem; }
.outcome.voided[b-gkt21y3qkr]  { background: #eef8f0; border-left: 4px solid #1a7f37; }
.outcome.flagged[b-gkt21y3qkr] { background: #fff4ed; border-left: 4px solid #b54708; }
.outcome.already[b-gkt21y3qkr] { background: #eef4fd; border-left: 4px solid #3c8dbc; }
.outcome.failed[b-gkt21y3qkr]  { background: #fdf3f2; border-left: 4px solid #b42318; color: #7a271a; }

table.labels tr.voided td[b-gkt21y3qkr]  { background: #f4fbf5; }
table.labels tr.flagged td[b-gkt21y3qkr] { background: #fffaf5; }
table.labels tr.failed td[b-gkt21y3qkr]  { background: #fdf3f2; }
table.labels tr.already td[b-gkt21y3qkr] { background: #f7fafd; }

/* Rows here are not expandable, so no pointer/hover affordance. */
table.labels tbody tr:not(.detail-row)[b-gkt21y3qkr] { cursor: default; }
table.labels tbody tr:not(.detail-row):hover td[b-gkt21y3qkr] { background: inherit; }

/* ── the two interactions (CD195) ────────────────────────────────────────── */

.tabs[b-gkt21y3qkr] { display: flex; gap: 0.25rem; margin-bottom: 1rem; }
.tab[b-gkt21y3qkr] {
    background: var(--uds-white);
    border: 1px solid var(--uds-grey-200);
    border-bottom: 2px solid transparent;
    border-radius: 6px 6px 0 0;
    padding: 0.45rem 0.9rem;
    font: inherit;
    font-size: 0.85rem;
    color: var(--uds-secondary);
    cursor: pointer;
}
.tab.on[b-gkt21y3qkr] { color: var(--uds-ink); font-weight: 600; border-bottom-color: var(--uds-red); }
.hidden[b-gkt21y3qkr] { display: none; }

/* The references about to be cancelled, shown before the operator commits to a set. */
.batch-rows[b-gkt21y3qkr] { margin-top: 0.5rem; display: flex; flex-wrap: wrap; gap: 0.3rem; }
.chip[b-gkt21y3qkr] {
    background: var(--uds-white);
    border: 1px solid var(--uds-grey-200);
    border-radius: 3px;
    padding: 0.05rem 0.35rem;
    font-size: 0.72rem;
    font-family: var(--uds-font-mono, ui-monospace, Consolas, monospace);
}

/* Marks a booking that came from a bulk upload. Deliberately ONE glyph, on the rows that
   have the property — a single booking gets nothing, because two competing icons on every
   row is noise. The badge means ">= 2 bookings share this batch", the same discriminator
   the upload picker uses; batch_id alone would badge thousands of ordinary UPS bookings,
   which each mint a batch of one. */
.bulk-badge[b-gkt21y3qkr] {
    display: inline-block;
    width: 1.05rem;
    height: 1.05rem;
    line-height: 1.05rem;
    margin-right: 0.35rem;
    text-align: center;
    border-radius: 3px;
    background: var(--uds-grey-100, #eef1f5);
    border: 1px solid var(--uds-grey-200);
    color: var(--uds-primary);
    font-size: 0.7rem;
    font-weight: 700;
    cursor: help;
    vertical-align: baseline;
}
/* /Components/Shipping/DpdUk.razor.rz.scp.css */
/* DPD UK booking page — scoped (the Core CSS is per-page, never global). */

.booking-form[aria-disabled="true"][b-drt1uooq46] { opacity: 0.6; pointer-events: none; }

.panel[b-drt1uooq46] {
    background: var(--uds-white);
    border: 1px solid var(--uds-grey-200);
    border-radius: 6px;
    padding: 1rem 1.25rem;
    margin-bottom: 1rem;
}

.panel h3[b-drt1uooq46] {
    margin: 0 0 0.75rem;
    font-size: 1rem;
}

.field-grid[b-drt1uooq46] { display: grid; gap: 0.6rem 1.25rem; }
.field-grid.two[b-drt1uooq46] { grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); }
.field-grid.three[b-drt1uooq46] { grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); }

.field-grid label[b-drt1uooq46], .addr-pick label[b-drt1uooq46] {
    display: flex;
    flex-direction: column;
    font-size: 0.78rem;
    color: var(--uds-secondary);
    gap: 0.2rem;
}

.field-grid input[b-drt1uooq46], .field-grid select[b-drt1uooq46], .addr-pick input[b-drt1uooq46], .grid input[b-drt1uooq46] {
    font-family: var(--uds-font-body);
    font-size: 0.85rem;
    color: var(--uds-ink);
    border: 1px solid #c9ccd4;
    border-radius: 4px;
    padding: 0.35rem 0.5rem;
    background: var(--uds-white);
}

.field-grid input:focus[b-drt1uooq46], .field-grid select:focus[b-drt1uooq46], .grid input:focus[b-drt1uooq46] {
    outline: 2px solid var(--uds-navy);
    outline-offset: -1px;
}

.upper[b-drt1uooq46] { text-transform: uppercase; }
.lower[b-drt1uooq46] { text-transform: lowercase; }
.hint[b-drt1uooq46] { color: var(--uds-secondary); font-weight: 400; font-size: 0.75rem; }

/* address book picker */
.addr-pick[b-drt1uooq46] { position: relative; max-width: 420px; margin-bottom: 0.75rem; }
.addr-results[b-drt1uooq46] {
    position: absolute;
    z-index: 30;
    margin: 0.15rem 0 0;
    padding: 0;
    list-style: none;
    background: var(--uds-white);
    border: 1px solid #c9ccd4;
    border-radius: 4px;
    box-shadow: 0 4px 14px rgba(0, 0, 0, 0.12);
    max-height: 260px;
    overflow-y: auto;
    min-width: 100%;
}

/* Click-away for the picker: a transparent full-viewport layer under the open
   list (z 25 < list z 30) — clicking anywhere else dismisses without a pick. */
.dropdown-backdrop[b-drt1uooq46] {
    position: fixed;
    inset: 0;
    z-index: 25;
    background: transparent;
}

.addr-results button[b-drt1uooq46] {
    display: block;
    width: 100%;
    text-align: left;
    background: none;
    border: 0;
    padding: 0.4rem 0.6rem;
    font-size: 0.8rem;
    color: var(--uds-ink);
    cursor: pointer;
}

.addr-results button:hover[b-drt1uooq46] { background: var(--uds-grey-100); }

/* grids — wide tables scroll inside their own wrapper on narrow screens; the page
   body must never scroll horizontally (PC 06 field report). */
.grid-scroll[b-drt1uooq46] { overflow-x: auto; }
.grid[b-drt1uooq46] { width: 100%; min-width: 620px; border-collapse: collapse; font-size: 0.82rem; }
.grid th[b-drt1uooq46] {
    text-align: left;
    font-weight: 600;
    color: var(--uds-secondary);
    font-size: 0.72rem;
    padding: 0.3rem 0.4rem;
    border-bottom: 1px solid var(--uds-grey-200);
}
.grid td[b-drt1uooq46] { padding: 0.25rem 0.4rem; vertical-align: top; }
.grid td input[b-drt1uooq46] { width: 100%; min-width: 4.5rem; }
.grid td.calc[b-drt1uooq46] { text-align: right; color: var(--uds-secondary); padding-top: 0.55rem; }

.row-add[b-drt1uooq46] {
    margin-top: 0.5rem;
    background: none;
    border: 1px dashed #c9ccd4;
    border-radius: 4px;
    padding: 0.3rem 0.75rem;
    font-size: 0.78rem;
    color: var(--uds-navy);
    cursor: pointer;
}
.row-add:hover[b-drt1uooq46] { background: var(--uds-grey-100); }

.row-del[b-drt1uooq46] {
    background: #ffd5d5;
    border: 0;
    border-radius: 4px;
    padding: 0.3rem 0.6rem;
    font-size: 0.72rem;
    color: #757575;
    cursor: pointer;
}

.totals[b-drt1uooq46] {
    display: flex;
    gap: 1.75rem;
    margin-top: 0.75rem;
    font-size: 0.82rem;
    color: var(--uds-secondary);
    flex-wrap: wrap;
}
.totals b[b-drt1uooq46] { color: var(--uds-ink); }

/* actions */
.actions[b-drt1uooq46] { display: flex; gap: 0.75rem; justify-content: flex-end; margin: 1rem 0 2rem; }
.btn-create[b-drt1uooq46], .btn-clear[b-drt1uooq46] {
    font-family: var(--uds-font-head);
    font-size: 0.85rem;
    border-radius: 4px;
    padding: 0.5rem 1.75rem;
    cursor: pointer;
}
.btn-create[b-drt1uooq46] {
    background: var(--uds-navy);
    color: var(--uds-white);
    border: 1px solid var(--uds-navy-deep);
}
.btn-create:hover:enabled[b-drt1uooq46] { background: var(--uds-navy-deep); }
.btn-create:disabled[b-drt1uooq46] { opacity: 0.55; cursor: default; }
.btn-clear[b-drt1uooq46] {
    background: var(--uds-grey-100);
    color: var(--uds-ink);
    border: 1px solid #c9ccd4;
}

/* notices */
.notice[b-drt1uooq46] {
    position: relative;
    border-radius: 6px;
    padding: 0.75rem 2.25rem 0.75rem 1rem;
    margin-bottom: 1rem;
    font-size: 0.85rem;
}
.notice-error[b-drt1uooq46] { background: rgba(229, 29, 58, 0.08); border: 1px solid rgba(229, 29, 58, 0.35); }
.notice-info[b-drt1uooq46] { background: var(--uds-grey-100); border: 1px solid var(--uds-grey-200); }
.notice ul[b-drt1uooq46] { margin: 0.35rem 0 0.2rem 1.25rem; }
.notice-close[b-drt1uooq46] {
    position: absolute;
    top: 0.4rem;
    right: 0.5rem;
    background: none;
    border: 0;
    cursor: pointer;
    color: var(--uds-secondary);
}
.carrier-words[b-drt1uooq46] {
    margin: 0.5rem 0 0;
    padding: 0.5rem;
    background: #22252e;
    color: #e8e8e8;
    border-radius: 4px;
    font-size: 0.72rem;
    max-height: 260px;
    overflow: auto;
    white-space: pre-wrap;
}

/* success */
.success-panel[b-drt1uooq46] {
    background: var(--uds-white);
    border: 1px solid var(--uds-grey-200);
    border-left: 4px solid var(--uds-navy);
    border-radius: 6px;
    padding: 1rem 1.25rem;
    margin-bottom: 1rem;
}
.success-panel h2[b-drt1uooq46] { margin: 0 0 0.5rem; font-size: 1.05rem; }
.success-panel dl[b-drt1uooq46] { display: grid; grid-template-columns: auto 1fr; gap: 0.25rem 1rem; margin: 0; }
.success-panel dt[b-drt1uooq46] { color: var(--uds-secondary); font-size: 0.78rem; padding-top: 0.15rem; }
.success-panel dd[b-drt1uooq46] { margin: 0; }
.success-panel code.trk[b-drt1uooq46] { margin-right: 0.6rem; }
.success-panel .links a[b-drt1uooq46] { margin-right: 1.25rem; font-weight: 600; }
.success-panel .panel-actions[b-drt1uooq46] { margin: 0.75rem 0 0.15rem; }
.warning[b-drt1uooq46] { color: #8a6d1a; background: #fdf6e3; border-radius: 4px; padding: 0.35rem 0.6rem; font-size: 0.8rem; }

.pill-test[b-drt1uooq46] {
    display: inline-block;
    font-family: var(--uds-font-head);
    font-size: 0.7rem;
    font-weight: 600;
    letter-spacing: 0.04em;
    padding: 0.15rem 0.6rem;
    border-radius: 999px;
    background: rgba(229, 29, 58, 0.12);
    color: var(--uds-red);
}

.muted[b-drt1uooq46] { color: var(--uds-secondary); font-size: 0.8rem; }

/* create-in-progress indicator + outcome focus (field report, PC 07) */
.busy-note[b-drt1uooq46] {
    display: inline-flex;
    align-items: center;
    gap: 0.5rem;
    margin-right: auto;
    font-size: 0.82rem;
    color: var(--uds-secondary);
}
.busy-spinner[b-drt1uooq46] {
    width: 16px;
    height: 16px;
    border: 2px solid var(--uds-grey-200);
    border-top-color: var(--uds-navy);
    border-radius: 50%;
    animation: booking-spin-b-drt1uooq46 0.8s linear infinite;
}
@keyframes booking-spin-b-drt1uooq46 { to { transform: rotate(360deg); } }
.success-panel:focus[b-drt1uooq46], .notice:focus[b-drt1uooq46] { outline: none; }

/* CD268: the persistent routing note above the form — no close button, so no reserved right padding. */
.route-note[b-drt1uooq46] { padding-right: 1rem; }

/* DU15: field limit hints */
.hint-inline[b-drt1uooq46] { font-weight: normal; color: var(--uds-secondary); font-size: 0.72rem; }
/* /Components/Shipping/Dpost.razor.rz.scp.css */
/* DPOST booking page — scoped (the Core CSS is per-page, never global). */

.booking-form[aria-disabled="true"][b-r144bjlxsg] { opacity: 0.6; pointer-events: none; }

.panel[b-r144bjlxsg] {
    background: var(--uds-white);
    border: 1px solid var(--uds-grey-200);
    border-radius: 6px;
    padding: 1rem 1.25rem;
    margin-bottom: 1rem;
}

.panel h3[b-r144bjlxsg] {
    margin: 0 0 0.75rem;
    font-size: 1rem;
}

.field-grid[b-r144bjlxsg] { display: grid; gap: 0.6rem 1.25rem; }
.field-grid.two[b-r144bjlxsg] { grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); }
.field-grid.three[b-r144bjlxsg] { grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); }

.field-grid label[b-r144bjlxsg], .addr-pick label[b-r144bjlxsg] {
    display: flex;
    flex-direction: column;
    font-size: 0.78rem;
    color: var(--uds-secondary);
    gap: 0.2rem;
}

.field-grid input[b-r144bjlxsg], .field-grid select[b-r144bjlxsg], .addr-pick input[b-r144bjlxsg], .grid input[b-r144bjlxsg], .grid select[b-r144bjlxsg] {
    font-family: var(--uds-font-body);
    font-size: 0.85rem;
    color: var(--uds-ink);
    border: 1px solid #c9ccd4;
    border-radius: 4px;
    padding: 0.35rem 0.5rem;
    background: var(--uds-white);
}

.field-grid input:focus[b-r144bjlxsg], .field-grid select:focus[b-r144bjlxsg], .grid input:focus[b-r144bjlxsg], .grid select:focus[b-r144bjlxsg] {
    outline: 2px solid var(--uds-navy);
    outline-offset: -1px;
}

.upper[b-r144bjlxsg] { text-transform: uppercase; }
.lower[b-r144bjlxsg] { text-transform: lowercase; }
.hint[b-r144bjlxsg] { color: var(--uds-secondary); font-weight: 400; font-size: 0.75rem; }

/* address book picker + HS typeahead */
.addr-pick[b-r144bjlxsg] { position: relative; max-width: 420px; margin-bottom: 0.75rem; }
.addr-results[b-r144bjlxsg], .hs-results[b-r144bjlxsg] {
    position: absolute;
    z-index: 30;
    margin: 0.15rem 0 0;
    padding: 0;
    list-style: none;
    background: var(--uds-white);
    border: 1px solid #c9ccd4;
    border-radius: 4px;
    box-shadow: 0 4px 14px rgba(0, 0, 0, 0.12);
    max-height: 260px;
    overflow-y: auto;
    min-width: 100%;
}

/* HS suggestions render inline under their cell (the row grows), so long lists
   don't fight the table's stacking context. */
.hs-results[b-r144bjlxsg] {
    position: relative;
    z-index: 30;
    box-shadow: none;
    max-height: 180px;
}

/* Click-away for the pickers: a transparent full-viewport layer under the open
   list (z 25 < list z 30) — clicking anywhere else dismisses without a pick. */
.dropdown-backdrop[b-r144bjlxsg] {
    position: fixed;
    inset: 0;
    z-index: 25;
    background: transparent;
}

.addr-results button[b-r144bjlxsg], .hs-results button[b-r144bjlxsg] {
    display: block;
    width: 100%;
    text-align: left;
    background: none;
    border: 0;
    padding: 0.4rem 0.6rem;
    font-size: 0.8rem;
    color: var(--uds-ink);
    cursor: pointer;
}

.addr-results button:hover[b-r144bjlxsg], .hs-results button:hover[b-r144bjlxsg] { background: var(--uds-grey-100); }

/* grids — wide tables scroll inside their own wrapper on narrow screens; the page
   body must never scroll horizontally (PC 06 field report). */
.grid-scroll[b-r144bjlxsg] { overflow-x: auto; }
.grid[b-r144bjlxsg] { width: 100%; min-width: 620px; border-collapse: collapse; font-size: 0.82rem; }
.grid th[b-r144bjlxsg] {
    text-align: left;
    font-weight: 600;
    color: var(--uds-secondary);
    font-size: 0.72rem;
    padding: 0.3rem 0.4rem;
    border-bottom: 1px solid var(--uds-grey-200);
}
.grid td[b-r144bjlxsg] { padding: 0.25rem 0.4rem; vertical-align: top; }
.grid td input[b-r144bjlxsg] { width: 100%; min-width: 4.5rem; }
.grid td.calc[b-r144bjlxsg] { text-align: right; color: var(--uds-secondary); padding-top: 0.55rem; }

.hs-cell[b-r144bjlxsg] { position: relative; min-width: 10rem; }

.row-add[b-r144bjlxsg] {
    margin-top: 0.5rem;
    background: none;
    border: 1px dashed #c9ccd4;
    border-radius: 4px;
    padding: 0.3rem 0.75rem;
    font-size: 0.78rem;
    color: var(--uds-navy);
    cursor: pointer;
}
.row-add:hover[b-r144bjlxsg] { background: var(--uds-grey-100); }

.row-del[b-r144bjlxsg] {
    background: #ffd5d5;
    border: 0;
    border-radius: 4px;
    padding: 0.3rem 0.6rem;
    font-size: 0.72rem;
    color: #757575;
    cursor: pointer;
}

.totals[b-r144bjlxsg] {
    display: flex;
    gap: 1.75rem;
    margin-top: 0.75rem;
    font-size: 0.82rem;
    color: var(--uds-secondary);
    flex-wrap: wrap;
}
.totals b[b-r144bjlxsg] { color: var(--uds-ink); }

/* actions */
.actions[b-r144bjlxsg] { display: flex; gap: 0.75rem; justify-content: flex-end; margin: 1rem 0 2rem; }
.btn-create[b-r144bjlxsg], .btn-clear[b-r144bjlxsg] {
    font-family: var(--uds-font-head);
    font-size: 0.85rem;
    border-radius: 4px;
    padding: 0.5rem 1.75rem;
    cursor: pointer;
}
.btn-create[b-r144bjlxsg] {
    background: var(--uds-navy);
    color: var(--uds-white);
    border: 1px solid var(--uds-navy-deep);
}
.btn-create:hover:enabled[b-r144bjlxsg] { background: var(--uds-navy-deep); }
.btn-create:disabled[b-r144bjlxsg] { opacity: 0.55; cursor: default; }
.btn-clear[b-r144bjlxsg] {
    background: var(--uds-grey-100);
    color: var(--uds-ink);
    border: 1px solid #c9ccd4;
}

/* notices */
.notice[b-r144bjlxsg] {
    position: relative;
    border-radius: 6px;
    padding: 0.75rem 2.25rem 0.75rem 1rem;
    margin-bottom: 1rem;
    font-size: 0.85rem;
}
.notice-error[b-r144bjlxsg] { background: rgba(229, 29, 58, 0.08); border: 1px solid rgba(229, 29, 58, 0.35); }
.notice-info[b-r144bjlxsg] { background: var(--uds-grey-100); border: 1px solid var(--uds-grey-200); }
.notice ul[b-r144bjlxsg] { margin: 0.35rem 0 0.2rem 1.25rem; }
.notice-close[b-r144bjlxsg] {
    position: absolute;
    top: 0.4rem;
    right: 0.5rem;
    background: none;
    border: 0;
    cursor: pointer;
    color: var(--uds-secondary);
}
.carrier-words[b-r144bjlxsg] {
    margin: 0.5rem 0 0;
    padding: 0.5rem;
    background: #22252e;
    color: #e8e8e8;
    border-radius: 4px;
    font-size: 0.72rem;
    max-height: 260px;
    overflow: auto;
    white-space: pre-wrap;
}

/* success */
.success-panel[b-r144bjlxsg] {
    background: var(--uds-white);
    border: 1px solid var(--uds-grey-200);
    border-left: 4px solid var(--uds-navy);
    border-radius: 6px;
    padding: 1rem 1.25rem;
    margin-bottom: 1rem;
}
.success-panel h2[b-r144bjlxsg] { margin: 0 0 0.5rem; font-size: 1.05rem; }
.success-panel dl[b-r144bjlxsg] { display: grid; grid-template-columns: auto 1fr; gap: 0.25rem 1rem; margin: 0; }
.success-panel dt[b-r144bjlxsg] { color: var(--uds-secondary); font-size: 0.78rem; padding-top: 0.15rem; }
.success-panel dd[b-r144bjlxsg] { margin: 0; }
.success-panel code.trk[b-r144bjlxsg] { margin-right: 0.6rem; }
.success-panel .links a[b-r144bjlxsg] { margin-right: 1.25rem; font-weight: 600; }
.success-panel .panel-actions[b-r144bjlxsg] { margin: 0.75rem 0 0.15rem; }
.warning[b-r144bjlxsg] { color: #8a6d1a; background: #fdf6e3; border-radius: 4px; padding: 0.35rem 0.6rem; font-size: 0.8rem; }

.pill-test[b-r144bjlxsg] {
    display: inline-block;
    font-family: var(--uds-font-head);
    font-size: 0.7rem;
    font-weight: 600;
    letter-spacing: 0.04em;
    padding: 0.15rem 0.6rem;
    border-radius: 999px;
    background: rgba(229, 29, 58, 0.12);
    color: var(--uds-red);
}

.muted[b-r144bjlxsg] { color: var(--uds-secondary); font-size: 0.8rem; }

/* create-in-progress indicator + outcome focus (field report, PC 07) */
.busy-note[b-r144bjlxsg] {
    display: inline-flex;
    align-items: center;
    gap: 0.5rem;
    margin-right: auto;
    font-size: 0.82rem;
    color: var(--uds-secondary);
}
.busy-spinner[b-r144bjlxsg] {
    width: 16px;
    height: 16px;
    border: 2px solid var(--uds-grey-200);
    border-top-color: var(--uds-navy);
    border-radius: 50%;
    animation: booking-spin-b-r144bjlxsg 0.8s linear infinite;
}
@keyframes booking-spin-b-r144bjlxsg { to { transform: rotate(360deg); } }
.success-panel:focus[b-r144bjlxsg], .notice:focus[b-r144bjlxsg] { outline: none; }

/* A single full-width field that must still be a field-grid child, so it inherits the
   shared input border/height rather than rendering as an odd one out. */
.field-grid.one[b-r144bjlxsg] { grid-template-columns: 1fr; }

/* A parcel over the selected service's configured ceiling (DP4) — flagged in the grid as
   well as refused on submit, so the offending row is obvious in a multi-row consignment. */
.grid tr.row-error input[b-r144bjlxsg] { border-color: var(--uds-red); }
.grid tr.row-error td.calc[b-r144bjlxsg] { color: var(--uds-red); }

/* The customs hint when the destination is OUTSIDE the EU-27 (DP7): the same small type as
   a plain hint, but it states an obligation rather than an aside, so it carries weight. */
.hint-warn[b-r144bjlxsg] { color: var(--uds-red); font-weight: 600; }


/* CD188's origin-country picker lives in a grid cell: it inherits the shared input styling
   above (the selector was widened to .grid select for exactly this), and only needs a width
   that does not stretch the column. */
.grid td select[b-r144bjlxsg] { width: 100%; min-width: 8rem; }
/* /Components/Shipping/EndOfDay.razor.rz.scp.css */
/* View Labels — scoped (the Core CSS is per-page, never global). Panels and field grids
   mirror the carrier and bulk pages so the Portal reads as one product. */

.panel[b-kkkzhpi3c6] {
    background: var(--uds-white);
    border: 1px solid var(--uds-grey-200);
    border-radius: 6px;
    padding: 1rem 1.25rem;
    margin-bottom: 1rem;
}

.panel h3[b-kkkzhpi3c6] {
    margin: 0 0 0.75rem;
    font-size: 1rem;
}

/* Filters: the date pair stays narrow, the text boxes take the slack. */
.field-grid[b-kkkzhpi3c6] {
    display: grid;
    gap: 0.6rem 1.25rem;
    grid-template-columns: minmax(220px, 2fr) repeat(2, minmax(130px, 0.7fr)) repeat(2, minmax(150px, 1fr)) auto;
    align-items: end;
}

.field-grid label[b-kkkzhpi3c6] {
    display: flex;
    flex-direction: column;
    font-size: 0.78rem;
    color: var(--uds-secondary);
    gap: 0.2rem;
}

.field-grid input[type="text"][b-kkkzhpi3c6],
.field-grid input[type="date"][b-kkkzhpi3c6],
.field-grid input:not([type])[b-kkkzhpi3c6] {
    font-family: var(--uds-font-body);
    font-size: 0.85rem;
    color: var(--uds-ink);
    border: 1px solid #c9ccd4;
    border-radius: 4px;
    padding: 0.35rem 0.5rem;
    background: var(--uds-white);
}

.field-grid input:focus[b-kkkzhpi3c6] { outline: 2px solid var(--uds-primary); outline-offset: -1px; }

/* The checkbox sits on the baseline with the inputs, not above them. */
.checkline[b-kkkzhpi3c6] { flex-direction: row !important; align-items: center; gap: 0.4rem !important; padding-bottom: 0.4rem; }
.checkline input[b-kkkzhpi3c6] { margin: 0; }

.actions[b-kkkzhpi3c6] { margin-top: 0.9rem; display: flex; gap: 0.5rem; align-items: center; }

.muted[b-kkkzhpi3c6] { color: var(--uds-secondary); }
.small[b-kkkzhpi3c6] { font-size: 0.75rem; }

/* Wide content scrolls inside its own container — the page body never scrolls sideways. */
.table-scroll[b-kkkzhpi3c6] { overflow-x: auto; }

table.labels[b-kkkzhpi3c6] {
    width: 100%;
    border-collapse: collapse;
    font-size: 0.8rem;
}

table.labels th[b-kkkzhpi3c6] {
    text-align: left;
    background: var(--uds-grey-100, #f2f3f5);
    border-bottom: 1px solid var(--uds-grey-200);
    padding: 0.4rem 0.5rem;
    font-weight: 600;
    white-space: nowrap;
}

table.labels td[b-kkkzhpi3c6] {
    border-bottom: 1px solid var(--uds-grey-200);
    padding: 0.4rem 0.5rem;
    vertical-align: top;
}

/* The whole row opens the detail (V15), so say so on hover. */
table.labels tbody tr:not(.detail-row)[b-kkkzhpi3c6] { cursor: pointer; }
table.labels tbody tr:not(.detail-row):hover td[b-kkkzhpi3c6] { background: #f6f9fd; }

td.links[b-kkkzhpi3c6], th.links[b-kkkzhpi3c6] { width: 4.5rem; white-space: nowrap; }
td.links a[b-kkkzhpi3c6] { color: var(--uds-primary); font-weight: 600; }
td.tracking[b-kkkzhpi3c6] { font-family: var(--uds-font-mono, ui-monospace, "Cascadia Mono", Consolas, monospace); }

/* A cancelled row is visible only when asked for (V3) — greyed, never hidden mid-list. */
tr.cancelled td[b-kkkzhpi3c6] { color: var(--uds-secondary); background: #fbfbfc; }

.tag[b-kkkzhpi3c6] {
    display: inline-block;
    margin-left: 0.35rem;
    padding: 0 0.35rem;
    border-radius: 3px;
    background: #fdf3f2;
    border: 1px solid #f3c5c1;
    color: #7a271a;
    font-size: 0.68rem;
    text-transform: uppercase;
    letter-spacing: 0.04em;
}

/* Sort headings and the detail panel are styled in SortHeader.razor.css and
   LabelDetail.razor.css - scoped CSS does not cross component boundaries. */

tr.detail-row td[b-kkkzhpi3c6] { background: #f6f9fd; padding: 0; }

/* ── pager ──────────────────────────────────────────────────────────────── */

.pager[b-kkkzhpi3c6] { margin-top: 0.9rem; display: flex; gap: 0.75rem; align-items: center; font-size: 0.82rem; }
.pager .pagesize[b-kkkzhpi3c6] { margin-left: auto; display: flex; gap: 0.35rem; align-items: center; color: var(--uds-secondary); }
.pager select[b-kkkzhpi3c6] {
    font-size: 0.8rem;
    border: 1px solid #c9ccd4;
    border-radius: 4px;
    padding: 0.15rem 0.3rem;
    background: var(--uds-white);
}

/* ── empty state ────────────────────────────────────────────────────────── */

.empty[b-kkkzhpi3c6] { text-align: center; padding: 2.5rem 1.25rem; }
.empty p[b-kkkzhpi3c6] { margin: 0 0 0.5rem; }
.empty .btn[b-kkkzhpi3c6] { margin-top: 0.5rem; }

/* The reference hint sits UNDER the grid, not inside a label: as a child of the Reference
   label it made that cell taller than the rest, and `align-items: end` then lifted its input
   out of line with the other five fields. */
.hint[b-kkkzhpi3c6] { margin: 0.5rem 0 0; }

/* ── cancel-specific ─────────────────────────────────────────────────────── */

th.act[b-kkkzhpi3c6], td.act[b-kkkzhpi3c6] { width: 9rem; white-space: nowrap; }
td.act .btn[b-kkkzhpi3c6] { margin-right: 0.3rem; }

.btn.danger[b-kkkzhpi3c6] { background: #b42318; border-color: #b42318; color: #fff; }
.btn.danger:hover:not(:disabled)[b-kkkzhpi3c6] { background: #96200f; }
.btn.refresh[b-kkkzhpi3c6] { margin-left: auto; }

/* The confirm sits in the row's own expansion, so it cannot be mistaken for another row's. */
.confirm[b-kkkzhpi3c6] { padding: 0.7rem 1.1rem; font-size: 0.85rem; }
.confirm .warn[b-kkkzhpi3c6] { display: block; margin-top: 0.4rem; color: #7a271a; font-weight: 500; }

/* C5: the three outcomes are visually distinct because they are different facts —
   voided at the carrier, marked cancelled at UDS only, or refused. WF said the same
   thing for all three. */
.outcome[b-kkkzhpi3c6] { padding: 0.7rem 1.1rem; font-size: 0.85rem; }
.outcome.voided[b-kkkzhpi3c6]  { background: #eef8f0; border-left: 4px solid #1a7f37; }
.outcome.flagged[b-kkkzhpi3c6] { background: #fff4ed; border-left: 4px solid #b54708; }
.outcome.already[b-kkkzhpi3c6] { background: #eef4fd; border-left: 4px solid #3c8dbc; }
.outcome.failed[b-kkkzhpi3c6]  { background: #fdf3f2; border-left: 4px solid #b42318; color: #7a271a; }

table.labels tr.voided td[b-kkkzhpi3c6]  { background: #f4fbf5; }
table.labels tr.flagged td[b-kkkzhpi3c6] { background: #fffaf5; }
table.labels tr.failed td[b-kkkzhpi3c6]  { background: #fdf3f2; }
table.labels tr.already td[b-kkkzhpi3c6] { background: #f7fafd; }

/* Rows here are not expandable, so no pointer/hover affordance. */
table.labels tbody tr:not(.detail-row)[b-kkkzhpi3c6] { cursor: default; }
table.labels tbody tr:not(.detail-row):hover td[b-kkkzhpi3c6] { background: inherit; }

/* ── the two interactions (CD195) ────────────────────────────────────────── */

.tabs[b-kkkzhpi3c6] { display: flex; gap: 0.25rem; margin-bottom: 1rem; }
.tab[b-kkkzhpi3c6] {
    background: var(--uds-white);
    border: 1px solid var(--uds-grey-200);
    border-bottom: 2px solid transparent;
    border-radius: 6px 6px 0 0;
    padding: 0.45rem 0.9rem;
    font: inherit;
    font-size: 0.85rem;
    color: var(--uds-secondary);
    cursor: pointer;
}
.tab.on[b-kkkzhpi3c6] { color: var(--uds-ink); font-weight: 600; border-bottom-color: var(--uds-red); }
.hidden[b-kkkzhpi3c6] { display: none; }

/* The references about to be cancelled, shown before the operator commits to a set. */
.batch-rows[b-kkkzhpi3c6] { margin-top: 0.5rem; display: flex; flex-wrap: wrap; gap: 0.3rem; }
.chip[b-kkkzhpi3c6] {
    background: var(--uds-white);
    border: 1px solid var(--uds-grey-200);
    border-radius: 3px;
    padding: 0.05rem 0.35rem;
    font-size: 0.72rem;
    font-family: var(--uds-font-mono, ui-monospace, Consolas, monospace);
}

/* Marks a booking that came from a bulk upload. Deliberately ONE glyph, on the rows that
   have the property — a single booking gets nothing, because two competing icons on every
   row is noise. The badge means ">= 2 bookings share this batch", the same discriminator
   the upload picker uses; batch_id alone would badge thousands of ordinary UPS bookings,
   which each mint a batch of one. */
.bulk-badge[b-kkkzhpi3c6] {
    display: inline-block;
    width: 1.05rem;
    height: 1.05rem;
    line-height: 1.05rem;
    margin-right: 0.35rem;
    text-align: center;
    border-radius: 3px;
    background: var(--uds-grey-100, #eef1f5);
    border: 1px solid var(--uds-grey-200);
    color: var(--uds-primary);
    font-size: 0.7rem;
    font-weight: 700;
    cursor: help;
    vertical-align: baseline;
}

/* ── End of Day specifics ────────────────────────────────────────────────── */
th.num[b-kkkzhpi3c6], td.num[b-kkkzhpi3c6] { text-align: right; width: 6rem; white-space: nowrap; }
th.act[b-kkkzhpi3c6], td.act[b-kkkzhpi3c6] { width: 11rem; text-align: right; }
.result.ok[b-kkkzhpi3c6] { border-left: 4px solid #1a7f37; }
.result.partial[b-kkkzhpi3c6] { border-left: 4px solid #b54708; }
.result p[b-kkkzhpi3c6] { margin: 0 0 0.6rem; }
.result p:last-child[b-kkkzhpi3c6] { margin-bottom: 0; }
.error[b-kkkzhpi3c6] { border-left: 4px solid #b42318; background: #fdf3f2; }
.error p[b-kkkzhpi3c6] { margin: 0; color: #7a271a; font-size: 0.85rem; }
.warn[b-kkkzhpi3c6] { color: #7a271a; }
/* The backlog warning — the 297-day case is exactly who needs to read it. */
.backlog-note[b-kkkzhpi3c6] { padding: 0.55rem 0.8rem; background: #fffaf5; border-left: 4px solid #b54708; font-size: 0.82rem; }
.actions.inline[b-kkkzhpi3c6] { margin-top: 0; padding-bottom: 0.1rem; }
/* /Components/Shipping/FedExUk.razor.rz.scp.css */
/* FedEx UK booking page — scoped (the Core CSS is per-page, never global). */

.booking-form[aria-disabled="true"][b-yjd63hjyio] { opacity: 0.6; pointer-events: none; }

.panel[b-yjd63hjyio] {
    background: var(--uds-white);
    border: 1px solid var(--uds-grey-200);
    border-radius: 6px;
    padding: 1rem 1.25rem;
    margin-bottom: 1rem;
}

.panel h3[b-yjd63hjyio] {
    margin: 0 0 0.75rem;
    font-size: 1rem;
}

.field-grid[b-yjd63hjyio] { display: grid; gap: 0.6rem 1.25rem; }
.field-grid.two[b-yjd63hjyio] { grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); }
.field-grid.three[b-yjd63hjyio] { grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); }

.field-grid label[b-yjd63hjyio], .addr-pick label[b-yjd63hjyio] {
    display: flex;
    flex-direction: column;
    font-size: 0.78rem;
    color: var(--uds-secondary);
    gap: 0.2rem;
}

.field-grid input[b-yjd63hjyio], .field-grid select[b-yjd63hjyio], .addr-pick input[b-yjd63hjyio] {
    font-family: var(--uds-font-body);
    font-size: 0.85rem;
    color: var(--uds-ink);
    border: 1px solid #c9ccd4;
    border-radius: 4px;
    padding: 0.35rem 0.5rem;
    background: var(--uds-white);
}

.field-grid input:focus[b-yjd63hjyio], .field-grid select:focus[b-yjd63hjyio] {
    outline: 2px solid var(--uds-navy);
    outline-offset: -1px;
}

.upper[b-yjd63hjyio] { text-transform: uppercase; }
.lower[b-yjd63hjyio] { text-transform: lowercase; }
.hint[b-yjd63hjyio] { color: var(--uds-secondary); font-weight: 400; font-size: 0.75rem; }

/* direction radio (FX4) — inline pair under the booking bar */
.direction[b-yjd63hjyio] {
    display: flex;
    gap: 1.5rem;
    align-items: center;
    margin-top: 0.75rem;
    flex-wrap: wrap;
}
.direction-label[b-yjd63hjyio] {
    font-size: 0.78rem;
    color: var(--uds-secondary);
}
.direction label[b-yjd63hjyio] {
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
    font-size: 0.82rem;
    color: var(--uds-ink);
    cursor: pointer;
}

/* address book picker + the single HS typeahead */
.addr-pick[b-yjd63hjyio] { position: relative; max-width: 420px; margin-bottom: 0.75rem; }
.hs-single[b-yjd63hjyio] { position: relative; display: flex; flex-direction: column; }
.hs-single input[b-yjd63hjyio] { width: 100%; }
.addr-results[b-yjd63hjyio], .hs-results[b-yjd63hjyio] {
    position: absolute;
    z-index: 30;
    margin: 0.15rem 0 0;
    padding: 0;
    list-style: none;
    background: var(--uds-white);
    border: 1px solid #c9ccd4;
    border-radius: 4px;
    box-shadow: 0 4px 14px rgba(0, 0, 0, 0.12);
    max-height: 260px;
    overflow-y: auto;
    min-width: 100%;
}

/* The HS list drops below its field (the field-grid cell is the anchor). */
.hs-results[b-yjd63hjyio] { top: 100%; }

/* Click-away for the pickers: a transparent full-viewport layer under the open
   list (z 25 < list z 30) — clicking anywhere else dismisses without a pick. */
.dropdown-backdrop[b-yjd63hjyio] {
    position: fixed;
    inset: 0;
    z-index: 25;
    background: transparent;
}

.addr-results button[b-yjd63hjyio], .hs-results button[b-yjd63hjyio] {
    display: block;
    width: 100%;
    text-align: left;
    background: none;
    border: 0;
    padding: 0.4rem 0.6rem;
    font-size: 0.8rem;
    color: var(--uds-ink);
    cursor: pointer;
}

.addr-results button:hover[b-yjd63hjyio], .hs-results button:hover[b-yjd63hjyio] { background: var(--uds-grey-100); }

/* actions */
.actions[b-yjd63hjyio] { display: flex; gap: 0.75rem; justify-content: flex-end; margin: 1rem 0 2rem; }
.btn-create[b-yjd63hjyio], .btn-clear[b-yjd63hjyio] {
    font-family: var(--uds-font-head);
    font-size: 0.85rem;
    border-radius: 4px;
    padding: 0.5rem 1.75rem;
    cursor: pointer;
}
.btn-create[b-yjd63hjyio] {
    background: var(--uds-navy);
    color: var(--uds-white);
    border: 1px solid var(--uds-navy-deep);
}
.btn-create:hover:enabled[b-yjd63hjyio] { background: var(--uds-navy-deep); }
.btn-create:disabled[b-yjd63hjyio] { opacity: 0.55; cursor: default; }
.btn-clear[b-yjd63hjyio] {
    background: var(--uds-grey-100);
    color: var(--uds-ink);
    border: 1px solid #c9ccd4;
}

/* notices */
.notice[b-yjd63hjyio] {
    position: relative;
    border-radius: 6px;
    padding: 0.75rem 2.25rem 0.75rem 1rem;
    margin-bottom: 1rem;
    font-size: 0.85rem;
}
.notice-error[b-yjd63hjyio] { background: rgba(229, 29, 58, 0.08); border: 1px solid rgba(229, 29, 58, 0.35); }
.notice-info[b-yjd63hjyio] { background: var(--uds-grey-100); border: 1px solid var(--uds-grey-200); }
.notice ul[b-yjd63hjyio] { margin: 0.35rem 0 0.2rem 1.25rem; }
.notice-close[b-yjd63hjyio] {
    position: absolute;
    top: 0.4rem;
    right: 0.5rem;
    background: none;
    border: 0;
    cursor: pointer;
    color: var(--uds-secondary);
}
.carrier-words[b-yjd63hjyio] {
    margin: 0.5rem 0 0;
    padding: 0.5rem;
    background: #22252e;
    color: #e8e8e8;
    border-radius: 4px;
    font-size: 0.72rem;
    max-height: 260px;
    overflow: auto;
    white-space: pre-wrap;
}

/* success */
.success-panel[b-yjd63hjyio] {
    background: var(--uds-white);
    border: 1px solid var(--uds-grey-200);
    border-left: 4px solid var(--uds-navy);
    border-radius: 6px;
    padding: 1rem 1.25rem;
    margin-bottom: 1rem;
}
.success-panel h2[b-yjd63hjyio] { margin: 0 0 0.5rem; font-size: 1.05rem; }
.success-panel dl[b-yjd63hjyio] { display: grid; grid-template-columns: auto 1fr; gap: 0.25rem 1rem; margin: 0; }
.success-panel dt[b-yjd63hjyio] { color: var(--uds-secondary); font-size: 0.78rem; padding-top: 0.15rem; }
.success-panel dd[b-yjd63hjyio] { margin: 0; }
.success-panel code.trk[b-yjd63hjyio] { margin-right: 0.6rem; }
.success-panel .links a[b-yjd63hjyio] { margin-right: 1.25rem; font-weight: 600; }
.success-panel .panel-actions[b-yjd63hjyio] { margin: 0.75rem 0 0.15rem; }
.warning[b-yjd63hjyio] { color: #8a6d1a; background: #fdf6e3; border-radius: 4px; padding: 0.35rem 0.6rem; font-size: 0.8rem; }

.pill-test[b-yjd63hjyio] {
    display: inline-block;
    font-family: var(--uds-font-head);
    font-size: 0.7rem;
    font-weight: 600;
    letter-spacing: 0.04em;
    padding: 0.15rem 0.6rem;
    border-radius: 999px;
    background: rgba(229, 29, 58, 0.12);
    color: var(--uds-red);
}

.muted[b-yjd63hjyio] { color: var(--uds-secondary); font-size: 0.8rem; }

/* create-in-progress indicator + outcome focus (field report, PC 07) */
.busy-note[b-yjd63hjyio] {
    display: inline-flex;
    align-items: center;
    gap: 0.5rem;
    margin-right: auto;
    font-size: 0.82rem;
    color: var(--uds-secondary);
}
.busy-spinner[b-yjd63hjyio] {
    width: 16px;
    height: 16px;
    border: 2px solid var(--uds-grey-200);
    border-top-color: var(--uds-navy);
    border-radius: 50%;
    animation: booking-spin-b-yjd63hjyio 0.8s linear infinite;
}
@keyframes booking-spin-b-yjd63hjyio { to { transform: rotate(360deg); } }
.success-panel:focus[b-yjd63hjyio], .notice:focus[b-yjd63hjyio] { outline: none; }

/* CD268: the persistent routing note above the form — no close button, so no reserved right padding. */
.route-note[b-yjd63hjyio] { padding-right: 1rem; }
/* /Components/Shipping/LabelDetail.razor.rz.scp.css */
/* Consignment detail (V15) — scoped to THIS component.
   ⚠ Blazor scoped CSS does not cross component boundaries: these rules originally sat in
   ViewLabels.razor.css and matched nothing, because that file's scope attribute is stamped
   on the PAGE's elements, not on a child component's. The definition lists rendered as bare
   stacked text until they moved here. Memory: `logix-core-scoped-css-trap`. */

.detail[b-nbhfk0xv27] { padding: 0.9rem 1.1rem; }

.detail h4[b-nbhfk0xv27] {
    margin: 0 0 0.4rem;
    font-size: 0.78rem;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    color: var(--uds-secondary);
}

.detail-grid[b-nbhfk0xv27] {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
    gap: 1.25rem;
    margin-bottom: 1rem;
}

.detail dl[b-nbhfk0xv27] {
    margin: 0;
    display: grid;
    grid-template-columns: 6rem 1fr;
    gap: 0.2rem 0.75rem;
    align-items: baseline;
}

.detail dt[b-nbhfk0xv27] { color: var(--uds-secondary); font-size: 0.75rem; }
.detail dd[b-nbhfk0xv27] { margin: 0; font-size: 0.82rem; }

.detail p[b-nbhfk0xv27] { margin: 0 0 0.5rem; font-size: 0.82rem; }
.detail .muted[b-nbhfk0xv27] { color: var(--uds-secondary); }
.detail .small[b-nbhfk0xv27] { font-size: 0.75rem; }

table.lines[b-nbhfk0xv27] {
    width: auto;
    min-width: 22rem;
    border-collapse: collapse;
    font-size: 0.78rem;
    margin: 0 0 0.9rem;
    background: var(--uds-white);
}

table.lines th[b-nbhfk0xv27],
table.lines td[b-nbhfk0xv27] {
    border: 1px solid var(--uds-grey-200);
    padding: 0.25rem 0.6rem;
    text-align: left;
    white-space: nowrap;
}

table.lines th[b-nbhfk0xv27] { font-weight: 600; background: var(--uds-grey-100, #f2f3f5); }
/* /Components/Shipping/PrintLabels.razor.rz.scp.css */
/* Print Labels — scoped (the Core CSS is per-page, never global; a page assuming the
   dashboard classes renders unstyled). Panels, field grid, table and pager mirror
   View Labels and Cancel Labels so the Portal reads as one product. */

.panel[b-4nd74haugl] {
    background: var(--uds-white);
    border: 1px solid var(--uds-grey-200);
    border-radius: 6px;
    padding: 1rem 1.25rem;
    margin-bottom: 1rem;
}

.panel h3[b-4nd74haugl] {
    margin: 0 0 0.75rem;
    font-size: 1rem;
}

.field-grid[b-4nd74haugl] {
    display: grid;
    gap: 0.6rem 1.25rem;
    grid-template-columns: minmax(220px, 2fr) repeat(2, minmax(130px, 0.7fr)) repeat(2, minmax(150px, 1fr));
    align-items: end;
}

.field-grid label[b-4nd74haugl] {
    display: flex;
    flex-direction: column;
    font-size: 0.78rem;
    color: var(--uds-secondary);
    gap: 0.2rem;
}

.field-grid input[type="text"][b-4nd74haugl],
.field-grid input[type="date"][b-4nd74haugl],
.field-grid input:not([type])[b-4nd74haugl] {
    font-family: var(--uds-font-body);
    font-size: 0.85rem;
    color: var(--uds-ink);
    border: 1px solid #c9ccd4;
    border-radius: 4px;
    padding: 0.35rem 0.5rem;
    background: var(--uds-white);
}

.field-grid input:focus[b-4nd74haugl] { outline: 2px solid var(--uds-primary); outline-offset: -1px; }

.actions[b-4nd74haugl] { margin-top: 0.9rem; display: flex; gap: 0.5rem; align-items: center; flex-wrap: wrap; }

.muted[b-4nd74haugl] { color: var(--uds-secondary); }
.small[b-4nd74haugl] { font-size: 0.75rem; }
.hint[b-4nd74haugl] { margin: 0.5rem 0 0; }

.table-scroll[b-4nd74haugl] { overflow-x: auto; }

table.labels[b-4nd74haugl] {
    width: 100%;
    border-collapse: collapse;
    font-size: 0.8rem;
}

table.labels th[b-4nd74haugl] {
    text-align: left;
    background: var(--uds-grey-100, #f2f3f5);
    border-bottom: 1px solid var(--uds-grey-200);
    padding: 0.4rem 0.5rem;
    font-weight: 600;
    white-space: nowrap;
}

table.labels td[b-4nd74haugl] {
    border-bottom: 1px solid var(--uds-grey-200);
    padding: 0.4rem 0.5rem;
    vertical-align: top;
}

/* The whole row toggles its tick, so say so on hover. */
table.labels tbody tr[b-4nd74haugl] { cursor: pointer; }
table.labels tbody tr:hover td[b-4nd74haugl] { background: #f6f9fd; }

td.tracking[b-4nd74haugl] { font-family: var(--uds-font-mono, ui-monospace, "Cascadia Mono", Consolas, monospace); }

/* ── the tick column ─────────────────────────────────────────────────────── */

th.tick[b-4nd74haugl], td.tick[b-4nd74haugl] { width: 2.2rem; text-align: center; }
td.tick input[b-4nd74haugl], th.tick input[b-4nd74haugl] { margin: 0; cursor: pointer; }

/* A ticked row is obvious at a glance — this is the page where selecting the wrong
   row means printing somebody else's label onto your parcel. */
table.labels tbody tr.picked td[b-4nd74haugl] { background: #eef4fd; }
table.labels tbody tr.picked:hover td[b-4nd74haugl] { background: #e4eefc; }

/* ── uploads tab ─────────────────────────────────────────────────────────── */

th.act[b-4nd74haugl], td.act[b-4nd74haugl] { width: 8rem; white-space: nowrap; }

/* ── pager ───────────────────────────────────────────────────────────────── */

.pager[b-4nd74haugl] { margin-top: 0.9rem; display: flex; gap: 0.75rem; align-items: center; font-size: 0.82rem; }
.pager .pagesize[b-4nd74haugl] { margin-left: auto; display: flex; gap: 0.35rem; align-items: center; color: var(--uds-secondary); }
.pager select[b-4nd74haugl] {
    font-size: 0.8rem;
    border: 1px solid #c9ccd4;
    border-radius: 4px;
    padding: 0.15rem 0.3rem;
    background: var(--uds-white);
}

.empty[b-4nd74haugl] { text-align: center; padding: 2.5rem 1.25rem; }
.empty p[b-4nd74haugl] { margin: 0 0 0.5rem; }
.empty .btn[b-4nd74haugl] { margin-top: 0.5rem; }

/* ── the two ways in (CD197) ─────────────────────────────────────────────── */

.tabs[b-4nd74haugl] { display: flex; gap: 0.25rem; margin-bottom: 1rem; }
.tab[b-4nd74haugl] {
    background: var(--uds-white);
    border: 1px solid var(--uds-grey-200);
    border-bottom: 2px solid transparent;
    border-radius: 6px 6px 0 0;
    padding: 0.45rem 0.9rem;
    font: inherit;
    font-size: 0.85rem;
    color: var(--uds-secondary);
    cursor: pointer;
}
.tab.on[b-4nd74haugl] { color: var(--uds-ink); font-weight: 600; border-bottom-color: var(--uds-red); }

/* ── the action bar ──────────────────────────────────────────────────────── */

/* Sticks to the bottom of the viewport: a 100-row page otherwise puts the Print button
   off screen, and WF's sits above the grid where a long selection scrolls it away. */
.print-bar[b-4nd74haugl] {
    position: sticky;
    bottom: 0;
    display: flex;
    gap: 0.6rem;
    align-items: center;
    background: var(--uds-white);
    border: 1px solid var(--uds-grey-200);
    border-radius: 6px;
    padding: 0.7rem 1.25rem;
    margin-bottom: 1rem;
    box-shadow: 0 -2px 6px rgba(0, 0, 0, 0.06);
    font-size: 0.85rem;
}
.print-bar .count[b-4nd74haugl] { margin-right: auto; }

/* ── outcome panels ──────────────────────────────────────────────────────── */

.result.ok[b-4nd74haugl] { border-left: 4px solid #1a7f37; }
.result.partial[b-4nd74haugl] { border-left: 4px solid #b54708; }
.result p[b-4nd74haugl] { margin: 0 0 0.6rem; }
.result p:last-child[b-4nd74haugl] { margin-bottom: 0; }
.result .btn.primary[b-4nd74haugl] { margin-right: 0.6rem; }

.failures[b-4nd74haugl] {
    margin-top: 0.8rem;
    padding-top: 0.7rem;
    border-top: 1px solid var(--uds-grey-200);
    font-size: 0.82rem;
}
.failures ul[b-4nd74haugl] { margin: 0.35rem 0 0.5rem; padding-left: 1.2rem; }
.failures li[b-4nd74haugl] { margin-bottom: 0.15rem; }

.split[b-4nd74haugl] { border-left: 4px solid #3c8dbc; }
.split p[b-4nd74haugl] { margin: 0 0 0.5rem; }

.error[b-4nd74haugl] { border-left: 4px solid #b42318; background: #fdf3f2; }
.error p[b-4nd74haugl] { margin: 0; color: #7a271a; font-size: 0.85rem; }

/* Marks a booking that came from a bulk upload — the same badge and the same ">= 2 rows
   share this batch" meaning as View Labels and Cancel Labels. */
.bulk-badge[b-4nd74haugl] {
    display: inline-block;
    width: 1.05rem;
    height: 1.05rem;
    line-height: 1.05rem;
    margin-right: 0.35rem;
    text-align: center;
    border-radius: 3px;
    background: var(--uds-grey-100, #eef1f5);
    border: 1px solid var(--uds-grey-200);
    color: var(--uds-primary);
    font-size: 0.7rem;
    font-weight: 700;
    cursor: help;
    vertical-align: baseline;
}

/* The pages-vs-labels note. Set apart because it exists to stop an operator sending seven
   pages to a thermal printer expecting two. */
.pages-note[b-4nd74haugl] { margin: 0 0 0.6rem; padding-left: 0.6rem; border-left: 3px solid #b54708; }

/* Pieces — narrow, right-aligned, and blank at 1 so only multi-parcel rows draw the eye. */
th.num[b-4nd74haugl], td.num[b-4nd74haugl] { width: 4rem; text-align: right; white-space: nowrap; }
/* /Components/Shipping/SortHeader.razor.rz.scp.css */
/* Sortable column heading — scoped to THIS component.
   ⚠ Blazor scoped CSS does not cross component boundaries: a rule written in
   ViewLabels.razor.css carries that page's scope attribute and never matches the markup
   this component emits, so the button rendered with the browser's default chrome. Same
   trap as memory `logix-core-scoped-css-trap`, one level down. */

button.sort[b-odiqxy4qxj] {
    background: none;
    border: 0;
    padding: 0;
    font: inherit;
    font-weight: 600;
    color: inherit;
    cursor: pointer;
    white-space: nowrap;
}

button.sort:hover[b-odiqxy4qxj] { color: var(--uds-primary); }

button.sort:focus-visible[b-odiqxy4qxj] { outline: 2px solid var(--uds-primary); outline-offset: 2px; }

button.sort .arrow[b-odiqxy4qxj] { margin-left: 0.25rem; color: var(--uds-primary); }
/* /Components/Shipping/UdsUsa.razor.rz.scp.css */
/* UPS NL booking page — scoped (the Core CSS is per-page, never global). */

.booking-form[aria-disabled="true"][b-920dx3uyfs] { opacity: 0.6; pointer-events: none; }

.panel[b-920dx3uyfs] {
    background: var(--uds-white);
    border: 1px solid var(--uds-grey-200);
    border-radius: 6px;
    padding: 1rem 1.25rem;
    margin-bottom: 1rem;
}

.panel h3[b-920dx3uyfs] {
    margin: 0 0 0.75rem;
    font-size: 1rem;
}

.field-grid[b-920dx3uyfs] { display: grid; gap: 0.6rem 1.25rem; }
.field-grid.two[b-920dx3uyfs] { grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); }
.field-grid.three[b-920dx3uyfs] { grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); }

.field-grid label[b-920dx3uyfs], .addr-pick label[b-920dx3uyfs] {
    display: flex;
    flex-direction: column;
    font-size: 0.78rem;
    color: var(--uds-secondary);
    gap: 0.2rem;
}

.field-grid input[b-920dx3uyfs], .field-grid select[b-920dx3uyfs], .addr-pick input[b-920dx3uyfs], .grid input[b-920dx3uyfs] {
    font-family: var(--uds-font-body);
    font-size: 0.85rem;
    color: var(--uds-ink);
    border: 1px solid #c9ccd4;
    border-radius: 4px;
    padding: 0.35rem 0.5rem;
    background: var(--uds-white);
}

.field-grid input:focus[b-920dx3uyfs], .field-grid select:focus[b-920dx3uyfs], .grid input:focus[b-920dx3uyfs] {
    outline: 2px solid var(--uds-navy);
    outline-offset: -1px;
}

.upper[b-920dx3uyfs] { text-transform: uppercase; }
.lower[b-920dx3uyfs] { text-transform: lowercase; }
.hint[b-920dx3uyfs] { color: var(--uds-secondary); font-weight: 400; font-size: 0.75rem; }

.check-row[b-920dx3uyfs] { display: flex; gap: 1.5rem; margin-top: 0.75rem; flex-wrap: wrap; }
.check-row label[b-920dx3uyfs] {
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
    font-size: 0.85rem;
    color: var(--uds-ink);
}

/* address book picker */
.addr-pick[b-920dx3uyfs] { position: relative; max-width: 420px; margin-bottom: 0.75rem; }
.addr-results[b-920dx3uyfs], .hs-results[b-920dx3uyfs] {
    position: absolute;
    z-index: 30;
    margin: 0.15rem 0 0;
    padding: 0;
    list-style: none;
    background: var(--uds-white);
    border: 1px solid #c9ccd4;
    border-radius: 4px;
    box-shadow: 0 4px 14px rgba(0, 0, 0, 0.12);
    max-height: 260px;
    overflow-y: auto;
    min-width: 100%;
}

/* HS suggestions render IN-FLOW (the row grows) — an absolute overlay would be
   clipped by the grid's own scroll container. relative (not static) so the list
   stacks above the click-away backdrop. */
.hs-results[b-920dx3uyfs] {
    position: relative;
    z-index: 30;
    box-shadow: none;
    max-height: 180px;
}

/* Click-away for the pickers: a transparent full-viewport layer under the open
   list (z 25 < list z 30) — clicking anywhere else dismisses without a pick. */
.dropdown-backdrop[b-920dx3uyfs] {
    position: fixed;
    inset: 0;
    z-index: 25;
    background: transparent;
}

.addr-results button[b-920dx3uyfs], .hs-results button[b-920dx3uyfs] {
    display: block;
    width: 100%;
    text-align: left;
    background: none;
    border: 0;
    padding: 0.4rem 0.6rem;
    font-size: 0.8rem;
    color: var(--uds-ink);
    cursor: pointer;
}

.addr-results button:hover[b-920dx3uyfs], .hs-results button:hover[b-920dx3uyfs] { background: var(--uds-grey-100); }

/* grids — wide tables scroll inside their own wrapper on narrow screens; the page
   body must never scroll horizontally (PC 06 field report). */
.grid-scroll[b-920dx3uyfs] { overflow-x: auto; }
.grid[b-920dx3uyfs] { width: 100%; min-width: 620px; border-collapse: collapse; font-size: 0.82rem; }
.grid th[b-920dx3uyfs] {
    text-align: left;
    font-weight: 600;
    color: var(--uds-secondary);
    font-size: 0.72rem;
    padding: 0.3rem 0.4rem;
    border-bottom: 1px solid var(--uds-grey-200);
}
.grid td[b-920dx3uyfs] { padding: 0.25rem 0.4rem; vertical-align: top; }
.grid td input[b-920dx3uyfs] { width: 100%; min-width: 4.5rem; }
.grid td.calc[b-920dx3uyfs] { text-align: right; color: var(--uds-secondary); padding-top: 0.55rem; }
.hs-cell[b-920dx3uyfs] { position: relative; min-width: 10rem; }

.row-add[b-920dx3uyfs] {
    margin-top: 0.5rem;
    background: none;
    border: 1px dashed #c9ccd4;
    border-radius: 4px;
    padding: 0.3rem 0.75rem;
    font-size: 0.78rem;
    color: var(--uds-navy);
    cursor: pointer;
}
.row-add:hover[b-920dx3uyfs] { background: var(--uds-grey-100); }

.row-del[b-920dx3uyfs] {
    background: #ffd5d5;
    border: 0;
    border-radius: 4px;
    padding: 0.3rem 0.6rem;
    font-size: 0.72rem;
    color: #757575;
    cursor: pointer;
}

.totals[b-920dx3uyfs] {
    display: flex;
    gap: 1.75rem;
    margin-top: 0.75rem;
    font-size: 0.82rem;
    color: var(--uds-secondary);
    flex-wrap: wrap;
}
.totals b[b-920dx3uyfs] { color: var(--uds-ink); }

/* actions */
.actions[b-920dx3uyfs] { display: flex; gap: 0.75rem; justify-content: flex-end; margin: 1rem 0 2rem; }
.btn-create[b-920dx3uyfs], .btn-clear[b-920dx3uyfs] {
    font-family: var(--uds-font-head);
    font-size: 0.85rem;
    border-radius: 4px;
    padding: 0.5rem 1.75rem;
    cursor: pointer;
}
.btn-create[b-920dx3uyfs] {
    background: var(--uds-navy);
    color: var(--uds-white);
    border: 1px solid var(--uds-navy-deep);
}
.btn-create:hover:enabled[b-920dx3uyfs] { background: var(--uds-navy-deep); }
.btn-create:disabled[b-920dx3uyfs] { opacity: 0.55; cursor: default; }
.btn-clear[b-920dx3uyfs] {
    background: var(--uds-grey-100);
    color: var(--uds-ink);
    border: 1px solid #c9ccd4;
}

/* notices */
.notice[b-920dx3uyfs] {
    position: relative;
    border-radius: 6px;
    padding: 0.75rem 2.25rem 0.75rem 1rem;
    margin-bottom: 1rem;
    font-size: 0.85rem;
}
.notice-error[b-920dx3uyfs] { background: rgba(229, 29, 58, 0.08); border: 1px solid rgba(229, 29, 58, 0.35); }
.notice-info[b-920dx3uyfs] { background: var(--uds-grey-100); border: 1px solid var(--uds-grey-200); }
.notice ul[b-920dx3uyfs] { margin: 0.35rem 0 0.2rem 1.25rem; }
.notice-close[b-920dx3uyfs] {
    position: absolute;
    top: 0.4rem;
    right: 0.5rem;
    background: none;
    border: 0;
    cursor: pointer;
    color: var(--uds-secondary);
}
.carrier-words[b-920dx3uyfs] {
    margin: 0.5rem 0 0;
    padding: 0.5rem;
    background: #22252e;
    color: #e8e8e8;
    border-radius: 4px;
    font-size: 0.72rem;
    max-height: 260px;
    overflow: auto;
    white-space: pre-wrap;
}

/* success */
.success-panel[b-920dx3uyfs] {
    background: var(--uds-white);
    border: 1px solid var(--uds-grey-200);
    border-left: 4px solid var(--uds-navy);
    border-radius: 6px;
    padding: 1rem 1.25rem;
    margin-bottom: 1rem;
}
.success-panel h2[b-920dx3uyfs] { margin: 0 0 0.5rem; font-size: 1.05rem; }
.success-panel dl[b-920dx3uyfs] { display: grid; grid-template-columns: auto 1fr; gap: 0.25rem 1rem; margin: 0; }
.success-panel dt[b-920dx3uyfs] { color: var(--uds-secondary); font-size: 0.78rem; padding-top: 0.15rem; }
.success-panel dd[b-920dx3uyfs] { margin: 0; }
.success-panel code.trk[b-920dx3uyfs] { margin-right: 0.6rem; }
.success-panel .links a[b-920dx3uyfs] { margin-right: 1.25rem; font-weight: 600; }
.success-panel .panel-actions[b-920dx3uyfs] { margin: 0.75rem 0 0.15rem; }
.warning[b-920dx3uyfs] { color: #8a6d1a; background: #fdf6e3; border-radius: 4px; padding: 0.35rem 0.6rem; font-size: 0.8rem; }

.pill-test[b-920dx3uyfs] {
    display: inline-block;
    font-family: var(--uds-font-head);
    font-size: 0.7rem;
    font-weight: 600;
    letter-spacing: 0.04em;
    padding: 0.15rem 0.6rem;
    border-radius: 999px;
    background: rgba(229, 29, 58, 0.12);
    color: var(--uds-red);
}

.muted[b-920dx3uyfs] { color: var(--uds-secondary); font-size: 0.8rem; }

/* create-in-progress indicator + outcome focus (field report, PC 07) */
.busy-note[b-920dx3uyfs] {
    display: inline-flex;
    align-items: center;
    gap: 0.5rem;
    margin-right: auto;
    font-size: 0.82rem;
    color: var(--uds-secondary);
}
.busy-spinner[b-920dx3uyfs] {
    width: 16px;
    height: 16px;
    border: 2px solid var(--uds-grey-200);
    border-top-color: var(--uds-navy);
    border-radius: 50%;
    animation: booking-spin-b-920dx3uyfs 0.8s linear infinite;
}
@keyframes booking-spin-b-920dx3uyfs { to { transform: rotate(360deg); } }
.success-panel:focus[b-920dx3uyfs], .notice:focus[b-920dx3uyfs] { outline: none; }

/* ── P6 additions (CHG-085, session "PC 10") ───────────────────────────────── */

/* A consignment row over CD162's per-package ceiling. Flagged as it is typed, so the
   limit the served catalogue now exposes (UU4) is met before the wire, not after a 400. */
.grid tr.row-error input[b-920dx3uyfs] { border-color: var(--uds-red); }
.grid tr.row-error td.calc[b-920dx3uyfs] { color: var(--uds-red); }

/* A single full-width field that must still be a field-grid child, so it inherits the
   shared input border/height rather than rendering as an odd one out. */
.field-grid.one[b-920dx3uyfs] { grid-template-columns: 1fr; }

/* .upper uppercases the VALUE; a placeholder is instruction, not data, so it keeps its
   own casing ("2-letter, e.g. CA", not "2-LETTER, E.G. CA"). */
.upper[b-920dx3uyfs]::placeholder { text-transform: none; }

/* CD268: the persistent routing note above the form — no close button, so no reserved right padding. */
.route-note[b-920dx3uyfs] { padding-right: 1rem; }
/* /Components/Shipping/UpsNl.razor.rz.scp.css */
/* UPS NL booking page — scoped (the Core CSS is per-page, never global). */

.booking-form[aria-disabled="true"][b-xafyyfm4hq] { opacity: 0.6; pointer-events: none; }

.panel[b-xafyyfm4hq] {
    background: var(--uds-white);
    border: 1px solid var(--uds-grey-200);
    border-radius: 6px;
    padding: 1rem 1.25rem;
    margin-bottom: 1rem;
}

.panel h3[b-xafyyfm4hq] {
    margin: 0 0 0.75rem;
    font-size: 1rem;
}

.field-grid[b-xafyyfm4hq] { display: grid; gap: 0.6rem 1.25rem; }
.field-grid.two[b-xafyyfm4hq] { grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); }
.field-grid.three[b-xafyyfm4hq] { grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); }

.field-grid label[b-xafyyfm4hq], .addr-pick label[b-xafyyfm4hq] {
    display: flex;
    flex-direction: column;
    font-size: 0.78rem;
    color: var(--uds-secondary);
    gap: 0.2rem;
}

.field-grid input[b-xafyyfm4hq], .field-grid select[b-xafyyfm4hq], .addr-pick input[b-xafyyfm4hq], .grid input[b-xafyyfm4hq] {
    font-family: var(--uds-font-body);
    font-size: 0.85rem;
    color: var(--uds-ink);
    border: 1px solid #c9ccd4;
    border-radius: 4px;
    padding: 0.35rem 0.5rem;
    background: var(--uds-white);
}

.field-grid input:focus[b-xafyyfm4hq], .field-grid select:focus[b-xafyyfm4hq], .grid input:focus[b-xafyyfm4hq] {
    outline: 2px solid var(--uds-navy);
    outline-offset: -1px;
}

.upper[b-xafyyfm4hq] { text-transform: uppercase; }
.lower[b-xafyyfm4hq] { text-transform: lowercase; }
.hint[b-xafyyfm4hq] { color: var(--uds-secondary); font-weight: 400; font-size: 0.75rem; }

.check-row[b-xafyyfm4hq] { display: flex; gap: 1.5rem; margin-top: 0.75rem; flex-wrap: wrap; }
.check-row label[b-xafyyfm4hq] {
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
    font-size: 0.85rem;
    color: var(--uds-ink);
}

/* address book picker */
.addr-pick[b-xafyyfm4hq] { position: relative; max-width: 420px; margin-bottom: 0.75rem; }
.addr-results[b-xafyyfm4hq], .hs-results[b-xafyyfm4hq] {
    position: absolute;
    z-index: 30;
    margin: 0.15rem 0 0;
    padding: 0;
    list-style: none;
    background: var(--uds-white);
    border: 1px solid #c9ccd4;
    border-radius: 4px;
    box-shadow: 0 4px 14px rgba(0, 0, 0, 0.12);
    max-height: 260px;
    overflow-y: auto;
    min-width: 100%;
}

/* HS suggestions render IN-FLOW (the row grows) — an absolute overlay would be
   clipped by the grid's own scroll container. relative (not static) so the list
   stacks above the click-away backdrop. */
.hs-results[b-xafyyfm4hq] {
    position: relative;
    z-index: 30;
    box-shadow: none;
    max-height: 180px;
}

/* Click-away for the pickers: a transparent full-viewport layer under the open
   list (z 25 < list z 30) — clicking anywhere else dismisses without a pick. */
.dropdown-backdrop[b-xafyyfm4hq] {
    position: fixed;
    inset: 0;
    z-index: 25;
    background: transparent;
}

.addr-results button[b-xafyyfm4hq], .hs-results button[b-xafyyfm4hq] {
    display: block;
    width: 100%;
    text-align: left;
    background: none;
    border: 0;
    padding: 0.4rem 0.6rem;
    font-size: 0.8rem;
    color: var(--uds-ink);
    cursor: pointer;
}

.addr-results button:hover[b-xafyyfm4hq], .hs-results button:hover[b-xafyyfm4hq] { background: var(--uds-grey-100); }

/* grids — wide tables scroll inside their own wrapper on narrow screens; the page
   body must never scroll horizontally (PC 06 field report). */
.grid-scroll[b-xafyyfm4hq] { overflow-x: auto; }
.grid[b-xafyyfm4hq] { width: 100%; min-width: 620px; border-collapse: collapse; font-size: 0.82rem; }
.grid th[b-xafyyfm4hq] {
    text-align: left;
    font-weight: 600;
    color: var(--uds-secondary);
    font-size: 0.72rem;
    padding: 0.3rem 0.4rem;
    border-bottom: 1px solid var(--uds-grey-200);
}
.grid td[b-xafyyfm4hq] { padding: 0.25rem 0.4rem; vertical-align: top; }
.grid td input[b-xafyyfm4hq] { width: 100%; min-width: 4.5rem; }
.grid td.calc[b-xafyyfm4hq] { text-align: right; color: var(--uds-secondary); padding-top: 0.55rem; }
.hs-cell[b-xafyyfm4hq] { position: relative; min-width: 10rem; }

.row-add[b-xafyyfm4hq] {
    margin-top: 0.5rem;
    background: none;
    border: 1px dashed #c9ccd4;
    border-radius: 4px;
    padding: 0.3rem 0.75rem;
    font-size: 0.78rem;
    color: var(--uds-navy);
    cursor: pointer;
}
.row-add:hover[b-xafyyfm4hq] { background: var(--uds-grey-100); }

.row-del[b-xafyyfm4hq] {
    background: #ffd5d5;
    border: 0;
    border-radius: 4px;
    padding: 0.3rem 0.6rem;
    font-size: 0.72rem;
    color: #757575;
    cursor: pointer;
}

.totals[b-xafyyfm4hq] {
    display: flex;
    gap: 1.75rem;
    margin-top: 0.75rem;
    font-size: 0.82rem;
    color: var(--uds-secondary);
    flex-wrap: wrap;
}
.totals b[b-xafyyfm4hq] { color: var(--uds-ink); }

/* actions */
.actions[b-xafyyfm4hq] { display: flex; gap: 0.75rem; justify-content: flex-end; margin: 1rem 0 2rem; }
.btn-create[b-xafyyfm4hq], .btn-clear[b-xafyyfm4hq] {
    font-family: var(--uds-font-head);
    font-size: 0.85rem;
    border-radius: 4px;
    padding: 0.5rem 1.75rem;
    cursor: pointer;
}
.btn-create[b-xafyyfm4hq] {
    background: var(--uds-navy);
    color: var(--uds-white);
    border: 1px solid var(--uds-navy-deep);
}
.btn-create:hover:enabled[b-xafyyfm4hq] { background: var(--uds-navy-deep); }
.btn-create:disabled[b-xafyyfm4hq] { opacity: 0.55; cursor: default; }
.btn-clear[b-xafyyfm4hq] {
    background: var(--uds-grey-100);
    color: var(--uds-ink);
    border: 1px solid #c9ccd4;
}

/* notices */
.notice[b-xafyyfm4hq] {
    position: relative;
    border-radius: 6px;
    padding: 0.75rem 2.25rem 0.75rem 1rem;
    margin-bottom: 1rem;
    font-size: 0.85rem;
}
.notice-error[b-xafyyfm4hq] { background: rgba(229, 29, 58, 0.08); border: 1px solid rgba(229, 29, 58, 0.35); }
.notice-info[b-xafyyfm4hq] { background: var(--uds-grey-100); border: 1px solid var(--uds-grey-200); }
.notice ul[b-xafyyfm4hq] { margin: 0.35rem 0 0.2rem 1.25rem; }
.notice-close[b-xafyyfm4hq] {
    position: absolute;
    top: 0.4rem;
    right: 0.5rem;
    background: none;
    border: 0;
    cursor: pointer;
    color: var(--uds-secondary);
}
.carrier-words[b-xafyyfm4hq] {
    margin: 0.5rem 0 0;
    padding: 0.5rem;
    background: #22252e;
    color: #e8e8e8;
    border-radius: 4px;
    font-size: 0.72rem;
    max-height: 260px;
    overflow: auto;
    white-space: pre-wrap;
}

/* success */
.success-panel[b-xafyyfm4hq] {
    background: var(--uds-white);
    border: 1px solid var(--uds-grey-200);
    border-left: 4px solid var(--uds-navy);
    border-radius: 6px;
    padding: 1rem 1.25rem;
    margin-bottom: 1rem;
}
.success-panel h2[b-xafyyfm4hq] { margin: 0 0 0.5rem; font-size: 1.05rem; }
.success-panel dl[b-xafyyfm4hq] { display: grid; grid-template-columns: auto 1fr; gap: 0.25rem 1rem; margin: 0; }
.success-panel dt[b-xafyyfm4hq] { color: var(--uds-secondary); font-size: 0.78rem; padding-top: 0.15rem; }
.success-panel dd[b-xafyyfm4hq] { margin: 0; }
.success-panel code.trk[b-xafyyfm4hq] { margin-right: 0.6rem; }
.success-panel .links a[b-xafyyfm4hq] { margin-right: 1.25rem; font-weight: 600; }
.success-panel .panel-actions[b-xafyyfm4hq] { margin: 0.75rem 0 0.15rem; }
.warning[b-xafyyfm4hq] { color: #8a6d1a; background: #fdf6e3; border-radius: 4px; padding: 0.35rem 0.6rem; font-size: 0.8rem; }

.pill-test[b-xafyyfm4hq] {
    display: inline-block;
    font-family: var(--uds-font-head);
    font-size: 0.7rem;
    font-weight: 600;
    letter-spacing: 0.04em;
    padding: 0.15rem 0.6rem;
    border-radius: 999px;
    background: rgba(229, 29, 58, 0.12);
    color: var(--uds-red);
}

.muted[b-xafyyfm4hq] { color: var(--uds-secondary); font-size: 0.8rem; }

/* create-in-progress indicator + outcome focus (field report, PC 07) */
.busy-note[b-xafyyfm4hq] {
    display: inline-flex;
    align-items: center;
    gap: 0.5rem;
    margin-right: auto;
    font-size: 0.82rem;
    color: var(--uds-secondary);
}
.busy-spinner[b-xafyyfm4hq] {
    width: 16px;
    height: 16px;
    border: 2px solid var(--uds-grey-200);
    border-top-color: var(--uds-navy);
    border-radius: 50%;
    animation: booking-spin-b-xafyyfm4hq 0.8s linear infinite;
}
@keyframes booking-spin-b-xafyyfm4hq { to { transform: rotate(360deg); } }
.success-panel:focus[b-xafyyfm4hq], .notice:focus[b-xafyyfm4hq] { outline: none; }

/* U6 invoice upload + U5 landed-cost button (beside the customs grid, WF's order) */
.customs-extras[b-xafyyfm4hq] {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.75rem 1.25rem;
    margin-top: 0.75rem;
    padding-top: 0.6rem;
    border-top: 1px solid var(--uds-grey-200);
}
.file-pick[b-xafyyfm4hq] { display: inline-flex; flex-direction: column; gap: 0.25rem; font-size: 0.8rem; color: var(--uds-secondary); }
.file-pick input[type=file][b-xafyyfm4hq] { font-size: 0.8rem; }
.file-name[b-xafyyfm4hq] { font-size: 0.8rem; }
.file-name .row-del[b-xafyyfm4hq] { margin-left: 0.5rem; }
.btn-quote[b-xafyyfm4hq] {
    margin-left: auto;
    font-family: var(--uds-font-head);
    font-size: 0.82rem;
    font-weight: 600;
    padding: 0.45rem 1rem;
    border-radius: 4px;
    border: 1px solid var(--uds-navy);
    background: var(--uds-white);
    color: var(--uds-navy);
    cursor: pointer;
}
.btn-quote:hover:not(:disabled)[b-xafyyfm4hq] { background: var(--uds-grey-100); }
.btn-quote:disabled[b-xafyyfm4hq] { opacity: 0.5; cursor: default; }

/* U5 landed-cost window — WF's 620px modal RadWindow */
.lc-backdrop[b-xafyyfm4hq] { position: fixed; inset: 0; background: rgba(0, 0, 0, 0.35); z-index: 40; }
.lc-modal[b-xafyyfm4hq] {
    position: fixed;
    top: 8vh;
    left: 50%;
    transform: translateX(-50%);
    width: min(620px, 94vw);
    max-height: 84vh;
    overflow: auto;
    background: var(--uds-white);
    border: 1px solid var(--uds-grey-200);
    border-radius: 6px;
    box-shadow: 0 12px 40px rgba(0, 0, 0, 0.25);
    padding: 1rem 1.25rem 1.25rem;
    z-index: 41;
}
.lc-head[b-xafyyfm4hq] { display: flex; justify-content: space-between; align-items: flex-start; margin-bottom: 0.9rem; }
.lc-head .notice-close[b-xafyyfm4hq] { position: static; }
.lc-title[b-xafyyfm4hq] { font-family: var(--uds-font-head); font-size: 1.05rem; font-weight: 700; color: var(--uds-navy); }
.lc-summary[b-xafyyfm4hq] { width: 100%; border-collapse: collapse; font-size: 0.88rem; }
.lc-summary td[b-xafyyfm4hq] { padding: 0.25rem 0; }
.lc-summary td:first-child[b-xafyyfm4hq] { font-weight: 600; }
.lc-summary td:last-child[b-xafyyfm4hq] { text-align: right; }
.lc-summary tr.lc-grand td[b-xafyyfm4hq] { border-top: 1px solid var(--uds-grey-200); padding-top: 0.6rem; }
.lc-modal h4[b-xafyyfm4hq] { margin: 1rem 0 0.4rem; font-size: 0.9rem; }
.lc-items td.num[b-xafyyfm4hq], .lc-items th:not(:first-child)[b-xafyyfm4hq] { text-align: right; }

/* CD268: the persistent routing note above the form — no close button, so no reserved right padding. */
.route-note[b-xafyyfm4hq] { padding-right: 1rem; }
/* /Components/Shipping/ViewLabels.razor.rz.scp.css */
/* View Labels — scoped (the Core CSS is per-page, never global). Panels and field grids
   mirror the carrier and bulk pages so the Portal reads as one product. */

.panel[b-bhs6g6dfym] {
    background: var(--uds-white);
    border: 1px solid var(--uds-grey-200);
    border-radius: 6px;
    padding: 1rem 1.25rem;
    margin-bottom: 1rem;
}

.panel h3[b-bhs6g6dfym] {
    margin: 0 0 0.75rem;
    font-size: 1rem;
}

/* Filters: the date pair stays narrow, the text boxes take the slack. */
.field-grid[b-bhs6g6dfym] {
    display: grid;
    gap: 0.6rem 1.25rem;
    grid-template-columns: minmax(220px, 2fr) repeat(2, minmax(130px, 0.7fr)) repeat(2, minmax(150px, 1fr)) auto;
    align-items: end;
}

.field-grid label[b-bhs6g6dfym] {
    display: flex;
    flex-direction: column;
    font-size: 0.78rem;
    color: var(--uds-secondary);
    gap: 0.2rem;
}

.field-grid input[type="text"][b-bhs6g6dfym],
.field-grid input[type="date"][b-bhs6g6dfym],
.field-grid input:not([type])[b-bhs6g6dfym] {
    font-family: var(--uds-font-body);
    font-size: 0.85rem;
    color: var(--uds-ink);
    border: 1px solid #c9ccd4;
    border-radius: 4px;
    padding: 0.35rem 0.5rem;
    background: var(--uds-white);
}

.field-grid input:focus[b-bhs6g6dfym] { outline: 2px solid var(--uds-primary); outline-offset: -1px; }

/* The checkbox sits on the baseline with the inputs, not above them. */
.checkline[b-bhs6g6dfym] { flex-direction: row !important; align-items: center; gap: 0.4rem !important; padding-bottom: 0.4rem; }
.checkline input[b-bhs6g6dfym] { margin: 0; }

.actions[b-bhs6g6dfym] { margin-top: 0.9rem; display: flex; gap: 0.5rem; align-items: center; }

.muted[b-bhs6g6dfym] { color: var(--uds-secondary); }
.small[b-bhs6g6dfym] { font-size: 0.75rem; }

/* Wide content scrolls inside its own container — the page body never scrolls sideways. */
.table-scroll[b-bhs6g6dfym] { overflow-x: auto; }

table.labels[b-bhs6g6dfym] {
    width: 100%;
    border-collapse: collapse;
    font-size: 0.8rem;
}

table.labels th[b-bhs6g6dfym] {
    text-align: left;
    background: var(--uds-grey-100, #f2f3f5);
    border-bottom: 1px solid var(--uds-grey-200);
    padding: 0.4rem 0.5rem;
    font-weight: 600;
    white-space: nowrap;
}

table.labels td[b-bhs6g6dfym] {
    border-bottom: 1px solid var(--uds-grey-200);
    padding: 0.4rem 0.5rem;
    vertical-align: top;
}

/* The whole row opens the detail (V15), so say so on hover. */
table.labels tbody tr:not(.detail-row)[b-bhs6g6dfym] { cursor: pointer; }
table.labels tbody tr:not(.detail-row):hover td[b-bhs6g6dfym] { background: #f6f9fd; }

td.links[b-bhs6g6dfym], th.links[b-bhs6g6dfym] { width: 4.5rem; white-space: nowrap; }
td.links a[b-bhs6g6dfym] { color: var(--uds-primary); font-weight: 600; }
td.tracking[b-bhs6g6dfym] { font-family: var(--uds-font-mono, ui-monospace, "Cascadia Mono", Consolas, monospace); }

/* A cancelled row is visible only when asked for (V3) — greyed, never hidden mid-list. */
tr.cancelled td[b-bhs6g6dfym] { color: var(--uds-secondary); background: #fbfbfc; }

.tag[b-bhs6g6dfym] {
    display: inline-block;
    margin-left: 0.35rem;
    padding: 0 0.35rem;
    border-radius: 3px;
    background: #fdf3f2;
    border: 1px solid #f3c5c1;
    color: #7a271a;
    font-size: 0.68rem;
    text-transform: uppercase;
    letter-spacing: 0.04em;
}

/* Sort headings and the detail panel are styled in SortHeader.razor.css and
   LabelDetail.razor.css - scoped CSS does not cross component boundaries. */

tr.detail-row td[b-bhs6g6dfym] { background: #f6f9fd; padding: 0; }

/* ── pager ──────────────────────────────────────────────────────────────── */

.pager[b-bhs6g6dfym] { margin-top: 0.9rem; display: flex; gap: 0.75rem; align-items: center; font-size: 0.82rem; }
.pager .pagesize[b-bhs6g6dfym] { margin-left: auto; display: flex; gap: 0.35rem; align-items: center; color: var(--uds-secondary); }
.pager select[b-bhs6g6dfym] {
    font-size: 0.8rem;
    border: 1px solid #c9ccd4;
    border-radius: 4px;
    padding: 0.15rem 0.3rem;
    background: var(--uds-white);
}

/* ── empty state ────────────────────────────────────────────────────────── */

.empty[b-bhs6g6dfym] { text-align: center; padding: 2.5rem 1.25rem; }
.empty p[b-bhs6g6dfym] { margin: 0 0 0.5rem; }
.empty .btn[b-bhs6g6dfym] { margin-top: 0.5rem; }

/* The reference hint sits UNDER the grid, not inside a label: as a child of the Reference
   label it made that cell taller than the rest, and `align-items: end` then lifted its input
   out of line with the other five fields. */
.hint[b-bhs6g6dfym] { margin: 0.5rem 0 0; }

/* Marks a booking that came from a bulk upload. Deliberately ONE glyph, on the rows that
   have the property — a single booking gets nothing, because two competing icons on every
   row is noise. The badge means ">= 2 bookings share this batch", the same discriminator
   the upload picker uses; batch_id alone would badge thousands of ordinary UPS bookings,
   which each mint a batch of one. */
.bulk-badge[b-bhs6g6dfym] {
    display: inline-block;
    width: 1.05rem;
    height: 1.05rem;
    line-height: 1.05rem;
    margin-right: 0.35rem;
    text-align: center;
    border-radius: 3px;
    background: var(--uds-grey-100, #eef1f5);
    border: 1px solid var(--uds-grey-200);
    color: var(--uds-primary);
    font-size: 0.7rem;
    font-weight: 700;
    cursor: help;
    vertical-align: baseline;
}
/* /Components/Shipping/Whistl.razor.rz.scp.css */
/* Whistl booking page — scoped (the Core CSS is per-page, never global). */

.booking-form[aria-disabled="true"][b-fkk0o3ygla] { opacity: 0.6; pointer-events: none; }

.panel[b-fkk0o3ygla] {
    background: var(--uds-white);
    border: 1px solid var(--uds-grey-200);
    border-radius: 6px;
    padding: 1rem 1.25rem;
    margin-bottom: 1rem;
}

.panel h3[b-fkk0o3ygla] {
    margin: 0 0 0.75rem;
    font-size: 1rem;
}

.field-grid[b-fkk0o3ygla] { display: grid; gap: 0.6rem 1.25rem; }
.field-grid.two[b-fkk0o3ygla] { grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); }
.field-grid.three[b-fkk0o3ygla] { grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); }

.field-grid label[b-fkk0o3ygla], .addr-pick label[b-fkk0o3ygla] {
    display: flex;
    flex-direction: column;
    font-size: 0.78rem;
    color: var(--uds-secondary);
    gap: 0.2rem;
}

.field-grid input[b-fkk0o3ygla], .field-grid select[b-fkk0o3ygla], .addr-pick input[b-fkk0o3ygla], .grid input[b-fkk0o3ygla] {
    font-family: var(--uds-font-body);
    font-size: 0.85rem;
    color: var(--uds-ink);
    border: 1px solid #c9ccd4;
    border-radius: 4px;
    padding: 0.35rem 0.5rem;
    background: var(--uds-white);
}

.field-grid input:focus[b-fkk0o3ygla], .field-grid select:focus[b-fkk0o3ygla], .grid input:focus[b-fkk0o3ygla] {
    outline: 2px solid var(--uds-navy);
    outline-offset: -1px;
}

.upper[b-fkk0o3ygla] { text-transform: uppercase; }
.lower[b-fkk0o3ygla] { text-transform: lowercase; }
.hint[b-fkk0o3ygla] { color: var(--uds-secondary); font-weight: 400; font-size: 0.75rem; }

/* address book picker + HS typeahead */
.addr-pick[b-fkk0o3ygla] { position: relative; max-width: 420px; margin-bottom: 0.75rem; }
.addr-results[b-fkk0o3ygla], .hs-results[b-fkk0o3ygla] {
    position: absolute;
    z-index: 30;
    margin: 0.15rem 0 0;
    padding: 0;
    list-style: none;
    background: var(--uds-white);
    border: 1px solid #c9ccd4;
    border-radius: 4px;
    box-shadow: 0 4px 14px rgba(0, 0, 0, 0.12);
    max-height: 260px;
    overflow-y: auto;
    min-width: 100%;
}

/* HS suggestions render inline under their cell (the row grows), so long lists
   don't fight the table's stacking context. */
.hs-results[b-fkk0o3ygla] {
    position: relative;
    z-index: 30;
    box-shadow: none;
    max-height: 180px;
}

/* Click-away for the pickers: a transparent full-viewport layer under the open
   list (z 25 < list z 30) — clicking anywhere else dismisses without a pick. */
.dropdown-backdrop[b-fkk0o3ygla] {
    position: fixed;
    inset: 0;
    z-index: 25;
    background: transparent;
}

.addr-results button[b-fkk0o3ygla], .hs-results button[b-fkk0o3ygla] {
    display: block;
    width: 100%;
    text-align: left;
    background: none;
    border: 0;
    padding: 0.4rem 0.6rem;
    font-size: 0.8rem;
    color: var(--uds-ink);
    cursor: pointer;
}

.addr-results button:hover[b-fkk0o3ygla], .hs-results button:hover[b-fkk0o3ygla] { background: var(--uds-grey-100); }

/* grids — wide tables scroll inside their own wrapper on narrow screens; the page
   body must never scroll horizontally (PC 06 field report). */
.grid-scroll[b-fkk0o3ygla] { overflow-x: auto; }
.grid[b-fkk0o3ygla] { width: 100%; min-width: 620px; border-collapse: collapse; font-size: 0.82rem; }
.grid th[b-fkk0o3ygla] {
    text-align: left;
    font-weight: 600;
    color: var(--uds-secondary);
    font-size: 0.72rem;
    padding: 0.3rem 0.4rem;
    border-bottom: 1px solid var(--uds-grey-200);
}
.grid td[b-fkk0o3ygla] { padding: 0.25rem 0.4rem; vertical-align: top; }
.grid td input[b-fkk0o3ygla] { width: 100%; min-width: 4.5rem; }
.grid td.calc[b-fkk0o3ygla] { text-align: right; color: var(--uds-secondary); padding-top: 0.55rem; }

.hs-cell[b-fkk0o3ygla] { position: relative; min-width: 10rem; }

.row-add[b-fkk0o3ygla] {
    margin-top: 0.5rem;
    background: none;
    border: 1px dashed #c9ccd4;
    border-radius: 4px;
    padding: 0.3rem 0.75rem;
    font-size: 0.78rem;
    color: var(--uds-navy);
    cursor: pointer;
}
.row-add:hover[b-fkk0o3ygla] { background: var(--uds-grey-100); }

.row-del[b-fkk0o3ygla] {
    background: #ffd5d5;
    border: 0;
    border-radius: 4px;
    padding: 0.3rem 0.6rem;
    font-size: 0.72rem;
    color: #757575;
    cursor: pointer;
}

.totals[b-fkk0o3ygla] {
    display: flex;
    gap: 1.75rem;
    margin-top: 0.75rem;
    font-size: 0.82rem;
    color: var(--uds-secondary);
    flex-wrap: wrap;
}
.totals b[b-fkk0o3ygla] { color: var(--uds-ink); }

/* actions */
.actions[b-fkk0o3ygla] { display: flex; gap: 0.75rem; justify-content: flex-end; margin: 1rem 0 2rem; }
.btn-create[b-fkk0o3ygla], .btn-clear[b-fkk0o3ygla] {
    font-family: var(--uds-font-head);
    font-size: 0.85rem;
    border-radius: 4px;
    padding: 0.5rem 1.75rem;
    cursor: pointer;
}
.btn-create[b-fkk0o3ygla] {
    background: var(--uds-navy);
    color: var(--uds-white);
    border: 1px solid var(--uds-navy-deep);
}
.btn-create:hover:enabled[b-fkk0o3ygla] { background: var(--uds-navy-deep); }
.btn-create:disabled[b-fkk0o3ygla] { opacity: 0.55; cursor: default; }
.btn-clear[b-fkk0o3ygla] {
    background: var(--uds-grey-100);
    color: var(--uds-ink);
    border: 1px solid #c9ccd4;
}

/* notices */
.notice[b-fkk0o3ygla] {
    position: relative;
    border-radius: 6px;
    padding: 0.75rem 2.25rem 0.75rem 1rem;
    margin-bottom: 1rem;
    font-size: 0.85rem;
}
.notice-error[b-fkk0o3ygla] { background: rgba(229, 29, 58, 0.08); border: 1px solid rgba(229, 29, 58, 0.35); }
.notice-info[b-fkk0o3ygla] { background: var(--uds-grey-100); border: 1px solid var(--uds-grey-200); }
.notice ul[b-fkk0o3ygla] { margin: 0.35rem 0 0.2rem 1.25rem; }
.notice-close[b-fkk0o3ygla] {
    position: absolute;
    top: 0.4rem;
    right: 0.5rem;
    background: none;
    border: 0;
    cursor: pointer;
    color: var(--uds-secondary);
}
.carrier-words[b-fkk0o3ygla] {
    margin: 0.5rem 0 0;
    padding: 0.5rem;
    background: #22252e;
    color: #e8e8e8;
    border-radius: 4px;
    font-size: 0.72rem;
    max-height: 260px;
    overflow: auto;
    white-space: pre-wrap;
}

/* success */
.success-panel[b-fkk0o3ygla] {
    background: var(--uds-white);
    border: 1px solid var(--uds-grey-200);
    border-left: 4px solid var(--uds-navy);
    border-radius: 6px;
    padding: 1rem 1.25rem;
    margin-bottom: 1rem;
}
.success-panel h2[b-fkk0o3ygla] { margin: 0 0 0.5rem; font-size: 1.05rem; }
.success-panel dl[b-fkk0o3ygla] { display: grid; grid-template-columns: auto 1fr; gap: 0.25rem 1rem; margin: 0; }
.success-panel dt[b-fkk0o3ygla] { color: var(--uds-secondary); font-size: 0.78rem; padding-top: 0.15rem; }
.success-panel dd[b-fkk0o3ygla] { margin: 0; }
.success-panel code.trk[b-fkk0o3ygla] { margin-right: 0.6rem; }
.success-panel .links a[b-fkk0o3ygla] { margin-right: 1.25rem; font-weight: 600; }
.success-panel .panel-actions[b-fkk0o3ygla] { margin: 0.75rem 0 0.15rem; }
.warning[b-fkk0o3ygla] { color: #8a6d1a; background: #fdf6e3; border-radius: 4px; padding: 0.35rem 0.6rem; font-size: 0.8rem; }

.pill-test[b-fkk0o3ygla] {
    display: inline-block;
    font-family: var(--uds-font-head);
    font-size: 0.7rem;
    font-weight: 600;
    letter-spacing: 0.04em;
    padding: 0.15rem 0.6rem;
    border-radius: 999px;
    background: rgba(229, 29, 58, 0.12);
    color: var(--uds-red);
}

.muted[b-fkk0o3ygla] { color: var(--uds-secondary); font-size: 0.8rem; }

/* create-in-progress indicator + outcome focus (field report, PC 07) */
.busy-note[b-fkk0o3ygla] {
    display: inline-flex;
    align-items: center;
    gap: 0.5rem;
    margin-right: auto;
    font-size: 0.82rem;
    color: var(--uds-secondary);
}
.busy-spinner[b-fkk0o3ygla] {
    width: 16px;
    height: 16px;
    border: 2px solid var(--uds-grey-200);
    border-top-color: var(--uds-navy);
    border-radius: 50%;
    animation: booking-spin-b-fkk0o3ygla 0.8s linear infinite;
}
@keyframes booking-spin-b-fkk0o3ygla { to { transform: rotate(360deg); } }
.success-panel:focus[b-fkk0o3ygla], .notice:focus[b-fkk0o3ygla] { outline: none; }
