
html {
    overflow-y: scroll;
    scrollbar-gutter: stable;
}

.badge {
    border-radius: 0;
}

.pagination {
    border-radius: 0;
}

/*DataTable*/

table.dataTable.table-layout-fixed {
        table-layout: fixed;
        width: 100%;
    }

table.dataTable tbody > tr > td > a:not([type="button"]) {
    color: rgba(0, 0, 0, 0.5);
    font-weight: bolder;
    text-decoration: none;
}

table.dataTable tbody > tr > td > a:not([type="button"]):hover {
    color: rgba(0, 0, 0);
}

table.dataTable tbody > tr:last-child > td {
    border-bottom: 2px solid #dee2e6;
}

table.dataTable tbody > tr > td.ellipsis {
    position: relative;
}

table.dataTable tbody > tr > td.ellipsis:before {
    content: '&nbsp;';
    visibility: hidden;
}

table.dataTable tbody > tr > td.ellipsis span {
    padding: 0 10px;
    position: absolute;
    left: 0;
    right: 0;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

table.dataTable thead > tr > th.sorting,
table.dataTable thead > tr > th.sorting_asc,
table.dataTable thead > tr > th.sorting_desc,
table.dataTable thead > tr > td.sorting,
table.dataTable thead > tr > td.sorting_asc,
table.dataTable thead > tr > td.sorting_desc {
    cursor: pointer;
    position: relative;
    padding-right: 30px;
}

table.dataTable thead > tr > th.sorting:before,
table.dataTable thead > tr > th.sorting:after,
table.dataTable thead > tr > th.sorting_asc:before,
table.dataTable thead > tr > th.sorting_asc:after,
table.dataTable thead > tr > th.sorting_desc:before,
table.dataTable thead > tr > th.sorting_desc:after,
table.dataTable thead > tr > td.sorting:before,
table.dataTable thead > tr > td.sorting:after,
table.dataTable thead > tr > td.sorting_asc:before,
table.dataTable thead > tr > td.sorting_asc:after,
table.dataTable thead > tr > td.sorting_desc:before,
table.dataTable thead > tr > td.sorting_desc:after {
	position: absolute;
	display: block;
	opacity: .125;
	right: 10px;
	line-height: 15px;
    font-size: .9em;
}

table.dataTable thead > tr > th.sorting:before,
table.dataTable thead > tr > th.sorting_asc:before,
table.dataTable thead > tr > th.sorting_desc:before,
table.dataTable thead > tr > td.sorting:before,
table.dataTable thead > tr > td.sorting_asc:before,
table.dataTable thead > tr > td.sorting_desc:before {
	bottom: 50%;
	content: "▲";
	content: "▲"/"";
}

table.dataTable thead > tr > th.sorting:after,
table.dataTable thead > tr > th.sorting_asc:after,
table.dataTable thead > tr > th.sorting_desc:after,
table.dataTable thead > tr > td.sorting:after,
table.dataTable thead > tr > td.sorting_asc:after,
table.dataTable thead > tr > td.sorting_desc:after {
	top: 50%;
	content: "▼";
	content: "▼"/""
}

table.dataTable thead > tr > th.sorting_asc:before,
table.dataTable thead > tr > th.sorting_desc:after,
table.dataTable thead > tr > td.sorting_asc:before,
table.dataTable thead > tr > td.sorting_desc:after {
	opacity: .5;
}

table.dataTable thead > tr > th {
    font-size: 90%;
}

table.dataTable tbody {
    font-size: .9rem;
}

.order-id-cell,
.coupon-id-cell {
    display: inline-flex;
    flex-direction: column;
    align-items: flex-start;
    max-width: 100%;
    min-width: 72px;
    line-height: 1.2;
}

.order-id-value,
.coupon-id-value {
    display: block;
    max-width: 100%;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.order-id-marker-divider,
.coupon-id-marker-divider {
    display: block;
    width: 100%;
    height: 1px;
    margin: 4px 0;
    background-color: #dee2e6;
}

.order-id-markers,
.coupon-id-markers {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    color: rgba(108, 117, 125, .22);
    font-size: .98rem;
    line-height: 1;
}

.order-id-marker,
.coupon-id-marker {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 12px;
    min-height: 16px;
}

.order-id-marker.is-active,
.coupon-id-marker.is-active {
    color: #6c757d;
}

.order-id-marker.is-store-stock {
    color: #ffc107;
}

.order-id-marker.is-cloned {
    color: #007bff;
}

.order-id-marker.is-gift-wrapping {
    color: #28a745;
}

.coupon-id-marker.is-valid-definition {
    color: #28a745;
}

.coupon-id-marker.is-redeemed {
    color: #007bff;
}

.order-user-cell,
.order-delivery-cell,
.order-payment-cell,
.coupon-redemption-policy-cell,
.statement-two-line-cell {
    display: flex;
    flex-direction: column;
    max-width: 100%;
    min-width: 0;
    line-height: 1.25;
}

.order-user-name,
.order-user-email,
.order-delivery-method,
.order-delivery-status,
.order-payment-method,
.order-payment-status,
.coupon-redemption-policy-code,
.coupon-redemption-policy-label,
.statement-primary,
.statement-secondary {
    display: block;
    max-width: 100%;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.order-user-email,
.order-delivery-status,
.order-payment-status,
.coupon-redemption-policy-label,
.statement-secondary {
    margin-top: 2px;
    color: #6c757d;
    font-size: .78rem;
}

.order-detail-page label.small {
    font-variant-caps: all-small-caps;
    font-size: .9rem;
    font-weight: 600;
    letter-spacing: 0;
}

.order-detail-summary-card > .card-body {
    padding: .75rem 1rem;
}

.order-detail-summary-title,
.order-detail-summary-amount {
    font-size: 1.18rem;
    font-weight: 600;
    line-height: 1.25;
}

.order-detail-summary-financial-balance {
    border-top: 1px solid #dee2e6;
    display: flex;
    flex-wrap: wrap;
    gap: .25rem;
    margin-top: .45rem;
    padding-top: .4rem;
}

.order-detail-summary-financial-balance-value {
    font-weight: 600;
}

.order-post-shipping-dates {
    background-color: #f8f9fa;
    border: 1px solid #dee2e6;
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
}

.order-post-shipping-dates-item {
    display: flex;
    align-items: baseline;
    gap: .4rem;
    min-width: 0;
    padding: .35rem .75rem;
}

.order-post-shipping-dates-item + .order-post-shipping-dates-item {
    border-left: 1px solid #dee2e6;
}

.order-post-shipping-dates-label {
    color: #6c757d;
    font-size: .78rem;
    white-space: nowrap;
}

.order-post-shipping-dates-value {
    color: #212529;
    font-size: .84rem;
    font-weight: 600;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

@media (max-width: 575.98px) {
    .order-post-shipping-dates {
        grid-template-columns: minmax(0, 1fr);
    }

    .order-post-shipping-dates-item + .order-post-shipping-dates-item {
        border-left: 0;
        border-top: 1px solid #dee2e6;
    }
}

.order-detail-card > .card-header {
    padding-top: .45rem;
    padding-bottom: .45rem;
}

.order-detail-card > .card-footer {
    padding-top: .45rem;
    padding-bottom: .45rem;
}

.order-detail-card > .card-header .card-title {
    line-height: 1.2;
}

.order-detail-card > .card-header .card-title.js-order-card-title-collapse {
    cursor: pointer;
}

.order-detail-card > .card-header .card-title.js-order-card-title-collapse:focus {
    outline: 1px dotted #6c757d;
    outline-offset: 3px;
}

.lira-bookshop-detail-page .card-header .card-title.js-lira-bookshop-card-title-collapse {
    cursor: pointer;
}

.lira-bookshop-detail-page .card-header .card-title.js-lira-bookshop-card-title-collapse:focus {
    outline: 1px dotted #6c757d;
    outline-offset: 3px;
}

.pickup-point-detail-page .card-header .card-title.js-pickup-point-card-title-collapse {
    cursor: pointer;
}

.pickup-point-detail-page .card-header .card-title.js-pickup-point-card-title-collapse:focus {
    outline: 1px dotted #6c757d;
    outline-offset: 3px;
}

.order-detail-card.maximized-card > .card-header [data-card-widget="collapse"] {
    display: none;
}

.order-payment-financial-row .order-detail-card.collapsed-card {
    align-self: flex-start;
}

.order-panel-action-button {
    line-height: 1;
    padding: .12rem .28rem;
}

.order-panel-action-button i {
    font-size: .72rem;
}

.order-delivery-comment-textarea {
    height: 76px;
    min-height: 76px;
    max-height: 76px;
    overflow-y: auto;
    resize: none;
}

.order-address-summary {
    display: flex;
    flex-direction: column;
    gap: .35rem;
}

.order-address-row {
    display: flex;
    align-items: center;
    min-width: 0;
    padding: .35rem .45rem;
    border-left: 3px solid transparent;
    border-bottom: 1px solid #edf0f2;
}

.order-address-row:last-child {
    border-bottom: 0;
}

.order-address-row.is-emphasized .order-address-value {
    color: #2f3439;
}

.order-address-row.is-emphasized {
    background-color: #f8f9fa;
    border-left-color: #adb5bd;
}

.order-address-row.is-emphasized .order-address-label {
    color: #495057;
}

.order-address-label {
    flex: 0 0 72px;
    color: #6c757d;
    font-size: .82rem;
    font-weight: 600;
    font-variant-caps: all-small-caps;
}

.order-address-value {
    min-width: 0;
    overflow: hidden;
    color: #343a40;
    font-size: .95rem;
    font-weight: 500;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.order-address-tax-data {
    display: flex;
    flex-wrap: wrap;
    gap: .2rem .35rem;
    white-space: normal;
}

.order-address-tax-data > span {
    color: #6c757d;
}

.order-financial-summary .order-address-label {
    flex-basis: 205px;
}

.order-financial-summary .order-address-value {
    flex: 1;
    text-align: right;
}

.order-financial-summary .order-financial-total-value {
    color: #212529;
    font-weight: 700;
}

.order-financial-summary .order-financial-total-separator {
    border-bottom-color: #adb5bd;
}

.order-financial-history-table {
    table-layout: fixed;
    min-width: max-content;
}

.order-financial-history-table-wrapper {
    padding-bottom: 1px;
}

.order-financial-history-field-column {
    width: 260px;
    min-width: 260px;
}

.order-financial-history-version-column {
    width: 135px;
    min-width: 135px;
}

.order-financial-history-table th,
.order-financial-history-table td {
    vertical-align: middle;
    white-space: nowrap;
}

.order-financial-history-sticky-column {
    position: sticky;
    left: 0;
    z-index: 2;
    background-color: #fff;
}

.order-financial-history-table thead .order-financial-history-sticky-column {
    z-index: 3;
}

.order-financial-history-changed-value {
    background-color: #fff9ed;
    box-shadow: inset 3px 0 0 #f0ad4e;
    font-weight: 600;
}

.order-financial-history-table tbody tr:last-child th,
.order-financial-history-table tbody tr:last-child td {
    border-bottom: 1px solid #dee2e6;
}

.order-item-history-table {
    white-space: nowrap;
}

.order-item-history-table-wrapper {
    overflow-x: auto;
    padding-bottom: 1px;
}

.order-item-history-table th,
.order-item-history-table td {
    vertical-align: middle;
    white-space: nowrap;
}

.order-item-history-table .order-item-primary,
.order-item-history-table .order-item-secondary,
.order-item-history-table .order-item-highlighted-value {
    max-width: 100%;
}

.order-item-history-changed-value {
    background-color: #fff9ed;
    box-shadow: inset 3px 0 0 #f0ad4e;
    font-weight: 600;
}

.order-item-history-table tbody tr:last-child td {
    border-bottom: 1px solid #dee2e6;
}

.order-items-table th,
.order-items-table td {
    font-size: .88rem;
}

.order-items-table-wrapper,
.order-coupons-table-wrapper,
.order-financial-requests-table-wrapper,
.order-refund-calculations-table-wrapper,
.order-generated-coupons-table-wrapper {
    max-height: 420px;
    overflow: auto;
}

.order-services-list {
    max-height: 420px;
    overflow: auto;
}

.order-history-table-wrapper {
    max-height: 420px;
    overflow: auto;
}

.order-admin-comments-list,
.order-user-comments-list {
    max-height: 420px;
    overflow: auto;
}

.maximized-card .order-items-table-wrapper,
.maximized-card .order-coupons-table-wrapper,
.maximized-card .order-financial-requests-table-wrapper,
.maximized-card .order-refund-calculations-table-wrapper,
.maximized-card .order-generated-coupons-table-wrapper,
.maximized-card .order-services-list,
.maximized-card .order-history-table-wrapper,
.maximized-card .order-admin-comments-list,
.maximized-card .order-user-comments-list {
    max-height: calc(100vh - 155px);
}

.order-admin-comment-item,
.order-user-comment-item {
    padding: .65rem .75rem;
    margin-bottom: .55rem;
    border: 1px solid #e4e8ec;
    border-left: 3px solid #d6dee5;
    background-color: #fcfcfd;
}

.order-admin-comment-item:last-child,
.order-user-comment-item:last-child {
    margin-bottom: 0;
}

.order-admin-comment-content,
.order-user-comment-content {
    color: #343a40;
    font-size: .88rem;
    padding-top: .45rem;
    border-top: 1px solid #edf0f2;
}

.order-admin-comment-content {
    white-space: pre-wrap;
    word-break: break-word;
}

.order-admin-comment-content p:last-child,
.order-user-comment-content p:last-child {
    margin-bottom: 0;
}

.order-admin-comment-meta {
    gap: .35rem;
    white-space: nowrap;
}

.order-admin-comment-meta .order-service-action-divider {
    margin-left: .25rem;
    margin-right: .25rem;
}

.order-admin-comment-meta .order-service-action-button {
    flex: 0 0 auto;
}

.order-comment-author-name {
    display: block;
    flex: 1 1 auto;
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.order-service-item {
    padding: .65rem .75rem;
    margin-bottom: .55rem;
    border: 1px solid #e4e8ec;
    border-left: 3px solid #d6dee5;
    background-color: #fcfcfd;
}

.order-service-item:last-child {
    margin-bottom: 0;
}

.order-service-meta {
    display: inline-flex;
    align-items: center;
    flex: 0 0 auto;
    gap: .6rem;
    white-space: nowrap;
}

.order-service-name {
    display: block;
    flex: 1 1 auto;
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.order-service-price {
    color: #212529;
    font-weight: 600;
}

.order-service-action-button {
    line-height: 1;
    padding: .12rem .28rem;
}

.order-service-action-button i {
    font-size: .72rem;
}

.order-service-action-divider {
    align-self: stretch;
    border-left: 1px solid #d6dee5;
    min-height: 18px;
}

.order-service-content {
    padding-top: .45rem;
    border-top: 1px solid #edf0f2;
    color: #343a40;
    font-size: .88rem;
}

.order-service-customization-row {
    display: flex;
    gap: .35rem;
    min-width: 0;
}

.order-service-customization-label {
    flex: 0 0 auto;
    color: #6c757d;
}

.order-service-customization-value {
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.order-service-customization-font-preview {
    font-size: 1rem;
}

.order-service-customization-font-type-name {
    color: #6c757d;
    font-size: .75rem;
    margin-left: .25rem;
}

.order-items-table thead th {
    position: sticky;
    top: 0;
    z-index: 1;
    background-color: #fff;
}

.order-history-table thead th {
    position: sticky;
    top: 0;
    z-index: 1;
    background-color: #fff;
}

.order-item-primary,
.order-item-secondary {
    display: block;
    max-width: 100%;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.order-item-secondary {
    margin-top: 2px;
    color: #6c757d;
    font-size: .78rem;
}

.order-item-highlighted-value {
    color: #0056b3;
    font-weight: 600;
}

.order-coupon-code-link:hover,
.order-coupon-code-link:focus,
.order-product-name-link:hover,
.order-product-name-link:focus {
    color: #003d80;
    cursor: pointer;
    text-decoration: underline;
}

.order-item-status-text-primary {
    color: #0056b3;
}

.order-item-status-text-info {
    color: #117a8b;
}

.order-item-status-text-success {
    color: #218838;
}

.order-item-status-text-warning {
    color: #b38600;
}

.order-item-status-text-danger {
    color: #c82333;
}

.order-item-status-text-secondary {
    color: #6c757d;
}

.order-item-quantity-highlighted {
    color: #0056b3;
    font-weight: 600;
}

.order-item-quantity-action-separator {
    color: #adb5bd;
    margin: 0 4px;
}

.order-item-status-action-separator {
    color: #adb5bd;
    margin: 0 4px;
}

.order-item-status-primary {
    align-items: center;
    box-sizing: border-box;
    display: flex;
    gap: 3px;
    min-width: 0;
    width: 100%;
    white-space: nowrap;
}

.order-item-status-label {
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
}

.order-item-status-action {
    align-items: center;
    display: inline-flex;
    flex: 0 0 auto;
}

.order-item-status-edit-button {
    min-width: 22px;
    padding: 0 4px;
    line-height: 1.2;
    vertical-align: baseline;
}

.order-item-quantity-primary {
    align-items: center;
    box-sizing: border-box;
    display: flex;
    gap: 3px;
    justify-content: flex-end;
    min-width: 0;
    width: 100%;
    white-space: nowrap;
}

.order-item-quantity-label {
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
}

.order-item-quantity-action {
    align-items: center;
    display: inline-flex;
    flex: 0 0 auto;
}

.order-item-quantity-edit-button,
.order-item-history-button {
    min-width: 22px;
    padding: 0 4px;
    line-height: 1.2;
    vertical-align: baseline;
}

.order-item-quantity-edit-button .fas,
.order-item-history-button .fas {
    font-size: .75rem;
    line-height: 1;
}

.order-item-quantity-modal-product-name {
    display: block;
    max-width: 100%;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.order-item-status-modal-product-name {
    display: block;
    max-width: 100%;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.order-item-quantity-modal-product,
.order-item-quantity-modal-current,
.order-item-status-modal-product,
.order-item-status-modal-current {
    background-color: #f8f9fa;
    border-left: 3px solid #80bdff;
    padding: 10px 12px;
}

.order-item-quantity-modal-current-value,
.order-item-status-modal-current-value {
    color: #0056b3;
    display: block;
    font-size: 1.1rem;
    font-weight: 600;
    line-height: 1.2;
}

.order-delivery-method-modal-current-value {
    color: #0056b3;
    display: block;
    font-size: 1.1rem;
    font-weight: 600;
    line-height: 1.2;
}

.order-delivery-method-modal-current-pickup-point {
    color: #495057;
    display: block;
    font-size: .9rem;
    font-weight: 500;
    line-height: 1.35;
    overflow-wrap: anywhere;
}

table.dataTable tbody > tr > td.order-item-id-ellipsis:before,
table.dataTable tbody > tr > td.order-item-product-ellipsis:before,
table.dataTable tbody > tr > td.order-item-status-ellipsis:before,
table.dataTable tbody > tr > td.order-item-quantity-ellipsis:before,
table.dataTable tbody > tr > td.order-item-inventory-ellipsis:before,
table.dataTable tbody > tr > td.order-item-history-status-ellipsis:before,
table.dataTable tbody > tr > td.order-item-history-price-ellipsis:before,
table.dataTable tbody > tr > td.order-item-history-quantity-ellipsis:before,
table.dataTable tbody > tr > td.order-item-history-single-ellipsis:before,
table.dataTable tbody > tr > td.order-history-version-ellipsis:before,
table.dataTable tbody > tr > td.order-history-payment-ellipsis:before {
    content: '\00a0\A\00a0';
    display: block;
    line-height: 1.25;
    white-space: pre;
    visibility: hidden;
}

table.dataTable tbody > tr > td.order-item-id-ellipsis:before {
    content: '\00a0\A\00a0\A\00a0\A\00a0';
}

table.dataTable tbody > tr > td.order-item-price-ellipsis:before {
    content: '\00a0\A\00a0\A\00a0';
    display: block;
    line-height: 1.25;
    white-space: pre;
    visibility: hidden;
}

table.dataTable tbody > tr > td.order-history-delivery-ellipsis:before {
    content: '\00a0\A\00a0\A\00a0';
    display: block;
    line-height: 1.25;
    white-space: pre;
    visibility: hidden;
}

table.dataTable tbody > tr > td.order-item-id-ellipsis .order-item-id-cell,
table.dataTable tbody > tr > td.order-item-product-ellipsis .order-item-product-cell,
table.dataTable tbody > tr > td.order-item-price-ellipsis .order-item-price-cell,
table.dataTable tbody > tr > td.order-item-status-ellipsis .order-item-status-cell,
table.dataTable tbody > tr > td.order-item-inventory-ellipsis .order-item-inventory-cell,
table.dataTable tbody > tr > td.order-item-quantity-ellipsis .order-item-quantity-cell,
table.dataTable tbody > tr > td.order-item-history-status-ellipsis .order-item-status-cell,
table.dataTable tbody > tr > td.order-item-history-price-ellipsis .order-item-price-cell,
table.dataTable tbody > tr > td.order-item-history-quantity-ellipsis .order-item-quantity-cell,
table.dataTable tbody > tr > td.order-item-history-single-ellipsis .order-item-history-single-cell,
table.dataTable tbody > tr > td.order-history-version-ellipsis .order-history-version-cell,
table.dataTable tbody > tr > td.order-history-payment-ellipsis .order-history-payment-cell,
table.dataTable tbody > tr > td.order-history-delivery-ellipsis .order-history-delivery-cell {
    position: absolute;
    top: 50%;
    left: 0;
    right: 0;
    box-sizing: border-box;
    min-width: 0;
    overflow: hidden;
    padding: 0 10px;
    transform: translateY(-50%);
    width: 100%;
}

table.dataTable tbody > tr > td.order-item-quantity-ellipsis .order-item-quantity-cell {
    padding: 0 6px;
}

.order-item-id-cell {
    display: inline-flex;
    flex-direction: column;
    align-items: flex-start;
    max-width: 100%;
    line-height: 1.2;
}

.order-item-marker-divider {
    display: block;
    width: 100%;
    height: 1px;
    margin: 3px 0;
    background-color: #dee2e6;
}

.order-item-markers {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    color: rgba(108, 117, 125, .22);
    font-size: .9rem;
    line-height: 1;
}

.order-item-marker {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 12px;
    min-height: 14px;
}

.order-item-marker.is-active.is-ebook {
    color: #ffc107;
}

.order-item-marker.is-active.is-ebook-opened {
    color: #28a745;
}

.order-item-marker.is-active.is-in-packed {
    color: #007bff;
}

table.dataTable tbody > tr > td.order-item-id-ellipsis .order-item-primary,
table.dataTable tbody > tr > td.order-item-id-ellipsis .order-item-secondary,
table.dataTable tbody > tr > td.order-item-id-ellipsis .order-item-marker-divider,
table.dataTable tbody > tr > td.order-item-id-ellipsis .order-item-markers,
table.dataTable tbody > tr > td.order-item-id-ellipsis .order-item-marker,
table.dataTable tbody > tr > td.order-item-product-ellipsis .order-item-primary,
table.dataTable tbody > tr > td.order-item-product-ellipsis .order-item-secondary,
table.dataTable tbody > tr > td.order-item-product-ellipsis .order-item-highlighted-value,
table.dataTable tbody > tr > td.order-item-price-ellipsis .order-item-primary,
table.dataTable tbody > tr > td.order-item-price-ellipsis .order-item-secondary,
table.dataTable tbody > tr > td.order-item-status-ellipsis .order-item-primary,
table.dataTable tbody > tr > td.order-item-status-ellipsis .order-item-secondary,
table.dataTable tbody > tr > td.order-item-status-ellipsis .order-item-highlighted-value,
table.dataTable tbody > tr > td.order-item-inventory-ellipsis .order-item-primary,
table.dataTable tbody > tr > td.order-item-inventory-ellipsis .order-item-secondary,
table.dataTable tbody > tr > td.order-item-inventory-ellipsis .order-item-highlighted-value,
table.dataTable tbody > tr > td.order-item-status-ellipsis .order-item-status-label,
table.dataTable tbody > tr > td.order-item-status-ellipsis .order-item-status-action,
table.dataTable tbody > tr > td.order-item-status-ellipsis .order-item-status-action-separator,
table.dataTable tbody > tr > td.order-item-quantity-ellipsis .order-item-primary,
table.dataTable tbody > tr > td.order-item-quantity-ellipsis .order-item-secondary,
table.dataTable tbody > tr > td.order-item-quantity-ellipsis .order-item-quantity-value,
table.dataTable tbody > tr > td.order-item-quantity-ellipsis .order-item-quantity-highlighted,
table.dataTable tbody > tr > td.order-item-quantity-ellipsis .order-item-quantity-label,
table.dataTable tbody > tr > td.order-item-quantity-ellipsis .order-item-quantity-action,
table.dataTable tbody > tr > td.order-item-quantity-ellipsis .order-item-quantity-action-separator,
table.dataTable tbody > tr > td.order-item-history-status-ellipsis .order-item-primary,
table.dataTable tbody > tr > td.order-item-history-status-ellipsis .order-item-secondary,
table.dataTable tbody > tr > td.order-item-history-status-ellipsis .order-item-highlighted-value,
table.dataTable tbody > tr > td.order-item-history-price-ellipsis .order-item-primary,
table.dataTable tbody > tr > td.order-item-history-price-ellipsis .order-item-secondary,
table.dataTable tbody > tr > td.order-item-history-quantity-ellipsis .order-item-primary,
table.dataTable tbody > tr > td.order-item-history-quantity-ellipsis .order-item-secondary,
table.dataTable tbody > tr > td.order-item-history-single-ellipsis .order-item-primary,
table.dataTable tbody > tr > td.order-history-version-ellipsis .order-item-primary,
table.dataTable tbody > tr > td.order-history-version-ellipsis .order-item-secondary,
table.dataTable tbody > tr > td.order-history-payment-ellipsis .order-item-primary,
table.dataTable tbody > tr > td.order-history-payment-ellipsis .order-item-secondary,
table.dataTable tbody > tr > td.order-history-delivery-ellipsis .order-item-primary,
table.dataTable tbody > tr > td.order-history-delivery-ellipsis .order-item-secondary {
    position: static;
    padding: 0;
}

table.dataTable tbody > tr > td.order-item-quantity-ellipsis .order-item-quantity-label {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

table.dataTable tbody > tr > td.order-item-status-ellipsis .order-item-status-label {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

table.dataTable tbody > tr > td.order-item-status-ellipsis .order-item-status-action,
table.dataTable tbody > tr > td.order-item-status-ellipsis .order-item-status-action-separator {
    overflow: visible;
    text-overflow: clip;
    white-space: nowrap;
}

table.dataTable tbody > tr > td.order-item-quantity-ellipsis .order-item-quantity-action,
table.dataTable tbody > tr > td.order-item-quantity-ellipsis .order-item-quantity-action-separator {
    overflow: visible;
    text-overflow: clip;
    white-space: nowrap;
}

table.dataTable tbody > tr > td.order-user-ellipsis:before,
table.dataTable tbody > tr > td.order-delivery-ellipsis:before,
table.dataTable tbody > tr > td.order-payment-ellipsis:before,
table.dataTable tbody > tr > td.order-coupon-code-ellipsis:before,
table.dataTable tbody > tr > td.order-coupon-target-ellipsis:before,
table.dataTable tbody > tr > td.order-coupon-balance-ellipsis:before,
table.dataTable tbody > tr > td.coupon-redemption-policy-ellipsis:before,
table.dataTable tbody > tr > td.statement-two-line-ellipsis:before {
    content: '\00a0\A\00a0';
    display: block;
    line-height: 1.25;
    white-space: pre;
    visibility: hidden;
}

table.dataTable tbody > tr > td.order-user-ellipsis .order-user-cell,
table.dataTable tbody > tr > td.order-delivery-ellipsis .order-delivery-cell,
table.dataTable tbody > tr > td.order-payment-ellipsis .order-payment-cell,
table.dataTable tbody > tr > td.order-coupon-code-ellipsis .order-coupon-code-cell,
table.dataTable tbody > tr > td.order-coupon-target-ellipsis .order-coupon-target-cell,
table.dataTable tbody > tr > td.order-coupon-balance-ellipsis .order-coupon-balance-cell,
table.dataTable tbody > tr > td.coupon-redemption-policy-ellipsis .coupon-redemption-policy-cell,
table.dataTable tbody > tr > td.statement-two-line-ellipsis .statement-two-line-cell {
    position: absolute;
    top: 50%;
    left: 0;
    right: 0;
    padding: 0 10px;
    transform: translateY(-50%);
}

table.dataTable tbody > tr > td.order-user-ellipsis .order-user-name,
table.dataTable tbody > tr > td.order-user-ellipsis .order-user-email,
table.dataTable tbody > tr > td.order-delivery-ellipsis .order-delivery-method,
table.dataTable tbody > tr > td.order-delivery-ellipsis .order-delivery-status,
table.dataTable tbody > tr > td.order-payment-ellipsis .order-payment-method,
table.dataTable tbody > tr > td.order-payment-ellipsis .order-payment-status,
table.dataTable tbody > tr > td.order-coupon-code-ellipsis .order-coupon-primary,
table.dataTable tbody > tr > td.order-coupon-code-ellipsis .order-coupon-secondary,
table.dataTable tbody > tr > td.order-coupon-target-ellipsis .order-coupon-primary,
table.dataTable tbody > tr > td.order-coupon-target-ellipsis .order-coupon-secondary,
table.dataTable tbody > tr > td.order-coupon-balance-ellipsis .order-coupon-primary,
table.dataTable tbody > tr > td.order-coupon-balance-ellipsis .order-coupon-secondary,
table.dataTable tbody > tr > td.coupon-redemption-policy-ellipsis .coupon-redemption-policy-code,
table.dataTable tbody > tr > td.coupon-redemption-policy-ellipsis .coupon-redemption-policy-label,
table.dataTable tbody > tr > td.statement-two-line-ellipsis .statement-primary,
table.dataTable tbody > tr > td.statement-two-line-ellipsis .statement-secondary {
    position: static;
    padding: 0;
}

/*Spinner*/

.overlay {
    position: absolute;
    z-index: 50;
    background: rgba(255, 255, 255, 0.7);
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
}

.spinner {
    position: absolute;
    left: 50%;
    top: 30px;
    z-index: 1;
    width: 40px;
    height: 40px;
    margin: -20px 0 0 -20px;
    animation: rotate 1.4s infinite ease-in-out, background 1.4s infinite ease-in-out alternate;
}

@keyframes rotate {
    0% {
        transform: perspective(120px) rotateX(0deg) rotateY(0deg);
    }
    50% {
        transform: perspective(120px) rotateX(-180deg) rotateY(0deg);
    }
    100% {
        transform: perspective(120px) rotateX(-180deg) rotateY(-180deg);
    }
}

@keyframes background {
    0% {
        background-color: #27ae60;
    }
    50% {
        background-color: #9b59b6;
    }
    100% {
        background-color: #c0392b;
    }
}

.long-value-input {
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.small-box-custom {
    border-radius: 0;
}

.small-box-custom > .icon > i.fas {
    top: 45px;
    font-size: 70px;
}

.small-box-custom > .inner > p, .small-box-custom > .inner > h6 {
    margin-bottom: .25rem;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.small-box-custom > .inner > p {
    font-size: .9rem;
}

.small-box-custom > .inner > h6 {
    padding-bottom: .25rem;
    border-bottom: 1px solid #f8f9fa;
    margin-bottom: .5rem;
}

.small-box-custom > .inner > h6.green-border-bottom {
    border-bottom: 1px solid #27ae60;
}

.small-box-custom > .inner > p > a {
    color:#fff;
}

.small-box-custom > .inner > p > a:hover {
    color: rgba(255, 255, 255, .8);
    text-decoration: none;
}

.small-box-custom > .inner > p:last-child {
    margin-bottom: 0;
}

.small-box-footer-custom {
    background-color:rgba(0, 0, 0, .1);
}

.info-box .info-box-text-strong {
    display: block;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    font-weight: bolder;
}

.info-box .info-box-content-custom {
    display: -webkit-flex;
    display: -ms-flexbox;
    display: flex;
    -webkit-flex-direction: column;
    -ms-flex-direction: column;
    flex-direction: column;
    -webkit-justify-content: center;
    -ms-flex-pack: center;
    justify-content: center;
    line-height: 1.8;
    -webkit-flex: 1;
    -ms-flex: 1;
    flex: 1;
    padding: 0 10px;
    min-width: 0;
    font-size: .875rem;
}

.form-group-custom {
    margin-bottom: .5rem;
}

.text-opacity-75 {
    color: rgba(255, 255, 255, 0.75);
}

.text-black-opacity-50 {
    color: rgba(0, 0, 0, 0.5);
}

.select2-container--bootstrap4 .select2-selection {
    line-height: 1.5 !important;
    padding: .25rem .5rem !important;
    border-radius: 0 !important;
    font-size: .875rem !important;
}

.select2-container--bootstrap4 .select2-selection--single {
    height: calc(1.5em + .5rem + 2px) !important;
}

.select2-container--bootstrap4 .select2-selection--multiple {
    min-height: calc(1.5em + .5rem + 2px) !important;
    height: auto !important;
    position: relative;
    padding-right: 2.25rem !important;
}

.select2-container--bootstrap4 .select2-selection--multiple::after {
    content: "\f107";
    font-family: "Font Awesome 5 Free";
    font-weight: 900;
    position: absolute;
    top: .55rem;
    right: .75rem;
    color: #6c757d;
    pointer-events: none;
}

/* Olyan többválasztós Select2 mezők, ahol a kiválasztott elemeket egy külön,
   a mező alatti badge-lista jeleníti meg (lásd webshop-users-edit.js) — a mező
   maga mindig egysoros marad, nem nő a kiválasztásokkal. */
.select2-container--bootstrap4 .select2-selection--multiple.select2-badges-external {
    height: calc(1.5em + .5rem + 2px) !important;
    min-height: calc(1.5em + .5rem + 2px) !important;
    overflow: hidden;
}

.select2-container--bootstrap4 .select2-selection--multiple.select2-badges-external .select2-selection__rendered {
    padding: .3rem .375rem 0 .5rem !important;
}

.select2-container--bootstrap4 .select2-selection--multiple.select2-badges-external .select2-selection__placeholder {
    margin-top: 0 !important;
    line-height: 1.5;
}

.select2-container--bootstrap4 .select2-selection--multiple.select2-badges-external .select2-search--inline .select2-search__field {
    margin-top: 0 !important;
}

.select2-container--bootstrap4 .select2-selection--multiple.select2-badges-external .select2-selection__choice {
    display: none !important;
}

.select2-container--bootstrap4 .select2-results__option {
    font-size: .875rem !important;
}

.select2-container--bootstrap4 .select2-search__field {
    font-size: .875rem !important;
}

.select2-container--bootstrap4 .select2-dropdown {
    font-size: .875rem !important;
    padding: .25rem .5rem !important;
}

.select2-container--bootstrap4 .select2-dropdown {
    border-radius: 0 !important;
}

.select2-container--bootstrap4 .select2-selection.is-invalid {
    border-color: #dc3545 !important;
}

.order-reload-overlay {
    align-items: center;
    background: rgba(33, 37, 41, 0.34);
    bottom: 0;
    display: none;
    justify-content: center;
    left: 0;
    padding: 1rem;
    position: fixed;
    right: 0;
    top: 0;
    z-index: 20000;
}

.order-reload-overlay.is-visible {
    display: flex;
}

.order-reload-overlay__panel {
    align-items: center;
    background: #ffffff;
    border: 1px solid #dee2e6;
    border-radius: 6px;
    box-shadow: 0 0.35rem 1.25rem rgba(0, 0, 0, 0.16);
    color: #212529;
    display: flex;
    flex-direction: column;
    max-width: 20rem;
    padding: 1.15rem 1.35rem;
    text-align: center;
    width: 100%;
}

.order-reload-overlay__spinner {
    border-color: rgba(40, 167, 69, 0.2);
    border-right-color: #28a745;
    height: 1.75rem;
    margin-bottom: 0.75rem;
    width: 1.75rem;
}

.order-reload-overlay__message {
    font-size: 0.92rem;
    font-weight: 400;
}

.order-reload-overlay__fallback {
    display: none;
    font-size: 0.8rem;
    line-height: 1.35;
    margin-top: 0.5rem;
}

.order-select2-search-dropdown .select2-results__option {
    padding: 4px 6px !important;
    line-height: 1.35 !important;
}

.order-select2-result {
    line-height: 1.35;
}

.order-select2-primary {
    color: #212529;
}

.order-select2-meta {
    color: #6c757d;
    font-size: 0.78rem;
}

.order-select2-search-dropdown .select2-results__option--highlighted[aria-selected] .order-select2-meta,
.order-select2-search-dropdown .select2-results__option--highlighted[aria-selected="true"] .order-select2-meta {
    color: rgba(255, 255, 255, 0.85) !important;
}

.select2-product-meta {
    color: #6c757d;
    font-size: 0.78rem;
}

.select2-product-meta--badge-success {
    color: #28a745;
}

.select2-product-meta--badge-secondary {
    color: #6c757d;
}

.select2-product-meta--badge-info {
    color: #17a2b8;
}

.select2-product-meta--badge-warning {
    color: #856404;
}

.select2-product-meta--badge-primary {
    color: #007bff;
}

.select2-product-meta--badge-danger {
    color: #dc3545;
}

.select2-product-search-dropdown .select2-results__option {
    padding: 3px 6px !important;
    line-height: 1.35 !important;
}

.select2-product-search-dropdown .select2-results__option--highlighted[aria-selected],
.select2-product-search-dropdown .select2-results__option--highlighted[aria-selected="true"] {
    background-color: #dddddd !important;
    color: #212529 !important;
}

/* Termék státusz szerinti meta-szín: Aktív=zöld, Inaktív=piros, egyéb=fekete */
.select2-product-search-dropdown .select2-product-meta {
    color: #212529;
}
.select2-product-search-dropdown .select2-product-meta--badge-success {
    color: #28a745;
}
.select2-product-search-dropdown .select2-product-meta--badge-secondary {
    color: #dc3545;
}
.select2-product-search-dropdown .select2-product-meta--badge-info,
.select2-product-search-dropdown .select2-product-meta--badge-warning,
.select2-product-search-dropdown .select2-product-meta--badge-primary,
.select2-product-search-dropdown .select2-product-meta--badge-danger {
    color: #212529;
}

.order-select2-control + .select2-container--bootstrap4 .select2-selection--single {
    display: flex !important;
    align-items: center !important;
    height: calc(1.5em + .5rem + 2px) !important;
}

.order-select2-control + .select2-container--bootstrap4 .select2-selection__rendered {
    display: block !important;
    line-height: 1.5 !important;
    color: #212529 !important;
}

textarea.form-control-border.textarea-invalid {
    background-color: #fff5f5;
    border-left: 3px solid #dc3545;
    padding-left: calc(.5rem - 2px);
}

.card-body-master-data {
    padding: .5rem
}

.border-top-warning {
    border-top: 1px solid #ffc107;
}

td .ellipsis {
    display: block;
    width: 100%;
    max-width: 100%;
}

td .ellipsis span {
    display: block;
    width: 100%;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.error-head {
    display: block;
    text-align: center;
    font-weight: 700;
    font-size: 1.1rem;
    color: #dc3545;
    padding: .5rem 1rem;
    border-radius: .25rem;
    background: #fff;
    box-shadow: 0 1px 2px rgba(0,0,0,.06);
    margin-bottom: .5rem;
}

.opening-hours-card .mono {
    font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;
}

.opening-hours-card .muted {
    color: #6c757d;
}

.opening-hours-card .smallcaps {
    font-variant: all-small-caps;
    letter-spacing: .03em;
}

.opening-hours-card .chip {
    display: inline-block;
    padding: .2rem .5rem;
    border-radius: 999px;
    background: rgba(0,0,0,.06);
    margin-right: .25rem;
    margin-bottom:.25rem;
}

.opening-hours-card .nowrap {
    white-space: nowrap;
}

.opening-hours-card .badge {
    border-radius: 0 !important;
}

.table-special-dates th, .table-special-dates td {
    vertical-align: middle !important;
}

.table-special-dates tbody tr:last-child th, .table-special-dates tbody tr:last-child td {
    border-bottom: 1px solid #dee2e6;
}

.table-opening-hours th, .table-opening-hours td {
    vertical-align: middle !important;
}

/*
    .table-opening-hours tbody tr:last-child th, .table-opening-hours tbody tr:last-child td {
        border-bottom: 1px solid #dee2e6;
    }
*/

.bookshop-photo-preview {
    position: relative;
    width: 160px;
    height: 100px;
    border-radius: 0;
    overflow: hidden;
    border: 1px solid #adb5bd;
    background-color: #e9ecef;
}

.bookshop-photo-preview a {
    display: block;
    width: 100%;
    height: 100%;
}

.bookshop-photo-preview img {
    width: 100%;
    height: 100%;
    object-fit: contain;
}

.bookshop-photo-zoom-badge {
    position: absolute;
    right: 4px;
    bottom: 4px;
    background: rgba(0, 0, 0, .55);
    color: #fff;
    border-radius: 999px;
    font-size: 0.65rem;
    line-height: 1;
    padding: 3px 5px;
}

.bookshop-photo-zoom-badge i {
    margin: 0;
}

.upload-dropzone {
    border: 1px dashed #9bb7a8;
    background: #f8faf8;
    transition: border-color 0.2s ease, box-shadow 0.2s ease, background-color 0.2s ease;
    min-height: 220px;
    height: 100%;
}

.upload-dropzone.is-dragover {
    border-color: #28a745;
    background: #f1fbf4;
    box-shadow: 0 0 0 0.2rem rgba(40, 167, 69, 0.15);
}

.upload-input-overlay {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    opacity: 0;
    cursor: pointer;
}

.upload-clear-selection {
    position: absolute;
    top: 0.4rem;
    right: 0.4rem;
    z-index: 1;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 2rem;
    height: 2rem;
    padding: 0;
    border: 1px solid #dc3545;
    border-radius: 50%;
    background: #ffffff;
    color: #dc3545;
    cursor: pointer;
    box-shadow: 0 2px 5px rgba(108, 20, 30, 0.22);
}

.upload-clear-selection:hover,
.upload-clear-selection:focus {
    border-color: #c82333;
    background: #dc3545;
    color: #ffffff;
    box-shadow: 0 0 0 0.2rem rgba(220, 53, 69, 0.18);
}

.upload-clear-selection:focus-visible {
    outline: 0;
}

@media (max-width: 991.98px) {

    .form-upload-layout .col-lg-4 {
        margin-top: 0.5rem;
    }

    .upload-dropzone {
        min-height: 180px;
    }

}

/* Termék lista – dinamikus táblaszélesség */
table.dataTable.table-auto-width {
    width: auto;
    min-width: 100%;
}

.order-items-table .order-item-id-cell,
.order-items-table .order-item-product-cell,
.order-items-table .order-item-status-cell,
.order-items-table .order-item-inventory-cell,
.order-items-table .order-item-price-cell,
.order-items-table .order-item-quantity-cell {
    max-width: 100%;
    min-width: 0;
    overflow: hidden;
    width: 100%;
}

.order-items-table .order-item-product-cell,
.order-items-table .order-item-status-cell,
.order-items-table .order-item-inventory-cell,
.order-items-table .order-item-price-cell,
.order-items-table .order-item-quantity-cell {
    display: flex;
    flex-direction: column;
    line-height: 1.25;
}

.order-items-table .order-item-primary,
.order-items-table .order-item-secondary,
.order-items-table .order-product-name-link {
    max-width: 100%;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.order-items-table .order-product-name-link {
    display: block;
}

.order-history-version-cell {
    display: flex;
    flex-direction: column;
    line-height: 1.25;
    max-width: 100%;
    min-width: 0;
    overflow: hidden;
    width: 100%;
}

.order-coupon-code-cell,
.order-coupon-target-cell,
.order-coupon-balance-cell {
    display: flex;
    flex-direction: column;
    line-height: 1.25;
    max-width: 100%;
    min-width: 0;
    overflow: hidden;
    width: 100%;
}

.order-coupon-primary,
.order-coupon-secondary {
    display: block;
    max-width: 100%;
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    width: 100%;
}

.order-coupon-secondary {
    margin-top: 2px;
    color: #6c757d;
    font-size: .78rem;
}

.order-coupon-code-link {
    display: block;
    max-width: 100%;
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    width: 100%;
}

.order-coupons-table .order-coupon-code-cell,
.order-coupons-table .order-coupon-target-cell,
.order-coupons-table .order-coupon-balance-cell {
    box-sizing: border-box;
    overflow: hidden;
    width: 100%;
}

/* Oszlopprofilok modal – drag-and-drop */
.cp-col-item {
    transition: opacity 0.15s;
    user-select: none;
}

.cp-col-item.opacity-50 {
    opacity: 0.45;
}

.cp-col-item.cp-drop-target {
    border-color: #28a745 !important;
    background-color: #f1fbf4 !important;
}

select option.payment-option-disabled,
select option.delivery-option-disabled {
    color: #adb5bd;
}

.order-modal-outline-info .modal-content,
.order-modal-outline-primary .modal-content,
.order-modal-outline-secondary .modal-content,
.order-modal-outline-success .modal-content,
.order-modal-outline-warning .modal-content {
    border-top-width: 3px;
    border-top-style: solid;
}

.order-modal-outline-info .modal-content {
    border-top-color: #17a2b8;
}

.order-modal-outline-primary .modal-content {
    border-top-color: #007bff;
}

.order-modal-outline-secondary .modal-content {
    border-top-color: #6c757d;
}

.order-modal-outline-success .modal-content {
    border-top-color: #28a745;
}

.order-modal-outline-warning .modal-content {
    border-top-color: #ffc107;
}

.order-modal-field-warning {
    display: flex;
    align-items: center;
    border-left: 3px solid #ffc107;
    background-color: #fff8e1;
    color: #6c5200;
    padding: 6px 8px;
    font-size: 12px;
    line-height: 1.35;
}

.order-modal-field-warning i {
    color: #d39e00;
}

.order-modal-field-warning .btn i {
    color: inherit;
}

.order-modal-field-warning-block {
    display: block;
}
