:root {
    --bg: #e7effb;
    --ink: #112548;
    --muted: #5d6a82;
    --line: #dce4ef;
    --white: #ffffff;
    --brand: #071f56;
    --brand-2: #113c9f;
    --gold: #ffc94d;
    --danger: #c13737;
    --ok: #0f8c4a;
    --radius-xl: 22px;
    --radius-lg: 16px;
    --radius-md: 12px;
    --shadow: 0 18px 36px rgba(7, 31, 86, 0.12);
    --sticky-offset: 142px;
}

* {
    box-sizing: border-box;
}

html,
body {
    margin: 0;
    padding: 0;
    overflow-x: clip;
}

body {
    font-family: "Avenir Next", "Segoe UI", sans-serif;
    color: var(--ink);
    background: radial-gradient(circle at 22% -16%, #f7fbff 0%, rgba(247, 251, 255, 0) 38%), var(--bg);
}

.page {
    width: 100%;
    max-width: 100vw;
    display: flex;
    justify-content: center;
    padding: calc(var(--sticky-offset) + 16px) 12px 28px;
    overflow-x: clip;
}

.sticky-header {
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    z-index: 60;
    display: grid;
    gap: 8px;
    justify-items: center;
    padding: 8px 12px 10px;
    background: rgba(255, 255, 255, 0.84);
    backdrop-filter: blur(8px);
    border-bottom: 1px solid #d7e1ef;
    box-shadow: 0 8px 20px rgba(7, 31, 86, 0.12);
}

.sticky-header-main {
    width: min(760px, calc(100vw - 24px));
    display: flex;
    justify-content: flex-start;
    align-items: center;
    gap: 10px;
    min-width: 0;
}

.sticky-logo {
    width: clamp(112px, 32vw, 210px);
    flex: 0 0 auto;
}

.app-shell {
    width: 100%;
    max-width: 760px;
    min-width: 0;
}

.brand-strip {
    background: var(--white);
    border: 1px solid var(--line);
    border-bottom: 0;
    border-radius: var(--radius-xl) var(--radius-xl) 0 0;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    padding: 16px;
    max-width: 100%;
}

.logo {
    width: min(210px, 55vw);
}

.trip-banner-card {
    width: min(420px, 100%);
    max-width: 100%;
    border: 1px solid #d5e1f1;
    border-radius: 14px;
    background: linear-gradient(135deg, #f8fbff, #eef5ff);
    padding: 10px 12px;
    display: grid;
    gap: 8px;
    text-align: left;
    transition: box-shadow 0.2s ease, border-color 0.2s ease, transform 0.2s ease;
}

.sticky-header .trip-banner-card {
    flex: 1 1 auto;
    width: auto;
    max-width: 100%;
    margin: 0;
    padding: 8px 10px;
    gap: 6px;
    min-width: 0;
}

.sticky-header .trip-banner-filled {
    gap: 2px;
}

.sticky-header .trip-banner-card p,
.sticky-header .trip-banner-card small {
    font-size: 0.78rem;
    line-height: 1.25;
}

.sticky-header .btn-ghost.small {
    justify-self: start;
    padding: 6px 10px;
    font-size: 0.78rem;
    width: auto;
    max-width: 100%;
    white-space: nowrap;
}

.trip-banner-card p,
.trip-banner-card small {
    margin: 0;
    color: #1f3b67;
}

.trip-banner-filled {
    display: grid;
    gap: 4px;
}

.trip-banner-filled small {
    color: #5b7296;
    font-size: 0.8rem;
}

.trip-banner-empty p {
    color: #3d5782;
    font-size: 0.92rem;
}

.trip-banner-card.trip-banner-attention {
    border-color: #0b3d98;
    box-shadow: 0 0 0 3px rgba(11, 61, 152, 0.14);
    transform: translateY(-1px);
}

.hero-banner {
    border: 1px solid var(--line);
    border-radius: var(--radius-xl);
    background: linear-gradient(130deg, rgba(148, 203, 245, 0.8), rgba(195, 225, 250, 0.84));
    box-shadow: var(--shadow);
    padding: 24px 18px 26px;
    position: relative;
    overflow: hidden;
    text-align: center;
}

.hero-banner::after {
    content: "";
    position: absolute;
    width: 220px;
    height: 180px;
    right: -64px;
    bottom: -80px;
    border-radius: 120px 120px 0 0;
    background: linear-gradient(140deg, rgba(7, 31, 86, 0.18), rgba(255, 255, 255, 0.2));
}

.hero-content {
    position: relative;
    z-index: 1;
}

.hero-check {
    display: inline-flex;
    width: 54px;
    height: 54px;
    border-radius: 999px;
    align-items: center;
    justify-content: center;
    font-size: 1.8rem;
    color: #d2a62c;
    background: rgba(255, 255, 255, 0.82);
    border: 2px solid rgba(255, 255, 255, 0.95);
    margin-bottom: 10px;
}

.hero-content h1 {
    margin: 0;
    font-size: clamp(1.7rem, 4.2vw, 2.6rem);
    line-height: 1.06;
    letter-spacing: -0.02em;
}

.hero-content p {
    margin: 10px auto 0;
    max-width: 400px;
    color: #1b3a67;
}

.alert {
    margin-top: 14px;
    border-radius: var(--radius-md);
    padding: 12px 14px;
    border: 1px solid transparent;
}

.alert-error {
    background: #fff0f0;
    border-color: #f6cccc;
    color: var(--danger);
}

.alert-success {
    background: #effcf4;
    border-color: #c8edd6;
    color: var(--ok);
}

.card-block {
    margin-top: 14px;
    border: 1px solid var(--line);
    border-radius: var(--radius-lg);
    background: var(--white);
    padding: 16px;
}

.card-block h2,
.card-block h3 {
    margin: 0;
}

.compact-space {
    margin-top: 12px;
}

.muted {
    color: var(--muted);
    margin-top: 8px;
}

.context-form {
    margin-top: 12px;
    display: grid;
    gap: 10px;
}

.context-form label {
    display: grid;
    gap: 4px;
    font-size: 0.95rem;
    color: #1a315d;
}

.checkbox-inline-row {
    display: flex !important;
    align-items: flex-start;
    gap: 8px;
    line-height: 1.4;
    grid-column: 1 / -1;
    margin-top: 2px;
    padding: 2px 0;
    font-size: 0.9rem;
    color: #1a315d;
}

.checkbox-inline-row input[type="checkbox"] {
    margin-top: 3px;
    flex: 0 0 auto;
}

.checkbox-inline-row span {
    display: block;
    flex: 1 1 auto;
}

.form-grid .checkbox-inline-row {
    width: 100%;
}

.form-grid .checkbox-inline-row input[type="checkbox"] {
    width: 16px;
    height: 16px;
    padding: 0;
    margin: 3px 0 0;
    border: 1px solid #9fb3d1;
    border-radius: 4px;
    background: #ffffff;
    flex: 0 0 auto;
    appearance: auto;
    -webkit-appearance: checkbox;
    accent-color: #0b2d77;
}

.phone-br-input {
    display: grid;
    grid-template-columns: auto 1fr;
    align-items: center;
    border: 1px solid #ccd8e8;
    border-radius: 10px;
    background: #ffffff;
    overflow: hidden;
}

.phone-country-trigger {
    position: relative;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 10px 8px;
    min-width: 34px;
    background: #f3f7ff;
    border-right: 1px solid #d5e0ef;
}

.phone-country-select {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    opacity: 0;
    cursor: pointer;
    border: 0;
    margin: 0;
}

.phone-flag-icon {
    width: 18px;
    height: 12px;
    border-radius: 2px;
    object-fit: cover;
    box-shadow: 0 0 0 1px rgba(17, 37, 72, 0.12);
}

.phone-br-input input {
    border: 0;
    border-radius: 0;
    padding: 10px 12px;
}

.context-form select,
.context-form input,
.context-form textarea,
.form-inline input,
.form-inline select,
.form-inline textarea,
.form-grid input,
.form-grid select,
.form-grid textarea,
.toolbar-form input,
.toolbar-form select {
    width: 100%;
    padding: 10px 12px;
    border-radius: 10px;
    border: 1px solid #ccd8e8;
    font-size: 0.95rem;
    color: #14284f;
    background: #ffffff;
}

.two-cols {
    grid-template-columns: repeat(2, minmax(0, 1fr));
}

.btn-primary,
.btn-confirm,
.btn-ghost {
    border: 0;
    border-radius: 10px;
    padding: 12px 16px;
    cursor: pointer;
    font-weight: 700;
}

.btn-primary {
    background: var(--brand);
    color: #ffffff;
}

.btn-confirm {
    background: var(--gold);
    color: #152548;
}

.btn-ghost {
    background: #edf3ff;
    color: #1b325d;
}

.small {
    padding: 8px 12px;
    font-size: 0.86rem;
}

.summary-card {
    margin-top: 14px;
    border: 1px solid var(--line);
    border-radius: var(--radius-lg);
    background: var(--white);
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    box-shadow: 0 10px 18px rgba(7, 31, 86, 0.08);
}

.summary-item {
    padding: 14px;
}

.summary-item + .summary-item {
    border-left: 1px solid var(--line);
}

.summary-item strong {
    display: block;
    font-size: 1.5rem;
    line-height: 1.1;
}

.summary-item small {
    color: var(--muted);
}

.label {
    font-size: 0.76rem;
    text-transform: uppercase;
    letter-spacing: 0.08em;
    color: var(--muted);
}

.section-header {
    text-align: center;
    margin: 24px 2px 14px;
}

.section-header h2 {
    margin: 0;
    font-size: clamp(1.45rem, 3.2vw, 1.98rem);
    line-height: 1.1;
}

.section-header p {
    margin: 8px auto 0;
    max-width: 420px;
    color: var(--muted);
}

.section-divider {
    display: block;
    width: 72px;
    height: 4px;
    border-radius: 999px;
    margin: 12px auto 0;
    background: linear-gradient(90deg, #f9d878, #e8ad2a);
}

.order-form {
    display: grid;
    gap: 12px;
}

.category-strip {
    width: min(760px, calc(100vw - 24px));
    z-index: 61;
    border: 1px solid #d8e2f0;
    border-radius: 14px;
    background: rgba(255, 255, 255, 0.96);
    box-shadow: 0 6px 16px rgba(7, 31, 86, 0.12);
    backdrop-filter: blur(8px);
    padding: 8px;
    overflow-x: auto;
    overflow-y: hidden;
    scrollbar-width: none;
    -webkit-overflow-scrolling: touch;
    overscroll-behavior-x: contain;
    touch-action: pan-x;
}

.category-strip::-webkit-scrollbar {
    height: 0;
}

.category-strip-track {
    display: inline-flex;
    width: max-content;
    min-width: 100%;
    gap: 8px;
    padding-right: 10px;
    padding-left: 2px;
    padding-bottom: 2px;
    scroll-snap-type: x proximity;
}

.category-chip {
    flex: 0 0 auto;
    scroll-snap-align: start;
    border: 1px solid #cfdced;
    border-radius: 999px;
    background: #f6f9ff;
    color: #1b3967;
    font-weight: 700;
    font-size: 0.86rem;
    padding: 8px 12px;
    white-space: nowrap;
    cursor: pointer;
    transition: all 0.2s ease;
}

.category-chip:hover {
    border-color: #8fb2dd;
    background: #edf4ff;
}

.category-chip.is-active {
    border-color: #0b2d77;
    background: #0b2d77;
    color: #ffffff;
}

.category-block {
    border: 1px solid var(--line);
    border-radius: var(--radius-lg);
    background: #ffffff;
    padding: 12px;
}

.category-block h3 {
    margin: 0 0 8px;
    color: #17305e;
}

.category-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 8px;
    margin-bottom: 8px;
}

.category-head h3 {
    margin: 0;
}

.category-name-trigger {
    border: 0;
    background: transparent;
    color: inherit;
    font: inherit;
    margin: 0;
    padding: 0;
    cursor: pointer;
    text-align: left;
}

.category-name-trigger:hover {
    text-decoration: underline;
    text-underline-offset: 3px;
}

.category-rules-trigger {
    border: 1px solid #c9d8ee;
    border-radius: 999px;
    background: #f3f7ff;
    color: #1b3b6d;
    padding: 5px 10px;
    display: inline-flex;
    align-items: center;
    gap: 6px;
    font-size: 0.8rem;
    font-weight: 700;
    cursor: pointer;
}

.category-rules-trigger:hover {
    border-color: #8ab0de;
    background: #eaf2ff;
}

.category-rules-modal {
    position: fixed;
    inset: 0;
    z-index: 150;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 20px;
}

.category-rules-modal[hidden] {
    display: none;
}

.category-rules-backdrop {
    position: absolute;
    inset: 0;
    background: rgba(5, 20, 48, 0.56);
}

.category-rules-dialog {
    position: relative;
    z-index: 1;
    width: min(560px, 100%);
    border-radius: 16px;
    border: 1px solid #d5e0ef;
    background: #ffffff;
    box-shadow: 0 24px 54px rgba(7, 20, 48, 0.25);
    padding: 16px;
    display: grid;
    gap: 10px;
}

.category-rules-dialog h3 {
    margin: 0;
    color: #102b57;
}

.category-rules-dialog p {
    margin: 0;
    color: #3f5a82;
    line-height: 1.45;
    white-space: pre-line;
}

.category-rules-actions {
    display: flex;
    justify-content: flex-end;
}

.unavailable-alert-modal {
    position: fixed;
    inset: 0;
    z-index: 145;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 16px;
}

.unavailable-alert-modal[hidden] {
    display: none !important;
}

.unavailable-alert-backdrop {
    position: absolute;
    inset: 0;
    background: rgba(7, 20, 48, 0.54);
    backdrop-filter: blur(2px);
}

.unavailable-alert-dialog {
    position: relative;
    z-index: 1;
    width: min(520px, 100%);
    border-radius: 16px;
    border: 1px solid #f1b9b9;
    background: linear-gradient(140deg, #fff5f5, #fff0f0);
    box-shadow: 0 20px 42px rgba(71, 16, 16, 0.28);
    padding: 16px;
    text-align: center;
}

.unavailable-alert-dialog h3 {
    margin: 0;
    color: #a82b2b;
    font-size: 1.12rem;
}

.unavailable-alert-dialog p {
    margin: 8px 0 0;
    color: #6b2d2d;
    line-height: 1.45;
    white-space: pre-line;
}

.addons-list {
    display: grid;
    gap: 8px;
}

.addon-item {
    display: grid;
    gap: 6px;
    align-items: start;
    border: 1px solid #d7e0ee;
    border-radius: 12px;
    padding: 10px;
    background: #ffffff;
    transition: border-color 0.2s ease, transform 0.2s ease;
}

.addon-top {
    display: grid;
    grid-template-columns: 96px minmax(0, 1fr) auto auto;
    column-gap: 10px;
    row-gap: 6px;
    align-items: center;
}

.addon-actions {
    display: grid;
    justify-items: end;
    align-content: start;
    gap: 8px;
}

.addon-item:hover {
    border-color: #8cb3e0;
    transform: translateY(-1px);
}

.addon-item--promo {
    border-style: dashed;
    border-color: #cfd8ea;
    background: linear-gradient(135deg, #fbfcff, #f4f7fc);
    transform: none;
}

.addon-item--promo:hover {
    border-color: #cfd8ea;
    transform: none;
}

.addon-image {
    width: 96px;
    height: 72px;
    border-radius: 10px;
    object-fit: cover;
    border: 1px solid #ccdae8;
    cursor: zoom-in;
}

.addon-main {
    min-width: 0;
}

.addon-qty-wrap {
    margin-top: 4px;
    display: inline-flex;
    align-items: center;
    gap: 4px;
}

.addon-qty-btn {
    width: 18px;
    height: 18px;
    border: 1px solid #cbd9eb;
    border-radius: 999px;
    background: #f4f8ff;
    color: #224173;
    font-size: 0.78rem;
    line-height: 1;
    padding: 0;
    cursor: pointer;
}

.addon-qty-input {
    width: 34px;
    height: 20px;
    border: 1px solid #cfdaea;
    border-radius: 8px;
    text-align: center;
    font-size: 0.74rem;
    color: #193564;
    background: #ffffff;
    padding: 0 2px;
}

.addon-qty-input:disabled,
.addon-item:not(.is-selected) .addon-qty-btn {
    opacity: 0.45;
    cursor: default;
}

.addon-qty-input::-webkit-outer-spin-button,
.addon-qty-input::-webkit-inner-spin-button {
    -webkit-appearance: none;
    margin: 0;
}

.addon-qty-input[type=number] {
    appearance: textfield;
    -moz-appearance: textfield;
}

.addon-qty-hint {
    display: block;
    margin-top: 3px;
    font-size: 0.72rem;
    color: #5a6f94;
}

.addon-name {
    display: block;
    font-weight: 700;
    color: #14284d;
    cursor: pointer;
}

.addon-name:hover {
    text-decoration: underline;
    text-underline-offset: 3px;
}

.addon-desc {
    display: block;
    font-size: 0.9rem;
    color: var(--muted);
}

.addon-unavailable {
    display: inline-flex;
    background: #f2f3f6;
    color: #6f7380;
    border: 1px solid #d4d8e2;
    border-radius: 999px;
    padding: 3px 8px;
    font-size: 0.78rem;
}

.addon-price-wrap {
    display: grid;
    align-items: center;
    text-align: right;
    min-width: 0;
}

.addon-price {
    font-weight: 700;
    color: #162c55;
}

.addon-price-caption {
    font-size: 0.72rem;
    color: #5f7296;
    line-height: 1.2;
}

.addon-promo-badge {
    display: inline-flex;
    align-self: start;
    margin-top: 4px;
    border-radius: 999px;
    background: #ebfff4;
    color: #17824a;
    border: 1px solid #b9e8ca;
    padding: 3px 8px;
    font-size: 0.72rem;
    font-weight: 700;
}

.addon-promo-copy {
    display: block;
    margin-top: 5px;
    font-size: 0.86rem;
    color: #5f6f87;
    line-height: 1.35;
}

.addon-promo-lead {
    display: block;
}

.addon-promo-lead[hidden] {
    display: none !important;
}

.addon-promo-progress {
    display: block;
    margin-top: 6px;
    color: #1a315d;
    font-weight: 700;
}

.addon-package-extra-card {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 10px;
    align-items: center;
    margin-top: 8px;
    padding: 10px 12px;
    border: 1px solid #d7e4f3;
    border-radius: 12px;
    background: linear-gradient(135deg, #f7fbff, #eef5ff);
}

.addon-package-extra-copy {
    display: grid;
    gap: 2px;
    min-width: 0;
}

.addon-package-extra-copy strong {
    color: #173463;
    font-size: 0.92rem;
}

.addon-package-extra-copy small {
    color: #62779b;
    line-height: 1.35;
}

.addon-qty-wrap-package {
    margin-top: 0;
}

.addon-check {
    width: 20px;
    height: 20px;
    justify-self: end;
    accent-color: #0a2c75;
}

.addon-share-btn {
    width: 28px;
    height: 28px;
    border: 1px solid #cfe6d8;
    border-radius: 999px;
    background: #f4fff8;
    color: #1f9d57;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 0;
    cursor: pointer;
}

.addon-share-btn:hover {
    background: #e9fff2;
    border-color: #93d1ad;
}

.addon-share-btn i {
    font-size: 1rem;
}

.is-unavailable {
    background: #f4f5f8;
    border-color: #d6d9e0;
    color: #767c8d;
}

.is-unavailable .addon-name,
.is-unavailable .addon-desc,
.is-unavailable .addon-price {
    color: #707789;
}

.total-box {
    border-radius: var(--radius-lg);
    padding: 14px;
    background: linear-gradient(120deg, #051d52, #0a2d76);
    color: #dbe8ff;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    box-shadow: 0 14px 24px rgba(6, 31, 86, 0.35);
}

body.has-sticky-cart {
    padding-bottom: 112px;
}

.sticky-cart {
    position: fixed;
    left: 12px;
    right: 12px;
    bottom: 12px;
    z-index: 100;
    border-radius: 14px;
    border: 1px solid rgba(6, 31, 86, 0.22);
    background: linear-gradient(120deg, #051d52, #0a2d76);
    color: #dbe8ff;
    box-shadow: 0 16px 30px rgba(6, 31, 86, 0.36);
    padding: 10px 12px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
}

.sticky-cart[hidden] {
    display: none;
}

.sticky-cart-copy {
    display: grid;
    gap: 2px;
}

.sticky-cart-count {
    font-size: 0.86rem;
}

.sticky-cart-total {
    color: #ffffff;
    font-size: 1.2rem;
    line-height: 1;
}

.sticky-cart-confirm {
    min-height: 42px;
    white-space: nowrap;
}

.total-copy {
    display: grid;
    gap: 4px;
}

.total-box-actions {
    display: grid;
    justify-items: center;
    gap: 3px;
}

.cart-clear-link {
    appearance: none;
    border: 0;
    padding: 0;
    background: transparent;
    color: rgba(127, 137, 153, 0.42);
    font: inherit;
    font-size: 0.62rem;
    line-height: 1;
    text-decoration: none;
    text-decoration-thickness: 1px;
    text-underline-offset: 2px;
    cursor: pointer;
}

.cart-clear-link:hover,
.cart-clear-link:focus-visible {
    color: rgba(255, 255, 255, 0.68);
}

.cart-clear-link[hidden] {
    display: none;
}

.total-count,
.total-label {
    font-size: 0.92rem;
}

#subtotal-price,
#total-price {
    color: #ffffff;
}

#total-price {
    font-size: 1.8rem;
    line-height: 1;
}

.btn-confirm:disabled {
    opacity: 0.52;
    cursor: not-allowed;
}

.source-type-picker {
    margin-top: 12px;
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 8px;
}

.source-type-card {
    display: grid;
    grid-template-columns: 18px minmax(0, 1fr);
    align-items: start;
    gap: 8px;
    border: 1px solid #d4deed;
    border-radius: 12px;
    padding: 10px;
    cursor: pointer;
    background: #f8fbff;
    transition: border-color 0.2s ease, box-shadow 0.2s ease, transform 0.2s ease;
}

.source-type-card:hover {
    border-color: #8ab0de;
    box-shadow: 0 6px 14px rgba(7, 31, 86, 0.1);
    transform: translateY(-1px);
}

.source-type-card.is-selected {
    border-color: #0b3c94;
    background: #eef4ff;
}

.source-type-card.is-disabled {
    opacity: 0.64;
    cursor: not-allowed;
}

.source-type-card input[type="radio"] {
    margin-top: 2px;
    accent-color: #0a2c75;
}

.source-type-copy strong {
    display: block;
    color: #122c59;
    font-size: 0.95rem;
}

.source-type-copy small {
    display: block;
    margin-top: 3px;
    color: #597195;
    line-height: 1.35;
}

.source-type-note {
    margin: 9px 0 0;
    color: #2c4a79;
    font-size: 0.9rem;
}

.trip-info-modal,
.trip-alert-modal {
    position: fixed;
    inset: 0;
    z-index: 141;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 20px;
}

.trip-info-modal[hidden],
.trip-alert-modal[hidden] {
    display: none;
}

.trip-info-backdrop,
.trip-alert-backdrop {
    position: absolute;
    inset: 0;
    background: rgba(5, 20, 48, 0.56);
}

.trip-info-dialog,
.trip-alert-dialog {
    position: relative;
    z-index: 1;
    width: min(520px, 100%);
    border-radius: 16px;
    border: 1px solid #d5e0ef;
    background: #ffffff;
    box-shadow: 0 24px 54px rgba(7, 20, 48, 0.25);
    padding: 16px;
    display: grid;
    gap: 10px;
}

.trip-info-dialog h3,
.trip-alert-dialog h3 {
    margin: 0;
    color: #102b57;
}

.trip-info-dialog p,
.trip-alert-dialog p {
    margin: 0;
    color: #3a5783;
}

.trip-manual-link {
    justify-self: start;
    margin-top: -2px;
    border: 0;
    background: transparent;
    padding: 0;
    color: #5b7092;
    font-size: 0.8rem;
    text-decoration: underline;
    text-underline-offset: 2px;
    cursor: pointer;
}

.trip-manual-link:hover,
.trip-manual-link:focus-visible {
    color: #2f4f82;
}

.trip-info-dialog label {
    display: grid;
    gap: 5px;
    color: #183768;
    font-size: 0.92rem;
}

.trip-info-dialog select,
.trip-info-dialog input {
    width: 100%;
    padding: 10px 12px;
    border-radius: 10px;
    border: 1px solid #ccd8e8;
    font-size: 0.95rem;
    color: #14284f;
    background: #ffffff;
}

.trip-info-dialog select[data-trip-boat-select] {
    appearance: none;
    padding: 12px 42px 12px 14px;
    border: 1px solid #b7cae8;
    border-radius: 12px;
    background:
        linear-gradient(135deg, #ffffff, #f5f9ff),
        url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='18' height='18' viewBox='0 0 24 24'%3E%3Cpath fill='%23163e74' d='m7 10l5 5l5-5z'/%3E%3C/svg%3E");
    background-repeat: no-repeat, no-repeat;
    background-position: 0 0, right 12px center;
    background-size: auto, 18px;
    font-family: "Plus Jakarta Sans", "Poppins", "Segoe UI", Tahoma, sans-serif;
    font-weight: 600;
    font-size: 0.98rem;
    letter-spacing: 0.01em;
    color: #102f5d;
    box-shadow: 0 8px 18px rgba(11, 45, 119, 0.08);
    transition: border-color 0.2s ease, box-shadow 0.2s ease, transform 0.2s ease;
}

.trip-info-dialog select[data-trip-boat-select]:hover {
    border-color: #8fb2dd;
}

.trip-info-dialog select[data-trip-boat-select]:focus {
    outline: none;
    border-color: #0b2d77;
    box-shadow: 0 0 0 3px rgba(11, 45, 119, 0.14), 0 10px 22px rgba(11, 45, 119, 0.12);
}

.trip-info-actions,
.trip-alert-actions {
    display: flex;
    justify-content: flex-end;
    gap: 8px;
    flex-wrap: wrap;
}

.success-info-modal {
    position: fixed;
    inset: 0;
    z-index: 140;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 20px;
}

.success-info-backdrop {
    position: absolute;
    inset: 0;
    background: rgba(5, 20, 48, 0.56);
}

.success-info-dialog {
    position: relative;
    z-index: 1;
    width: min(540px, 100%);
    border-radius: 16px;
    border: 1px solid #d5e0ef;
    background: #ffffff;
    box-shadow: 0 24px 54px rgba(7, 20, 48, 0.25);
    padding: 16px;
    display: grid;
    gap: 10px;
}

.success-info-dialog h3 {
    margin: 0;
    color: #102b57;
}

.success-info-dialog p {
    margin: 0;
    color: #3a5783;
}

.success-info-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 8px;
    border: 1px solid #dbe5f2;
    border-radius: 12px;
    padding: 10px;
    background: #f8fbff;
    color: #203b66;
    font-size: 0.92rem;
}

.success-info-close {
    justify-self: end;
}

.success-card {
    margin-top: 14px;
    border: 1px solid var(--line);
    border-radius: var(--radius-xl);
    background: #ffffff;
    padding: 20px;
    box-shadow: var(--shadow);
}

.success-card h1 {
    margin: 0;
}

.success-summary,
.success-total {
    margin-top: 10px;
    border: 1px solid var(--line);
    border-radius: 12px;
    padding: 10px;
    background: #f9fbff;
}

.success-summary p,
.success-total p {
    margin: 4px 0;
}

.success-items {
    list-style: none;
    margin: 10px 0 0;
    padding: 0;
    border: 1px solid var(--line);
    border-radius: 12px;
    background: #ffffff;
}

.success-items li {
    display: flex;
    justify-content: space-between;
    gap: 8px;
    padding: 10px;
    border-top: 1px solid #e8edf6;
}

.success-items li:first-child {
    border-top: 0;
}

.thanks {
    margin-top: 12px;
    font-weight: 700;
}

.payment-approved-page {
    background: linear-gradient(180deg, #e9f8ee 0%, #f6fbf8 48%, #edf4ff 100%);
}

.payment-receipt {
    width: min(760px, 100%);
    margin: 18px auto 28px;
    display: grid;
    gap: 14px;
}

.payment-receipt-success {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr);
    gap: 14px;
    align-items: center;
    border: 1px solid #8bd1a3;
    border-radius: 20px;
    padding: 22px;
    color: #124f2b;
    background: linear-gradient(135deg, #e7f8ed, #f7fffa);
    box-shadow: 0 14px 32px rgba(22, 101, 52, 0.12);
}

.payment-receipt-check {
    width: 58px;
    height: 58px;
    border-radius: 999px;
    display: grid;
    place-items: center;
    background: #168447;
    color: #ffffff;
    font-size: 2rem;
    font-weight: 800;
}

.payment-receipt-kicker {
    margin: 0 0 3px;
    color: #287044;
    font-size: 0.82rem;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 0.08em;
}

.payment-receipt-success h1 {
    margin: 0;
    font-size: clamp(1.55rem, 4vw, 2.1rem);
}

.payment-receipt-success p:last-child {
    margin: 7px 0 0;
    line-height: 1.5;
}

.payment-receipt-paper {
    border: 1px solid #cfe0d5;
    border-radius: 20px;
    padding: 22px;
    background: #ffffff;
    box-shadow: 0 18px 40px rgba(14, 49, 31, 0.1);
}

.payment-receipt-title {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 12px;
    padding-bottom: 14px;
    border-bottom: 1px dashed #bcd0c3;
}

.payment-receipt-title div {
    display: grid;
    gap: 4px;
}

.payment-receipt-title div > span {
    color: #54705d;
    font-size: 0.78rem;
    font-weight: 800;
    letter-spacing: 0.12em;
}

.payment-receipt-title strong {
    color: #163f29;
    font-size: 1.15rem;
}

.payment-receipt-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 10px;
    padding: 16px 0;
}

.payment-receipt-grid p {
    margin: 0;
    display: grid;
    gap: 3px;
    min-width: 0;
}

.payment-receipt-grid span,
.payment-receipt-reference span {
    color: #64786b;
    font-size: 0.8rem;
}

.payment-receipt-grid strong {
    color: #183f2a;
    overflow-wrap: anywhere;
}

.payment-receipt-items {
    border-top: 1px dashed #bcd0c3;
    border-bottom: 1px dashed #bcd0c3;
    padding: 15px 0;
}

.payment-receipt-items h2 {
    margin: 0 0 9px;
    color: #183f2a;
    font-size: 1rem;
}

.payment-receipt-items div {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 12px;
    padding: 6px 0;
    color: #315841;
}

.payment-receipt-items div span {
    min-width: 0;
    overflow-wrap: anywhere;
}

.payment-receipt-items div strong {
    white-space: nowrap;
}

.payment-receipt-total {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    padding: 18px 0 10px;
    color: #17492c;
}

.payment-receipt-total span {
    font-weight: 700;
}

.payment-receipt-total strong {
    font-size: 1.6rem;
}

.payment-receipt-reference {
    display: grid;
    gap: 3px;
    border-radius: 10px;
    padding: 10px 12px;
    background: #f0f8f3;
    color: #315841;
}

.payment-receipt-reference strong {
    overflow-wrap: anywhere;
}

.payment-receipt-release {
    margin-top: 16px;
    border: 1px solid #9bcfae;
    border-radius: 16px;
    padding: 16px;
    display: grid;
    justify-items: center;
    gap: 12px;
    text-align: center;
    background: #effaf3;
}

.payment-receipt-release h2 {
    margin: 0;
    color: #17492c;
    font-size: 1.1rem;
}

.payment-receipt-release p {
    margin: 6px 0 0;
    color: #315841;
    line-height: 1.5;
}

.payment-receipt-release img {
    width: min(260px, 100%);
    height: auto;
    aspect-ratio: 1;
    border: 10px solid #ffffff;
    border-radius: 12px;
    background: #ffffff;
    box-shadow: 0 8px 20px rgba(15, 78, 39, 0.12);
}

.payment-receipt-release .payment-receipt-release-number {
    margin: 0;
    color: #17492c;
    font-weight: 800;
    font-size: 1.05rem;
}

.payment-receipt-note {
    margin: 0;
    color: #315841;
    text-align: center;
}

.payment-receipt-home {
    justify-self: center;
    text-decoration: none;
}

.review-card {
    margin-top: 14px;
    border: 1px solid var(--line);
    border-radius: var(--radius-xl);
    background: #ffffff;
    padding: 18px;
    box-shadow: var(--shadow);
    display: grid;
    gap: 12px;
}

.review-head h1 {
    margin: 0;
    color: #102a56;
}

.review-head p {
    margin: 6px 0 0;
    color: #476186;
}

.review-grid {
    border: 1px solid #dbe4f1;
    border-radius: 12px;
    background: #f8fbff;
    padding: 10px;
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 8px;
    color: #1a3460;
    font-size: 0.92rem;
}

.review-items {
    border: 1px solid #dbe4f1;
    border-radius: 12px;
    background: #ffffff;
    overflow: hidden;
}

.review-item {
    display: grid;
    grid-template-columns: 52px minmax(0, 1fr) auto;
    gap: 10px;
    align-items: center;
    padding: 10px;
    border-top: 1px solid #e8edf6;
}

.review-item:first-child {
    border-top: 0;
}

.review-item-thumb {
    width: 52px;
    height: 52px;
    border-radius: 8px;
    object-fit: cover;
    border: 1px solid #d6dfec;
    background: #eef4fc;
}

.review-item-main {
    min-width: 0;
    display: grid;
    gap: 3px;
}

.review-item-main strong {
    color: #162f5a;
}

.review-item-main small {
    color: #5a7092;
}

.review-item-total {
    color: #0b2d77;
    white-space: nowrap;
}

.review-note-box {
    border: 1px solid #dbe4f1;
    border-radius: 12px;
    background: #f9fbff;
    padding: 10px;
}

.review-note-box h3 {
    margin: 0;
    color: #102b57;
    font-size: 1rem;
}

.review-note-box p {
    margin: 8px 0 0;
    color: #3f5a82;
    line-height: 1.45;
}

.review-rules-list {
    margin: 8px 0 0;
    padding-left: 18px;
    display: grid;
    gap: 8px;
}

.review-rules-list li {
    color: #3f5a82;
}

.review-rules-list strong {
    color: #102b57;
}

.review-rules-list span {
    display: inline;
    white-space: pre-line;
}

.review-total-box {
    border-radius: 12px;
    background: linear-gradient(120deg, #051d52, #0a2d76);
    color: #dbe8ff;
    padding: 12px;
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 10px;
}

.review-total-box strong {
    font-size: 1.45rem;
    color: #ffffff;
}

.review-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    min-width: 0;
}

.review-accept-form {
    flex: 1 1 100%;
    display: grid;
    gap: 8px;
    min-width: 0;
    width: 100%;
}

.review-rules-accept {
    flex-basis: 100%;
    display: inline-flex;
    align-items: flex-start;
    gap: 8px;
    color: #193660;
    font-weight: 600;
}

.review-rules-accept input {
    margin-top: 2px;
    width: 18px;
    height: 18px;
    accent-color: #0a2c75;
}

.review-rules-error {
    flex-basis: 100%;
    margin: 0;
    color: #c13737;
    font-size: 0.9rem;
}

.mp-checkout-inline-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 10px;
}

.mp-checkout-inline-grid label {
    display: grid;
    gap: 6px;
    color: #17386a;
    font-size: 0.92rem;
    min-width: 0;
}

.mp-checkout-inline-grid input {
    width: 100%;
    min-width: 0;
    padding: 10px 12px;
    border: 1px solid #cdd9ea;
    border-radius: 10px;
    color: #102b57;
    background: #fff;
    font-size: 0.95rem;
}

.mp-checkout-inline-actions {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 8px;
}

.review-pay-btn:disabled {
    opacity: 0.52;
    cursor: not-allowed;
}

.review-pay-btn {
    min-width: 160px;
}

.review-back-btn {
    text-decoration: none;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 180px;
}

.review-payment-placeholder {
    border: 1px dashed #b9cae4;
    border-radius: 12px;
    background: #f6f9ff;
    padding: 12px;
}

.review-payment-placeholder h3 {
    margin: 0;
    color: #153162;
}

.review-payment-placeholder p {
    margin: 8px 0 0;
    color: #43608a;
}

.about-footer-card {
    border: 1px solid #d8e2f0;
    border-radius: 14px;
    background: linear-gradient(130deg, #ffffff, #f5f9ff);
    padding: 16px 14px;
    box-shadow: 0 8px 16px rgba(7, 31, 86, 0.08);
}

.about-footer-grid {
    margin-top: 14px;
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 10px;
}

.about-footer-card h3 {
    margin: 0;
    color: #102a56;
}

.about-footer-card p {
    margin: 10px 0 0;
    color: #36507c;
    line-height: 1.5;
}

.dark-footer {
    margin-top: 14px;
    border-radius: 14px;
    background: linear-gradient(120deg, #051c52, #0a2f77);
    color: #deebff;
    text-align: center;
    padding: 16px 12px;
}

.dark-footer-logo {
    width: min(170px, 42vw);
}

.dark-footer p {
    margin: 8px 0 0;
    font-size: 0.9rem;
}

.legal-footer {
    display: grid;
    gap: 4px;
    justify-items: center;
}

.legal-share-btn {
    border-color: rgba(222, 235, 255, 0.42);
    color: #deebff;
    background: rgba(6, 30, 82, 0.4);
}

.legal-share-btn:hover {
    border-color: #deebff;
    background: rgba(8, 39, 103, 0.62);
}

.legal-footer-id {
    margin: 0;
    font-weight: 700;
    letter-spacing: 0.2px;
}

.legal-footer-links {
    margin: 0;
    font-size: 0.9rem;
}

.legal-footer-links a {
    color: #deebff;
    text-decoration: none;
    border-bottom: 1px solid rgba(222, 235, 255, 0.55);
}

.legal-footer-links a:hover {
    border-bottom-color: #deebff;
}

.legal-info-modal {
    position: fixed;
    inset: 0;
    z-index: 140;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 14px;
}

.legal-info-modal[hidden] {
    display: none !important;
}

.legal-info-backdrop {
    position: absolute;
    inset: 0;
    background: rgba(7, 20, 48, 0.72);
    backdrop-filter: blur(3px);
}

.legal-info-dialog {
    position: relative;
    z-index: 1;
    width: min(980px, 100%);
    height: min(88vh, 920px);
    border-radius: 16px;
    border: 1px solid #d4deec;
    background: #ffffff;
    box-shadow: 0 24px 52px rgba(8, 24, 56, 0.26);
    display: grid;
    grid-template-rows: auto 1fr;
    overflow: hidden;
}

.legal-info-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 8px;
    padding: 12px;
    border-bottom: 1px solid #e2e9f3;
    background: #f6f9ff;
}

.legal-info-head h3 {
    margin: 0;
    color: #12366b;
}

.legal-info-dialog iframe {
    width: 100%;
    height: 100%;
    border: 0;
    background: #ffffff;
}

.admin-body {
    background: #edf3fa;
}

.admin-page {
    max-width: 1200px;
    margin: 0 auto;
    padding: 16px 12px 28px;
    display: grid;
    gap: 12px;
}

.admin-topbar {
    border: 1px solid var(--line);
    border-radius: var(--radius-lg);
    background: #ffffff;
    padding: 14px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
}

.admin-topbar h1 {
    margin: 0;
}

.admin-topbar p {
    margin: 6px 0 0;
    color: var(--muted);
}

.admin-toolbar {
    border: 1px solid var(--line);
    border-radius: var(--radius-lg);
    background: #ffffff;
    padding: 12px;
}

.toolbar-form {
    display: grid;
    grid-template-columns: minmax(180px, 1fr) 180px 180px auto;
    gap: 8px;
}

.dashboard-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 8px;
}

.metric-card {
    border: 1px solid var(--line);
    border-radius: 12px;
    background: #ffffff;
    padding: 12px;
}

.metric-card span {
    display: block;
    color: var(--muted);
    font-size: 0.88rem;
}

.metric-card strong {
    display: block;
    margin-top: 5px;
    color: #143067;
    font-size: 1.24rem;
}

.lancha-sync-alert {
    display: grid;
    gap: 4px;
    margin: 14px 0;
}

.lancha-sync-alert span {
    font-weight: 500;
}

.lancha-sync-metrics {
    grid-template-columns: repeat(4, minmax(0, 1fr));
    margin-bottom: 14px;
}

.lancha-sync-metrics .metric-card.has-warning {
    border-color: #e6a846;
    background: #fff9ec;
}

.lancha-sync-table-card {
    margin-bottom: 14px;
}

.lancha-sync-table-head {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 12px;
    margin-bottom: 10px;
}

.lancha-sync-table-head h3,
.lancha-sync-table-head p {
    margin-top: 0;
}

.lancha-sync-table-head p {
    margin-bottom: 0;
}

.lancha-sync-status {
    display: inline-flex;
    align-items: center;
    min-height: 26px;
    padding: 3px 9px;
    border-radius: 999px;
    background: #edf2f8;
    color: #27466d;
    font-size: 0.78rem;
    font-weight: 800;
    white-space: nowrap;
}

.lancha-sync-status.is-igual {
    background: #e5f7eb;
    color: #17663a;
}

.lancha-sync-status.is-faltando,
.lancha-sync-status.is-nome_diferente {
    background: #fff1d6;
    color: #875500;
}

.lancha-sync-status.is-extra {
    background: #e8f2ff;
    color: #235b9b;
}

.lancha-sync-status.is-conflito {
    background: #ffe4e4;
    color: #9b2626;
}

.lancha-sync-row.is-igual td {
    color: #56708f;
}

.lancha-sync-history {
    margin-top: 14px;
}

.chart-card,
.panel {
    border: 1px solid var(--line);
    border-radius: var(--radius-lg);
    background: #ffffff;
    padding: 14px;
}

.table-card {
    border: 1px solid #d9e4f2;
    border-radius: 14px;
    padding: 12px;
    background: #ffffff;
}

.table-card h3 {
    margin: 0 0 10px;
    color: #163b74;
}

.admin-table-wrap {
    overflow-x: auto;
}

.admin-table {
    width: 100%;
    border-collapse: collapse;
    min-width: 760px;
}

.admin-table th,
.admin-table td {
    text-align: left;
    padding: 8px 10px;
    border-bottom: 1px solid #e3ebf7;
    color: #23456f;
    font-size: 0.9rem;
}

.admin-table thead th {
    color: #133462;
    background: #f3f8ff;
    font-weight: 700;
}

.admin-table-compact {
    min-width: 680px;
}

.admin-table-compact th,
.admin-table-compact td {
    padding: 6px 8px;
    font-size: 0.84rem;
}

.cost-inline-form {
    display: inline-flex;
    align-items: center;
    gap: 6px;
}

.cost-inline-form input {
    width: 110px;
}

.category-supplier-inline {
    color: #2e4f80;
    font-size: 0.9em;
    font-weight: 600;
}

.supplier-wa-link {
    display: inline-block;
    width: 18px;
    height: 18px;
    margin-left: 6px;
    border-radius: 999px;
    background: #22c55e;
    vertical-align: middle;
    position: relative;
}

.supplier-wa-link::after {
    content: ">";
    position: absolute;
    inset: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    color: #ffffff;
    font-weight: 700;
    font-size: 11px;
}

.chart-card h2,
.panel h2 {
    margin: 0;
}

#orders-line-chart {
    width: 100%;
    height: auto;
    margin-top: 8px;
    border: 1px solid #dae3f0;
    border-radius: 12px;
    background: #f9fbff;
}

.compact-list {
    margin-top: 8px;
    display: grid;
    gap: 8px;
}

.orders-cleanup-box {
    margin-top: 10px;
    border: 1px solid #d6e1f0;
    border-radius: 12px;
    background: #f7faff;
    padding: 10px 12px;
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
}

.orders-cleanup-box p {
    margin: 0;
    color: #264774;
    font-size: 0.9rem;
}

.orders-cleanup-form {
    margin: 0;
}

.orders-compact-wrap {
    margin-top: 10px;
}

.metric-card-filter {
    color: inherit;
    text-decoration: none;
    cursor: pointer;
    transition: border-color 0.18s ease, box-shadow 0.18s ease, transform 0.18s ease;
}

.metric-card-filter:hover {
    transform: translateY(-1px);
    border-color: #8ab4ec;
    box-shadow: 0 7px 18px rgba(20, 61, 112, 0.1);
}

.metric-card-filter.is-selected {
    border-color: #1769c2;
    background: #eaf3ff;
    box-shadow: 0 0 0 2px rgba(23, 105, 194, 0.12);
}

.orders-chart-after-list {
    margin-top: 18px;
}

.orders-compact-table {
    min-width: 1100px;
}

.orders-compact-table td {
    vertical-align: top;
}

.order-actions-grid {
    display: grid;
    gap: 8px;
}

.order-inline-form {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
    align-items: center;
}

.order-inline-form select {
    min-width: 132px;
}

.order-delete-form button {
    color: #8f2d2d;
}

.order-refund-button {
    color: #a12626;
    border-color: #e3aaaa;
    background: #fff5f5;
}

.payment-refunded {
    color: #8d2424;
    background: #ffe8e8;
    border-color: #efb4b4;
}

.payment-receipt-refunded {
    background: linear-gradient(135deg, #a62929, #d64b4b);
}

.order-trash-button:disabled {
    color: #55705f;
    background: #edf7f0;
    cursor: not-allowed;
    opacity: 0.9;
}

.order-actions-grid details {
    border: 1px solid #d9e4f2;
    border-radius: 10px;
    padding: 8px;
    background: #fbfdff;
}

.order-actions-grid details summary {
    cursor: pointer;
    color: #173c72;
    font-weight: 700;
}

.order-actions-grid details p {
    margin: 6px 0 0;
    font-size: 0.86rem;
}

.order-actions-grid details ul {
    margin: 6px 0 0;
    padding-left: 16px;
}

.order-actions-grid details li {
    margin: 2px 0;
    font-size: 0.86rem;
}

.supplier-control-summary {
    margin-top: 16px;
    padding: 14px;
    border: 1px solid #cfe0f2;
    border-radius: 14px;
    background: linear-gradient(145deg, #f8fbff, #eef6ff);
}

.supplier-control-heading,
.supplier-requests-title,
.supplier-request-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
}

.supplier-control-heading h3,
.supplier-requests-title h4,
.supplier-request-head h5 {
    margin: 0;
    color: #153b70;
}

.supplier-control-heading p {
    margin: 4px 0 0;
    color: #4f6687;
    font-size: 0.9rem;
}

.supplier-metrics-grid {
    margin-top: 12px;
}

.supplier-metric-pending {
    border-left: 4px solid #d9a514;
}

.supplier-metric-sent {
    border-left: 4px solid #2473c9;
}

.supplier-metric-confirmed {
    border-left: 4px solid #24915b;
}

.supplier-metric-issue {
    border-left: 4px solid #c84a4a;
}

.supplier-status-none {
    color: #52637a;
    background: #edf1f6;
    border: 1px solid #d2dbe7;
}

.supplier-status-pending {
    color: #765805;
    background: #fff5cf;
    border: 1px solid #ebd27c;
}

.supplier-status-sent {
    color: #174f8c;
    background: #e5f1ff;
    border: 1px solid #b7d5f6;
}

.supplier-status-confirmed {
    color: #17613c;
    background: #e5f7ed;
    border: 1px solid #b5dfc7;
}

.supplier-status-delivered {
    color: #0c624d;
    background: #dbf6ef;
    border: 1px solid #9edbc9;
}

.supplier-status-issue {
    color: #8b2626;
    background: #ffe8e8;
    border: 1px solid #edb7b7;
}

.supplier-status-cancelled {
    color: #5f6370;
    background: #eceef2;
    border: 1px solid #cfd3dc;
}

.supplier-requests-panel {
    margin-top: 14px;
    padding-top: 14px;
    border-top: 1px solid #d6e3f2;
}

.order-actions-grid details .supplier-help {
    margin: 5px 0 10px;
    color: #5b6f8d;
    font-size: 0.82rem;
}

.supplier-request-card {
    margin-top: 10px;
    padding: 12px;
    border: 1px solid #d6e2f0;
    border-left: 4px solid #d9a514;
    border-radius: 12px;
    background: #ffffff;
}

.supplier-request-card.supplier-request-sent {
    border-left-color: #2473c9;
}

.supplier-request-card.supplier-request-confirmed,
.supplier-request-card.supplier-request-delivered {
    border-left-color: #24915b;
}

.supplier-request-card.supplier-request-issue {
    border-left-color: #c84a4a;
}

.supplier-request-card.supplier-request-cancelled {
    border-left-color: #7a7f8b;
}

.supplier-request-category {
    display: block;
    margin-bottom: 2px;
    color: #607796;
    font-size: 0.74rem;
    font-weight: 700;
    letter-spacing: 0.04em;
    text-transform: uppercase;
}

.supplier-change-form,
.supplier-status-form {
    display: grid;
    gap: 8px;
    margin-top: 10px;
}

.supplier-change-form {
    grid-template-columns: minmax(0, 1fr) auto;
    align-items: end;
}

.supplier-change-form label,
.supplier-status-form label {
    display: grid;
    gap: 4px;
    color: #29486f;
    font-size: 0.79rem;
    font-weight: 700;
}

.supplier-change-form select,
.supplier-status-form select,
.supplier-status-form textarea {
    width: 100%;
    min-width: 0;
}

.order-actions-grid details .supplier-request-items {
    margin: 10px 0 0;
    padding: 0;
    list-style: none;
}

.order-actions-grid details .supplier-request-items li {
    display: flex;
    justify-content: space-between;
    gap: 10px;
    padding: 6px 0;
    border-bottom: 1px dashed #dce5f0;
}

.supplier-request-values {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 7px;
    margin-top: 10px;
}

.supplier-request-values span {
    padding: 8px;
    border-radius: 8px;
    background: #f2f7fc;
}

.supplier-request-values small,
.supplier-request-values strong {
    display: block;
}

.supplier-request-values small {
    color: #60748e;
    font-size: 0.68rem;
}

.supplier-request-values strong {
    margin-top: 2px;
    color: #173b6c;
    font-size: 0.84rem;
}

.supplier-copy-source {
    position: fixed;
    left: -9999px;
    width: 1px;
    height: 1px;
    opacity: 0;
    pointer-events: none;
}

.supplier-message-actions {
    display: flex;
    gap: 8px;
    margin-top: 10px;
}

.supplier-message-actions > *,
.supplier-send-form {
    flex: 1 1 220px;
    margin: 0;
}

.btn-copy-supplier,
.btn-whatsapp-supplier {
    width: 100%;
    border-radius: 9px;
    padding: 10px 12px;
    font-weight: 800;
    cursor: pointer;
}

.btn-copy-supplier {
    border: 1px solid #8ba7ca;
    color: #173e70;
    background: #f2f7fd;
}

.btn-copy-supplier:hover {
    background: #e5f0fb;
}

.btn-copy-supplier.is-copied {
    border-color: #70b991;
    color: #17613c;
    background: #e5f7ed;
}

.btn-copy-supplier.is-copy-error {
    border-color: #d99494;
    color: #8b2626;
    background: #fff0f0;
}

.btn-whatsapp-supplier {
    border: 0;
    color: #ffffff;
    background: #168b4c;
}

.btn-whatsapp-supplier:hover {
    background: #117540;
}

.supplier-status-form {
    grid-template-columns: minmax(150px, 0.7fr) minmax(190px, 1.3fr) auto;
    align-items: end;
}

.supplier-request-warning {
    margin-top: 9px;
    padding: 9px 10px;
    border: 1px solid #e9c78d;
    border-radius: 8px;
    color: #72520f;
    background: #fff8e8;
    font-size: 0.82rem;
}

.supplier-request-warning a {
    color: #145c9e;
    font-weight: 700;
}

.order-actions-grid details .supplier-request-history {
    margin-top: 9px;
    color: #61738b;
    font-size: 0.74rem;
}

.order-row {
    border: 1px solid #d7e0ee;
    border-radius: 12px;
    padding: 10px;
    display: grid;
    gap: 8px;
}

.order-main {
    display: grid;
    grid-template-columns: 74px 120px 1fr 1fr 1fr 120px 160px 220px 120px 1fr;
    gap: 8px;
    align-items: center;
    font-size: 0.88rem;
}

.order-main strong {
    color: #153162;
}

.order-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    align-items: center;
}

.order-actions form {
    display: flex;
    gap: 6px;
}

.pill {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 999px;
    padding: 4px 8px;
    font-size: 0.78rem;
}

.status-pending {
    background: #fff8df;
    color: #7e6208;
}

.status-confirmed {
    background: #e9f1ff;
    color: #1b3f7e;
}

.status-approved {
    background: #e8f8ef;
    color: #145a2f;
}

.status-cancelled {
    background: #ffecec;
    color: #8f2d2d;
}

.status-completed {
    background: #e9f1ff;
    color: #1b3f7e;
}

.payment-paid {
    background: #e8f8ef;
    color: #145a2f;
}

.payment-open {
    background: #fff8df;
    color: #7e6208;
}

.payment-failed {
    background: #ffecec;
    color: #8f2d2d;
}

.payment-none {
    background: #eef2f8;
    color: #556784;
}

.admin-sections {
    display: grid;
    gap: 10px;
}

.section-switcher {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
}

.section-switcher a {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 8px 12px;
    border-radius: 999px;
    border: 1px solid #d4e0f0;
    background: #f2f6fd;
    color: #1a315d;
    text-decoration: none;
    font-size: 0.88rem;
    font-weight: 700;
}

.section-switcher a.active {
    background: #0b2d77;
    border-color: #0b2d77;
    color: #ffffff;
}

.form-inline {
    margin-top: 8px;
    display: grid;
    grid-template-columns: repeat(5, minmax(0, 1fr));
    gap: 8px;
}

.form-grid {
    margin-top: 8px;
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 8px;
}

.form-grid label {
    display: grid;
    gap: 4px;
    font-size: 0.9rem;
}

.category-checkbox-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 6px;
    border: 1px solid #d6e1ef;
    border-radius: 10px;
    background: #f8fbff;
    padding: 8px;
}

.category-checkbox-item {
    display: flex;
    align-items: center;
    gap: 6px;
    margin: 0;
    padding: 6px 8px;
    border-radius: 8px;
    background: #ffffff;
    border: 1px solid #e1e9f5;
    font-size: 0.86rem;
}

.category-checkbox-item input {
    width: auto;
    margin: 0;
}

.form-span-full {
    grid-column: 1 / -1;
}

.visually-hidden {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
    border: 0;
}

.item-image-field {
    display: grid;
    gap: 8px;
}

.item-image-meta {
    display: grid;
    gap: 4px;
}

.item-image-card {
    display: flex;
    align-items: center;
    gap: 12px;
    border: 1px solid #dbe4f0;
    border-radius: 12px;
    padding: 10px;
    background: #fbfdff;
}

.item-image-preview {
    width: 120px;
    height: 90px;
    border-radius: 12px;
    object-fit: cover;
    border: 1px solid #d7e1ef;
    background: #eef4fc;
}

.item-image-actions {
    display: grid;
    gap: 6px;
}

.image-editor-modal {
    position: fixed;
    inset: 0;
    z-index: 120;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 20px;
}

.image-editor-modal[hidden] {
    display: none;
}

.image-editor-backdrop {
    position: absolute;
    inset: 0;
    background: rgba(7, 20, 48, 0.62);
}

.image-editor-dialog {
    position: relative;
    z-index: 1;
    width: min(760px, 100%);
    border-radius: 18px;
    border: 1px solid #d5e0ef;
    background: #ffffff;
    box-shadow: 0 24px 50px rgba(7, 20, 48, 0.22);
    padding: 16px;
    display: grid;
    gap: 12px;
}

.image-editor-head {
    display: flex;
    justify-content: space-between;
    gap: 12px;
    align-items: flex-start;
}

.image-editor-head h3 {
    margin: 0;
}

.image-editor-head p {
    margin: 4px 0 0;
    color: var(--muted);
    font-size: 0.92rem;
}

.image-editor-body {
    display: grid;
    gap: 12px;
}

.image-source-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    align-items: center;
}

.paste-zone {
    border: 1px dashed #b9cae4;
    border-radius: 12px;
    padding: 12px;
    background: #f7faff;
    color: #4e6287;
    text-align: center;
    outline: none;
}

.paste-zone:focus {
    border-color: #0b2d77;
    box-shadow: 0 0 0 3px rgba(11, 45, 119, 0.12);
}

.crop-editor-shell {
    display: grid;
    gap: 10px;
    justify-items: center;
}

.crop-canvas {
    width: min(400px, 100%);
    height: auto;
    border-radius: 16px;
    border: 1px solid #dbe4f0;
    background: #eef4fc;
    cursor: grab;
}

.crop-zoom-control {
    width: min(400px, 100%);
    display: grid;
    gap: 6px;
    color: #17305e;
}

.item-line-main {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    min-width: 0;
}

.admin-item-thumb {
    width: 72px;
    height: 54px;
    border-radius: 8px;
    object-fit: cover;
}

/* Modal de Pagamento do Mercado Pago */
.mp-pay-overlay {
    position: fixed;
    inset: 0;
    z-index: 100;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 16px;
    background: rgba(6, 20, 46, 0.74);
    backdrop-filter: blur(3px);
}

.mp-pay-overlay[hidden] {
    display: none !important;
}

.mp-pay-backdrop {
    position: absolute;
    inset: 0;
    cursor: pointer;
}

.mp-pay-modal {
    position: relative;
    z-index: 101;
    width: min(90vw, 720px);
    height: min(90vh, 900px);
    border-radius: 18px;
    border: 1px solid #d3dff0;
    background: #ffffff;
    box-shadow: 0 24px 52px rgba(8, 24, 56, 0.26);
    display: flex;
    flex-direction: column;
    overflow: hidden;
}

.mp-pay-close {
    position: absolute;
    top: 14px;
    right: 14px;
    z-index: 102;
    width: 36px;
    height: 36px;
    border: none;
    border-radius: 6px;
    background: #f0f3f8;
    color: #0f2f5f;
    font-size: 1.5rem;
    line-height: 1;
    cursor: pointer;
    transition: background 0.2s;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 0;
}

.mp-pay-close:hover {
    background: #e3e9f3;
}

[data-pay-frame] {
    flex: 1;
    border: none;
    width: 100%;
    height: 100%;
    overflow: auto;
}

.image-expand-modal {
    position: fixed;
    inset: 0;
    z-index: 130;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 20px;
}

.image-expand-modal[hidden] {
    display: none;
}

.image-expand-backdrop {
    position: absolute;
    inset: 0;
    background: rgba(8, 20, 48, 0.75);
}

.image-expand-dialog {
    position: relative;
    z-index: 1;
    width: min(920px, 100%);
    display: grid;
    gap: 10px;
    justify-items: end;
}

.image-expand-close {
    text-decoration: none;
}

.image-expand-preview {
    width: 100%;
    max-height: 78vh;
    object-fit: contain;
    border-radius: 14px;
    border: 1px solid #d4deec;
    background: #ffffff;
}

.image-editor-footer {
    display: flex;
    justify-content: space-between;
    gap: 10px;
    align-items: center;
}

body.has-modal-open {
    overflow: hidden;
}

.panel-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 8px;
}

.panel-head-actions {
    display: inline-flex;
    gap: 6px;
    align-items: center;
}

.panel-head-actions form {
    margin: 0;
}

.panel-head-actions a.btn-ghost {
    text-decoration: none;
}

.reorder-form {
    margin-top: 10px;
    border: 1px solid #dbe4f0;
    border-radius: 12px;
    padding: 10px;
    background: #f8fbff;
}

.reorder-list {
    list-style: none;
    margin: 0 0 10px;
    padding: 0;
    display: grid;
    gap: 6px;
}

.reorder-list li {
    border: 1px solid #d4deec;
    background: #ffffff;
    border-radius: 10px;
    padding: 8px 10px;
    display: flex;
    align-items: center;
    gap: 8px;
    cursor: grab;
}

.reorder-list li.is-dragging {
    opacity: 0.6;
}

.drag-handle {
    color: #5b6f90;
    font-weight: 700;
    letter-spacing: 0.08em;
}

.grouped-admin-list {
    display: grid;
    gap: 12px;
    margin-top: 10px;
}

.admin-item-group {
    border: 1px solid #dbe4f0;
    border-radius: 12px;
    padding: 10px;
    background: linear-gradient(180deg, #fbfdff, #f4f8fe);
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.7);
}

.admin-item-group:nth-child(even) {
    background: linear-gradient(180deg, #f7faff, #eef4fc);
}

.admin-item-group h3 {
    margin: 0 0 8px;
    color: #17305e;
    font-size: 0.98rem;
    padding: 6px 8px;
    border-radius: 8px;
    background: rgba(16, 46, 109, 0.06);
}

.admin-item-group .entity-list,
.admin-item-group .reorder-list {
    margin-top: 0;
    margin-bottom: 0;
}

.entity-list {
    list-style: none;
    margin: 10px 0 0;
    padding: 0;
    display: grid;
    gap: 6px;
}

.entity-list li {
    border: 1px solid #dbe4f0;
    border-radius: 10px;
    padding: 8px;
    display: grid;
    grid-template-columns: 1fr auto auto;
    gap: 8px;
    align-items: center;
}

.inline-reference {
    display: block;
    margin-top: 3px;
    color: var(--muted);
    font-size: 0.78rem;
    line-height: 1.35;
}

.row-actions-inline {
    display: inline-flex;
    align-items: center;
    gap: 6px;
}

.row-actions-inline form {
    margin: 0;
}

.row-actions-inline a.btn-ghost {
    text-decoration: none;
    display: inline-flex;
    align-items: center;
    justify-content: center;
}

.entity-list.stacked li {
    grid-template-columns: 1fr auto auto;
}

.login-wrap {
    min-height: 100vh;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 16px;
}

.login-card {
    width: 100%;
    max-width: 420px;
    border: 1px solid var(--line);
    border-radius: var(--radius-lg);
    background: #ffffff;
    padding: 16px;
    box-shadow: var(--shadow);
    text-align: center;
}

.login-card h1 {
    margin: 10px 0 0;
}

.login-card p {
    margin: 6px 0 0;
    color: var(--muted);
}

@media (max-width: 980px) {
    .dashboard-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

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

    .order-main {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .orders-cleanup-box {
        align-items: flex-start;
    }
}

@media (max-width: 720px) {
    .supplier-control-heading,
    .supplier-request-head {
        align-items: flex-start;
        flex-direction: column;
    }

    .supplier-control-heading .btn-ghost,
    .supplier-change-form button,
    .supplier-status-form button {
        width: 100%;
    }

    .supplier-change-form,
    .supplier-status-form,
    .supplier-request-values {
        grid-template-columns: 1fr;
    }

    .supplier-message-actions {
        flex-direction: column;
    }

    .supplier-message-actions > *,
    .supplier-send-form {
        flex-basis: auto;
        width: 100%;
    }

    .order-actions-grid details .supplier-request-items li {
        align-items: flex-start;
        flex-direction: column;
        gap: 2px;
    }

    .payment-receipt {
        margin-top: 10px;
    }

    .payment-receipt-success {
        grid-template-columns: 1fr;
        padding: 18px;
    }

    .payment-receipt-check {
        width: 50px;
        height: 50px;
    }

    .payment-receipt-paper {
        padding: 16px;
    }

    .payment-receipt-grid {
        grid-template-columns: 1fr;
    }

    .payment-receipt-total strong {
        font-size: 1.35rem;
    }

    .payment-receipt-home {
        width: 100%;
    }

    .admin-page,
    .panel,
    .admin-toolbar,
    .orders-compact-wrap {
        min-width: 0;
        max-width: 100%;
    }

    .admin-page {
        padding-inline: 8px;
    }

    .panel {
        padding: 10px;
    }

    .panel-head {
        align-items: flex-start;
    }

    .orders-compact-wrap {
        overflow: visible;
    }

    .orders-compact-table {
        display: block;
        width: 100%;
        min-width: 0;
    }

    .orders-compact-table thead {
        display: none;
    }

    .orders-compact-table tbody {
        display: grid;
        gap: 10px;
    }

    .orders-compact-table tr {
        display: grid;
        width: 100%;
        min-width: 0;
        border: 1px solid #d7e2f0;
        border-radius: 12px;
        background: #ffffff;
        box-shadow: 0 4px 12px rgba(10, 39, 88, 0.06);
        overflow: hidden;
    }

    .orders-compact-table td {
        display: grid;
        grid-template-columns: 88px minmax(0, 1fr);
        gap: 8px;
        align-items: start;
        width: 100%;
        min-width: 0;
        padding: 9px 10px;
        border-bottom: 1px solid #e8eef7;
        overflow-wrap: anywhere;
    }

    .orders-compact-table td:last-child {
        border-bottom: 0;
    }

    .orders-compact-table td::before {
        content: attr(data-label);
        color: #173762;
        font-weight: 700;
    }

    .orders-compact-table td:last-child {
        grid-template-columns: 1fr;
    }

    .orders-compact-table td:last-child::before {
        margin-bottom: 2px;
    }

    .orders-compact-table .orders-empty-cell {
        display: block;
        padding: 14px;
        text-align: center;
    }

    .orders-compact-table .orders-empty-cell::before {
        content: none;
    }

    .order-actions-grid,
    .order-actions-grid details,
    .order-delete-form,
    .order-delete-form button {
        width: 100%;
        min-width: 0;
    }

    .orders-cleanup-box {
        display: grid;
        grid-template-columns: 1fr;
    }

    .orders-cleanup-form,
    .orders-cleanup-form button,
    .toolbar-form button {
        width: 100%;
    }

    .summary-card {
        grid-template-columns: 1fr;
    }

    .summary-item + .summary-item {
        border-left: 0;
        border-top: 1px solid var(--line);
    }

    .sticky-header {
        gap: 6px;
        padding: 8px 10px 10px;
    }

    .sticky-header-main {
        width: 100%;
        gap: 8px;
    }

    .sticky-header .trip-banner-card {
        padding: 7px 8px;
    }

    .category-strip {
        width: 100%;
        padding: 7px;
    }

    .two-cols,
    .toolbar-form,
    .form-inline,
    .form-grid {
        grid-template-columns: 1fr;
    }

    .category-checkbox-grid {
        grid-template-columns: 1fr;
    }

    .source-type-picker,
    .success-info-grid {
        grid-template-columns: 1fr;
    }

    .review-grid {
        grid-template-columns: 1fr;
    }

    .mp-checkout-inline-grid,
    .mp-checkout-inline-actions {
        grid-template-columns: 1fr;
    }

    .review-item {
        grid-template-columns: 52px minmax(0, 1fr);
    }

    .review-item-total {
        grid-column: 2;
        justify-self: start;
    }

    .review-actions {
        display: grid;
        grid-template-columns: 1fr;
        gap: 8px;
        width: 100%;
    }

    .review-accept-form,
    .mp-checkout-inline-grid,
    .mp-checkout-inline-actions {
        width: 100%;
        min-width: 0;
    }

    .review-pay-btn,
    .review-back-btn {
        width: 100%;
        min-width: 0;
    }

    .review-actions .review-back-btn {
        order: -1;
    }

    .about-footer-grid {
        grid-template-columns: 1fr;
    }

    .addon-top {
        grid-template-columns: 84px minmax(0, 1fr) auto 20px;
        column-gap: 10px;
    }

    .addon-image {
        width: 84px;
        height: 64px;
    }

    .addon-main {
        padding-left: 2px;
    }

    .addon-price-wrap {
        text-align: right;
        min-width: 0;
    }

    .addon-package-extra-card {
        grid-template-columns: 1fr;
        justify-items: start;
    }

    .total-box {
        flex-direction: column;
        align-items: stretch;
    }

    .total-box-actions {
        justify-items: stretch;
    }

    .cart-clear-link {
        justify-self: center;
    }

    .btn-confirm {
        width: 100%;
    }

    .sticky-cart-confirm {
        width: auto;
    }

    .dashboard-grid {
        grid-template-columns: 1fr;
    }

    .entity-list li,
    .entity-list.stacked li {
        grid-template-columns: 1fr;
    }

    .item-image-card,
    .image-editor-head,
    .image-editor-footer {
        grid-template-columns: 1fr;
        display: grid;
    }
}

@media (min-width: 980px) {
    .sticky-cart {
        left: 50%;
        transform: translateX(-50%);
        width: min(760px, calc(100vw - 24px));
        right: auto;
    }
}

/*
 * Desktop public storefront
 * Keep the current mobile/tablet experience untouched and use the extra
 * horizontal space only on larger screens.
 */
@media (min-width: 1100px) {
    .public-body .sticky-header-main,
    .public-body .category-strip,
    .public-body .app-shell {
        width: min(1180px, calc(100vw - 48px));
        max-width: 1180px;
    }

    .public-body .page {
        padding-right: 24px;
        padding-left: 24px;
    }

    .public-body .sticky-header-main {
        justify-content: space-between;
    }

    .public-body .sticky-logo {
        width: 190px;
    }

    .public-body .sticky-header .trip-banner-card {
        flex: 0 1 520px;
    }

    .public-body .category-strip-track {
        display: flex;
        justify-content: center;
        padding-right: 2px;
    }

    .public-body .about-footer-video video {
        max-height: 360px;
        object-fit: cover;
    }

    .public-body .category-block {
        padding: 16px;
    }

    .public-body .category-head {
        margin-bottom: 12px;
    }

    .public-body .addons-list {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 12px;
    }

    .public-body .addon-item {
        height: 100%;
        padding: 12px;
    }

    .public-body .sticky-cart {
        width: min(1180px, calc(100vw - 48px));
    }
}
