/* =========================================================================
   Variables
   ========================================================================= */
:root {
    /* Colors */
    --an-bg: #fbfbfb;
    --an-surface: #f6f6f6;
    --an-surface-strong: #ededed;
    --an-border: #e1e1e1;
    --an-border-strong: #8fa3b2;
    --an-text: #172432;
    --an-muted: #526273;
    --an-link: #1f5f8f;
    --an-link-hover: #123f61;
    --an-success: #277447;
    --an-danger: #a53d3d;
    --an-error-text: #8a2d2d;
    --an-black: #000000;
    --an-white: #ffffff;
    --an-blue: #0071d1;
    --an-blue-light: #4C9BDE;
    --an-blue-strong: #005AA7;
    --an-filter-selected-surface: #e4edf4;
    --an-filter-selected-border: #4c87b2;
    --an-grid-header-start: #f9fbfc;
    --an-grid-header-middle: #f4f6f8;
    --an-grid-header-end: #e8edf1;
    --an-grid-header-shadow-border: #d0d8df;
    --an-focus-shadow: rgba(31, 95, 143, 0.65);
    --an-loading-grid-opacity: 0.5;
    --an-row-hover: rgba(255, 255, 255, 0.44);
    --an-grid-header-shadow: rgba(23, 36, 50, 0.12);
    --an-paginator-shadow: rgba(23, 36, 50, 0.1);

    /* Typography */
    --an-font-size-base: 16px;
    --an-font-size-xs: 0.82rem;
    --an-font-size-sm: 0.86rem;
    --an-font-size-icon: 0.95rem;
    --an-font-size-heading: 1.25rem;

    /* Borders & radius */
    --an-radius-none: 0px;
    --an-radius-sm: 2px;
    --an-border-width: 1px;

    /* Spacing */
    --an-space-0: 0;
    --an-space-2xs: 2px;
    --an-space-xs: 4px;
    --an-space-sm: 6px;
    --an-space-md: 8px;
    --an-space-lg: 12px;
    --an-space-xl: 14px;
    --an-space-2xl: 16px;
    --an-space-3xl: 18px;
    --an-space-control-x: 0.4rem;
    --an-space-control-y: 0.1rem;
    --an-control-padding-y: 0.15rem;
    --an-button-padding-x: 2rem;
    --an-grid-compact-padding-x: 0.25rem;
    --an-space-rem: 1rem;
    --an-filter-action-gap: 5px;
    --an-layout-gutter-x: 1.5rem;
    --an-layout-gutter: calc(var(--an-layout-gutter-x) * 0.5);

    /* Layout helpers */
    --an-full-size: 100%;
    --an-center-position: 50%;
    --an-grid-header-gradient-stop: 58%;

    /* Controls */
    --an-control-height: 28px;
    --an-filter-panel-height: 50px;
    --an-filter-button-height: 32px;
    --an-filter-check-height: 18px;

    /* Filter field widths */
    --an-filter-field-collection-width: 154px;
    --an-filter-field-category-width: 148px;
    --an-filter-field-condition-width: 132px;
    --an-filter-field-search-width: 210px;
    --an-filter-checks-flags-width: 160px;
    --an-filter-checks-grader-width: 120px;

    /* Grid dimensions */
    --an-grid-header-height: 30px;
    --an-grid-row-height: 28px;
    --an-grid-default-column-width: 60px;
    --an-grid-default-column-max-width: 120px;

    --an-grid-star-column-width-mobile: 45px;
    --an-grid-title-column-width-mobile: 450px;
    --an-grid-price-column-width-mobile: 120px;
    --an-grid-quantity-column-width-mobile: 54px;
    --an-grid-date-column-width-mobile: 160px;
    --an-grid-grader-column-width-mobile: 60px;
    --an-grid-grade-value-column-width-mobile: 60px;
    --an-grid-subgrade-column-width-mobile: 80px;
    --an-grid-sealed-column-width-mobile: 60px;
    --an-grid-autograph-column-width-mobile: 85px;
    --an-grid-vintage-column-width-mobile: 60px;
    --an-grid-platform-column-width-mobile: 120px;
    --an-grid-year-column-width-mobile: 60px;
    --an-grid-seller-column-width-mobile: 150px;
    --an-grid-channel-column-width-mobile: 140px;
    --an-grid-link-column-width-mobile: 60px;

    --an-grid-star-column-width-hd: 45px;
    --an-grid-title-column-width-hd: 350px;
    --an-grid-price-column-width-hd: 90px;
    --an-grid-quantity-column-width-hd: 54px;
    --an-grid-date-column-width-hd: 150px;
    --an-grid-grader-column-width-hd: 60px;
    --an-grid-grade-value-column-width-hd: 60px;
    --an-grid-subgrade-column-width-hd: 100px;
    --an-grid-sealed-column-width-hd: 60px;
    --an-grid-autograph-column-width-hd: 70px;
    --an-grid-vintage-column-width-hd: 60px;
    --an-grid-platform-column-width-hd: 100px;
    --an-grid-year-column-width-hd: 60px;
    --an-grid-seller-column-width-hd: 140px;
    --an-grid-channel-column-width-hd: 140px;
    --an-grid-link-column-width-hd: 60px;

    --an-grid-star-column-width-2k: 45px;
    --an-grid-title-column-width-2k: 520px;
    --an-grid-price-column-width-2k: 90px;
    --an-grid-quantity-column-width-2k: 54px;
    --an-grid-date-column-width-2k: 150px;
    --an-grid-grader-column-width-2k: 60px;
    --an-grid-grade-value-column-width-2k: 60px;
    --an-grid-subgrade-column-width-2k: 60px;
    --an-grid-sealed-column-width-2k: 60px;
    --an-grid-autograph-column-width-2k: 70px;
    --an-grid-vintage-column-width-2k: 60px;
    --an-grid-platform-column-width-2k: 100px;
    --an-grid-year-column-width-2k: 60px;
    --an-grid-seller-column-width-2k: 140px;
    --an-grid-channel-column-width-2k: 140px;
    --an-grid-link-column-width-2k: 60px;

    --an-grid-star-column-width-4k: 45px;
    --an-grid-title-column-width-4k: 760px;
    --an-grid-price-column-width-4k: 90px;
    --an-grid-quantity-column-width-4k: 54px;
    --an-grid-date-column-width-4k: 150px;
    --an-grid-grader-column-width-4k: 60px;
    --an-grid-grade-value-column-width-4k: 60px;
    --an-grid-subgrade-column-width-4k: 60px;
    --an-grid-sealed-column-width-4k: 60px;
    --an-grid-autograph-column-width-4k: 70px;
    --an-grid-vintage-column-width-4k: 60px;
    --an-grid-platform-column-width-4k: 100px;
    --an-grid-year-column-width-4k: 60px;
    --an-grid-seller-column-width-4k: 140px;
    --an-grid-channel-column-width-4k: 140px;
    --an-grid-link-column-width-4k: 60px;

    --an-grid-star-width: var(--an-grid-star-column-width-hd);
    --an-grid-title-min-width: var(--an-grid-title-column-width-hd);
    --an-grid-price-width: var(--an-grid-price-column-width-hd);
    --an-grid-quantity-width: var(--an-grid-quantity-column-width-hd);
    --an-grid-date-width: var(--an-grid-date-column-width-hd);
    --an-grid-grader-column-width: var(--an-grid-grader-column-width-hd);
    --an-grid-grade-value-column-width: var(--an-grid-grade-value-column-width-hd);
    --an-grid-subgrade-column-width: var(--an-grid-subgrade-column-width-hd);
    --an-grid-sealed-column-width: var(--an-grid-sealed-column-width-hd);
    --an-grid-autograph-column-width: var(--an-grid-autograph-column-width-hd);
    --an-grid-vintage-column-width: var(--an-grid-vintage-column-width-hd);
    --an-grid-platform-column-width: var(--an-grid-platform-column-width-hd);
    --an-grid-year-column-width: var(--an-grid-year-column-width-hd);
    --an-grid-seller-column-width: var(--an-grid-seller-column-width-hd);
    --an-grid-channel-column-width: var(--an-grid-channel-column-width-hd);
    --an-grid-link-column-width: var(--an-grid-link-column-width-hd);
    --an-grid-star-min-width: 34px;
    --an-grid-date-max-width: 160px;
    --an-grid-table-min-width: calc( var(--an-grid-star-width) + var(--an-grid-title-min-width) + var(--an-grid-price-width) + var(--an-grid-quantity-width) + var(--an-grid-date-width) + var(--an-grid-grader-column-width) + var(--an-grid-grade-value-column-width) + var(--an-grid-subgrade-column-width) + var(--an-grid-sealed-column-width) + var(--an-grid-autograph-column-width) + var(--an-grid-vintage-column-width) + var(--an-grid-platform-column-width) + var(--an-grid-year-column-width) + var(--an-grid-seller-column-width) + var(--an-grid-channel-column-width) + var(--an-grid-link-column-width) );
    --an-grid-sort-icon-size: 0.7rem;
    --an-grid-star-title-width: 10px;
    --an-grid-empty-min-height: 84px;
    --an-grid-empty-top: 100px;

    /* Loading & spinner */
    --an-loading-top-offset: 30px;
    --an-loading-min-height: 88px;
    --an-spinner-size: 2rem;
    --an-spinner-border-width: 0.14em;

    /* Paginator */
    --an-paginator-button-width: 30px;
    --an-paginator-icon-size: 1rem;

    /* Responsive */
    --an-responsive-min-column-width: 20px;

    /* Bootstrap overrides */
    --bs-body-bg: var(--an-bg);
    --bs-body-color: var(--an-text);
    --bs-border-color: var(--an-blue-light);
    --bs-border-radius: var(--an-radius-none);
    --bs-border-radius-sm: var(--an-radius-sm);
    --bs-border-radius-lg: var(--an-radius-sm);
    --bs-link-color: var(--an-link);
    --bs-link-hover-color: var(--an-link-hover);
}

/* =========================================================================
   Base / global
   ========================================================================= */
html,
body {
    font-family: "Segoe UI", SegoeUI, "Helvetica Neue", Helvetica, Arial, sans-serif;
    font-size: var(--an-font-size-base);
    width: var(--an-full-size);
    max-width: var(--an-full-size);
    height: 100dvh;
    overflow: hidden;
    background: var(--an-surface);
}

a,
.btn-link {
    color: var(--bs-link-color);
}

.form-control,
.form-select,
.dropdown-menu,
.card,
.navbar,
.breadcrumb {
    border-radius: var(--bs-border-radius-sm);
}

h1:focus {
    outline: none;
}

.valid.modified:not([type=checkbox]) {
    outline: var(--an-border-width) solid var(--an-success);
}

.invalid {
    outline: var(--an-border-width) solid var(--an-danger);
}

.validation-message {
    color: var(--an-danger);
}

.blazor-error-boundary {
    background: var(--an-danger);
    color: var(--an-white);
    padding: var(--an-space-rem);
}

.blazor-error-boundary::after {
    content: "An error has occurred.";
}

.form-floating > .form-control-plaintext::placeholder,
.form-floating > .form-control::placeholder {
    color: var(--bs-secondary-color);
    text-align: end;
}

.form-floating > .form-control-plaintext:focus::placeholder,
.form-floating > .form-control:focus::placeholder {
    text-align: start;
}

/* =========================================================================
   Page layout
   ========================================================================= */
.inventory-page,
.inventory-panel,
.inventory-content,
.inventory-results,
.inventory-grid-wrap {
    width: var(--an-full-size);
    max-width: var(--an-full-size);
    min-width: 0;
    box-sizing: border-box;
    flex: 0 0 auto;
}

.inventory-page,
.inventory-panel,
.inventory-content,
.inventory-results {
    display: flex;
    flex-direction: column;
    min-height: 0;
}

.inventory-page {
    margin: 0 auto;
}

.inventory-crumbs {
    margin-bottom: var(--an-space-xl);
}

.breadcrumb {
    --bs-breadcrumb-margin-bottom: 0;
    --bs-breadcrumb-divider-color: var(--an-muted);
    --bs-breadcrumb-item-active-color: var(--an-muted);
    background: transparent;
    font-size: var(--an-font-size-xs);
}

.inventory-heading {
    display: flex;
    align-items: end;
    justify-content: flex-start;
    gap: var(--an-space-2xl);
    margin-bottom: var(--an-space-xl);
}

.inventory-heading h1 {
    margin: 0;
    color: var(--an-text);
    font-size: var(--an-font-size-heading);
    font-weight: 700;
}

.inventory-heading p {
    margin: 3px 0 0;
    color: var(--an-muted);
    font-size: var(--an-font-size-sm);
}

.inventory-panel {
    background: var(--an-surface);
}

.inventory-results {
    overflow-x: clip;
}

.inventory-grid-wrap {
    min-height: auto;
    position: relative;
}

.inventory-grid-scroll {
    width: var(--an-full-size);
    max-width: var(--an-full-size);
    min-width: 0;
    overflow-x: auto;
    overflow-y: visible;
    overscroll-behavior-x: contain;
    -webkit-overflow-scrolling: touch;
}

/* =========================================================================
   Filter panel
   ========================================================================= */
.inventory-filter-panel {
    position: relative;
    flex: 1 1 auto;
    min-width: 0;
    max-height: var(--an-filter-panel-height);
    margin: 0;
    overflow: visible;
    padding: var(--an-space-2xs) 0;
}

.filter-dismiss-layer {
    position: fixed;
    inset: 0;
    z-index: 1050;
    background: transparent;
}

.filter-grid {
    position: relative;
    z-index: 1051;
    display: flex;
    flex-direction: row;
    align-items: center;
    gap: var(--an-space-sm);
    width: var(--an-full-size);
    min-width: max-content;
}

.filter-field {
    display: flex;
    flex-direction: row;
    align-items: center;
    min-width: 0;
    color: var(--an-text);
    font-size: var(--an-font-size-sm);
    font-weight: 800;
    text-transform: capitalize;
}

.filter-field-collection,
.filter-field-subcollection {
    width: var(--an-filter-field-collection-width);
}

.filter-field-category {
    width: var(--an-filter-field-category-width);
}

.filter-field-condition {
    width: var(--an-filter-field-condition-width);
}

.filter-field-search {
    width: var(--an-filter-field-search-width);
}

.filter-field .form-control,
.filter-field .form-select {
    height: var(--an-control-height);
    min-height: var(--an-control-height);
    padding-top: var(--an-control-padding-y);
    padding-bottom: var(--an-control-padding-y);
    color: var(--an-text);
    font-size: var(--an-font-size-sm);
    text-transform: none;
    background-color: var(--an-surface);
    border-radius: var(--bs-border-radius);
    border: var(--bs-border-width) solid var(--bs-border-color);
}

.filter-field .form-select:disabled {
    background-color: var(--an-surface-strong);
}

.filter-field .form-select.is-selected,
.filter-multiselect-toggle.is-selected {
    color: var(--an-text) !important;
    background-color: var(--an-filter-selected-surface) !important;
    border-color: var(--an-filter-selected-border) !important;
    font-weight: 700;
}

.filter-multiselect {
    position: relative;
    display: block;
    flex: 0 0 auto;
    min-width: 0;
    margin: 0;
    box-sizing: border-box;
}

.filter-multiselect[open] {
    z-index: 1060;
}

.filter-multiselect-toggle {
    display: flex !important;
    align-items: center;
    justify-content: flex-start;
    width: var(--an-full-size);
    height: var(--an-control-height);
    min-height: var(--an-control-height);
    padding-top: var(--an-control-padding-y) !important;
    padding-bottom: var(--an-control-padding-y) !important;
    color: var(--an-text) !important;
    font-size: var(--an-font-size-sm) !important;
    text-align: left;
    background-color: var(--an-surface) !important;
    border-color: var(--bs-border-color) !important;
    border-radius: var(--bs-border-radius) !important;
}

.filter-multiselect-toggle::-webkit-details-marker {
    display: none;
}

.filter-multiselect-toggle::after {
    content: "";
    width: 0;
    height: 0;
    margin-left: auto;
    border-top: 0.32rem solid currentColor;
    border-right: 0.28rem solid transparent;
    border-left: 0.28rem solid transparent;
}

.filter-multiselect[open] .filter-multiselect-toggle::after {
    transform: rotate(180deg);
}

.filter-multiselect-menu {
    position: absolute;
    top: calc(100% + 2px);
    left: 0;
    z-index: 1;
    display: flex;
    flex-direction: column;
    gap: var(--an-space-xs);
    width: max-content;
    min-width: var(--an-full-size);
    max-width: min(92vw, 320px);
    max-height: min(320px, calc(100dvh - 96px));
    margin: 0;
    overflow: auto;
    border: var(--an-border-width) solid var(--an-border-strong);
    border-radius: var(--bs-border-radius);
    padding: var(--an-space-sm);
    background: var(--an-bg);
    box-shadow: 0 4px 10px rgba(23, 36, 50, 0.16);
    box-sizing: border-box;
}

.filter-multiselect-menu .form-check {
    display: flex;
    flex-direction: row;
    align-items: center;
    justify-content: flex-start;
    gap: var(--an-space-sm);
    min-height: var(--an-filter-check-height);
    margin: 0;
    padding-left: 0;
    color: var(--an-text);
    font-size: var(--an-font-size-sm);
    white-space: nowrap;
}

.filter-multiselect-menu .form-check-label {
    margin-left: 0;
    font-size: var(--an-font-size-base);
    line-height: 1.5;
}

.filter-multiselect-menu .form-check-input {
    float: none;
    flex: 0 0 auto;
    margin-top: 0;
    margin-right: var(--an-space-control-x);
    margin-left: 0;
    background-color: var(--an-surface);
    border: var(--an-border-width) solid var(--an-blue);
    border-radius: var(--bs-border-radius);
    width: 18px;
    height: 18px;
}

.filter-multiselect-menu .form-check-input:checked,
.filter-multiselect-menu .form-check-input:indeterminate {
    margin-top: 0;
    background-color: var(--an-blue);
    border: var(--an-border-width) solid var(--an-blue);
    border-radius: var(--bs-border-radius);
}

.filter-checklist-row {
    display: contents;
}

.filter-grader-grades {
    display: flex;
    flex-direction: column;
    gap: var(--an-space-xs);
    padding-left: 24px;
}

.filter-checks-flags {
    width: var(--an-filter-checks-flags-width);
}

.filter-checks-grader {
    width: var(--an-filter-checks-grader-width);
}

.filter-checks-platform {
    max-width: var(--an-filter-checks-platform-width);
}

.filter-prices {
    display: flex;
    flex-direction: column;
    gap: var(--an-space-sm);
}

.filter-command-group {
    display: flex;
    flex: 0 0 auto;
    flex-direction: row;
    align-items: center;
    justify-content: flex-end;
    gap: var(--an-space-sm);
    margin-left: auto;
}

.filter-actions {
    display: flex;
    flex-direction: row;
    align-items: stretch;
    gap: var(--an-filter-action-gap);
}

.filter-action-press {
    display: inline-flex;
    flex: 1 1 auto;
}

.filter-actions .btn {
    background-color: var(--an-surface);
    color: var(--an-black);
    height: var(--an-filter-button-height);
    min-height: var(--an-filter-button-height);
    padding-top: var(--an-control-padding-y);
    padding-bottom: var(--an-control-padding-y);
    padding-left: var(--an-button-padding-x);
    padding-right: var(--an-button-padding-x);
    line-height: 1;
    white-space: nowrap;
    border-radius: var(--bs-border-radius);
    transition: background-color 120ms ease, border-color 120ms ease, box-shadow 120ms ease, transform 80ms ease;
}

.filter-actions .btn:active {
    transform: translateY(1px);
    box-shadow: inset 0 1px 3px rgba(23, 36, 50, 0.28);
}

.filter-action-press:active .btn:disabled {
    transform: translateY(1px);
    box-shadow: inset 0 1px 3px rgba(23, 36, 50, 0.28);
}

.filter-action-press .btn:disabled {
    pointer-events: none;
}

.filter-actions .btn-primary {
    --bs-btn-color: var(--an-white);
    --bs-btn-bg: var(--an-blue);
    --bs-btn-border-color: var(--an-blue);
    color: var(--bs-btn-color);
    background-color: var(--bs-btn-bg);
    border-color: var(--bs-btn-border-color);
    font-weight: 600;
}

.filter-actions .btn-primary:hover {
    --bs-btn-hover-color: var(--an-white);
    --bs-btn-hover-bg: var(--an-blue-strong);
    --bs-btn-hover-border-color: var(--an-blue-strong);
    color: var(--bs-btn-hover-color);
    background-color: var(--bs-btn-hover-bg);
    border-color: var(--bs-btn-hover-border-color);
}

.filter-actions .btn-outline-secondary {
    --bs-btn-hover-color: var(--an-blue);
    --bs-btn-hover-bg: var(--an-surface);
    --bs-btn-hover-border-color: var(--an-blue-light);
    color: var(--bs-btn-hover-color);
    background-color: var(--bs-btn-hover-bg);
    border-color: var(--bs-btn-hover-border-color);
}

.filter-actions .btn-outline-secondary:hover {
    --bs-btn-hover-color: var(--an-blue);
    --bs-btn-hover-bg: var(--an-surface-strong);
    --bs-btn-hover-border-color: var(--an-blue-light);
    color: var(--bs-btn-hover-color);
    background-color: var(--bs-btn-hover-bg);
    border-color: var(--bs-btn-hover-border-color);
}

.form-check-input:focus {
    box-shadow: 0 0 0 0 var(--an-focus-shadow);
}

.filter-error {
    margin-top: var(--an-space-2xs);
    color: var(--an-error-text);
    font-size: var(--an-font-size-xs);
}

/* =========================================================================
   Grid
   ========================================================================= */
.quickgrid-loading {
    position: absolute;
    inset: var(--an-loading-top-offset) 0 0;
    z-index: 9;
    display: flex;
    justify-content: center;
    align-items: flex-start;
    min-height: var(--an-loading-min-height);
    padding-top: var(--an-space-3xl);
    background: transparent;
    color: var(--an-muted);
    pointer-events: none;
}

.quickgrid-loading .spinner-border {
    width: var(--an-spinner-size);
    height: var(--an-spinner-size);
    border-width: var(--an-spinner-border-width);
}

.quickgrid-empty-state {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: var(--an-space-sm);
    min-height: var(--an-grid-empty-min-height);
    top: var(--an-grid-empty-top);
    left: var(--an-center-position);
    right: var(--an-center-position);
    position: absolute;
    transform: translate(calc(-1 * var(--an-center-position)), calc(-1 * var(--an-center-position)));
    width: var(--an-center-position);
    border: var(--an-border-width) solid var(--an-border-strong);
    background: var(--an-bg);
    color: var(--an-muted);
    font-size: var(--an-font-size-sm);
}

.quickgrid {
    display: table;
    width: max(var(--an-grid-table-min-width), var(--an-full-size));
    min-width: 0;
    box-sizing: border-box;
    border-collapse: separate;
    border-spacing: 0;
    color: var(--an-text);
    font-size: var(--an-font-size-sm);
    table-layout: fixed;
    text-transform: capitalize;
}

.inventory-grid-wrap.is-loading .quickgrid {
    opacity: var(--an-loading-grid-opacity);
}

.quickgrid th[aria-sort="none"] .sort-indicator {
    display: none;
}

.quickgrid th[aria-sort="ascending"] .sort-indicator,
.quickgrid th[aria-sort="descending"] .sort-indicator {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: var(--an-grid-sort-icon-size);
    height: var(--an-grid-sort-icon-size);
    overflow: hidden;
    background: none !important;
    background-image: none !important;
    font-size: 0;
    line-height: 0;
    transform: none !important;
    vertical-align: middle;
}

.quickgrid th[aria-sort="ascending"] .sort-indicator::before,
.quickgrid th[aria-sort="descending"] .sort-indicator::before {
    content: "";
    display: block;
    width: var(--an-grid-sort-icon-size);
    height: var(--an-grid-sort-icon-size);
    background-color: currentColor;
}

.quickgrid th[aria-sort="ascending"] .sort-indicator::after,
.quickgrid th[aria-sort="descending"] .sort-indicator::after {
    content: none !important;
}

.quickgrid th.col-sort-asc .sort-indicator::before {
    -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='m7.247 4.86-4.796 5.481c-.566.647-.106 1.659.753 1.659h9.592a1 1 0 0 0 .753-1.659L8.753 4.86a1 1 0 0 0-1.506 0z'/%3E%3C/svg%3E") center / contain no-repeat;
    mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='m7.247 4.86-4.796 5.481c-.566.647-.106 1.659.753 1.659h9.592a1 1 0 0 0 .753-1.659L8.753 4.86a1 1 0 0 0-1.506 0z'/%3E%3C/svg%3E") center / contain no-repeat;
}

.quickgrid th.col-sort-desc .sort-indicator::before {
    -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M7.247 11.14 2.451 5.658C1.885 5.013 2.345 4 3.204 4h9.592a1 1 0 0 1 .753 1.659l-4.796 5.48a1 1 0 0 1-1.506 0z'/%3E%3C/svg%3E") center / contain no-repeat;
    mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M7.247 11.14 2.451 5.658C1.885 5.013 2.345 4 3.204 4h9.592a1 1 0 0 1 .753 1.659l-4.796 5.48a1 1 0 0 1-1.506 0z'/%3E%3C/svg%3E") center / contain no-repeat;
}

.quickgrid thead {
    background: linear-gradient(to bottom, var(--an-grid-header-start) 0%, var(--an-grid-header-middle) var(--an-grid-header-gradient-stop), var(--an-surface-strong) var(--an-full-size));
}

.quickgrid th:first-child {
    border-left: var(--an-border-width) solid var(--an-border-strong);
}

.quickgrid thead th {
    position: sticky !important;
    top: 0 !important;
    z-index: 20;
    height: var(--an-grid-header-height);
    background: linear-gradient(to bottom, var(--an-grid-header-start) 0%, var(--an-grid-header-middle) var(--an-grid-header-gradient-stop), var(--an-grid-header-end) var(--an-full-size));
    box-shadow: inset 0 1px 0 var(--an-white), inset 0 -1px 0 var(--an-grid-header-shadow-border), 0 1px 1px var(--an-grid-header-shadow);
    width: var(--an-grid-default-column-width);
    white-space: nowrap;
    color: var(--an-text);
    padding: var(--an-space-control-y) var(--an-space-control-x) !important;
    border-top: var(--an-border-width) solid var(--an-border-strong);
    border-right: var(--an-border-width) solid var(--an-border-strong);
    box-sizing: border-box;
    overflow: hidden;
}

.quickgrid tr:last-child td {
    border-bottom: var(--an-border-width) solid var(--an-border-strong);
}

.quickgrid td:first-child {
    border-left: var(--an-border-width) solid var(--an-border-strong);
}

.quickgrid td {
    border-right: var(--an-border-width) solid var(--an-border-strong);
    border-bottom: var(--an-border-width) solid var(--an-border);
    height: var(--an-grid-row-height);
    padding: var(--an-space-control-y) var(--an-space-control-x) !important;
    vertical-align: middle;
    white-space: nowrap;
    box-sizing: border-box;
    overflow: hidden;
}

.quickgrid[aria-rowcount="1"] tbody {
    opacity: 0.7;
}

.quickgrid tbody tr:hover {
    background: var(--an-row-hover);
}

.quickgrid .cell-text {
    display: block;
    max-width: var(--an-full-size);
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.quickgrid .cell-text.is-expired {
    color: var(--an-danger);
    font-weight: 600;
}

.grid-title-popover {
    position: fixed;
    z-index: 1080;
    display: none;
    max-width: min(92vw, 420px);
    padding: var(--an-space-sm) var(--an-space-md);
    border: var(--an-border-width) solid var(--an-border-strong);
    border-radius: var(--bs-border-radius);
    color: var(--an-text);
    font-size: var(--an-font-size-sm);
    line-height: 1.35;
    background: var(--an-bg);
    box-shadow: 0 4px 10px rgba(23, 36, 50, 0.16);
    overflow-wrap: anywhere;
    pointer-events: none;
}

.grid-title-popover.is-visible {
    display: block;
}

.quickgrid .star-icon {
    display: inline-block;
    font-size: var(--an-font-size-icon);
    line-height: 1;
    color: var(--an-muted);
    vertical-align: middle;
}

.quickgrid .col-title {
    width: var(--an-grid-title-min-width);
    min-width: var(--an-grid-title-min-width);
    max-width: var(--an-grid-title-min-width);
    white-space: nowrap;
    font-weight: 500 !important;
}

.quickgrid .col-star {
    width: var(--an-grid-star-width);
    min-width: var(--an-grid-star-min-width);
    max-width: var(--an-grid-star-width);
    padding-right: var(--an-grid-compact-padding-x);
    padding-left: var(--an-grid-compact-padding-x);
    text-align: center;
}

.quickgrid th.col-star .col-title {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 2px;
    width: 100%;
    min-width: 0;
    max-width: 100%;
    padding: 0;
}

.quickgrid th.col-star .col-title-text {
    flex: 0 0 auto;
    width: auto !important;
    padding: 0;
    font-size: var(--an-font-size-sm);
}

.quickgrid th.col-star .sort-indicator {
    position: static;
    flex: 0 0 var(--an-grid-sort-icon-size);
    margin: 0;
}

.quickgrid th.col-title-text {
    text-transform: uppercase;
    width: var(--an-full-size);
}

.quickgrid th .col-title-text {
    display: block;
    max-width: var(--an-full-size);
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.col-title-text {
    width: var(--an-full-size) !important;
}

.quickgrid th.col-title .col-title-text {
    text-align: left;
}

.quickgrid th.col-date .col-title-text {
    text-align: right;
}

.quickgrid .col-seller,
.quickgrid .col-date {
    text-transform: none;
}

.quickgrid .col-price,
.quickgrid .col-date {
    text-align: right;
}

.quickgrid .col-grader,
.quickgrid .col-grade-value,
.quickgrid .col-subgrade,
.quickgrid .col-sealed,
.quickgrid .col-vintage,
.quickgrid .col-year,
.quickgrid .col-quantity {
    text-align: center;
    min-width: var(--an-grid-default-column-width);
}

.quickgrid .col-price {
    width: var(--an-grid-price-width);
    min-width: var(--an-grid-default-column-width);
    max-width: var(--an-grid-price-width);
}

.quickgrid .col-grader {
    width: var(--an-grid-grader-column-width);
    max-width: var(--an-grid-grader-column-width);
}

.quickgrid .col-grade-value {
    width: var(--an-grid-grade-value-column-width);
    max-width: var(--an-grid-grade-value-column-width);
}

.quickgrid .col-subgrade {
    width: var(--an-grid-subgrade-column-width);
    max-width: var(--an-grid-subgrade-column-width);
}

.quickgrid .col-sealed {
    width: var(--an-grid-sealed-column-width);
    max-width: var(--an-grid-sealed-column-width);
}

.quickgrid .col-vintage {
    width: var(--an-grid-vintage-column-width);
    max-width: var(--an-grid-vintage-column-width);
}

.quickgrid .col-year {
    width: var(--an-grid-year-column-width);
    max-width: var(--an-grid-year-column-width);
}

.quickgrid .col-platform {
    text-align: center;
    width: var(--an-grid-platform-column-width);
    min-width: var(--an-grid-default-column-width);
    max-width: var(--an-grid-platform-column-width);
}

.quickgrid .col-autograph {
    text-align: center;
    width: var(--an-grid-autograph-column-width);
    min-width: var(--an-grid-default-column-width);
    max-width: var(--an-grid-autograph-column-width);
}

.quickgrid .col-seller {
    text-align: center;
    width: var(--an-grid-seller-column-width);
    min-width: var(--an-grid-default-column-width);
    max-width: var(--an-grid-seller-column-width);
}

.quickgrid .col-channel {
    text-align: center;
    width: var(--an-grid-channel-column-width);
    min-width: var(--an-grid-default-column-width);
    max-width: var(--an-grid-channel-column-width);
}

.quickgrid .col-quantity {
    width: var(--an-grid-quantity-width);
    min-width: var(--an-grid-quantity-width);
    max-width: var(--an-grid-quantity-width);
}

.quickgrid .col-date {
    width: var(--an-grid-date-width);
    min-width: var(--an-grid-date-width);
    max-width: var(--an-grid-date-max-width);
}

.quickgrid .col-link {
    width: var(--an-grid-link-column-width);
    min-width: var(--an-grid-default-column-width);
    max-width: var(--an-grid-link-column-width);
}

.quickgrid tr:last-child {
    border-bottom: var(--an-border-width) solid var(--an-border-strong);
}

.inventory-link {
    font-weight: 500;
    text-decoration: none;
}

.inventory-link:hover {
    text-decoration: underline;
}

.error-state {
    padding: var(--an-space-lg);
    border-bottom: var(--an-border-width) solid var(--an-border);
    color: var(--an-error-text);
    font-size: var(--an-font-size-sm);
}

/* =========================================================================
   Paginator
   ========================================================================= */
.inventory-paginator-wrap {
    flex: 0 0 auto;
    z-index: 30;
    width: var(--an-full-size);
    min-width: var(--an-full-size);
    box-sizing: border-box;
    margin-top: auto;
    position: sticky !important;
    bottom: 4px !important;
}

.paginator {
    display: flex;
    flex: 0 0 auto;
    width: var(--an-full-size);
    max-width: var(--an-full-size);
    align-items: center;
    justify-content: flex-end;
    gap: var(--an-space-sm);
    border: var(--an-border-width) solid var(--an-border-strong);
    padding: var(--an-space-sm) var(--an-space-lg) !important;
    color: var(--an-muted);
    font-size: var(--an-font-size-xs);
    margin-top: var(--an-space-0) !important;
    background: var(--an-surface);
    box-shadow: 0 -1px 2px var(--an-paginator-shadow);
}

.paginator button {
    min-width: var(--an-paginator-button-width);
    min-height: var(--an-control-height);
    border: var(--an-border-width) solid var(--an-border);
    border-radius: var(--bs-border-radius-sm);
    background: var(--an-bg);
    color: var(--an-text);
    font-size: 0;
}

.paginator button:disabled {
    color: var(--an-muted);
    opacity: 0.7;
}

.paginator nav button {
    background-color: var(--an-bg);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    transform: none;
}

.paginator nav button::before {
    content: "";
    display: block;
    width: var(--an-paginator-icon-size);
    height: var(--an-paginator-icon-size);
    background-color: currentColor;
    -webkit-mask: var(--an-paginator-icon) center / contain no-repeat;
    mask: var(--an-paginator-icon) center / contain no-repeat;
}

.paginator nav button.go-first {
    background-image: none;
    transform: scaleX(1);
    --an-paginator-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath fill-rule='evenodd' d='M12.5 15a.5.5 0 0 1-.5-.5v-13a.5.5 0 0 1 1 0v13a.5.5 0 0 1-.5.5zM10 8a.5.5 0 0 1-.5.5H3.707l2.147 2.146a.5.5 0 0 1-.708.708l-3-3a.5.5 0 0 1 0-.708l3-3a.5.5 0 1 1 .708.708L3.707 7.5H9.5a.5.5 0 0 1 .5.5z'/%3E%3C/svg%3E");
}

.paginator nav button.go-previous {
    background-image: none;
    transform: scaleX(1);
    --an-paginator-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M10 12.796V3.204L4.519 8 10 12.796zm-.659.753-5.48-4.796a1 1 0 0 1 0-1.506l5.48-4.796A1 1 0 0 1 11 3.204v9.592a1 1 0 0 1-1.659.753z'/%3E%3C/svg%3E");
}

.paginator nav button.go-next {
    background-image: none;
    transform: scaleX(1);
    --an-paginator-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M6 12.796V3.204L11.481 8 6 12.796zm.659.753 5.48-4.796a1 1 0 0 0 0-1.506L6.66 2.451C6.011 1.885 5 2.345 5 3.204v9.592a1 1 0 0 0 1.659.753z'/%3E%3C/svg%3E");
}

.paginator nav button.go-last {
    background-image: none;
    transform: scaleX(1);
    --an-paginator-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath fill-rule='evenodd' d='M3.5 15a.5.5 0 0 0 .5-.5v-13a.5.5 0 0 0-1 0v13a.5.5 0 0 0 .5.5zM6 8a.5.5 0 0 0 .5.5h5.793l-2.147 2.146a.5.5 0 0 0 .708.708l3-3a.5.5 0 0 0 0-.708l-3-3a.5.5 0 0 0-.708.708L12.293 7.5H6.5A.5.5 0 0 0 6 8z'/%3E%3C/svg%3E");
}

.inventory-paginator-wrap.is-filtered .summary.summary::after {
    content: " (Filtered)";
    color: var(--an-muted);
    font-weight: 600;
}

.inventory-paginator-wrap.is-loading .summary.summary {
    font-size: 0;
}

.inventory-paginator-wrap.is-loading .summary.summary::before {
    content: "Loading...";
    font-size: var(--an-font-size-xs);
}

.inventory-paginator-wrap.is-loading .summary.summary::after {
    content: none;
}

/* =========================================================================
   Responsive
   ========================================================================= */
@media (min-width: 1920px) {
    :root {
        --an-grid-star-width: var(--an-grid-star-column-width-hd);
        --an-grid-title-min-width: var(--an-grid-title-column-width-hd);
        --an-grid-price-width: var(--an-grid-price-column-width-hd);
        --an-grid-quantity-width: var(--an-grid-quantity-column-width-hd);
        --an-grid-date-width: var(--an-grid-date-column-width-hd);
        --an-grid-grader-column-width: var(--an-grid-grader-column-width-hd);
        --an-grid-grade-value-column-width: var(--an-grid-grade-value-column-width-hd);
        --an-grid-subgrade-column-width: var(--an-grid-subgrade-column-width-hd);
        --an-grid-sealed-column-width: var(--an-grid-sealed-column-width-hd);
        --an-grid-autograph-column-width: var(--an-grid-autograph-column-width-hd);
        --an-grid-vintage-column-width: var(--an-grid-vintage-column-width-hd);
        --an-grid-platform-column-width: var(--an-grid-platform-column-width-hd);
        --an-grid-year-column-width: var(--an-grid-year-column-width-hd);
        --an-grid-seller-column-width: var(--an-grid-seller-column-width-hd);
        --an-grid-channel-column-width: var(--an-grid-channel-column-width-hd);
        --an-grid-link-column-width: var(--an-grid-link-column-width-hd);
    }
}

@media (min-width: 2560px) {
    :root {
        --an-grid-star-width: var(--an-grid-star-column-width-2k);
        --an-grid-title-min-width: var(--an-grid-title-column-width-2k);
        --an-grid-price-width: var(--an-grid-price-column-width-2k);
        --an-grid-quantity-width: var(--an-grid-quantity-column-width-2k);
        --an-grid-date-width: var(--an-grid-date-column-width-2k);
        --an-grid-grader-column-width: var(--an-grid-grader-column-width-2k);
        --an-grid-grade-value-column-width: var(--an-grid-grade-value-column-width-2k);
        --an-grid-subgrade-column-width: var(--an-grid-subgrade-column-width-2k);
        --an-grid-sealed-column-width: var(--an-grid-sealed-column-width-2k);
        --an-grid-autograph-column-width: var(--an-grid-autograph-column-width-2k);
        --an-grid-vintage-column-width: var(--an-grid-vintage-column-width-2k);
        --an-grid-platform-column-width: var(--an-grid-platform-column-width-2k);
        --an-grid-year-column-width: var(--an-grid-year-column-width-2k);
        --an-grid-seller-column-width: var(--an-grid-seller-column-width-2k);
        --an-grid-channel-column-width: var(--an-grid-channel-column-width-2k);
        --an-grid-link-column-width: var(--an-grid-link-column-width-2k);
    }
}

@media (min-width: 3840px) {
    :root {
        --an-grid-star-width: var(--an-grid-star-column-width-4k);
        --an-grid-title-min-width: var(--an-grid-title-column-width-4k);
        --an-grid-price-width: var(--an-grid-price-column-width-4k);
        --an-grid-quantity-width: var(--an-grid-quantity-column-width-4k);
        --an-grid-date-width: var(--an-grid-date-column-width-4k);
        --an-grid-grader-column-width: var(--an-grid-grader-column-width-4k);
        --an-grid-grade-value-column-width: var(--an-grid-grade-value-column-width-4k);
        --an-grid-subgrade-column-width: var(--an-grid-subgrade-column-width-4k);
        --an-grid-sealed-column-width: var(--an-grid-sealed-column-width-4k);
        --an-grid-autograph-column-width: var(--an-grid-autograph-column-width-4k);
        --an-grid-vintage-column-width: var(--an-grid-vintage-column-width-4k);
        --an-grid-platform-column-width: var(--an-grid-platform-column-width-4k);
        --an-grid-year-column-width: var(--an-grid-year-column-width-4k);
        --an-grid-seller-column-width: var(--an-grid-seller-column-width-4k);
        --an-grid-channel-column-width: var(--an-grid-channel-column-width-4k);
        --an-grid-link-column-width: var(--an-grid-link-column-width-4k);
    }
}

@media (max-width: 1430px) {
    .quickgrid tbody .cell-text {
        display: block;
        min-width: var(--an-responsive-min-column-width);
        max-width: var(--an-full-size);
        overflow: hidden;
        text-overflow: ellipsis;
        white-space: nowrap;
    }
}

@media (max-width: 1200px) {
    .inventory-filter-panel {
        width: var(--an-full-size);
        max-height: none;
        overflow-x: visible;
        overflow-y: visible;
        padding: var(--an-space-md) 0;
    }

    .filter-grid {
        display: flex;
        flex-direction: column;
        align-items: stretch;
        gap: var(--an-space-sm);
        min-width: 0;
        width: var(--an-full-size);
    }

    .filter-field,
    .filter-field-collection,
    .filter-field-subcollection,
    .filter-field-category,
    .filter-field-condition,
    .filter-field-search,
    .filter-multiselect {
        width: var(--an-full-size);
        max-width: var(--an-full-size);
    }

    .filter-multiselect-menu {
        width: 90%;
    }

    .filter-command-group {
        flex-direction: column;
        align-items: stretch;
        width: var(--an-full-size);
        margin-left: 0 !important;
    }

    .filter-actions {
        width: var(--an-full-size);
    }

    .filter-actions .btn {
        flex: 1 1 0;
    }

    .paginator {
        justify-content: flex-start;
    }

    .paginator nav {
        margin-left: 0 !important;
    }
}

@media (max-width: 768px) {
    :root {
        --an-grid-star-width: var(--an-grid-star-column-width-mobile);
        --an-grid-title-min-width: var(--an-grid-title-column-width-mobile);
        --an-grid-price-width: var(--an-grid-price-column-width-mobile);
        --an-grid-quantity-width: var(--an-grid-quantity-column-width-mobile);
        --an-grid-date-width: var(--an-grid-date-column-width-mobile);
        --an-grid-grader-column-width: var(--an-grid-grader-column-width-mobile);
        --an-grid-grade-value-column-width: var(--an-grid-grade-value-column-width-mobile);
        --an-grid-subgrade-column-width: var(--an-grid-subgrade-column-width-mobile);
        --an-grid-sealed-column-width: var(--an-grid-sealed-column-width-mobile);
        --an-grid-autograph-column-width: var(--an-grid-autograph-column-width-mobile);
        --an-grid-vintage-column-width: var(--an-grid-vintage-column-width-mobile);
        --an-grid-platform-column-width: var(--an-grid-platform-column-width-mobile);
        --an-grid-year-column-width: var(--an-grid-year-column-width-mobile);
        --an-grid-seller-column-width: var(--an-grid-seller-column-width-mobile);
        --an-grid-channel-column-width: var(--an-grid-channel-column-width-mobile);
        --an-grid-link-column-width: var(--an-grid-link-column-width-mobile);
    }

    .filter-grid {
        display: grid;
        grid-template-columns: minmax(0, 1fr);
        grid-template-areas:
            "collection"
            "category"
            "condition"
            "checklists"
            "commands";
        align-items: stretch;
        gap: var(--an-space-sm);
    }

    .filter-field-collection {
        grid-area: collection;
    }

    .filter-field-category {
        grid-area: category;
    }

    .filter-field-condition {
        grid-area: condition;
    }

    .filter-checklist-row {
        grid-area: checklists;
        display: grid;
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: var(--an-space-sm);
        width: var(--an-full-size);
        min-width: 0;
    }

    .filter-command-group {
        grid-area: commands;
    }

    .filter-field,
    .filter-field-collection,
    .filter-field-subcollection,
    .filter-field-category,
    .filter-field-condition,
    .filter-field-search,
    .filter-command-group {
        flex: 0 0 var(--an-full-size);
    }

    .filter-checks-flags,
    .filter-checks-grader {
        flex: 0 1 auto;
        width: auto;
        max-width: none;
        min-width: 0;
    }

    .filter-checks-flags .filter-multiselect-menu,
    .filter-checks-grader .filter-multiselect-menu {
        width: max-content;
        min-width: var(--an-full-size);
        max-width: min(92vw, 320px);
    }

    .filter-checks-grader .filter-multiselect-menu {
        right: 0;
        left: auto;
    }

    .quickgrid {
        font-size: var(--an-font-size-base);
    }

    .quickgrid td {
        height: 44px;
        padding-top: var(--an-space-xs) !important;
        padding-bottom: var(--an-space-xs) !important;
        border-bottom-color: var(--an-border-strong);
    }

    .quickgrid thead th {
        font-size: var(--an-font-size-sm);
    }

    .quickgrid th .col-title-text {
        font-size: 0;
    }

    .quickgrid th .col-title-text::after {
        font-size: var(--an-font-size-sm);
    }

    .quickgrid th.col-title .col-title-text::after {
        content: "Item";
    }

    .quickgrid th.col-price .col-title-text::after {
        content: "Price";
    }

    .quickgrid th.col-quantity .col-title-text::after {
        content: "Qty";
    }

    .quickgrid th.col-date .col-title-text::after {
        content: "End";
    }

    .quickgrid th.col-grader .col-title-text::after {
        content: "Grader";
    }

    .quickgrid th.col-grade-value .col-title-text::after {
        content: "Grade";
    }

    .quickgrid th.col-subgrade .col-title-text::after {
        content: "Subgrade";
    }

    .quickgrid th.col-sealed .col-title-text::after {
        content: "Sealed";
    }

    .quickgrid th.col-autograph .col-title-text::after {
        content: "Autograph";
    }

    .quickgrid th.col-vintage .col-title-text::after {
        content: "Vintage";
    }

    .quickgrid th.col-platform .col-title-text::after {
        content: "Platform";
    }

    .quickgrid th.col-year .col-title-text::after {
        content: "Year";
    }

    .quickgrid th.col-seller .col-title-text::after {
        content: "Seller";
    }

    .quickgrid th.col-channel .col-title-text::after {
        content: "Channel";
    }

    .paginator {
        font-size: var(--an-font-size-sm);
    }

    .paginator button {
        width: 25px !important;
        min-height: 40px;
        padding: 0px;
    }

    .paginator nav button::before {
        width: 1rem;
        height: 1.1rem;
    }
    
    .paginator .summary {
        width: 60px;
    }
    .paginator nav {
        margin-left: auto !important;
    }
}
