/* /Components/Admin/CartLinks/NewCartLinkPage.razor.rz.scp.css */
/* S34's cart link builder. Its fields, inputs, buttons, error and hints are the back office's,
   in AdminLayout.razor.css (TD-056: .field, .plain-input, .primary-button, .secondary-button,
   .is-error, .muted, .mono); this file sets the page's layout and widths, and its text-style
   buttons (.link-button). */

.cart-link-builder section[b-ezydqn0swz] {
    margin-bottom: 1.5rem;
}

.cart-link-builder h2[b-ezydqn0swz] {
    font-size: 1.15rem;
    margin: 0 0 0.5rem;
}

.cart-link-builder .row[b-ezydqn0swz] {
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem;
    align-items: flex-end;
    margin-bottom: 0.5rem;
}

.cart-link-builder .field[b-ezydqn0swz] {
    margin-bottom: 0.5rem;
    max-width: 32rem;
}

.cart-link-builder .choices[b-ezydqn0swz] {
    list-style: none;
    padding: 0;
    margin: 0 0 0.5rem;
}

.cart-link-builder .link-lines[b-ezydqn0swz] {
    border-collapse: collapse;
    width: 100%;
    max-width: 48rem;
}

.cart-link-builder .link-lines th[b-ezydqn0swz],
.cart-link-builder .link-lines td[b-ezydqn0swz] {
    text-align: left;
    padding: 0.35rem 0.5rem;
    border-bottom: 1px solid var(--mud-palette-lines-default);
}

.cart-link-builder .price[b-ezydqn0swz],
.cart-link-builder .quantity[b-ezydqn0swz] {
    width: 6rem;
}

.cart-link-builder .link-button[b-ezydqn0swz] {
    background: none;
    border: 0;
    padding: 0;
    color: var(--mud-palette-primary);
    font: inherit;
    cursor: pointer;
}

.cart-link-builder .link-url[b-ezydqn0swz] {
    word-break: break-all;
}
/* /Components/Admin/Catalog/DiscEntryPage.razor.rz.scp.css */
/* Spec S06's fast disc entry. Fields, inputs and buttons are the back office's, in
   AdminLayout.razor.css (TD-056); this file sets the page's layout and widths. */

.disc-entry[b-o6jh60g6im] {
    border: 1px solid var(--mud-palette-lines-default);
    border-radius: 4px;
    padding: 16px;
    background: var(--mud-palette-surface);
}

.fields[b-o6jh60g6im] {
    display: flex;
    flex-wrap: wrap;
    gap: 12px;
    align-items: flex-start;
}

.field input[b-o6jh60g6im] {
    min-width: 0;
}

.field input[aria-invalid="true"][b-o6jh60g6im] {
    border-color: var(--mud-palette-error);
}

.plastic input[b-o6jh60g6im] { width: 12rem; }
.weight input[b-o6jh60g6im] { width: 8rem; }
.appearance input[b-o6jh60g6im] { width: 12rem; }
.sku input[b-o6jh60g6im] { width: 8rem; font-family: monospace; }
.money input[b-o6jh60g6im] { width: 6.5rem; }
.stock input[b-o6jh60g6im] { width: 5rem; }

.photo[b-o6jh60g6im] {
    min-width: 14rem;
}

.save[b-o6jh60g6im] {
    align-self: flex-end;
}

/* A field's error, under it: the text colour without the weight of .is-error. */
.error[b-o6jh60g6im] {
    color: var(--admin-error-text);
    min-height: 1em;
}

.warning[b-o6jh60g6im] {
    color: var(--admin-warning-text);
    margin: 8px 0 0;
    min-height: 1.2em;
}

.hint[b-o6jh60g6im] {
    color: var(--mud-palette-text-secondary);
    font-size: 0.8125rem;
    margin: 4px 0 0;
}

@media (max-width: 599px) {
    .field[b-o6jh60g6im], .field input[b-o6jh60g6im], .plastic input[b-o6jh60g6im], .appearance input[b-o6jh60g6im], .weight input[b-o6jh60g6im], .sku input[b-o6jh60g6im] {
        width: 100%;
    }

    .money[b-o6jh60g6im], .stock[b-o6jh60g6im] {
        flex: 1 1 30%;
    }

    .money input[b-o6jh60g6im], .stock input[b-o6jh60g6im] {
        width: 100%;
    }

    .save[b-o6jh60g6im], .save-button[b-o6jh60g6im] {
        width: 100%;
    }
}
/* /Components/Admin/Catalog/InventoryCleanupPage.razor.rz.scp.css */
.reports[b-vh98jdkkdg] {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(11rem, 1fr));
    gap: 8px;
}

.report[b-vh98jdkkdg] {
    display: flex;
    flex-direction: column;
    gap: 2px;
    padding: 10px 12px;
    border: 1px solid var(--mud-palette-lines-default);
    border-radius: 4px;
    background: var(--mud-palette-surface);
    color: var(--mud-palette-text-primary);
    text-decoration: none;
}

.report:hover[b-vh98jdkkdg] {
    border-color: var(--mud-palette-primary);
}

.report:focus-visible[b-vh98jdkkdg] {
    outline: 2px solid var(--mud-palette-primary);
    outline-offset: 1px;
}

.report.selected[b-vh98jdkkdg] {
    border-color: var(--mud-palette-primary);
    box-shadow: inset 0 0 0 1px var(--mud-palette-primary);
}

.count[b-vh98jdkkdg] {
    font-size: 1.5rem;
    font-weight: 500;
    line-height: 1.2;
}

.name[b-vh98jdkkdg] {
    font-size: 0.875rem;
    color: var(--mud-palette-text-secondary);
}

.sku[b-vh98jdkkdg] {
    font-family: monospace;
}

.pages[b-vh98jdkkdg] {
    display: flex;
    gap: 8px;
    margin-top: 12px;
}

@media (max-width: 599.98px) {
    .reports[b-vh98jdkkdg] {
        grid-template-columns: 1fr 1fr;
    }
}

/* Spec S41 rule 21: which flight numbers a disc lacks, under its name. */
.missing[b-vh98jdkkdg] {
    color: var(--mud-palette-text-secondary);
    font-size: 0.8125rem;
}

/* Not a report: the products left out of them, so a dashed border sets it apart. */
.report.left-out[b-vh98jdkkdg] {
    border-style: dashed;
}
/* /Components/Admin/Catalog/PriceListPage.razor.rz.scp.css */
/* Spec S52: the price list. Its form's fields in one wrapping row; its tables become one labelled
   card per row on a phone (as EbayLinkingPage does), so no column is hidden past the right edge. */

.price-form .target[b-t2u9qu34cy] {
    border: 0;
    margin: 0 0 12px;
    padding: 0;
}

.price-form .target legend[b-t2u9qu34cy] {
    font-size: 0.875rem;
    margin-bottom: 4px;
}

.choice-line[b-t2u9qu34cy] {
    display: block;
    margin-bottom: 4px;
}

.brand-field[b-t2u9qu34cy] {
    max-width: 320px;
}

.product-search[b-t2u9qu34cy] {
    max-width: 420px;
    margin-bottom: 12px;
}

.amounts[b-t2u9qu34cy] {
    display: flex;
    flex-wrap: wrap;
    gap: 12px;
    align-items: flex-end;
    margin: 8px 0;
}

.amounts .plastic[b-t2u9qu34cy] {
    width: 180px;
}

.amounts .money[b-t2u9qu34cy] {
    width: 110px;
}

.amounts .note[b-t2u9qu34cy] {
    flex: 1 1 220px;
    min-width: 0;
}

.actions[b-t2u9qu34cy] {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin-top: 12px;
}

.filters[b-t2u9qu34cy] {
    display: flex;
    flex-wrap: wrap;
    gap: 8px 16px;
    align-items: flex-end;
    margin-bottom: 8px;
}

.filters .search[b-t2u9qu34cy] {
    width: 260px;
    max-width: 100%;
}

.chip[b-t2u9qu34cy] {
    border: 1px solid var(--mud-palette-lines-default);
    border-radius: 16px;
    padding: 2px 10px;
    font-size: 0.875rem;
}

.chip a[b-t2u9qu34cy] {
    margin-left: 4px;
}

.table-wrap[b-t2u9qu34cy] {
    overflow-x: auto;
}

.price-table[b-t2u9qu34cy] {
    border-collapse: collapse;
    width: 100%;
    font-size: 0.875rem;
}

.price-table th[b-t2u9qu34cy],
.price-table td[b-t2u9qu34cy] {
    border-bottom: 1px solid var(--mud-palette-table-lines);
    padding: 6px 8px;
    vertical-align: top;
}

.price-table th:not(.num)[b-t2u9qu34cy] {
    text-align: start;
}

.price-table th[b-t2u9qu34cy] {
    font-weight: 500;
    color: var(--mud-palette-text-secondary);
}

.price-table tr.highlight td[b-t2u9qu34cy] {
    background: var(--mud-palette-action-default-hover);
}

.price-table .below-map-list ul[b-t2u9qu34cy] {
    margin: 0;
    padding-left: 20px;
}

.link-button[b-t2u9qu34cy] {
    background: none;
    border: 0;
    padding: 0 4px;
    color: var(--mud-palette-primary);
    font: inherit;
    cursor: pointer;
}

.link-button.is-error[b-t2u9qu34cy] {
    color: var(--admin-error-text);
}

.link-button.is-warning[b-t2u9qu34cy] {
    color: var(--admin-warning-text);
}

@media (max-width: 599.98px) {
    .price-table thead[b-t2u9qu34cy] {
        display: none;
    }

    .price-table[b-t2u9qu34cy],
    .price-table tbody[b-t2u9qu34cy] {
        display: block;
        width: 100%;
    }

    /* Two labelled figures a line, the name and the actions across the whole card. */
    .price-table tr[b-t2u9qu34cy] {
        display: grid;
        grid-template-columns: repeat(2, minmax(0, 1fr));
        border-bottom: 1px solid var(--mud-palette-table-lines);
        padding: 6px 0;
    }

    .price-table td[b-t2u9qu34cy] {
        display: block;
        border-bottom: none;
        padding: 2px 8px;
        text-align: start;
    }

    .price-table td:first-child[b-t2u9qu34cy],
    .price-table td:last-child[b-t2u9qu34cy],
    .price-table td.wide[b-t2u9qu34cy],
    .price-table .below-map-list td[b-t2u9qu34cy] {
        grid-column: 1 / -1;
    }

    .price-table td:empty[b-t2u9qu34cy] {
        display: none;
    }

    .price-table td[data-label][b-t2u9qu34cy]::before {
        content: attr(data-label);
        display: block;
        font-size: 0.75rem;
        color: var(--mud-palette-text-secondary);
    }
}
/* /Components/Admin/Catalog/RemoveStockPage.razor.rz.scp.css */
/* Spec S26. Fields, inputs, buttons, choices, messages and .mono and .muted are the back
   office's, in AdminLayout.razor.css (TD-056); this file sets the page's layout and widths. */

.lookup[b-qcmcd60wyg] {
    display: flex;
    flex-wrap: wrap;
    gap: 12px;
    align-items: flex-end;
}

.field input[b-qcmcd60wyg], .field select[b-qcmcd60wyg] {
    min-width: 0;
}

.sku input[b-qcmcd60wyg] {
    width: 16rem;
    font-family: monospace;
    font-size: 1.125rem;
}

.quantity input[b-qcmcd60wyg] { width: 6rem; }
.reason select[b-qcmcd60wyg] { width: 11rem; }
.note input[b-qcmcd60wyg] { width: 18rem; }

.actions[b-qcmcd60wyg] {
    flex-direction: row;
    align-self: flex-end;
    gap: 8px;
}

.remove-button[b-qcmcd60wyg] {
    padding: 10px 24px;
}

.undo-button[b-qcmcd60wyg] {
    padding: 4px 10px;
    border-color: var(--mud-palette-error);
    color: var(--admin-error-text);
}

.message[b-qcmcd60wyg] {
    margin: 12px 0;
}

.check[b-qcmcd60wyg], .choices[b-qcmcd60wyg] {
    border: 1px solid var(--mud-palette-lines-default);
    border-radius: 4px;
    padding: 16px;
    background: var(--mud-palette-surface);
}

.check .fields[b-qcmcd60wyg] {
    display: flex;
    flex-wrap: wrap;
    gap: 12px;
    margin-top: 16px;
    align-items: flex-start;
}

.choices ul[b-qcmcd60wyg] {
    list-style: none;
    padding: 0;
    margin: 8px 0 16px;
    display: flex;
    flex-direction: column;
    gap: 8px;
}

.narrow[b-qcmcd60wyg] {
    display: none;
    font-size: 0.8125rem;
}

tr.undone td[b-qcmcd60wyg] {
    color: var(--mud-palette-text-secondary);
    text-decoration: line-through;
}

tr.undone td:last-child[b-qcmcd60wyg] {
    text-decoration: none;
}

@media (max-width: 599px) {
    .sku input[b-qcmcd60wyg], .note input[b-qcmcd60wyg], .reason select[b-qcmcd60wyg], .field[b-qcmcd60wyg], .actions[b-qcmcd60wyg] {
        width: 100%;
    }

    .actions button[b-qcmcd60wyg] {
        flex: 1;
    }
    .wide[b-qcmcd60wyg] {
        display: none;
    }

    .narrow[b-qcmcd60wyg] {
        display: block;
    }
}
/* /Components/Admin/Catalog/VariantGrid.razor.rz.scp.css */
.variant-grid[b-a39e82nmh5] {
    overflow-x: auto;
}

.variant-grid[b-a39e82nmh5]  .sku {
    font-family: monospace;
}

.variant-grid[b-a39e82nmh5]  .actions {
    white-space: nowrap;
}

.variant-grid[b-a39e82nmh5]  img {
    object-fit: contain;
    background: var(--mud-palette-background-gray);
}

.variant-grid[b-a39e82nmh5]  tr.highlight td {
    background: color-mix(in srgb, var(--mud-palette-warning) 16%, transparent);
    font-weight: 600;
}
/* /Components/Admin/Customers/CustomerPage.razor.rz.scp.css */
.portal-pagination[b-a77noy1ns8], .portal-linked-row[b-a77noy1ns8] { display:flex;justify-content:space-between;align-items:center;gap:1rem;flex-wrap:wrap; }
.portal-summary[b-a77noy1ns8] { display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem; }
[b-a77noy1ns8] .portal-fields, [b-a77noy1ns8] .merge-comparison { display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem; }
.portal-pagination[b-a77noy1ns8] { justify-content:center;margin:1.5rem 0; }
.portal-linked-row[b-a77noy1ns8] { padding:.75rem 0;border-bottom:1px solid var(--mud-palette-lines-default); }
[b-a77noy1ns8] .portal-note-text { white-space:pre-wrap; }
[b-a77noy1ns8] .portal-actions { display:flex;gap:.5rem;flex-wrap:wrap; }
[b-a77noy1ns8] .mud-table-container { overflow-x:auto; }
@media(max-width:600px) { .portal-summary[b-a77noy1ns8] { gap:.5rem; } .portal-summary[b-a77noy1ns8]  .mud-typography-h5 { font-size:1.2rem; } [b-a77noy1ns8] .portal-fields, [b-a77noy1ns8] .merge-comparison { grid-template-columns:1fr; } }

.portal-section-picker[b-a77noy1ns8] { display:none; }
@media(max-width:600px) {
    .portal-section-picker[b-a77noy1ns8] { display:flex;margin-top:1rem; }
    .portal-section-picker > select[b-a77noy1ns8] { width:100%; }
    [b-a77noy1ns8] .mud-tabs-tabbar { display:none; }
}
/* /Components/Admin/Customers/CustomersPage.razor.rz.scp.css */
.portal-fields[b-qly0ek21uo] { display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem; }
.portal-filters[b-qly0ek21uo], .portal-pagination[b-qly0ek21uo] { display:flex;align-items:center;gap:1rem;flex-wrap:wrap; }
.portal-pagination[b-qly0ek21uo] { justify-content:center;margin:1.5rem 0; }
.customer-list[b-qly0ek21uo] { display:grid;gap:.6rem; }
.customer-row[b-qly0ek21uo] { display:flex;align-items:center;gap:1rem;padding:1rem;background:var(--mud-palette-surface);border:1px solid var(--mud-palette-lines-default);border-radius:8px;color:inherit;text-decoration:none; }
.customer-row:hover[b-qly0ek21uo] { border-color:var(--mud-palette-primary); }
.customer-row > div[b-qly0ek21uo] { flex:1;min-width:0; }
.customer-row span[b-qly0ek21uo],.customer-row strong[b-qly0ek21uo] { display:block;overflow-wrap:anywhere; }
.customer-stats[b-qly0ek21uo] { text-align:right; }
@media(max-width:600px) { .portal-fields[b-qly0ek21uo] { grid-template-columns:1fr; } .customer-row[b-qly0ek21uo] { flex-wrap:wrap; } .customer-stats[b-qly0ek21uo] { text-align:left;flex-basis:100% !important; } }
/* /Components/Admin/Dashboard.razor.rz.scp.css */
/* Spec S40 part B. Colours are MudBlazor's palette (spec S25). */
.dashboard-section[b-1c4xq7nfac] {
    margin-top: 24px;
}

/* Owner, 15 October 2026: the page's sections take three quarters of the width, and Needs attention
   a column down the right. Below 960px (MudBlazor's md) they stack, Needs attention first. */
.dashboard[b-1c4xq7nfac] {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
}

.dashboard-main[b-1c4xq7nfac] {
    min-width: 0;
}

@media (min-width: 960px) {
    .dashboard[b-1c4xq7nfac] {
        grid-template-columns: minmax(0, 3fr) minmax(280px, 1fr);
        grid-template-areas: "main attention";
        column-gap: 32px;
        align-items: start;
    }

    .dashboard-main[b-1c4xq7nfac] {
        grid-area: main;
    }

    .dashboard-attention[b-1c4xq7nfac] {
        grid-area: attention;
        padding-left: 24px;
        border-left: 1px solid var(--mud-palette-lines-default);
    }
}

.attention-list[b-1c4xq7nfac] {
    list-style: none;
    margin: 8px 0 0;
    padding: 0;
}

.attention-list li[b-1c4xq7nfac] {
    display: flex;
    align-items: flex-start;
    gap: 8px;
    padding: 4px 0;
}

.attention-list li.attention-failed[b-1c4xq7nfac] {
    color: var(--mud-palette-text-secondary);
}

.attention-body[b-1c4xq7nfac] {
    min-width: 0;
}

th.channel[b-1c4xq7nfac] {
    padding-left: 32px;
    font-weight: 400;
}

th[scope=row][b-1c4xq7nfac] {
    text-align: left;
}

/* Spec S43 rule 13: an overdue purchase order's date in the palette's error colour. */
.overdue[b-1c4xq7nfac] {
    color: var(--mud-palette-error);
    font-weight: 500;
}

/* The sales chart: a line per channel, each channel a fixed colour whatever channels are shown,
   from the back office's series colours (wwwroot/admin/chart-colours.css, which has each one's
   dark step). Text stays in the text colours; the coloured key beside it names the channel. */
.sales-chart[b-1c4xq7nfac] {
    --sales-web: var(--tf-series-1);
    --sales-pos: var(--tf-series-2);
    --sales-manual: var(--tf-series-3);
    --sales-ebay: var(--tf-series-4);
    --sales-amazon: var(--tf-series-5);
    max-width: 720px;
}

.web[b-1c4xq7nfac] { --series: var(--sales-web); }
.pos[b-1c4xq7nfac] { --series: var(--sales-pos); }
.manual[b-1c4xq7nfac] { --series: var(--sales-manual); }
.ebay[b-1c4xq7nfac] { --series: var(--sales-ebay); }
.amazon[b-1c4xq7nfac] { --series: var(--sales-amazon); }

.sales-legend[b-1c4xq7nfac] {
    list-style: none;
    margin: 0 0 8px;
    padding: 0;
    display: flex;
    flex-wrap: wrap;
    column-gap: 20px;
    row-gap: 4px;
    font-size: 0.875rem;
}

.sales-legend li[b-1c4xq7nfac] {
    display: flex;
    align-items: center;
    gap: 6px;
}

.sales-legend-total[b-1c4xq7nfac] {
    color: var(--mud-palette-text-secondary);
    font-variant-numeric: tabular-nums;
}

/* The legend's key is a short line, as the marks are lines. */
.sales-key[b-1c4xq7nfac],
.sales-tip-key[b-1c4xq7nfac] {
    display: inline-block;
    width: 14px;
    height: 2px;
    border-radius: 1px;
    background: var(--series);
    flex: none;
}

/* The money labels in a column of their own, the plot beside them, the dates under it. */
.sales-plot[b-1c4xq7nfac] {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr);
    grid-template-rows: 180px auto;
    column-gap: 8px;
    /* Room for a dot on the top line and on today, at the right edge. */
    padding: 6px 6px 0 0;
}

.sales-y[b-1c4xq7nfac] {
    position: relative;
    min-width: 2.5rem;
}

.sales-y span[b-1c4xq7nfac],
.sales-x span[b-1c4xq7nfac] {
    position: absolute;
    font-size: 0.75rem;
    color: var(--mud-palette-text-secondary);
    font-variant-numeric: tabular-nums;
    white-space: nowrap;
}

.sales-y span[b-1c4xq7nfac] {
    right: 0;
    transform: translateY(-50%);
}

/* The plot is a size container, so a readout can be held to half its width (cqi) below. Containment
   makes it a stacking context too; z-index 1 keeps a readout above the dates under the plot. */
.sales-area[b-1c4xq7nfac] {
    position: relative;
    container-type: inline-size;
    z-index: 1;
}

.sales-area svg[b-1c4xq7nfac] {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    overflow: visible;
}

.sales-grid[b-1c4xq7nfac] {
    stroke: var(--mud-palette-lines-default);
    stroke-width: 1;
    shape-rendering: crispEdges;
}

.sales-base[b-1c4xq7nfac] {
    stroke: var(--mud-palette-gray-light);
    stroke-width: 1;
    shape-rendering: crispEdges;
}

.sales-line[b-1c4xq7nfac] {
    fill: none;
    stroke: var(--series);
    stroke-width: 2;
    stroke-linejoin: round;
    stroke-linecap: round;
}

/* A day a channel sold: 8px, ringed in the surface colour so it stands clear of the other lines. */
.sales-dot[b-1c4xq7nfac] {
    position: absolute;
    width: 8px;
    height: 8px;
    border-radius: 50%;
    background: var(--series);
    box-shadow: 0 0 0 2px var(--mud-palette-surface);
    transform: translate(-50%, -50%);
    pointer-events: none;
}

.sales-x[b-1c4xq7nfac] {
    grid-column: 2;
    position: relative;
    height: 1.5rem;
}

.sales-x span[b-1c4xq7nfac] {
    top: 4px;
    transform: translateX(-50%);
}

.sales-x span:first-child[b-1c4xq7nfac] {
    transform: translateX(-100%);
}

/* Each day's column: a hairline crosshair and the readout of every channel while hovered (on a
   phone, while tapped). A readout opens away from the middle: the first half's to the right of
   the crosshair, the second half's (.late) to the left, so each has at least half the plot's
   width on its side. It is held to that half and wraps, so it never runs past the plot's box and
   a phone page never scrolls sideways. A day's column is only a few pixels wide, so the readout
   takes its content's width (max-content) rather than its column's. */
.sales-day[b-1c4xq7nfac] {
    position: absolute;
    top: 0;
    bottom: 0;
    z-index: 1;
}

.sales-day:hover[b-1c4xq7nfac]::before {
    content: "";
    position: absolute;
    top: 0;
    bottom: 0;
    left: 50%;
    border-left: 1px solid var(--mud-palette-text-secondary);
}

.sales-tip[b-1c4xq7nfac] {
    display: none;
    position: absolute;
    top: 0;
    left: calc(50% + 8px);
    z-index: 2;
    padding: 6px 10px;
    border-radius: 6px;
    background: var(--mud-palette-surface);
    border: 1px solid var(--mud-palette-lines-default);
    box-shadow: var(--mud-elevation-4);
    font-size: 0.8125rem;
    width: max-content;
    max-width: calc(50cqi - 8px);
    box-sizing: border-box;
    pointer-events: none;
}

.sales-day.late .sales-tip[b-1c4xq7nfac] {
    left: auto;
    right: calc(50% + 8px);
}

.sales-day:hover .sales-tip[b-1c4xq7nfac] {
    display: block;
}

.sales-tip-day[b-1c4xq7nfac] {
    color: var(--mud-palette-text-secondary);
    margin-bottom: 2px;
    white-space: nowrap;
}

.sales-tip-row[b-1c4xq7nfac] {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 0 6px;
    color: var(--mud-palette-text-secondary);
}

.sales-tip-row strong[b-1c4xq7nfac] {
    color: var(--mud-palette-text-primary);
    font-weight: 600;
    font-variant-numeric: tabular-nums;
    white-space: nowrap;
}

.figures-table-view summary[b-1c4xq7nfac] {
    cursor: pointer;
    font-size: 0.875rem;
    color: var(--mud-palette-text-secondary);
}

@media (max-width: 600px) {
    .sales-plot[b-1c4xq7nfac] {
        grid-template-rows: 160px auto;
    }
}

/* Spec S09 rule 3's failed sends, under their item in the narrow column. */
.failed-sends[b-1c4xq7nfac] {
    margin-top: 4px;
    font-size: 0.875rem;
}

.failed-send + .failed-send[b-1c4xq7nfac] {
    margin-top: 6px;
}
/* /Components/Admin/Ebay/EbayConversationPage.razor.rz.scp.css */
/* Spec S48 rule 6: a message is plain text; its line breaks are kept by CSS, never by markup. */
.ebay-message-body[b-fzcmjy4uh1] {
    white-space: pre-wrap;
    overflow-wrap: anywhere;
    margin-top: 4px;
}

/* Rule 12: an attachment eBay holds, opened in a new tab; styled as the back office's links are. */
.ebay-attachment-link[b-fzcmjy4uh1] {
    color: var(--mud-palette-primary);
}
/* /Components/Admin/Ebay/EbayLinkingPage.razor.rz.scp.css */
/* Spec S20 rule 9: a listing's variations beside their variants. Six columns on a desktop; on a
   phone each variation is a card of labelled lines, so the variant and the store's figures are
   not hidden past the right edge of the table. */
.ebay-variations[b-kuzt8tlhxu]  td.variant {
    min-width: 240px;
    width: 50%;
}

/* The select shows its choice on one line (white-space: nowrap), and that whole line counted as
   the cell's narrowest width even though it is clipped. Imported discs have choices like "E1360 /
   Fission / 158 g / Neon/Blue / Fission / 158g - Neon/Blue", which held the variant column that
   wide and pushed Stock and Store price past the card's right edge on a desktop. With no width of
   its own the line fits the column it is given (half the table, above), and a longer choice ends
   in an ellipsis; its menu still shows it whole. */
.ebay-variations[b-kuzt8tlhxu]  td.variant .mud-select-input .mud-input-slot {
    width: 0;
    flex-grow: 1;
}

@media (max-width: 599.98px) {
    .ebay-variations[b-kuzt8tlhxu]  thead {
        display: none;
    }

    .ebay-variations[b-kuzt8tlhxu]  table,
    .ebay-variations[b-kuzt8tlhxu]  tbody,
    .ebay-variations[b-kuzt8tlhxu]  tr,
    .ebay-variations[b-kuzt8tlhxu]  td {
        display: block;
        width: 100%;
    }

    .ebay-variations[b-kuzt8tlhxu]  tr {
        border-bottom: 1px solid var(--mud-palette-table-lines);
        padding: 8px 0;
    }

    .ebay-variations[b-kuzt8tlhxu]  td {
        border-bottom: none;
        padding: 2px 16px;
    }

    .ebay-variations[b-kuzt8tlhxu]  td.variant {
        min-width: 0;
        width: 100%;
    }

    .ebay-variations[b-kuzt8tlhxu]  td:empty {
        display: none;
    }

    .ebay-variations[b-kuzt8tlhxu]  td::before {
        content: attr(data-label);
        display: block;
        font-size: 0.75rem;
        color: var(--mud-palette-text-secondary);
    }
}

/* The open listing's panel, in a row of its own under the listing's row: no hover, and the panel's own
   border marks it. */
.ebay-listing-row > td[b-kuzt8tlhxu] {
    padding: 4px 8px 12px;
}
/* /Components/Admin/EmailTemplatesPage.razor.rz.scp.css */
.template-workspace[b-576xw57rua] { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 20px; }
iframe[b-576xw57rua] { display: block; width: 100%; height: 620px; margin-top: 12px; border: 1px solid var(--mud-palette-lines-default); background: white; }
code[b-576xw57rua] { font-size: 12px; }
@media (max-width: 999px) { .template-workspace[b-576xw57rua] { grid-template-columns: minmax(0, 1fr); } }
/* /Components/Admin/Help/FeaturesPage.razor.rz.scp.css */
.features-page[b-l9ymbm8znw] { max-width: 1220px; margin: 0 auto; padding: .5rem 0 2rem; }
.feature-meta[b-l9ymbm8znw], .contributors[b-l9ymbm8znw], .merge-date[b-l9ymbm8znw], .footnote[b-l9ymbm8znw], .historical-note[b-l9ymbm8znw] { color: var(--mud-palette-text-secondary); }
.intro[b-l9ymbm8znw] { font-size: 1.05rem; color: var(--mud-palette-text-secondary); max-width: 46rem; }
.inventory-summary[b-l9ymbm8znw] { display: flex; gap: 1.5rem; flex-wrap: wrap; align-items: center; margin: 1.2rem 0 1.4rem; font-size: .9rem; }
.inventory-summary strong[b-l9ymbm8znw] { font-size: 1.2rem; margin-right: .25rem; }
a[b-l9ymbm8znw] { color: var(--mud-palette-primary); }
button[b-l9ymbm8znw], input[b-l9ymbm8znw], select[b-l9ymbm8znw] { font: inherit; color: var(--mud-palette-text-primary); }
button[b-l9ymbm8znw] { cursor: pointer; }
button:focus-visible[b-l9ymbm8znw], input:focus-visible[b-l9ymbm8znw], select:focus-visible[b-l9ymbm8znw], summary:focus-visible[b-l9ymbm8znw], a:focus-visible[b-l9ymbm8znw] { outline: 2px solid var(--mud-palette-primary); outline-offset: 3px; }
.view-switch[b-l9ymbm8znw] { display: flex; gap: 1.75rem; border-bottom: 1px solid var(--mud-palette-lines-default); margin-bottom: 1.4rem; }
.view-switch button[b-l9ymbm8znw] { background: transparent; border: 0; padding: .65rem 0; border-bottom: 3px solid transparent; font-weight: 600; color: var(--mud-palette-text-secondary); }
.view-switch button[aria-pressed=true][b-l9ymbm8znw] { border-bottom-color: var(--mud-palette-primary); color: var(--mud-palette-text-primary); }
.filters[b-l9ymbm8znw] { display: flex; align-items: end; gap: .8rem; flex-wrap: wrap; }
.filters label[b-l9ymbm8znw] { display: block; font-size: .85rem; margin-bottom: .35rem; font-weight: 600; }
.search-field[b-l9ymbm8znw] { flex: 1; min-width: 230px; }
.filters input[b-l9ymbm8znw], .filters select[b-l9ymbm8znw] { width: 100%; height: 42px; border: 1px solid var(--mud-palette-lines-inputs); border-radius: 5px; background: var(--mud-palette-surface); padding: .5rem .65rem; }
.filters select[b-l9ymbm8znw] { max-width: 240px; }
.clear[b-l9ymbm8znw], .load-more[b-l9ymbm8znw] { background: var(--mud-palette-surface); border: 1px solid var(--mud-palette-lines-default); border-radius: 5px; min-height: 42px; padding: .5rem .8rem; }
.result-count[b-l9ymbm8znw] { margin: 1rem 0 .7rem; font-size: .85rem; color: var(--mud-palette-text-secondary); }
.feature-list[b-l9ymbm8znw] { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: 2rem; }
.feature[b-l9ymbm8znw] { padding: 1.1rem 0 1.2rem; border-top: 1px solid var(--mud-palette-lines-default); min-width: 0; }
.feature-meta[b-l9ymbm8znw] { display: flex; align-items: center; gap: .8rem; justify-content: space-between; font-size: .78rem; }
.status[b-l9ymbm8znw] { white-space: nowrap; padding: .2rem .5rem; border-radius: 4px; background: var(--mud-palette-background-grey); color: var(--mud-palette-text-primary); }
.status[data-status="Setup required"][b-l9ymbm8znw] { border-left: 3px solid var(--mud-palette-warning); }
.status[data-status="Limited"][b-l9ymbm8znw] { border-left: 3px solid var(--mud-palette-error); }
.feature h2[b-l9ymbm8znw] { font-size: 1.05rem; line-height: 1.3; font-weight: 600; margin: .55rem 0 .4rem; }
.feature p[b-l9ymbm8znw] { font-size: .9rem; line-height: 1.6; margin: 0 0 .65rem; }
.feature-links[b-l9ymbm8znw] { display: flex; flex-wrap: wrap; gap: .7rem; font-size: .8rem; align-items: center; }
.feature-links span[b-l9ymbm8znw] { color: var(--mud-palette-text-secondary); }
.empty[b-l9ymbm8znw] { padding: 2rem 0; }
.empty h2[b-l9ymbm8znw] { font-size: 1.15rem; font-weight: 600; margin-bottom: .4rem; }
.merge-list[b-l9ymbm8znw] { list-style: none; padding: 0; }
.merge-list > li[b-l9ymbm8znw] { border-top: 1px solid var(--mud-palette-lines-default); padding: 1.2rem 0; }
.merge-date[b-l9ymbm8znw] { font-size: .8rem; }
.merge-list h2[b-l9ymbm8znw] { font-size: 1.05rem; font-weight: 600; margin: .35rem 0; overflow-wrap: anywhere; }
.contributors[b-l9ymbm8znw], .historical-note[b-l9ymbm8znw] { font-size: .8rem; line-height: 1.5; }
.historical-note[b-l9ymbm8znw] { margin-top: .4rem; }
.change-notes[b-l9ymbm8znw], .pending-notes ul[b-l9ymbm8znw] { padding-left: 1.25rem; margin: .6rem 0 0; font-size: .9rem; line-height: 1.6; }
.footnote[b-l9ymbm8znw] { font-size: .8rem; line-height: 1.6; margin-top: 1.4rem; }
.maintenance-guide[b-l9ymbm8znw], .pending-notes[b-l9ymbm8znw] { border: 1px solid var(--mud-palette-lines-default); border-radius: 5px; padding: .9rem 1rem; }
.maintenance-guide[b-l9ymbm8znw] { margin-top: 1.6rem; }
summary[b-l9ymbm8znw] { cursor: pointer; font-size: .9rem; font-weight: 600; }
.maintenance-guide p[b-l9ymbm8znw], .maintenance-guide a[b-l9ymbm8znw], .pending-notes p[b-l9ymbm8znw] { font-size: .85rem; line-height: 1.65; margin-top: .75rem; }
.pending-notes[b-l9ymbm8znw] { margin-top: 1rem; }
.pending-notes h2[b-l9ymbm8znw] { font-size: .95rem; font-weight: 600; margin-top: 1rem; }
@media (max-width: 700px) {
    .feature-list[b-l9ymbm8znw] { grid-template-columns: 1fr; }
    .filters > div:not(.search-field)[b-l9ymbm8znw] { flex: 1; min-width: 130px; }
    .search-field[b-l9ymbm8znw] { flex-basis: 100%; }
    .filters select[b-l9ymbm8znw] { max-width: none; }
    .inventory-summary[b-l9ymbm8znw] { gap: .6rem 1rem; }
    .inventory-summary a[b-l9ymbm8znw] { flex-basis: 100%; }
    .view-switch[b-l9ymbm8znw] { gap: 1.3rem; }
    .feature-meta[b-l9ymbm8znw] { align-items: baseline; }
}
/* /Components/Admin/Help/HelpPage.razor.rz.scp.css */
.help-page[b-w0udpv37lz] {
    color: var(--mud-palette-text-primary);
}

.intro[b-w0udpv37lz] {
    max-width: 48rem;
    margin: 0 0 1.5rem;
    color: var(--mud-palette-text-secondary);
    line-height: 1.6;
}

.help-search[b-w0udpv37lz] {
    max-width: 44rem;
    margin-bottom: 1.25rem;
}

.help-search label[b-w0udpv37lz] {
    display: block;
    margin-bottom: 0.5rem;
    font-weight: 600;
}

.search-controls[b-w0udpv37lz] {
    display: flex;
    align-items: center;
    gap: 0.75rem;
}

.search-controls input[b-w0udpv37lz] {
    min-width: 0;
    width: 100%;
    padding: 0.75rem;
    border: 1px solid var(--mud-palette-lines-inputs);
    border-radius: var(--mud-default-borderradius);
    background: var(--mud-palette-surface);
    color: var(--mud-palette-text-primary);
    font: inherit;
}

.help-categories[b-w0udpv37lz] {
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem;
}

.help-categories button[b-w0udpv37lz], .clear-search[b-w0udpv37lz] {
    padding: 0.625rem 0.75rem;
    border: 1px solid var(--mud-palette-lines-default);
    border-radius: var(--mud-default-borderradius);
    background: var(--mud-palette-surface);
    color: var(--mud-palette-text-primary);
    font: inherit;
    cursor: pointer;
}

.help-categories button[aria-pressed="true"][b-w0udpv37lz] {
    border-color: var(--mud-palette-primary);
    color: var(--mud-palette-text-primary);
    background: var(--mud-palette-action-default-hover);
    font-weight: 600;
}

.result-count[b-w0udpv37lz] {
    margin: 1.25rem 0;
    color: var(--mud-palette-text-secondary);
    font-size: 0.875rem;
}

.guide-index[b-w0udpv37lz] {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 2rem 3rem;
}

.topic-section h2[b-w0udpv37lz], .related h2[b-w0udpv37lz], .empty-results h2[b-w0udpv37lz] {
    margin: 0 0 0.5rem;
    font-size: 1.125rem;
    font-weight: 600;
}

.topic-section ul[b-w0udpv37lz], .related ul[b-w0udpv37lz] {
    margin: 0;
    padding: 0;
    list-style: none;
}

.topic-section li[b-w0udpv37lz] {
    border-bottom: 1px solid var(--mud-palette-lines-default);
}

.topic-section a[b-w0udpv37lz] {
    display: block;
    padding: 1rem 0;
}

.guide-title[b-w0udpv37lz] {
    display: block;
    color: var(--mud-palette-text-primary);
    font-weight: 600;
    line-height: 1.45;
}

.guide-summary[b-w0udpv37lz] {
    display: block;
    margin-top: 0.25rem;
    color: var(--mud-palette-text-secondary);
    font-size: 0.875rem;
    line-height: 1.5;
}

.owner-label[b-w0udpv37lz] {
    display: inline-block;
    margin-left: 0.5rem;
    color: var(--mud-palette-text-secondary);
    font-size: 0.75rem;
    font-weight: 400;
    white-space: nowrap;
}

.help-article[b-w0udpv37lz] {
    max-width: 48rem;
}

.eyebrow[b-w0udpv37lz] {
    margin-bottom: 0.5rem;
    color: var(--mud-palette-text-secondary);
    font-size: 0.875rem;
}

.screen-links[b-w0udpv37lz] {
    display: flex;
    flex-wrap: wrap;
    gap: 0.75rem 1.5rem;
    padding: 1rem 0;
    border-top: 1px solid var(--mud-palette-lines-default);
    border-bottom: 1px solid var(--mud-palette-lines-default);
}

.steps[b-w0udpv37lz] {
    margin: 2rem 0;
    padding-left: 1.75rem;
}

.steps li[b-w0udpv37lz] {
    padding-left: 0.5rem;
    margin-bottom: 1.75rem;
}

.steps li[b-w0udpv37lz]::marker {
    color: var(--mud-palette-text-secondary);
    font-weight: 600;
}

.steps h2[b-w0udpv37lz] {
    margin: 0 0 0.5rem;
    font-size: 1.125rem;
    font-weight: 600;
}

.steps p[b-w0udpv37lz], .guide-note p[b-w0udpv37lz], .empty-results p[b-w0udpv37lz] {
    margin: 0;
    line-height: 1.7;
}

.guide-note[b-w0udpv37lz] {
    padding: 1rem 1.25rem;
    border-left: 3px solid var(--mud-palette-info);
    background: var(--mud-palette-background-gray);
}

.guide-note strong[b-w0udpv37lz] {
    display: block;
    margin-bottom: 0.375rem;
}

.related[b-w0udpv37lz] {
    margin-top: 2rem;
    padding-top: 1.25rem;
    border-top: 1px solid var(--mud-palette-lines-default);
}

.related li[b-w0udpv37lz] {
    margin-top: 0.75rem;
}

.help-page a[b-w0udpv37lz] {
    color: var(--mud-palette-text-primary);
    overflow-wrap: anywhere;
}

.topic-section a:hover[b-w0udpv37lz] {
    background: var(--mud-palette-action-default-hover);
}

button:focus-visible[b-w0udpv37lz], input:focus-visible[b-w0udpv37lz], a:focus-visible[b-w0udpv37lz] {
    outline: 2px solid var(--mud-palette-primary);
    outline-offset: 3px;
}

@media (max-width: 700px) {
    .guide-index[b-w0udpv37lz] { grid-template-columns: minmax(0, 1fr); gap: 2rem; }
    .help-categories button[b-w0udpv37lz] { padding: 0.75rem; }
}

.guide-index.search-results[b-w0udpv37lz] { display: block; }
.search-results ul[b-w0udpv37lz] { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: 2rem; }
.guide-topic[b-w0udpv37lz] { display: block; font-size: .8rem; color: var(--mud-palette-text-secondary); margin-bottom: .2rem; }
@media (max-width: 700px) { .search-results ul[b-w0udpv37lz] { grid-template-columns: minmax(0, 1fr); } }
/* /Components/Admin/Inventory/CameraReader.razor.rz.scp.css */
.camera-button[b-y1618bgg1r] {
    font: inherit;
    border-radius: 4px;
    cursor: pointer;
    padding: 9px 16px;
    border: 1px solid var(--mud-palette-lines-inputs);
    background: var(--mud-palette-surface);
    color: var(--mud-palette-text-primary);
}

.camera-button:focus-visible[b-y1618bgg1r] {
    outline: 3px solid var(--mud-palette-primary-darken);
    outline-offset: 2px;
}

.camera-button[aria-pressed="true"][b-y1618bgg1r] {
    border-color: var(--mud-palette-primary);
    font-weight: 600;
}

.camera[b-y1618bgg1r] {
    flex-basis: 100%;
    margin-top: 8px;
}

.camera[hidden][b-y1618bgg1r] {
    display: none;
}

.camera video[b-y1618bgg1r] {
    width: 100%;
    max-width: 22rem;
    max-height: 40vh;
    border-radius: 4px;
    background: var(--mud-palette-background-gray);
    object-fit: cover;
}

.camera-problem[b-y1618bgg1r] {
    flex-basis: 100%;
    margin: 8px 0 0;
    color: color-mix(in srgb, var(--mud-palette-error) 75%, var(--mud-palette-text-primary));
    font-weight: 500;
}
/* /Components/Admin/Inventory/CountReminderLines.razor.rz.scp.css */
/* Spec S42, rules 9 and 11. Colours are MudBlazor's palette (spec S25). */
.reminder-lines[b-adalv8bsrx] {
    margin: 4px 0 8px;
}

.reminder-line[b-adalv8bsrx] {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 4px 12px;
    padding: 4px 0;
}

.reminder-text[b-adalv8bsrx] {
    min-width: 0;
}

.reminder-more[b-adalv8bsrx] {
    padding: 4px 0;
}
/* /Components/Admin/Inventory/EventPage.razor.rz.scp.css */
.modes[b-uifq8c5r00] {
    display: flex;
    gap: 0;
    margin-bottom: 8px;
    width: fit-content;
    max-width: 100%;
    border: 1px solid var(--mud-palette-lines-inputs);
    border-radius: 4px;
    overflow: hidden;
}

.mode[b-uifq8c5r00] {
    font: inherit;
    padding: 10px 18px;
    border: 0;
    border-right: 1px solid var(--mud-palette-lines-inputs);
    background: var(--mud-palette-surface);
    color: var(--mud-palette-text-primary);
    cursor: pointer;
}

.mode:last-child[b-uifq8c5r00] {
    border-right: 0;
}

.mode.selected[b-uifq8c5r00] {
    background: var(--mud-palette-primary);
    color: var(--mud-palette-primary-text);
    font-weight: 600;
}

.mode:focus-visible[b-uifq8c5r00] {
    outline: 3px solid var(--mud-palette-primary-darken);
    outline-offset: -3px;
}

.lines[b-uifq8c5r00] {
    list-style: none;
    padding: 0;
    margin: 0;
}

.lines li[b-uifq8c5r00] {
    display: flex;
    flex-wrap: wrap;
    gap: 4px 12px;
    align-items: center;
    justify-content: space-between;
    padding: 6px 0;
    border-bottom: 1px solid var(--mud-palette-lines-default);
}

.with-choice select[b-uifq8c5r00] {
    font: inherit;
    font-size: 1rem;
    padding: 8px 10px;
    border: 1px solid var(--mud-palette-lines-inputs);
    border-radius: 4px;
    background: var(--mud-palette-surface);
    color: var(--mud-palette-text-primary);
    max-width: 100%;
}

.counts[b-uifq8c5r00] {
    color: var(--mud-palette-text-secondary);
    font-size: 0.875rem;
}
/* /Components/Admin/Inventory/EventsPage.razor.rz.scp.css */
/* Spec S29's events. Fields, inputs, the button, the error and .muted are the back office's, in
   AdminLayout.razor.css (TD-056), with its focus ring and disabled button; this file sets the
   page's layout and widths. */

.row[b-0bifmw6cjo] {
    display: flex;
    flex-wrap: wrap;
    gap: 8px 12px;
    align-items: flex-end;
}

.field[b-0bifmw6cjo] {
    min-width: 0;
    flex: 1 1 12rem;
    max-width: 22rem;
}

.field.narrow[b-0bifmw6cjo] {
    flex: 0 1 10rem;
}

.field input[b-0bifmw6cjo] {
    width: 100%;
    box-sizing: border-box;
}

.event-list[b-0bifmw6cjo] {
    list-style: none;
    padding: 0;
    margin: 0;
}

.event-list li[b-0bifmw6cjo] {
    display: flex;
    flex-wrap: wrap;
    gap: 4px 12px;
    padding: 10px 0;
    border-bottom: 1px solid var(--mud-palette-lines-default);
}

.muted[b-0bifmw6cjo], .summary[b-0bifmw6cjo] {
    font-size: 0.875rem;
}

.summary[b-0bifmw6cjo] {
    color: var(--mud-palette-text-secondary);
    flex-basis: 100%;
}

.is-error[b-0bifmw6cjo] {
    margin: 8px 0 0;
}
/* /Components/Admin/Inventory/IncomingStockPage.razor.rz.scp.css */
/* Spec S43 rule 2: an overdue date in the palette's error colour. */
.overdue[b-zumjcb9q3i] {
    color: var(--mud-palette-error);
    font-weight: 500;
}

.muted[b-zumjcb9q3i] {
    font-size: 0.8125rem;
}
/* /Components/Admin/Inventory/InvoiceOriginalPreview.razor.rz.scp.css */
iframe[b-4yx3h8qn10] { width: 100%; height: 75vh; border: 1px solid var(--mud-palette-lines-default); border-radius: .35rem; background: var(--mud-palette-surface); }
@media (max-width: 900px) { iframe[b-4yx3h8qn10] { height: 40vh; } }
/* /Components/Admin/Inventory/InvoicePurchasesPage.razor.rz.scp.css */
.invoice-review[b-mc0kfnjugz] { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 1.25rem; align-items: start; }
.original[b-mc0kfnjugz] { position: sticky; top: 5rem; }
.draft[b-mc0kfnjugz] { min-width: 0; }
fieldset[b-mc0kfnjugz] { border: 0; padding: 0; min-width: 0; }
legend[b-mc0kfnjugz] { font-weight: 600; margin-bottom: 1rem; }
.invoice-fields[b-mc0kfnjugz] { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: .8rem; }
/* Each field is the layout's .field (TD-056): its look and its states are shared (owner, pull request 261), so this sets widths only. */
.invoice-fields .wide[b-mc0kfnjugz] { grid-column: 1 / -1; }
.invoice-fields input[b-mc0kfnjugz] { width: 100%; min-width: 0; }
.invoice-upload[b-mc0kfnjugz] { display: flex; flex-direction: column; gap: 1rem; padding: 1rem; border: 2px dashed var(--mud-palette-lines-default); }
.source[b-mc0kfnjugz] { overflow-wrap: anywhere; white-space: pre-wrap; font-size: .85rem; }
@media (max-width: 900px) { .invoice-review[b-mc0kfnjugz] { grid-template-columns: 1fr; } .original[b-mc0kfnjugz] { position: static; } }
@media (max-width: 400px) { .invoice-fields[b-mc0kfnjugz] { grid-template-columns: 1fr; } }
/* /Components/Admin/Inventory/LabelsPage.razor.rz.scp.css */
.field-first[b-tjr4o098rx] { width: 11rem; }
.field-sheets[b-tjr4o098rx] { width: 7rem; }
.field-offset[b-tjr4o098rx] { width: 9rem; }
/* /Components/Admin/Inventory/PurchaseIntakePage.razor.rz.scp.css */
.intake-run[b-zx2vi71j7d] { max-width: 40rem; margin: 0 auto; }
.label-code[b-zx2vi71j7d] { font-size: clamp(2.5rem, 12vw, 5rem); font-weight: 700; text-align: center; letter-spacing: .08em; margin: 1.5rem 0; }
.disc-photo[b-zx2vi71j7d] { display: block; max-width: 100%; max-height: 40vh; object-fit: contain; margin: 1rem auto; border-radius: .5rem; }
.colours[b-zx2vi71j7d] { display: flex; flex-wrap: wrap; gap: .4rem; margin: .75rem 0; }
.next[b-zx2vi71j7d] { display: block; width: 100%; min-height: 3rem; margin-top: 1.5rem; margin-bottom: .75rem; }
/* /Components/Admin/Inventory/PurchaseMarginsPage.razor.rz.scp.css */
.margin-table[b-5ar09idc42] { overflow-x: auto; }
/* /Components/Admin/Inventory/PurchaseOrderPage.razor.rz.scp.css */
/* Spec S43: an order's lines and receiving. Colours are MudBlazor's palette (spec S25). */
.lines[b-q0ps9b7645] {
    display: flex;
    flex-direction: column;
    gap: 12px;
}

.line[b-q0ps9b7645] {
    display: grid;
    grid-template-columns: minmax(14rem, 3fr) minmax(10rem, 2fr) 7rem 8rem 2.5rem;
    gap: 12px;
    align-items: start;
    padding-bottom: 12px;
    border-bottom: 1px solid var(--mud-palette-lines-default);
}

@media (max-width: 960px) {
    .line[b-q0ps9b7645] {
        grid-template-columns: 1fr 1fr;
    }

    .line-product[b-q0ps9b7645],
    .line-plastic[b-q0ps9b7645] {
        grid-column: 1 / -1;
    }
}

.receiving[b-q0ps9b7645],
.receipts[b-q0ps9b7645] {
    list-style: none;
    margin: 0;
    padding: 0;
}

.receiving > li[b-q0ps9b7645] {
    padding: 8px 0;
    border-bottom: 1px solid var(--mud-palette-lines-default);
}

.receiving-head[b-q0ps9b7645] {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 8px;
}

.receipts li[b-q0ps9b7645] {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 8px;
    margin-left: 16px;
    color: var(--mud-palette-text-secondary);
    font-size: 0.875rem;
}

.panel[b-q0ps9b7645] {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 8px;
    margin: 8px 0;
}

.muted[b-q0ps9b7645] {
    font-size: 0.875rem;
}
/* /Components/Admin/Inventory/ScanBox.razor.rz.scp.css */
/* Spec S29's scan box. The field, its input, the button and the error are the back office's, in
   AdminLayout.razor.css (TD-056); this file sets the box's layout and the scan field's size. */

.scan-box[b-uf05lpdf1g] {
    margin-bottom: 8px;
}

.scan-form[b-uf05lpdf1g] {
    display: flex;
    flex-wrap: wrap;
    gap: 8px 12px;
    align-items: flex-end;
}

.field[b-uf05lpdf1g] {
    min-width: 0;
}

.scan-field[b-uf05lpdf1g] {
    flex: 1 1 14rem;
    max-width: 22rem;
}

.scan-field input[b-uf05lpdf1g] {
    font-family: monospace;
    font-size: 1.25rem;
    letter-spacing: 0.05em;
    width: 100%;
    box-sizing: border-box;
}

.scan-actions[b-uf05lpdf1g] {
    display: flex;
    gap: 8px;
    flex-wrap: wrap;
}

.scan-status[b-uf05lpdf1g] {
    margin: 8px 0 0;
    min-height: 1.5em;
}
/* /Components/Admin/Inventory/StockCheckPage.razor.rz.scp.css */
/* Spec S29's stock check. Fields, inputs, buttons, choices, errors and .muted are the back
   office's, in AdminLayout.razor.css (TD-056), with its focus ring, disabled buttons and hover;
   this file sets the page's layout and widths. */

.card[b-yqikiw9hsz] {
    border: 1px solid var(--mud-palette-lines-default);
    border-radius: 4px;
    padding: 12px;
    margin: 8px 0 16px;
    background: var(--mud-palette-surface);
}

.row[b-yqikiw9hsz] {
    display: flex;
    flex-wrap: wrap;
    gap: 8px 12px;
    align-items: flex-end;
    margin-top: 12px;
}

.field[b-yqikiw9hsz] {
    min-width: 0;
    flex: 1 1 9rem;
    max-width: 16rem;
}

.field.narrow[b-yqikiw9hsz] {
    flex: 0 1 7rem;
}

.field input[b-yqikiw9hsz], .field select[b-yqikiw9hsz], .with-choice select[b-yqikiw9hsz] {
    min-width: 0;
    width: 100%;
    box-sizing: border-box;
}

.choices[b-yqikiw9hsz], .lines[b-yqikiw9hsz] {
    list-style: none;
    padding: 0;
    margin: 0;
}

.choices li[b-yqikiw9hsz] {
    margin-bottom: 6px;
}

.choice[b-yqikiw9hsz] {
    display: block;
    padding: 6px;
    border-color: var(--mud-palette-lines-default);
}

.choice.selected[b-yqikiw9hsz] {
    border: 2px solid var(--mud-palette-primary);
}

.lines li[b-yqikiw9hsz] {
    padding: 6px 0;
    border-bottom: 1px solid var(--mud-palette-lines-default);
}

.with-choice[b-yqikiw9hsz] {
    display: flex;
    flex-wrap: wrap;
    gap: 6px 12px;
    align-items: center;
    justify-content: space-between;
}

.with-choice select[b-yqikiw9hsz] {
    width: auto;
}

.muted[b-yqikiw9hsz] {
    font-size: 0.875rem;
}

.fix[b-yqikiw9hsz] {
    margin-top: 12px;
}

.fix summary[b-yqikiw9hsz] {
    cursor: pointer;
    color: var(--mud-palette-primary);
}

.is-error[b-yqikiw9hsz] {
    margin: 8px 0 0;
}
/* /Components/Admin/Inventory/StockChecksPage.razor.rz.scp.css */
/* Spec S29's stock checks. The field, its select and .muted are the back office's, in
   AdminLayout.razor.css (TD-056); this file sets the page's layout and widths. */

.field[b-o9c4dduqmu] {
    min-width: 0;
}

.field select[b-o9c4dduqmu] {
    max-width: 100%;
}

.category select[b-o9c4dduqmu] {
    width: 20rem;
    max-width: calc(100vw - 64px);
    white-space: pre;
}

.check-list[b-o9c4dduqmu] {
    list-style: none;
    padding: 0;
    margin: 0 0 16px;
}

.check-list li[b-o9c4dduqmu] {
    display: flex;
    flex-wrap: wrap;
    gap: 4px 12px;
    padding: 10px 0;
    border-bottom: 1px solid var(--mud-palette-lines-default);
}

.muted[b-o9c4dduqmu], .summary[b-o9c4dduqmu] {
    font-size: 0.875rem;
}

.summary[b-o9c4dduqmu] {
    color: var(--mud-palette-text-secondary);
    flex-basis: 100%;
}
/* /Components/Admin/Inventory/TradeInsPage.razor.rz.scp.css */
.pick[b-j81wbf9vde] { display: flex; gap: 6px; align-items: center; flex-wrap: wrap; }
.pick input[b-j81wbf9vde] { min-height: 36px; padding: 6px 8px; border: 1px solid var(--mud-palette-lines-inputs); border-radius: 4px; color: var(--mud-palette-text-primary); background: var(--mud-palette-surface); min-width: 0; width: 180px; }
/* /Components/Admin/Mailing/NewsletterPage.razor.rz.scp.css */
/* Spec S39's composer. Back office colours are MudBlazor's palette variables (S25). */
.newsletter-photo[b-8ktsz71vny] {
    padding: 0;
    border: 2px solid var(--mud-palette-lines-default);
    border-radius: 4px;
    background: var(--mud-palette-background-gray);
    cursor: pointer;
}

.newsletter-photo:hover[b-8ktsz71vny],
.newsletter-photo:focus-visible[b-8ktsz71vny] {
    border-color: var(--mud-palette-primary);
}

.newsletter-photo img[b-8ktsz71vny] {
    display: block;
    width: 96px;
    height: 96px;
    object-fit: contain;
}

.newsletter-preview[b-8ktsz71vny] {
    display: block;
    border: 1px solid var(--mud-palette-lines-default);
    background: var(--mud-palette-background-gray);
}

.newsletter-text[b-8ktsz71vny] {
    max-height: 720px;
    overflow: auto;
    margin: 0;
    padding: 12px;
    border: 1px solid var(--mud-palette-lines-default);
    white-space: pre-wrap;
    word-break: break-word;
    font-size: 0.8125rem;
}
/* /Components/Admin/Orders/NewSalePage.razor.rz.scp.css */
/* Spec S17. Colours are MudBlazor's palette variables, so the page follows light and dark mode (S25).
   Fields, inputs, buttons, choices, messages and .num, .nowrap, .mono and .muted are the back
   office's, in AdminLayout.razor.css (TD-056); this file sets the page's layout and widths. */

.adders[b-9r8e6afa8k] {
    display: flex;
    flex-wrap: wrap;
    gap: 12px 32px;
    align-items: flex-end;
}

.lookup[b-9r8e6afa8k] {
    display: flex;
    flex-wrap: wrap;
    gap: 12px;
    align-items: flex-end;
}

.fields[b-9r8e6afa8k] {
    display: flex;
    flex-wrap: wrap;
    gap: 12px;
    align-items: flex-start;
}

input[b-9r8e6afa8k], select[b-9r8e6afa8k], textarea[b-9r8e6afa8k] {
    min-width: 0;
}

input[type=checkbox][b-9r8e6afa8k] {
    padding: 0;
    width: 1.1rem;
    height: 1.1rem;
}

.sku input[b-9r8e6afa8k] {
    width: 16rem;
    font-family: monospace;
    font-size: 1.125rem;
}

.search input[b-9r8e6afa8k] { width: 18rem; }
.tax input[b-9r8e6afa8k] { width: 8rem; }
.email input[b-9r8e6afa8k] { width: 18rem; }
.method select[b-9r8e6afa8k] { width: 9rem; }
.amount input[b-9r8e6afa8k] { width: 8rem; }
.reference input[b-9r8e6afa8k] { width: 14rem; }
.note textarea[b-9r8e6afa8k] { width: 32rem; max-width: 100%; }

input.qty[b-9r8e6afa8k] { width: 4.5rem; text-align: right; }
input.price[b-9r8e6afa8k] { width: 6.5rem; text-align: right; }

.record-button[b-9r8e6afa8k] {
    margin-top: 12px;
    padding: 10px 24px;
}

.secondary-button.small[b-9r8e6afa8k] {
    padding: 4px 10px;
    font-size: 0.875rem;
}

.remove-line[b-9r8e6afa8k] {
    padding: 4px 10px;
}

.choices[b-9r8e6afa8k] {
    border: 1px solid var(--mud-palette-lines-default);
    border-radius: 4px;
    padding: 16px;
    margin-bottom: 12px;
    background: var(--mud-palette-surface);
}

.choices ul[b-9r8e6afa8k], .customer-results[b-9r8e6afa8k] {
    list-style: none;
    padding: 0;
    margin: 8px 0 16px;
    display: flex;
    flex-direction: column;
    gap: 8px;
}

.choice-row[b-9r8e6afa8k] {
    display: flex;
    gap: 12px;
    align-items: center;
}

.name[b-9r8e6afa8k] {
    font-weight: 600;
}

.thumb[b-9r8e6afa8k], .no-photo[b-9r8e6afa8k] {
    flex: none;
    object-fit: contain;
    background: var(--mud-palette-background-gray);
    border-radius: 4px;
}

.no-photo[b-9r8e6afa8k] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-size: 0.6875rem;
    color: var(--mud-palette-text-secondary);
}

.lines[b-9r8e6afa8k] {
    width: 100%;
    border-collapse: collapse;
    background: var(--mud-palette-surface);
}

.lines th[b-9r8e6afa8k], .lines td[b-9r8e6afa8k] {
    padding: 8px;
    border-bottom: 1px solid var(--mud-palette-lines-default);
    text-align: left;
    vertical-align: top;
}

/* Over .lines td's left: a page rule outweighs the layout's .num. */
.lines .num[b-9r8e6afa8k] {
    text-align: right;
}

.lines th[b-9r8e6afa8k] {
    font-size: 0.8125rem;
    color: var(--mud-palette-text-secondary);
    font-weight: 500;
}

.lines .photo[b-9r8e6afa8k] {
    width: 64px;
}

.lines tr.sold td[b-9r8e6afa8k] {
    background: var(--mud-palette-action-default-hover);
}

.payment[b-9r8e6afa8k] {
    display: flex;
    flex-wrap: wrap;
    gap: 12px;
    align-items: flex-end;
    margin-bottom: 8px;
}

.receipt[b-9r8e6afa8k] {
    display: flex;
    align-items: center;
    gap: 8px;
    margin-top: 12px;
}

.totals[b-9r8e6afa8k] {
    display: grid;
    grid-template-columns: max-content max-content;
    gap: 4px 24px;
    margin: 16px 0 0;
}

.totals dd[b-9r8e6afa8k] {
    margin: 0;
    text-align: right;
}

.totals .strong[b-9r8e6afa8k] {
    font-weight: 700;
}

@media (max-width: 599px) {
    .sku input[b-9r8e6afa8k], .search input[b-9r8e6afa8k], .email input[b-9r8e6afa8k], .reference input[b-9r8e6afa8k], .field[b-9r8e6afa8k], .lookup button[b-9r8e6afa8k] {
        width: 100%;
    }

    /* Each line becomes two rows: the item, then quantity, price, total and Remove. */
    .lines[b-9r8e6afa8k], .lines tbody[b-9r8e6afa8k] {
        display: block;
    }

    .lines thead[b-9r8e6afa8k], .lines .photo[b-9r8e6afa8k] {
        display: none;
    }

    .lines tr[b-9r8e6afa8k] {
        display: grid;
        grid-template-columns: auto auto 1fr auto;
        gap: 8px;
        align-items: center;
        padding: 8px 0;
        border-bottom: 1px solid var(--mud-palette-lines-default);
    }

    .lines td[b-9r8e6afa8k] {
        padding: 0;
        border: 0;
    }

    .lines td.item[b-9r8e6afa8k] {
        grid-column: 1 / -1;
    }

    .totals[b-9r8e6afa8k] {
        grid-template-columns: 1fr max-content;
    }
}
/* /Components/Admin/PosSettingsPage.razor.rz.scp.css */
.quick-setting[b-8prcpec93v] { display: flex; align-items: center; gap: 8px; padding: 12px 0; border-bottom: 1px solid var(--mud-palette-lines-default); }
.quick-setting > span[b-8prcpec93v] { flex: 1; min-width: 0; }
.quick-setting small[b-8prcpec93v] { display: block; margin-top: 4px; color: var(--mud-palette-text-secondary); }
.merch-search[b-8prcpec93v] { display: block; margin-top: 20px; font-size: 13px; }
.merch-search input[b-8prcpec93v] { display: block; width: 100%; min-height: 44px; padding: 10px; margin-top: 6px; border: 1px solid var(--mud-palette-lines-inputs); border-radius: 4px; color: var(--mud-palette-text-primary); background: var(--mud-palette-surface); }
.tax-history[b-8prcpec93v] { margin: 6px 0 0; padding-left: 20px; font-size: 13px; color: var(--mud-palette-text-secondary); }
/* /Components/Admin/Pos/CashCountsPage.razor.rz.scp.css */
.filters[b-8m8ggzmack] { display: flex; flex-wrap: wrap; gap: 12px; max-width: 32rem; margin-bottom: 16px; }
.summary[b-8m8ggzmack] { display: grid; grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); gap: 12px; max-width: 40rem; margin-bottom: 16px; padding: 16px; background: var(--mud-palette-background-gray); border-radius: 4px; }
.summary span[b-8m8ggzmack] { display: block; font-size: 12px; color: var(--mud-palette-text-secondary); }
.summary strong[b-8m8ggzmack] { display: block; margin-top: 4px; font-size: 21px; font-variant-numeric: tabular-nums; }
.summary .short[b-8m8ggzmack], .summary .flag[b-8m8ggzmack] { color: var(--mud-palette-error); }
.summary .over[b-8m8ggzmack] { color: var(--mud-palette-warning-darken); }
.balanced[b-8m8ggzmack] { color: var(--mud-palette-text-secondary); }
/* /Components/Admin/Pos/EventReportPage.razor.rz.scp.css */
.filters[b-8vakv9efrn] { display: flex; flex-wrap: wrap; align-items: end; gap: 12px; }
label[b-8vakv9efrn] { display: flex; flex-direction: column; gap: 6px; font-size: 13px; color: var(--mud-palette-text-secondary); }
label.grow[b-8vakv9efrn] { flex: 1 1 14rem; max-width: 26rem; }
input[b-8vakv9efrn], select[b-8vakv9efrn] { min-height: 44px; padding: 8px 10px; font-size: 1rem; border: 1px solid var(--mud-palette-lines-inputs); border-radius: 4px; color: var(--mud-palette-text-primary); background: var(--mud-palette-surface); }
.heading[b-8vakv9efrn] { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 12px; margin-bottom: 12px; }
.summary[b-8vakv9efrn] { display: grid; grid-template-columns: repeat(auto-fit, minmax(135px, 1fr)); gap: 12px; padding: 16px; background: var(--mud-palette-background-gray); border-radius: 4px; }
.summary.balances[b-8vakv9efrn] { margin-top: 12px; }
.summary span[b-8vakv9efrn] { display: block; font-size: 12px; color: var(--mud-palette-text-secondary); }
.summary strong[b-8vakv9efrn] { display: block; margin-top: 4px; font-size: 21px; font-variant-numeric: tabular-nums; }
.note[b-8vakv9efrn] { color: var(--mud-palette-text-secondary); font-size: 12px; line-height: 1.5; margin: 12px 0; }
.columns[b-8vakv9efrn] { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 2fr); gap: 24px; }
@media (max-width: 760px) { .columns[b-8vakv9efrn] { grid-template-columns: minmax(0, 1fr); } }
.table-scroll[b-8vakv9efrn] { overflow-x: auto; }
table[b-8vakv9efrn] { width: 100%; border-collapse: collapse; white-space: nowrap; font-size: 14px; }
th[b-8vakv9efrn], td[b-8vakv9efrn] { text-align: right; padding: 10px; border-bottom: 1px solid var(--mud-palette-lines-default); font-variant-numeric: tabular-nums; }
th:first-child[b-8vakv9efrn], td:first-child[b-8vakv9efrn] { text-align: left; }
td.name[b-8vakv9efrn] { white-space: normal; }
th[b-8vakv9efrn] { font-size: 12px; color: var(--mud-palette-text-secondary); }
h3[b-8vakv9efrn] { font-size: 16px; margin: 20px 0 8px; }
.staff-heading[b-8vakv9efrn] { margin: 20px 0 0; }
.staff-heading h3[b-8vakv9efrn] { margin: 0; }
tfoot td[b-8vakv9efrn] { font-weight: 600; border-bottom: none; }
/* /Components/Admin/Pos/SalesTaxReportPage.razor.rz.scp.css */
/* Spec S30 rule 15b: as the event report. */
.filters[b-fb52dll5e5] { display: flex; flex-wrap: wrap; align-items: end; gap: 12px; }
label[b-fb52dll5e5] { display: flex; flex-direction: column; gap: 6px; font-size: 13px; color: var(--mud-palette-text-secondary); }
input[b-fb52dll5e5] { min-height: 44px; padding: 8px 10px; font-size: 1rem; border: 1px solid var(--mud-palette-lines-inputs); border-radius: 4px; color: var(--mud-palette-text-primary); background: var(--mud-palette-surface); }
.heading[b-fb52dll5e5] { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 12px; margin-bottom: 12px; }
.summary[b-fb52dll5e5] { display: grid; grid-template-columns: repeat(auto-fit, minmax(135px, 1fr)); gap: 12px; padding: 16px; background: var(--mud-palette-background-gray); border-radius: 4px; }
.summary span[b-fb52dll5e5] { display: block; font-size: 12px; color: var(--mud-palette-text-secondary); }
.summary strong[b-fb52dll5e5] { display: block; margin-top: 4px; font-size: 21px; font-variant-numeric: tabular-nums; }
.note[b-fb52dll5e5] { color: var(--mud-palette-text-secondary); font-size: 12px; line-height: 1.5; margin: 12px 0; }
.table-scroll[b-fb52dll5e5] { overflow-x: auto; }
table[b-fb52dll5e5] { width: 100%; border-collapse: collapse; white-space: nowrap; font-size: 14px; }
th[b-fb52dll5e5], td[b-fb52dll5e5] { text-align: right; padding: 10px; border-bottom: 1px solid var(--mud-palette-lines-default); font-variant-numeric: tabular-nums; }
th:first-child[b-fb52dll5e5], td:first-child[b-fb52dll5e5] { text-align: left; }
td.name[b-fb52dll5e5] { white-space: normal; }
th[b-fb52dll5e5] { font-size: 12px; color: var(--mud-palette-text-secondary); }
/* /Components/Admin/SearchPage.razor.rz.scp.css */
/* Spec S40 rule 17: one section for each kind found. */
.search-kind[b-0pcf2h4bk3] {
    margin-bottom: 24px;
}
/* /Components/Admin/Seo/SeoHealthPage.razor.rz.scp.css */
.seo-counts[b-icxv76vya7] {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(11rem, 1fr));
    gap: 8px;
}

.seo-count[b-icxv76vya7] {
    display: flex;
    flex-direction: column;
    gap: 2px;
    padding: 10px 12px;
    border: 1px solid var(--mud-palette-lines-default);
    border-radius: 4px;
    background: var(--mud-palette-surface);
    color: var(--mud-palette-text-primary);
    text-decoration: none;
}

.seo-count:hover[b-icxv76vya7] {
    border-color: var(--mud-palette-primary);
}

.seo-count:focus-visible[b-icxv76vya7] {
    outline: 2px solid var(--mud-palette-primary);
    outline-offset: 1px;
}

.seo-count.clear .count[b-icxv76vya7] {
    color: var(--mud-palette-success);
}

.count[b-icxv76vya7] {
    font-size: 1.5rem;
    font-weight: 500;
    line-height: 1.2;
}

.name[b-icxv76vya7] {
    font-size: 0.875rem;
    color: var(--mud-palette-text-secondary);
}
/* /Components/Admin/Settings/SiteSettingRow.razor.rz.scp.css */
/* Spec S50 rules 11 and 12: one setting on Site Settings. */
.setting[b-s6de96kzad] {
    padding: 12px 0;
    border-top: 1px solid var(--mud-palette-lines-default);
}

.setting-head[b-s6de96kzad] {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 8px;
}

.path[b-s6de96kzad] {
    font-size: 0.8rem;
}

.in-use[b-s6de96kzad] {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 8px;
    margin: 6px 0;
    overflow-wrap: anywhere;
}

.changed[b-s6de96kzad] {
    font-size: 0.8rem;
}

.editor[b-s6de96kzad] {
    display: flex;
    flex-wrap: wrap;
    align-items: flex-start;
    gap: 8px;
    max-width: 720px;
}

.editor[b-s6de96kzad]  .mud-input-control {
    min-width: 240px;
    flex: 1 1 320px;
}

.address[b-s6de96kzad] {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(140px, 1fr));
    gap: 8px;
    flex: 1 1 100%;
}

.buttons[b-s6de96kzad] {
    display: flex;
    gap: 8px;
    padding-top: 6px;
}
/* /Components/Admin/Settings/SiteSettingsPage.razor.rz.scp.css */
/* Spec S50: Site Settings. Widths and layout only; the controls are the layout's. */
.group-head[b-xs3r3zd624] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    margin-bottom: 8px;
}

.overrides[b-xs3r3zd624] {
    margin: 4px 0 0 20px;
}

.history[b-xs3r3zd624] {
    margin-top: 12px;
}

.history summary[b-xs3r3zd624] {
    cursor: pointer;
}
/* /Components/Admin/Shared/HiddenBadge.razor.rz.scp.css */
.hidden-badge[b-oxj1m0bb1a] {
    display: inline-block;
    margin-left: 8px;
    padding: 1px 8px;
    border-radius: 10px;
    border: 1px solid var(--mud-palette-warning);
    color: color-mix(in srgb, var(--mud-palette-warning) 55%, var(--mud-palette-text-primary));
    font-size: 0.75rem;
    font-weight: 600;
    line-height: 1.5;
    vertical-align: middle;
}
/* /Components/Admin/Shared/PageHeader.razor.rz.scp.css */
/* Spec S40 rule 21: the back office's one page header. Colours from the palette (S25). */
.page-header[b-qyyw1449qq] {
    margin-bottom: 16px;
}

.crumbs[b-qyyw1449qq] {
    display: flex;
    flex-wrap: wrap;
    margin: 0 0 4px;
    padding: 0;
    list-style: none;
    font-size: 0.875rem;
    color: var(--mud-palette-text-secondary);
}

.crumbs li + li[b-qyyw1449qq]::before {
    content: "/";
    padding: 0 8px;
}

.crumbs a[b-qyyw1449qq] {
    color: var(--mud-palette-primary);
}

.title-row[b-qyyw1449qq] {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 8px 12px;
}

.actions[b-qyyw1449qq] {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 8px;
    margin-left: auto;
}
/* /Components/Admin/Shared/SkuItemCard.razor.rz.scp.css */
.sku-card[b-n6t2bc4j0c] {
    display: flex;
    gap: 12px;
    align-items: flex-start;
    min-width: 0;
    text-align: left;
}

/* A button would centre the card; beside a select (a stock check's Finish) it keeps its own width. */
button > .sku-card[b-n6t2bc4j0c] {
    width: 100%;
}

.sku-card.stacked[b-n6t2bc4j0c] {
    flex-direction: column;
    gap: 10px;
}

.sku-card img[b-n6t2bc4j0c], .no-photo[b-n6t2bc4j0c] {
    flex: none;
    border-radius: 4px;
    object-fit: cover;
    background: var(--mud-palette-background-gray);
}

.no-photo[b-n6t2bc4j0c] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    text-align: center;
    font-size: 0.7rem;
    color: var(--mud-palette-text-secondary);
    /* Seen on a grey button too (the POS's tiles). */
    border: 1px solid var(--mud-palette-lines-default);
    box-sizing: border-box;
}

.text[b-n6t2bc4j0c] {
    display: flex;
    flex-direction: column;
    gap: 2px;
    min-width: 0;
    overflow-wrap: anywhere;
}

.name[b-n6t2bc4j0c] {
    font-weight: 600;
    line-height: 1.4;
}

.large .name[b-n6t2bc4j0c] {
    font-size: 1.25rem;
}

.details[b-n6t2bc4j0c], .facts[b-n6t2bc4j0c] {
    color: var(--mud-palette-text-secondary);
    font-size: 0.875rem;
}

.mono[b-n6t2bc4j0c] {
    font-family: monospace;
}

@media (max-width: 599px) {
    .large img[b-n6t2bc4j0c], .large .no-photo[b-n6t2bc4j0c] {
        width: 80px !important;
        height: 80px !important;
    }

    .large .name[b-n6t2bc4j0c] {
        font-size: 1.125rem;
    }
}
/* /Components/Admin/Team/TeamEditPage.razor.rz.scp.css */
.bio-preview[b-ks0dsyfvey] {
    margin-top: 1rem;
    overflow-wrap: anywhere;
}

.bio-preview[b-ks0dsyfvey]  h2 {
    font-size: 1.25rem;
    margin: 1.25rem 0 0.5rem;
}

.bio-preview[b-ks0dsyfvey]  h3 {
    font-size: 1rem;
    margin: 1rem 0 0.5rem;
}

.bio-preview[b-ks0dsyfvey]  p,
.bio-preview[b-ks0dsyfvey]  ul,
.bio-preview[b-ks0dsyfvey]  ol {
    margin: 0.5rem 0;
}

.bio-preview[b-ks0dsyfvey]  ul,
.bio-preview[b-ks0dsyfvey]  ol {
    padding-left: 1.5rem;
}

.bio-preview[b-ks0dsyfvey]  a {
    color: var(--mud-palette-primary);
}

.seed-photo[b-ks0dsyfvey] {
    object-fit: cover;
    margin-top: 1rem;
    border-radius: 8px;
}
/* /Components/Catalog/AskAiButtons.razor.rz.scp.css */
/* Spec S53 rules 12 and 14: the "Ask an AI" links, a short heading and two buttons. */
.ask-ai[b-r58iwy6my1] {
    margin: var(--space-4) 0;
}

.ask-ai-heading[b-r58iwy6my1] {
    margin: 0 0 var(--space-2);
    font-size: 1rem;
}

.ask-ai-links[b-r58iwy6my1] {
    display: flex;
    flex-wrap: wrap;
    gap: var(--space-2);
    margin: 0;
    padding: 0;
    list-style: none;
}
/* /Components/Catalog/CarouselCard.razor.rz.scp.css */
/* One disc in the home page's new-discs carousel (spec S38 rule 2), moved from app.css (TD-055).
   The scroller, its track, its arrows and its dots' row are the page's (Home.razor.css); each
   card's dot is this card's ::scroll-marker. The flight numbers' pill (.carousel-flight) stays in
   app.css, shared with the listings' cards. */
.carousel-card[b-llunnbt98d] {
    display: flex;
    flex-direction: column;
    gap: var(--space-1);
    padding: var(--space-3);
    scroll-snap-align: start;
    border-radius: var(--radius-4);
    background: var(--color-surface);
}

.carousel-card a[b-llunnbt98d] {
    display: block;
    color: var(--color-heading);
}

.carousel-card a:hover .carousel-name[b-llunnbt98d] {
    color: var(--color-link-hover);
}

.carousel-photo[b-llunnbt98d] {
    position: relative;
    display: block;
    aspect-ratio: 1;
    margin-bottom: var(--space-2);
    overflow: hidden;
    border-radius: var(--radius-3);
    background: var(--color-page-bg);
}

.carousel-photo img[b-llunnbt98d] {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: contain;
    transition: transform 0.35s ease;
}

.carousel-card a:hover img[b-llunnbt98d] {
    transform: scale(1.04);
}

.carousel-photo .badge[b-llunnbt98d] {
    position: absolute;
    top: var(--space-2);
    left: var(--space-2);
}

.carousel-name[b-llunnbt98d] {
    display: block;
    font-weight: 700;
    line-height: 1.25;
}

.carousel-meta[b-llunnbt98d] {
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
    gap: 0 var(--space-2);
    margin-top: auto;
    font-size: 0.9375rem;
}

.carousel-meta .price[b-llunnbt98d] {
    color: var(--color-heading);
    font-weight: 700;
}

/* The dots replace the scrollbar, so only one bar shows; without them the scrollbar stays. */
@supports selector(::scroll-marker) {
    .carousel-card[b-llunnbt98d]::scroll-marker {
        content: "" / "New disc";
        width: 0.5rem;
        height: 0.5rem;
        border-radius: var(--radius-round);
        background: var(--color-border-strong);
    }

    .carousel-card[b-llunnbt98d]::scroll-marker:target-current {
        width: 1.5rem;
        border-radius: var(--radius-pill);
        background: var(--color-heading);
    }
}

@media (prefers-reduced-motion: reduce) {
    .carousel-photo img[b-llunnbt98d] {
        transition: none;
    }

    .carousel-card a:hover img[b-llunnbt98d] {
        transform: none;
    }
}
/* /Components/Catalog/DiscCard.razor.rz.scp.css */
/* One disc on its product page (spec S05), moved from app.css (TD-055). The photo's button is
   PhotoViewer's markup carrying this card's class, hence ::deep (which also reaches the placeholder
   this card writes when there is no photo); the photo inside it is this card's own. */
.disc-card[b-jgymttcmwt] {
    padding: var(--space-2);
    border-radius: var(--radius-2);
    scroll-margin-top: var(--space-6);
}

.disc-card.selected[b-jgymttcmwt] {
    outline: 3px solid var(--color-link);
    outline-offset: 2px;
    background: var(--color-submenu-bg);
}

[b-jgymttcmwt] .disc-photo {
    display: block;
    aspect-ratio: 1;
    margin-bottom: var(--space-2);
    overflow: hidden;
    border-radius: var(--radius-2);
    background: var(--color-border);
}

.disc-photo img[b-jgymttcmwt] {
    display: block;
    width: 100%;
    height: 100%;
    /* Spec S06, rule 6: photos are fitted, never cropped. */
    object-fit: contain;
}

.disc-facts[b-jgymttcmwt] {
    margin: 0;
    font-size: 0.9375rem;
}

.disc-facts div[b-jgymttcmwt] {
    display: flex;
    gap: var(--space-2);
}

.disc-facts dt[b-jgymttcmwt] {
    min-width: 3.5rem;
}

.disc-facts dd[b-jgymttcmwt] {
    margin: 0;
    color: var(--color-heading);
    overflow-wrap: anywhere;
}

.disc-price[b-jgymttcmwt] {
    margin: var(--space-1) 0 0;
    color: var(--color-heading);
    font-weight: 600;
}

.disc-price del[b-jgymttcmwt] {
    margin-right: var(--space-2);
    color: var(--color-text);
    font-weight: 400;
}

.disc-price ins[b-jgymttcmwt] {
    text-decoration: none;
}

.selected-note[b-jgymttcmwt] {
    margin: var(--space-1) 0 0;
    color: var(--color-link);
    font-weight: 600;
}

@media (max-width: 48rem) {
    /* The add-to-cart form is AddToCartForm's markup. */
    .disc-card[b-jgymttcmwt]  .add-to-cart .button {
        width: 100%;
    }
}
/* /Components/Catalog/GiftCardForm.razor.rz.scp.css */
/* Buying gift cards (spec S13 rule 31): one form, stacked. Moved from app.css (TD-055); the
   form is also an .add-to-cart (app.css), whose row these rules turn into a column. */
.gift-card-form[b-cv257vdw66] {
    flex-direction: column;
    align-items: stretch;
    max-width: 28rem;
}

.gift-card-form fieldset[b-cv257vdw66] {
    display: flex;
    flex-direction: column;
    gap: var(--space-2);
    margin: 0;
    padding: 0;
    border: 0;
}

.gift-card-form legend[b-cv257vdw66] {
    margin-bottom: var(--space-1);
    color: var(--color-heading);
    font-weight: 600;
}

.gift-card-form .gift-card-amounts[b-cv257vdw66] {
    flex-flow: row wrap;
    gap: var(--space-2) var(--space-4);
}

.gift-card-form .gift-card-recipient label[b-cv257vdw66] {
    display: flex;
    flex-direction: column;
    gap: var(--space-1);
}

.gift-card-form .gift-card-recipient input[b-cv257vdw66],
.gift-card-form textarea[b-cv257vdw66] {
    padding: var(--space-2);
}

.gift-card-form .optional[b-cv257vdw66] {
    font-weight: 400;
}

.gift-card-form .button[b-cv257vdw66] {
    align-self: flex-start;
}
/* /Components/Catalog/PhotoViewer.razor.rz.scp.css */
/* The photo viewer (owner, 7 October 2026), moved from app.css (TD-055). */

/* A photo that opens in the viewer below: the button shows only its picture. Its box (size,
   background, radius) is the main image's, a thumbnail's or a disc card's, set by the page that
   draws it. :where() keeps app.css's weight, so the thumbnails' size (ProductPage.razor.css) still
   beats this width. */
:where(.photo-viewer-open)[b-roxrkhrnwm] {
    width: 100%;
    padding: 0;
    color: inherit;
    cursor: zoom-in;
}

/* A native popover: the browser centres it in the top layer, closes it on Escape or a click on
   the backdrop, and the photo fills as much of the screen as it can. */
.photo-viewer[b-roxrkhrnwm] {
    padding: 0;
    border: 0;
    border-radius: var(--radius-2);
    background: var(--color-border);
    overflow: hidden;
}

.photo-viewer[b-roxrkhrnwm]::backdrop {
    background: rgb(0 0 0 / 0.8);
}

.photo-viewer img[b-roxrkhrnwm] {
    display: block;
    width: auto;
    max-width: calc(100vw - 2 * var(--space-4));
    max-height: calc(100vh - 2 * var(--space-4));
    object-fit: contain;
}

/* At the text's weight, not .button's 600, as #160 drew it (its own font reset came after
   .button's weight), like the Flight Finder's Help popover's Close. */
.photo-viewer-close[b-roxrkhrnwm] {
    position: absolute;
    top: var(--space-2);
    right: var(--space-2);
    font-weight: inherit;
}

/* A browser without popovers would show every viewer in place, so it shows none. */
@supports not selector(:popover-open) {
    .photo-viewer[b-roxrkhrnwm] {
        display: none;
    }
}
/* /Components/Catalog/StandardProductForm.razor.rz.scp.css */
/* Buying a standard product (spec S05, rules 15 to 17), moved from app.css (TD-055). The
   add-to-cart form inside an option is AddToCartForm's markup, hence ::deep; its own rules, and
   .sold-out-note, are in app.css. */
.product-price[b-5gbj3shaeq] {
    margin: 0 0 var(--space-2);
    color: var(--color-heading);
    font-size: 1.375rem;
    font-weight: 600;
}

.stock-status[b-5gbj3shaeq] {
    color: var(--color-heading);
}

.variant-options[b-5gbj3shaeq] {
    margin: var(--space-3) 0 0;
    padding: 0;
    list-style: none;
}

.variant-option[b-5gbj3shaeq] {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: var(--space-2) var(--space-3);
    padding: var(--space-3) 0;
    border-bottom: 1px solid var(--color-border-strong);
}

.variant-option .option-label[b-5gbj3shaeq] {
    flex: 1 1 10rem;
    color: var(--color-heading);
    font-weight: 600;
}

.variant-option[b-5gbj3shaeq]  .add-to-cart {
    flex-basis: 100%;
    margin: 0;
}

.variant-option.sold-out .option-label[b-5gbj3shaeq] {
    text-decoration: line-through;
}

.variant-option .button:disabled[b-5gbj3shaeq] {
    cursor: not-allowed;
    opacity: 0.55;
}
/* /Components/Layout/AdminLayout.razor.rz.scp.css */
/* Hidden until Blazor reports an unhandled error, when it sets display: block inline. */
#blazor-error-ui[b-so1i0454bf] {
    color-scheme: light only;
    display: none;
    position: fixed;
    bottom: 0;
    left: 0;
    z-index: 1400;
    box-sizing: border-box;
    width: 100%;
    padding: 0.6rem 1.25rem 0.7rem 1.25rem;
    background: lightyellow;
    box-shadow: 0 -1px 2px rgba(0, 0, 0, 0.2);
}

#blazor-error-ui .dismiss[b-so1i0454bf] {
    position: absolute;
    top: 0.5rem;
    right: 0.75rem;
    cursor: pointer;
}

.admin-root[b-so1i0454bf] {
    display: contents;
    /* Spec S25: MudBlazor's error and warning are too pale for text on white and too dark on the
       dark surface, so text in them is blended with the text colour. Declared here, the box every
       admin page, menu and dialog sits in, so a page's own rule can say var(--admin-error-text). */
    --admin-error-text: color-mix(in srgb, var(--mud-palette-error) 75%, var(--mud-palette-text-primary));
    --admin-warning-text: color-mix(in srgb, var(--mud-palette-warning) 55%, var(--mud-palette-text-primary));
}

/* TD-056: the back office's plain HTML controls, which every page shares. The scanner pages
   (S17, S26, S29) use plain inputs and buttons rather than MudBlazor's, for predictable Enter and
   focus (back-office.md); each page used to carry its own copy of these rules. Under ::deep, so
   they reach every page this layout wraps and what its child components render. Each selector is
   inside :where(), so it weighs only this layout's scope attribute: any rule in a page's
   .razor.css (its own attribute and at least an element or class) wins over it, and a page sets
   only its widths, its layout and whatever it draws differently. CameraReader and SkuItemCard keep
   their own copies: the POS shows them too, and its layout is not this one.

   A field: a label (or a box) holding its name in a <span>, then its control. */
[b-so1i0454bf] :where(.field) {
    display: flex;
    flex-direction: column;
    gap: 4px;
    font-size: 0.875rem;
}

[b-so1i0454bf] :where(.field > span) {
    color: var(--mud-palette-text-secondary);
}

/* A field's own input, select or textarea, and any control outside a field marked .plain-input (a
   price in a table row, a checkbox). Its own: a control a child component renders deeper inside
   the field (disc entry's photo upload) is not one of these. */
[b-so1i0454bf] :where(.field > input, .field > select, .field > textarea, .plain-input) {
    font: inherit;
    font-size: 1rem;
    padding: 8px 10px;
    border: 1px solid var(--mud-palette-lines-inputs);
    border-radius: 4px;
    background: var(--mud-palette-surface);
    color: var(--mud-palette-text-primary);
}

[b-so1i0454bf] :where(.field > input, .field > select, .field > textarea, .plain-input):focus {
    outline: 2px solid var(--mud-palette-primary);
    outline-offset: 0;
    border-color: var(--mud-palette-primary);
}

/* A disabled field fades as MudBlazor's own disabled fields do, so a page that mixes the two reads as
   one (owner, 9 October 2026, pull request 296): its text in the palette's disabled text colour, its
   border in the disabled action colour, as MudBlazor draws an outlined field. A checkbox or radio
   draws no text of its own, so it fades to 0.38, MudBlazor's opacity for a disabled slider and the
   light theme's disabled text. Here, never on a page (BackOfficeStyleTests). */
[b-so1i0454bf] :where(.field > input, .field > select, .field > textarea, .plain-input):disabled {
    color: var(--mud-palette-text-disabled);
    border-color: var(--mud-palette-action-disabled);
    cursor: default;
}

[b-so1i0454bf] :where(.field > input[type="checkbox"], .field > input[type="radio"], .plain-input[type="checkbox"], .plain-input[type="radio"]):disabled {
    opacity: 0.38;
}

/* Buttons: the page's main action, and the others. A page sets only a different padding. */
[b-so1i0454bf] :where(.primary-button, .secondary-button, .choice) {
    font: inherit;
    border-radius: 4px;
    cursor: pointer;
}

[b-so1i0454bf] :where(.primary-button) {
    font-weight: 600;
    padding: 10px 20px;
    border: 0;
    background: var(--mud-palette-primary);
    color: var(--mud-palette-primary-text);
}

[b-so1i0454bf] :where(.primary-button[disabled]) {
    background: var(--mud-palette-action-disabled-background);
    color: var(--mud-palette-action-disabled);
}

[b-so1i0454bf] :where(.secondary-button) {
    padding: 9px 16px;
    border: 1px solid var(--mud-palette-lines-inputs);
    background: var(--mud-palette-surface);
    color: var(--mud-palette-text-primary);
}

/* One of a list of matches to pick from: the whole row is the button. */
[b-so1i0454bf] :where(.choice) {
    width: 100%;
    text-align: left;
    padding: 8px;
    border: 1px solid var(--mud-palette-lines-inputs);
    background: var(--mud-palette-surface);
    color: var(--mud-palette-text-primary);
}

[b-so1i0454bf] :where(.choice):hover {
    background: var(--mud-palette-action-default-hover);
}

/* The pseudo-class outside :where(): MudBlazor's reset has button:focus { outline: none }. */
[b-so1i0454bf] :where(.primary-button, .secondary-button, .choice):focus-visible {
    outline: 3px solid var(--mud-palette-primary-darken);
    outline-offset: 2px;
}

/* A status line under a form: it keeps its height when empty, so the page does not jump. */
[b-so1i0454bf] :where(.message) {
    margin: 8px 0;
    min-height: 1.5em;
}

[b-so1i0454bf] :where(.is-error) {
    color: var(--admin-error-text);
    font-weight: 500;
}

[b-so1i0454bf] :where(.is-warning) {
    color: var(--admin-warning-text);
    font-weight: 500;
}

/* Utilities, which replace inline styles (style="text-align:right" and the like). .nowrap and
   .mono are !important: like an inline style they must win over every rule, and MudBlazor's table
   sets a cell's font with three classes (.mud-table-root .mud-table-body .mud-table-cell). .num is
   not: MudTable's phone layout puts every cell's text at the start with !important
   (.mud-xs-table .mud-table-cell), which the inline style never beat either. A page whose own
   rule aligns its cells (NewSalePage's .lines td) says .num's right again. */
[b-so1i0454bf] .num {
    text-align: right;
}

[b-so1i0454bf] .nowrap {
    white-space: nowrap !important;
}

[b-so1i0454bf] .mono {
    font-family: monospace !important;
}

[b-so1i0454bf] .muted {
    color: var(--mud-palette-text-secondary);
}

/* No underlined links in the back office either (owner, 5 October 2026), MudBlazor's included:
   MudLink underlines on hover by default. A MudLink renders an <a>, so this covers every state. */
[b-so1i0454bf] a {
    text-decoration: none !important;
}

/* MudBlazor's reset removes the outline from links (a:focus-visible), and its focus underline was a
   MudLink's only keyboard cue, so put back a ring in the style the admin pages use. */
[b-so1i0454bf] a:focus-visible {
    outline: 3px solid var(--mud-palette-primary-darken);
    outline-offset: 2px;
}

/* Spec S40 rule 3: the open page's link, and the heading of its group. MudBlazor's own "active"
   is not used (AdminNavLink says why), so this is the only mark. */
[b-so1i0454bf] .mud-nav-item.admin-current > .mud-nav-link {
    color: var(--mud-palette-primary);
    background-color: var(--mud-palette-action-default-hover);
    font-weight: 500;
}

[b-so1i0454bf] .mud-nav-item.admin-current > .mud-nav-link .mud-nav-link-icon {
    color: var(--mud-palette-primary);
}

[b-so1i0454bf] .mud-nav-group.admin-current-group > .mud-nav-link {
    color: var(--mud-palette-primary);
}

/* Group headings read as headings: a little bolder than the links beneath them. */
[b-so1i0454bf] .mud-nav-group > .mud-nav-link .mud-nav-link-text {
    font-weight: 500;
}
/* /Components/Layout/AdminSearchBox.razor.rz.scp.css */
/* Spec S40 part C: the top bar's search box. Colours are MudBlazor's palette (spec S25). */
.admin-search[b-4y5baad7wl] {
    display: flex;
    align-items: center;
    margin-left: 16px;
    min-width: 0;
}

.admin-search-box[b-4y5baad7wl] {
    position: relative;
    display: flex;
    align-items: center;
    width: 340px;
    max-width: 40vw;
}

.admin-search-box[b-4y5baad7wl]  .admin-search-icon {
    position: absolute;
    left: 10px;
    pointer-events: none;
    opacity: 0.8;
}

/* The bar is MudBlazor's "dark" colour (Color.Dark), in both themes. */
.admin-search-box input[b-4y5baad7wl] {
    width: 100%;
    height: 38px;
    padding: 0 12px 0 36px;
    border: 1px solid transparent;
    border-radius: 19px;
    font: inherit;
    font-size: 0.95rem;
    color: var(--mud-palette-dark-text);
    background: color-mix(in srgb, var(--mud-palette-dark-text) 14%, transparent);
    outline: none;
}

.admin-search-box input[b-4y5baad7wl]::placeholder {
    color: var(--mud-palette-dark-text);
    opacity: 0.7;
}

.admin-search-box input:focus[b-4y5baad7wl] {
    border-color: var(--mud-palette-dark-text);
    background: color-mix(in srgb, var(--mud-palette-dark-text) 20%, transparent);
}

/* Suggestions show while the box, or one of them, has the focus: a click elsewhere closes them. */
.admin-search-suggestions[b-4y5baad7wl] {
    position: absolute;
    top: 44px;
    left: 0;
    width: max(100%, 380px);
    max-width: calc(100vw - 32px);
    max-height: 70vh;
    overflow-y: auto;
    padding: 4px 0;
    z-index: 1500;
    background: var(--mud-palette-surface);
    color: var(--mud-palette-text-primary);
    border-radius: var(--mud-default-borderradius);
}

.admin-search-box:not(:focus-within) .admin-search-suggestions[b-4y5baad7wl] {
    display: none;
}

.admin-search-kind[b-4y5baad7wl] {
    padding: 8px 16px 2px;
    font-size: 0.75rem;
    font-weight: 500;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    color: var(--mud-palette-text-secondary);
}

.admin-search-suggestions a[b-4y5baad7wl] {
    display: block;
    padding: 6px 16px;
    color: var(--mud-palette-text-primary);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.admin-search-suggestions a span[b-4y5baad7wl] {
    color: var(--mud-palette-text-secondary);
    margin-left: 6px;
}

.admin-search-suggestions a:hover[b-4y5baad7wl],
.admin-search-suggestions a:focus-visible[b-4y5baad7wl] {
    background: var(--mud-palette-action-default-hover);
    outline: none;
}

.admin-search-suggestions a.admin-search-all[b-4y5baad7wl] {
    border-top: 1px solid var(--mud-palette-divider);
    margin-top: 4px;
    padding-top: 8px;
    color: var(--mud-palette-primary);
}

.admin-search-none[b-4y5baad7wl] {
    padding: 8px 16px;
    color: var(--mud-palette-text-secondary);
}

.admin-search-customer[b-4y5baad7wl] { padding: 0 16px 8px; }
.admin-search-customer a[b-4y5baad7wl] { padding-inline: 0; }

/* The icon that opens the box: phones only. */
.admin-search[b-4y5baad7wl]  .admin-search-open {
    display: none;
}

/* Phones (under 600 px, MudBlazor's sm): an icon; the box opens over the whole bar. */
@media (max-width: 599.98px) {
    .admin-search[b-4y5baad7wl] {
        margin-left: 0;
    }

    .admin-search[b-4y5baad7wl]  .admin-search-open {
        display: inline-flex;
    }

    .admin-search-box[b-4y5baad7wl] {
        display: none;
    }

    .admin-search.open .admin-search-box[b-4y5baad7wl] {
        display: flex;
        position: fixed;
        top: 0;
        left: 0;
        right: 0;
        height: var(--mud-appbar-height);
        width: auto;
        max-width: none;
        padding: 0 12px 0 56px;
        background: var(--mud-palette-dark);
        z-index: 1400;
    }

    .admin-search.open .admin-search-box[b-4y5baad7wl]  .admin-search-icon {
        left: 66px;
    }

    .admin-search.open[b-4y5baad7wl]  .admin-search-open {
        position: fixed;
        top: 4px;
        left: 4px;
        z-index: 1401;
    }

    .admin-search-suggestions[b-4y5baad7wl] {
        top: calc(var(--mud-appbar-height) - 4px);
        left: 12px;
        right: 12px;
        width: auto;
    }
}
/* /Components/Layout/ContactChoice.razor.rz.scp.css */
/* Layout only. The back office's layout draws the .choice button and its hover (owner, PR 261);
   the POS pages draw their own rows, since the POS's layout is not AdminLayout. */
.contact-choice[b-qo8svb28bl] { padding: 2px 0 6px; }
.choice[b-qo8svb28bl] { display: block; min-height: 44px; }
.contact-choice span[b-qo8svb28bl] { display: block; padding: 4px 9px 0; font-size: .875rem; overflow-wrap: anywhere; }
/* /Components/Layout/ContactText.razor.rz.scp.css */
.contact-link[b-e7mwbqgth8] {
    color: var(--mud-palette-primary, var(--color-link));
    text-decoration: none;
    overflow-wrap: anywhere;
}

.contact-link:hover[b-e7mwbqgth8] { color: var(--mud-palette-primary-darken, var(--color-link-hover)); }
/* /Components/Layout/PosLayout.razor.rz.scp.css */
#blazor-error-ui[b-rvdzyb65qm] { display: none; position: fixed; bottom: 0; z-index: 1400; width: 100%; padding: 1rem; background: var(--mud-palette-surface); color: var(--mud-palette-text-primary); }
.pos-topbar[b-rvdzyb65qm] { position: fixed; top: 0; left: 0; right: 0; z-index: 1100; display: grid; grid-template-columns: auto minmax(0, 1fr) auto; align-items: center; gap: 20px; padding: 8px 20px; min-height: 60px; background: #2f6680; color: #fff; border-bottom: 1px solid #25566d; }
.pos-brand[b-rvdzyb65qm] { display: flex; align-items: center; gap: 12px; font-size: 15px; white-space: nowrap; }
.pos-brand strong[b-rvdzyb65qm] { font-weight: 650; letter-spacing: -.015em; }
.pos-brand > span[b-rvdzyb65qm] { padding-left: 12px; border-left: 1px solid #ffffff50; font-size: 13px; letter-spacing: .06em; }
.pos-session[b-rvdzyb65qm] { display: flex; align-items: center; gap: 12px; }
.pos-session[b-rvdzyb65qm]  .mud-typography { font-size: 13px; opacity: .85; }
.pos-session[b-rvdzyb65qm]  .mud-button-root { font-size: 12px; text-transform: none; padding-inline: 8px; }
.pos-lock[b-rvdzyb65qm] { min-height: 44px; padding: 8px 14px; border: 1px solid #ffffff80; border-radius: 4px; color: inherit; background: #ffffff0a; font: inherit; font-size: 13px; white-space: nowrap; cursor: pointer; }
.pos-lock:hover[b-rvdzyb65qm] { background: #ffffff20; }
.pos-lock:focus-visible[b-rvdzyb65qm] { outline: 2px solid #fff; outline-offset: 3px; }
.pos-workspace[b-rvdzyb65qm] { position: fixed; inset: 0; height: 100dvh; padding: var(--pos-topbar-height, 60px) 0 0; box-sizing: border-box; overflow: hidden; }
@media (max-width: 1279px) { .pos-session[b-rvdzyb65qm]  .mud-typography { display: none !important; } }
@media (max-width: 760px) { .pos-topbar[b-rvdzyb65qm] { grid-template-columns: 1fr auto; padding: 8px 12px; gap: 8px; } .pos-topbar[b-rvdzyb65qm]  .pos-header-tools { grid-row: 2; grid-column: 1 / -1; justify-content: flex-start; } .pos-session[b-rvdzyb65qm] { grid-row: 1; grid-column: 2; gap: 4px; }  }

.pos-topbar[b-rvdzyb65qm] { row-gap: 6px; }

.pos-connection-status[b-rvdzyb65qm] { position: fixed; z-index: 1401; top: var(--pos-topbar-height, 60px); left: 0; right: 0; margin: 0; padding: 12px 20px; background: var(--mud-palette-error); color: var(--mud-palette-error-text); font-weight: 600; }
.pos-connection-status[hidden][b-rvdzyb65qm] { display: none; }
/* /Components/Layout/ReconnectModal.razor.rz.scp.css */
.components-reconnect-first-attempt-visible[b-kor0rm2boz],
.components-reconnect-repeated-attempt-visible[b-kor0rm2boz],
.components-reconnect-failed-visible[b-kor0rm2boz],
.components-pause-visible[b-kor0rm2boz],
.components-resume-failed-visible[b-kor0rm2boz],
.components-rejoining-animation[b-kor0rm2boz] {
    display: none;
}

#components-reconnect-modal.components-reconnect-show .components-reconnect-first-attempt-visible[b-kor0rm2boz],
#components-reconnect-modal.components-reconnect-show .components-rejoining-animation[b-kor0rm2boz],
#components-reconnect-modal.components-reconnect-paused .components-pause-visible[b-kor0rm2boz],
#components-reconnect-modal.components-reconnect-resume-failed .components-resume-failed-visible[b-kor0rm2boz],
#components-reconnect-modal.components-reconnect-retrying[b-kor0rm2boz],
#components-reconnect-modal.components-reconnect-retrying .components-reconnect-repeated-attempt-visible[b-kor0rm2boz],
#components-reconnect-modal.components-reconnect-retrying .components-rejoining-animation[b-kor0rm2boz],
#components-reconnect-modal.components-reconnect-failed[b-kor0rm2boz],
#components-reconnect-modal.components-reconnect-failed .components-reconnect-failed-visible[b-kor0rm2boz] {
    display: block;
}


#components-reconnect-modal[b-kor0rm2boz] {
    /* MudBlazor's palette, so it follows the back office's theme (spec S25). */
    background-color: var(--mud-palette-surface, white);
    color: var(--mud-palette-text-primary, inherit);
    width: 20rem;
    margin: 20vh auto;
    padding: 2rem;
    border: 0;
    border-radius: 0.5rem;
    box-shadow: 0 3px 6px 2px rgba(0, 0, 0, 0.3);
    opacity: 0;
    transition: display 0.5s allow-discrete, overlay 0.5s allow-discrete;
    animation: components-reconnect-modal-fadeOutOpacity-b-kor0rm2boz 0.5s both;
    &[open]

{
    animation: components-reconnect-modal-slideUp-b-kor0rm2boz 1.5s cubic-bezier(.05, .89, .25, 1.02) 0.3s, components-reconnect-modal-fadeInOpacity-b-kor0rm2boz 0.5s ease-in-out 0.3s;
    animation-fill-mode: both;
}

}

#components-reconnect-modal[b-kor0rm2boz]::backdrop {
    background-color: rgba(0, 0, 0, 0.4);
    animation: components-reconnect-modal-fadeInOpacity-b-kor0rm2boz 0.5s ease-in-out;
    opacity: 1;
}

@keyframes components-reconnect-modal-slideUp-b-kor0rm2boz {
    0% {
        transform: translateY(30px) scale(0.95);
    }

    100% {
        transform: translateY(0);
    }
}

@keyframes components-reconnect-modal-fadeInOpacity-b-kor0rm2boz {
    0% {
        opacity: 0;
    }

    100% {
        opacity: 1;
    }
}

@keyframes components-reconnect-modal-fadeOutOpacity-b-kor0rm2boz {
    0% {
        opacity: 1;
    }

    100% {
        opacity: 0;
    }
}

.components-reconnect-container[b-kor0rm2boz] {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 1rem;
}

#components-reconnect-modal p[b-kor0rm2boz] {
    margin: 0;
    text-align: center;
}

#components-reconnect-modal button[b-kor0rm2boz] {
    border: 0;
    background-color: var(--mud-palette-primary, #6b9ed2);
    color: var(--mud-palette-primary-text, white);
    padding: 4px 24px;
    border-radius: 4px;
}

    #components-reconnect-modal button:hover[b-kor0rm2boz] {
        background-color: var(--mud-palette-primary-darken, #3b6ea2);
    }

    #components-reconnect-modal button:active[b-kor0rm2boz] {
        background-color: var(--mud-palette-primary, #6b9ed2);
    }

.components-rejoining-animation[b-kor0rm2boz] {
    position: relative;
    width: 80px;
    height: 80px;
}

    .components-rejoining-animation div[b-kor0rm2boz] {
        position: absolute;
        border: 3px solid var(--mud-palette-primary, #0087ff);
        opacity: 1;
        border-radius: 50%;
        animation: components-rejoining-animation-b-kor0rm2boz 1.5s cubic-bezier(0, 0.2, 0.8, 1) infinite;
    }

        .components-rejoining-animation div:nth-child(2)[b-kor0rm2boz] {
            animation-delay: -0.5s;
        }

@keyframes components-rejoining-animation-b-kor0rm2boz {
    0% {
        top: 40px;
        left: 40px;
        width: 0;
        height: 0;
        opacity: 0;
    }

    4.9% {
        top: 40px;
        left: 40px;
        width: 0;
        height: 0;
        opacity: 0;
    }

    5% {
        top: 40px;
        left: 40px;
        width: 0;
        height: 0;
        opacity: 1;
    }

    100% {
        top: 0px;
        left: 0px;
        width: 80px;
        height: 80px;
        opacity: 0;
    }
}
/* /Components/Layout/StoreFooter.razor.rz.scp.css */
.site-footer[b-j6lv8qwuxv] {
    margin-top: var(--space-8);
    padding: var(--space-6) var(--space-4);
    background: var(--color-footer-bg);
    color: var(--color-footer-text);
    text-align: center;
}

.links[b-j6lv8qwuxv] {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: var(--space-2) var(--space-5);
    margin: 0;
    padding: 0;
    list-style: none;
}

.owner[b-j6lv8qwuxv] {
    margin: var(--space-4) 0 0;
}

.theme-switch[b-j6lv8qwuxv] { display: flex; justify-content: center; margin-top: var(--space-3); }
.theme-switch button[b-j6lv8qwuxv] { display: inline-flex; align-items: center; justify-content: center; width: 2rem; height: 2rem; padding: 0; border: 1px solid var(--color-border-strong); border-radius: 50%; background: transparent; color: inherit; cursor: pointer; }
.theme-switch .to-dark[b-j6lv8qwuxv] { display: var(--show-in-light); }
.theme-switch .to-light[b-j6lv8qwuxv] { display: var(--show-in-dark); }
.theme-switch button:focus-visible[b-j6lv8qwuxv] { outline: 2px solid var(--color-link); outline-offset: 2px; }
/* /Components/Layout/StoreHeader.razor.rz.scp.css */
.site-header[b-olgvv3dg7u] {
    background: var(--color-header-bg);
    color: var(--color-header-text);
    border-bottom: 1px solid var(--color-border);
    /* The header stays at the top of the window while the page scrolls. */
    position: sticky;
    top: 0;
    z-index: 20;
}

/* Narrow screens: an open menu can be taller than the window, so the header scrolls
   inside itself while it is open. Narrow only: wider, the dropdowns hang below the
   header and must not be cut off (the box can stay ticked after a rotate or Back). */
@media (max-width: 47.99rem) {
    .site-header:has(.nav-toggle:checked)[b-olgvv3dg7u] {
        max-height: 100dvh;
        overflow-y: auto;
    }
}

.bar[b-olgvv3dg7u] {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: var(--space-2) var(--space-3);
    max-width: var(--page-width);
    margin: 0 auto;
    padding: var(--space-2) var(--space-4);
}

/* Narrow screens: menu button, logo, account and cart share one row, so the header that
   stays at the top is no taller than it must be. The logo takes what room is left. */
.logo[b-olgvv3dg7u] {
    flex: 1 1 0;
    min-width: 0;
    max-width: 22rem;
}

.logo img[b-olgvv3dg7u] {
    display: block;
    width: 100%;
    height: auto;
    filter: var(--logo-filter);
}

.search[b-olgvv3dg7u] {
    display: flex;
    flex: 1 1 100%;
    order: 3;
}

.search input[b-olgvv3dg7u] {
    flex: 1;
    min-width: 0;
    padding: var(--space-2);
    border: 1px solid var(--color-border-strong);
    border-right: 0;
    /* The box and its button read as one control: rounded on the outside only. */
    border-radius: var(--radius-1) 0 0 var(--radius-1);
    font: inherit;
}

.search button[b-olgvv3dg7u] {
    padding: var(--space-2) var(--space-3);
    border: 1px solid var(--color-button-dark);
    background: var(--color-button-dark);
    color: var(--color-button-dark-text);
    border-radius: 0 var(--radius-1) var(--radius-1) 0;
    font: inherit;
    font-weight: 600;
    cursor: pointer;
}

.utility[b-olgvv3dg7u] {
    display: flex;
    align-items: center;
    gap: var(--space-3);
    margin: 0;
    padding: 0;
    list-style: none;
}

.utility a[b-olgvv3dg7u],
.menu a[b-olgvv3dg7u],
.menu summary[b-olgvv3dg7u] {
    color: var(--color-nav-text);
    font-weight: 600;
    text-decoration: none;
}

.cart-link[b-olgvv3dg7u] {
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
    white-space: nowrap;
}

.cart-count[b-olgvv3dg7u] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 1.35rem;
    height: 1.35rem;
    padding: 0 0.3rem;
    border-radius: 999px;
    background: var(--color-button-dark);
    color: var(--color-button-dark-text);
    font-size: 0.75rem;
    line-height: 1;
    font-variant-numeric: tabular-nums;
}

.cart-count[hidden][b-olgvv3dg7u] {
    display: none;
}

.utility a:hover[b-olgvv3dg7u],
.menu a:hover[b-olgvv3dg7u],
.menu summary:hover[b-olgvv3dg7u] {
    color: var(--color-nav-hover);
}

/* The checkbox is focusable but invisible; its label is the visible button. */
.nav-toggle[b-olgvv3dg7u] {
    position: absolute;
    opacity: 0;
    pointer-events: none;
}

.nav-toggle:focus-visible + .bar .nav-toggle-label[b-olgvv3dg7u] {
    outline: 2px solid var(--color-link);
    outline-offset: 2px;
}

.nav-toggle-label[b-olgvv3dg7u] {
    order: -1;
    padding: var(--space-1) var(--space-2);
    border: 2px solid var(--color-nav-text);
    font-weight: 700;
    cursor: pointer;
    user-select: none;
}

.nav-toggle-label[b-olgvv3dg7u]::before {
    content: "\2630\00a0";
}

.nav-toggle:checked + .bar .nav-toggle-label[b-olgvv3dg7u]::before {
    content: "\2715\00a0";
}

/* Narrow screens: the menu is a stacked list, hidden until the toggle is checked. */
.primary[b-olgvv3dg7u] {
    display: none;
    border-top: 1px solid var(--color-border);
}

.nav-toggle:checked ~ .primary[b-olgvv3dg7u] {
    display: block;
}

.menu[b-olgvv3dg7u],
.sub[b-olgvv3dg7u] {
    margin: 0;
    padding: 0;
    list-style: none;
}

.menu > li > a[b-olgvv3dg7u],
.menu summary[b-olgvv3dg7u] {
    display: block;
    padding: var(--space-3) var(--space-4);
    border-bottom: 1px solid var(--color-border);
}

.menu summary[b-olgvv3dg7u] {
    cursor: pointer;
    list-style: none;
}

.menu summary[b-olgvv3dg7u]::-webkit-details-marker {
    display: none;
}

.menu summary[b-olgvv3dg7u]::after {
    content: "\25BE";
    /* Empty alternative text: screen readers do not read the arrow as part of the name. */
    content: "\25BE" / "";
    margin-left: var(--space-1);
    font-size: 0.8em;
}

.sub[b-olgvv3dg7u] {
    background: var(--color-submenu-bg);
}

.sub a[b-olgvv3dg7u] {
    display: block;
    padding: var(--space-2) var(--space-6);
    font-weight: 400;
}

@media (min-width: 48rem) {
    .bar[b-olgvv3dg7u] {
        gap: var(--space-2) var(--space-4);
        padding: var(--space-3) var(--space-4);
    }

    .logo[b-olgvv3dg7u] {
        flex: 1 1 12rem;
    }

    .search[b-olgvv3dg7u] {
        flex: 0 1 22rem;
        order: 0;
        margin-left: auto;
    }

    /* The toggle is for narrow screens only. Hiding the checkbox too keeps it from being
       an invisible tab stop on desktop. */
    .nav-toggle[b-olgvv3dg7u],
    .nav-toggle-label[b-olgvv3dg7u] {
        display: none;
    }

    .primary[b-olgvv3dg7u],
    .nav-toggle:checked ~ .primary[b-olgvv3dg7u] {
        display: block;
    }

    .menu[b-olgvv3dg7u] {
        position: relative;
        display: flex;
        flex-wrap: wrap;
        max-width: var(--page-width);
        margin: 0 auto;
        padding: 0 var(--space-2);
    }

    /* A short submenu hangs under its own heading; a wide one spans the whole bar. */
    .menu > li[b-olgvv3dg7u] {
        position: relative;
    }

    .menu > li:has(.sub.wide)[b-olgvv3dg7u] {
        position: static;
    }

    .menu > li > a[b-olgvv3dg7u],
    .menu summary[b-olgvv3dg7u] {
        padding: var(--space-3);
        border-bottom: 0;
    }

    /* Desktop: a submenu is a dropdown panel under its heading. */
    .sub[b-olgvv3dg7u] {
        position: absolute;
        top: 100%;
        left: 0;
        z-index: 10;
        min-width: 14rem;
        padding: var(--space-2) 0;
        border-top: 1px solid var(--color-border);
        /* Square where it meets the bar, rounded below, like the site's cards. */
        border-radius: 0 0 var(--radius-2) var(--radius-2);
        box-shadow: 0 6px 16px var(--color-shadow);
    }

    .sub.wide[b-olgvv3dg7u] {
        right: 0;
        columns: 12rem;
        padding: var(--space-3) var(--space-2);
    }

    .sub li[b-olgvv3dg7u] {
        break-inside: avoid;
    }

    .sub a[b-olgvv3dg7u] {
        padding: var(--space-1) var(--space-4);
    }

}

/* With a mouse, pointing at a heading opens its submenu, and it stays open while the
   pointer is on the heading or the panel. A click still opens and closes it (the
   details element), which is how touch screens and keyboards use it, and how browsers
   without ::details-content do. */
@media (min-width: 48rem) and (hover: hover) {
    /* Hover and keyboard focus decide what shows, not the open state: a click on a
       heading the pointer had already opened would otherwise leave its panel open
       after the pointer moves away. */
    .has-sub details[b-olgvv3dg7u]::details-content {
        content-visibility: hidden;
    }

    .has-sub:hover details[b-olgvv3dg7u]::details-content {
        content-visibility: visible;
    }

    .has-sub:hover summary[b-olgvv3dg7u] {
        color: var(--color-nav-hover);
        box-shadow: inset 0 -3px 0 var(--color-nav-hover);
        text-decoration: none;
    }
}

/* Keyboard: a focused heading or link keeps its panel showing. Its own rule, so a browser
   without :has() still applies the ones above. */
@media (min-width: 48rem) and (hover: hover) {
    .has-sub:has(:focus-visible) details[b-olgvv3dg7u]::details-content {
        content-visibility: visible;
    }
}

/* Narrow phones: the menu button shows only its icon (its name stays for screen readers),
   and the header's controls sit closer, so the logo keeps its room beside the theme switch
   (spec S25). */
@media (max-width: 29.99rem) {
    .bar[b-olgvv3dg7u] {
        gap: var(--space-2);
    }

    .utility[b-olgvv3dg7u] {
        gap: var(--space-2);
    }

    .nav-toggle-label[b-olgvv3dg7u] {
        padding: var(--space-1) var(--space-2);
    }

    .nav-toggle-label[b-olgvv3dg7u]::before {
        content: "\2630";
    }

    .nav-toggle:checked + .bar .nav-toggle-label[b-olgvv3dg7u]::before {
        content: "\2715";
    }

    .menu-word[b-olgvv3dg7u] {
        position: absolute;
        width: 1px;
        height: 1px;
        overflow: hidden;
        clip-path: inset(50%);
        white-space: nowrap;
    }

}
/* /Components/Layout/WelcomeOfferPanel.razor.rz.scp.css */
/* The welcome offer's panel (spec S38, rules 9 to 14), moved from app.css (TD-055): a card that
   slides in from the right after three seconds, a sheet across the bottom on phones, closed by a
   checkbox through :has(). Scoped: every element here is WelcomeOfferPanel.razor's own (its <form>
   is a plain tag, not an EditForm, so it carries the attribute). The welcome code's box
   (.welcome-code) stays in app.css: the offer's page and My Account both draw it. */
.welcome-offer[b-bxrcmsu7wz] {
    position: fixed;
    right: var(--space-4);
    bottom: var(--space-4);
    z-index: 40;
    width: min(23rem, calc(100vw - 2 * var(--space-4)));
    animation: welcome-offer-in-b-bxrcmsu7wz 0.6s cubic-bezier(0.2, 0.8, 0.2, 1) 3s both;
}

.welcome-offer:has(.welcome-offer-toggle:checked)[b-bxrcmsu7wz] {
    display: none;
}

@keyframes welcome-offer-in-b-bxrcmsu7wz {
    from {
        transform: translateX(calc(100% + 2rem));
        opacity: 0;
    }

    to {
        transform: none;
        opacity: 1;
    }
}

.welcome-offer-toggle[b-bxrcmsu7wz] {
    position: absolute;
    width: 1px;
    height: 1px;
    opacity: 0;
    pointer-events: none;
}

.welcome-offer-card[b-bxrcmsu7wz] {
    position: relative;
    padding: var(--space-5);
    border: 1px solid var(--color-border-strong);
    border-top: 0.375rem solid var(--color-accent);
    border-radius: var(--radius-4);
    background: var(--color-page-bg);
    box-shadow: 0 1.25rem 3rem var(--color-shadow);
}

.welcome-offer-card h2[b-bxrcmsu7wz] {
    margin: 0 2rem var(--space-2) 0;
    font-size: 1.5rem;
    line-height: 1.15;
}

.welcome-offer-eyebrow[b-bxrcmsu7wz] {
    margin: 0 0 var(--space-1);
    color: var(--color-link);
    font-size: 0.75rem;
    font-weight: 700;
    letter-spacing: 0.1em;
    text-transform: uppercase;
}

.welcome-offer-lead[b-bxrcmsu7wz] {
    margin: 0 0 var(--space-3);
    font-size: 0.9375rem;
}

.welcome-offer-form[b-bxrcmsu7wz] {
    display: flex;
    flex-direction: column;
    gap: var(--space-2);
}

.welcome-offer-form label:not(.welcome-offer-consent)[b-bxrcmsu7wz] {
    color: var(--color-heading);
    font-weight: 600;
    font-size: 0.875rem;
}

.welcome-offer-form input[type="email"][b-bxrcmsu7wz] {
    padding: var(--space-2) var(--space-3);
    border-radius: var(--radius-1);
}

.welcome-offer-consent[b-bxrcmsu7wz] {
    display: flex;
    align-items: flex-start;
    gap: var(--space-2);
    font-size: 0.9375rem;
}

.welcome-offer-consent input[b-bxrcmsu7wz] {
    margin-top: 0.3rem;
}

.welcome-offer-form .button[b-bxrcmsu7wz] {
    border-radius: var(--radius-1);
    padding: var(--space-3) var(--space-4);
    font-weight: 700;
}

.welcome-offer-as[b-bxrcmsu7wz] {
    margin: 0;
    font-size: 0.9375rem;
}

.welcome-offer-small[b-bxrcmsu7wz] {
    margin: var(--space-2) 0 0;
    font-size: 0.8125rem;
}

.welcome-offer-x[b-bxrcmsu7wz],
.welcome-offer-no[b-bxrcmsu7wz] {
    cursor: pointer;
}

.welcome-offer-x[b-bxrcmsu7wz] {
    position: absolute;
    top: var(--space-3);
    right: var(--space-3);
    display: grid;
    place-items: center;
    width: 2.25rem;
    height: 2.25rem;
    border-radius: var(--radius-round);
    color: var(--color-heading);
    font-size: 1.5rem;
    line-height: 1;
}

.welcome-offer-x:hover[b-bxrcmsu7wz] {
    background: var(--color-button-bg);
}

.welcome-offer-no[b-bxrcmsu7wz] {
    display: inline-block;
    margin-top: var(--space-2);
    color: var(--color-link);
    font-weight: 600;
    font-size: 0.9375rem;
}

.welcome-offer-no:hover[b-bxrcmsu7wz] {
    color: var(--color-link-hover);
}

/* The checkbox is what the keyboard reaches; its labels show the focus. */
.welcome-offer-toggle:focus-visible ~ .welcome-offer-card .welcome-offer-x[b-bxrcmsu7wz] {
    outline: 2px solid var(--color-link);
    outline-offset: 2px;
}

@media (max-width: 48rem) {
    /* A sheet across the bottom: the header, with the cart, stays at the top. */
    .welcome-offer[b-bxrcmsu7wz] {
        right: 0;
        bottom: 0;
        left: 0;
        width: auto;
        animation-name: welcome-offer-up-b-bxrcmsu7wz;
    }

    .welcome-offer-card[b-bxrcmsu7wz] {
        max-height: 70vh;
        overflow-y: auto;
        padding: var(--space-4);
        border-radius: var(--radius-4) var(--radius-4) 0 0;
        border-right: 0;
        border-bottom: 0;
        border-left: 0;
    }

    .welcome-offer-card h2[b-bxrcmsu7wz] {
        font-size: 1.25rem;
    }

    /* Short enough to leave most of a phone's screen to the page. */
    .welcome-offer-eyebrow[b-bxrcmsu7wz],
    .welcome-offer-small[b-bxrcmsu7wz] {
        display: none;
    }

    .welcome-offer-lead[b-bxrcmsu7wz] {
        font-size: 0.875rem;
    }

    .welcome-offer-form .button[b-bxrcmsu7wz] {
        padding: var(--space-2) var(--space-4);
    }
}

@keyframes welcome-offer-up-b-bxrcmsu7wz {
    from {
        transform: translateY(100%);
    }

    to {
        transform: none;
    }
}

@media (prefers-reduced-motion: reduce) {
    .welcome-offer[b-bxrcmsu7wz] {
        animation: none;
    }
}
/* /Components/Pages/Catalog/ProductPage.razor.rz.scp.css */
/* The product page (spec S05), moved from app.css (TD-055). Scoped: these rules reach only what
   ProductPage.razor writes itself, so the photo viewer's button (PhotoViewer's markup, carrying
   this page's class) is reached with ::deep, while the photos inside it are this page's own. Its
   children have their own stylesheets: DiscCard, PhotoViewer, StandardProductForm, GiftCardForm.
   What the page shares stays in app.css: the add-to-cart form and .sold-out-note (several of its
   components draw them), the related links' chips (with the listings' chips), .breadcrumb,
   .notice, .result-count and .button. */
.product-top[b-sdbls1ddzl] {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
    gap: var(--space-6);
    align-items: start;
    margin-bottom: var(--space-6);
}

[b-sdbls1ddzl] .product-main-image {
    display: block;
    aspect-ratio: 1;
    background: var(--color-border);
}

.product-main-image img[b-sdbls1ddzl] {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: contain;
}

.product-thumbnails[b-sdbls1ddzl] {
    display: flex;
    flex-wrap: wrap;
    gap: var(--space-2);
    margin: var(--space-2) 0 0;
    padding: 0;
    list-style: none;
}

/* Every button and photo in the list, the viewers' too, as when this rule was in app.css: :where()
   keeps app.css's weight, so .button-primary:hover still colours a viewer's Close and the viewer's
   own width (PhotoViewer.razor.css) still beats this one. */
:where(.product-thumbnails)[b-sdbls1ddzl]  button {
    display: block;
    width: 5rem;
    height: 5rem;
    background: var(--color-border);
}

:where(.product-thumbnails)[b-sdbls1ddzl]  img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: contain;
}

.product-summary h1[b-sdbls1ddzl] {
    margin-top: 0;
}

.flight-numbers[b-sdbls1ddzl] {
    display: flex;
    gap: var(--space-2);
    margin: 0 0 var(--space-4);
}

.flight-numbers div[b-sdbls1ddzl] {
    min-width: 4rem;
    padding: var(--space-2);
    background: var(--color-submenu-bg);
    text-align: center;
}

.flight-numbers dt[b-sdbls1ddzl] {
    font-size: 0.8125rem;
    text-transform: uppercase;
}

.flight-numbers dd[b-sdbls1ddzl] {
    margin: 0;
    color: var(--color-heading);
    font-size: 1.5rem;
    font-weight: 700;
}

/* Spec S41 rule 15: beside the flight numbers. */
.find-similar[b-sdbls1ddzl] {
    margin: calc(-1 * var(--space-2)) 0 var(--space-4);
}

/* Spec S43 rule 14: more is on order. */
.more-on-the-way[b-sdbls1ddzl] {
    color: var(--color-heading);
    font-weight: 600;
}

.product-description[b-sdbls1ddzl] {
    margin-top: var(--space-5);
    overflow-wrap: anywhere;
}

/* Spec S35 rule 30: plain share links, as round icon buttons in the theme's colours. */
.share-links[b-sdbls1ddzl] {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: var(--space-2) var(--space-3);
    margin-top: var(--space-5);
}

.share-label[b-sdbls1ddzl] {
    color: var(--color-muted);
    font-size: 0.875rem;
    font-weight: 600;
    letter-spacing: 0.04em;
    text-transform: uppercase;
}

.share-links ul[b-sdbls1ddzl] {
    display: flex;
    flex-wrap: wrap;
    gap: var(--space-2);
    margin: 0;
    padding: 0;
    list-style: none;
}

.share-links a[b-sdbls1ddzl] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 2.25rem;
    height: 2.25rem;
    border: 1px solid var(--color-border-strong);
    border-radius: 50%;
    background: var(--color-button-bg);
    color: var(--color-button-text);
    transition: background-color 0.15s, color 0.15s, border-color 0.15s;
}

.share-links a:focus-visible[b-sdbls1ddzl] {
    border-color: var(--color-button-dark);
    background: var(--color-button-dark);
    color: var(--color-button-dark-text);
}

/* Hover only where there is a pointer, so a tapped icon does not stay filled on a phone. */
@media (hover: hover) {
    .share-links a:hover[b-sdbls1ddzl] {
        border-color: var(--color-button-dark);
        background: var(--color-button-dark);
        color: var(--color-button-dark-text);
    }
}

@media (prefers-reduced-motion: reduce) {
    .share-links a[b-sdbls1ddzl] {
        transition: none;
    }
}

/* Spec S35 rule 18: related products, as plain links below the product. Their list and chips are
   the listings' (app.css). */
.related-links[b-sdbls1ddzl] {
    margin-top: var(--space-5);
}

.related-links h2[b-sdbls1ddzl] {
    margin-bottom: var(--space-3);
}

.disc-picker h2[b-sdbls1ddzl] {
    margin-bottom: var(--space-3);
}

.plastic-links[b-sdbls1ddzl] {
    display: flex;
    flex-wrap: wrap;
    gap: var(--space-2);
    margin-bottom: var(--space-4);
}

.plastic-links a[b-sdbls1ddzl] {
    padding: var(--space-1) var(--space-3);
    border: 1px solid var(--color-border-strong);
    text-decoration: none;
}

.plastic-links a:hover[b-sdbls1ddzl] {
    background: var(--color-submenu-bg);
}

.plastic-links .count[b-sdbls1ddzl] {
    color: var(--color-text);
}

.weight-filter[b-sdbls1ddzl] {
    display: flex;
    flex-wrap: wrap;
    align-items: end;
    gap: var(--space-3);
    margin-bottom: var(--space-4);
}

.weight-filter fieldset[b-sdbls1ddzl] {
    display: flex;
    gap: var(--space-2);
    margin: 0;
    padding: 0;
    border: 0;
}

.weight-filter legend[b-sdbls1ddzl] {
    margin-bottom: var(--space-1);
    color: var(--color-heading);
    font-weight: 600;
}

.weight-filter input[type="number"][b-sdbls1ddzl] {
    width: 5rem;
    padding: var(--space-1) var(--space-2);
}

.weight-filter button[b-sdbls1ddzl] {
    font-weight: inherit;
}

.disc-section[b-sdbls1ddzl] {
    margin-bottom: var(--space-6);
    scroll-margin-top: var(--space-4);
}

.disc-section h3[b-sdbls1ddzl] {
    padding-bottom: var(--space-2);
    border-bottom: 1px solid var(--color-border-strong);
}

.disc-grid[b-sdbls1ddzl] {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(11rem, 1fr));
    gap: var(--space-5);
    margin: 0;
    padding: 0;
    list-style: none;
}

@media (max-width: 48rem) {
    .product-top[b-sdbls1ddzl] {
        grid-template-columns: minmax(0, 1fr);
        gap: var(--space-4);
    }

    .disc-grid[b-sdbls1ddzl] {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: var(--space-3);
    }
}
/* /Components/Pages/Checkout/Cart.razor.rz.scp.css */
/* The cart page (spec S08), moved from app.css (TD-055). Scoped: these rules reach only what
   Cart.razor renders itself, not BuyAgainNotice. Rules the cart shares with checkout, the order
   pages or the layout (.link-button, .cart-line-detail, .order-line-*, .order-amounts,
   .applied-balances, .balance-form, .inline-form, .gift-message, .notice, .hint) stay in app.css. */
.cart-page[b-vquk5byqdq] {
    max-width: 52rem;
}

.cart-lines[b-vquk5byqdq] {
    margin: 0 0 var(--space-4);
    padding: 0;
    list-style: none;
}

.cart-line[b-vquk5byqdq] {
    display: grid;
    grid-template-columns: 4rem minmax(0, 1fr) auto auto auto;
    align-items: center;
    gap: var(--space-3);
    padding: var(--space-3) 0;
    border-bottom: 1px solid var(--color-border-strong);
}

.cart-line-name[b-vquk5byqdq] {
    color: var(--color-heading);
    overflow-wrap: anywhere;
}

/* Under the name, as .cart-line-detail (app.css) is, but in the heading's colour. */
.cart-line-note[b-vquk5byqdq] {
    display: block;
    color: var(--color-heading);
    font-size: 0.875rem;
    font-style: italic;
}

.cart-line-quantity input[b-vquk5byqdq] {
    width: 4.5rem;
    padding: var(--space-1) var(--space-2);
}

.cart-line.unavailable .cart-line-name a[b-vquk5byqdq] {
    color: var(--color-text);
}

.cart-hint[b-vquk5byqdq] {
    text-align: right;
}

.cart-actions[b-vquk5byqdq] {
    text-align: right;
}

.pending-order p[b-vquk5byqdq] {
    margin: 0 0 var(--space-2);
}

/* Spec S34: a cart staff built, its note and its prices. */
.cart-link-note h2[b-vquk5byqdq] {
    margin: 0 0 var(--space-2);
    font-size: 1rem;
}

.cart-link-note p[b-vquk5byqdq] {
    margin: 0 0 var(--space-2);
}

.cart-link-price[b-vquk5byqdq] {
    display: block;
    font-weight: 600;
}

@media (max-width: 48rem) {
    .cart-line[b-vquk5byqdq] {
        grid-template-columns: 3rem minmax(0, 1fr) auto;
    }

    .cart-line .order-line-image img[b-vquk5byqdq] {
        width: 3rem;
        height: 3rem;
    }

    .cart-line-quantity[b-vquk5byqdq] {
        grid-column: 2;
    }

    .cart-line .order-line-total[b-vquk5byqdq] {
        grid-column: 3;
        grid-row: 1;
    }

    .cart-line-remove[b-vquk5byqdq] {
        grid-column: 3;
        grid-row: 2;
        text-align: right;
    }
}
/* /Components/Pages/Checkout/CheckoutAddress.razor.rz.scp.css */
/* The address step (spec S08, rules 10 and 14), moved from app.css (TD-055). Without JavaScript
   every field is in the page; these hide the ones that do not apply. The server ignores hidden
   fields whatever the browser sends. The form is an EditForm's and carries no scope attribute,
   which only the fieldsets need. */
.checkout-address:has(#delivery-pickup:checked) .shipping-fields[b-rbs62i4ewl],
.checkout-address:has(#same-as-shipping:checked):not(:has(#delivery-pickup:checked)) .billing-fields[b-rbs62i4ewl] {
    display: none;
}
/* /Components/Pages/Checkout/CheckoutBody.razor.rz.scp.css */
/* Checkout's two columns (spec S08), moved from app.css (TD-055): the page's content and the
   summary, which the steps' frame and the payment page both draw with CheckoutBody. The summary's
   lines are the caller's markup, so their rules reach them with ::deep. */
.checkout-body[b-8bkei9jvhf] {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 20rem;
    align-items: start;
    gap: var(--space-6);
}

.checkout-main[b-8bkei9jvhf] {
    min-width: 0;
}

.checkout-summary[b-8bkei9jvhf] {
    padding: var(--space-4);
    background: var(--color-submenu-bg);
}

.checkout-summary h2[b-8bkei9jvhf] {
    margin: 0 0 var(--space-3);
    font-size: 1.25rem;
}

[b-8bkei9jvhf] .summary-lines {
    margin: 0;
    padding: 0;
    list-style: none;
}

[b-8bkei9jvhf] .summary-lines li {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto auto;
    gap: var(--space-2);
    padding: var(--space-2) 0;
    border-bottom: 1px solid var(--color-border-strong);
    font-size: 0.9375rem;
}

[b-8bkei9jvhf] .summary-name {
    color: var(--color-heading);
    overflow-wrap: anywhere;
}

[b-8bkei9jvhf] .summary-amount {
    color: var(--color-heading);
    white-space: nowrap;
}

@media (max-width: 48rem) {
    .checkout-body[b-8bkei9jvhf] {
        grid-template-columns: minmax(0, 1fr);
    }

    /* The summary comes first on a phone, so the cart is in view before the form. */
    .checkout-summary[b-8bkei9jvhf] {
        order: -1;
    }
}
/* /Components/Pages/Checkout/CheckoutComplete.razor.rz.scp.css */
/* The confirmation page (spec S08, rule 43), moved from app.css (TD-055). */
.complete-page section[b-xmbrsevsye] {
    margin-top: var(--space-5);
}
/* /Components/Pages/Checkout/CheckoutContact.razor.rz.scp.css */
/* The contact step (spec S08, rules 8 and 9), moved from app.css (TD-055). */
.checkout-sign-in[b-1o4o8l0d3a] {
    max-width: 36rem;
    margin-bottom: var(--space-5);
}

.checkout-sign-in p[b-1o4o8l0d3a] {
    margin: 0 0 var(--space-2);
}
/* /Components/Pages/Checkout/CheckoutFrame.razor.rz.scp.css */
/* The checkout steps' frame (spec S08), moved from app.css (TD-055): the steps, the cart summary's
   subtotal and coupons, and the steps' forms. Three steps' forms are EditForms, and the <form> an
   EditForm renders carries no component's scope attribute, so the forms' rules are here under
   ::deep, reaching every form inside the frame; that is also why the review step's .place-order
   is here. The columns and the summary's lines are CheckoutBody's. */
.checkout-steps ol[b-ai1h1r4qql] {
    display: flex;
    flex-wrap: wrap;
    gap: var(--space-2) var(--space-5);
    margin: 0 0 var(--space-5);
    padding: 0;
    list-style: none;
    counter-reset: step;
}

.checkout-steps li[b-ai1h1r4qql] {
    counter-increment: step;
}

.checkout-steps li[b-ai1h1r4qql]::before {
    content: counter(step) ". ";
}

.checkout-steps [aria-current="step"][b-ai1h1r4qql] {
    color: var(--color-heading);
    font-weight: 700;
}

.summary-subtotal[b-ai1h1r4qql] {
    display: flex;
    justify-content: space-between;
    color: var(--color-heading);
    font-weight: 700;
}

/* Spec S12: a coupon line above the subtotal, in body weight. */
.summary-coupon[b-ai1h1r4qql] {
    font-weight: 400;
    margin-bottom: 0;
}

[b-ai1h1r4qql] .checkout-form {
    max-width: 36rem;
}

[b-ai1h1r4qql] .checkout-form h2 {
    margin: 0 0 var(--space-2);
}

[b-ai1h1r4qql] .checkout-form fieldset {
    display: flex;
    flex-direction: column;
    gap: var(--space-2);
    margin: 0 0 var(--space-4);
    padding: 0;
    border: 0;
}

[b-ai1h1r4qql] .checkout-form legend {
    margin-bottom: var(--space-2);
    color: var(--color-heading);
    font-size: 1.25rem;
    font-weight: 700;
}

/* The review step's "Continue to payment" or "Place order". */
[b-ai1h1r4qql] .place-order {
    padding-top: var(--space-4);
    border-top: 1px solid var(--color-border-strong);
}
/* /Components/Pages/Checkout/CheckoutPay.razor.rz.scp.css */
/* The payment page (spec S08, rules 36 and 39 to 41), moved from app.css (TD-055). Its columns and
   summary lines are CheckoutBody's. */
.hold-notice[b-hwz5v6h9dw] {
    margin: 0 0 var(--space-4);
}

.payment-form[b-hwz5v6h9dw] {
    display: flex;
    flex-direction: column;
    gap: var(--space-3);
    max-width: 32rem;
}

/* Stripe's Payment Element mounts here. */
.payment-element[b-hwz5v6h9dw] {
    min-height: 4rem;
}

.payment-form .button:disabled[b-hwz5v6h9dw] {
    cursor: not-allowed;
    opacity: 0.55;
}

.change-order[b-hwz5v6h9dw] {
    margin-top: var(--space-6);
}

.change-order .hint[b-hwz5v6h9dw] {
    display: block;
}

/* The summary's amounts, as wide as the summary. */
.pay-page .order-amounts[b-hwz5v6h9dw] {
    max-width: none;
    margin-top: var(--space-3);
}
/* /Components/Pages/Checkout/CheckoutReview.razor.rz.scp.css */
/* The review step (spec S08), with its coupons (S12), gift cards and store credit (S13 part B)
   and the order bump (S14), moved from app.css (TD-055). Its place-order form is an EditForm, so
   .place-order is CheckoutFrame's. Rules it shares with the cart or the order pages
   (.order-line-*, .order-amounts, .applied-balances, .balance-form, .inline-form, .address-pair)
   stay in app.css. */
.review-section[b-mmgtp88sde] {
    margin-bottom: var(--space-5);
}

.review-details[b-mmgtp88sde] {
    margin-bottom: var(--space-5);
}

/* AddressBlock's paragraph too, which is its own markup. */
.review-details[b-mmgtp88sde]  p {
    margin: 0 0 var(--space-1);
}

.review-balances h2[b-mmgtp88sde] {
    margin-bottom: var(--space-3);
}

/* Spec S14: the order bump, a panel under the order lines. */
.order-bump[b-mmgtp88sde] {
    padding: var(--space-4);
    border: 1px solid var(--color-border-strong);
    border-radius: var(--radius-2);
    background: var(--color-surface);
}

.order-bump h2[b-mmgtp88sde] {
    margin: 0 0 var(--space-2);
    font-size: 1.125rem;
}

.order-bump-items[b-mmgtp88sde] {
    margin: 0;
    padding: 0;
    list-style: none;
}

.order-bump-items li[b-mmgtp88sde] {
    display: grid;
    grid-template-columns: 4rem minmax(0, 1fr) auto;
    align-items: center;
    gap: var(--space-3);
    padding: var(--space-3) 0;
}

.order-bump-items li + li[b-mmgtp88sde] {
    border-top: 1px solid var(--color-border-strong);
}

.order-bump-name[b-mmgtp88sde] {
    display: block;
    color: var(--color-heading);
    font-weight: 600;
    overflow-wrap: anywhere;
}

.order-bump-detail[b-mmgtp88sde] {
    display: block;
    color: var(--color-muted);
    font-size: 0.875rem;
}

.order-bump-price[b-mmgtp88sde] {
    display: block;
    color: var(--color-heading);
    font-weight: 600;
}

.order-bump-price del[b-mmgtp88sde] {
    margin-left: var(--space-2);
    color: var(--color-muted);
    font-weight: 400;
}

.order-bump-items .button[b-mmgtp88sde] {
    border-radius: var(--radius-1);
    white-space: nowrap;
}

/* A bump line's Remove, under its name in the order lines. */
.order-line-remove[b-mmgtp88sde] {
    display: block;
    font-size: 0.875rem;
}

@media (max-width: 48rem) {
    .order-bump-items li[b-mmgtp88sde] {
        grid-template-columns: 3rem minmax(0, 1fr);
    }

    .order-bump-items .order-line-image img[b-mmgtp88sde] {
        width: 3rem;
        height: 3rem;
    }

    .order-bump-items form[b-mmgtp88sde] {
        grid-column: 2;
    }
}
/* /Components/Pages/Checkout/CheckoutShipping.razor.rz.scp.css */
/* The shipping step (spec S08, rules 11 and 18 to 24), moved from app.css (TD-055). */
.shipping-method[b-dp54w802el] {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr) auto;
    align-items: center;
    gap: var(--space-3);
    padding: var(--space-3);
    border: 1px solid var(--color-border-strong);
    cursor: pointer;
}

.shipping-method:has(input:checked)[b-dp54w802el] {
    border-color: var(--color-heading);
}

.shipping-method-price[b-dp54w802el] {
    color: var(--color-heading);
    font-weight: 600;
    white-space: nowrap;
}
/* /Components/Pages/Content/Faq.razor.rz.scp.css */
/* The FAQ: questions grouped by topic, each a <details> that opens in place (no script).
   Cards follow spec S37's look: a surface, a 1px border and --radius-2, no shadows. */
.faq-intro[b-7cz47m4w04] {
    color: var(--color-muted);
}

.faq-group[b-7cz47m4w04] {
    margin-top: var(--space-6);
}

.faq-group h2[b-7cz47m4w04],
.faq-contact h2[b-7cz47m4w04] {
    margin: 0 0 var(--space-3);
    font-size: 1.25rem;
}

.faq-item[b-7cz47m4w04] {
    background: var(--color-surface);
    border: 1px solid var(--color-border-strong);
    border-radius: var(--radius-2);
}

.faq-item + .faq-item[b-7cz47m4w04] {
    margin-top: var(--space-2);
}

.faq-item summary[b-7cz47m4w04] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: var(--space-3);
    padding: var(--space-3) var(--space-4);
    color: var(--color-heading);
    font-weight: 600;
    cursor: pointer;
    list-style: none;
    border-radius: var(--radius-2);
}

.faq-item summary[b-7cz47m4w04]::-webkit-details-marker {
    display: none;
}

/* A chevron drawn with two borders: down when closed, up when open. */
.faq-item summary[b-7cz47m4w04]::after {
    content: "";
    flex: none;
    width: 0.5rem;
    height: 0.5rem;
    margin-right: var(--space-1);
    border-right: 2px solid currentColor;
    border-bottom: 2px solid currentColor;
    transform: translateY(-25%) rotate(45deg);
}

.faq-item[open] summary[b-7cz47m4w04]::after {
    transform: translateY(25%) rotate(-135deg);
}

.faq-item summary:hover[b-7cz47m4w04] {
    color: var(--color-link);
}

.faq-item summary:focus-visible[b-7cz47m4w04] {
    outline: 2px solid var(--color-link);
    outline-offset: 2px;
}

.faq-answer[b-7cz47m4w04] {
    padding: 0 var(--space-4) var(--space-2);
}

.faq-answer p[b-7cz47m4w04],
.faq-answer ul[b-7cz47m4w04] {
    margin: 0 0 var(--space-3);
}

.faq-answer ul[b-7cz47m4w04] {
    padding-left: var(--space-5);
}

.faq-note[b-7cz47m4w04] {
    color: var(--color-muted);
    font-size: 0.9375rem;
}

.faq-contact[b-7cz47m4w04] {
    margin-top: var(--space-6);
    padding: var(--space-4) var(--space-5);
    border: 1px solid var(--color-border-strong);
    border-radius: var(--radius-2);
}

.faq-contact p[b-7cz47m4w04] {
    margin: 0;
}

@media (prefers-reduced-motion: no-preference) {
    .faq-item summary[b-7cz47m4w04]::after {
        transition: transform 0.15s ease;
    }
}
/* /Components/Pages/Home.razor.rz.scp.css */
/* The home page (spec S38, rules 1 to 8, and S41 rule 16's Flight Finder band), moved from
   app.css (TD-055). Scoped: these rules reach only what Home.razor writes itself, so the featured
   rows' cards (ProductCardView's markup) are reached with ::deep, and the new-discs carousel's cards
   have their own stylesheet (CarouselCard.razor.css). What the page shares stays in app.css: the
   hero's .button-accent and .button-outline with the other buttons, the flight numbers' pill
   (.carousel-flight, with the listings' .product-flight), the listing card and .product-grid, and the
   Flight Finder's .flight-path-axis. Every colour is a property in app.css. */
.home-hero .button[b-3r08hqndds] {
    padding: var(--space-3) var(--space-5);
    border-radius: var(--radius-1);
    font-size: 1.0625rem;
}

.home-hero[b-3r08hqndds] {
    position: relative;
    display: grid;
    grid-template-columns: minmax(0, 3fr) minmax(0, 2fr);
    align-items: center;
    gap: var(--space-5);
    margin: 0 0 var(--space-8);
    padding: var(--space-8) var(--space-6);
    overflow: hidden;
    border-radius: var(--radius-5);
    background: var(--color-banner-bg);
    color: var(--color-banner-text);
}

.home-hero-text[b-3r08hqndds] {
    position: relative;
    z-index: 1;
}

.home-hero h1[b-3r08hqndds] {
    margin: 0 0 var(--space-3);
    color: var(--color-banner-text);
    font-size: clamp(2.25rem, 5.5vw, 3.5rem);
    line-height: 1.05;
    letter-spacing: -0.02em;
}

.home-hero-lead[b-3r08hqndds] {
    max-width: 32rem;
    margin: 0;
    color: var(--color-banner-muted);
    font-size: 1.1875rem;
}

.home-hero-actions[b-3r08hqndds] {
    display: flex;
    flex-wrap: wrap;
    gap: var(--space-3);
    margin: var(--space-5) 0 0;
}

/* The image keeps its own shape (a square badge now, a photo later), within a height. */
.home-hero-photo[b-3r08hqndds] {
    justify-self: end;
    margin: 0;
}

.home-hero-photo img[b-3r08hqndds] {
    display: block;
    max-width: 100%;
    max-height: 22rem;
    width: auto;
    height: auto;
    border-radius: var(--radius-3);
}

.home-section[b-3r08hqndds] {
    margin: 0 0 var(--space-8);
}

/* The Flight Finder's band (S41 rule 16): a section like the others, not a promotion. The
   kinds of disc are tiles, and the drawing of three
   flights from one tee sits in a tile of its own beside them. */
.home-flight[b-3r08hqndds] {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    align-items: center;
    gap: var(--space-6);
    margin: 0 0 var(--space-8);
}

.home-flight h2[b-3r08hqndds] {
    margin: 0 0 var(--space-2);
    font-size: clamp(1.5rem, 3vw, 2rem);
    letter-spacing: -0.01em;
}

.home-flight-lead[b-3r08hqndds] {
    max-width: 38rem;
    margin: 0 0 var(--space-4);
}

.home-flight-presets[b-3r08hqndds] {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: var(--space-3);
    margin: 0 0 var(--space-5);
    padding: 0;
    list-style: none;
}

/* The name and arrow on one line, the speeds under them. */
.home-flight-presets a[b-3r08hqndds] {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    align-content: center;
    column-gap: var(--space-2);
    height: 100%;
}

.home-flight-presets a[b-3r08hqndds]::after {
    grid-row: 1;
    grid-column: 2;
}

.home-flight-preset-summary[b-3r08hqndds] {
    grid-column: 1 / -1;
    color: var(--color-muted);
    font-size: 0.875rem;
    font-weight: 400;
}

.home-flight .button[b-3r08hqndds] {
    padding: var(--space-3) var(--space-5);
    border-radius: var(--radius-1);
    font-size: 1.0625rem;
}

.home-flight-drawing[b-3r08hqndds] {
    display: block;
    box-sizing: content-box;
    width: auto;
    height: 14rem;
    padding: var(--space-4) var(--space-8);
    border: 1px solid var(--color-border-strong);
    border-radius: var(--radius-3);
    background: var(--color-surface);
}

.home-flight-drawing path[b-3r08hqndds] {
    fill: none;
    stroke: var(--color-heading);
    stroke-width: 1.6;
    stroke-linecap: round;
}

.home-flight-drawing path:nth-of-type(1)[b-3r08hqndds] {
    stroke: var(--color-link);
}

.home-flight-drawing path:nth-of-type(3)[b-3r08hqndds] {
    stroke: var(--color-muted);
}

.home-section-head[b-3r08hqndds],
.home-row-head[b-3r08hqndds] {
    display: flex;
    flex-wrap: wrap;
    align-items: baseline;
    justify-content: space-between;
    gap: var(--space-2) var(--space-4);
    margin-bottom: var(--space-4);
}

.home-section-head h2[b-3r08hqndds] {
    margin: 0;
    font-size: clamp(1.5rem, 3vw, 2rem);
    letter-spacing: -0.01em;
}

.home-row[b-3r08hqndds] {
    margin: 0 0 var(--space-6);
}

.home-row-head h3[b-3r08hqndds] {
    margin: 0;
    font-size: 1.25rem;
}

.home-row-head h3 a[b-3r08hqndds] {
    color: var(--color-heading);
}

.home-row-head h3 a:hover[b-3r08hqndds] {
    color: var(--color-link-hover);
}

.see-all[b-3r08hqndds] {
    font-weight: 600;
    white-space: nowrap;
}

.see-all[b-3r08hqndds]::after {
    content: " \2192";
}

.home-row-grid[b-3r08hqndds] {
    grid-template-columns: repeat(4, minmax(0, 1fr));
    margin-bottom: 0;
}

/* The card's photo is ProductCardView's markup. */
.home-row-grid[b-3r08hqndds]  .product-image {
    border-radius: var(--radius-3);
    overflow: hidden;
    background: var(--color-surface);
}

/* The carousel (rules 2 and 3): a track that scrolls inside itself and snaps to each card. */
.carousel[b-3r08hqndds] {
    position: relative;
    overflow-x: auto;
    overscroll-behavior-x: contain;
    scroll-snap-type: x mandatory;
    scroll-behavior: smooth;
    scroll-padding-inline: var(--space-1);
    padding: var(--space-1) 0 var(--space-3);
    scrollbar-width: thin;
}

.carousel:focus-visible[b-3r08hqndds] {
    outline: 2px solid var(--color-link);
    outline-offset: 4px;
}

.carousel-track[b-3r08hqndds] {
    display: grid;
    grid-auto-flow: column;
    grid-auto-columns: minmax(12rem, 14.5rem);
    gap: var(--space-4);
    margin: 0;
    padding: 0 var(--space-1);
    list-style: none;
}

/* The Pause button (rule 3) beside "See all new discs"; hidden until carousel.js shows it. */
.carousel-controls[b-3r08hqndds] {
    display: flex;
    align-items: center;
    gap: var(--space-3);
}

.carousel-toggle[b-3r08hqndds] {
    display: inline-flex;
    align-items: center;
    gap: var(--space-1);
    min-height: 2rem;
    padding: 0 var(--space-3);
    border: 1px solid var(--color-border-strong);
    border-radius: var(--radius-pill);
    background: transparent;
    color: var(--color-heading);
    font-size: 0.875rem;
    font-weight: 600;
}

.carousel-toggle[b-3r08hqndds]::before {
    content: "\275A\275A" / "";
    font-size: 0.625rem;
    letter-spacing: 0.1em;
}

.carousel-toggle[data-state="paused"][b-3r08hqndds]::before {
    content: "\25B6" / "";
    letter-spacing: 0;
}

.carousel-toggle:hover[b-3r08hqndds] {
    background: var(--color-surface);
}

.carousel-toggle:focus-visible[b-3r08hqndds] {
    outline: 2px solid var(--color-link);
    outline-offset: 2px;
}

/* Where the browser can draw them without script: arrows and dots (Chromium 135 and later). */
@supports selector(::scroll-button(*)) {
    .carousel[b-3r08hqndds] {
        anchor-name: --new-discs;
    }

    .carousel[b-3r08hqndds]::scroll-button(*) {
        position: fixed;
        position-anchor: --new-discs;
        top: anchor(center);
        translate: 0 -50%;
        width: 2.75rem;
        height: 2.75rem;
        border: 0;
        border-radius: var(--radius-round);
        background: var(--color-page-bg);
        color: var(--color-heading);
        box-shadow: 0 0.25rem 1rem var(--color-shadow);
        font-size: 1.5rem;
        line-height: 1;
        cursor: pointer;
    }

    .carousel[b-3r08hqndds]::scroll-button(*):disabled {
        opacity: 0;
        cursor: default;
    }

    .carousel[b-3r08hqndds]::scroll-button(*):focus-visible {
        outline: 2px solid var(--color-link);
        outline-offset: 2px;
    }

    .carousel[b-3r08hqndds]::scroll-button(left) {
        content: "\2039" / "Previous discs";
        left: calc(anchor(left) + 0.5rem);
    }

    .carousel[b-3r08hqndds]::scroll-button(right) {
        content: "\203A" / "Next discs";
        right: calc(anchor(right) + 0.5rem);
    }
}

/* The dots replace the scrollbar, so only one bar shows; without them the scrollbar stays. */
@supports selector(::scroll-marker) {
    .carousel[b-3r08hqndds] {
        scroll-marker-group: after;
        scrollbar-width: none;
    }

    .carousel[b-3r08hqndds]::scroll-marker-group {
        display: flex;
        flex-wrap: wrap;
        justify-content: center;
        gap: var(--space-2);
        padding-top: var(--space-2);
    }
}

/* The Flight Finder band's kinds of disc. */
.home-flight-presets a[b-3r08hqndds] {
    min-height: 4rem;
    padding: var(--space-3) var(--space-4);
    border: 1px solid var(--color-border-strong);
    border-radius: var(--radius-3);
    background: var(--color-surface);
    color: var(--color-heading);
    font-weight: 700;
}

.home-flight-presets a[b-3r08hqndds]::after {
    content: "\2192";
    color: var(--color-link);
}

.home-flight-presets a:hover[b-3r08hqndds] {
    border-color: var(--color-heading);
    color: var(--color-heading);
}

/* Plain rules, not a card: a line above and below, a thin divider between promises, and
   small line icons in the heading colour. One to four promises show (some are settings), so
   the columns are as many as there are. */
.home-promises[b-3r08hqndds] {
    margin: 0 0 var(--space-6);
    border-top: 1px solid var(--color-border-strong);
    border-bottom: 1px solid var(--color-border-strong);
}

.home-promises ul[b-3r08hqndds] {
    display: grid;
    grid-auto-flow: column;
    grid-auto-columns: minmax(0, 1fr);
    margin: 0;
    padding: 0;
    list-style: none;
}

/* The icon beside the promise, the detail on its own line under it. */
.home-promises li[b-3r08hqndds] {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr);
    column-gap: var(--space-2);
    align-content: start;
    padding: var(--space-5);
    color: var(--color-muted);
    line-height: 1.4;
    text-wrap: pretty;
}

.home-promises li:first-child[b-3r08hqndds] {
    padding-left: 0;
}

.home-promises li:last-child[b-3r08hqndds] {
    padding-right: 0;
}

.home-promises li + li[b-3r08hqndds] {
    border-left: 1px solid var(--color-border-strong);
}

.home-promises strong[b-3r08hqndds] {
    color: var(--color-heading);
    font-size: 1.0625rem;
}

.home-promises li > span[b-3r08hqndds] {
    grid-column: 2;
}

.home-promises svg[b-3r08hqndds] {
    width: 1.125rem;
    height: 1.125rem;
    margin-top: 0.2rem;
    fill: none;
    stroke: var(--color-heading);
    stroke-width: 1.75;
    stroke-linecap: round;
    stroke-linejoin: round;
}

@media (max-width: 48rem) {
    .home-hero[b-3r08hqndds] {
        grid-template-columns: minmax(0, 1fr);
        padding: var(--space-6) var(--space-4);
        border-radius: var(--radius-4);
    }

    /* On a phone the image comes first, above the words, and shorter. */
    .home-hero-photo[b-3r08hqndds] {
        order: -1;
        justify-self: center;
    }

    .home-hero-photo img[b-3r08hqndds] {
        max-height: 12rem;
    }

    .home-flight[b-3r08hqndds] {
        grid-template-columns: minmax(0, 1fr);
    }

    .home-flight-presets[b-3r08hqndds] {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    /* The name across the tile and the arrow beside the speeds, so "Distance drivers" keeps
       one line in a half-width tile. */
    .home-flight-preset-name[b-3r08hqndds] {
        grid-column: 1 / -1;
    }

    .home-flight-preset-summary[b-3r08hqndds] {
        grid-column: 1;
    }

    .home-flight-presets a[b-3r08hqndds]::after {
        grid-row: 2;
    }

    /* The drawing is decoration; a phone gives its room to the links. */
    .home-flight-drawing[b-3r08hqndds] {
        display: none;
    }

    .home-row-grid[b-3r08hqndds] {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .carousel-track[b-3r08hqndds] {
        grid-auto-columns: 62%;
        gap: var(--space-3);
    }

    /* A finger scrolls it; the arrows would sit over the cards. */
    .carousel[b-3r08hqndds]::scroll-button(*) {
        display: none;
    }
}

/* Earlier than the phone breakpoint, four columns are too narrow below about 900 px. The
   Flight Finder's kinds of disc go two to a row: beside the drawing's tile, four leave each
   tile 110 to 140 px, and "Midranges" ran under its arrow (11 px at 820 px, an iPad Air in
   portrait). And one promise goes under another, a rule between: four columns leave each
   detail 110 to 135 px and wrap the headings. */
@media (max-width: 56rem) {
    .home-flight-presets[b-3r08hqndds] {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .home-promises ul[b-3r08hqndds] {
        grid-auto-flow: row;
    }

    .home-promises li[b-3r08hqndds] {
        padding: var(--space-4) 0;
    }

    .home-promises li + li[b-3r08hqndds] {
        border-left: 0;
        border-top: 1px solid var(--color-border);
    }
}

@media (prefers-reduced-motion: reduce) {
    .carousel[b-3r08hqndds] {
        scroll-behavior: auto;
    }
}
/* /Components/Pages/MyAccount/AllotmentCard.razor.rz.scp.css */
.allotment-card[b-1l4y35hd4g] { padding:clamp(1.25rem,3vw,2rem); margin:1.5rem 0 2rem; border:1px solid var(--color-border); border-radius:18px; background:var(--color-surface); }
.allotment-heading[b-1l4y35hd4g] { display:flex; justify-content:space-between; gap:1rem; align-items:center; flex-wrap:wrap; }
.allotment-eyebrow[b-1l4y35hd4g] { font-size:.75rem; letter-spacing:.14em; font-weight:700; }
.allotment-level[b-1l4y35hd4g] { border:1px solid currentColor; border-radius:999px; padding:.3rem .8rem; font-size:.85rem; }
.allotment-usage strong[b-1l4y35hd4g] { font-size:2rem; }
.allotment-track[b-1l4y35hd4g] { display:flex; gap:6px; height:18px; margin:1rem 0; }
.allotment-track span[b-1l4y35hd4g] { flex:1; border-radius:5px; background:#b8c4ba; }
.allotment-track .used[b-1l4y35hd4g] { background:#24764c; }
.allotment-track .reserved[b-1l4y35hd4g] { background:repeating-linear-gradient(135deg,#b38629 0px,#b38629 4px,#ecd9a7 4px,#ecd9a7 8px); }
.allotment-expiry[b-1l4y35hd4g] { font-size:.9rem; }
.allotment-retail[b-1l4y35hd4g] { display:flex; justify-content:space-between; gap:1rem; flex-wrap:wrap; border-top:1px solid #b8c4ba; padding-top:1rem; }
.allotment-history summary[b-1l4y35hd4g] { cursor:pointer; font-weight:600; }
.allotment-history li[b-1l4y35hd4g] { margin:1rem 0; }
/* /Components/Pages/Pos/PosLogin.razor.rz.scp.css */
.pos-install-help[b-ni8w9vvtp6] { display: inline-flex; align-items: center; gap: 7px; min-height: 44px; padding: 6px 0; border: 0; background: transparent; color: inherit; font: inherit; font-size: 14px; cursor: pointer; }
.pos-install-help:focus-visible[b-ni8w9vvtp6] { outline: 2px solid currentColor; outline-offset: 3px; }
dialog[b-ni8w9vvtp6] { width: min(520px, calc(100vw - 32px)); max-height: calc(100dvh - 40px); overflow-y: auto; border: 1px solid var(--color-border-strong); border-radius: 8px; padding: 24px; background: var(--color-page-bg); color: var(--color-text); }
dialog[b-ni8w9vvtp6]::backdrop { background: #0008; }
.install-heading[b-ni8w9vvtp6] { display: flex; align-items: center; justify-content: space-between; gap: 16px; }
.install-heading h2[b-ni8w9vvtp6] { margin: 0; font-size: 20px; }
.install-heading button[b-ni8w9vvtp6] { flex: none; width: 40px; height: 40px; border: 0; border-radius: 4px; background: transparent; color: inherit; font-size: 25px; cursor: pointer; }
dialog h3[b-ni8w9vvtp6] { margin: 20px 0 8px; font-size: 16px; }
dialog p[b-ni8w9vvtp6], dialog li[b-ni8w9vvtp6] { font-size: 14px; line-height: 1.6; }
dialog ol[b-ni8w9vvtp6] { padding-left: 22px; margin-top: 8px; }
dialog li[b-ni8w9vvtp6] { padding-left: 3px; margin-bottom: 6px; }
.install-note[b-ni8w9vvtp6] { padding-top: 12px; border-top: 1px solid var(--color-border-strong); }
.install-footer[b-ni8w9vvtp6] { display: flex; align-items: center; flex-wrap: wrap; gap: 12px; }
.install-footer a[b-ni8w9vvtp6] { font-size: 12px; }
.install-footer .button[b-ni8w9vvtp6] { margin-left: auto; }
/* /Components/Pages/WelcomeOffer/WelcomeOfferPage.razor.rz.scp.css */
/* The welcome offer's page (spec S38, rules 15 to 17), moved from app.css (TD-055). Links inside a
   sentence are bold: nothing is underlined here, and the link colour alone is too close to the
   text's for WCAG's 3:1 (axe's link-in-text-block). The welcome code's box (.welcome-code) stays in
   app.css, since My Account draws it too, and the confirmation page has no rules of its own. */
.welcome-offer-page p a[b-tgcgareqr6] {
    font-weight: 600;
}
/* /Components/Pos/PosCashCountPanel.razor.rz.scp.css */
/* Spec S30 rules 43 to 48: the cash count, on the POS's Reports. Large, plain touch targets. */
.cash-count[b-r8q4z445i5] { font-size: 14px; color: var(--mud-palette-text-primary); padding-top: 16px; }
.heading[b-r8q4z445i5] { display: flex; flex-wrap: wrap; align-items: baseline; justify-content: space-between; gap: 4px 16px; margin-bottom: 12px; }
h3[b-r8q4z445i5] { font-size: 16px; font-weight: 650; margin: 0; }
h4[b-r8q4z445i5] { font-size: 14px; font-weight: 650; margin: 20px 0 8px; }
.muted[b-r8q4z445i5] { color: var(--mud-palette-text-secondary); font-size: 12px; }
.figures[b-r8q4z445i5] { display: grid; grid-template-columns: repeat(auto-fit, minmax(170px, 1fr)); gap: 12px; margin: 0 0 16px; padding: 16px; background: var(--mud-palette-background-gray); border-radius: 4px; }
.figures div[b-r8q4z445i5] { min-width: 0; }
dt[b-r8q4z445i5] { font-size: 12px; color: var(--mud-palette-text-secondary); }
dd[b-r8q4z445i5] { margin: 4px 0 0; display: flex; flex-wrap: wrap; align-items: baseline; gap: 4px 8px; }
dd strong[b-r8q4z445i5] { font-size: 20px; font-variant-numeric: tabular-nums; }
.expected dd strong[b-r8q4z445i5] { font-size: 24px; }
.source[b-r8q4z445i5] { flex-basis: 100%; }
label[b-r8q4z445i5] { display: flex; flex-direction: column; gap: 6px; font-size: 13px; color: var(--mud-palette-text-secondary); }
input[b-r8q4z445i5], textarea[b-r8q4z445i5] { font: inherit; font-size: 16px; min-height: 44px; padding: 9px 12px; border: 1px solid var(--mud-palette-lines-inputs); border-radius: 4px; background: var(--mud-palette-surface); color: var(--mud-palette-text-primary); box-sizing: border-box; }
input[b-r8q4z445i5] { font-variant-numeric: tabular-nums; }
#pos-cash-start[b-r8q4z445i5] { width: 9rem; }
#pos-cash-counted[b-r8q4z445i5] { width: 11rem; font-size: 22px; font-weight: 600; }
input:focus[b-r8q4z445i5], textarea:focus[b-r8q4z445i5] { outline: 2px solid var(--mud-palette-primary); outline-offset: 1px; }
button[b-r8q4z445i5] { font: inherit; cursor: pointer; border-radius: 4px; min-height: 44px; }
.link[b-r8q4z445i5] { padding: 0 4px; border: 0; background: none; color: var(--mud-palette-primary); font-weight: 500; font-size: 13px; }
.counted-row[b-r8q4z445i5] { display: flex; flex-wrap: wrap; align-items: flex-end; gap: 16px; }
.result[b-r8q4z445i5] { display: flex; flex-direction: column; justify-content: center; min-width: 11rem; min-height: 64px; padding: 8px 16px; border-radius: 4px; border: 1px solid var(--mud-palette-lines-default); }
.result span[b-r8q4z445i5] { font-size: 12px; font-weight: 600; text-transform: uppercase; letter-spacing: .04em; }
.result strong[b-r8q4z445i5] { font-size: 24px; font-variant-numeric: tabular-nums; }
.result.over[b-r8q4z445i5] { border-color: var(--mud-palette-success); background: color-mix(in srgb, var(--mud-palette-success) 12%, transparent); color: color-mix(in srgb, var(--mud-palette-success) 70%, var(--mud-palette-text-primary)); }
.result.short[b-r8q4z445i5] { border-color: var(--mud-palette-error); background: color-mix(in srgb, var(--mud-palette-error) 12%, transparent); color: color-mix(in srgb, var(--mud-palette-error) 75%, var(--mud-palette-text-primary)); }
.result.balanced[b-r8q4z445i5] { border-color: var(--mud-palette-lines-inputs); }
strong.over[b-r8q4z445i5] { color: color-mix(in srgb, var(--mud-palette-success) 70%, var(--mud-palette-text-primary)); }
strong.short[b-r8q4z445i5] { color: color-mix(in srgb, var(--mud-palette-error) 75%, var(--mud-palette-text-primary)); }
.count-form[b-r8q4z445i5] { display: flex; flex-direction: column; align-items: flex-start; gap: 12px; }
.denominations[b-r8q4z445i5] { display: grid; grid-template-columns: repeat(auto-fill, minmax(230px, 1fr)); gap: 8px 16px; width: 100%; }
.denomination[b-r8q4z445i5] { display: grid; grid-template-columns: 5.5rem 44px 1fr 44px; align-items: center; gap: 0; }
.denomination .label[b-r8q4z445i5] { font-weight: 500; }
.denomination input[b-r8q4z445i5] { width: 100%; min-width: 0; text-align: center; border-radius: 0; border-inline: 0; }
.step[b-r8q4z445i5] { width: 44px; padding: 0; border: 1px solid var(--mud-palette-lines-inputs); background: var(--mud-palette-surface); color: var(--mud-palette-text-primary); font-size: 18px; }
.denomination .step:first-of-type[b-r8q4z445i5] { border-radius: 4px 0 0 4px; }
.denomination .step:last-of-type[b-r8q4z445i5] { border-radius: 0 4px 4px 0; }
.step:disabled[b-r8q4z445i5] { opacity: .35; cursor: default; }
.note[b-r8q4z445i5] { width: 100%; max-width: 32rem; }
.note textarea[b-r8q4z445i5] { width: 100%; resize: vertical; }
.save[b-r8q4z445i5] { padding: 12px 24px; border: 1px solid #1f6942; background: #28794f; color: #fff; font-size: 16px; font-weight: 650; }
.save:disabled[b-r8q4z445i5] { border-color: var(--mud-palette-lines-default); background: var(--mud-palette-background-gray); color: var(--mud-palette-text-secondary); cursor: default; }
.error[b-r8q4z445i5] { margin: 0; color: var(--mud-palette-error); font-weight: 500; }
.saved[b-r8q4z445i5] { margin: 16px 0 0; padding: 10px 14px; border-left: 3px solid var(--mud-palette-success); background: var(--mud-palette-surface); line-height: 1.5; }
.today[b-r8q4z445i5] { list-style: none; margin: 0; padding: 0; }
.today li[b-r8q4z445i5] { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 4px 16px; padding: 10px 0; border-bottom: 1px solid var(--mud-palette-lines-default); font-variant-numeric: tabular-nums; }
/* /Components/Pos/PosCashFloatPrompt.razor.rz.scp.css */
/* Spec S30 rule 42: the opening float prompt, above the POS's ticket. */
.float-prompt[b-42q4nmthho], .float-saved[b-42q4nmthho] { flex: none; margin: 0 0 12px; padding: 10px 14px; border-left: 3px solid var(--mud-palette-warning); border-radius: 3px; background: var(--mud-palette-surface); font-size: 14px; color: var(--mud-palette-text-primary); }
.float-saved[b-42q4nmthho] { display: flex; align-items: center; justify-content: space-between; gap: 12px; border-left-color: var(--mud-palette-success); }
.float-prompt p[b-42q4nmthho] { margin: 0 0 8px; line-height: 1.5; }
.actions[b-42q4nmthho], .float-form[b-42q4nmthho] { display: flex; flex-wrap: wrap; gap: 8px; align-items: flex-end; }
label[b-42q4nmthho] { display: flex; flex-direction: column; gap: 6px; font-size: 13px; color: var(--mud-palette-text-secondary); }
input[b-42q4nmthho] { font: inherit; font-size: 16px; width: 9rem; min-height: 44px; padding: 9px 12px; border: 1px solid var(--mud-palette-lines-inputs); border-radius: 4px; background: var(--mud-palette-surface); color: var(--mud-palette-text-primary); font-variant-numeric: tabular-nums; }
input:focus[b-42q4nmthho] { outline: 2px solid var(--mud-palette-primary); outline-offset: 1px; }
button[b-42q4nmthho] { font: inherit; min-height: 44px; padding: 8px 16px; border-radius: 4px; cursor: pointer; font-weight: 500; }
.primary[b-42q4nmthho] { border: 1px solid var(--mud-palette-primary); background: var(--mud-palette-primary); color: var(--mud-palette-primary-text); }
.plain[b-42q4nmthho] { border: 1px solid var(--mud-palette-lines-inputs); background: var(--mud-palette-surface); color: var(--mud-palette-text-primary); }
button:disabled[b-42q4nmthho] { opacity: .6; cursor: default; }
.hint[b-42q4nmthho] { margin: 8px 0 0 !important; font-size: 12px; color: var(--mud-palette-text-secondary); }
.error[b-42q4nmthho] { margin: 8px 0 0 !important; color: var(--mud-palette-error); font-weight: 500; }
/* /Components/Pos/PosCashGiven.razor.rz.scp.css */
/* Spec S30 rule 10i: touch-sized quick cash buttons, the box, and the change in large type. */
.cash-given[b-jaswioyj7u] { display: flex; flex: 1 1 100%; flex-wrap: wrap; align-items: flex-end; gap: 8px 12px; min-width: 0; }
.quick[b-jaswioyj7u] { display: flex; flex-wrap: wrap; gap: 6px; }
.quick-cash[b-jaswioyj7u] { min-width: 64px; min-height: 48px; padding: 8px 12px; border: 1px solid var(--mud-palette-lines-inputs); border-radius: 4px; background: var(--mud-palette-surface); color: var(--mud-palette-text-primary); font: inherit; font-size: 15px; font-weight: 600; font-variant-numeric: tabular-nums; cursor: pointer; }
.quick-cash:hover:not(:disabled)[b-jaswioyj7u] { background: var(--mud-palette-background-gray); }
.quick-cash.selected[b-jaswioyj7u] { border-color: var(--mud-palette-primary); background: var(--mud-palette-primary); color: var(--mud-palette-primary-text); }
.quick-cash:focus-visible[b-jaswioyj7u] { outline: 2px solid var(--mud-palette-primary); outline-offset: 3px; }
.quick-cash:disabled[b-jaswioyj7u] { cursor: default; opacity: .6; }
.field[b-jaswioyj7u] { display: flex; flex-direction: column; gap: 3px; font-size: 13px; min-width: 0; }
.field > span[b-jaswioyj7u] { color: var(--mud-palette-text-secondary); font-size: 11px; }
input[b-jaswioyj7u] { box-sizing: border-box; width: 110px; height: 48px; min-height: 48px; padding: 9px 12px; border: 1px solid var(--mud-palette-lines-inputs); border-radius: 4px; background: var(--mud-palette-surface); color: var(--mud-palette-text-primary); font: inherit; font-size: 16px; font-variant-numeric: tabular-nums; }
input[b-jaswioyj7u]::placeholder { color: var(--mud-palette-text-secondary); opacity: .8; }
input:focus[b-jaswioyj7u] { outline: 2px solid var(--mud-palette-primary); outline-offset: 1px; border-color: var(--mud-palette-primary); }
.change-due[b-jaswioyj7u], .short[b-jaswioyj7u] { margin: 0; padding: 6px 12px; border-radius: 4px; font-size: 22px; font-weight: 700; line-height: 1.6; font-variant-numeric: tabular-nums; white-space: nowrap; }
.change-due[b-jaswioyj7u] { background: color-mix(in srgb, #28794f 14%, transparent); color: color-mix(in srgb, #28794f 80%, var(--mud-palette-text-primary)); }
.short[b-jaswioyj7u] { background: color-mix(in srgb, var(--mud-palette-error) 12%, transparent); color: color-mix(in srgb, var(--mud-palette-error) 80%, var(--mud-palette-text-primary)); }
@media (max-width: 760px) { .quick-cash[b-jaswioyj7u] { min-width: 56px; padding-inline: 8px; } .change-due[b-jaswioyj7u], .short[b-jaswioyj7u] { font-size: 19px; } }
/* /Components/Pos/PosGiftCardSaleLines.razor.rz.scp.css */
.sold-cards[b-g9jtnm8m46] { list-style: none; margin: 0; padding: 0 14px; }
.sold-card[b-g9jtnm8m46] { display: grid; grid-template-columns: minmax(0, 1fr) auto auto; gap: 10px; align-items: center; padding: 12px 0; border-bottom: 1px solid var(--mud-palette-lines-default); }
.name[b-g9jtnm8m46] { font-weight: 500; }
.muted[b-g9jtnm8m46] { font-size: 12px; line-height: 1.6; color: var(--mud-palette-text-secondary); overflow-wrap: anywhere; }
.message[b-g9jtnm8m46] { white-space: pre-line; }
.remove[b-g9jtnm8m46] { min-width: 44px; min-height: 44px; border: 0; background: transparent; color: var(--mud-palette-text-secondary); font-size: 18px; }
@media (max-width: 450px) { .sold-cards[b-g9jtnm8m46] { padding-inline: 12px; } }
/* /Components/Pos/PosGiftCardsDialog.razor.rz.scp.css */
.cards[b-qqmx2tgbkx] { font-size: 14px; }
.account-card[b-qqmx2tgbkx] { display: flex; justify-content: space-between; align-items: center; padding: 12px 0; border-bottom: 1px solid var(--mud-palette-lines-default); gap: 16px; }
.account-card span[b-qqmx2tgbkx] { display: block; font-size: 12px; color: var(--mud-palette-text-secondary); margin-top: 4px; }
.code-form[b-qqmx2tgbkx] { margin-top: 18px; }
.code-form label[b-qqmx2tgbkx] { display: block; font-size: 13px; margin-bottom: 6px; }
.code-form > div[b-qqmx2tgbkx] { display: flex; gap: 8px; }
.code-form input[b-qqmx2tgbkx] { min-width: 0; flex: 1; padding: 10px; border: 1px solid var(--mud-palette-lines-inputs); border-radius: 4px; color: var(--mud-palette-text-primary); background: var(--mud-palette-surface); }
.code-form button[b-qqmx2tgbkx] { padding: 10px; border: 1px solid var(--mud-palette-lines-inputs); border-radius: 4px; }
.muted[b-qqmx2tgbkx] { font-size: 12px; color: var(--mud-palette-text-secondary); margin-top: 16px; }
/* /Components/Pos/PosKeyedCardDialog.razor.rz.scp.css */
.keyed[b-ykdxt3loxd] { font-size: 14px; }
.amount[b-ykdxt3loxd] { font-size: 22px; margin: 0 0 6px; }
.card-field[b-ykdxt3loxd] { min-height: 48px; margin: 14px 0; padding: 14px 12px; border: 1px solid var(--mud-palette-lines-inputs); border-radius: 4px; background: var(--mud-palette-surface); color: var(--mud-palette-text-primary); }
.muted[b-ykdxt3loxd] { font-size: 12px; color: var(--mud-palette-text-secondary); margin: 8px 0 0; }
.message[b-ykdxt3loxd] { margin: 10px 0 0; font-weight: 500; }
.message.is-error[b-ykdxt3loxd] { color: var(--mud-palette-error); }
/* /Components/Pos/PosNewsletterBox.razor.rz.scp.css */
/* Beside the customer's details (PosPage's .customer-info), small; below them when there is no room. */
.newsletter[b-d8hyok8rm8] { flex: 0 1 190px; min-width: 150px; padding-left: 10px; border-left: 1px solid var(--mud-palette-lines-default); }
.newsletter p[b-d8hyok8rm8] { margin: 0; font-size: 12px; line-height: 1.4; }
.newsletter .muted[b-d8hyok8rm8] { font-size: 11px; color: var(--mud-palette-text-secondary); }
.tick[b-d8hyok8rm8] { display: flex; align-items: center; gap: 8px; min-height: 40px; cursor: pointer; font-size: 12px; font-weight: 500; line-height: 1.3; }
.tick input[b-d8hyok8rm8] { flex: none; width: 20px; height: 20px; margin: 0; accent-color: var(--mud-palette-primary); }
.link-button[b-d8hyok8rm8] { min-height: 40px; padding: 0; border: 0; background: none; color: var(--mud-palette-primary); font-weight: 500; font-size: 12px; }
/* A subscriber: only a small mark, no divider (Tyler, on #267). */
.newsletter.is-subscribed[b-d8hyok8rm8] { flex: 0 0 auto; min-width: 0; padding-left: 0; border-left: 0; }
.newsletter.is-subscribed > p[b-d8hyok8rm8] { padding-top: 2px; }
/* PosPage's rule does not reach a child component's markup (scoped CSS). */
.visually-hidden[b-d8hyok8rm8] { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.message[b-d8hyok8rm8] { margin-top: 4px; }
.message.is-error[b-d8hyok8rm8] { color: var(--mud-palette-error); }
/* Too narrow for both (under 220 + 12 + 190px, PosPage's .customer-info is the container), it
   drops below the details: no divider to the left of nothing. */
@container (max-width: 421px) { .newsletter[b-d8hyok8rm8] { flex-basis: 100%; padding-left: 0; border-left: 0; } }
/* /Components/Pos/PosPage.razor.rz.scp.css */
/* Compact touch workspace: a sale ticket and a single checkout sheet. */
.pos[b-hmxcd001sx] { color: var(--mud-palette-text-primary); font-size: 14px; }
.pos-head[b-hmxcd001sx] { display: flex; flex-wrap: wrap; gap: 12px 24px; align-items: center; justify-content: space-between; margin-bottom: 12px; }
.pos-head:empty[b-hmxcd001sx] { display: none; }
.pos-body[b-hmxcd001sx] { display: grid; grid-template-columns: minmax(0, 3fr) minmax(0, 2fr); gap: 16px; align-items: start; }
.items[b-hmxcd001sx], .checkout[b-hmxcd001sx] { min-width: 0; background: var(--mud-palette-surface); border: 1px solid var(--mud-palette-lines-default); border-radius: 5px; }
.items[b-hmxcd001sx] { min-height: 580px; }
.ticket-heading[b-hmxcd001sx] { display: flex; align-items: center; justify-content: space-between; padding: 16px 18px; border-bottom: 1px solid var(--mud-palette-lines-default); }
.ticket-heading h1[b-hmxcd001sx] { margin: 0; font-size: 17px; font-weight: 650; letter-spacing: -.015em; }
.ticket-heading > span[b-hmxcd001sx] { color: var(--mud-palette-text-secondary); font-size: 13px; font-variant-numeric: tabular-nums; }
.field[b-hmxcd001sx] { display: flex; flex-direction: column; gap: 6px; font-size: 13px; min-width: 0; }
.field.inline[b-hmxcd001sx] { flex-direction: row; align-items: center; gap: 10px; }
.field.grow[b-hmxcd001sx] { flex: 1 1 12rem; }
.field > span[b-hmxcd001sx] { color: var(--mud-palette-text-secondary); }
input[b-hmxcd001sx], select[b-hmxcd001sx] { font: inherit; font-size: 14px; min-height: 44px; padding: 9px 12px; border: 1px solid var(--mud-palette-lines-inputs); border-radius: 4px; background: var(--mud-palette-surface); color: var(--mud-palette-text-primary); min-width: 0; }
input[type=search][b-hmxcd001sx] { -webkit-appearance: none; appearance: none; }
input[b-hmxcd001sx]::placeholder { color: var(--mud-palette-text-secondary); opacity: .8; }
input:focus[b-hmxcd001sx], select:focus[b-hmxcd001sx] { outline: 2px solid var(--mud-palette-primary); outline-offset: 1px; border-color: var(--mud-palette-primary); }
#pos-scan[b-hmxcd001sx] { font-family: inherit; font-size: 15px; }
.scan[b-hmxcd001sx], .row[b-hmxcd001sx] { display: flex; flex-wrap: wrap; gap: 8px; align-items: flex-end; margin: 0 0 10px; }
.item-search[b-hmxcd001sx] { padding: 16px 18px 0; margin-bottom: 8px; }
button[b-hmxcd001sx] { font: inherit; cursor: pointer; border-radius: 4px; min-height: 44px; }
.secondary-button[b-hmxcd001sx], .choice[b-hmxcd001sx], .method[b-hmxcd001sx], .step[b-hmxcd001sx], .remove[b-hmxcd001sx] { padding: 8px 14px; border: 1px solid var(--mud-palette-lines-inputs); background: var(--mud-palette-surface); color: var(--mud-palette-text-primary); font-weight: 500; }
.secondary-button:hover[b-hmxcd001sx], .choice:hover[b-hmxcd001sx], .step:hover[b-hmxcd001sx], .remove:hover[b-hmxcd001sx] { background: var(--mud-palette-background-gray); }
button:disabled[b-hmxcd001sx] { cursor: default; }
.link-button[b-hmxcd001sx] { min-height: 44px; padding: 0 4px; border: 0; background: none; color: var(--mud-palette-primary); font-weight: 500; font-size: 13px; }
button:focus-visible[b-hmxcd001sx] { outline: 2px solid var(--mud-palette-primary); outline-offset: 3px; }
.pay-button[b-hmxcd001sx] { width: 100%; margin-top: 6px; padding: 14px 18px; border: 1px solid #1f6942; font-size: 16px; font-weight: 650; background: #28794f; color: #fff; }
.pay-button:hover:not(:disabled)[b-hmxcd001sx] { background: #226944; }
.pay-button[disabled][b-hmxcd001sx] { border-color: var(--mud-palette-lines-default); background: var(--mud-palette-background-gray); color: var(--mud-palette-text-secondary); }
.panel[b-hmxcd001sx] { padding: 16px 18px; margin: 0; border: 0; border-bottom: 1px solid var(--mud-palette-lines-default); background: transparent; }
.panel p[b-hmxcd001sx] { margin: 6px 0; }
.panel[b-hmxcd001sx]  h6 { font-size: 15px; font-weight: 650; letter-spacing: -.01em; line-height: 1.5; }
.checkout > .panel[b-hmxcd001sx] { padding: 16px 18px; }
.customer-heading[b-hmxcd001sx] { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; gap: 8px; margin-bottom: 10px; }
.customer-heading[b-hmxcd001sx]  .camera { width: 100%; }
.customer-actions[b-hmxcd001sx] { justify-content: space-between; align-items: center; margin-bottom: 0 !important; }
.customer-actions .muted[b-hmxcd001sx] { font-size: 12px; }
.customer .who[b-hmxcd001sx] { font-size: 14px; line-height: 1.6; }
.balances[b-hmxcd001sx] { display: flex; flex-wrap: wrap; align-items: flex-end; gap: 12px; }
.balances .field.inline[b-hmxcd001sx] { flex: 1; flex-direction: column; align-items: stretch; }
.balances form[b-hmxcd001sx] { width: 100%; margin-bottom: 0; }
.gift-cards[b-hmxcd001sx]  h6 { margin-bottom: 6px; }
.gift-cards .muted[b-hmxcd001sx] { font-size: 12px; line-height: 1.5; margin-bottom: 12px; }
.gift-cards .scan[b-hmxcd001sx], .customer .scan[b-hmxcd001sx] { margin-bottom: 0; }
.receipt input[b-hmxcd001sx] { width: 100%; }
.account-card[b-hmxcd001sx] { display: flex; justify-content: space-between; align-items: center; gap: 12px; padding: 10px 0; border-bottom: 1px solid var(--mud-palette-lines-default); }
.account-card span[b-hmxcd001sx] { display: block; margin-top: 3px; color: var(--mud-palette-text-secondary); font-size: 12px; }
.message[b-hmxcd001sx] { margin: 6px 0 10px; min-height: 1.5em; color: var(--mud-palette-text-secondary); font-size: 13px; line-height: 1.5; }
#pos-scan-message[b-hmxcd001sx] { margin: 0; padding: 0 18px 14px; border-bottom: 1px solid var(--mud-palette-lines-default); font-size: 12px; }
.message.is-error[b-hmxcd001sx], .is-error[b-hmxcd001sx] { color: color-mix(in srgb, var(--mud-palette-error) 75%, var(--mud-palette-text-primary)); font-weight: 500; }
.choices[b-hmxcd001sx] { padding: 14px 18px; border-bottom: 1px solid var(--mud-palette-lines-default); }
.choices ul[b-hmxcd001sx], .customer-results[b-hmxcd001sx], .lines[b-hmxcd001sx] { list-style: none; margin: 0; padding: 0; }
.choices ul[b-hmxcd001sx] { display: grid; grid-template-columns: repeat(auto-fit, minmax(155px, 1fr)); gap: 8px; }
.choices li[b-hmxcd001sx] { min-width: 0; }
.choice[b-hmxcd001sx] { width: 100%; height: 100%; text-align: left; }
.choices .choice[b-hmxcd001sx] { padding: 12px; background: var(--mud-palette-background-gray); border-color: var(--mud-palette-lines-default); }
.choice-row[b-hmxcd001sx] { display: flex; flex-direction: column; gap: 10px; align-items: flex-start; }
.choice-row > span[b-hmxcd001sx] { line-height: 1.45; }
.choice-row .muted[b-hmxcd001sx] { display: block; font-size: 12px; }
.name[b-hmxcd001sx] { font-weight: 600; line-height: 1.4; }
.thumb[b-hmxcd001sx], .no-photo[b-hmxcd001sx] { flex: none; border-radius: 4px; object-fit: cover; }
.no-photo[b-hmxcd001sx] { display: inline-flex; align-items: center; justify-content: center; font-size: 10px; text-align: center; color: var(--mud-palette-text-secondary); background: var(--mud-palette-background-gray); border: 1px solid var(--mud-palette-lines-default); }
.lines[b-hmxcd001sx] { padding: 0 18px; }
.line[b-hmxcd001sx] { display: grid; grid-template-columns: auto minmax(0, 1fr) auto auto auto; gap: 10px; align-items: center; padding: 16px 0; border-bottom: 1px solid var(--mud-palette-lines-default); }
.line:last-child[b-hmxcd001sx] { border-bottom: 0; }
.line .muted[b-hmxcd001sx] { font-size: 12px; line-height: 1.6; }
.line.sold[b-hmxcd001sx] { opacity: .7; }
.qty[b-hmxcd001sx] { display: flex; align-items: center; gap: 0; border: 1px solid var(--mud-palette-lines-inputs); border-radius: 4px; overflow: hidden; }
.step[b-hmxcd001sx] { width: 44px; min-height: 44px; padding: 0; border: 0; border-radius: 0; font-size: 18px; }
.step[disabled][b-hmxcd001sx] { opacity: .35; }
.count[b-hmxcd001sx] { min-width: 30px; text-align: center; font-weight: 600; font-variant-numeric: tabular-nums; }
.price[b-hmxcd001sx] { display: flex; flex-direction: column; align-items: flex-end; }
.price input[b-hmxcd001sx] { width: 5.5rem; text-align: right; font-variant-numeric: tabular-nums; padding-inline: 8px; }
.remove[b-hmxcd001sx] { width: 44px; padding: 0; border: 0; color: var(--mud-palette-text-secondary); }
.remove:hover[b-hmxcd001sx] { color: var(--mud-palette-error); }
.line-actions[b-hmxcd001sx] { display: flex; align-items: center; }
/* Spec S30 rules 3a and 9a: a line's discount button, and what it took off. */
.discount[b-hmxcd001sx] { width: 44px; min-height: 44px; padding: 0; border: 0; background: transparent; color: var(--mud-palette-text-secondary); font-weight: 600; }
.discount.applied[b-hmxcd001sx] { color: var(--mud-palette-success-darken); }
.discount:hover[b-hmxcd001sx] { background: var(--mud-palette-background-gray); }
.line-discount[b-hmxcd001sx] { color: var(--mud-palette-success-darken); font-size: 12px; font-weight: 600; overflow-wrap: anywhere; }
.custom-item[b-hmxcd001sx] { margin: 0 16px 12px; }
.empty[b-hmxcd001sx] { display: flex; flex-direction: column; gap: 8px; justify-content: center; align-items: center; min-height: 280px; padding: 32px 20px; text-align: center; color: var(--mud-palette-text-secondary); }
.empty strong[b-hmxcd001sx] { color: var(--mud-palette-text-primary); font-size: 16px; font-weight: 500; }
.empty span[b-hmxcd001sx] { font-size: 13px; }
.methods[b-hmxcd001sx] { display: grid; grid-auto-flow: column; grid-auto-columns: minmax(0, 1fr); gap: 0; margin-bottom: 14px; border: 1px solid var(--mud-palette-lines-inputs); border-radius: 4px; overflow: hidden; }
.method[b-hmxcd001sx] { padding-inline: 8px; border: 0; border-radius: 0; border-right: 1px solid var(--mud-palette-lines-inputs); font-size: 13px; }
.method:last-child[b-hmxcd001sx] { border-right: 0; }
.method.selected[b-hmxcd001sx] { background: var(--mud-palette-primary); color: var(--mud-palette-primary-text); }
.totals[b-hmxcd001sx] { display: grid; grid-template-columns: 1fr max-content; gap: 8px 24px; margin: 0; padding: 18px; border-bottom: 1px solid var(--mud-palette-lines-default); font-size: 14px; font-variant-numeric: tabular-nums; }
.totals:empty[b-hmxcd001sx] { display: none; }
.totals dt[b-hmxcd001sx], .totals dd[b-hmxcd001sx] { margin: 0; }
.totals dd[b-hmxcd001sx] { text-align: right; }
.strong[b-hmxcd001sx] { font-weight: 650; }
.totals .big[b-hmxcd001sx] { border-top: 1px solid var(--mud-palette-lines-default); padding-top: 12px; margin-top: 4px; font-size: 22px; }
.big[b-hmxcd001sx] { font-size: 20px; }
.change[b-hmxcd001sx] { font-weight: 650; }
.completed[b-hmxcd001sx] { max-width: 40rem; padding: 24px; border: 1px solid var(--mud-palette-success); border-radius: 5px; background: var(--mud-palette-surface); }
.waiting .secondary-button[b-hmxcd001sx] { margin: 12px 8px 0 0; }
.day[b-hmxcd001sx] { padding: 16px 18px; margin-bottom: 12px; border: 1px solid var(--mud-palette-lines-default); border-radius: 5px; background: var(--mud-palette-surface); }
.day p[b-hmxcd001sx], .day ul[b-hmxcd001sx] { margin: 0; }
.day .event-day[b-hmxcd001sx] { margin-top: 12px; padding-top: 12px; border-top: 1px solid var(--mud-palette-lines-default); }
.new-customer[b-hmxcd001sx] { display: grid; gap: 8px; }
.mono[b-hmxcd001sx] { font-family: ui-monospace, monospace; font-size: 11px; }
.muted[b-hmxcd001sx] { color: var(--mud-palette-text-secondary); }
.visually-hidden[b-hmxcd001sx], .dock-summary > [data-quoting][b-hmxcd001sx] { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.event-banner[b-hmxcd001sx] { margin: 0 0 12px; padding: 10px 14px; border-left: 3px solid var(--mud-palette-info); border-radius: 3px; background: var(--mud-palette-surface); }
.at-event select[b-hmxcd001sx] { border-color: var(--mud-palette-info); }
.from-event[b-hmxcd001sx] { color: var(--mud-palette-info-darken); font-weight: 600; }
.customer-results[b-hmxcd001sx] { max-height: 260px; overflow-y: auto; }
/* ContactChoice draws only its layout; the POS draws its customer rows (PR 332). */
.customer-results[b-hmxcd001sx]  .contact-choice { border-bottom: 1px solid var(--mud-palette-lines-default); }
.customer-results[b-hmxcd001sx]  .choice { width: 100%; text-align: left; padding: 10px 9px; border: 0; background: var(--mud-palette-surface); color: var(--mud-palette-text-primary); font-weight: 600; }
.customer-results[b-hmxcd001sx]  .choice:hover { background: var(--mud-palette-background-gray); }
.order-pull-alert[b-hmxcd001sx] { position: sticky; top: var(--pos-topbar-height, 60px); z-index: 5; margin-bottom: 16px; padding: 16px; border: 1px solid var(--mud-palette-error); border-radius: 4px; background: var(--mud-palette-error-darken); color: var(--mud-palette-error-text); }
.order-pull-alert ul[b-hmxcd001sx] { padding-left: 24px; margin: 10px 0; max-height: 30vh; overflow-y: auto; }
.order-pull-alert li[b-hmxcd001sx] { margin-bottom: 8px; }
.order-pull-row[b-hmxcd001sx] { display: flex; align-items: center; justify-content: space-between; gap: 16px; }
.pull-button[b-hmxcd001sx] { flex-shrink: 0; min-height: 44px; padding: 8px 16px; border: 1px solid currentColor; border-radius: 4px; background: transparent; color: inherit; }
.pull-button:disabled[b-hmxcd001sx] { opacity: .6; }
.saved-sale-row[b-hmxcd001sx] { display: flex; flex-wrap: wrap; align-items: center; gap: 12px; padding: 12px 0; border-top: 1px solid var(--mud-palette-lines-default); }
.saved-sale-row span[b-hmxcd001sx] { flex: 1; min-width: 180px; }
.pos-header-tools[b-hmxcd001sx] { display: flex; align-items: center; justify-content: flex-end; flex-wrap: wrap; gap: 4px; min-width: 0; }
.header-action[b-hmxcd001sx] { min-height: 44px; padding: 8px 12px; border: 1px solid transparent; border-radius: 4px; background: transparent; color: inherit; font: inherit; font-size: 13px; white-space: nowrap; }
.header-action:hover[b-hmxcd001sx] { background: #ffffff18; }
.header-action:disabled[b-hmxcd001sx] { opacity: .5; }
#pos-save-sale[b-hmxcd001sx] { border-color: #ffffff40; }
.pos-header-tools .field[b-hmxcd001sx] { gap: 4px; }
.pos-header-tools .field span[b-hmxcd001sx] { display: none; }
.pos-header-tools select[b-hmxcd001sx] { min-height: 44px; max-width: 200px; padding: 7px 26px 7px 10px; font-size: 13px; }
.saved-sale-status[b-hmxcd001sx] { margin: 0 0 12px; font-size: 13px; color: var(--mud-palette-text-secondary); }
.pos[b-hmxcd001sx]  .camera-button { min-height: 44px; min-width: 44px; padding: 10px 12px; border-radius: 4px; font-size: 13px; }
.pos[b-hmxcd001sx]  .mud-alert { font-size: 12px; border: 1px solid var(--mud-palette-lines-default); background: var(--mud-palette-surface); color: var(--mud-palette-text-secondary); border-radius: 4px; }
@media (max-width: 1199px) { .pos-body[b-hmxcd001sx] { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); } .line[b-hmxcd001sx] { grid-template-columns: auto minmax(0, 1fr) auto; } .line .qty[b-hmxcd001sx] { grid-column: 2; justify-self: start; } .line .price[b-hmxcd001sx] { grid-column: 3; grid-row: 2; } .line .line-actions[b-hmxcd001sx] { grid-column: 3; grid-row: 1; justify-self: end; } }
@media (max-width: 899px) { .pos-body[b-hmxcd001sx] { grid-template-columns: minmax(0, 1fr); } .items[b-hmxcd001sx] { min-height: 360px; } .empty[b-hmxcd001sx] { min-height: 180px; } }
@media (max-width: 450px) { .ticket-heading[b-hmxcd001sx], .panel[b-hmxcd001sx], .checkout > .panel[b-hmxcd001sx] { padding-inline: 12px; } .item-search[b-hmxcd001sx] { padding-inline: 12px; } #pos-scan-message[b-hmxcd001sx] { padding-inline: 12px; } .items .scan .field.grow[b-hmxcd001sx] { flex-basis: 100%; } .lines[b-hmxcd001sx] { padding-inline: 12px; } .line[b-hmxcd001sx] { column-gap: 8px; } .line .thumb[b-hmxcd001sx], .line .no-photo[b-hmxcd001sx] { width: 48px !important; height: 48px !important; } .choices ul[b-hmxcd001sx] { grid-template-columns: repeat(2, minmax(0, 1fr)); } .field.inline[b-hmxcd001sx] { flex-direction: column; align-items: stretch; } }

/* Fixed frame with the customer and ticket on the left, item catalog on the right. */
.pos[b-hmxcd001sx] { display: flex; flex-direction: column; height: calc(100dvh - var(--pos-topbar-height, 82px)); min-height: 0; overflow: hidden; padding: 12px 16px 0; }
.pos-body[b-hmxcd001sx] { flex: 1; min-height: 0; display: grid; grid-template-columns: minmax(0, 3fr) minmax(0, 2fr); align-items: stretch; gap: 12px; }
.items[b-hmxcd001sx], .checkout[b-hmxcd001sx] { min-height: 0; max-height: 100%; display: flex; flex-direction: column; overflow: hidden; }
.customer-sheet[b-hmxcd001sx] { flex: none; max-height: 42%; overflow-y: auto; }
.customer-sheet .panel[b-hmxcd001sx] { padding: 10px 14px; }
.customer-heading[b-hmxcd001sx] { margin-bottom: 4px; }
.customer-title[b-hmxcd001sx] { display: flex; align-items: center; gap: 6px; min-width: 0; }
.customer-icon[b-hmxcd001sx] { display: inline-flex; align-items: center; justify-content: center; min-height: 36px; width: 36px; padding: 6px; border: 1px solid var(--mud-palette-lines-inputs); background: var(--mud-palette-surface); color: var(--mud-palette-text-primary); }
.customer-icon:hover[b-hmxcd001sx] { border-color: var(--mud-palette-primary); color: var(--mud-palette-primary); }
.customer .who[b-hmxcd001sx] { overflow-wrap: anywhere; }
.customer-heading[b-hmxcd001sx]  h6 { font-size: 15px; }
.customer-heading[b-hmxcd001sx]  .camera-button { min-height: 36px; min-width: 36px; padding: 6px 9px; }
.customer .who[b-hmxcd001sx], .customer p[b-hmxcd001sx] { margin: 3px 0; font-size: 12px; }
.customer .link-button[b-hmxcd001sx] { min-height: 32px; font-size: 12px; }
.customer .scan[b-hmxcd001sx] { margin: 4px 0; }
.customer input[b-hmxcd001sx], .customer .secondary-button[b-hmxcd001sx] { min-height: 38px; padding-block: 7px; }
.customer-results[b-hmxcd001sx] { max-height: 150px; }
.customer-actions .muted[b-hmxcd001sx] { font-size: 11px; }
.customer-info[b-hmxcd001sx] { container-type: inline-size; display: flex; flex-wrap: wrap; align-items: flex-start; gap: 4px 12px; }
.customer-details[b-hmxcd001sx] { flex: 1 1 220px; min-width: 0; }
.balances[b-hmxcd001sx] { gap: 8px; align-items: end; }
.balances .scan[b-hmxcd001sx] { margin: 0; flex-wrap: nowrap; }
.balances form[b-hmxcd001sx] { width: auto; }
.balances .field.inline[b-hmxcd001sx] { flex: 0 1 auto; flex-direction: row; align-items: center; gap: 8px; }
.balances .field.inline > span[b-hmxcd001sx] { white-space: nowrap; }
.balances input[b-hmxcd001sx] { width: 75px; min-height: 36px; padding: 5px 8px; }
.balances .secondary-button[b-hmxcd001sx] { min-height: 36px; padding: 5px 10px; font-size: 12px; }
.ticket-heading[b-hmxcd001sx] { flex: none; padding: 10px 14px; background: var(--mud-palette-background-gray); }
.ticket-heading h1[b-hmxcd001sx] { font-size: 14px; }
.ticket-heading > span[b-hmxcd001sx] { font-size: 12px; }
.ticket-lines[b-hmxcd001sx], .item-catalog[b-hmxcd001sx] { flex: 1; min-height: 0; overflow-y: auto; }
.ticket-lines .empty[b-hmxcd001sx] { min-height: 160px; }
.lines[b-hmxcd001sx] { padding-inline: 14px; }
.line[b-hmxcd001sx] { padding-block: 12px; }
.item-search[b-hmxcd001sx], #pos-scan-message[b-hmxcd001sx] { flex: none; }
.item-search[b-hmxcd001sx] { padding-top: 14px; }
#pos-scan-message[b-hmxcd001sx] { padding-bottom: 10px; }
.quick-adds[b-hmxcd001sx] { display: grid; grid-template-columns: repeat(auto-fill, minmax(105px, 1fr)); gap: 10px; align-content: start; padding: 14px; }
.quick-add[b-hmxcd001sx] { display: flex; flex-direction: column; align-items: flex-start; text-align: left; padding: 12px; min-width: 0; border: 1px solid var(--mud-palette-lines-default); background: var(--mud-palette-background-gray); }
.quick-add:hover[b-hmxcd001sx] { border-color: var(--mud-palette-primary); background: var(--mud-palette-surface); }
.quick-add[b-hmxcd001sx]  .sku-card { gap: 8px; }
.quick-add[b-hmxcd001sx]  img, .quick-add[b-hmxcd001sx]  .no-photo { width: 100% !important; height: auto !important; aspect-ratio: 1; object-fit: contain; }
.quick-add[b-hmxcd001sx]  .name { font-size: 13px; }
.quick-add[b-hmxcd001sx]  .details { font-size: 11px; }
.quick-add[b-hmxcd001sx]  .facts { font-size: 12px; font-variant-numeric: tabular-nums; }
/* The payment dock (Tyler, 8 October 2026: "the subtotal needs to be equal with the rest of the
   box"). Two level rows, each item a label over a 48px box so tops and bottoms line up: the totals
   strip beside the receipt email, gift cards and promo code; then how they pay (method, cash given)
   with Complete sale at the right. .payment-action is display: contents so its buttons can sit on
   either row; ::before is the line break between the rows (its own flex line, so the rows are
   two row gaps apart). An error sits on that break, under the row with the promo code. */
.payment-dock[b-hmxcd001sx] { flex: none; margin: 12px -16px 0; padding: 0 16px; border-top: 1px solid var(--mud-palette-lines-inputs); background: var(--mud-palette-surface); box-shadow: 0 -2px 8px #00000006; }
.payment-controls[b-hmxcd001sx] { display: flex; flex-wrap: wrap; align-items: flex-end; gap: 6px 12px; padding: 8px 0 10px; }
.payment-controls[b-hmxcd001sx]::before { content: ""; order: 2; flex-basis: 100%; height: 0; }
.payment-controls > .message[b-hmxcd001sx] { order: 2; flex-basis: 100%; margin: 0; }
.dock-summary[b-hmxcd001sx] { order: 1; display: flex; flex-wrap: wrap; align-items: stretch; row-gap: 6px; flex: 0 1 auto; max-width: 100%; font-variant-numeric: tabular-nums; }
.dock-summary > div[b-hmxcd001sx] { display: flex; flex-direction: column; gap: 3px; padding: 0 10px; border-left: 1px solid var(--mud-palette-lines-default); }
.dock-summary > div:first-child[b-hmxcd001sx] { padding-left: 0; border-left: 0; }
.dock-summary span[b-hmxcd001sx] { font-size: 11px; color: var(--mud-palette-text-secondary); white-space: nowrap; }
.dock-summary strong[b-hmxcd001sx] { display: flex; align-items: center; height: 48px; font-size: 16px; font-weight: 600; white-space: nowrap; transition: opacity .15s; }
.dock-summary > div.amount-due[b-hmxcd001sx] { margin-left: 2px; padding-right: 0; border-left: 0; }
.amount-due strong[b-hmxcd001sx] { padding: 0 12px; border-radius: 4px; background: color-mix(in srgb, var(--mud-palette-primary) 12%, transparent); color: var(--mud-palette-text-primary); font-size: 22px; font-weight: 700; }
/* "Updating total…" stays for screen readers (.visually-hidden); on screen the figures fade while the quote is out. */
.dock-summary:has([data-quoting]) strong[b-hmxcd001sx] { opacity: .45; }
.receipt[b-hmxcd001sx] { order: 1; flex: 1 1 170px; max-width: 260px; min-width: 130px; gap: 3px; }
.receipt > span[b-hmxcd001sx] { font-size: 11px; }
.receipt input[b-hmxcd001sx] { padding: 8px 10px; font-size: 13px; }
.payment-action[b-hmxcd001sx] { display: contents; }
.payment-action > .secondary-button[b-hmxcd001sx] { order: 1; max-width: 145px; font-size: 12px; }
.promo-entry[b-hmxcd001sx] { order: 1; display: flex; align-items: flex-end; gap: 4px; width: 180px; min-width: 0; margin: 0; }
.promo-entry .field[b-hmxcd001sx] { flex: 1; gap: 3px; }
.promo-entry .field > span[b-hmxcd001sx] { font-size: 11px; }
.promo-entry input[b-hmxcd001sx] { width: 100%; padding: 8px; font-size: 13px; }
.promo-entry .secondary-button[b-hmxcd001sx] { padding: 8px; font-size: 12px; }
#pos-other[b-hmxcd001sx] { width: 145px; }
.payment-action .pay-button[b-hmxcd001sx] { order: 3; width: auto; min-width: 160px; margin: 0 0 0 auto; padding: 8px 16px; font-size: 15px; }
.payment-action .link-button[b-hmxcd001sx] { order: 3; color: var(--mud-palette-text-secondary); }
.payment-dock input[b-hmxcd001sx], .payment-dock button[b-hmxcd001sx] {
    box-sizing: border-box;
    height: 48px;
    min-height: 48px;
    border-radius: 4px;
    line-height: 1.25;
}
.pos > .day[b-hmxcd001sx], .pos > .saved-sales[b-hmxcd001sx] { flex: none; max-height: 25vh; overflow-y: auto; margin-bottom: 12px; }
.pos > .event-banner[b-hmxcd001sx], .pos > .saved-sale-status[b-hmxcd001sx] { flex: none; }
.order-pull-alert[b-hmxcd001sx] { flex: none; position: static; max-height: 25vh; overflow-y: auto; margin-bottom: 12px; }
.receipt-prompt[b-hmxcd001sx] { border-top: 1px solid var(--mud-palette-lines-default); margin-top: 20px; padding-top: 16px; }
.receipt-prompt h2[b-hmxcd001sx] { font-size: 16px; font-weight: 600; margin: 0 0 12px; }
.receipt-prompt .field[b-hmxcd001sx] { margin-bottom: 10px; }
.receipt-prompt .secondary-button[b-hmxcd001sx] { overflow-wrap: anywhere; }
@media (max-width: 1199px) {
    .payment-controls[b-hmxcd001sx] { column-gap: 8px; }
    .payment-action .pay-button[b-hmxcd001sx] { min-width: 130px; padding-inline: 12px; }
    .payment-action > .secondary-button[b-hmxcd001sx] { max-width: 120px; padding-inline: 8px; }
    .dock-summary > div[b-hmxcd001sx] { padding-inline: 7px; }
    .dock-summary strong[b-hmxcd001sx] { font-size: 15px; }
    .amount-due strong[b-hmxcd001sx] { font-size: 20px; padding-inline: 10px; }
    .receipt[b-hmxcd001sx] { flex-basis: 150px; min-width: 120px; }
    .promo-entry[b-hmxcd001sx] { width: 150px; }
    .line .thumb[b-hmxcd001sx], .line .no-photo[b-hmxcd001sx] { width: 48px !important; height: 48px !important; }
}
@media (min-width: 761px) and (max-width: 999px) {
    /* A tablet held upright: the totals strip has the dock's width to itself, cells spread evenly. */
    .dock-summary[b-hmxcd001sx] { flex: 1 1 100%; }
    .dock-summary > div[b-hmxcd001sx] { flex: 1 1 auto; }
    .receipt[b-hmxcd001sx] { flex: 1 1 150px; max-width: none; }
}
@media (max-width: 760px) {
    .pos[b-hmxcd001sx] { padding: 8px 10px 0; }
    .pos-body[b-hmxcd001sx] { grid-template-columns: minmax(0, 1fr); display: block; overflow-y: auto; }
    .checkout[b-hmxcd001sx] { max-height: none; min-height: 320px; margin-bottom: 10px; overflow: visible; }
    .customer-sheet[b-hmxcd001sx] { max-height: none; overflow: visible; }
    .ticket-lines[b-hmxcd001sx] { overflow: visible; }
    .items[b-hmxcd001sx] { min-height: 400px; max-height: none; overflow: visible; }
    .item-catalog[b-hmxcd001sx] { overflow: visible; }
    .quick-adds[b-hmxcd001sx] { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px; padding: 12px; }
    .quick-add[b-hmxcd001sx] { padding: 10px; min-height: 96px; }
    .quick-add[b-hmxcd001sx]  .name { font-size: 11px; }
    .payment-dock[b-hmxcd001sx] { margin-inline: -10px; padding-inline: 10px; margin-top: 8px; }
    .payment-controls[b-hmxcd001sx] { gap: 8px; padding-block: 8px; }
    .dock-summary[b-hmxcd001sx] { flex: 1 1 100%; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 6px 8px; }
    .dock-summary > div[b-hmxcd001sx], .dock-summary > div:first-child[b-hmxcd001sx] { min-width: 0; padding: 0; border-left: 0; gap: 1px; }
    .dock-summary span[b-hmxcd001sx] { white-space: normal; overflow-wrap: anywhere; }
    .dock-summary strong[b-hmxcd001sx] { height: auto; font-size: 14px; }
    .dock-summary > div.amount-due[b-hmxcd001sx] { margin: -2px 0; padding: 2px 8px; border-radius: 4px; background: color-mix(in srgb, var(--mud-palette-primary) 12%, transparent); }
    .amount-due strong[b-hmxcd001sx] { padding: 0; background: none; font-size: 18px; }
    .receipt[b-hmxcd001sx] { flex: 1 1 100%; max-width: none; min-width: 0; }
    .payment-action > .secondary-button[b-hmxcd001sx] { flex: 0 1 96px; max-width: none; font-size: 11px; padding-inline: 6px; }
    .promo-entry[b-hmxcd001sx] { flex: 1 1 140px; width: auto; }
    .promo-entry .secondary-button[b-hmxcd001sx] { padding-inline: 10px; font-size: 12px; }
    .payment-action .pay-button[b-hmxcd001sx] { flex: 1 1 auto; min-width: 0; margin: 0; padding-inline: 8px; }
    .payment-action .link-button[b-hmxcd001sx] { font-size: 12px; padding: 4px 8px; }
}

@media (min-width: 1000px) {
    .line[b-hmxcd001sx] { grid-template-columns: auto minmax(0, 1fr) auto auto auto; }
    .line .qty[b-hmxcd001sx], .line .price[b-hmxcd001sx], .line .line-actions[b-hmxcd001sx] { grid-column: auto; grid-row: auto; }
}
.balances .credit-error[b-hmxcd001sx] { flex-basis: 100%; margin: 0; }

/* Spec S30 rule 22b: practice mode, marked in the header and around the whole POS. */
.header-practice[b-hmxcd001sx] { display: inline-flex; align-items: center; min-height: 32px; padding: 4px 12px; border-radius: 4px; background: #8e24aa; color: #fff; font-weight: 700; letter-spacing: .12em; font-size: 13px; }
.pos.is-practice[b-hmxcd001sx] { box-shadow: inset 0 0 0 6px #8e24aa; }

/* Payment methods are chosen only after Complete sale. */
.payment-backdrop[b-hmxcd001sx] { position: fixed; inset: 0; z-index: 1350; display: flex; align-items: center; justify-content: center; background: #0008; padding: 16px; }
.payment-popup[b-hmxcd001sx] { width: min(100%, 420px); max-height: calc(100dvh - 32px); overflow-y: auto; background: var(--mud-palette-surface); color: var(--mud-palette-text-primary); border-radius: 12px; padding: 22px; box-shadow: 0 12px 48px #0005; }
.payment-popup-heading[b-hmxcd001sx] { display: flex; align-items: center; justify-content: space-between; gap: 16px; }
.payment-popup-heading h2[b-hmxcd001sx] { font-size: 20px; margin: 0; }
.payment-close[b-hmxcd001sx] { border: 0; background: transparent; color: inherit; font-size: 28px; min-width: 44px; min-height: 44px; cursor: pointer; }
.payment-amount[b-hmxcd001sx] { font-size: 26px; font-weight: 700; margin: 14px 0 20px; }
.payment-amount span[b-hmxcd001sx] { font-size: 14px; font-weight: 400; color: var(--mud-palette-text-secondary); }
.payment-popup .methods[b-hmxcd001sx] { display: grid; grid-auto-flow: row; grid-template-columns: 1fr 1fr; gap: 10px; margin: 0 0 16px; border: 0; overflow: visible; }
.payment-popup .method[b-hmxcd001sx] { min-height: 58px; width: 100%; border: 1px solid var(--mud-palette-lines-inputs); border-radius: 8px; font-size: 16px; }
.payment-popup .method:disabled[b-hmxcd001sx] { opacity: .45; cursor: not-allowed; }
.payment-popup .field[b-hmxcd001sx] { display: flex; flex-direction: column; gap: 6px; margin-top: 12px; }
.payment-popup .field input[b-hmxcd001sx] { width: 100%; padding: 10px; border: 1px solid var(--mud-palette-lines-inputs); border-radius: 6px; }
.payment-popup-actions[b-hmxcd001sx] { display: flex; gap: 10px; justify-content: space-between; margin-top: 22px; }
.payment-popup .pay-button[b-hmxcd001sx] { min-width: 0; width: auto; padding: 10px 16px; margin: 0; }
.payment-popup .split-choice[b-hmxcd001sx] { border: 0; background: transparent; color: var(--mud-palette-primary); padding: 8px 0; cursor: pointer; }
.payment-popup .split-choice[aria-pressed="true"][b-hmxcd001sx] { font-weight: 700; }
/* Rule 22b: practice stays loud with the box open, where the backdrop dims the frame. */
/* Focusable (tabindex -1) so a tap on its text keeps Escape working; no ring for that. */
.payment-popup:focus[b-hmxcd001sx] { outline: none; }
.payment-popup.is-practice[b-hmxcd001sx] { box-shadow: 0 0 0 6px #8e24aa, 0 12px 48px #0005; }
@media (max-width: 480px) { .payment-popup[b-hmxcd001sx] { padding: 16px; } .payment-popup-actions[b-hmxcd001sx] { flex-direction: column-reverse; } .payment-popup-actions button[b-hmxcd001sx] { width: 100%; } }

.pos-tools[b-hmxcd001sx] { position: relative; }
.pos-tools > summary[b-hmxcd001sx] { cursor: pointer; list-style: none; display: flex; align-items: center; gap: .4rem; }
.pos-tools > summary[b-hmxcd001sx]::-webkit-details-marker { display: none; }
.pos-tools > summary[b-hmxcd001sx]::after { content: "▾"; }
.pos-tools-menu[b-hmxcd001sx] { position: absolute; top: calc(100% + 8px); right: 0; z-index: 1200; min-width: 220px; max-width: calc(100vw - 24px); padding: 8px; display: grid; gap: 4px; border: 1px solid var(--mud-palette-divider); border-radius: 8px; background: var(--mud-palette-surface); color: var(--mud-palette-text-primary); box-shadow: 0 8px 24px #0003; }
.pos-tools-menu .header-action[b-hmxcd001sx] { width: 100%; text-align: left; color: inherit; min-height: 44px; }
.pos-tools-menu .field[b-hmxcd001sx] { display: grid; padding: 8px; }
.day [data-day-sales][b-hmxcd001sx], .day [data-day-refunds][b-hmxcd001sx], .day [data-day-net][b-hmxcd001sx] { display: inline-block; margin-inline-start: 12px; white-space: nowrap; }

.pos-tools-menu .field span[b-hmxcd001sx] { display: inline; }
.pos-tools-menu .header-action:hover[b-hmxcd001sx] { background: var(--mud-palette-action-default-hover); }

@media (max-width: 760px) {
    .pos-tools-menu[b-hmxcd001sx] { position: fixed; top: var(--pos-topbar-height, 60px); left: 12px; right: 12px; min-width: 0; max-width: none; }
}
/* /Components/Pos/PosPracticeBanner.razor.rz.scp.css */
/* Spec S30 rule 22b: a colour nothing else on the POS uses, with stripes, so it reads as "not real" at a glance. */
.practice-banner[b-8xwq1b1x1k] { flex: none; display: flex; flex-wrap: wrap; align-items: center; gap: 10px 16px; margin: 0 0 12px; padding: 10px 16px; border: 3px solid #6a1b9a; border-radius: 4px; color: #fff; font-size: 15px; line-height: 1.4;
    background: repeating-linear-gradient(135deg, #8e24aa 0 18px, #7b1fa2 18px 36px); }
.practice-banner strong[b-8xwq1b1x1k] { font-size: 22px; letter-spacing: .12em; }
.practice-banner span[b-8xwq1b1x1k] { flex: 1 1 18rem; }
.practice-banner button[b-8xwq1b1x1k] { font: inherit; min-height: 44px; padding: 8px 16px; border: 2px solid #fff; border-radius: 4px; background: #ffffff1f; color: #fff; font-weight: 600; cursor: pointer; }
.practice-banner button:disabled[b-8xwq1b1x1k] { opacity: .6; cursor: default; }
.practice-banner button:focus-visible[b-8xwq1b1x1k] { outline: 2px solid #fff; outline-offset: 3px; }
/* /Components/Pos/PosPracticeComplete.razor.rz.scp.css */
.practice-done[b-hkodlaqvro] { margin: 16px auto; max-width: 36rem; padding: 20px 24px; border: 3px dashed #7b1fa2; border-radius: 6px; background: var(--mud-palette-surface); color: var(--mud-palette-text-primary); }
.big[b-hkodlaqvro] { font-size: 24px; font-weight: 650; margin: 0 0 8px; color: #7b1fa2; }
.change[b-hkodlaqvro] { color: var(--mud-palette-text-primary); }
.nothing[b-hkodlaqvro] { margin: 0 0 12px; font-weight: 500; }
dl[b-hkodlaqvro] { margin: 0 0 12px; display: grid; gap: 4px; }
dl div[b-hkodlaqvro] { display: flex; justify-content: space-between; gap: 16px; font-variant-numeric: tabular-nums; }
dt[b-hkodlaqvro] { color: var(--mud-palette-text-secondary); }
dd[b-hkodlaqvro] { margin: 0; font-weight: 600; }
.next[b-hkodlaqvro] { font: inherit; min-height: 48px; padding: 10px 20px; border: 1px solid #7b1fa2; border-radius: 4px; background: #7b1fa2; color: #fff; font-weight: 600; cursor: pointer; }
/* /Components/Pos/PosPriceCheckDialog.razor.rz.scp.css */
/* Spec S30 rule 3b. */
.look[b-qofqlhgdjq] { display: flex; flex-wrap: wrap; align-items: flex-end; gap: 8px; }
.look label[b-qofqlhgdjq] { flex: 1 1 14rem; display: flex; flex-direction: column; gap: 6px; font-size: 13px; color: var(--mud-palette-text-secondary); }
.look input[b-qofqlhgdjq] { font: inherit; font-size: 16px; min-height: 48px; padding: 10px 12px; border: 1px solid var(--mud-palette-lines-inputs); border-radius: 4px; background: var(--mud-palette-surface); color: var(--mud-palette-text-primary); }
.look-button[b-qofqlhgdjq], .add[b-qofqlhgdjq] { font: inherit; min-height: 48px; padding: 8px 18px; border: 1px solid var(--mud-palette-primary); border-radius: 4px; background: var(--mud-palette-primary); color: var(--mud-palette-primary-text); font-weight: 500; cursor: pointer; }
.look-button:disabled[b-qofqlhgdjq], .add:disabled[b-qofqlhgdjq] { opacity: .5; cursor: default; }
.message[b-qofqlhgdjq] { margin: 12px 0 0; color: var(--mud-palette-text-secondary); }
.results[b-qofqlhgdjq] { list-style: none; margin: 12px 0 0; padding: 0; }
.result[b-qofqlhgdjq] { display: grid; grid-template-columns: 96px minmax(0, 1fr) auto; gap: 14px; align-items: center; padding: 12px 0; border-top: 1px solid var(--mud-palette-lines-default); }
.result img[b-qofqlhgdjq], .no-photo[b-qofqlhgdjq] { width: 96px; height: 96px; object-fit: cover; border-radius: 4px; background: var(--mud-palette-background-gray); }
.no-photo[b-qofqlhgdjq] { display: grid; place-items: center; font-size: 12px; color: var(--mud-palette-text-secondary); }
.name[b-qofqlhgdjq] { font-weight: 600; font-size: 16px; }
.muted[b-qofqlhgdjq] { font-size: 13px; color: var(--mud-palette-text-secondary); }
.mono[b-qofqlhgdjq] { font-family: ui-monospace, monospace; }
.flight[b-qofqlhgdjq] { margin-top: 2px; font-size: 14px; font-variant-numeric: tabular-nums; }
.price[b-qofqlhgdjq] { display: flex; flex-wrap: wrap; align-items: baseline; gap: 8px; margin-top: 4px; }
.price strong[b-qofqlhgdjq] { font-size: 22px; font-variant-numeric: tabular-nums; }
.was[b-qofqlhgdjq] { text-decoration: line-through; color: var(--mud-palette-text-secondary); }
.sale[b-qofqlhgdjq] { padding: 1px 8px; border-radius: 10px; background: var(--mud-palette-error); color: #fff; font-size: 12px; font-weight: 600; }
.stock[b-qofqlhgdjq] { font-size: 14px; }
.on-ticket[b-qofqlhgdjq] { margin-top: 2px; font-size: 13px; font-weight: 600; color: var(--mud-palette-primary); }
@media (max-width: 560px) { .result[b-qofqlhgdjq] { grid-template-columns: 72px minmax(0, 1fr); } .result img[b-qofqlhgdjq], .no-photo[b-qofqlhgdjq] { width: 72px; height: 72px; } .add[b-qofqlhgdjq] { grid-column: 1 / -1; } }
/* /Components/Pos/PosReaderLight.razor.rz.scp.css */
/* Spec S30 rule 16a: a small light in the POS's blue header. */
.reader-light[b-av1lupv3o5] { display: inline-flex; align-items: center; gap: 6px; min-height: 32px; padding: 4px 10px; border: 1px solid #ffffff59; border-radius: 16px; font-size: 12px; white-space: nowrap; color: #fff; }
.dot[b-av1lupv3o5] { width: 10px; height: 10px; border-radius: 50%; background: #bdbdbd; box-shadow: 0 0 0 2px #ffffff40; }
.is-online .dot[b-av1lupv3o5] { background: #66bb6a; }
.is-offline .dot[b-av1lupv3o5] { background: #ef5350; }
.is-offline[b-av1lupv3o5] { border-color: #ef9a9a; }
@media (max-width: 760px) { .label[b-av1lupv3o5] { display: none; } }
/* /Components/Pos/PosRefundsByMethod.razor.rz.scp.css */
h3[b-oyht2bz25l] { font-size: 16px; margin: 20px 0 12px; }
.payments[b-oyht2bz25l] { display: flex; gap: 20px; flex-wrap: wrap; }
.payments strong[b-oyht2bz25l] { margin-left: 8px; }
/* /Components/Pos/PosRefundsToday.razor.rz.scp.css */
p[b-hwz5ammsfr], ul[b-hwz5ammsfr] { margin: 0; }
.refunds-day[b-hwz5ammsfr] { margin-top: 12px; padding-top: 12px; border-top: 1px solid var(--mud-palette-lines-default); }
.note[b-hwz5ammsfr] { display: block; font-size: 12px; color: var(--mud-palette-text-secondary); }
/* /Components/Pos/PosReportsDialog.razor.rz.scp.css */
.reports[b-utypu0qivh] { font-size: 14px; }
.filters[b-utypu0qivh] { display: flex; flex-wrap: wrap; align-items: end; gap: 12px; margin: 20px 0; }
label[b-utypu0qivh] { display: flex; flex-direction: column; gap: 6px; font-size: 13px; }
input[b-utypu0qivh], select[b-utypu0qivh] { min-height: 44px; padding: 8px 10px; border: 1px solid var(--mud-palette-lines-inputs); border-radius: 4px; color: var(--mud-palette-text-primary); background: var(--mud-palette-surface); }
input[type=search][b-utypu0qivh] { -webkit-appearance: none; appearance: none; }
.summary[b-utypu0qivh] { display: grid; grid-template-columns: repeat(auto-fit, minmax(135px, 1fr)); gap: 12px; padding: 16px; background: var(--mud-palette-background-gray); border-radius: 4px; }
.summary span[b-utypu0qivh] { display: block; font-size: 12px; color: var(--mud-palette-text-secondary); }
.summary strong[b-utypu0qivh] { display: block; margin-top: 4px; font-size: 21px; font-variant-numeric: tabular-nums; }
.note[b-utypu0qivh] { color: var(--mud-palette-text-secondary); font-size: 12px; line-height: 1.5; margin: 12px 0; }
.table-scroll[b-utypu0qivh] { overflow-x: auto; }
table[b-utypu0qivh] { width: 100%; border-collapse: collapse; white-space: nowrap; }
th[b-utypu0qivh], td[b-utypu0qivh] { text-align: right; padding: 12px 10px; border-bottom: 1px solid var(--mud-palette-lines-default); font-variant-numeric: tabular-nums; }
th:first-child[b-utypu0qivh], td:first-child[b-utypu0qivh] { text-align: left; }
th[b-utypu0qivh] { font-size: 12px; color: var(--mud-palette-text-secondary); }
h3[b-utypu0qivh] { font-size: 16px; margin: 20px 0 12px; }
h3 small[b-utypu0qivh] { font-size: 12px; margin-left: 8px; color: var(--mud-palette-text-secondary); }
.payments[b-utypu0qivh] { display: flex; gap: 20px; flex-wrap: wrap; }
.payments strong[b-utypu0qivh] { margin-left: 8px; }
.search[b-utypu0qivh] { margin: 20px 0 12px; max-width: 480px; }
.customer-matches[b-utypu0qivh] { display: grid; gap: 4px; }
.customer-matches[b-utypu0qivh]  .choice { width: 100%; text-align: left; color: var(--mud-palette-primary); padding: 10px 4px; }
.order-link[b-utypu0qivh] { text-align: left; color: var(--mud-palette-primary); padding: 10px 4px; min-height: 44px; }
.paging[b-utypu0qivh] { display: flex; gap: 12px; align-items: center; justify-content: end; margin-top: 12px; }
/* /Components/Pos/PosResendReceiptDialog.razor.rz.scp.css */
.note[b-khxzbadxei] { font-size: 13px; color: var(--mud-palette-text-secondary); margin: 0 0 8px; }
.sales[b-khxzbadxei] { list-style: none; margin: 0; padding: 0; }
.sales li[b-khxzbadxei] { padding: 8px 0; border-top: 1px solid var(--mud-palette-lines-default); }
.row[b-khxzbadxei] { display: flex; gap: 12px; align-items: center; justify-content: space-between; flex-wrap: wrap; margin-bottom: 4px; }
/* /Components/Pos/PosResendReceipts.razor.rz.scp.css */
.resend-receipts[b-jzrefq5zuk] { margin: 8px 0 0; }
.link-button[b-jzrefq5zuk] { min-height: 44px; padding: 0 4px; border: 0; background: none; color: var(--mud-palette-primary); font-weight: 500; font-size: 13px; cursor: pointer; }
/* /Components/Pos/PosReturnDialog.razor.rz.scp.css */
.returns[b-jn4uvarj5k] { font-size: 14px; display: grid; gap: 16px; }
.lead[b-jn4uvarj5k] { margin: 0; font-size: 15px; }
.row[b-jn4uvarj5k] { display: grid; gap: 6px; }
.row > div[b-jn4uvarj5k], .options[b-jn4uvarj5k] { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; }
.options[b-jn4uvarj5k] { display: grid; grid-template-columns: 1fr; }
label[b-jn4uvarj5k] { font-size: 13px; font-weight: 600; }
input[b-jn4uvarj5k], select[b-jn4uvarj5k] { min-height: 44px; padding: 8px 10px; border: 1px solid var(--mud-palette-lines-inputs); border-radius: 4px; color: var(--mud-palette-text-primary); background: var(--mud-palette-surface); font: inherit; }
input[type=search][b-jn4uvarj5k] { -webkit-appearance: none; appearance: none; }
.row input[b-jn4uvarj5k] { flex: 1 1 220px; }
.go[b-jn4uvarj5k], .method[b-jn4uvarj5k], .step[b-jn4uvarj5k] { min-height: 44px; padding: 8px 16px; border: 1px solid var(--mud-palette-lines-inputs); border-radius: 4px; background: var(--mud-palette-surface); color: var(--mud-palette-text-primary); font: inherit; font-weight: 600; }
.go[b-jn4uvarj5k] { background: var(--mud-palette-primary); color: var(--mud-palette-primary-text); border-color: var(--mud-palette-primary); }
.method.on[b-jn4uvarj5k] { background: var(--mud-palette-primary); color: var(--mud-palette-primary-text); border-color: var(--mud-palette-primary); }
.matches[b-jn4uvarj5k], .orders[b-jn4uvarj5k] { display: grid; gap: 6px; }
.matches[b-jn4uvarj5k]  .choice { width: 100%; text-align: left; min-height: 44px; padding: 8px 10px; color: var(--mud-palette-primary); }
.order[b-jn4uvarj5k] { display: grid; gap: 2px; text-align: left; min-height: 52px; padding: 10px 12px; border: 1px solid var(--mud-palette-lines-default); border-radius: 4px; background: var(--mud-palette-surface); color: var(--mud-palette-text-primary); }
.order span[b-jn4uvarj5k], .muted[b-jn4uvarj5k], .what span[b-jn4uvarj5k] { color: var(--mud-palette-text-secondary); font-size: 13px; }
.order em[b-jn4uvarj5k] { font-style: normal; font-size: 12px; color: var(--mud-palette-warning-darken); }
.order:disabled[b-jn4uvarj5k] { opacity: .75; }
.sale-head[b-jn4uvarj5k] { display: grid; gap: 2px; padding: 12px; border-radius: 4px; background: var(--mud-palette-background-gray); }
.found[b-jn4uvarj5k] { margin: 0; padding: 10px 12px; border-left: 3px solid var(--mud-palette-info); background: var(--mud-palette-background-gray); }
.lines[b-jn4uvarj5k] { display: grid; gap: 8px; }
.line[b-jn4uvarj5k] { display: grid; grid-template-columns: 1fr auto; gap: 8px 16px; align-items: center; padding: 10px 0; border-bottom: 1px solid var(--mud-palette-lines-default); }
.what[b-jn4uvarj5k] { display: grid; gap: 2px; }
.qty[b-jn4uvarj5k] { display: flex; align-items: center; gap: 10px; }
.qty span[b-jn4uvarj5k] { min-width: 24px; text-align: center; font-size: 18px; font-variant-numeric: tabular-nums; }
.step[b-jn4uvarj5k] { width: 44px; padding: 0; font-size: 20px; }
.restock[b-jn4uvarj5k], .check[b-jn4uvarj5k] { display: flex; align-items: center; gap: 8px; font-weight: 500; min-height: 44px; }
.restock[b-jn4uvarj5k] { grid-column: 1 / -1; }
.restock input[b-jn4uvarj5k], .check input[b-jn4uvarj5k] { min-height: 0; width: 20px; height: 20px; }
.totals[b-jn4uvarj5k] { display: grid; gap: 6px; padding: 14px; border-radius: 4px; background: var(--mud-palette-background-gray); font-variant-numeric: tabular-nums; }
.totals div[b-jn4uvarj5k] { display: flex; justify-content: space-between; }
.totals .sum[b-jn4uvarj5k], .totals .due[b-jn4uvarj5k] { font-weight: 700; font-size: 16px; }
.totals .due[b-jn4uvarj5k] { padding-top: 6px; border-top: 1px solid var(--mud-palette-lines-default); font-size: 19px; }
.plan[b-jn4uvarj5k] { margin: 0; padding-left: 20px; display: grid; gap: 4px; }
.pay[b-jn4uvarj5k] { display: grid; gap: 8px; }
.methods[b-jn4uvarj5k] { display: flex; gap: 8px; }
.change[b-jn4uvarj5k], .big[b-jn4uvarj5k] { font-size: 20px; font-weight: 700; margin: 0; }
.done[b-jn4uvarj5k] { display: grid; gap: 8px; }
@media (max-width: 450px) { .line[b-jn4uvarj5k] { grid-template-columns: 1fr; } }
/* /Components/Pos/PosSellingPlacePrompt.razor.rz.scp.css */
/* Spec S30 rule 11e: "Where are you selling today?", over the POS until answered. */
.zip-backdrop[b-v7pokdxv6n] { position: fixed; inset: 0; z-index: 1400; display: flex; align-items: center; justify-content: center; padding: 16px; background: rgba(0, 0, 0, .45); }
.zip-prompt[b-v7pokdxv6n] { width: min(520px, 100%); max-height: calc(100vh - 32px); overflow-y: auto; padding: 20px 22px; border-radius: 6px; background: var(--mud-palette-surface); color: var(--mud-palette-text-primary); box-shadow: 0 10px 30px rgba(0, 0, 0, .3); font-size: 14px; }
h2[b-v7pokdxv6n] { margin: 0 0 6px; font-size: 20px; font-weight: 600; }
.lead[b-v7pokdxv6n] { margin: 0 0 14px; line-height: 1.5; color: var(--mud-palette-text-secondary); }
form[b-v7pokdxv6n] { display: flex; flex-wrap: wrap; gap: 8px; align-items: flex-end; }
label[b-v7pokdxv6n] { display: flex; flex-direction: column; gap: 6px; font-size: 13px; color: var(--mud-palette-text-secondary); }
input[b-v7pokdxv6n] { font: inherit; font-size: 20px; letter-spacing: .08em; width: 8rem; min-height: 48px; padding: 9px 12px; border: 1px solid var(--mud-palette-lines-inputs); border-radius: 4px; background: var(--mud-palette-surface); color: var(--mud-palette-text-primary); font-variant-numeric: tabular-nums; }
input:focus[b-v7pokdxv6n] { outline: 2px solid var(--mud-palette-primary); outline-offset: 1px; }
button[b-v7pokdxv6n] { font: inherit; min-height: 48px; padding: 8px 16px; border-radius: 4px; cursor: pointer; font-weight: 500; }
.primary[b-v7pokdxv6n] { border: 1px solid var(--mud-palette-primary); background: var(--mud-palette-primary); color: var(--mud-palette-primary-text); }
.plain[b-v7pokdxv6n] { border: 1px solid var(--mud-palette-lines-inputs); background: var(--mud-palette-surface); color: var(--mud-palette-text-primary); }
button:disabled[b-v7pokdxv6n] { opacity: .6; cursor: default; }
.hint[b-v7pokdxv6n] { margin: 8px 0 0; font-size: 13px; color: var(--mud-palette-text-secondary); }
.error[b-v7pokdxv6n] { margin: 8px 0 0; color: var(--mud-palette-error); font-weight: 500; }
.picks-title[b-v7pokdxv6n] { margin: 16px 0 6px; font-size: 13px; color: var(--mud-palette-text-secondary); }
.picks[b-v7pokdxv6n] { display: flex; flex-wrap: wrap; gap: 8px; }
.pick[b-v7pokdxv6n] { display: flex; flex-direction: column; align-items: flex-start; min-width: 8rem; text-align: left; }
.pick span[b-v7pokdxv6n] { font-size: 12px; font-weight: 400; color: var(--mud-palette-text-secondary); }
.later[b-v7pokdxv6n] { margin: 16px 0 0; }
.link[b-v7pokdxv6n] { min-height: 44px; padding: 0; border: 0; background: none; color: var(--mud-palette-primary); text-align: left; }
/* /Components/Pos/PosSplitPanel.razor.rz.scp.css */
.split[b-mksglrnyho] { max-width: 40rem; padding: 24px; border: 1px solid var(--mud-palette-lines-default); border-radius: 5px; background: var(--mud-palette-surface); color: var(--mud-palette-text-primary); font-size: 14px; }
h2[b-mksglrnyho] { margin: 0 0 12px; font-size: 18px; font-weight: 600; }
.split-totals[b-mksglrnyho] { display: grid; grid-template-columns: 1fr max-content; gap: 8px 0; margin: 0 0 18px; font-variant-numeric: tabular-nums; }
.split-totals dt[b-mksglrnyho], .split-totals dd[b-mksglrnyho] { margin: 0; }
.split-totals dd[b-mksglrnyho] { text-align: right; padding-left: 24px; }
.split-totals .left[b-mksglrnyho] { border-top: 1px solid var(--mud-palette-lines-default); padding-top: 10px; font-size: 20px; font-weight: 600; }
.field[b-mksglrnyho] { display: flex; flex-direction: column; gap: 6px; margin-bottom: 12px; font-size: 13px; }
.field > span[b-mksglrnyho] { color: var(--mud-palette-text-secondary); }
input[b-mksglrnyho] { font: inherit; font-size: 16px; min-height: 44px; padding: 9px 12px; border: 1px solid var(--mud-palette-lines-inputs); border-radius: 4px; background: var(--mud-palette-surface); color: var(--mud-palette-text-primary); min-width: 0; }
input:focus[b-mksglrnyho] { outline: 2px solid var(--mud-palette-primary); outline-offset: 1px; border-color: var(--mud-palette-primary); }
button[b-mksglrnyho] { font: inherit; cursor: pointer; border-radius: 4px; min-height: 44px; }
button:disabled[b-mksglrnyho] { cursor: default; }
button:focus-visible[b-mksglrnyho] { outline: 2px solid var(--mud-palette-primary); outline-offset: 3px; }
.methods[b-mksglrnyho] { display: grid; grid-auto-flow: column; grid-auto-columns: minmax(0, 1fr); margin-bottom: 14px; border: 1px solid var(--mud-palette-lines-inputs); border-radius: 4px; overflow: hidden; }
.method[b-mksglrnyho] { padding: 8px; border: 0; border-radius: 0; border-right: 1px solid var(--mud-palette-lines-inputs); background: var(--mud-palette-surface); color: var(--mud-palette-text-primary); font-weight: 500; font-size: 13px; }
.method:last-child[b-mksglrnyho] { border-right: 0; }
.method.selected[b-mksglrnyho] { background: var(--mud-palette-primary); color: var(--mud-palette-primary-text); }
.secondary-button[b-mksglrnyho] { margin: 12px 8px 0 0; padding: 8px 14px; border: 1px solid var(--mud-palette-lines-inputs); background: var(--mud-palette-surface); color: var(--mud-palette-text-primary); font-weight: 500; }
.secondary-button:hover[b-mksglrnyho] { background: var(--mud-palette-background-gray); }
.pay-button[b-mksglrnyho] { width: 100%; margin-top: 6px; padding: 14px 18px; border: 1px solid #1f6942; font-size: 16px; font-weight: 650; background: #28794f; color: #fff; }
.pay-button:hover:not(:disabled)[b-mksglrnyho] { background: #226944; }
.pay-button[disabled][b-mksglrnyho] { border-color: var(--mud-palette-lines-default); background: var(--mud-palette-background-gray); color: var(--mud-palette-text-secondary); }
.big[b-mksglrnyho] { font-size: 20px; }
.change[b-mksglrnyho] { margin: 0 0 14px; }
.hand-back[b-mksglrnyho] { font-weight: 650; }
.is-error[b-mksglrnyho] { color: color-mix(in srgb, var(--mud-palette-error) 75%, var(--mud-palette-text-primary)); font-weight: 500; }
.split-open-note[b-mksglrnyho] { margin: 0 0 14px; color: var(--mud-palette-text-secondary); font-size: 13px; }
.muted[b-mksglrnyho] { color: var(--mud-palette-text-secondary); font-size: 12px; }
@media (max-width: 600px) { .split[b-mksglrnyho] { padding: 16px; } }
.cash-part[b-mksglrnyho] { margin-bottom: 12px; }
/* /Components/Pos/PosTicketDiscountButton.razor.rz.scp.css */
/* Sits in the payment dock beside Gift cards (PosPage's .payment-action > .secondary-button),
   whose scoped rules do not reach a child component, so they are repeated here. */
.ticket-discount[b-6akbf0ij0k] { order: 1; box-sizing: border-box; height: 48px; min-height: 48px; max-width: 145px; padding: 8px 14px; border: 1px solid var(--mud-palette-lines-inputs);
    border-radius: 4px; background: var(--mud-palette-surface); color: var(--mud-palette-text-primary); font: inherit; font-size: 12px; font-weight: 500; line-height: 1.25; cursor: pointer; }
.ticket-discount:hover:not(:disabled)[b-6akbf0ij0k] { background: var(--mud-palette-background-gray); }
.ticket-discount:disabled[b-6akbf0ij0k] { cursor: default; color: var(--mud-palette-text-disabled); }
.ticket-discount:focus-visible[b-6akbf0ij0k] { outline: 2px solid var(--mud-palette-primary); outline-offset: 3px; }
.ticket-discount.applied[b-6akbf0ij0k] { border-color: var(--mud-palette-primary); color: var(--mud-palette-primary); }
@media (max-width: 1199px) {
    .ticket-discount[b-6akbf0ij0k] { max-width: 120px; padding-inline: 8px; }
}
@media (max-width: 760px) {
    .ticket-discount[b-6akbf0ij0k] { flex: 0 1 96px; max-width: none; font-size: 11px; padding-inline: 6px; }
}
/* /Components/Pos/PosTicketDiscountDialog.razor.rz.scp.css */
/* Spec S30 rule 9b: the plan, one row per ticket line, read before Apply. */
.plan[b-nt37d5edd7] { margin-top: 12px; font-variant-numeric: tabular-nums; }
.plan p[b-nt37d5edd7] { margin: 0 0 6px; }
.plan ul[b-nt37d5edd7] { margin: 0; padding: 0; list-style: none; max-height: 40vh; overflow-y: auto; }
.plan li[b-nt37d5edd7] { display: flex; justify-content: space-between; gap: 12px; padding: 4px 0; border-top: 1px solid var(--mud-palette-lines-default); }
.plan .name[b-nt37d5edd7] { min-width: 0; overflow-wrap: anywhere; }
.plan .amount[b-nt37d5edd7] { flex: none; white-space: nowrap; }
.note[b-nt37d5edd7] { margin: 10px 0 0; font-size: 13px; color: var(--mud-palette-text-secondary); }
/* /Components/Pos/PosTradeInDialog.razor.rz.scp.css */
.trade-in[b-ds6qh3uukd] { font-size: 14px; }
.intro[b-ds6qh3uukd] { margin-top: 0; }
.item[b-ds6qh3uukd] { border: 1px solid var(--mud-palette-lines-default); border-radius: 6px; padding: 10px 12px 12px; margin: 0 0 12px; }
.item legend[b-ds6qh3uukd] { font-weight: 600; padding: 0 4px; }
.row[b-ds6qh3uukd] { display: flex; flex-wrap: wrap; gap: 10px; align-items: flex-end; }
.details[b-ds6qh3uukd] { margin-top: 8px; }
.field[b-ds6qh3uukd] { display: flex; flex-direction: column; gap: 4px; min-width: 0; }
.field > span[b-ds6qh3uukd] { font-size: 12px; color: var(--mud-palette-text-secondary); }
.field.grow[b-ds6qh3uukd] { flex: 1 1 260px; }
.field.money[b-ds6qh3uukd] { flex: 0 0 110px; }
.field.weight[b-ds6qh3uukd] { flex: 0 0 90px; }
.field.receipt[b-ds6qh3uukd] { margin-top: 12px; }
input[b-ds6qh3uukd], select[b-ds6qh3uukd] { min-height: 44px; padding: 8px 10px; border: 1px solid var(--mud-palette-lines-inputs); border-radius: 4px; color: var(--mud-palette-text-primary); background: var(--mud-palette-surface); font-size: 16px; min-width: 0; }
input[type=search][b-ds6qh3uukd] { -webkit-appearance: none; appearance: none; }
.find[b-ds6qh3uukd] { display: flex; gap: 8px; }
.find input[b-ds6qh3uukd] { flex: 1; }
.results[b-ds6qh3uukd] { list-style: none; margin: 6px 0 0; padding: 0; display: flex; flex-wrap: wrap; gap: 6px; }
.picked[b-ds6qh3uukd] { display: flex; gap: 10px; align-items: center; min-height: 44px; }
.secondary-button[b-ds6qh3uukd], .choice[b-ds6qh3uukd], .method[b-ds6qh3uukd] { min-height: 44px; padding: 8px 14px; border: 1px solid var(--mud-palette-lines-inputs); border-radius: 4px; background: var(--mud-palette-surface); color: var(--mud-palette-text-primary); font-weight: 500; }
.method.selected[b-ds6qh3uukd] { border-color: var(--mud-palette-primary); box-shadow: inset 0 0 0 1px var(--mud-palette-primary); font-weight: 650; }
.link-button[b-ds6qh3uukd] { border: 0; background: none; color: var(--mud-palette-primary); padding: 6px 0; min-height: 36px; }
.remove-item[b-ds6qh3uukd] { margin-top: 6px; }
.payout[b-ds6qh3uukd] { display: flex; gap: 8px; margin-top: 14px; }
.total[b-ds6qh3uukd] { font-size: 18px; margin: 14px 0 0; display: flex; justify-content: space-between; }
.muted[b-ds6qh3uukd] { font-size: 12px; color: var(--mud-palette-text-secondary); margin: 8px 0 0; }
.big[b-ds6qh3uukd] { font-size: 20px; font-weight: 650; margin: 0 0 8px; }
.pay-out[b-ds6qh3uukd] { font-size: 18px; }
