/*
 * Nandni UI rhythm
 * Final shared layer for spacing, typography, cards, forms, tables and dialogs.
 */
:root {
    --ui-space-1: .375rem;
    --ui-space-2: .625rem;
    --ui-space-3: .875rem;
    --ui-space-4: 1.125rem;
    --ui-space-5: 1.5rem;
    --ui-space-6: 2rem;
    --ui-space-7: 2.5rem;
    --ui-space-8: 3.25rem;
    --ui-radius-sm: .625rem;
    --ui-radius: .875rem;
    --ui-radius-lg: 1.125rem;
    --ui-control-height: 2.875rem;
    --ui-text-xs: .75rem;
    --ui-text-sm: .8125rem;
    --ui-text: .9375rem;
    --ui-text-lg: 1.0625rem;
    --ui-line: #e6dde3;
    --ui-muted: #71656d;
    --ui-ink: #2d2030;
    --ui-purple: #603085;
    --ui-shadow: 0 12px 34px rgba(55, 31, 65, .07);
}

/* Customer addresses: compact overview with the editor in a focused modal. */
.public-body .customer-addresses-panel {
    gap: 1rem;
}

.public-body .customer-addresses-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    padding-bottom: 1rem;
    border-bottom: 1px solid var(--ui-line);
}

.public-body .customer-address-open {
    display: inline-flex;
    align-items: center;
    gap: .45rem;
    white-space: nowrap;
}

.public-body .customer-address-open span {
    font-size: 1.15rem;
    line-height: 1;
}

.public-body .customer-saved-address {
    margin-top: 1rem;
    padding: 1rem;
    border: 1px solid #e7deeb;
    border-radius: var(--ui-radius);
    background: linear-gradient(145deg, #fff, #fcf9fd);
}

.public-body .customer-saved-address p,
.public-body .customer-address-empty p {
    margin-top: .45rem;
    color: var(--ui-muted);
}

.public-body .customer-address-empty {
    margin-top: 1rem;
    padding: 2rem 1rem;
    border: 1px dashed #ddcee6;
    border-radius: var(--ui-radius);
    text-align: center;
}

.customer-address-dialog {
    width: min(48rem, calc(100vw - 2rem));
    max-width: none;
    max-height: calc(100dvh - 2rem);
    padding: 0;
    overflow: hidden;
    border: 1px solid rgba(96, 48, 133, .18);
    border-radius: 1.25rem;
    background: #fff;
    color: var(--ui-ink);
    box-shadow: 0 30px 90px rgba(39, 18, 52, .32);
}

.customer-address-dialog::backdrop {
    background: rgba(35, 22, 39, .62);
    backdrop-filter: blur(6px);
}

.customer-address-dialog[open] {
    animation: customer-address-enter .18s ease-out;
}

.customer-address-modal,
.customer-address-modal form {
    display: flex;
    min-height: 0;
    flex-direction: column;
}

.customer-address-modal {
    max-height: calc(100dvh - 2rem);
}

.customer-address-modal-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    padding: 1.25rem 1.5rem;
    border-bottom: 1px solid var(--ui-line);
    background: linear-gradient(135deg, #fff 0%, #fff9f6 100%);
}

.customer-address-close {
    display: grid;
    flex: 0 0 2.75rem;
    width: 2.75rem;
    height: 2.75rem;
    place-items: center;
    border: 1px solid #e5dbe9;
    border-radius: .8rem;
    background: #fff;
    color: #4a3651;
    font-size: 1.6rem;
    line-height: 1;
}

.customer-address-modal-body {
    margin: 0;
    padding: 1.25rem 1.5rem;
    overflow-y: auto;
}

.customer-default-address {
    display: flex;
    align-items: center;
    gap: .75rem;
    padding: .85rem 1rem;
    border: 1px solid #e4d8eb;
    border-radius: .85rem;
    background: #fbf7fe;
}

.customer-default-address span,
.customer-default-address strong,
.customer-default-address small {
    display: block;
}

.customer-default-address small {
    margin-top: .12rem;
    color: var(--ui-muted);
}

.customer-address-modal-actions {
    display: flex;
    justify-content: flex-end;
    gap: .75rem;
    padding: 1rem 1.5rem;
    border-top: 1px solid var(--ui-line);
    background: #fffdfd;
}

.customer-dialog-open {
    overflow: hidden;
}

@keyframes customer-address-enter {
    from { opacity: 0; transform: translateY(1rem) scale(.985); }
    to { opacity: 1; transform: translateY(0) scale(1); }
}

@media (max-width: 575.98px) {
    .public-body .customer-addresses-head {
        align-items: stretch;
        flex-direction: column;
    }

    .public-body .customer-address-open {
        justify-content: center;
    }

    .customer-address-dialog {
        width: calc(100vw - 1rem);
        max-height: calc(100dvh - 1rem);
        border-radius: 1rem;
    }

    .customer-address-modal {
        max-height: calc(100dvh - 1rem);
    }

    .customer-address-modal-head,
    .customer-address-modal-body,
    .customer-address-modal-actions {
        padding-inline: 1rem;
    }
}

@media (prefers-reduced-motion: reduce) {
    .customer-address-dialog[open] { animation: none; }
}

/* Automatic cash-receipt history and COD collection tracking */
.billing-history-actions {
    display: flex;
    align-items: end;
    justify-content: flex-end;
    gap: .8rem;
    flex-wrap: wrap;
}

.cod-payments-panel {
    overflow: hidden;
}

.cod-payments-head {
    align-items: end;
    gap: 1.25rem;
}

.cod-payments-head > div:first-child {
    max-width: 34rem;
}

.cod-payments-head p:not(.eyebrow) {
    margin: .35rem 0 0;
    color: var(--muted, #746c83);
}

.cod-payment-filters {
    display: grid;
    grid-template-columns: minmax(9.5rem, .8fr) minmax(15rem, 1.5fr) minmax(10rem, 1fr) auto;
    gap: .65rem;
    align-items: end;
}

.cod-payments-table td {
    vertical-align: middle;
}

.cod-payments-table td:first-child strong,
.cod-payments-table td:first-child small,
.cod-payment-remark {
    display: block;
}

.cod-payments-table td:first-child small,
.cod-payment-remark,
.cod-payment-waiting {
    margin-top: .3rem;
    color: var(--muted, #746c83);
    font-size: .78rem;
    line-height: 1.45;
}

.cod-otp-form {
    display: flex;
    align-items: center;
    gap: .55rem;
    min-width: 19rem;
}

.cod-otp-form input {
    width: 8.5rem;
    min-height: 2.8rem;
    border: 1px solid rgba(96, 48, 133, .2);
    border-radius: .8rem;
    padding: .65rem .8rem;
    letter-spacing: .13em;
    font-weight: 700;
    text-align: center;
}

.cod-customer-otp {
    margin: 2rem 0 1rem;
    padding: 1.35rem 1.5rem;
    border: 1px solid rgba(96, 48, 133, .18);
    border-radius: 1.25rem;
    background: linear-gradient(135deg, rgba(243, 232, 227, .9), rgba(255, 255, 255, .96));
    box-shadow: 0 18px 42px rgba(52, 29, 70, .08);
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 1.5rem;
}

.cod-customer-otp h2,
.cod-customer-otp p {
    margin: 0;
}

.cod-customer-otp > div > p:last-child {
    margin-top: .35rem;
    color: #6f6576;
}

.cod-customer-otp > strong {
    flex: 0 0 auto;
    padding: .7rem 1rem;
    border-radius: .9rem;
    background: #603085;
    color: #fff;
    font-size: clamp(1.55rem, 3vw, 2.2rem);
    letter-spacing: .2em;
    text-indent: .2em;
    box-shadow: 0 12px 24px rgba(96, 48, 133, .2);
}

@media (max-width: 1100px) {
    .cod-payments-head {
        align-items: stretch;
    }
    .cod-payment-filters {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 680px) {
    .billing-history-actions,
    .cod-payments-head,
    .cod-customer-otp {
        align-items: stretch;
        flex-direction: column;
    }
    .cod-payment-filters {
        grid-template-columns: 1fr;
    }
    .cod-customer-otp > strong {
        text-align: center;
    }
}

/* Shared product imagery: every item surface uses the uploaded product photo. */
.linked-product-thumb {
    display: inline-grid;
    width: 2.75rem;
    height: 2.75rem;
    flex: 0 0 auto;
    overflow: hidden;
    place-items: center;
    border: 1px solid rgba(114, 72, 46, .13);
    border-radius: .72rem;
    background: linear-gradient(145deg, #f9f2ef, #f3e8e3);
    color: #603085;
    font-size: .9rem;
    font-weight: 800;
    line-height: 1;
}

.linked-product-thumb img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.linked-product-thumb.is-xs { width: 2rem; height: 2rem; border-radius: .52rem; }
.linked-product-thumb.is-sm { width: 2.35rem; height: 2.35rem; border-radius: .6rem; }
.linked-product-thumb.is-md { width: 3rem; height: 3rem; }
.linked-product-thumb.is-card { width: 100%; height: 11rem; border: 0; border-radius: 0; font-size: 2.2rem; }
.linked-product-thumb.is-hero { width: 100%; height: clamp(19rem, 48vw, 34rem); border: 0; border-radius: 1rem; font-size: 4rem; }

.linked-product-cell {
    display: inline-flex;
    min-width: 0;
    align-items: center;
    gap: .65rem;
}

.linked-product-cell > span:not(.linked-product-thumb) { display: grid; gap: .08rem; }
.linked-product-cell small { display: block; color: #7d7085; }

.checkout-linked-item {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr) auto;
    align-items: center;
    gap: .65rem;
}

.checkout-linked-item strong { white-space: nowrap; }
.product-visual-linked { overflow: hidden; padding: 0 !important; }
.product-visual-linked .linked-product-thumb { display: grid; }

.portal-body .kitchen-items li.has-product-image {
    grid-template-columns: auto auto minmax(0, 1fr);
    align-items: center;
}
.portal-body .kitchen-items li .linked-product-thumb { grid-column: auto; }
.portal-body .kot-cancel-item:has(.linked-product-thumb) {
    grid-template-columns: auto auto minmax(0, 1fr) auto;
}
.portal-body .kot-cancel-item .linked-product-thumb { margin-right: .15rem; }
.portal-body .return-items article { grid-template-columns: auto minmax(0, 1fr) auto; }

@media (max-width: 560px) {
    .linked-product-thumb.is-card { height: 9rem; }
    .linked-product-thumb.is-hero { height: 18rem; }
    .portal-body .kot-cancel-item:has(.linked-product-thumb) {
        grid-template-columns: auto auto minmax(0, 1fr);
    }
    .portal-body .kot-cancel-item:has(.linked-product-thumb) .kot-cancel-line-total { grid-column: 3; }
}

/* POS guided checkout — items, service, payment, then automatic KOT printing. */
.portal-body .pos-checkout-steps {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: .2rem;
    padding: .75rem .9rem .7rem;
    border-bottom: 1px solid rgba(96, 48, 133, .11);
    background: linear-gradient(180deg, #fff 0%, #fcf9fd 100%);
}

.portal-body .pos-checkout-steps button {
    position: relative;
    display: grid;
    min-width: 0;
    justify-items: center;
    gap: .13rem;
    padding: 0 .1rem;
    border: 0;
    background: transparent;
    color: #887b91;
    font: inherit;
    cursor: pointer;
}

.portal-body .pos-checkout-steps button::before {
    position: absolute;
    top: .78rem;
    right: calc(50% + 1.05rem);
    left: calc(-50% + 1.05rem);
    height: 1px;
    background: #e8deec;
    content: "";
}

.portal-body .pos-checkout-steps button:first-child::before { display: none; }

.portal-body .pos-checkout-steps button > span {
    position: relative;
    z-index: 1;
    display: grid;
    width: 1.58rem;
    height: 1.58rem;
    place-items: center;
    border: 1px solid #ded1e4;
    border-radius: 50%;
    background: #fff;
    color: #796b82;
    font-size: .63rem;
    font-weight: 750;
    box-shadow: 0 4px 10px rgba(56, 31, 72, .05);
}

.portal-body .pos-checkout-steps button strong {
    color: inherit;
    font-size: .62rem;
    font-weight: 720;
    line-height: 1.2;
}

.portal-body .pos-checkout-steps button small {
    overflow: hidden;
    max-width: 100%;
    color: #a093a7;
    font-size: .5rem;
    line-height: 1.15;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.portal-body .pos-checkout-steps button.is-active { color: #603085; }
.portal-body .pos-checkout-steps button.is-active > span {
    border-color: #603085;
    background: linear-gradient(145deg, #7a38c7, #603085 58%, #72482e);
    color: #fff;
    box-shadow: 0 7px 16px rgba(96, 48, 133, .22);
}

.portal-body .pos-checkout-steps button.is-complete::before { background: rgba(96, 48, 133, .55); }
.portal-body .pos-checkout-steps button.is-complete > span {
    border-color: rgba(96, 48, 133, .28);
    background: #f4ecf8;
    color: #603085;
}

.portal-body .pos-checkout-steps button:disabled { cursor: default; opacity: .62; }
.portal-body .pos-step-panel[hidden] { display: none !important; }

.portal-body .pos-step-panel {
    min-width: 0;
    animation: pos-step-in .2s ease both;
}

.portal-body .pos-items-step {
    display: flex;
    flex: 1 1 auto;
    min-height: 0;
    flex-direction: column;
}

.portal-body .pos-step-intro {
    display: flex;
    align-items: end;
    justify-content: space-between;
    gap: .8rem;
    padding: .8rem 1rem .55rem;
}

.portal-body .pos-step-intro .eyebrow { margin: 0 0 .12rem; font-size: .55rem; }
.portal-body .pos-step-intro h3 {
    margin: 0;
    color: #281732;
    font-size: .92rem;
    font-weight: 720;
    letter-spacing: -.025em;
}

.portal-body .pos-step-intro > p {
    max-width: 13rem;
    margin: 0;
    color: #81748a;
    font-size: .57rem;
    line-height: 1.45;
    text-align: right;
}

.portal-body .pos-items-step .pos-order-lines {
    min-height: 8rem;
    padding-top: .35rem;
}

.portal-body .pos-order-checkout {
    display: block;
    padding: 0;
    border-top: 0;
}

.portal-body .pos-order-checkout .pos-step-panel {
    padding: 0 1rem .9rem;
}

.portal-body .pos-order-checkout .pos-step-intro { padding-inline: 0; }
.portal-body .pos-order-checkout .pos-service-select {
    min-height: 3.15rem;
    margin-top: .15rem;
    padding-inline: .9rem 2.2rem;
    border-color: rgba(96, 48, 133, .23);
    border-radius: .85rem;
    background-color: #fff;
    color: #281732;
    font-size: .76rem;
    font-weight: 650;
    box-shadow: 0 8px 20px rgba(56, 31, 72, .05);
}

.portal-body .pos-step-actions {
    display: grid;
    grid-template-columns: minmax(0, .85fr) minmax(0, 1.35fr);
    gap: .55rem;
    padding-top: .8rem;
}

.portal-body .pos-items-confirm-actions {
    flex: 0 0 auto;
    padding: .75rem 1rem .9rem;
    border-top: 1px solid rgba(96, 48, 133, .1);
    background: linear-gradient(180deg, rgba(255, 255, 255, .88), #fff);
}

.portal-body .pos-step-actions .button {
    min-width: 0;
    min-height: 2.85rem;
    justify-content: center;
    gap: .5rem;
    padding: .7rem .75rem;
    border-radius: .78rem;
    font-size: .66rem;
    font-weight: 700;
    white-space: normal;
}

.portal-body .pos-step-actions .button:not(.secondary) {
    background: linear-gradient(135deg, #7132b4, #603085 62%, #72482e);
    box-shadow: 0 10px 22px rgba(96, 48, 133, .2);
}

.portal-body .pos-step-actions .button.secondary {
    border-color: rgba(96, 48, 133, .16);
    background: #fff;
    color: #493653;
    box-shadow: 0 6px 16px rgba(56, 31, 72, .045);
}

.portal-body .pos-step-actions .button:disabled {
    background: #ddd2e5;
    box-shadow: none;
    cursor: not-allowed;
}

.portal-body .pos-step-error {
    margin: .65rem 1rem 0;
    padding: .65rem .75rem;
    border: 1px solid rgba(184, 43, 64, .18);
    border-radius: .7rem;
    background: #fff4f5;
    color: #a4243a;
    font-size: .61rem;
}

.portal-body .pos-kot-step { padding-top: 1.2rem !important; text-align: center; }
.portal-body .pos-kot-ready-mark {
    display: grid;
    width: 3.65rem;
    height: 3.65rem;
    margin: 0 auto .75rem;
    place-items: center;
    border: 1px solid rgba(96, 48, 133, .16);
    border-radius: 1rem;
    background: linear-gradient(145deg, #fff, #f3e8f6);
    color: #603085;
    box-shadow: 0 14px 30px rgba(96, 48, 133, .12);
}

.portal-body .pos-kot-ready-mark svg {
    width: 1.75rem;
    fill: none;
    stroke: currentColor;
    stroke-width: 1.7;
    stroke-linecap: round;
    stroke-linejoin: round;
}

.portal-body .pos-kot-step > .eyebrow { margin-bottom: .25rem; }
.portal-body .pos-kot-step > h3 {
    margin: 0;
    color: #281732;
    font-size: 1.08rem;
    font-weight: 750;
    letter-spacing: -.03em;
}

.portal-body .pos-kot-ready-copy {
    max-width: 23rem;
    margin: .38rem auto 1rem;
    color: #7d7085;
    font-size: .63rem;
    line-height: 1.55;
}

.portal-body .pos-final-review {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: .48rem;
    margin: 0;
    text-align: left;
}

.portal-body .pos-final-review > div {
    display: grid;
    gap: .16rem;
    padding: .68rem .75rem;
    border: 1px solid rgba(96, 48, 133, .11);
    border-radius: .7rem;
    background: linear-gradient(145deg, #fff, #fbf8fc);
}

.portal-body .pos-final-review dt { color: #8b7d93; font-size: .53rem; }
.portal-body .pos-final-review dd { margin: 0; color: #281732; font-size: .67rem; font-weight: 700; }
.portal-body .pos-final-actions {
    grid-template-columns: minmax(8.25rem, .68fr) minmax(0, 1.52fr);
    align-items: stretch;
    gap: .65rem;
}
.portal-body .pos-final-actions .button {
    min-height: 3.15rem;
    padding-inline: .9rem;
}
.portal-body .pos-final-actions .pos-complete-sale {
    width: 100%;
    line-height: 1.25;
    text-align: center;
}
.portal-body .pos-final-actions .pos-complete-sale [data-pos-submit-label] {
    display: block;
    max-width: 100%;
    text-wrap: balance;
}

.portal-body .pos-cash-tender {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
    gap: .65rem;
}

.portal-body .pos-cash-tender[hidden] { display: none !important; }

.portal-body .pos-change-due {
    display: grid;
    align-content: center;
    gap: .14rem;
    min-height: 4.4rem;
    padding: .65rem .75rem;
    border: 1px solid rgba(96, 48, 133, .16);
    border-radius: .75rem;
    background: linear-gradient(145deg, #f8f2ff, #fff);
}

.portal-body .pos-change-due > span,
.portal-body .pos-change-due > small { color: #81748a; font-size: .56rem; line-height: 1.35; }
.portal-body .pos-change-due > strong { color: #603085; font-size: 1rem; letter-spacing: -.025em; }
.portal-body .pos-change-due.is-short { border-color: rgba(184, 43, 64, .25); background: #fff5f6; }
.portal-body .pos-change-due.is-short > strong,
.portal-body .pos-change-due.is-short > small { color: #a4243a; }
.portal-body .pos-change-due.is-ready { border-color: rgba(39, 137, 73, .24); background: #f3fbf5; }
.portal-body .pos-change-due.is-ready > strong { color: #24783e; }

@keyframes pos-step-in {
    from { opacity: 0; transform: translateY(.25rem); }
    to { opacity: 1; transform: translateY(0); }
}

@media (max-width: 640px) {
    .portal-body .pos-checkout-steps { padding-inline: .6rem; }
    .portal-body .pos-checkout-steps button small { display: none; }
    .portal-body .pos-step-intro { align-items: start; flex-direction: column; gap: .25rem; }
    .portal-body .pos-step-intro > p { max-width: none; text-align: left; }
    .portal-body .pos-step-actions,
    .portal-body .pos-final-actions { grid-template-columns: 1fr; }
    .portal-body .pos-cash-tender { grid-template-columns: 1fr; }
    .portal-body .pos-online-delivery-link { order: 2; }
}

@media (prefers-reduced-motion: reduce) {
    .portal-body .pos-step-panel { animation: none; }
}

/* Compact luxury treatment for the item-cancellation dialog only. */
.portal-body .kot-cancel-modal .kot-cancel-dialog {
    width: min(35rem, calc(100vw - 2rem));
    max-height: min(42rem, calc(100dvh - 2rem));
    border: 1px solid rgba(91, 43, 114, .16);
    border-radius: 1.15rem;
    background: #fffdfd;
    box-shadow: 0 24px 65px rgba(35, 15, 46, .24), 0 2px 10px rgba(35, 15, 46, .08);
}

.portal-body .kot-cancel-modal .kot-cancel-dialog::before {
    left: 1.1rem;
    width: 4.1rem;
    height: 2px;
    background: linear-gradient(90deg, #5e247e, #a270b7 58%, #b8794d);
}

.portal-body .kot-cancel-modal .portal-modal-head {
    gap: .8rem;
    padding: 1rem 1.1rem .85rem;
    background:
        radial-gradient(circle at 92% 2%, rgba(96, 48, 133, .075), transparent 29%),
        linear-gradient(145deg, #fff 0%, #fcf8fc 100%);
}

.portal-body .kot-cancel-modal .portal-modal-head::after {
    right: 3.7rem;
    bottom: -2.8rem;
    width: 5.5rem;
    height: 5.5rem;
    opacity: .65;
}

.portal-body .kot-cancel-modal .portal-modal-head .eyebrow {
    margin-bottom: .25rem;
    font-size: .58rem;
    letter-spacing: .14em;
}

.portal-body .kot-cancel-modal .portal-modal-head h2 {
    font-size: 1.35rem;
    line-height: 1.12;
}

.portal-body .kot-cancel-modal .portal-modal-head > div > p:last-child {
    max-width: 27rem;
    margin-top: .3rem;
    font-size: .68rem;
    line-height: 1.4;
}

.portal-body .kot-cancel-modal .portal-modal-close {
    width: 2.25rem;
    height: 2.25rem;
    border-radius: .7rem;
}

.portal-body .kot-cancel-modal .kot-cancel-form {
    gap: 0;
    padding: .8rem 1rem 0;
    background: linear-gradient(180deg, #fff 0%, #fffdfc 100%);
}

.portal-body .kot-cancel-modal .kot-cancel-toolbar {
    padding: .55rem .65rem;
    border-color: rgba(96, 48, 133, .12);
    border-radius: .65rem;
    background: linear-gradient(135deg, #faf7fc, #f7f2f8);
    font-size: .64rem;
}

.portal-body .kot-cancel-modal .kot-cancel-select-all {
    gap: .45rem;
}

.portal-body .kot-cancel-modal .kot-cancel-select-all input {
    width: .95rem;
    height: .95rem;
}

.portal-body .kot-cancel-modal .kot-cancel-list {
    max-height: min(18rem, 38vh);
    gap: .45rem;
    margin-top: .55rem;
    padding-right: .12rem;
    overflow-y: auto;
    scrollbar-color: rgba(96, 48, 133, .3) transparent;
    scrollbar-width: thin;
}

.portal-body .kot-cancel-modal .kot-cancel-item {
    gap: .6rem;
    padding: .65rem .7rem;
    border-color: rgba(96, 48, 133, .14);
    border-radius: .68rem;
    box-shadow: 0 3px 12px rgba(47, 24, 57, .025);
}

.portal-body .kot-cancel-modal .kot-cancel-item:has(input:checked) {
    border-color: rgba(96, 48, 133, .52);
    background: linear-gradient(135deg, #fcf8ff, #f8f0fb);
    box-shadow: 0 0 0 2px rgba(96, 48, 133, .06), 0 7px 18px rgba(60, 28, 76, .06);
}

.portal-body .kot-cancel-modal .kot-cancel-check {
    width: 1.08rem;
    height: 1.08rem;
    border-radius: .3rem;
}

.portal-body .kot-cancel-modal .kot-cancel-item-copy {
    gap: .08rem;
}

.portal-body .kot-cancel-modal .kot-cancel-item-copy strong {
    font-size: .71rem;
}

.portal-body .kot-cancel-modal .kot-cancel-item-copy small,
.portal-body .kot-cancel-modal .kot-cancel-line-total {
    font-size: .61rem;
}

.portal-body .kot-cancel-modal .kot-cancel-line-total {
    color: #55206f;
    font-weight: 750;
}

.portal-body .kot-cancel-modal .kot-cancel-warning {
    gap: .55rem;
    margin: .55rem 0 .65rem;
    padding: .55rem .65rem;
    border-color: rgba(183, 121, 77, .3);
    border-radius: .65rem;
    background: linear-gradient(135deg, #fffaf3, #fdf6ec);
}

.portal-body .kot-cancel-modal .kot-cancel-warning > span {
    width: 1.12rem;
    height: 1.12rem;
    flex-basis: 1.12rem;
    background: linear-gradient(145deg, #d98219, #b95c16);
    font-size: .58rem;
}

.portal-body .kot-cancel-modal .kot-cancel-warning p {
    font-size: .61rem;
    line-height: 1.38;
}

.portal-body .kot-cancel-modal .portal-modal-actions {
    gap: .55rem;
    margin: .15rem -1rem 0;
    padding: .7rem 1rem .78rem;
    background: rgba(255, 253, 253, .96);
    box-shadow: 0 -8px 24px rgba(53, 30, 62, .03);
}

.portal-body .kot-cancel-modal .portal-modal-actions .button {
    min-width: 7.5rem;
    min-height: 2.55rem;
    border-radius: .7rem;
    font-size: .68rem;
}

.portal-body .kot-cancel-modal .kot-cancel-submit:not(:disabled) {
    border-color: rgba(255, 255, 255, .14);
    background: linear-gradient(135deg, #8e2441, #b22949 58%, #7a1833) !important;
    box-shadow: 0 9px 20px rgba(139, 31, 61, .2), inset 0 1px 0 rgba(255, 255, 255, .18) !important;
}

@media (max-width: 540px) {
    .portal-body .kot-cancel-modal .kot-cancel-dialog {
        width: 100%;
        max-height: calc(100dvh - 1rem);
        border-radius: 1rem;
    }

    .portal-body .kot-cancel-modal .portal-modal-head {
        padding: .9rem .9rem .75rem;
    }

    .portal-body .kot-cancel-modal .kot-cancel-form {
        padding-inline: .85rem;
    }

    .portal-body .kot-cancel-modal .portal-modal-actions {
        margin-inline: -.85rem;
        padding-inline: .85rem;
    }
}

.public-body,
.portal-body,
.auth-body,
.home-body {
    color: var(--ui-ink);
    font-family: "Poppins", ui-sans-serif, system-ui, -apple-system, "Segoe UI", sans-serif;
    font-size: var(--ui-text);
    font-weight: 400;
    line-height: 1.6;
    text-rendering: optimizeLegibility;
}

.public-body :where(button, input, select, textarea),
.portal-body :where(button, input, select, textarea),
.auth-body :where(button, input, select, textarea),
.home-body :where(button, input, select, textarea) {
    font-family: inherit;
}

.public-body :where(h1, h2, h3, h4, h5, h6, strong, b),
.portal-body :where(h1, h2, h3, h4, h5, h6, strong, b),
.auth-body :where(h1, h2, h3, h4, h5, h6, strong, b),
.home-body :where(h1, h2, h3, h4, h5, h6, strong, b) {
    font-weight: 600;
}

.public-body :where(p, ul, ol),
.portal-body :where(p, ul, ol),
.auth-body :where(p, ul, ol) {
    margin-top: 0;
}

/* Public storefront and customer pages */
.public-body {
    font-size: .9375rem;
}

.public-body .container {
    --bs-gutter-x: clamp(1.5rem, 4vw, 3rem);
    max-width: 1240px;
}

.public-body .section {
    padding-block: clamp(3.75rem, 7vw, 5.75rem);
}

.public-body .section + .section:not(.section-soft) {
    border-top: 1px solid rgba(96, 48, 133, .06);
}

.public-body h1,
.public-body .h1 {
    margin-bottom: var(--ui-space-4);
    font-size: clamp(2.25rem, 5vw, 3.6rem);
    font-weight: 600 !important;
    line-height: 1.08;
    letter-spacing: -.045em;
}

.public-body h2,
.public-body .h2 {
    margin-bottom: var(--ui-space-4);
    font-size: clamp(1.55rem, 3vw, 2.15rem);
    font-weight: 600;
    line-height: 1.18;
    letter-spacing: -.035em;
}

.public-body h3,
.public-body .h3,
.public-body .h4 {
    margin-bottom: var(--ui-space-3);
    font-weight: 600;
    line-height: 1.28;
}

.public-body .display-4,
.public-body .display-5,
.public-body .fw-bold {
    font-weight: 600 !important;
}

.public-body .lead {
    color: var(--ui-muted);
    font-size: clamp(1rem, 1.5vw, 1.125rem);
    line-height: 1.75;
}

.public-body .eyebrow {
    margin-bottom: var(--ui-space-2);
    font-size: .75rem;
    font-weight: 600;
    letter-spacing: .13em;
}

.public-body .row {
    --bs-gutter-x: 1.5rem;
    --bs-gutter-y: 1.5rem;
}

.public-body .card {
    border-color: var(--ui-line);
    border-radius: var(--ui-radius-lg);
    box-shadow: var(--ui-shadow);
}

.public-body .card.p-3 {
    padding: 1.125rem !important;
}

.public-body .card.p-4,
.public-body .card-body.p-4 {
    padding: 1.5rem !important;
}

.public-body .product-card .card-body {
    padding: 1.5rem !important;
}

.public-body .product-card h3 {
    font-size: 1.0625rem;
    font-weight: 600;
}

.public-body .badge,
.public-body .badge-soft,
.public-body .text-bg-success {
    padding: .45rem .7rem;
    font-size: .7rem;
    font-weight: 600;
    line-height: 1;
}

.public-body .price {
    font-size: 1.2rem;
    font-weight: 600;
}

.public-body .btn,
.public-body .button {
    min-height: var(--ui-control-height);
    padding: .7rem 1.125rem;
    border-radius: .75rem;
    font-size: var(--ui-text-sm);
    font-weight: 600;
    line-height: 1.2;
}

.public-body .btn-sm {
    min-height: 2.35rem;
    padding: .5rem .75rem;
    font-size: .75rem;
}

.public-body .btn-lg {
    min-height: 3.125rem;
    padding: .8rem 1.25rem;
    font-size: .875rem;
}

.public-body .form-control,
.public-body .form-select {
    min-height: 3rem;
    padding: .72rem .9rem;
    border-color: var(--ui-line);
    border-radius: .75rem;
    font-size: .875rem;
    line-height: 1.4;
}

.public-body textarea.form-control {
    min-height: 7rem;
    padding-block: .8rem;
}

.public-body .form-label,
.public-body .form-check-label {
    margin-bottom: .45rem;
    color: #4c3d46;
    font-size: var(--ui-text-sm);
    font-weight: 500;
}

.public-body .form-check.card {
    display: flex;
    min-height: 4.75rem;
    align-items: flex-start;
    padding: 1.125rem !important;
    gap: .75rem;
}

.public-body .table-responsive {
    border-radius: var(--ui-radius-lg);
}

.public-body .table > :not(caption) > * > * {
    padding: 1rem 1.125rem;
    font-size: var(--ui-text-sm);
    line-height: 1.5;
}

.public-body .table thead th {
    padding-block: .875rem;
    font-size: .7rem;
    font-weight: 600;
    letter-spacing: .065em;
}

.public-body .list-group-item {
    padding: 1.125rem 1.25rem !important;
}

.public-body .list-group-item strong {
    display: inline-block;
    margin-bottom: .25rem;
    font-weight: 600;
}

.public-body .alert {
    padding: .95rem 1.125rem;
    font-size: var(--ui-text-sm);
    line-height: 1.55;
}

.public-body .timeline {
    margin-top: var(--ui-space-5);
}

.public-body .timeline-item {
    padding-bottom: 1.75rem;
}

.public-body address {
    padding: 1.25rem;
}

.public-body .site-navbar {
    min-height: 78px;
}

.public-body .navbar-nav .nav-link {
    font-size: .8125rem;
    font-weight: 500;
}

.public-body .site-footer {
    padding-top: clamp(3.75rem, 7vw, 5.25rem);
}

.public-body .site-footer h2 {
    font-size: .875rem;
    font-weight: 600;
}

.public-body .site-footer :where(p, small, a) {
    font-size: .75rem;
}

/* Authentication screens */
.auth-body {
    font-size: .9375rem;
}

.auth-body .auth-brand {
    padding: clamp(2.5rem, 5vw, 4.5rem);
}

.auth-body .auth-back {
    font-size: .8125rem;
    font-weight: 600;
}

.auth-body .brand-mark {
    margin-bottom: 1.75rem;
    font-weight: 600;
}

.auth-body .brand-copy .eyebrow,
.auth-body .auth-heading .eyebrow {
    margin-bottom: .625rem;
    font-size: .75rem;
    font-weight: 600;
    letter-spacing: .13em;
}

.auth-body .brand-copy h1 {
    font-size: clamp(2.7rem, 5.2vw, 4.8rem);
    font-weight: 600;
    line-height: 1;
}

.auth-body .brand-copy > .brand-description {
    margin-top: 1.5rem;
    font-size: clamp(.9375rem, 1.3vw, 1.0625rem);
}

.auth-body .trust-note {
    font-size: .8125rem;
}

.auth-body .auth-panel {
    padding: clamp(1.5rem, 3vw, 2.5rem);
}

.auth-body .auth-card {
    width: min(100%, 32rem);
    padding: clamp(1.5rem, 3vw, 2.5rem);
    border-radius: var(--ui-radius-lg);
}

.auth-body .auth-card.auth-card-wide {
    width: min(100%, 38rem);
}

.auth-body .auth-heading h2 {
    margin: 0 0 .625rem;
    font-size: clamp(1.8rem, 3vw, 2.35rem);
    font-weight: 600;
    line-height: 1.12;
}

.auth-body .auth-heading > p:last-child {
    font-size: .875rem;
}

.auth-body .auth-form {
    gap: 1rem;
    margin-top: 1.5rem;
}

.auth-body .auth-form-grid {
    gap: 1rem 1.125rem;
}

.auth-body .field {
    gap: .425rem;
}

.auth-body .field label,
.auth-body .label-row,
.auth-body .optional {
    font-size: .8125rem;
    font-weight: 500;
}

.auth-body input {
    min-height: 3.125rem;
    padding: .75rem .9rem;
    border-radius: .75rem;
    font-size: .875rem;
}

.auth-body .password-toggle {
    font-size: .75rem;
    font-weight: 600;
}

.auth-body .field-help,
.auth-body .validation-message,
.auth-body .auth-security,
.auth-body .required-label {
    font-size: .72rem;
    font-weight: 400;
}

.auth-body .check,
.auth-body .auth-foot {
    font-size: .8125rem;
}

.auth-body .submit-button {
    min-height: 3.125rem;
    border-radius: .75rem;
    font-size: .875rem;
    font-weight: 600;
}

.auth-body .notice {
    margin-bottom: 1.25rem;
    padding: .875rem 1rem;
    font-size: .8125rem;
}

/* Portal shell and navigation */
.portal-body {
    font-size: .875rem;
    line-height: 1.55;
}

.portal-body .portal-sidebar {
    padding: 1.5rem 1rem 1.125rem;
}

.portal-body .portal-sidebar-head {
    margin-bottom: 1rem;
}

.portal-body .portal-brand {
    gap: .875rem !important;
    font-size: .9375rem !important;
    font-weight: 600 !important;
}

.portal-body .portal-logo {
    font-weight: 600 !important;
}

.portal-body .portal-nav {
    gap: .3rem;
    padding-block: .25rem .75rem;
}

.portal-body .portal-nav > a,
.portal-body .portal-group-toggle {
    min-height: 3rem !important;
    padding: .72rem .8rem !important;
    font-size: .75rem !important;
    font-weight: 500 !important;
    line-height: 1.35;
}

.portal-body .portal-submenu {
    gap: .2rem;
    padding-top: .2rem !important;
}

.portal-body .portal-submenu a,
.portal-body .portal-submenu form button {
    min-height: 2.6rem !important;
    padding: .6rem .9rem .6rem 3.25rem !important;
    font-size: .72rem !important;
    font-weight: 400 !important;
}

.portal-body .portal-user-card {
    gap: .75rem;
    padding: .8rem;
}

.portal-body .portal-user-copy strong {
    font-size: .75rem;
    font-weight: 600;
}

.portal-body .portal-user-copy small {
    font-size: .6875rem;
}

.portal-body .portal-topbar {
    min-height: 82px;
    padding: .875rem clamp(1.25rem, 3vw, 2.5rem);
}

.portal-body .portal-page-context {
    gap: .2rem !important;
    padding: .875rem 1.25rem .875rem 1.5rem;
}

.portal-body .portal-page-context h1 {
    font-size: 1rem;
    font-weight: 600;
}

.portal-body .portal-topbar-identity span {
    font-size: .75rem !important;
    font-weight: 400 !important;
}

.portal-body .portal-topbar-date {
    font-size: .75rem;
    font-weight: 500;
}

.portal-body .portal-topbar-time {
    font-size: .66rem;
    font-weight: 600;
}

.portal-body .portal-content {
    padding: clamp(1.5rem, 3vw, 2.5rem);
}

.portal-body .portal-content:has(> .dashboard-v2) {
    padding-top: 1.25rem;
}

.portal-body .dashboard-v2 > .dashboard-hero {
    display: none;
}

.portal-body .page-heading,
.portal-body .pos-heading,
.portal-body .dashboard-hero {
    gap: 1.25rem;
    margin-bottom: 1.5rem;
}

.portal-body .page-heading h1,
.portal-body .pos-heading h1,
.portal-body .dashboard-hero h1 {
    font-size: clamp(1.9rem, 3vw, 2.55rem);
    font-weight: 600;
    line-height: 1.08;
}

.portal-body .page-heading > div > p:last-child,
.portal-body .pos-heading > div > p:last-child,
.portal-body .dashboard-hero > div:first-child > p:last-child {
    margin-top: .5rem;
    font-size: .8125rem;
    line-height: 1.55;
}

.portal-body .eyebrow {
    margin: 0 0 .4rem;
    font-size: .7rem;
    font-weight: 600;
    letter-spacing: .13em;
}

/* Portal controls and forms */
.portal-body .button {
    min-height: 2.75rem;
    padding: .675rem 1rem;
    border-radius: .75rem;
    font-size: .75rem;
    font-weight: 600;
    line-height: 1.2;
}

.portal-body .button.secondary {
    font-weight: 500;
}

.portal-body .filters {
    gap: .75rem;
}

.portal-body .management-toolbar {
    margin-left: auto;
}

.portal-body .form-grid,
.portal-body .compact-grid,
.portal-body .purchase-form-grid,
.portal-body .account-form-grid,
.portal-body .reference-inline-form {
    gap: 1rem 1.125rem;
}

.portal-body .field {
    gap: .4rem;
}

.portal-body .field label,
.portal-body .filters label,
.portal-body .reference-date-filter label,
.portal-body .return-items label,
.portal-body .reference-inline-form .field > span,
.portal-body .form-grid .field > span {
    color: #584b57;
    font-size: .75rem !important;
    font-weight: 500 !important;
    line-height: 1.4;
}

.portal-body .filters input,
.portal-body .filters select,
.portal-body .field input,
.portal-body .field select,
.portal-body .field textarea,
.portal-body .reference-date-filter input,
.portal-body .return-items input,
.portal-body .compact-action input {
    min-height: var(--ui-control-height);
    padding: .7rem .8rem;
    border-radius: .7rem;
    font-size: .8125rem;
    line-height: 1.35;
}

.portal-body .field textarea {
    min-height: 6.5rem;
}

.portal-body .staff-search-field input[type="search"] {
    padding-left: .8rem !important;
}

.portal-body .form-validation-summary {
    display: flex;
    grid-template-columns: none;
    align-items: flex-start;
    gap: .75rem;
    margin-bottom: .15rem;
    padding: .85rem 1rem;
    border: 1px solid #f1b8c1;
    border-radius: .75rem;
    background: #fff3f5;
    color: #941b32;
}

.portal-body .form-validation-summary:focus {
    outline: 3px solid rgba(180, 37, 64, .14);
    outline-offset: 2px;
}

.portal-body .form-validation-icon {
    display: grid;
    flex: 0 0 1.35rem;
    width: 1.35rem;
    height: 1.35rem;
    place-items: center;
    border-radius: 50%;
    background: #b42540;
    color: #fff;
    font-size: .75rem;
    font-weight: 800;
}

.portal-body .form-validation-summary strong {
    display: block;
    font-size: .8rem;
}

.portal-body .form-validation-summary p {
    margin: .2rem 0 0;
    color: #a43b4e;
    font-size: .72rem;
}

.portal-body .field.has-error > label,
.portal-body .field.has-error > .check-field {
    color: #a51d36;
}

.portal-body .field [aria-invalid="true"] {
    border-color: #d95268;
    background: #fffafb;
    box-shadow: 0 0 0 3px rgba(208, 53, 79, .08);
}

.portal-body .field [aria-invalid="true"]:focus {
    outline-color: rgba(208, 53, 79, .18);
    border-color: #b42540;
}

.portal-body .field .field-error {
    display: flex;
    align-items: center;
    gap: .35rem;
    margin: 0;
    color: #aa2039;
    font-size: .7rem;
    font-weight: 600;
    line-height: 1.4;
}

.portal-body .field .field-error::before {
    content: "!";
    display: grid;
    flex: 0 0 .95rem;
    width: .95rem;
    height: .95rem;
    place-items: center;
    border-radius: 50%;
    background: #b42540;
    color: #fff;
    font-size: .58rem;
    font-weight: 800;
}

.portal-body .product-tax-picker {
    margin: 0;
    padding: .9rem 1rem 1rem;
    border: 1px solid rgba(96, 48, 133, .14);
    border-radius: .85rem;
    background: linear-gradient(145deg, #fff, rgba(243, 232, 227, .28));
}

.portal-body .product-tax-picker legend {
    padding: 0 .3rem;
    color: #33223b;
    font-size: .78rem;
    font-weight: 700;
}

.portal-body .product-tax-picker > .check-field {
    display: grid;
    grid-template-columns: 1.35rem minmax(0, 1fr);
    align-items: center;
    gap: .7rem;
    cursor: pointer;
}

.portal-body .product-tax-picker > .check-field input {
    width: 1.2rem;
    height: 1.2rem;
    margin: 0;
    accent-color: #603085;
}

.portal-body .product-tax-picker > .check-field strong,
.portal-body .product-tax-picker > .check-field small {
    display: block;
}

.portal-body .product-tax-picker > .check-field strong {
    color: #35213f;
    font-size: .78rem;
}

.portal-body .product-tax-picker > .check-field small {
    margin-top: .15rem;
    color: var(--portal-muted);
    font-size: .68rem;
    font-weight: 450;
    line-height: 1.45;
}

.portal-body .product-tax-rate {
    margin-top: .8rem;
    padding-top: .8rem;
    border-top: 1px solid rgba(96, 48, 133, .1);
}

.portal-body [data-product-tax-rate][hidden] {
    display: none !important;
}

.portal-body .product-tax-rate-control {
    position: relative;
}

.portal-body .product-tax-rate-control input {
    padding-right: 3rem;
}

.portal-body .product-tax-rate-control > span {
    position: absolute;
    top: 50%;
    right: .9rem;
    color: #603085;
    font-size: .78rem;
    font-weight: 700;
    transform: translateY(-50%);
    pointer-events: none;
}

.portal-body .hint,
.portal-body .field small,
.portal-body .menu-builder-head small,
.portal-body .return-items small {
    font-size: .7rem;
    font-weight: 400;
    line-height: 1.45;
}

.portal-body .notice {
    margin-bottom: 1.25rem;
    padding: .9rem 1rem;
    border-radius: .75rem;
    font-size: .8125rem;
    line-height: 1.5;
}

/* Portal cards, panels and grouped content */
.portal-body .metrics,
.portal-body .reference-metrics,
.portal-body .billing-metrics,
.portal-body .billing-grid,
.portal-body .reference-two-column,
.portal-body .kitchen-board,
.portal-body .menu-management-grid,
.portal-body .menu-combo-grid {
    gap: 1.125rem;
}

.portal-body .panel,
.portal-body .metric-card,
.portal-body .reference-metrics article,
.portal-body .billing-metrics article,
.portal-body .dashboard-stat-card,
.portal-body .dashboard-recent,
.portal-body .menu-combo-card,
.portal-body .kitchen-ticket,
.portal-body .invoice-sheet,
.portal-body .sale-ticket,
.portal-body .delivery-otp-card {
    border-radius: var(--ui-radius);
    box-shadow: var(--ui-shadow);
}

.portal-body .panel {
    margin-top: 1.125rem;
    padding: 1.375rem;
}

.portal-body .panel-head {
    gap: 1rem;
    margin-bottom: 1.125rem;
}

.portal-body .panel-head h2,
.portal-body .panel > h2,
.portal-body .reference-guide > h2 {
    font-size: 1.0625rem;
    font-weight: 600;
    line-height: 1.3;
}

.portal-body .panel-head > a {
    font-size: .75rem;
    font-weight: 500;
}

.portal-body .metric-card,
.portal-body .reference-metrics article,
.portal-body .billing-metrics article {
    padding: 1.25rem;
}

.portal-body .metric-card span,
.portal-body .reference-metrics article > span,
.portal-body .billing-metrics span {
    font-size: .72rem;
    font-weight: 500;
    line-height: 1.4;
}

.portal-body .metric-card strong,
.portal-body .reference-metrics article > strong,
.portal-body .billing-metrics strong {
    margin-top: .4rem;
    font-size: clamp(1.35rem, 2vw, 1.65rem);
    font-weight: 600;
    line-height: 1.15;
}

.portal-body .reference-metrics article > small,
.portal-body .menu-metrics small {
    font-size: .7rem;
    font-weight: 500;
}

.portal-body .reference-status,
.portal-body .status {
    padding: .35rem .625rem;
    font-size: .6875rem;
    font-weight: 600;
    line-height: 1.15;
}

.portal-body .reference-empty {
    padding: 3rem 1.5rem;
}

.portal-body .reference-empty h2 {
    font-size: 1.125rem;
    font-weight: 600;
}

.portal-body .reference-empty p,
.portal-body .empty {
    font-size: .75rem;
}

.portal-body .reference-guide,
.portal-body .cash-preview {
    padding: 1.375rem;
}

.portal-body .reference-guide ol {
    gap: 1rem;
}

.portal-body .reference-guide li {
    gap: .875rem;
}

.portal-body .reference-guide li > span {
    font-size: .75rem;
    font-weight: 600;
}

.portal-body .reference-guide li p,
.portal-body .cash-preview > p:last-child {
    font-size: .75rem;
}

.portal-body .reference-ledger,
.portal-body .reference-timeline {
    gap: .875rem;
}

.portal-body .reference-ledger article {
    gap: .875rem;
    padding: .875rem;
}

.portal-body .reference-timeline small,
.portal-body .reference-ledger small,
.portal-body .table-subtext {
    font-size: .7rem;
}

.portal-body .reference-timeline p {
    font-size: .8125rem;
}

.portal-body .return-sale-banner {
    margin-bottom: 1rem;
    padding: 1rem;
}

.portal-body .return-items {
    gap: .75rem;
}

.portal-body .return-items article {
    gap: 1.125rem;
    padding: .875rem;
}

/* Portal tables */
.portal-body .table-wrap,
.portal-body .dashboard-table-wrap {
    border-radius: .75rem;
}

.portal-body table {
    line-height: 1.45;
}

.portal-body th {
    padding: .875rem 1rem;
    font-size: .6875rem;
    font-weight: 600;
    letter-spacing: .06em;
}

.portal-body td {
    padding: .9rem 1rem;
    font-size: .8125rem;
}

.portal-body td.actions,
.portal-body .menu-actions,
.portal-body .invoice-actions,
.portal-body .pos-heading-actions {
    gap: .625rem;
}

.portal-body td.actions .button,
.portal-body .menu-actions .button,
.portal-body .menu-combo-card footer .button,
.portal-body .kitchen-ticket > footer .button,
.portal-body .compact-action .button {
    min-height: 2.3rem;
    padding: .5rem .7rem;
    font-size: .7rem;
}

.portal-body .menu-product-cell {
    gap: .8rem;
}

.portal-body .menu-product-cell small,
.portal-body .menu-option-list small {
    font-size: .7rem;
}

.portal-body .menu-option-list > article {
    gap: 1rem;
    padding-block: .95rem;
}

.portal-body .menu-combo-card {
    min-height: 13.5rem;
    padding: 1.125rem;
}

.portal-body .menu-combo-card h3 {
    font-size: 1rem;
    font-weight: 600;
}

.portal-body .menu-combo-card p,
.portal-body .menu-combo-card ul {
    font-size: .75rem;
}

.portal-body .menu-combo-builder {
    padding: 1rem;
}

/* Dashboard readability */
.portal-body .dashboard-v2 {
    gap: 1.25rem;
}

.portal-body .dashboard-primary-grid,
.portal-body .dashboard-secondary-grid {
    gap: 1rem;
}

.portal-body .dashboard-stat-card {
    min-height: 10rem;
    padding: 1rem;
}

.portal-body .dashboard-stat-label {
    font-size: .75rem;
    font-weight: 500;
}

.portal-body .dashboard-card-link > strong {
    font-size: clamp(1.2rem, 1.7vw, 1.55rem);
    font-weight: 600;
}

.portal-body .dashboard-money small,
.portal-body .dashboard-stat-note,
.portal-body .dashboard-order-overview > div > p,
.portal-body .dashboard-order-overview li,
.portal-body .dashboard-order-overview li strong,
.portal-body .dashboard-donut small {
    font-size: .68rem;
    font-weight: 500;
}

.portal-body .dashboard-recent {
    padding: 1.25rem;
}

.portal-body .dashboard-recent > header {
    margin-bottom: 1rem;
}

.portal-body .dashboard-recent h2 {
    font-size: 1.0625rem;
    font-weight: 600;
}

.portal-body .dashboard-table-wrap th {
    font-size: .6875rem;
}

.portal-body .dashboard-table-wrap td {
    font-size: .8125rem;
}

/* Kitchen and operational cards */
.portal-body .kitchen-ticket > header {
    gap: .875rem;
    padding: 1rem 1.125rem .875rem;
}

.portal-body .kitchen-ticket > header > div span {
    font-size: .7rem;
    font-weight: 600;
}

.portal-body .kitchen-ticket > header > div strong {
    font-size: 1rem;
    font-weight: 600;
}

.portal-body .kitchen-ticket-meta {
    padding: 0 1.125rem .875rem;
    font-size: .72rem;
}

.portal-body .kitchen-items {
    gap: .75rem;
    padding: 1rem 1.125rem;
}

.portal-body .kitchen-items li {
    font-size: .8125rem;
}

.portal-body .kitchen-note {
    margin: .875rem 1.125rem;
    padding: .8rem;
    font-size: .75rem;
}

.portal-body .kitchen-ticket > footer {
    padding: .875rem 1.125rem;
}

/* POS spacing */
.portal-body .pos-workspace {
    gap: 1.5rem;
}

.portal-body .pos-catalog-tools {
    gap: 1rem;
}

.portal-body .pos-search input {
    min-height: 3.5rem;
    padding-block: .875rem;
    font-size: .8125rem;
}

.portal-body .pos-category-tabs {
    gap: .5rem;
}

.portal-body .pos-category-tabs button,
.portal-body .pos-series-owner > summary,
.portal-body .pos-history-button {
    font-size: .75rem;
    font-weight: 500;
}

.portal-body .pos-product-list {
    gap: 1rem;
}

.portal-body .pos-product-row {
    border-radius: var(--ui-radius);
}

.portal-body .pos-product-row h2,
.portal-body .pos-product-row h3 {
    font-size: .875rem;
    font-weight: 650;
}

.portal-body .pos-order-head h2 {
    font-size: .9375rem;
    font-weight: 600;
}

.portal-body .pos-order-head > span,
.portal-body .pos-order-empty p,
.portal-body .pos-money-row,
.portal-body .pos-money-input {
    font-size: .72rem;
}

.portal-body .pos-stock-badge {
    font-size: .625rem;
}

.portal-body .pos-order-head {
    padding: 1.125rem 1.25rem;
}

.portal-body .pos-order-panel {
    scrollbar-gutter: stable;
}

.portal-body .pos-order-panel::-webkit-scrollbar {
    width: .6rem;
}

.portal-body .pos-order-panel::-webkit-scrollbar-thumb {
    border: 2px solid transparent;
    background-clip: padding-box;
}

.portal-body .pos-order-checkout {
    gap: .875rem;
    padding: 1.125rem 1.25rem 1.25rem;
}

.portal-body .pos-dine-session {
    gap: .75rem;
}

.portal-body .pos-reorder-check,
.portal-body .pos-series-field {
    min-height: 5rem;
}

.portal-body .pos-order-checkout .field label {
    font-size: .7rem !important;
}

.portal-body .pos-order-checkout .field {
    gap: .375rem;
}

.portal-body .pos-order-checkout .field input,
.portal-body .pos-order-checkout .field select,
.portal-body .pos-order-checkout .field textarea {
    min-height: 2.75rem;
    padding: .65rem .75rem;
    font-size: .75rem;
}

.portal-body .pos-service-select {
    min-height: 3rem;
    font-size: .8125rem;
    font-weight: 500;
}

.portal-body [data-pos-sale-checkout] {
    display: grid;
    min-width: 0;
    gap: .625rem;
    padding-top: .125rem;
}

.portal-body .pos-money-row,
.portal-body .pos-money-input {
    min-height: 1.25rem;
}

.portal-body .pos-money-row small {
    color: #95899f;
    font-size: .6rem;
    font-weight: 500;
}

.portal-body .orders-panel-head {
    align-items: end;
    gap: 1.25rem;
}

.portal-body .orders-panel-head > div {
    flex: 0 0 auto;
}

.portal-body .orders-filter-button {
    min-height: 2.75rem;
    gap: .5rem;
    padding: .62rem .82rem;
    border-color: #d8c5e4;
    background: #fff;
    color: #603085;
    box-shadow: 0 7px 18px rgba(69, 31, 91, .06);
}

.portal-body .orders-filter-button:hover {
    border-color: #bfa1d2;
    background: #faf6fc;
    color: #542675;
}

.portal-body .orders-filter-button > b {
    background: #603085;
    color: #fff;
}

.portal-body .order-filter-chevron {
    width: .48rem;
    height: .48rem;
    margin-left: .08rem;
    border-right: 1.5px solid currentColor;
    border-bottom: 1.5px solid currentColor;
    transform: translateY(-.12rem) rotate(45deg);
}

.portal-body .order-workflow-cell {
    width: 20rem;
    min-width: 20rem;
}

.portal-body .order-delivery-workflow {
    display: grid;
    gap: .5rem;
}

.portal-body .order-delivery-meta {
    display: flex;
    min-width: 0;
    align-items: center;
    flex-wrap: wrap;
    gap: .35rem .55rem;
    color: #675b6e;
    font-size: .68rem;
    font-weight: 650;
}

.portal-body .order-delivery-meta .status {
    padding: .32rem .55rem;
    font-size: .6rem;
}

.portal-body .order-delivery-meta a {
    color: #6f25d3;
    font-weight: 750;
    text-decoration: none;
}

.portal-body .order-delivery-meta a:hover { text-decoration: underline; }
.portal-body .order-delivery-meta small { color: #348254; font-size: .6rem; font-weight: 700; }

.portal-body .order-delivery-assignment-form,
.portal-body .order-delivery-status-form {
    display: grid;
    grid-template-columns: minmax(9rem, 1fr) auto;
    align-items: center;
    gap: .45rem;
}

.portal-body .order-delivery-assignment-form select,
.portal-body .order-delivery-status-form select {
    width: 100%;
    min-width: 0;
    min-height: 2.55rem;
    padding: .52rem .68rem;
    border: 1px solid var(--portal-line);
    border-radius: .65rem;
    background: #fff;
    color: var(--portal-dark);
    font: inherit;
    font-size: .7rem;
}

.portal-body .order-delivery-assignment-form select:focus,
.portal-body .order-delivery-status-form select:focus {
    outline: 3px solid rgba(96, 48, 133, .1);
    border-color: #603085;
}

.portal-body .order-delivery-assignment-form .button,
.portal-body .order-delivery-status-form .button {
    min-height: 2.55rem;
    padding: .55rem .72rem;
    font-size: .66rem;
    white-space: nowrap;
}

.portal-body .order-list-filters {
    display: grid;
    grid-template-columns: minmax(9rem, .8fr) minmax(15rem, 1.55fr) minmax(10rem, 1fr);
    align-items: end;
    gap: .65rem;
    max-width: none;
}

.portal-body .order-list-filters .field {
    gap: .3rem;
    min-width: 0;
}

.portal-body .order-list-filters .field > span {
    color: var(--portal-muted);
    font-size: .65rem;
    font-weight: 650;
}

.portal-body .order-list-filters input,
.portal-body .order-list-filters select,
.portal-body .order-list-filters .button {
    min-height: 2.75rem;
    font-size: .72rem;
}

.portal-body .order-list-filters input,
.portal-body .order-list-filters select {
    width: 100%;
    padding: .65rem .75rem;
}

.portal-body .sales-history-panel-head {
    position: relative;
    align-items: center;
    gap: 1.25rem;
}

.portal-body .sales-history-heading {
    min-width: 10.5rem;
    flex: 0 0 auto;
}

.portal-body .sales-history-heading h2 {
    margin: .12rem 0 0;
}

.portal-body .sales-history-heading small {
    display: block;
    margin-top: .3rem;
    color: #8a7c91;
    font-size: .65rem;
    font-weight: 500;
}

.portal-body .sales-history-toolbar {
    display: flex;
    min-width: 0;
    flex: 1 1 auto;
    align-items: center;
    justify-content: flex-end;
    gap: .65rem;
}

.portal-body .sales-filter-menu {
    position: relative;
    flex: 0 0 auto;
}

.portal-body .sales-filter-menu > summary {
    list-style: none;
}

.portal-body .sales-filter-menu > summary::-webkit-details-marker {
    display: none;
}

.portal-body .sales-filter-toggle {
    gap: .55rem;
    min-width: 7.25rem;
    min-height: 2.75rem;
    border-color: #ded2e3;
    background: linear-gradient(145deg, #fff, #fbf7fc);
    box-shadow: 0 8px 22px rgba(56, 31, 66, .06);
    color: #4b3656;
    font-size: .72rem;
    white-space: nowrap;
}

.portal-body .sales-filter-toggle > svg {
    width: 1.05rem;
    height: 1.05rem;
    fill: none;
    stroke: currentColor;
    stroke-width: 1.8;
    stroke-linecap: round;
}

.portal-body .sales-filter-toggle:hover,
.portal-body .sales-filter-menu[open] > .sales-filter-toggle {
    border-color: rgba(96, 48, 133, .28);
    background: #fff;
    color: #603085;
    box-shadow: 0 10px 26px rgba(96, 48, 133, .11);
}

.portal-body .sales-filter-count {
    display: grid;
    min-width: 1.2rem;
    height: 1.2rem;
    place-items: center;
    padding: 0 .28rem;
    border-radius: 999px;
    background: #603085;
    color: #fff;
    font-size: .58rem;
    font-weight: 650;
}

.portal-body .sales-filter-chevron {
    width: .42rem;
    height: .42rem;
    margin-left: .1rem;
    border-right: 1.5px solid currentColor;
    border-bottom: 1.5px solid currentColor;
    transform: translateY(-2px) rotate(45deg);
    transition: transform .18s ease;
}

.portal-body .sales-filter-menu[open] .sales-filter-chevron {
    transform: translateY(2px) rotate(225deg);
}

.portal-body .sales-filter-popover {
    position: absolute;
    z-index: 40;
    top: calc(100% + .7rem);
    right: 0;
    width: min(43rem, calc(100vw - 2rem));
    overflow: hidden;
    border: 1px solid rgba(96, 48, 133, .14);
    border-radius: 1.1rem;
    background: rgba(255, 253, 252, .98);
    box-shadow: 0 24px 65px rgba(42, 21, 52, .2), 0 5px 18px rgba(96, 48, 133, .08);
    backdrop-filter: blur(18px);
    transform-origin: top right;
    animation: sales-filter-reveal .16s ease-out;
}

@keyframes sales-filter-reveal {
    from { opacity: 0; transform: translateY(-.35rem) scale(.985); }
    to { opacity: 1; transform: translateY(0) scale(1); }
}

.portal-body .sales-filter-popover-head {
    display: flex;
    align-items: end;
    justify-content: space-between;
    gap: 1rem;
    padding: 1rem 1.1rem .9rem;
    border-bottom: 1px solid rgba(96, 48, 133, .09);
    background:
        radial-gradient(circle at 92% -20%, rgba(96, 48, 133, .1), transparent 38%),
        linear-gradient(145deg, #fff, #fbf6f9);
}

.portal-body .sales-filter-popover-head .eyebrow {
    margin-bottom: .18rem;
    font-size: .59rem;
}

.portal-body .sales-filter-popover-head strong {
    display: block;
    color: #2c1937;
    font-size: .92rem;
}

.portal-body .sales-filter-popover-head > small {
    color: #8a7c91;
    font-size: .62rem;
}

.portal-body .sales-history-filters {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    align-items: end;
    gap: .8rem .9rem;
    padding: 1rem 1.1rem 1.1rem;
}

.portal-body .sales-history-filters .field {
    min-width: 0;
    gap: .3rem;
}

.portal-body .sales-history-filters .field > span {
    color: #63546b;
    font-size: .65rem;
    font-weight: 650;
}

.portal-body .sales-history-filters :is(input, select),
.portal-body .sales-new-button {
    min-height: 2.85rem;
    font-size: .72rem;
}

.portal-body .sales-history-filters :is(input, select) {
    width: 100%;
    min-width: 0;
    padding: .65rem .75rem;
}

.portal-body .sales-history-filters select {
    padding-right: 2rem;
}

.portal-body .sales-history-filters .sales-history-search,
.portal-body .sales-filter-actions {
    grid-column: 1 / -1;
}

.portal-body .sales-filter-actions {
    display: flex;
    justify-content: flex-end;
    gap: .65rem;
    padding-top: .15rem;
}

.portal-body .sales-filter-actions .button {
    min-width: 7.5rem;
    min-height: 2.75rem;
    font-size: .7rem;
}

.portal-body .sales-new-button {
    flex: 0 0 auto;
    white-space: nowrap;
}

@media (max-width: 900px) {
    .portal-body .sales-filter-popover {
        position: fixed;
        top: 7.5rem;
        right: 1rem;
        left: 1rem;
        width: auto;
        max-height: calc(100dvh - 9rem);
        overflow-y: auto;
    }
}

@media (max-width: 560px) {
    .portal-body .sales-history-toolbar {
        width: 100%;
        justify-content: stretch;
    }

    .portal-body .sales-filter-menu,
    .portal-body .sales-new-button {
        flex: 1 1 0;
    }

    .portal-body .sales-filter-toggle,
    .portal-body .sales-new-button {
        width: 100%;
    }

    .portal-body .sales-history-filters {
        grid-template-columns: 1fr;
        padding: .9rem;
    }

    .portal-body .sales-history-filters .sales-history-search,
    .portal-body .sales-filter-actions {
        grid-column: auto;
    }

    .portal-body .sales-filter-popover-head {
        align-items: flex-start;
        flex-direction: column;
        gap: .35rem;
        padding-inline: .9rem;
    }

    .portal-body .sales-filter-actions .button {
        min-width: 0;
        flex: 1;
    }
}

.portal-body .pos-money-input {
    gap: .75rem;
}

.portal-body .pos-discount-control {
    position: relative;
    display: grid;
    order: 2 !important;
    width: 10.75rem;
    flex: 0 0 10.75rem;
    grid-template-columns: 4.25rem minmax(0, 1fr);
    margin-left: auto;
}

.portal-body .pos-money-input .pos-discount-control input {
    width: 100%;
    min-width: 0;
    min-height: 2.55rem;
    border: 1px solid #ded4e4;
    border-left: 0;
    border-radius: 0 .65rem .65rem 0;
    background: #fff;
    color: var(--portal-dark);
    font: inherit;
    grid-column: 2;
    grid-row: 1;
    padding: .55rem .65rem;
    text-align: right;
}

.portal-body .pos-money-input .pos-discount-control [data-pos-coupon] {
    text-align: left;
    text-transform: uppercase;
}

.portal-body .pos-discount-picker {
    position: relative;
    z-index: 8;
    grid-column: 1;
    grid-row: 1;
}

.portal-body .pos-discount-picker summary {
    display: flex;
    min-height: 2.55rem;
    align-items: center;
    justify-content: center;
    gap: .55rem;
    padding: .45rem .65rem;
    border: 1px solid #d9cae2;
    border-radius: .65rem 0 0 .65rem;
    background: linear-gradient(145deg, #fffdfb, #f7eef4);
    color: var(--ui-purple);
    box-shadow: inset 0 1px 0 rgba(255,255,255,.95);
    cursor: pointer;
    list-style: none;
}

.portal-body .pos-discount-picker summary::-webkit-details-marker {
    display: none;
}

.portal-body .pos-discount-picker[open] summary {
    border-color: rgba(96,48,133,.48);
    border-radius: .65rem;
    box-shadow: 0 0 0 3px rgba(96,48,133,.1), 0 10px 24px rgba(58,29,75,.12);
}

.portal-body .pos-discount-mode-icon {
    display: none;
    width: 1.2rem;
    height: 1.2rem;
    align-items: center;
    justify-content: center;
    color: #603085;
    font-size: .72rem;
    font-weight: 700;
}

.portal-body .pos-discount-mode-icon.is-coupon,
.portal-body .pos-coupon-ticket-icon {
    fill: none;
    stroke: currentColor;
    stroke-linecap: round;
    stroke-linejoin: round;
    stroke-width: 1.65;
}

.portal-body .pos-discount-picker[data-discount-active="amount"] [data-discount-mode-icon="amount"],
.portal-body .pos-discount-picker[data-discount-active="percentage"] [data-discount-mode-icon="percentage"],
.portal-body .pos-discount-picker[data-discount-active="coupon"] [data-discount-mode-icon="coupon"] {
    display: inline-flex;
}

.portal-body .pos-discount-picker-chevron {
    width: .42rem;
    height: .42rem;
    border-right: 1.5px solid currentColor;
    border-bottom: 1.5px solid currentColor;
    transform: rotate(45deg) translateY(-.12rem);
    transition: transform .18s ease;
}

.portal-body .pos-discount-picker[open] .pos-discount-picker-chevron {
    transform: rotate(225deg) translate(-.08rem,-.08rem);
}

.portal-body .pos-discount-picker-menu {
    position: absolute;
    top: calc(100% + .42rem);
    left: 0;
    display: grid;
    width: 4.25rem;
    gap: .25rem;
    padding: .35rem;
    border: 1px solid rgba(96,48,133,.16);
    border-radius: .85rem;
    background: rgba(255,253,251,.98);
    box-shadow: 0 18px 38px rgba(49,24,64,.18), 0 4px 12px rgba(114,72,46,.08);
    backdrop-filter: blur(16px);
}

.portal-body .pos-discount-picker-menu button {
    display: grid;
    width: 100%;
    min-height: 2.35rem;
    place-items: center;
    padding: .4rem;
    border: 0;
    border-radius: .62rem;
    background: transparent;
    color: #603085;
    font: inherit;
    font-size: .76rem;
    font-weight: 700;
    cursor: pointer;
}

.portal-body .pos-discount-picker-menu button:hover,
.portal-body .pos-discount-picker-menu button:focus-visible,
.portal-body .pos-discount-picker-menu button[aria-selected="true"] {
    outline: 0;
    background: linear-gradient(135deg, #603085, #7a3fa3);
    color: #fff;
    box-shadow: 0 7px 16px rgba(96,48,133,.2);
}

.portal-body .pos-coupon-ticket-icon {
    width: 1.28rem;
    height: 1.28rem;
}

.portal-body .pos-discount-picker.is-disabled {
    pointer-events: none;
    opacity: .5;
}

.portal-body .pos-money-input .pos-discount-control input:focus,
.portal-body .pos-discount-picker summary:focus-visible {
    position: relative;
    z-index: 1;
    border-color: rgba(96, 48, 133, .55);
    outline: 3px solid rgba(96, 48, 133, .11);
}

.portal-body .pos-discount-feedback {
    justify-self: end;
    max-width: 16rem;
    margin-top: -.25rem;
    color: #a74352;
    font-size: .58rem;
    font-weight: 550;
    text-align: right;
}

.portal-body .pos-discount-feedback.is-valid {
    color: #39785a;
}

.portal-body .pos-grand-total {
    margin: .25rem 0 .125rem;
    padding: .8rem .875rem;
    font-size: .9375rem;
    font-weight: 600;
}

.portal-body .pos-checkout-fields {
    gap: .75rem;
    margin-top: .125rem;
}

.portal-body .pos-complete-sale {
    min-height: 3.25rem;
    margin-top: .125rem;
    padding-inline: 1.125rem;
}

@media (max-width: 430px) {
    .portal-body .pos-order-checkout {
        padding-inline: 1rem;
    }

    .portal-body .pos-dine-session,
    .portal-body .pos-checkout-fields {
        grid-template-columns: 1fr;
    }
}

/* Dialogs and popups */
.site-confirm-dialog {
    width: min(27rem, calc(100vw - 2rem));
    max-width: none;
    padding: 0;
    border: 1px solid rgba(96, 48, 133, .14);
    border-radius: 1.25rem;
    background: transparent;
    color: #2b1935;
    box-shadow: 0 1.75rem 5rem rgba(43, 25, 53, .24);
    overflow: visible;
}

.site-confirm-dialog::backdrop {
    background: rgba(42, 19, 58, .46);
    backdrop-filter: blur(4px);
}

.site-confirm-card {
    position: relative;
    display: grid;
    grid-template-columns: 3.25rem 1fr;
    gap: 0 1rem;
    padding: 1.5rem;
    border-radius: inherit;
    background:
        radial-gradient(circle at 100% 0, rgba(240, 230, 247, .95), transparent 44%),
        #fff;
    overflow: hidden;
}

.site-confirm-icon {
    display: grid;
    width: 3.25rem;
    height: 3.25rem;
    place-items: center;
    border-radius: 1rem;
    background: #f1e8f6;
    color: #603085;
}

.site-confirm-icon svg {
    width: 1.45rem;
    height: 1.45rem;
    fill: none;
    stroke: currentColor;
    stroke-width: 1.7;
    stroke-linecap: round;
    stroke-linejoin: round;
}

.site-confirm-eyebrow {
    display: block;
    margin: .05rem 0 .25rem;
    color: #603085;
    font-size: .66rem;
    font-weight: 650;
    letter-spacing: .11em;
    text-transform: uppercase;
}

.site-confirm-copy h2 {
    margin: 0;
    color: #2b1935;
    font-size: 1.18rem;
    font-weight: 650;
    line-height: 1.25;
}

.site-confirm-copy p {
    margin: .5rem 0 0;
    color: #75677d;
    font-size: .78rem;
    line-height: 1.65;
}

.site-confirm-actions {
    display: flex;
    grid-column: 1 / -1;
    justify-content: flex-end;
    gap: .65rem;
    margin-top: 1.35rem;
}

.site-confirm-actions button {
    min-width: 6.75rem;
    min-height: 2.65rem;
    padding: .65rem 1rem;
    border: 1px solid transparent;
    border-radius: .75rem;
    font: inherit;
    font-size: .72rem;
    font-weight: 600;
    cursor: pointer;
    transition: border-color .16s ease, background .16s ease, box-shadow .16s ease, transform .16s ease;
}

.site-confirm-cancel {
    border-color: #e6dce9 !important;
    background: #fff;
    color: #4f3c59;
}

.site-confirm-cancel:hover {
    border-color: #cdbbd4 !important;
    background: #faf7fb;
}

.site-confirm-accept {
    background: #603085;
    color: #fff;
    box-shadow: 0 .55rem 1.25rem rgba(96, 48, 133, .2);
}

.site-confirm-accept:hover {
    background: #522673;
    transform: translateY(-1px);
}

.site-confirm-accept.is-danger {
    background: #603085;
    box-shadow: 0 .55rem 1.25rem rgba(96, 48, 133, .24);
}

.site-confirm-accept.is-danger:hover {
    background: #522673;
}

.site-confirm-actions button:focus-visible {
    outline: 3px solid rgba(96, 48, 133, .22);
    outline-offset: 2px;
}

@media (max-width: 480px) {
    .site-confirm-card {
        grid-template-columns: 2.8rem 1fr;
        gap: 0 .8rem;
        padding: 1.15rem;
    }

    .site-confirm-icon {
        width: 2.8rem;
        height: 2.8rem;
        border-radius: .8rem;
    }

    .site-confirm-actions {
        display: grid;
        grid-template-columns: 1fr 1fr;
        margin-top: 1.1rem;
    }

    .site-confirm-actions button {
        min-width: 0;
    }
}

.portal-body .portal-modal {
    padding: clamp(.75rem, 3vw, 1.5rem);
}

.portal-body .portal-modal-dialog {
    width: min(58rem, 100%);
    max-height: calc(100dvh - 2rem);
    border-radius: var(--ui-radius-lg);
}

.portal-body .portal-modal-head {
    gap: 1rem;
    padding: 1.25rem 1.5rem 1.125rem;
}

.portal-body .portal-modal-head h2 {
    margin-top: .125rem;
    font-size: clamp(1.4rem, 2.5vw, 1.8rem);
    font-weight: 600;
    line-height: 1.2;
}

.portal-body .portal-modal-head > div > p:last-child {
    margin-top: .4rem;
    font-size: .8125rem;
}

.portal-body .portal-modal-close {
    width: 2.5rem;
    height: 2.5rem;
    border-radius: .7rem;
}

.portal-body .portal-modal-form {
    padding: 1.25rem 1.5rem 0;
}

.portal-body .portal-modal-actions {
    position: sticky !important;
    z-index: 5;
    bottom: 0;
    gap: .75rem;
    margin-inline: -1.5rem;
    padding: 1rem 1.5rem;
}

.portal-body .portal-modal-actions .button {
    min-width: 7.5rem;
}

/* Invoice and detail sheets */
.portal-body .invoice-sheet-head,
.portal-body .invoice-parties,
.portal-body .invoice-summary {
    gap: 1.5rem;
    padding: 1.375rem 1.5rem;
}

.portal-body .invoice-sheet-head h2 {
    font-size: 1.5rem;
    font-weight: 600;
}

.portal-body .invoice-parties span,
.portal-body .invoice-summary span {
    font-size: .7rem;
}

.portal-body .sale-ticket-hero {
    padding: 1.75rem;
}

.portal-body .sale-ticket-meta div {
    gap: .375rem;
    padding: 1rem 1.125rem;
}

.portal-body .delivery-otp-copy {
    padding: clamp(1.5rem, 4vw, 2.25rem);
}

/* Homepage readability without changing its reference composition */
.home-body {
    font-size: .9375rem;
}

.home-body .main-nav a,
.home-body .nav-cta,
.home-body .button {
    font-size: .75rem;
    font-weight: 500;
}

.home-body .eyebrow {
    font-size: .72rem;
    font-weight: 600;
}

.home-body .hero-intro {
    font-size: .875rem;
}

.home-body .promise-grid h2 {
    font-size: 1.125rem;
    font-weight: 500;
}

.home-body .promise-grid p,
.home-body .product-note,
.home-body .product-link,
.home-body .craft-copy p:not(.eyebrow),
.home-body .craft-copy a,
.home-body .section-heading > a,
.home-body .store-copy > p:not(.eyebrow) {
    font-size: .72rem;
}

.home-body .product-name {
    font-size: 1.0625rem;
    font-weight: 600;
}

.home-body .numbers h2 {
    font-size: .75rem;
    font-weight: 600;
}

.home-body .numbers p,
.home-body .journey-grid p,
.home-body .store-card p,
.home-body .store-card div,
.home-body .footer :where(p, a, small) {
    font-size: .65rem;
}

.home-body .journey-grid h3,
.home-body .store-card h3 {
    font-weight: 600;
}

.home-body .footer h2 {
    font-size: .72rem;
    font-weight: 600;
}

@media (max-width: 1280px) {
    .portal-body .orders-panel-head {
        align-items: stretch;
        flex-direction: column;
    }

    .portal-body .order-list-filters {
        max-width: none;
    }
}

/* Small-screen rhythm */
@media (max-width: 800px) {
    .portal-body .portal-content {
        padding: 1.125rem;
    }

    .portal-body .portal-topbar {
        min-height: 84px;
        padding: .7rem 1rem;
    }

    .portal-body .portal-page-context {
        padding: .75rem .875rem .75rem 1.2rem;
    }

    .portal-body .portal-page-context h1 {
        font-size: .875rem;
    }

    .portal-body .portal-topbar-identity span {
        font-size: .6875rem !important;
    }

    .portal-body .panel {
        padding: 1.125rem;
    }

    .portal-body .order-list-filters {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .portal-body .order-list-filters .field:nth-child(2),
    .portal-body .order-list-filters .button {
        grid-column: 1 / -1;
    }

    .portal-body .portal-modal {
        padding: .5rem;
    }

    .portal-body .portal-modal-head {
        padding: 1rem;
    }

    .portal-body .portal-modal-form {
        padding: 1rem 1rem 0;
    }

    .portal-body .portal-modal-actions {
        margin-inline: -1rem;
        padding: .875rem 1rem;
    }

    .public-body .section {
        padding-block: 3.5rem;
    }
}

@media (max-width: 640px) {
    .public-body,
    .auth-body,
    .home-body {
        font-size: .875rem;
    }

    .public-body .row {
        --bs-gutter-x: 1rem;
        --bs-gutter-y: 1rem;
    }

    .public-body .card.p-4,
    .public-body .card-body.p-4 {
        padding: 1.25rem !important;
    }

    .public-body .table > :not(caption) > * > * {
        padding: .875rem;
    }

    .auth-body .auth-panel {
        padding: 1rem;
    }

    .auth-body .auth-card {
        padding: 1.375rem;
    }

    .auth-body .auth-form-grid {
        grid-template-columns: 1fr;
    }

    .portal-body .metrics,
    .portal-body .reference-metrics,
    .portal-body .billing-metrics {
        gap: .875rem;
    }

    .portal-body .panel-head {
        align-items: flex-start;
        flex-direction: column;
    }

    .portal-body .panel-head > :where(a, .button, form) {
        max-width: 100%;
    }

    .portal-body .portal-modal-actions .button {
        min-width: 0;
    }

    .portal-body .order-list-filters {
        grid-template-columns: 1fr;
    }

    .portal-body .order-list-filters .field:nth-child(2),
    .portal-body .order-list-filters .button {
        grid-column: auto;
    }
}

@media (prefers-reduced-motion: reduce) {
    .public-body *,
    .portal-body *,
    .auth-body *,
    .home-body * {
        scroll-behavior: auto !important;
    }
}

/* Universal three-dot action dropdowns */
.action-menu-host {
    position: relative;
    overflow: visible;
}

.portal-body td.action-menu-host,
.public-body td.action-menu-host {
    min-width: 4.75rem;
    overflow: visible;
    text-align: center;
    vertical-align: middle;
}

.portal-body th.action-menu-heading,
.public-body th.action-menu-heading {
    text-align: center;
}

.portal-body td.actions.action-menu-host {
    display: table-cell !important;
}

.action-menu {
    position: relative;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    margin-inline: auto;
}

.action-menu-toggle {
    display: inline-grid;
    width: 2.625rem;
    height: 2.625rem;
    flex: 0 0 2.625rem;
    place-items: center;
    padding: 0;
    border: 1px solid #e3dce8;
    border-radius: .75rem;
    background: #fff;
    color: #626064;
    box-shadow: 0 5px 14px rgba(50, 31, 60, .05);
    cursor: pointer;
    transition: border-color .16s ease, background .16s ease, color .16s ease, box-shadow .16s ease;
}

.action-menu-toggle:hover,
.action-menu-toggle:focus-visible,
.action-menu.is-open .action-menu-toggle {
    border-color: rgba(96, 48, 133, .35);
    background: #faf7fc;
    color: var(--ui-purple);
    box-shadow: 0 8px 20px rgba(70, 35, 88, .1);
}

.action-menu-toggle:focus-visible {
    outline: 3px solid rgba(96, 48, 133, .14);
    outline-offset: 2px;
}

.action-menu-dots {
    width: .375rem;
    height: .375rem;
    border-radius: 50%;
    background: currentColor;
    box-shadow: 0 -.55rem 0 currentColor, 0 .55rem 0 currentColor;
}

.action-menu-panel {
    position: fixed;
    z-index: 220;
    display: grid;
    width: 12rem;
    gap: .25rem;
    padding: .45rem;
    border: 1px solid #e4dde8;
    border-radius: .8rem;
    background: #fff;
    box-shadow: 0 20px 55px rgba(41, 21, 53, .2);
    color: var(--ui-ink);
    text-align: left;
    white-space: normal;
}

.action-menu-panel[hidden] {
    display: none !important;
}

.action-menu-panel-wide {
    width: min(21rem, calc(100vw - 1.25rem));
}

.action-menu-panel > :where(a, button),
.action-menu-panel > form > :where(a, button),
.action-menu-panel > details > summary,
.action-menu-panel > details form > button {
    display: flex !important;
    width: 100% !important;
    min-height: 2.5rem !important;
    align-items: center;
    justify-content: flex-start !important;
    margin: 0 !important;
    padding: .625rem .75rem !important;
    border: 0 !important;
    border-radius: .55rem !important;
    background: transparent !important;
    box-shadow: none !important;
    color: #493b4d !important;
    font-size: .75rem !important;
    font-weight: 500 !important;
    line-height: 1.3;
    text-align: left;
    text-decoration: none;
    cursor: pointer;
}

.action-menu-panel > :where(a, button):hover,
.action-menu-panel > form > :where(a, button):hover,
.action-menu-panel > details > summary:hover,
.action-menu-panel > details form > button:hover {
    background: #f5eff8 !important;
    color: var(--ui-purple) !important;
    transform: none !important;
}

.action-menu-panel > form,
.action-menu-panel > details,
.action-menu-panel > details form {
    width: 100%;
    margin: 0;
}

.action-menu-panel > form.filters,
.action-menu-panel > form.compact-action,
.action-menu-panel > details form,
.action-menu-panel > form.form-grid {
    display: grid;
    grid-template-columns: 1fr;
    gap: .5rem;
    padding: .35rem;
}

.action-menu-panel :where(input:not([type="hidden"]), select, textarea) {
    width: 100%;
    min-height: 2.625rem;
    padding: .625rem .7rem;
    border: 1px solid #e1d9e5;
    border-radius: .6rem;
    background: #fff;
    color: var(--ui-ink);
    font: inherit;
    font-size: .75rem;
}

.action-menu-panel .field {
    gap: .35rem;
}

.action-menu-panel .field label {
    font-size: .7rem !important;
}

.action-menu-panel :where(.danger, .btn-outline-danger, button[name="decision"][value="reject"]) {
    color: #a12f43 !important;
}

.action-menu-panel :where(.danger, .btn-outline-danger, button[name="decision"][value="reject"]):hover {
    background: #fff0f2 !important;
    color: #8f2034 !important;
}

.action-menu-panel details > summary {
    list-style: none;
}

.action-menu-panel details > summary::-webkit-details-marker {
    display: none;
}

.action-menu-panel details[open] > summary {
    background: #f5eff8 !important;
    color: var(--ui-purple) !important;
}

.action-menu-panel details form {
    margin-top: .35rem;
    padding-top: .65rem;
    border-top: 1px solid #eee8f1;
}

.menu-option-list > article > div:last-child.action-menu-host,
.menu-combo-card > footer.action-menu-host {
    overflow: visible;
}

.kitchen-ticket > footer.action-menu-host {
    justify-content: flex-end;
}

@media (max-width: 640px) {
    .action-menu-toggle {
        width: 2.75rem;
        height: 2.75rem;
    }

    .action-menu-panel {
        width: min(13.5rem, calc(100vw - 1.25rem));
    }

    .action-menu-panel-wide {
        width: calc(100vw - 1.25rem);
    }
}

/* Dashboard reference composition */
.portal-topbar-tools {
    display: grid;
    flex: 0 0 auto;
    justify-items: end;
}

.dashboard-title-wave {
    display: inline-block !important;
    overflow: visible !important;
    margin-left: .3rem;
    font-size: 1em !important;
    line-height: 1 !important;
    transform: rotate(-8deg);
    transform-origin: bottom center;
}

.dashboard-export {
    position: relative;
    z-index: 12;
    margin-top: .85rem;
}

.dashboard-export summary {
    display: grid;
    grid-template-columns: 1rem auto 1.9rem;
    align-items: center;
    min-height: 2.2rem;
    min-width: 9.1rem;
    overflow: hidden;
    padding-left: .8rem;
    border-radius: .45rem;
    background: linear-gradient(135deg, #7022d5, #561bc0);
    color: #fff;
    box-shadow: 0 8px 18px rgba(85, 27, 190, .2);
    cursor: pointer;
    font-size: .7rem;
    font-weight: 600;
    list-style: none;
}

.dashboard-export summary::-webkit-details-marker {
    display: none;
}

.dashboard-export summary > svg {
    width: .9rem;
    height: .9rem;
    fill: none;
    stroke: currentColor;
    stroke-width: 1.8;
    stroke-linecap: round;
    stroke-linejoin: round;
}

.dashboard-export-chevron {
    position: relative;
    align-self: stretch;
    margin-left: .65rem;
    border-left: 1px solid rgba(255, 255, 255, .28);
}

.dashboard-export-chevron::after {
    content: "";
    position: absolute;
    left: 50%;
    top: 46%;
    width: .36rem;
    height: .36rem;
    border-right: 1.5px solid currentColor;
    border-bottom: 1.5px solid currentColor;
    transform: translate(-50%, -50%) rotate(45deg);
}

.dashboard-export[open] .dashboard-export-chevron::after {
    top: 56%;
    transform: translate(-50%, -50%) rotate(225deg);
}

.dashboard-export-menu {
    position: absolute;
    right: 0;
    top: calc(100% + .45rem);
    display: grid;
    min-width: 10.5rem;
    overflow: hidden;
    padding: .35rem;
    border: 1px solid #e7dff0;
    border-radius: .65rem;
    background: #fff;
    box-shadow: 0 16px 36px rgba(42, 20, 77, .18);
}

.dashboard-export-menu :where(button, a) {
    width: 100%;
    padding: .6rem .7rem;
    border: 0;
    border-radius: .45rem;
    background: transparent;
    color: #332148;
    cursor: pointer;
    font: inherit;
    font-size: .72rem;
    text-align: left;
    text-decoration: none;
}

.dashboard-export-menu :where(button, a):hover {
    background: #f5effb;
    color: #631cd0;
}

.dashboard-recent-title {
    display: flex;
    align-items: center;
    gap: .85rem;
}

.dashboard-recent-title-icon {
    display: grid;
    place-items: center;
    width: 2.4rem;
    height: 2.4rem;
    border-radius: .55rem;
    background: #f2eaff;
    color: #7022d5;
}

.dashboard-recent-title-icon svg {
    width: 1.15rem;
    height: 1.15rem;
    fill: none;
    stroke: currentColor;
    stroke-width: 1.8;
    stroke-linecap: round;
    stroke-linejoin: round;
}

.dashboard-overview-art {
    display: none;
}

.dashboard-order-open {
    width: 3rem;
    text-align: right;
}

.dashboard-order-open a {
    display: grid;
    place-items: center;
    width: 2.45rem;
    height: 2.15rem;
    margin-left: auto;
    border: 1px solid #e6e0ec;
    border-radius: .6rem;
    background: #fff;
    color: #281460;
    box-shadow: 0 4px 12px rgba(42, 20, 77, .05);
    text-decoration: none;
}

.dashboard-order-open a:hover {
    border-color: #cab7e0;
    background: #f8f3fd;
}

.dashboard-order-open svg {
    width: 1rem;
    height: 1rem;
    fill: none;
    stroke: currentColor;
    stroke-width: 1.8;
    stroke-linecap: round;
    stroke-linejoin: round;
}

.dashboard-footer {
    color: #81778f;
    font-size: .68rem;
    text-align: center;
}

.dashboard-card-action {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: .75rem;
    margin-top: .7rem;
    color: currentColor;
    font-size: .7rem;
    font-weight: 600;
}

.dashboard-card-action > span {
    font-size: 1rem !important;
    line-height: 1;
    transition: transform .15s ease;
}

.dashboard-card-link:hover .dashboard-card-action > span {
    transform: translateX(3px);
}

.sr-only {
    position: absolute !important;
    width: 1px !important;
    height: 1px !important;
    overflow: hidden !important;
    clip: rect(0, 0, 0, 0) !important;
    white-space: nowrap !important;
}

@media (min-width: 901px) and (max-width: 1499px) {
    .portal-body .dashboard-primary-grid > .dashboard-stat-card,
    .portal-body .dashboard-secondary-grid > .dashboard-stat-card,
    .portal-body .dashboard-order-overview {
        min-height: 208px;
        height: 208px;
    }
}

@media (min-width: 1500px) {
    .portal-body:has(.dashboard-v2) .portal-topbar {
        min-height: 96px;
        height: 96px;
        align-items: center;
        padding: .9rem 2.6rem;
        background: rgba(255, 255, 255, .96);
        box-shadow: 0 8px 25px rgba(42, 20, 77, .035);
    }

    .portal-body:has(.dashboard-v2) .portal-page-context {
        width: auto;
        max-width: 52rem;
        gap: .35rem !important;
        overflow: visible;
        margin-top: 0;
        padding: 0;
        border: 0;
        border-radius: 0;
        background: transparent;
        box-shadow: none;
    }

    .portal-body:has(.dashboard-v2) .portal-page-context::before {
        display: none;
    }

    .portal-body:has(.dashboard-v2) .portal-page-context::after {
        display: none;
    }

    .portal-body:has(.dashboard-v2) .portal-page-context h1 {
        color: #17102f;
        font-size: 1.48rem;
        font-weight: 650;
        line-height: 1.15;
        letter-spacing: -.035em;
    }

    .portal-body:has(.dashboard-v2) .portal-page-context h1 .dashboard-title-wave {
        display: inline-block !important;
        overflow: visible !important;
        font-size: 1.05em !important;
    }

    .portal-body:has(.dashboard-v2) .portal-topbar-identity > span {
        color: #716a80 !important;
        font-size: .82rem !important;
    }

    .portal-body:has(.dashboard-v2) .portal-topbar-tools {
        align-content: center;
        align-self: center;
    }

    .portal-body:has(.dashboard-v2) .dashboard-export summary {
        min-width: 14.75rem;
        min-height: 2.9rem;
        border-radius: .6rem;
        font-size: .78rem;
    }

    .portal-body:has(.dashboard-v2) .portal-topbar-date {
        align-self: center;
        gap: .55rem;
        color: #716a80;
        font-size: .72rem;
    }

    .portal-body:has(.dashboard-v2) .portal-topbar-calendar {
        display: grid;
        place-items: center;
        width: 1.7rem;
        height: 1.7rem;
        border: 1px solid #e4dfea;
        border-radius: .42rem;
        background: #f8f6fb;
        box-shadow: 0 3px 10px rgba(42, 20, 77, .05);
    }

    .portal-body:has(.dashboard-v2) .portal-topbar-calendar svg {
        width: .95rem;
        height: .95rem;
    }

    .portal-body:has(.dashboard-v2) .portal-content {
        padding: 28px 28px 6px;
    }

    .portal-body .dashboard-v2 {
        gap: 24px;
    }

    .portal-body .dashboard-primary-grid,
    .portal-body .dashboard-secondary-grid {
        gap: 20px;
    }

    .portal-body .dashboard-primary-grid {
        grid-template-columns: repeat(6, minmax(0, 1fr));
    }

    .portal-body .dashboard-primary-grid .dashboard-stat-card {
        min-height: 220px;
        height: 220px;
        padding: 20px;
        border-radius: 1rem;
    }

    .portal-body .dashboard-stat-label {
        max-width: 7.5rem;
        padding-top: .1rem;
        color: #17102f;
        font-size: .78rem;
        font-weight: 600;
        line-height: 1.35;
    }

    .portal-body .dashboard-stat-icon {
        width: 3rem;
        height: 3rem;
    }

    .portal-body .dashboard-card-link > strong {
        margin-top: .5rem;
        font-size: 1.75rem;
    }

    .portal-body .dashboard-money small {
        font-size: .7rem;
    }

    .portal-body .dashboard-stat-note {
        font-size: .7rem;
        line-height: 1.55;
    }

    .portal-body .dashboard-sparkline {
        height: 3rem;
    }

    .portal-body .dashboard-secondary-grid {
        grid-template-columns: repeat(6, minmax(0, 1fr));
    }

    .portal-body .dashboard-secondary-grid > .dashboard-stat-card {
        grid-column: auto;
        min-height: 220px;
        height: 220px;
        padding: 20px;
        border-radius: 1rem;
    }

    .portal-body .dashboard-stat-card-compact .dashboard-stat-icon {
        width: 2.8rem;
        height: 2.8rem;
    }

    .portal-body .dashboard-stat-card-compact .dashboard-card-link > strong {
        margin-top: .6rem;
        font-size: 1.6rem;
    }

    .portal-body .dashboard-order-overview {
        position: relative;
        display: grid;
        grid-template-columns: minmax(7.5rem, .8fr) minmax(11rem, 1.1fr) minmax(15rem, 2fr);
        grid-template-rows: auto minmax(0, 1fr);
        align-items: stretch;
        column-gap: 1rem;
        row-gap: .65rem;
        grid-column: span 3;
        min-height: 220px;
        height: 220px;
        overflow: hidden;
        padding: 1rem 1.35rem;
        border-radius: 1rem;
    }

    .portal-body .dashboard-order-overview > div {
        display: contents;
    }

    .portal-body .dashboard-order-overview > div > p {
        position: relative;
        z-index: 4;
        grid-column: 1 / -1;
        grid-row: 1;
        margin: 0;
        font-size: .78rem;
        font-weight: 600;
    }

    .portal-body .dashboard-donut {
        z-index: 4;
        grid-column: 1;
        grid-row: 2;
        align-self: center;
        justify-self: center;
        width: 6.8rem;
        margin: 0;
    }

    .portal-body .dashboard-donut::before {
        inset: 1.34rem;
    }

    .portal-body .dashboard-order-overview ul {
        position: relative;
        z-index: 4;
        grid-column: 2;
        grid-row: 2;
        align-self: stretch;
        align-content: center;
        width: 100%;
        gap: .7rem;
        padding: .8rem .85rem;
        border: 1px solid rgba(255, 255, 255, .09);
        border-radius: .7rem;
        background: rgba(24, 8, 70, .16);
    }

    .portal-body .dashboard-order-overview li {
        grid-template-columns: .55rem minmax(0, 1fr) 1.6rem;
        font-size: .76rem;
    }

    .portal-body .dashboard-order-overview li strong {
        display: grid;
        place-items: center;
        min-width: 1.6rem;
        min-height: 1.6rem;
        border: 1px solid rgba(255, 255, 255, .11);
        border-radius: .45rem;
        background: rgba(255, 255, 255, .1);
        font-size: .72rem;
        font-variant-numeric: tabular-nums;
    }

    .portal-body .dashboard-overview-art {
        position: absolute;
        z-index: 1;
        right: .6rem;
        bottom: 0;
        display: block;
        width: 50%;
        height: 100%;
        color: #c9a5ff;
        opacity: .38;
        pointer-events: none;
    }

    .portal-body .dashboard-order-overview::before {
        content: "";
        position: absolute;
        z-index: 3;
        inset: .48rem;
        border: 1px dashed rgba(220, 199, 255, .52);
        border-radius: .6rem;
        background:
            linear-gradient(135deg, transparent 45%, rgba(220, 199, 255, .4) 46% 52%, transparent 53%) 0 0 / 1.2rem 1.2rem no-repeat,
            linear-gradient(225deg, transparent 45%, rgba(220, 199, 255, .4) 46% 52%, transparent 53%) 100% 0 / 1.2rem 1.2rem no-repeat,
            linear-gradient(45deg, transparent 45%, rgba(220, 199, 255, .4) 46% 52%, transparent 53%) 0 100% / 1.2rem 1.2rem no-repeat,
            linear-gradient(315deg, transparent 45%, rgba(220, 199, 255, .4) 46% 52%, transparent 53%) 100% 100% / 1.2rem 1.2rem no-repeat;
        pointer-events: none;
    }

    .portal-body .dashboard-order-overview::after {
        display: none;
    }

    .portal-body .dashboard-recent {
        min-height: 190px;
        height: 190px;
        margin-top: 0;
        padding: 16px 18px;
        border-radius: 1rem;
    }

    .portal-body .dashboard-recent > header {
        min-height: 2.4rem;
        margin-bottom: .75rem;
        padding: 0;
    }

    .portal-body .dashboard-recent h2 {
        font-size: 1rem;
        font-weight: 650;
    }

    .portal-body .dashboard-table-wrap {
        border-radius: .65rem;
    }

    .portal-body .dashboard-table-wrap th {
        height: 2.8rem;
        padding: .7rem 1.6rem;
        font-size: .63rem;
    }

    .portal-body .dashboard-table-wrap td {
        height: 3.25rem;
        padding: .75rem 1.6rem;
        font-size: .72rem;
    }

    .portal-body .dashboard-table-wrap th:first-child,
    .portal-body .dashboard-table-wrap td:first-child {
        width: 32%;
    }

    .portal-body .dashboard-table-wrap th:nth-child(2),
    .portal-body .dashboard-table-wrap td:nth-child(2) {
        width: 21%;
    }

    .portal-body .dashboard-table-wrap th:nth-child(3),
    .portal-body .dashboard-table-wrap td:nth-child(3) {
        width: 28%;
    }

    .portal-body .dashboard-footer {
        margin-top: -8px;
    }
}

/* Shared brand artwork: keep the supplied square logo centered in every shell. */
.brand-symbol,
.auth-body .brand-mark,
.portal-body .portal-logo {
    overflow: visible;
    padding: 0 !important;
    border-radius: 0 !important;
    background: transparent !important;
    box-shadow: none !important;
}

.brand-symbol > img,
.auth-body .brand-mark > img,
.portal-body .portal-logo > img {
    display: block;
    width: 100%;
    height: 100%;
    margin: 0;
    border-radius: inherit;
    object-fit: cover;
    object-position: center;
}

/* Keep the Mithila peacock anchored to every portal sidebar, not only dashboard. */
.portal-body .portal-sidebar::after {
    content: "";
    position: absolute;
    z-index: 0;
    left: -8px;
    bottom: -10px;
    width: 255px;
    height: 300px;
    background: url("../img/dashboard/peacock.png") left bottom / contain no-repeat;
    opacity: .82;
    pointer-events: none;
    transform: scaleX(-1);
}

.portal-body .portal-sidebar-head,
.portal-body .portal-nav {
    position: relative;
    z-index: 1;
}

/* Blur only the navigation rows currently crossing the peacock artwork. */
.portal-body .portal-nav :is(a, button).is-over-peacock:not(.active) {
    border-color: rgba(255, 255, 255, .13) !important;
    background: linear-gradient(90deg, rgba(78, 37, 142, .24), rgba(37, 15, 77, .1)) !important;
    -webkit-backdrop-filter: blur(5px) saturate(1.12);
    backdrop-filter: blur(5px) saturate(1.12);
    box-shadow:
        inset 0 1px 0 rgba(255, 255, 255, .1),
        0 4px 12px rgba(18, 7, 45, .045);
}

.portal-body .portal-nav :is(a, button).is-over-peacock:not(.active):hover,
.portal-body .portal-nav :is(a, button).is-over-peacock:not(.active):focus-visible {
    background: linear-gradient(90deg, rgba(94, 44, 166, .34), rgba(46, 18, 92, .18)) !important;
}

@media (min-width: 801px) {
    .portal-body.portal-sidebar-hidden .portal-sidebar::after {
        visibility: hidden;
        opacity: 0;
    }

    .portal-body.portal-sidebar-hidden .portal-nav :is(a, button).is-over-peacock {
        -webkit-backdrop-filter: none;
        backdrop-filter: none;
    }
}

/* Keep the dashboard credit at the viewport edge without overlaying content. */
.portal-main:has(.dashboard-v2) {
    display: flex;
    min-height: 100vh;
    flex-direction: column;
}

.portal-main:has(.dashboard-v2) > .portal-content {
    display: flex;
    flex: 1 0 auto;
    flex-direction: column;
    padding-bottom: 0 !important;
}

.portal-main:has(.dashboard-v2) .dashboard-v2 {
    display: flex;
    flex: 1 0 auto;
    flex-direction: column;
}

.portal-main:has(.dashboard-v2) .dashboard-footer {
    margin-top: auto !important;
    margin-bottom: 0;
}

/* Focused information, order, COD, and return workspaces. */
.portal-page-context:has(.portal-info-menu){grid-template-columns:minmax(0,1fr) auto;align-items:center!important;overflow:visible;padding-right:.55rem!important}
.portal-body:not(:has(.dashboard-v2)) .portal-page-context h1{align-self:center;justify-self:start;margin:0;font-size:clamp(1.05rem,1.15vw,1.18rem);font-weight:650;line-height:1.25;letter-spacing:-.025em}
.portal-page-context .portal-info-menu{position:relative;z-index:2;align-self:center;justify-self:end}
.portal-info-menu>summary{display:grid;width:2.55rem;height:2.55rem;place-items:center;border:1px solid #e2d9e8;border-radius:50%;background:#fff;color:#61308a;font-size:.82rem;font-weight:900;list-style:none;cursor:pointer;box-shadow:0 5px 14px rgba(50,31,60,.05)}
.portal-page-context .portal-info-menu>summary{width:2.1rem;height:2.1rem;border-color:rgba(96,48,133,.14);background:rgba(255,255,255,.72);box-shadow:0 4px 12px rgba(50,31,60,.045)}
.portal-info-menu>summary::-webkit-details-marker{display:none}
.portal-info-menu[open]>summary,.portal-info-menu>summary:hover{border-color:rgba(96,48,133,.35);background:#faf7fc}
.portal-info-menu>div{position:absolute;z-index:225;top:calc(100% + .65rem);right:0;width:min(22rem,calc(100vw - 1.5rem));padding:1rem;border:1px solid #e4dce9;border-radius:.85rem;background:#fff;box-shadow:0 18px 48px rgba(41,21,53,.18)}
.portal-info-menu>div strong{display:block;margin-bottom:.35rem;color:#392442;font-size:.8rem}
.portal-info-menu>div p{margin:0;color:#75677c;font-size:.72rem;line-height:1.55}
.portal-page-context{align-self:center}

.orders-table td>small,.orders-table td>span+small,.cod-payments-table td>small{display:block;margin-top:.25rem;color:#817487;font-size:.66rem}
.order-payment-state{font-weight:750}
.order-details-dialog{width:min(64rem,100%)}
.order-details-body{display:grid;flex:1 1 auto;grid-auto-rows:max-content;align-content:start;gap:1rem}
.order-details-summary{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:.75rem}
.order-details-summary article{display:grid;gap:.28rem;min-height:6rem;padding:.9rem;border:1px solid #e8e0ec;border-radius:.8rem;background:linear-gradient(145deg,#fff,#fbf8fd)}
.order-details-summary article>span,.order-remarks>span{color:#817487;font-size:.65rem;font-weight:800;text-transform:uppercase;letter-spacing:.08em}
.order-details-summary article>strong{font-size:.8rem}.order-details-summary article>small{color:#796d80;font-size:.67rem;line-height:1.45;white-space:normal}
.order-details-items{min-height:max-content;overflow:hidden;border:1px solid #e8e0ec;border-radius:.85rem}.order-details-items h3{margin:0;padding:.85rem 1rem;border-bottom:1px solid #e8e0ec;font-size:.86rem}.order-details-items .table-wrap{overflow-x:auto;overflow-y:visible;border:0;border-radius:0}.order-details-items tbody tr:last-child td{border-bottom:0}.order-details-items td,.order-details-items th{padding:.65rem .8rem}
.order-details-lower{display:grid;grid-template-columns:minmax(0,1fr) minmax(17rem,.48fr);gap:1rem}
.order-remarks{padding:1rem;border:1px solid #e7def0;border-radius:.85rem;background:#fbf8fe}.order-remarks p{margin:.55rem 0 0;color:#5f5266;font-size:.75rem;line-height:1.55;white-space:pre-wrap}
.order-details-totals{display:grid;gap:.45rem;padding:1rem;border-radius:.85rem;background:#392447;color:#fff}.order-details-totals>span{display:flex;justify-content:space-between;gap:1rem;font-size:.7rem}.order-details-totals .grand{margin-top:.25rem;padding-top:.55rem;border-top:1px solid rgba(255,255,255,.2);font-size:.8rem}
.order-details-time{color:#817487;text-align:right}.order-task-dialog,.cod-collect-dialog{width:min(38rem,100%)}.order-task-body,.order-task-form{display:grid;gap:1rem}.order-task-form+.order-task-form{padding-top:1rem;border-top:1px solid #e7dfea}.order-task-complete{display:grid;place-items:center;padding:2rem;text-align:center}.order-task-complete>span{display:grid;width:3rem;height:3rem;place-items:center;margin-bottom:.65rem;border-radius:50%;background:#eaf7ed;color:#278143;font-size:1.2rem}.order-task-complete p{margin:.3rem 0 0;color:#807384;font-size:.72rem}
.order-queued-state{display:inline-flex;min-height:2.55rem;align-items:center;padding:.55rem .72rem;border:1px solid #ead8ad;border-radius:.65rem;background:#fff8e8;color:#7d5919;font-size:.66rem;font-weight:750;white-space:nowrap}
.order-queued-state.is-view-only{border-color:#e2dce5;background:#f7f4f8;color:#726777}
.order-task-complete.is-pending>span{background:#fff3d8;color:#8a641f}
.cod-payments-head>div>small,.orders-panel-head>div>small{display:block;margin-top:.3rem;color:#817487;font-size:.7rem}.cod-otp-form{display:grid;gap:1rem}.cod-otp-form input{font-size:1.25rem!important;letter-spacing:.32em;text-align:center}

.sale-detail-toolbar{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin-bottom:1rem}.sale-detail-toolbar .sale-detail-actions{margin:0}.sale-detail-back{gap:.5rem}
.returns-page-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:1.2rem;margin-bottom:1.2rem}.returns-page-heading h1{margin:.18rem 0;font-size:clamp(1.75rem,3vw,2.45rem);letter-spacing:-.04em}.returns-page-heading p:last-child{margin:.35rem 0 0;color:#7d7082;font-size:.78rem}.returns-new-button{gap:.45rem;box-shadow:0 10px 24px rgba(96,48,133,.2)}
.returns-overview{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem}.returns-overview article{padding:1rem 1.15rem;border:1px solid #e6deea;border-radius:1rem;background:linear-gradient(145deg,#fff,#fbf8fd);box-shadow:0 8px 24px rgba(45,24,57,.05)}.returns-overview span{display:block;color:#817487;font-size:.7rem}.returns-overview strong{display:block;margin-top:.35rem;font-size:1.35rem;letter-spacing:-.03em}.returns-history-panel{padding:0;overflow:hidden}.returns-history-panel>.panel-head{margin:0;padding:1rem 1.2rem;border-bottom:1px solid #e8e0ec}.returns-history-panel>.table-wrap th:first-child,.returns-history-panel>.table-wrap td:first-child{padding-left:1.2rem}.returns-history-panel>.table-wrap th:last-child,.returns-history-panel>.table-wrap td:last-child{padding-right:1.2rem}.returns-reason{max-width:20rem;overflow:hidden;text-overflow:ellipsis}.returns-history-empty{display:grid;place-items:center;padding:2rem}.returns-history-empty>span{font-size:2rem;color:#7640a0}.returns-history-empty p{margin:.3rem 0 0;color:#817487;font-size:.72rem}
.portal-body .portal-modal-dialog.returns-task-dialog{width:min(68rem,100%)}.returns-task-body{display:grid;align-content:start;gap:1rem}.portal-body .returns-task-body.is-awaiting-receipt{padding-bottom:1.45rem}.returns-sale-loader{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:end;gap:.75rem}.returns-task-body .reference-return-form{display:grid;gap:1rem}.returns-modal-empty{display:grid;place-items:center;padding:2rem;border:1px dashed #ded2e5;border-radius:.9rem;background:#fcfafe;text-align:center}.returns-modal-empty>span{font-size:1.75rem;color:#7640a0}.returns-modal-empty p{margin:.35rem 0 0;color:#817487;font-size:.72rem}
.info-disclosure{border:1px solid #e4d9eb;border-radius:.8rem;background:#faf7fc}.info-disclosure>summary{display:flex;align-items:center;gap:.5rem;padding:.75rem .85rem;color:#593071;font-size:.72rem;font-weight:800;list-style:none;cursor:pointer}.info-disclosure>summary::-webkit-details-marker{display:none}.info-disclosure>summary>span{display:grid;width:1.35rem;height:1.35rem;place-items:center;border-radius:50%;background:#673394;color:#fff;font-size:.65rem}.info-disclosure>div{display:grid;gap:.45rem;padding:0 .9rem .9rem}.info-disclosure p{margin:0;color:#6f6175;font-size:.7rem;line-height:1.5}
.returns-info>summary::after{content:"";width:.48rem;height:.48rem;margin-left:auto;border-right:2px solid currentColor;border-bottom:2px solid currentColor;transform:rotate(45deg);transition:transform .16s ease}.returns-info[open]>summary::after{transform:rotate(225deg)}.returns-info>.returns-info-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:.55rem;padding:.1rem .85rem .85rem}.returns-info-grid p{padding:.65rem .75rem;border:1px solid rgba(96,48,133,.08);border-radius:.65rem;background:#fff}
@media(max-width:850px){.order-details-summary{grid-template-columns:repeat(2,minmax(0,1fr))}.order-details-lower{grid-template-columns:1fr}.returns-overview{grid-template-columns:1fr}.returns-page-heading{align-items:stretch;flex-direction:column}.returns-new-button{align-self:flex-start}.sale-detail-toolbar{align-items:stretch;flex-direction:column}.sale-detail-toolbar .sale-detail-actions{justify-content:flex-start}}
@media(max-width:560px){.order-details-summary{grid-template-columns:1fr}.returns-sale-loader{grid-template-columns:1fr}.returns-new-button{width:100%}.returns-info>.returns-info-grid{grid-template-columns:1fr}.return-sale-banner{align-items:flex-start;flex-direction:column}.portal-info-menu>div{position:fixed;top:4.5rem;right:.75rem}.order-details-totals{min-width:0}}
@media(max-width:800px){.portal-body:not(:has(.dashboard-v2)) .portal-page-context h1{font-size:1rem;line-height:1.3}}

/* Premium POS workspace aligned with the KOT management surface system. */
.portal-body .pos-catalog-surface {
    min-width: 0;
    padding: 1rem;
    border: 1px solid rgba(96, 48, 133, .13);
    border-radius: 1.15rem;
    background:
        radial-gradient(circle at 4% 2%, rgba(119, 64, 168, .055), transparent 18rem),
        linear-gradient(145deg, #fff 0%, #fefcff 100%);
    box-shadow: 0 16px 38px rgba(42, 22, 57, .065);
}

.portal-body .pos-catalog-summary {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    margin-bottom: .9rem;
    padding: .15rem .1rem .85rem;
    border-bottom: 1px solid #eee8f2;
}

.portal-body .pos-catalog-summary h2 {
    margin: .18rem 0 0;
    color: #26172f;
    font-size: 1.05rem;
    font-weight: 700;
    letter-spacing: -.02em;
}

.portal-body .pos-catalog-live {
    display: inline-flex;
    align-items: center;
    gap: .42rem;
    padding: .42rem .7rem;
    border: 1px solid #d8cbe2;
    border-radius: 99rem;
    background: #f8f3fb;
    color: #603085;
    font-size: .64rem;
    font-weight: 650;
    white-space: nowrap;
}

.portal-body .pos-catalog-live i {
    display: block;
    width: .45rem;
    height: .45rem;
    border-radius: 50%;
    background: #39a55a;
    box-shadow: 0 0 0 3px rgba(57, 165, 90, .11);
}

.portal-body .pos-catalog-surface .pos-search input {
    border-color: #dfd5e6;
    background: rgba(255, 255, 255, .94);
    box-shadow: 0 8px 24px rgba(49, 26, 69, .05);
}

.portal-body .pos-catalog-surface .pos-category-tabs button {
    border-color: #dfd5e7;
    background: rgba(255, 255, 255, .92);
    box-shadow: 0 5px 14px rgba(52, 28, 70, .035);
}

.portal-body .pos-catalog-surface .pos-category-tabs button.active {
    border-color: #7132ca;
    background: linear-gradient(135deg, #792ee0, #5a1cb7);
    box-shadow: 0 8px 20px rgba(91, 27, 186, .22), 0 0 0 3px rgba(116, 48, 201, .07);
}

.portal-body .pos-order-panel {
    border-color: rgba(96, 48, 133, .15);
    border-radius: 1.15rem;
    background: linear-gradient(145deg, #fff 0%, #fefcff 100%);
    box-shadow: 0 16px 38px rgba(42, 22, 57, .075);
}

.portal-body .pos-order-head {
    padding: 1.15rem 1.25rem;
    background: radial-gradient(circle at 4% 12%, rgba(119, 64, 168, .065), transparent 45%);
}

.portal-body .pos-order-head .eyebrow {
    color: #6f2ccd;
    letter-spacing: .12em;
}

.portal-body .pos-order-head > span {
    padding: .34rem .55rem;
    border-radius: 99rem;
    background: #f3ecf8;
    color: #6a5775;
}

.portal-body .pos-order-empty > span {
    border: 1px solid #e4d8ec;
    background: radial-gradient(circle, #eee4ff 0%, #faf7ff 66%, transparent 67%);
    box-shadow: 0 10px 24px rgba(96, 48, 133, .08);
}

.portal-body .pos-order-checkout {
    border-top-color: #e9e1ed;
    background: linear-gradient(180deg, #fff 0%, #fdfaff 100%);
}

.portal-body .pos-order-checkout :is(.pos-service-select, .pos-reorder-check, .pos-series-field, .pos-more-details-trigger) {
    border-color: #ded2e6;
    background-color: #fff;
    box-shadow: 0 5px 15px rgba(57, 31, 72, .035);
}

@media (max-width: 1199px) {
    .portal-body .pos-catalog-surface { padding: .85rem; }
}

@media (max-width: 600px) {
    .portal-body .pos-catalog-summary {
        align-items: flex-start;
        flex-direction: column;
    }
}

/* Premium form system -----------------------------------------------------
 * Shared by master-data, product, people, purchasing and finance forms.
 */
.portal-body {
    --form-plum: #603085;
    --form-plum-deep: #3b174f;
    --form-copper: #72482e;
    --form-cream: #fffaf7;
    --form-blush: #f3e8e3;
    --form-line: #e7dce8;
    --form-muted: #786b7d;
    --form-shadow: 0 24px 70px rgba(45, 23, 55, .18), 0 4px 16px rgba(96, 48, 133, .08);
}

.portal-body .portal-modal-backdrop {
    background:
        radial-gradient(circle at 18% 12%, rgba(126, 75, 164, .2), transparent 33%),
        linear-gradient(135deg, rgba(31, 16, 40, .72), rgba(55, 34, 50, .62));
    backdrop-filter: blur(12px) saturate(.82);
}

.portal-body .portal-modal-dialog {
    width: min(62rem, 100%);
    border: 1px solid rgba(255, 255, 255, .72);
    border-radius: 1.5rem;
    background: linear-gradient(160deg, #fff 0%, #fffdfc 62%, #fbf6f7 100%);
    box-shadow: var(--form-shadow);
    isolation: isolate;
}

.portal-body .portal-modal-dialog::before {
    position: absolute;
    z-index: 3;
    top: 0;
    left: 1.5rem;
    width: 5.25rem;
    height: 3px;
    border-radius: 0 0 999px 999px;
    background: linear-gradient(90deg, var(--form-plum), #9d6bb9 62%, var(--form-copper));
    box-shadow: 0 2px 12px rgba(96, 48, 133, .28);
    content: "";
}

.portal-body .portal-modal-head {
    position: relative;
    overflow: hidden;
    gap: 1.25rem;
    padding: 1.55rem 1.75rem 1.35rem;
    border-bottom: 1px solid rgba(96, 48, 133, .1);
    background:
        radial-gradient(circle at 90% -15%, rgba(96, 48, 133, .09), transparent 34%),
        linear-gradient(145deg, rgba(255, 255, 255, .99), rgba(250, 245, 249, .97));
}

.portal-body .portal-modal-head::after {
    position: absolute;
    right: 5.5rem;
    bottom: -2.5rem;
    width: 8rem;
    height: 8rem;
    border: 1px solid rgba(114, 72, 46, .08);
    border-radius: 50%;
    content: "";
    pointer-events: none;
}

.portal-body .portal-modal-head .eyebrow {
    display: inline-flex;
    align-items: center;
    gap: .45rem;
    margin-bottom: .48rem;
    color: var(--form-plum);
    font-size: .67rem;
    font-weight: 650;
    letter-spacing: .16em;
}

.portal-body .portal-modal-head .eyebrow::before {
    width: .42rem;
    height: .42rem;
    border-radius: 50%;
    background: linear-gradient(145deg, var(--form-plum), #a97ac1);
    box-shadow: 0 0 0 4px rgba(96, 48, 133, .08);
    content: "";
}

.portal-body .portal-modal-head h2 {
    margin: 0;
    color: #24142e;
    font-size: clamp(1.45rem, 2.8vw, 2rem);
    font-weight: 650;
    letter-spacing: -.04em;
    line-height: 1.15;
}

.portal-body .portal-modal-head > div > p:last-child {
    max-width: 38rem;
    margin: .48rem 0 0;
    color: var(--form-muted);
    font-size: .77rem;
    line-height: 1.55;
}

.portal-body .portal-modal-close {
    display: grid;
    width: 2.75rem;
    height: 2.75rem;
    place-items: center;
    border: 1px solid rgba(96, 48, 133, .12);
    border-radius: .9rem;
    background: rgba(255, 255, 255, .72);
    box-shadow: 0 6px 18px rgba(49, 24, 59, .06);
    color: #3d2948;
    transition: border-color .18s ease, background .18s ease, color .18s ease, transform .18s ease, box-shadow .18s ease;
}

.portal-body .portal-modal-close:hover {
    border-color: rgba(96, 48, 133, .26);
    background: #fff;
    box-shadow: 0 9px 24px rgba(49, 24, 59, .11);
    color: var(--form-plum);
    transform: translateY(-2px);
}

.portal-body .portal-modal-close:focus-visible {
    outline: 3px solid rgba(96, 48, 133, .16);
    outline-offset: 2px;
}

.portal-body .portal-modal-form {
    gap: 1.05rem 1.25rem;
    padding: 1.45rem 1.75rem 0;
    background:
        linear-gradient(180deg, rgba(255, 255, 255, .94), rgba(255, 253, 252, .98)),
        linear-gradient(90deg, rgba(96, 48, 133, .025) 1px, transparent 1px);
    background-size: auto, 2rem 2rem;
    scrollbar-color: rgba(96, 48, 133, .32) transparent;
    scrollbar-width: thin;
}

.portal-body .portal-modal-form::-webkit-scrollbar {
    width: 5px;
}

.portal-body .portal-modal-form::-webkit-scrollbar-thumb {
    border-radius: 999px;
    background: linear-gradient(var(--form-plum), #a97ac1);
}

.portal-body :is(.portal-modal-form, .panel.form-grid, .panel .form-grid, .reference-inline-form, .invoice-payment-form) .field {
    position: relative;
    gap: .47rem;
}

.portal-body :is(.portal-modal-form, .panel.form-grid, .panel .form-grid, .reference-inline-form, .invoice-payment-form) .field > label:not(.check-field),
.portal-body :is(.portal-modal-form, .panel.form-grid, .panel .form-grid, .reference-inline-form, .invoice-payment-form) .field > span {
    color: #4a384f;
    font-size: .72rem !important;
    font-weight: 600 !important;
    letter-spacing: .01em;
}

.portal-body :is(.portal-modal-form, .panel.form-grid, .panel .form-grid, .reference-inline-form, .invoice-payment-form) .field :is(input:not([type="checkbox"]):not([type="radio"]), select, textarea) {
    width: 100%;
    min-height: 3.15rem;
    padding: .78rem .95rem;
    border: 1px solid var(--form-line);
    border-radius: .85rem;
    background-color: rgba(255, 255, 255, .96);
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, .9), 0 4px 14px rgba(58, 32, 68, .035);
    color: #281b30;
    font-size: .79rem;
    line-height: 1.4;
    transition: border-color .18s ease, box-shadow .18s ease, background-color .18s ease, transform .18s ease;
}

.portal-body :is(.portal-modal-form, .panel.form-grid, .panel .form-grid, .reference-inline-form, .invoice-payment-form) .field select {
    appearance: none;
    padding-right: 2.75rem;
    background-image:
        linear-gradient(45deg, transparent 50%, #6d5578 50%),
        linear-gradient(135deg, #6d5578 50%, transparent 50%),
        linear-gradient(to right, rgba(96, 48, 133, .09), rgba(96, 48, 133, .09));
    background-position:
        calc(100% - 1.1rem) calc(50% - 2px),
        calc(100% - .82rem) calc(50% - 2px),
        calc(100% - 2.15rem) 50%;
    background-repeat: no-repeat;
    background-size: .3rem .3rem, .3rem .3rem, 1px 1.4rem;
}

.portal-body :is(.portal-modal-form, .panel.form-grid, .panel .form-grid, .reference-inline-form, .invoice-payment-form) .field textarea {
    min-height: 7.5rem;
    resize: vertical;
}

.portal-body :is(.portal-modal-form, .panel.form-grid, .panel .form-grid, .reference-inline-form, .invoice-payment-form) .field :is(input:not([type="checkbox"]):not([type="radio"]), select, textarea):hover {
    border-color: #d5c4da;
    background-color: #fff;
}

.portal-body :is(.portal-modal-form, .panel.form-grid, .panel .form-grid, .reference-inline-form, .invoice-payment-form) .field :is(input:not([type="checkbox"]):not([type="radio"]), select, textarea):focus {
    border-color: #7c429d;
    outline: 0;
    background-color: #fff;
    box-shadow: 0 0 0 4px rgba(96, 48, 133, .1), 0 12px 24px rgba(96, 48, 133, .08);
}

.portal-body :is(.portal-modal-form, .panel.form-grid, .panel .form-grid, .reference-inline-form, .invoice-payment-form) .field :is(input, textarea)::placeholder {
    color: #aa9fad;
    opacity: 1;
}

.portal-body :is(.portal-modal-form, .panel.form-grid, .panel .form-grid, .reference-inline-form, .invoice-payment-form) .field input[type="date"],
.portal-body :is(.portal-modal-form, .panel.form-grid, .panel .form-grid, .reference-inline-form, .invoice-payment-form) .field input[type="datetime-local"],
.portal-body :is(.portal-modal-form, .panel.form-grid, .panel .form-grid, .reference-inline-form, .invoice-payment-form) .field input[type="time"] {
    color-scheme: light;
}

.portal-body :is(.portal-modal-form, .panel.form-grid, .panel .form-grid, .reference-inline-form, .invoice-payment-form) .field :is(input[type="date"], input[type="datetime-local"], input[type="time"])::-webkit-calendar-picker-indicator {
    padding: .42rem;
    border-radius: .55rem;
    background-color: var(--form-blush);
    cursor: pointer;
    opacity: .72;
}

.portal-body :is(.portal-modal-form, .panel.form-grid, .panel .form-grid, .reference-inline-form, .invoice-payment-form) .check-field {
    min-height: 3.1rem;
    align-items: center;
    gap: .75rem;
    padding: .72rem .85rem;
    border: 1px solid rgba(96, 48, 133, .1);
    border-radius: .85rem;
    background: linear-gradient(135deg, rgba(243, 232, 227, .52), rgba(250, 246, 251, .82));
    color: #493650;
    cursor: pointer;
    transition: border-color .18s ease, background .18s ease, box-shadow .18s ease;
}

.portal-body :is(.portal-modal-form, .panel.form-grid, .panel .form-grid, .reference-inline-form, .invoice-payment-form) .check-field:hover {
    border-color: rgba(96, 48, 133, .22);
    background: linear-gradient(135deg, rgba(243, 232, 227, .72), #fbf7fc);
}

.portal-body :is(.portal-modal-form, .panel.form-grid, .panel .form-grid, .reference-inline-form, .invoice-payment-form) input[type="checkbox"] {
    width: 1.18rem;
    height: 1.18rem;
    flex: 0 0 auto;
    margin: 0;
    border-radius: .35rem;
    accent-color: var(--form-plum);
}

.portal-body :is(.portal-modal-form, .panel.form-grid, .panel .form-grid, .reference-inline-form, .invoice-payment-form) .field small:not(.field-error) {
    color: #897b8d;
    font-size: .67rem;
    line-height: 1.5;
}

.portal-body .portal-modal-actions {
    gap: .75rem;
    margin: .4rem -1.75rem 0;
    padding: 1rem 1.75rem 1.1rem;
    border-top: 1px solid rgba(96, 48, 133, .09);
    background: rgba(255, 253, 252, .9);
    box-shadow: 0 -10px 32px rgba(53, 30, 62, .035);
    backdrop-filter: blur(16px);
}

.portal-body .portal-modal-actions .button {
    min-width: 8.75rem;
    min-height: 3rem;
    border-radius: .85rem;
    font-weight: 600;
    transition: transform .18s ease, box-shadow .18s ease, background .18s ease, border-color .18s ease;
}

.portal-body .portal-modal-actions .button:not(.secondary) {
    border-color: rgba(255, 255, 255, .14);
    background: linear-gradient(135deg, #7134a0 0%, var(--form-plum) 58%, #4e2469 100%);
    box-shadow: 0 11px 24px rgba(96, 48, 133, .22), inset 0 1px 0 rgba(255, 255, 255, .22);
}

.portal-body .portal-modal-actions .button:not(.secondary):hover {
    box-shadow: 0 15px 30px rgba(96, 48, 133, .29), inset 0 1px 0 rgba(255, 255, 255, .22);
    transform: translateY(-2px);
}

.portal-body .portal-modal-actions .button.secondary {
    border-color: #e2d5e5;
    background: rgba(255, 255, 255, .88);
    box-shadow: 0 5px 16px rgba(49, 24, 59, .04);
    color: #54405c;
}

.portal-body .portal-modal-actions .button.secondary:hover {
    border-color: #cdb8d4;
    background: #fff;
    color: var(--form-plum);
    transform: translateY(-1px);
}

/* Full-page forms receive the same visual language as modal forms. */
.portal-body .portal-content > form.panel.form-grid,
.portal-body .portal-content > .panel > form.form-grid,
.portal-body form.panel.form-grid.invoice-payment-form {
    gap: 1.15rem 1.3rem;
    padding: clamp(1.15rem, 2vw, 1.6rem);
    border: 1px solid rgba(96, 48, 133, .11);
    border-radius: 1.25rem;
    background:
        radial-gradient(circle at 100% 0, rgba(96, 48, 133, .055), transparent 25%),
        linear-gradient(145deg, #fff, #fffdfc);
    box-shadow: 0 18px 48px rgba(50, 27, 59, .07);
}

.portal-body .portal-content > form.panel.form-grid > .field.full:last-child {
    justify-items: end;
    margin: .25rem -1.6rem -1.6rem;
    padding: 1rem 1.6rem;
    border-top: 1px solid rgba(96, 48, 133, .09);
    background: linear-gradient(90deg, rgba(243, 232, 227, .36), rgba(250, 246, 251, .56));
}

.portal-body .portal-content > form.panel.form-grid > .field.full:last-child .button {
    min-width: 9rem;
    box-shadow: 0 10px 24px rgba(96, 48, 133, .2);
}

@media (max-width: 800px) {
    .portal-body .portal-modal-dialog::before {
        left: 1rem;
    }

    .portal-body .portal-modal-head {
        padding: 1.25rem 1.15rem 1.05rem;
    }

    .portal-body .portal-modal-form {
        padding: 1.15rem 1.15rem 0;
    }

    .portal-body .portal-modal-actions {
        margin-inline: -1.15rem;
        padding: .9rem 1.15rem 1rem;
    }
}

@media (max-width: 560px) {
    .portal-body .portal-modal {
        place-items: end center;
        padding: .4rem;
    }

    .portal-body .portal-modal-dialog {
        max-height: calc(100dvh - .8rem);
        border-radius: 1.25rem;
    }

    .portal-body .portal-modal-head h2 {
        font-size: 1.4rem;
    }

    .portal-body .portal-modal-head > div > p:last-child {
        font-size: .7rem;
    }

    .portal-body .portal-modal-form {
        grid-template-columns: 1fr;
        gap: .9rem;
    }

    .portal-body .portal-modal-form .field.full {
        grid-column: auto;
    }

    .portal-body .portal-modal-actions {
        display: grid !important;
        grid-template-columns: 1fr 1fr;
    }

    .portal-body .portal-modal-actions .button {
        width: 100%;
        min-width: 0;
    }
}

@media (prefers-reduced-motion: reduce) {
    .portal-body .portal-modal-close,
    .portal-body .portal-modal-actions .button,
    .portal-body :is(.portal-modal-form, .panel.form-grid, .panel .form-grid) .field :is(input, select, textarea) {
        transition: none;
    }
}

/* One sidebar design and width for every authenticated portal screen. */
.portal-body .portal-shell {
    grid-template-columns: 272px minmax(0, 1fr);
}

.portal-body .portal-sidebar {
    padding: 1.5rem .8125rem 1.125rem;
    background: radial-gradient(circle at 5% 0, rgba(126, 44, 229, .5), transparent 18rem), linear-gradient(180deg, #3d1683 0%, #251050 100%);
}

.portal-body .portal-sidebar-head {
    gap: .55rem;
    margin: 0 .1875rem 1.0625rem;
}

.portal-body .portal-brand {
    gap: .75rem !important;
    font-size: .875rem !important;
}

.portal-body .portal-logo {
    width: 2.875rem !important;
    height: 2.875rem !important;
    border-radius: .875rem !important;
    font-size: .78rem !important;
}

.portal-body .portal-rail-toggle {
    width: 2.5rem;
    height: 2.5rem;
    border-radius: .7rem;
}

.portal-body .portal-nav {
    gap: .25rem;
    padding: 0 0 .6rem;
}

.portal-body .portal-nav > a,
.portal-body .portal-group-toggle {
    min-height: 3.25rem !important;
    gap: .7rem;
    padding: .72rem .8rem !important;
    border-radius: .75rem !important;
    font-size: .7rem !important;
    font-weight: 600 !important;
    line-height: 1.3;
}

.portal-body .portal-group-toggle {
    font-size: .68rem !important;
}

.portal-body .portal-nav-icon {
    width: 1.25rem;
    height: 1.25rem;
}

.portal-body .portal-group-chevron {
    width: 1.625rem;
    height: 1.625rem;
    border-radius: .45rem;
}

.portal-body .portal-nav-group {
    gap: .1rem;
    border-radius: .75rem;
}

.portal-body .portal-nav-group:has(.portal-group-toggle[aria-expanded="true"]) {
    padding: .08rem 0 .28rem;
}

.portal-body .portal-submenu {
    gap: .08rem;
    padding: .05rem 0 0 !important;
}

.portal-body .portal-submenu a,
.portal-body .portal-submenu form button {
    min-height: 2.75rem !important;
    padding: .62rem .7rem .62rem 2.7rem !important;
    border-radius: .68rem !important;
    font-size: .7rem !important;
    line-height: 1.3;
}

.portal-body .portal-submenu a:has(.portal-nav-count) {
    display: flex;
    align-items: center;
    gap: .55rem;
}

.portal-body .portal-nav-count {
    display: inline-grid;
    position: relative;
    isolation: isolate;
    min-width: 1.82rem;
    height: 1.82rem;
    margin-left: auto;
    padding: 0 .38rem;
    place-items: center;
    border: 1px solid rgba(255, 255, 255, .58);
    border-radius: .58rem;
    background: linear-gradient(145deg, #9d5cff 0%, #6522c9 76%);
    color: #fff;
    font-size: .74rem;
    font-weight: 850;
    line-height: 1;
    text-shadow: 0 1px 2px rgba(42, 9, 76, .3);
    box-shadow:
        0 0 0 .22rem rgba(129, 53, 222, .18),
        0 .42rem .8rem rgba(47, 9, 89, .3),
        inset 0 .13rem .2rem rgba(255, 255, 255, .45),
        inset 0 -.12rem .18rem rgba(52, 8, 109, .25);
}

.portal-body .portal-nav-count::after {
    content: "✦";
    position: absolute;
    z-index: 2;
    top: -.34rem;
    right: -.26rem;
    color: #fff;
    font-size: .62rem;
    font-weight: 400;
    line-height: 1;
    pointer-events: none;
    text-shadow: 0 0 .18rem #fff, 0 0 .48rem rgba(209, 158, 255, .95);
}

.portal-body .portal-nav-count.is-low-stock {
    border-color: rgba(255, 239, 174, .76);
    background: linear-gradient(145deg, #ffc94f 0%, #f1900b 76%);
    color: #fff;
    text-shadow: 0 1px 2px rgba(116, 61, 0, .34);
    box-shadow:
        0 0 0 .22rem rgba(239, 143, 14, .2),
        0 .42rem .8rem rgba(90, 38, 0, .28),
        inset 0 .13rem .2rem rgba(255, 255, 255, .52),
        inset 0 -.12rem .18rem rgba(166, 76, 0, .22);
}

.portal-body .portal-nav-count.is-low-stock::after {
    color: #fff8ce;
    text-shadow: 0 0 .18rem #fff, 0 0 .5rem #ffb114;
}

.portal-body .portal-nav-count.is-expiry {
    border-color: rgba(255, 187, 239, .76);
    background: linear-gradient(145deg, #ed64c2 0%, #bd268f 76%);
    color: #fff;
    text-shadow: 0 1px 2px rgba(96, 8, 69, .36);
    box-shadow:
        0 0 0 .22rem rgba(208, 44, 155, .18),
        0 .42rem .8rem rgba(78, 4, 55, .3),
        inset 0 .13rem .2rem rgba(255, 255, 255, .48),
        inset 0 -.12rem .18rem rgba(117, 9, 79, .24);
}

.portal-body .portal-nav-count.is-expiry::after {
    color: #ffe9fb;
    text-shadow: 0 0 .18rem #fff, 0 0 .52rem #ff3ed0;
}

.portal-body .portal-nav-count[hidden] { display: none !important; }

@media (max-width: 560px) {
    .portal-body .orders-panel-actions {
        flex-wrap: wrap;
        justify-content: flex-end;
    }

    .portal-body .orders-result-count { margin-right: auto; }
}

@media (max-width: 420px) {
    .portal-body .orders-result-count {
        flex: 0 0 100%;
        width: max-content;
    }

    .portal-body .orders-filter-button {
        flex: 0 0 auto;
        justify-content: center;
    }
}

@media (min-width: 1101px) and (max-width: 1380px) {
    .portal-body .portal-shell {
        grid-template-columns: 252px minmax(0, 1fr);
    }
}

@media (min-width: 1101px) {
    .portal-body.portal-sidebar-hidden .portal-shell {
        grid-template-columns: 64px minmax(0, 1fr);
    }

    .portal-body.portal-sidebar-hidden .portal-sidebar {
        padding: 1rem .5rem;
    }

    .portal-body.portal-sidebar-hidden .portal-nav {
        gap: .25rem;
    }

    .portal-body.portal-sidebar-hidden .portal-nav-group,
    .portal-body.portal-sidebar-hidden .portal-nav-group:has(.portal-group-toggle[aria-expanded="true"]) {
        width: 2.8rem;
        margin-inline: auto;
        padding: 0;
        border: 0;
        border-radius: .72rem;
        background: transparent;
    }

    .portal-body.portal-sidebar-hidden .portal-nav > a,
    .portal-body.portal-sidebar-hidden .portal-group-toggle {
        width: 2.8rem;
        min-height: 2.8rem !important;
        align-items: center;
        justify-content: center !important;
        gap: 0;
        padding: 0 !important;
        border-radius: .72rem !important;
    }

    .portal-body.portal-sidebar-hidden .portal-group-toggle[aria-expanded="true"] {
        border: 1px solid rgba(255, 255, 255, .12);
        background: rgba(255, 255, 255, .065) !important;
        box-shadow: inset 0 1px 0 rgba(255, 255, 255, .06);
    }

    .portal-body.portal-sidebar-hidden .portal-nav-icon {
        width: 1.2rem;
        height: 1.2rem;
        margin: 0;
    }
}

@media (max-width: 800px) {
    .portal-body .portal-shell {
        grid-template-columns: 1fr;
    }

    .portal-body .portal-sidebar {
        width: min(272px, calc(100vw - 1rem));
    }
}

@media (min-width: 801px) and (max-width: 1499px) {
    .portal-body:has(.dashboard-v2) .portal-topbar {
        min-height: 96px;
        height: 96px;
        align-items: center;
        padding: .9rem clamp(1.25rem, 3vw, 2.5rem);
    }

    .portal-body:has(.dashboard-v2) .portal-page-context {
        width: auto;
        max-width: 52rem;
        gap: .3rem !important;
        overflow: visible;
        margin-top: 0;
        padding: 0;
        border: 0;
        border-radius: 0;
        background: transparent;
        box-shadow: none;
    }

    .portal-body:has(.dashboard-v2) .portal-page-context::before,
    .portal-body:has(.dashboard-v2) .portal-page-context::after {
        display: none;
    }

    .portal-body:has(.dashboard-v2) .portal-page-context h1 {
        color: #17102f;
        font-size: 1.35rem;
        font-weight: 650;
        line-height: 1.15;
        letter-spacing: -.035em;
    }

    .portal-body:has(.dashboard-v2) .portal-topbar-identity > span {
        color: #716a80 !important;
        font-size: .78rem !important;
    }

    .portal-body:has(.dashboard-v2) .portal-topbar-tools,
    .portal-body:has(.dashboard-v2) .portal-topbar-date {
        align-self: center;
    }
}

@media (max-width: 1499px) {
    .portal-topbar-tools {
        display: flex;
        align-items: center;
        gap: .75rem;
    }

    .dashboard-export {
        margin-top: 0;
    }
}

@media (max-width: 800px) {
    .dashboard-export summary {
        grid-template-columns: 1rem auto;
        padding: .55rem .7rem;
    }

    .dashboard-export summary > span:not(.dashboard-export-chevron),
    .dashboard-export-chevron {
        display: none;
    }

    .dashboard-recent-title-icon {
        display: none;
    }

    .portal-body .dashboard-recent {
        overflow: hidden;
    }

    .portal-body .dashboard-table-wrap {
        max-width: 100%;
        contain: inline-size;
    }

    .dashboard-footer {
        margin-top: -.25rem;
    }
}

@media (max-width: 640px) {
    .portal-body .dashboard-table-wrap table {
        width: 100%;
        min-width: 0;
        table-layout: fixed;
    }

    .portal-body .dashboard-table-wrap :is(th, td):nth-child(3),
    .portal-body .dashboard-table-wrap :is(th, td):last-child {
        display: none;
    }

    .portal-body .dashboard-table-wrap :is(th, td) {
        overflow: hidden;
        padding-inline: .55rem;
        text-overflow: ellipsis;
        white-space: nowrap;
    }

    .portal-body .dashboard-table-wrap :is(th, td):first-child {
        width: 46%;
    }
}

/* Locked ornament extracted from the approved Orders overview reference. */
@media (min-width: 1500px) {
    .portal-body .dashboard-overview-art {
        display: none !important;
    }

    .portal-body .dashboard-order-overview::after {
        content: "";
        position: absolute;
        z-index: 1;
        inset: 0 .35rem 0 auto;
        display: block;
        width: 50%;
        background: url("data:image/png;base64,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") right center / 100% 100% no-repeat;
        opacity: .78;
        pointer-events: none;
        user-select: none;
    }
}

/* Premium vendor editor -------------------------------------------------- */
.portal-body .vendor-modal-dialog {
    width: min(68rem, 100%);
}

.portal-body .vendor-editor {
    display: grid;
    grid-template-columns: 1fr;
    gap: 1rem;
}

.portal-body .vendor-editor .form-validation-summary,
.portal-body .vendor-editor > .portal-modal-actions,
.portal-body .vendor-editor > .field.full:last-child {
    grid-column: 1 / -1;
}

.portal-body .vendor-form-section {
    gap: .9rem;
    padding: 1rem;
    border: 1px solid rgba(96, 48, 133, .11);
    border-radius: 1rem;
    background:
        radial-gradient(circle at 100% 0, rgba(113, 52, 160, .055), transparent 30%),
        linear-gradient(145deg, rgba(255, 255, 255, .96), rgba(252, 248, 253, .76));
    box-shadow: 0 9px 26px rgba(50, 26, 62, .045), inset 0 1px 0 #fff;
}

.portal-body .vendor-form-section-head {
    display: grid;
    grid-template-columns: 2.15rem minmax(0, 1fr);
    align-items: center;
    gap: .7rem;
    padding-bottom: .8rem;
    border-bottom: 1px solid rgba(96, 48, 133, .09);
}

.portal-body .vendor-section-index {
    display: grid;
    width: 2.15rem;
    height: 2.15rem;
    place-items: center;
    border: 1px solid rgba(110, 48, 154, .17);
    border-radius: .66rem;
    background: linear-gradient(145deg, #f8effc, #fff);
    box-shadow: 0 6px 15px rgba(76, 34, 100, .07);
    color: #6c3292;
    font-size: .62rem;
    font-weight: 750;
    letter-spacing: .04em;
}

.portal-body .vendor-form-section-head h3 {
    margin: 0;
    color: #2f1d38;
    font-size: .88rem;
    font-weight: 650;
    letter-spacing: -.015em;
}

.portal-body .vendor-form-section-head p {
    margin: .14rem 0 0;
    color: #847788;
    font-size: .65rem;
    font-weight: 450;
    line-height: 1.45;
}

.portal-body .vendor-fields-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: .85rem 1rem;
}

.portal-body .vendor-commercial-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
}

.portal-body .vendor-field-wide {
    grid-column: 1 / -1;
}

.portal-body .vendor-editor .field > label > span {
    margin-left: .12rem;
    color: #8a39b7;
    font-size: .76rem;
}

.portal-body .vendor-editor textarea {
    min-height: 5.25rem !important;
}

.portal-body .vendor-money-control {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr);
    align-items: center;
    min-height: 3.15rem;
    overflow: hidden;
    border: 1px solid var(--form-line);
    border-radius: .85rem;
    background: rgba(255, 255, 255, .96);
    box-shadow: inset 0 1px 0 #fff, 0 4px 14px rgba(58, 32, 68, .035);
    transition: border-color .18s ease, box-shadow .18s ease, background .18s ease;
}

.portal-body .vendor-money-control:hover {
    border-color: #d5c4da;
    background: #fff;
}

.portal-body .vendor-money-control:focus-within {
    border-color: #7c429d;
    background: #fff;
    box-shadow: 0 0 0 4px rgba(96, 48, 133, .1), 0 12px 24px rgba(96, 48, 133, .08);
}

.portal-body .vendor-money-control > span {
    display: grid;
    align-self: stretch;
    place-items: center;
    padding: 0 .82rem;
    border-right: 1px solid rgba(96, 48, 133, .1);
    background: linear-gradient(145deg, #f7eef8, #fbf8fc);
    color: #663188;
    font-size: .62rem !important;
    font-weight: 750 !important;
    letter-spacing: .055em;
}

.portal-body .vendor-money-control input {
    min-height: 3.05rem !important;
    padding-left: .85rem !important;
    border: 0 !important;
    border-radius: 0 !important;
    background: transparent !important;
    box-shadow: none !important;
    outline: 0 !important;
}

.portal-body .vendor-editor-page {
    display: grid !important;
    grid-template-columns: 1fr !important;
}

@media (max-width: 700px) {
    .portal-body .vendor-form-section {
        padding: .82rem;
    }

    .portal-body .vendor-fields-grid,
    .portal-body .vendor-commercial-grid {
        grid-template-columns: 1fr;
    }

    .portal-body .vendor-field-wide {
        grid-column: auto;
    }
}

/* Keep the guided POS layout authoritative over the legacy checkout rules above. */
.portal-body .pos-order-checkout {
    display: block;
    padding: 0;
    border-top: 0;
    background: #fff;
}

.portal-body .pos-order-checkout .pos-step-panel { padding: 0 1rem .9rem; }
.portal-body .pos-order-checkout .pos-step-intro { padding-inline: 0; }
.portal-body .pos-order-checkout .pos-service-select {
    width: 100%;
    min-height: 3.15rem;
    margin-top: .15rem;
    padding-inline: .9rem 2.2rem;
    border-color: rgba(96, 48, 133, .23);
    border-radius: .85rem;
    background-color: #fff;
    color: #281732;
    font-size: .76rem;
    font-weight: 650;
    box-shadow: 0 8px 20px rgba(56, 31, 72, .05);
}

.portal-body .pos-step-panel[hidden] { display: none !important; }

/* Preserve the extracted reference ornament's native proportions and line weight. */
@media (min-width: 1500px) {
    .portal-body .dashboard-order-overview::after {
        background-size: auto 100%;
        opacity: .62;
    }
}

/* Sale detail workspace: intentionally scoped away from the shared shell. */
.sale-detail-page {
    width: 100%;
}

.auto-kot-source {
    display: none !important;
}

@media screen {
    .sale-estimate-print-source,
    #thermal-print-root {
        display: none !important;
    }
}

.sale-detail-page .print-only {
    display: none !important;
}

.sale-detail-actions {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: .65rem;
    margin-bottom: 1rem;
}

.sale-detail-actions form {
    margin: 0;
}

.sale-detail-actions .sale-action-button {
    gap: .5rem;
    min-height: 2.75rem;
    padding-inline: 1rem;
    white-space: nowrap;
}

.sale-detail-actions .sale-action-button svg {
    width: 1rem;
    height: 1rem;
    fill: none;
    stroke: currentColor;
    stroke-width: 1.7;
    stroke-linecap: round;
    stroke-linejoin: round;
}

.portal-body .sale-detail-page .sale-ticket {
    width: 100%;
    max-width: none;
    margin: 0;
    overflow: hidden;
    border: 1px solid rgba(96, 48, 133, .13);
    border-radius: 1rem;
    background: #fff;
    box-shadow: 0 16px 45px rgba(47, 24, 65, .075);
}

.sale-ticket-overview {
    display: grid;
    grid-template-columns: minmax(17rem, .95fr) minmax(24rem, 1.05fr);
    gap: 1.25rem;
    padding: 1.5rem;
}

.sale-ticket-brand {
    display: flex;
    min-width: 0;
    flex-direction: column;
    justify-content: center;
    padding: .4rem .5rem;
}

.sale-ticket-kicker {
    margin-bottom: .55rem;
    color: #72482e;
    font-size: .66rem;
    font-weight: 650;
    letter-spacing: .13em;
    text-transform: uppercase;
}

.sale-ticket-brand h2 {
    margin: 0;
    color: #301843;
    font-size: clamp(1.35rem, 2.2vw, 1.8rem);
    font-weight: 650;
    letter-spacing: -.04em;
    line-height: 1.15;
}

.sale-ticket-brand-rule {
    width: 3.4rem;
    height: 2px;
    margin: .85rem 0 1rem;
    border-radius: 99rem;
    background: linear-gradient(90deg, #603085 65%, #d9c2e7 65%);
}

.sale-ticket-brand p {
    display: flex;
    align-items: center;
    gap: .45rem;
    margin: 0 0 .45rem;
    color: #62536e;
    font-size: .78rem;
}

.sale-ticket-brand p svg {
    width: 1rem;
    height: 1rem;
    flex: 0 0 auto;
    fill: none;
    stroke: #603085;
    stroke-width: 1.8;
    stroke-linecap: round;
    stroke-linejoin: round;
}

.sale-ticket-number {
    display: grid;
    gap: .2rem;
    margin-top: 1rem;
}

.sale-ticket-number span {
    color: #72482e;
    font-size: .67rem;
    font-weight: 650;
    letter-spacing: .08em;
    text-transform: uppercase;
}

.sale-ticket-number strong {
    color: #603085;
    font-size: 1rem;
    font-weight: 650;
}

.portal-body .sale-detail-page .sale-ticket-hero {
    position: relative;
    display: grid;
    min-height: 13rem;
    align-content: center;
    justify-items: center;
    overflow: hidden;
    padding: 1.35rem 1.75rem;
    border: 1px solid rgba(114, 72, 46, .18);
    border-radius: .9rem;
    background:
        radial-gradient(circle at 92% 8%, rgba(96, 48, 133, .08), transparent 8rem),
        linear-gradient(145deg, #fffdfc, #f8eeea);
    color: #301843;
    text-align: center;
}

.portal-body .sale-detail-page .sale-ticket-hero::before,
.portal-body .sale-detail-page .sale-ticket-hero::after {
    content: "";
    position: absolute;
    width: 2rem;
    height: 2rem;
    border-color: rgba(96, 48, 133, .2);
    pointer-events: none;
}

.portal-body .sale-detail-page .sale-ticket-hero::before {
    inset: .6rem auto auto .6rem;
    border-top: 1px solid;
    border-left: 1px solid;
    border-radius: .45rem 0 0;
}

.portal-body .sale-detail-page .sale-ticket-hero::after {
    inset: auto .6rem .6rem auto;
    border-right: 1px solid;
    border-bottom: 1px solid;
    border-radius: 0 0 .45rem;
}

.portal-body .sale-detail-page .sale-ticket-hero p {
    z-index: 1;
    margin: 0 0 .4rem;
    color: #603085;
    font-size: .7rem;
    font-weight: 650;
    letter-spacing: .065em;
}

.portal-body .sale-detail-page .sale-ticket-hero > strong {
    z-index: 1;
    color: #6020bd;
    font-size: clamp(4rem, 7vw, 5.4rem);
    font-weight: 650;
    line-height: .95;
    letter-spacing: .08em;
}

.portal-body .sale-detail-page .sale-ticket-hero > strong.is-name {
    padding: .65rem 0;
    font-size: clamp(1.8rem, 4vw, 3.2rem);
    letter-spacing: -.035em;
}

.portal-body .sale-detail-page .sale-ticket-hero span {
    z-index: 1;
    max-width: 28rem;
    margin: .8rem auto 0;
    padding-top: .7rem;
    border-top: 1px solid rgba(96, 48, 133, .16);
    color: #675873;
    font-size: .74rem;
    line-height: 1.5;
}

.portal-body .sale-detail-page .sale-ticket-meta {
    grid-template-columns: repeat(4, minmax(0, 1fr));
    margin: 0 1.5rem;
    overflow: hidden;
    border: 1px solid rgba(96, 48, 133, .12);
    border-radius: .8rem;
    background: #fdfbfe;
}

.portal-body .sale-detail-page .sale-ticket-meta > div {
    display: grid;
    grid-template-columns: 2.15rem minmax(0, 1fr);
    grid-template-rows: auto auto;
    gap: .08rem .65rem;
    align-content: center;
    min-width: 0;
    padding: .8rem .9rem;
}

.sale-ticket-meta .sale-meta-icon {
    display: grid;
    grid-row: 1 / 3;
    place-items: center;
    width: 2.15rem;
    height: 2.15rem;
    border-radius: .65rem;
    background: #f3ebf8;
    color: #603085;
}

.sale-ticket-meta .sale-meta-icon svg {
    width: 1.1rem;
    height: 1.1rem;
    fill: none;
    stroke: currentColor;
    stroke-width: 1.65;
    stroke-linecap: round;
    stroke-linejoin: round;
}

.portal-body .sale-detail-page .sale-ticket-meta > div > span:not(.sale-meta-icon),
.portal-body .sale-detail-page .sale-ticket-meta strong {
    grid-column: 2;
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.portal-body .sale-detail-page .sale-ticket-meta > div > span:not(.sale-meta-icon) {
    color: #84788d;
    font-size: .65rem;
}

.portal-body .sale-detail-page .sale-ticket-meta strong {
    color: #27163a;
    font-size: .75rem;
    font-weight: 650;
}

.portal-body .sale-detail-page .sale-ticket .table-wrap {
    padding: 1rem 1.5rem 0;
}

.portal-body .sale-detail-page .sale-ticket table {
    table-layout: fixed;
}

.portal-body .sale-detail-page .sale-ticket th {
    padding: .65rem .85rem;
    border-bottom: 0;
    background: #f7f2f9;
    color: #603085;
    font-size: .62rem;
    font-weight: 650;
}

.portal-body .sale-detail-page .sale-ticket th:first-child {
    width: 34%;
    border-radius: .55rem 0 0 .55rem;
}

.portal-body .sale-detail-page .sale-ticket th:last-child {
    border-radius: 0 .55rem .55rem 0;
}

.portal-body .sale-detail-page .sale-ticket td {
    padding: .75rem .85rem;
    color: #332342;
    font-size: .76rem;
}

.portal-body .sale-detail-page .sale-ticket th:not(:first-child),
.portal-body .sale-detail-page .sale-ticket td:not(:first-child) {
    text-align: right;
}

.sale-ticket-lower {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(18rem, 23rem);
    gap: 2rem;
    align-items: center;
    padding: .75rem 1.5rem 1.25rem;
}

.sale-ticket-thanks {
    display: flex;
    align-items: center;
    gap: .8rem;
    color: #65566e;
}

.sale-ticket-thanks > svg {
    width: 1.65rem;
    height: 1.65rem;
    flex: 0 0 auto;
    fill: none;
    stroke: #8e58b1;
    stroke-width: 1.55;
    stroke-linecap: round;
    stroke-linejoin: round;
}

.sale-ticket-thanks p {
    display: grid;
    gap: .22rem;
    margin: 0;
    font-size: .72rem;
}

.sale-ticket-thanks strong {
    color: #3d294d;
    font-weight: 550;
}

.sale-ticket-thanks span {
    color: #84788d;
}

.portal-body .sale-detail-page .sale-ticket-totals {
    width: 100%;
    padding: 0;
}

.portal-body .sale-detail-page .sale-ticket-totals > span {
    font-size: .72rem;
}

.portal-body .sale-detail-page .sale-ticket-totals > span > strong {
    display: inline-flex;
    align-items: baseline;
    gap: .25rem;
    flex-shrink: 0;
    white-space: nowrap;
    font-variant-numeric: tabular-nums;
}

.portal-body .sale-detail-page .sale-ticket-totals .grand {
    margin-top: .15rem;
    padding-top: .65rem;
}

.portal-body .sale-detail-page .sale-ticket-totals .grand strong {
    font-size: 1rem;
}

.portal-body .sale-detail-page .sale-ticket-action {
    padding: .85rem 1.5rem;
    border-top-color: rgba(114, 72, 46, .12);
    background: linear-gradient(90deg, #fffaf7, #f8f1fb);
}

.portal-body .sale-detail-page .sale-ticket-action p {
    color: #655a70;
}

@media (max-width: 1100px) {
    .sale-ticket-overview {
        grid-template-columns: minmax(14rem, .8fr) minmax(21rem, 1.2fr);
    }

    .portal-body .sale-detail-page .sale-ticket-meta {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .portal-body .sale-detail-page .sale-ticket-meta > div:nth-child(2) {
        border-right: 0;
    }

    .portal-body .sale-detail-page .sale-ticket-meta > div:nth-child(-n+2) {
        border-bottom: 1px solid rgba(96, 48, 133, .1);
    }
}

@media (max-width: 760px) {
    .sale-detail-actions {
        display: grid;
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .sale-detail-actions form,
    .sale-detail-actions .sale-action-button {
        width: 100%;
    }

    .sale-ticket-overview {
        grid-template-columns: 1fr;
        padding: 1rem;
    }

    .sale-ticket-brand {
        padding: .25rem;
    }

    .portal-body .sale-detail-page .sale-ticket-hero {
        min-height: 11rem;
    }

    .sale-ticket-lower {
        grid-template-columns: 1fr;
        gap: 1.25rem;
    }
}

@media (max-width: 520px) {
    .sale-detail-actions {
        grid-template-columns: 1fr;
    }

    .portal-body .sale-detail-page .sale-ticket-meta {
        grid-template-columns: 1fr;
        margin-inline: 1rem;
    }

    .portal-body .sale-detail-page .sale-ticket-meta > div {
        border-right: 0;
        border-bottom: 1px solid rgba(96, 48, 133, .1);
    }

    .portal-body .sale-detail-page .sale-ticket-meta > div:nth-child(2) {
        border-right: 0;
    }

    .portal-body .sale-detail-page .sale-ticket .table-wrap {
        padding-inline: 1rem;
    }

    .sale-ticket-lower {
        padding-inline: 1rem;
    }
}

@media print {
    .sale-detail-page .print-only {
        display: block !important;
    }

    .sale-detail-page .sale-meta-icon {
        display: none !important;
    }

    .portal-body .sale-detail-page .sale-ticket-meta > div {
        display: block !important;
    }

    .portal-body .sale-detail-page .sale-ticket-meta > div > span:not(.sale-meta-icon),
    .portal-body .sale-detail-page .sale-ticket-meta strong {
        grid-column: auto;
        white-space: normal;
    }

    .sale-ticket-overview,
    .sale-ticket-lower {
        display: block !important;
        padding: 0 !important;
    }
}

/* Top-bar profile menu replaces the former sidebar session controls. */
.portal-body .portal-topbar-tools {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: .75rem;
    overflow: visible;
}

.portal-fullscreen-toggle {
    display: grid;
    place-items: center;
    flex: 0 0 auto;
    width: 2.55rem;
    height: 2.55rem;
    padding: 0;
    border: 1px solid #e4dfea;
    border-radius: .68rem;
    background: linear-gradient(145deg, #fff, #f8f5fc);
    color: #5f23a8;
    box-shadow: 0 6px 18px rgba(52, 26, 80, .07);
    cursor: pointer;
    transition: border-color .16s ease, box-shadow .16s ease, color .16s ease, transform .16s ease;
}

.portal-fullscreen-workspace {
    position: fixed;
    z-index: 100000;
    inset: 0;
    display: grid;
    background: transparent;
    overflow: hidden;
}

.portal-fullscreen-frame {
    width: 100%;
    height: 100%;
    border: 0;
    background: transparent;
    opacity: 0;
    will-change: opacity;
    transition: opacity .16s ease-out;
}

.portal-fullscreen-workspace.is-loaded .portal-fullscreen-frame {
    opacity: 1;
}

.portal-fullscreen-loading {
    position: absolute;
    z-index: 1;
    inset: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: .75rem;
    visibility: hidden;
    background: rgba(248, 245, 250, .96);
    color: #603085;
    font-size: .75rem;
    font-weight: 600;
    letter-spacing: .02em;
    opacity: 0;
    animation: portal-fullscreen-loader-reveal .16s ease .4s forwards;
}

.portal-fullscreen-loading span {
    width: 1.15rem;
    height: 1.15rem;
    border: 2px solid rgba(96, 48, 133, .2);
    border-top-color: #603085;
    border-radius: 50%;
    animation: portal-fullscreen-spin .65s linear infinite;
}

.portal-fullscreen-workspace.is-loaded .portal-fullscreen-loading {
    visibility: hidden;
    opacity: 0;
    animation: none;
}

.portal-fullscreen-workspace-open {
    overflow: hidden;
}

@keyframes portal-fullscreen-spin {
    to { transform: rotate(360deg); }
}

@keyframes portal-fullscreen-loader-reveal {
    to {
        visibility: visible;
        opacity: 1;
    }
}

.portal-fullscreen-toggle[hidden] {
    display: none;
}

.portal-fullscreen-toggle:hover {
    border-color: #cbb8df;
    color: #7227d8;
    box-shadow: 0 9px 22px rgba(81, 31, 137, .13);
    transform: translateY(-1px);
}

.portal-fullscreen-toggle:focus-visible {
    outline: 3px solid rgba(114, 39, 216, .22);
    outline-offset: 2px;
}

.portal-fullscreen-toggle:disabled {
    cursor: wait;
    opacity: .6;
}

.portal-fullscreen-toggle svg {
    width: 1.08rem;
    height: 1.08rem;
    fill: none;
    stroke: currentColor;
    stroke-width: 1.8;
    stroke-linecap: round;
    stroke-linejoin: round;
}

.portal-fullscreen-exit,
.portal-fullscreen-toggle[aria-pressed="true"] .portal-fullscreen-enter {
    display: none;
}

.portal-fullscreen-toggle[aria-pressed="true"] .portal-fullscreen-exit {
    display: block;
}

.portal-fullscreen-toggle[aria-pressed="true"] {
    border-color: #b99add;
    background: #f2eaff;
    color: #6820c4;
}

.portal-profile-menu {
    position: relative;
    flex: 0 0 auto;
}

.portal-profile-menu > summary {
    display: flex;
    align-items: center;
    gap: .3rem;
    min-width: auto;
    min-height: auto;
    padding: .1rem;
    border: 0;
    border-radius: 50%;
    background: transparent;
    box-shadow: none;
    cursor: pointer;
    list-style: none;
    transition: border-color .16s ease, box-shadow .16s ease, transform .16s ease;
}

.portal-profile-menu > summary::-webkit-details-marker {
    display: none;
}

.portal-profile-menu > summary:hover,
.portal-profile-menu[open] > summary {
    border-color: transparent;
    box-shadow: none;
    transform: none;
}

.portal-profile-menu > summary:focus-visible {
    outline: 3px solid rgba(96, 48, 133, .14);
    outline-offset: 2px;
}

.portal-profile-trigger-avatar,
.portal-profile-identity > img,
.portal-profile-identity > .is-initials {
    display: grid;
    place-items: center;
    overflow: hidden;
    border-radius: 50%;
    object-fit: cover;
}

.portal-profile-trigger-avatar {
    width: 3rem;
    height: 3rem;
    flex: 0 0 auto;
    box-shadow: 0 3px 12px rgba(42, 22, 57, .11);
    transition: box-shadow .16s ease, transform .16s ease;
}

.portal-profile-menu > summary:hover .portal-profile-trigger-avatar,
.portal-profile-menu[open] .portal-profile-trigger-avatar {
    box-shadow: 0 0 0 3px rgba(96, 48, 133, .08), 0 5px 15px rgba(42, 22, 57, .13);
    transform: translateY(-1px);
}

.portal-profile-trigger-avatar.is-initials,
.portal-profile-identity > .is-initials {
    background: linear-gradient(145deg, #603085, #7d49a3);
    color: #fff;
    font-size: .65rem;
    font-weight: 650;
    letter-spacing: .02em;
}

.portal-profile-chevron {
    width: .38rem;
    height: .38rem;
    margin: -.18rem .12rem 0 0;
    border-right: 1px solid rgba(75, 55, 88, .52);
    border-bottom: 1px solid rgba(75, 55, 88, .52);
    transform: rotate(45deg);
    transition: transform .16s ease;
}

.portal-profile-menu[open] .portal-profile-chevron {
    margin-top: .2rem;
    transform: rotate(225deg);
}

.portal-profile-dropdown {
    position: absolute;
    z-index: 80;
    top: calc(100% + .4rem);
    right: 0;
    width: 13.75rem;
    overflow: hidden;
    border: 1px solid rgba(96, 48, 133, .08);
    border-radius: .72rem;
    background: rgba(255, 255, 255, .98);
    box-shadow: 0 12px 30px rgba(44, 23, 59, .11);
}

.portal-profile-identity {
    display: grid;
    grid-template-columns: 2.3rem minmax(0, 1fr);
    align-items: center;
    gap: .6rem;
    padding: .72rem;
    border-bottom: 1px solid rgba(96, 48, 133, .07);
    background: #fff;
}

.portal-profile-identity > img,
.portal-profile-identity > .is-initials {
    width: 2.3rem;
    height: 2.3rem;
}

.portal-profile-identity > span:last-child {
    display: grid;
    min-width: 0;
    gap: .1rem;
}

.portal-profile-identity strong,
.portal-profile-identity small {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.portal-profile-identity strong {
    color: #261435;
    font-size: .75rem;
    font-weight: 650;
}

.portal-profile-identity small {
    color: #84758e;
    font-size: .62rem;
}

.portal-profile-actions {
    display: grid;
    gap: .1rem;
    padding: .35rem;
}

.portal-body .portal-modal-dialog.portal-password-dialog { width: min(30rem, 100%); }
.portal-body .portal-password-dialog .portal-modal-form { grid-template-columns: 1fr; }
.portal-body .portal-password-dialog .portal-password-error { color: #a33150; font-size: .72rem; }

.portal-profile-actions form {
    margin: 0;
}

.portal-profile-actions a,
.portal-profile-actions button {
    display: flex;
    width: 100%;
    min-height: 2.3rem;
    align-items: center;
    gap: .65rem;
    padding: .52rem .62rem;
    border: 0;
    border-radius: .5rem;
    background: transparent;
    color: #392548;
    font: inherit;
    font-size: .67rem;
    font-weight: 500;
    text-align: left;
    text-decoration: none;
    cursor: pointer;
}

.portal-profile-actions a:hover,
.portal-profile-actions button:hover {
    background: #f5eef8;
    color: #603085;
}

.portal-profile-actions button {
    color: #8d3442;
}

.portal-profile-actions button:hover {
    background: #fff0f2;
    color: #a32639;
}

.portal-profile-actions svg {
    width: 1rem;
    height: 1rem;
    flex: 0 0 auto;
    fill: none;
    stroke: currentColor;
    stroke-width: 1.7;
    stroke-linecap: round;
    stroke-linejoin: round;
}

@media (max-width: 800px) {
    .portal-body .portal-topbar-tools {
        gap: .45rem;
    }

    .portal-profile-menu > summary {
        min-width: auto;
        min-height: auto;
        justify-content: center;
        padding: .08rem;
    }

    .portal-profile-trigger-avatar {
        width: 2.65rem;
        height: 2.65rem;
    }

    .portal-profile-chevron {
        display: none;
    }
}

@media (max-width: 420px) {
    .portal-profile-dropdown {
        position: fixed;
        top: 4.6rem;
        right: .7rem;
        width: min(13.75rem, calc(100vw - 1.4rem));
    }
}

/* Online order alert */
.portal-body input.validated-invalid,
.public-body input.validated-invalid,
.auth-body input.validated-invalid,
.home-body input.validated-invalid {
    border-color:#c43b53!important;
    box-shadow:0 0 0 3px rgba(196,59,83,.1)!important;
}

.portal-body input.validated-valid:focus,
.public-body input.validated-valid:focus,
.auth-body input.validated-valid:focus,
.home-body input.validated-valid:focus {
    border-color:#4b9b6c!important;
    box-shadow:0 0 0 3px rgba(75,155,108,.1)!important;
}

.portal-order-alert {
    position: fixed;
    z-index: 250;
    top: 1.35rem;
    right: 1.35rem;
    display: grid;
    grid-template-columns: 3rem minmax(0, 1fr) auto 2rem;
    align-items: center;
    gap: .85rem;
    width: min(31rem, calc(100vw - 2rem));
    padding: .9rem .9rem .9rem 1rem;
    border: 1px solid rgba(96, 48, 133, .17);
    border-radius: 1rem;
    background: linear-gradient(135deg, rgba(255, 255, 255, .99), rgba(250, 245, 251, .98));
    box-shadow: 0 22px 55px rgba(42, 22, 57, .2), 0 4px 14px rgba(96, 48, 133, .1);
    opacity: 0;
    transform: translateY(-1rem) scale(.98);
    transition: opacity .18s ease, transform .18s ease;
}

.portal-order-alert.is-visible {
    opacity: 1;
    transform: translateY(0) scale(1);
}

.portal-order-alert.is-leaving {
    opacity: 0;
    transform: translateY(-.55rem) scale(.985);
}

.portal-order-alert-icon {
    display: grid;
    width: 3rem;
    height: 3rem;
    place-items: center;
    border-radius: .8rem;
    background: linear-gradient(145deg, #603085, #72482e);
    color: #fff;
    box-shadow: 0 9px 20px rgba(96, 48, 133, .2);
}

.portal-order-alert-icon svg {
    width: 1.55rem;
    height: 1.55rem;
    fill: none;
    stroke: currentColor;
    stroke-width: 1.75;
    stroke-linecap: round;
    stroke-linejoin: round;
}

.portal-order-alert-copy {
    display: grid;
    min-width: 0;
    gap: .08rem;
}

.portal-order-alert-label {
    color: #72482e;
    font-size: .58rem;
    font-weight: 700;
    letter-spacing: .13em;
    text-transform: uppercase;
}

.portal-order-alert-copy strong {
    color: #281732;
    font-size: .89rem;
    font-weight: 700;
}

.portal-order-alert-copy small {
    overflow: hidden;
    color: #75677e;
    font-size: .66rem;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.portal-order-alert-action {
    display: inline-flex;
    min-height: 2.35rem;
    align-items: center;
    justify-content: center;
    padding: .55rem .8rem;
    border-radius: .62rem;
    background: #603085;
    color: #fff;
    font-size: .65rem;
    font-weight: 650;
    text-decoration: none;
    box-shadow: 0 8px 18px rgba(96, 48, 133, .17);
}

.portal-order-alert-action:hover {
    background: #50236f;
    color: #fff;
}

.portal-order-alert-close {
    display: grid;
    width: 2rem;
    height: 2rem;
    place-items: center;
    padding: 0;
    border: 0;
    border-radius: .55rem;
    background: transparent;
    color: #8c7f94;
    font: inherit;
    font-size: 1.1rem;
    cursor: pointer;
}

.portal-order-alert-close:hover {
    background: #f2e8f4;
    color: #603085;
}

@media (max-width: 640px) {
    .portal-order-alert {
        top: .8rem;
        right: .75rem;
        grid-template-columns: 2.65rem minmax(0, 1fr) 1.8rem;
        gap: .65rem;
        width: calc(100vw - 1.5rem);
        padding: .75rem;
    }

    .portal-order-alert-icon {
        width: 2.65rem;
        height: 2.65rem;
    }

    .portal-order-alert-action {
        grid-column: 2 / 3;
        justify-self: start;
        min-height: 2rem;
        margin-top: .3rem;
    }

    .portal-order-alert-close {
        grid-column: 3;
        grid-row: 1;
    }
}

@media (prefers-reduced-motion: reduce) {
    .portal-order-alert {
        transition: opacity .01ms linear;
    }
}

/* Shared pagination -------------------------------------------------------
   Laravel's stock paginator relies on Tailwind utilities. The application
   does not load Tailwind globally, so pagination must own its layout and
   icon sizing instead of inheriting unbounded browser/SVG defaults. */
.app-pagination {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    width: 100%;
    margin: 0;
    padding: .82rem 1rem;
    border-top: 1px solid rgba(100, 53, 128, .12);
    background: linear-gradient(135deg, rgba(255, 255, 255, .98), rgba(250, 246, 252, .96));
}

.app-pagination-summary {
    margin: 0;
    color: #7b6d80;
    font-size: .67rem;
    line-height: 1.45;
    white-space: nowrap;
}

.app-pagination-summary strong {
    color: #432251;
    font-weight: 800;
}

.app-pagination-controls {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: flex-end;
    gap: .35rem;
}

.app-pagination-link {
    display: inline-flex;
    min-width: 2.15rem;
    height: 2.15rem;
    align-items: center;
    justify-content: center;
    gap: .3rem;
    padding: 0 .65rem;
    border: 1px solid #e2d6e7;
    border-radius: .62rem;
    background: #fff;
    color: #5c2b73;
    font-size: .65rem;
    font-weight: 750;
    line-height: 1;
    text-decoration: none;
    box-shadow: 0 5px 14px rgba(59, 28, 76, .05);
    transition: border-color .16s ease, background .16s ease, color .16s ease, box-shadow .16s ease, transform .16s ease;
}

a.app-pagination-link:hover,
a.app-pagination-link:focus-visible {
    border-color: #b995cc;
    background: #faf5fc;
    color: #4f1d69;
    box-shadow: 0 8px 18px rgba(96, 48, 133, .11);
    transform: translateY(-1px);
}

a.app-pagination-link:focus-visible {
    outline: 3px solid rgba(112, 40, 190, .18);
    outline-offset: 2px;
}

.app-pagination-link.is-current {
    border-color: #6825ad;
    background: linear-gradient(135deg, #7d2ae8, #5c1dbc);
    color: #fff;
    box-shadow: 0 8px 18px rgba(104, 37, 173, .2);
}

.app-pagination-link.is-disabled {
    opacity: .42;
    cursor: not-allowed;
    box-shadow: none;
}

.app-pagination-link.app-pagination-ellipsis {
    border-color: transparent;
    background: transparent;
    box-shadow: none;
}

.app-pagination-direction {
    min-width: auto;
}

.app-pagination-direction > span[aria-hidden="true"] {
    font-size: 1rem;
    line-height: 1;
}

/* A final guard for cached/custom paginator views that still contain SVGs. */
.portal-body .app-pagination svg,
.public-body .app-pagination svg,
.app-pagination svg {
    width: 1rem !important;
    max-width: 1rem !important;
    height: 1rem !important;
    max-height: 1rem !important;
    flex: 0 0 1rem;
}

@media (max-width: 640px) {
    .app-pagination {
        flex-direction: column;
        align-items: stretch;
        gap: .65rem;
        padding: .75rem;
    }

    .app-pagination-summary {
        text-align: center;
    }

    .app-pagination-controls {
        justify-content: center;
    }

    .app-pagination-direction {
        min-width: 2.15rem;
        padding: 0 .45rem;
    }

    .app-pagination-direction > span:not([aria-hidden="true"]) {
        position: absolute;
        width: 1px;
        height: 1px;
        padding: 0;
        margin: -1px;
        overflow: hidden;
        clip: rect(0, 0, 0, 0);
        white-space: nowrap;
        border: 0;
    }
}

/* Exact source crop: locked, non-interactive, and kept behind the live metrics. */
@media (min-width: 1500px) {
    .portal-body .dashboard-order-overview::after {
        background-image: url("data:image/jpeg;base64,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");
        background-position: right center;
        background-repeat: no-repeat;
        -webkit-mask-image: linear-gradient(to right, transparent 0 12%, #000 32%, #000 100%);
        mask-image: linear-gradient(to right, transparent 0 12%, #000 32%, #000 100%);
        pointer-events: none;
        user-select: none;
    }
}
