/**
 * WP EasyCart Admin — Order Details V2.2
 * Full replacement. The template no longer carries legacy ec_admin_* layout
 * classes, so V1 admin.css cannot bleed in; the few remaining legacy touch
 * points ( payment badge id, PRO-printed heading class, initial_hide ) are
 * overridden explicitly at the end.
 */

/* ==================================================================
   Header
   ================================================================== */
.ecodv2-header { align-items: flex-start; }
.ecodv2-header .ecdv2-header-title { font-size: 21px; font-weight: 700; letter-spacing: -.3px; }
.ecodv2-header .ecdv2-header-sub { display: flex; align-items: center; flex-wrap: wrap; gap: 6px; font-size: 12px; color: var(--ecv2-g500); margin-top: 2px; }
.ecodv2-meta-customer { color: var(--ecv2-g700); font-weight: 500; }
.ecodv2-meta-email { color: var(--ecv2-blue, #2563eb); text-decoration: none; }
.ecodv2-meta-email:hover { text-decoration: underline; }
.ecodv2-inline-edit { cursor: pointer; color: var(--ecv2-g400); margin-left: 2px; }
.ecodv2-inline-edit:hover { color: var(--ecv2-primary); }
.ecodv2-inline-edit .dashicons { font-size: 13px; width: 13px; height: 13px; margin-top:3px; }
.ecodv2-date-form { display: inline-flex; align-items: center; gap: 6px; }
.ecodv2-date-form input { border: 1px solid var(--ecv2-g300); border-radius: 8px; padding: 5px 10px; font-size: 12px; width: 150px; }
.ecodv2-inline-save { padding: 4px 8px !important; }
.ecodv2-inline-save .dashicons { font-size: 14px; width: 14px; height: 14px; }

.ecodv2-fulfill-badge { display: inline-flex; align-items: center; gap: 4px; padding: 3px 12px; border-radius: 999px; font-size: 11.5px; font-weight: 600; margin: 4px 0 0 2px; }
.ecodv2-fulfill-badge .dashicons { font-size: 13px; width: 13px; height: 13px; }
.ecodv2-fulfill-badge-ok { background: var(--ecv2-primary-soft, #dcfce7); color: var(--ecv2-primary-deep, #166534); }
.ecodv2-fulfill-badge-pickup { background: #eff6ff; color: #1d4ed8; }
.ecodv2-fulfill-badge-warn { background: #fef3c7; color: #92400e; }

.ecodv2-status-wrap { margin: 0 4px; min-width: 190px; }
.ecodv2-nav { display: flex; gap: 4px; }
.ecodv2-nav-disabled { opacity: .35; pointer-events: none; }

.ecodv2-menu-wrap { position: relative; }
.ecdv2-menu { position: absolute; top: calc(100% + 6px); right: 0; min-width: 220px; background: #fff; border: 1px solid var(--ecv2-g200); border-radius: 10px; box-shadow: 0 10px 30px rgba(0,0,0,.12); padding: 6px; z-index: 500; display: none; }
.ecdv2-menu.is-open { display: block; }
.ecdv2-menu a { display: flex; align-items: center; gap: 8px; padding: 7px 10px; border-radius: 7px; font-size: 12.5px; color: var(--ecv2-g700); text-decoration: none; }
.ecdv2-menu a:hover { background: var(--ecv2-g100); }
.ecdv2-menu a .dashicons { font-size: 15px; width: 15px; height: 15px; color: var(--ecv2-g400); }
.ecdv2-menu-sep { height: 1px; background: var(--ecv2-g100); margin: 5px 4px; }
.ecodv2-menu-vids { display: contents; }
.ecodv2-menu-vids:empty { display: none; }

/* ==================================================================
   Layout
   ================================================================== */
.ecodv2-body { display: grid; grid-template-columns: minmax(0, 1fr) 350px; gap: 16px; align-items: start; }
.ecodv2-main { display: flex; flex-direction: column; gap: 16px; min-width: 0; }
.ecodv2-side { min-width: 0; }
.ecodv2-side-inner { display: flex; flex-direction: column; gap: 16px; float: none; width: 100%; padding: 0; }
.ecodv2-side-inner .ecdv2-card { margin: 0; }
@media ( max-width: 1080px ) {
	.ecodv2-body { grid-template-columns: 1fr; }
}
.ecodv2-visually-hidden { position: absolute !important; width: 1px !important; height: 1px !important; padding: 0 !important; margin: -1px !important; overflow: hidden !important; clip: rect(0 0 0 0) !important; border: 0 !important; }

/* ==================================================================
   Fulfillment banner
   ================================================================== */
.ecodv2-fulfill-banner { display: flex; align-items: center; gap: 10px; padding: 11px 16px; font-size: 13px; font-weight: 500; flex-wrap: wrap; border-bottom: 1px solid var(--ecv2-g100); }
.ecodv2-fulfill-banner .dashicons { font-size: 17px; width: 17px; height: 17px; }
.ecodv2-fulfill-banner-fulfilled { background: #f0fdf4; color: var(--ecv2-primary-deep, #166534); border-left: 4px solid var(--ecv2-primary); }
.ecodv2-fulfill-banner-pickup { background: #eff6ff; color: #1d4ed8; border-left: 4px solid #2563eb; }
.ecodv2-fulfill-banner-unfulfilled { background: #fffbeb; color: #92400e; border-left: 4px solid var(--ecv2-amber, #f59e0b); }
.ecodv2-fulfill-banner-none { background: var(--ecv2-g50); color: var(--ecv2-g500); border-left: 4px solid var(--ecv2-g300); }
.ecodv2-fulfill-banner .ecv2-btn { margin-left: auto; }
.ecodv2-fulfill-banner .ecv2-btn ~ .ecv2-btn { margin-left: 0; }

/* ==================================================================
   Items card: toolbar + more-menu
   ================================================================== */
.ecodv2-item-actions { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; padding: 0 0 12px; margin: 0 0 4px; border-bottom: 1px solid var(--ecv2-g100); }
.ecodv2-item-actions .ecv2-btn .dashicons { font-size: 14px; width: 14px; height: 14px; margin-top: 2px; }
.ecodv2-toolbar-more { position: relative; }
.ecodv2-toolbar-menu { left: 0; right: auto; min-width: 240px; }
/* Hook output ( PRO buttons / links ) renders as menu rows regardless of tag. */
.ecodv2-toolbar-menu > a,
.ecodv2-toolbar-menu > button,
.ecodv2-toolbar-menu > input[type="submit"] { display: flex; width: 100%; align-items: center; gap: 8px; padding: 7px 10px; margin: 0; border: none; background: transparent; border-radius: 7px; font-size: 12.5px; color: var(--ecv2-g700); text-align: left; cursor: pointer; text-transform: none; box-shadow: none; }
.ecodv2-toolbar-menu > a:hover,
.ecodv2-toolbar-menu > button:hover,
.ecodv2-toolbar-menu > input[type="submit"]:hover { background: var(--ecv2-g100); color: var(--ecv2-g900); }
.ecodv2-refund-error { display: none; margin: 0 0 10px; padding: 9px 14px; border-radius: 8px; background: #fee2e2; color: #991b1b; font-size: 12.5px; }

.ecodv2-line-items { float: none; width: 100%; padding: 0; }

/* Line item rows. DOM order: details / price / total / actions. */
.ecodv2-line-items .ec_admin_order_details_line_item { display: grid; grid-template-columns: minmax(0, 1fr) 130px 100px 70px; gap: 14px; align-items: start; padding: 13px 0; border-bottom: 1px solid var(--ecv2-g100); float: none; width: 100%; }
.ecodv2-line-items .ec_admin_order_details_item_details { float: none; width: auto; min-width: 0; font-size: 13px; color: var(--ecv2-g900); line-height: 1.5; }
.ecodv2-line-items .ec_admin_order_details_item_details > span.ecodv2-line-title,
.ecodv2-line-items .ec_admin_order_details_item_details > span { float: none; width: auto; display: block; font-size: 13px; font-weight: 600; margin: 0 0 2px; line-height: 1.5; }
.ecodv2-line-items .ec_admin_order_details_item_details a { color: var(--ecv2-g900); text-decoration: none; }
.ecodv2-line-items .ec_admin_order_details_item_details a:hover { color: var(--ecv2-primary); }
/* 6.0.0: product title links to the product editor ( new tab ) while the product still exists. */
.ecodv2-line-items .ec_admin_order_details_item_details > a.ecodv2-line-title-link { display: flex; align-items: center; gap: 4px; width: fit-content; max-width: 100%; margin: 0 0 2px; font-size: 13px; font-weight: 600; line-height: 1.5; }
.ecodv2-line-items .ecodv2-line-title-link .ecodv2-line-title { display: inline; min-width: 0; overflow-wrap: anywhere; }
.ecodv2-line-items .ecodv2-line-title-link:hover .ecodv2-line-title,
.ecodv2-line-items .ecodv2-line-title-link:focus-visible .ecodv2-line-title { text-decoration: underline; text-underline-offset: 2px; }
.ecodv2-line-title-ext { flex: 0 0 auto; font-size: 13px; width: 13px; height: 13px; color: var(--ecv2-g400); }
.ecodv2-line-title-link:hover .ecodv2-line-title-ext,
.ecodv2-line-title-link:focus-visible .ecodv2-line-title-ext { color: var(--ecv2-primary); }
/* 6.0.0: status chips ( Refunded, Download, Gift Card, ... ) sit beside the title as small pills.
   The generic "> span" rule above makes every direct child a block, which stretched them across the row. */
.ecodv2-line-items .ec_admin_order_details_item_details > span.ecodv2-line-title { display: inline-block; vertical-align: middle; max-width: 100%; }
.ecodv2-line-items .ec_admin_order_details_item_details > a.ecodv2-line-title-link { display: inline-flex; vertical-align: middle; margin-bottom: 0; }
.ecodv2-line-items .ec_admin_order_details_item_details > span.ecodv2-chip { display: inline-flex; width: auto; margin: 0 0 2px 6px; font-size: 10.5px; font-weight: 600; line-height: 1.6; vertical-align: middle; }
.ecodv2-item-meta { font-size: 11.5px; color: var(--ecv2-g500); line-height: 1.7; }
.ecodv2-item-meta .ec_details_option_label { display: inline; float: none; font-size: 11.5px; color: var(--ecv2-g400); font-weight: 500; margin: 0; line-height: inherit; }
.ecodv2-item-meta .ec_details_option_value { display: inline; float: none; font-size: 11.5px; color: var(--ecv2-g600); margin: 0 8px 0 2px; line-height: inherit; }
.ecodv2-item-meta .ec_details_option_value a { color: var(--ecv2-blue, #2563eb); }
.ecodv2-item-meta .ec_details_option_pricing { font-size: 11px; color: var(--ecv2-g400); }
.ecodv2-item-meta .ec_order_download_key { margin-top: 4px; }
.ecodv2-line-chips { float: none !important; width: 100% !important; display: flex !important; flex-wrap: wrap; gap: 5px; margin: 2px 0 5px !important; }
.ecodv2-chip { display: inline-flex; align-items: center; padding: 2px 9px; border-radius: 999px; font-size: 10.5px; font-weight: 600; line-height: 1.6; white-space: nowrap; }
.ecodv2-chip-gift { background: #fce7f3; color: #9d174d; text-transform: uppercase; }
.ecodv2-chip-bundle { background: var(--ecv2-g100); color: var(--ecv2-g600); text-transform: uppercase; }
.ecodv2-chip-offer { background: var(--ecv2-primary-soft, #dcfce7); color: var(--ecv2-primary-deep, #166534); }
.ecodv2-line-items .ec_admin_order_details_item_price { float: none; width: auto; text-align: right; font-size: 12.5px; color: var(--ecv2-g500); white-space: nowrap; line-height: 1.6; padding: 0; }
.ecodv2-chip-refunded { background: #fee2e2; color: #b91c1c; }
.ecodv2-line-items .ec_admin_order_details_item_price > span { font-weight: 400; font-size: 11px; color: var(--ecv2-g400); }
.ecodv2-line-items .ec_admin_order_details_item_price > input { min-width: 60px !important; width: 60px; margin: 0 0 0 4px; border: 1px solid var(--ecv2-g300); border-radius: 7px; padding: 4px 7px; text-align: right; }
.ecodv2-line-items .ec_admin_order_details_item_total { float: none; width: auto; text-align: right; font-size: 13px; font-weight: 600; color: var(--ecv2-g900); font-variant-numeric: tabular-nums; white-space: nowrap; line-height: 1.6; }
.ecodv2-line-items .ec_admin_order_details_item_actions { float: none; width: auto; display: flex; justify-content: flex-end; gap: 4px; line-height: 1; text-align: right; }
.ecodv2-line-items .ec_admin_order_details_item_actions > div { float: none; line-height: 1; width: 28px; height: 28px; border-radius: 6px; display: flex; align-items: center; justify-content: center; color: var(--ecv2-g400); cursor: pointer; transition: all .15s ease; }
.ecodv2-line-items .ec_admin_order_details_item_actions > div:before { background: transparent !important; border-radius: 0 !important; margin: 0 !important; padding: 0 !important; color: inherit !important; font-size: 16px; }
.ecodv2-line-items .ec_admin_order_details_item_actions > div.dashicons-edit:hover,
.ecodv2-line-items .ec_admin_order_details_item_actions > div.dashicons-yes:hover { background: var(--ecv2-g100); color: var(--ecv2-g700); }
.ecodv2-line-items .ec_admin_order_details_item_actions > div.dashicons-yes { color: var(--ecv2-primary); }
.ecodv2-line-items .ec_admin_order_details_item_actions > div.dashicons-trash:hover { background: #fee2e2; color: #991b1b; }
.ecodv2-line-items .ec_admin_order_details_item_price_edit,
.ecodv2-line-items .ec_admin_order_details_item_total_edit { grid-column: 1 / -1; clear: none; float: none; width: 100%; margin: 4px 0 0; }
.ecodv2-line-items .ec_admin_order_details_line_item_offers { float: none; width: 100%; }
@media ( max-width: 700px ) {
	.ecodv2-line-items .ec_admin_order_details_line_item { grid-template-columns: minmax(0, 1fr) 90px 34px; }
	.ecodv2-line-items .ec_admin_order_details_item_price { display: none; }
}

/* Offers panel: quiet summary line + expandable detail. */
.ecodv2-offers-panel { float: none; width: 100%; margin-top: 2px; border-top: 1px dashed var(--ecv2-g200); }
.ecodv2-offers-line { display: flex; align-items: center; gap: 8px; padding: 11px 0 4px; font-size: 12.5px; color: var(--ecv2-g600); cursor: pointer; user-select: none; }
.ecodv2-offers-line-icon { color: var(--ecv2-primary); font-size: 15px; width: 15px; height: 15px; }
.ecodv2-offers-line-label { font-weight: 600; color: var(--ecv2-g800); }
.ecodv2-offers-line-toggle { font-size: 11px; color: var(--ecv2-g400); display: inline-flex; align-items: center; gap: 2px; }
.ecodv2-offers-line-toggle .dashicons { font-size: 11px; width: 11px; height: 11px; transition: transform .15s ease; }
.ecodv2-offers-panel.is-open .ecodv2-offers-line-toggle .dashicons { transform: rotate(180deg); }
.ecodv2-offers-line-amount { margin-left: auto; font-weight: 600; color: var(--ecv2-primary-deep, #166534); font-variant-numeric: tabular-nums; }
.ecodv2-offers-detail { display: none; padding: 2px 0 6px; }
.ecodv2-offers-panel.is-open .ecodv2-offers-detail { display: block; }
.ecodv2-offers-row { display: flex; justify-content: space-between; align-items: center; gap: 10px; padding: 4px 0 4px 23px; font-size: 12px; color: var(--ecv2-g600); }
.ecodv2-offers-left { display: inline-flex; align-items: center; gap: 6px; min-width: 0; }
.ecodv2-offers-left .dashicons { font-size: 13px; width: 13px; height: 13px; color: var(--ecv2-g400); }
.ecodv2-offers-left a { color: var(--ecv2-blue, #2563eb); text-decoration: none; }
.ecodv2-offers-left a:hover { text-decoration: underline; }
.ecodv2-offers-code { color: var(--ecv2-g400); font-family: ui-monospace, SFMono-Regular, Menlo, monospace; font-size: 11px; }
.ecodv2-offers-deleted { color: var(--ecv2-g400); font-style: italic; font-size: 11px; }
.ecodv2-offers-amount { font-variant-numeric: tabular-nums; color: var(--ecv2-primary-deep, #166534); font-weight: 600; }
.ecodv2-offers-applied { color: var(--ecv2-g400); font-size: 11px; }
.ecodv2-offers-note { padding: 6px 0 0 23px; font-size: 11px; color: var(--ecv2-g400); font-style: italic; }

/* ==================================================================
   Payment & Totals
   ================================================================== */
.ecdv2-card-header-actions { margin-left: auto; display: flex; align-items: center; gap: 8px; }
.ecodv2-header-edit { display: inline-flex; align-items: center; gap: 4px; padding: 3px 10px; border: 1px solid var(--ecv2-g300); border-radius: 6px; background: #fff; font-size: 12px; color: var(--ecv2-g600); cursor: pointer; position: static; }
.ecodv2-header-edit:hover { border-color: var(--ecv2-primary); color: var(--ecv2-primary); }
.ecodv2-header-edit .dashicons-before:before { font-size: 13px; margin: 3px 0 -5px -5px; padding: 0px; }

.ecodv2-totals-box { float: none; width: 100%; padding: 0; background: transparent; border: none; }
.ecodv2-totals-box #ec_admin_order_details_totals_content { max-width: 380px; margin-left: auto; float: none; width: 100%; }
.ecodv2-trow { display: flex; justify-content: space-between; align-items: baseline; gap: 12px; padding: 5px 0; float: none; width: auto; }
.ecodv2-trow-label { font-size: 13px; color: var(--ecv2-g600); float: none; width: auto; background: transparent; padding: 0; }
.ecodv2-trow-total { font-size: 13px; color: var(--ecv2-g800); font-variant-numeric: tabular-nums; float: none; width: auto; text-align: right; background: transparent; padding: 0; }
.ecodv2-trow .ecodv2-discount-total { color: var(--ecv2-primary-deep, #166534); }
.ecodv2-trow-refund .ecodv2-trow-label,
.ecodv2-trow-refund .ecodv2-trow-total { color: var(--ecv2-danger, #dc2626); }
.ecodv2-grand-row { border-top: 2px solid var(--ecv2-g200); margin-top: 8px; padding-top: 10px; }
.ecodv2-grand-row .ecodv2-trow-label,
.ecodv2-grand-row .ecodv2-trow-total { font-weight: 700; font-size: 14.5px; color: var(--ecv2-g900); }
/* 6.0.2: Paid and the balance under the grand total ( wp_easycart_order_payments ). */
.ecodv2-trow.ecodv2-trow-balance { margin-top: 4px; padding: 7px 10px; border-radius: 8px; background: var(--ecv2-g50, #f9fafb); }
/* 6.0.2: each payment of an order paid more than once ( wp_easycart_order_refunds ). */
.ecodv2-payments { margin-top: 12px; padding-top: 10px; border-top: 1px solid var(--ecv2-g200, #e5e7eb); display: flex; flex-direction: column; gap: 8px; }
.ecodv2-payments-title { font-size: 11px; font-weight: 700; text-transform: uppercase; letter-spacing: .04em; color: var(--ecv2-g500, #6b7280); }
.ecodv2-payment { display: flex; justify-content: space-between; align-items: flex-start; gap: 12px; font-size: 13px; }
.ecodv2-payment-main { display: flex; flex-direction: column; gap: 1px; min-width: 0; }
.ecodv2-payment-name { font-weight: 600; color: var(--ecv2-g800, #1f2937); }
.ecodv2-payment-meta { color: var(--ecv2-g500, #6b7280); overflow-wrap: anywhere; }
.ecodv2-payment-note { font-size: 12px; color: var(--ecv2-g500, #6b7280); }
.ecodv2-payment.is-record .ecodv2-payment-note { color: #92400e; }
.ecodv2-payment-amounts { display: flex; flex-direction: column; align-items: flex-end; flex: 0 0 auto; font-variant-numeric: tabular-nums; }
.ecodv2-payment-amount { font-weight: 600; }
.ecodv2-payment-refunded { font-size: 12px; color: #b91c1c; }
.ecodv2-trow.ecodv2-trow-balance > div:first-child,
.ecodv2-trow.ecodv2-trow-balance > div:last-child { font-weight: 600; color: var(--ecv2-g800, #1f2937); }
.ecodv2-trow.ecodv2-trow-balance.is-partial,
.ecodv2-trow.ecodv2-trow-balance.is-unpaid { background: #fff7ed; }
.ecodv2-trow.ecodv2-trow-balance.is-partial > div:first-child,
.ecodv2-trow.ecodv2-trow-balance.is-partial > div:last-child,
.ecodv2-trow.ecodv2-trow-balance.is-unpaid > div:first-child,
.ecodv2-trow.ecodv2-trow-balance.is-unpaid > div:last-child { color: #9a3412; }
.ecodv2-trow.ecodv2-trow-balance.is-overpaid { background: #eff6ff; }
.ecodv2-trow.ecodv2-trow-balance.is-overpaid > div:first-child,
.ecodv2-trow.ecodv2-trow-balance.is-overpaid > div:last-child { color: #1d4ed8; }
.ecodv2-trow.ecodv2-trow-balance.is-paid { padding-left: 0; padding-right: 0; background: transparent; }
.ecodv2-balance-pill { display: none; align-items: center; gap: 2px; padding: 1px 9px 1px 5px; border-radius: 999px; background: #ecfdf5; color: #047857; font-size: 12px; font-weight: 600; line-height: 1.6; }
.ecodv2-balance-pill .dashicons { font-size: 16px; width: 16px; height: 16px; }
.ecodv2-trow-balance.is-paid .ecodv2-balance-amount { display: none; }
.ecodv2-trow-balance.is-paid .ecodv2-balance-pill { display: inline-flex; }

/* Gift card & coupon disclosure. */
.ecodv2-payment-meta { margin-top: 14px; border-top: 1px dashed var(--ecv2-g200); padding-top: 10px; }
.ecodv2-payment-meta summary { display: flex; align-items: center; gap: 7px; font-size: 12.5px; font-weight: 600; color: var(--ecv2-g700); cursor: pointer; list-style: none; user-select: none; }
.ecodv2-payment-meta summary::-webkit-details-marker { display: none; }
.ecodv2-payment-meta summary .dashicons { font-size: 15px; width: 15px; height: 15px; color: var(--ecv2-g400); }
.ecodv2-payment-meta summary:after { content: "\f347"; font-family: dashicons; font-size: 12px; color: var(--ecv2-g400); margin-left: auto; transition: transform .15s ease; }
.ecodv2-payment-meta[open] summary:after { transform: rotate(180deg); }
.ecodv2-payment-meta-none { font-size: 11px; font-weight: 400; color: var(--ecv2-g400); }
.ecodv2-payment-meta-fields { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; padding-top: 10px; }
.ecodv2-payment-meta-fields fieldset,
.ecodv2-payment-meta-fields .wp-easycart-admin-field-container { border: none; padding: 0; margin: 0; min-width: 0; }
.ecodv2-payment-meta-fields label { display: block; font-size: 11px; font-weight: 600; color: var(--ecv2-g500); margin-bottom: 4px; }
.ecodv2-payment-meta-fields input { width: 100%; min-width: 0 !important; border: 1px solid var(--ecv2-g300); border-radius: 9px; padding: 8px 11px; font-size: 12.5px; float: none; }
.ecodv2-payment-meta-fields input:focus { outline: none; border-color: var(--ecv2-primary); box-shadow: 0 0 0 3px rgba(22,163,74,.12); }
.ecodv2-payment-meta-fields .wp-easycart-admin-toggle-group-text,
.ecodv2-payment-meta-fields .wp_easycart_admin_no_padding { float: none; width: auto; padding: 0; display: contents; }
@media ( max-width: 700px ) { .ecodv2-payment-meta-fields { grid-template-columns: 1fr; } }

/* ==================================================================
   Totals editor ( edit form )
   ================================================================== */
.ecodv2-totals-editor { max-width: 420px; margin-left: auto; }
.ecodv2-editor-row { display: grid; grid-template-columns: 120px minmax(0, 1fr); align-items: center; gap: 10px; padding: 4px 0; }
.ecodv2-editor-row label { font-size: 12.5px; color: var(--ecv2-g600); font-weight: 500; text-align: left; }
.ecodv2-editor-row input,
.ecodv2-editor-row select { width: 100%; border: 1px solid var(--ecv2-g300); border-radius: 8px; padding: 7px 10px; font-size: 12.5px; text-align: right; min-width: 0; }
.ecodv2-editor-row input[type="text"] { text-align: left; }
.ecodv2-editor-row input:focus { outline: none; border-color: var(--ecv2-primary); box-shadow: 0 0 0 3px rgba(22,163,74,.12); }
.ecodv2-rate-pair { display: grid; grid-template-columns: 74px 12px minmax(0, 1fr); align-items: center; gap: 4px; }
.ecodv2-rate-pct { color: var(--ecv2-g400); font-size: 12px; }
.ecodv2-charge-hidden { display: none; }
.ecodv2-refund-label { color: var(--ecv2-danger, #dc2626) !important; }
.ecodv2-add-charge { position: relative; padding: 8px 0 4px; }
.ecodv2-add-charge-menu { left: 0; right: auto; top: calc(100% + 2px); min-width: 200px; }
.ecodv2-add-charge-menu a { display: flex; padding: 7px 10px; border-radius: 7px; font-size: 12.5px; color: var(--ecv2-g700); text-decoration: none; }
.ecodv2-add-charge-menu a:hover { background: var(--ecv2-g100); }
.ecodv2-editor-grand { border-top: 2px solid var(--ecv2-g200); margin-top: 8px; padding-top: 10px; }
.ecodv2-editor-grand label { font-weight: 700; font-size: 13.5px; color: var(--ecv2-g900); }
.ecodv2-editor-grand input { font-weight: 700; }
.ecodv2-grand-wrap { display: flex; flex-direction: column; gap: 3px; }
.ecodv2-grand-hint { font-size: 11px; color: var(--ecv2-g400); text-align: right; cursor: pointer; }
.ecodv2-grand-hint:hover { color: var(--ecv2-primary); }
.ecodv2-grand-hint:empty { display: none; }

/* ==================================================================
   Edit forms ( shared pattern )
   ================================================================== */
.ecodv2-form { float: none; width: 100%; margin-top: 12px; padding: 14px; background: var(--ecv2-g50); border: 1px solid var(--ecv2-g200); border-radius: 10px; }
.ecodv2-form-head { display: flex; align-items: center; justify-content: space-between; gap: 10px; margin-bottom: 10px; }
.ecodv2-form-head .ecv2-btn .dashicons { font-size: 13px; width: 13px; height: 13px; margin-top: 2px; }
.ecodv2-fields { display: flex; flex-direction: column; gap: 10px; }
.ecodv2-field { min-width: 0; }
.ecodv2-field label { display: block; font-size: 11px; font-weight: 600; color: var(--ecv2-g500); margin-bottom: 4px; }
.ecodv2-field input,
.ecodv2-field select { width: 100%; border: 1px solid var(--ecv2-g300); border-radius: 9px; padding: 8px 11px; font-size: 12.5px; color: var(--ecv2-g800); background: #fff; float: none; min-width: 0; }
.ecodv2-field input:focus,
.ecodv2-field select:focus { outline: none; border-color: var(--ecv2-primary); box-shadow: 0 0 0 3px rgba(22,163,74,.12); }
.ecodv2-field-pair { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
.ecodv2-field-inline { display: grid; grid-template-columns: 1fr 1fr; gap: 6px; }
@media ( max-width: 700px ) { .ecodv2-field-pair { grid-template-columns: 1fr; } }

/* ==================================================================
   Activity card ( main column )
   ================================================================== */
.ecodv2-pinned-note { margin: 14px 0; border: 1px solid var(--ecv2-g200); border-radius: 10px; padding: 10px 14px; background: var(--ecv2-g50); }
.ecodv2-pinned-note summary { display: flex; align-items: center; gap: 7px; font-size: 12.5px; font-weight: 600; color: var(--ecv2-g700); cursor: pointer; list-style: none; user-select: none; }
.ecodv2-pinned-note summary::-webkit-details-marker { display: none; }
.ecodv2-pinned-note summary .dashicons { font-size: 15px; width: 15px; height: 15px; color: var(--ecv2-g400); }
.ecodv2-pinned-note summary:after { content: "\f347"; font-family: dashicons; font-size: 12px; color: var(--ecv2-g400); margin-left: auto; transition: transform .15s ease; }
.ecodv2-pinned-note[open] summary:after { transform: rotate(180deg); }
.ecodv2-pinned-note-none { font-size: 11px; font-weight: 400; color: var(--ecv2-g400); }
.ecodv2-notes-box { float: none; width: 100%; padding: 10px 0 0; }
.ecodv2-notes-box textarea { width: 100%; min-height: 64px; border: 1px solid var(--ecv2-g300); border-radius: 9px; padding: 10px 12px; font-size: 13px; line-height: 1.5; resize: vertical; color: var(--ecv2-g800); float: none; background: #fff; }
.ecodv2-notes-box textarea:focus { outline: none; border-color: var(--ecv2-primary); box-shadow: 0 0 0 3px rgba(22,163,74,.12); }
.ecodv2-notes-foot { display: flex; justify-content: flex-end; margin-top: 8px; }
.ecodv2-notes-foot .ecv2-btn { float: none; }

/* ---- Activity timeline ( V4.2 — modernized, flat flow, no inner scrollbox ) ----
   Scoped to .ecodv2-history-wrap so the same rules style the expanded history
   drawer, whose body carries the class too. */
.ecodv2-card-activity .ecodv2-history-wrap { float: none; width: 100%; }
.ecodv2-history-wrap .wpeasycart-timeline-container,
.ecodv2-history-wrap .wpeasycart-timeline-container-inner { float: none; width: 100%; padding: 0; background: transparent; border: none; box-shadow: none; }
.ecodv2-history-wrap .wpeasycart-timeline-container-inner h4 { display: none; }
/* Flatten the legacy faux-scrollbox: every nested mask/offset/container from
   admin.css becomes a plain static block so history flows with the page. */
.ecodv2-history-wrap .wpeasycart-timline-scrollbox,
.ecodv2-history-wrap .wpeasycart-timline-scrollbox-content,
.ecodv2-history-wrap .wpeasycart-timline-scrollbox-content-mask,
.ecodv2-history-wrap .wpeasycart-timline-scrollbox-content-mask-offset,
.ecodv2-history-wrap .wpeasycart-timline-scrollbox-content-mask-container { position: static !important; height: auto !important; max-height: none !important; overflow: visible !important; border: none !important; padding: 0 !important; margin: 0 !important; width: 100% !important; scrollbar-width: auto; }
.ecodv2-history-wrap .wpeasycart-timline-scrollbox-content-mask-container::-webkit-scrollbar,
.ecodv2-history-wrap .wpeasycart-timline-scrollbox-content-mask-container::-webkit-scrollbar-track,
.ecodv2-history-wrap .wpeasycart-timline-scrollbox-content-mask-container::-webkit-scrollbar-thumb { width: auto; background: transparent; }
.ecodv2-history-wrap .wpeasycart-timeline-content-container { float: none; width: 100%; padding: 0; }
.ecodv2-history-wrap .wpeasycart-timeline { position: relative; padding-left: 0; float: none; width: 100%; }
.ecodv2-history-wrap .wpeasycart-timeline:before { content: ""; position: absolute; left: 12px; top: 8px; bottom: 8px; width: 2px; background: var(--ecv2-g100); }
.ecodv2-history-wrap .wpeasycart-timeline-item { position: relative; padding: 0 0 18px 38px; display: block; float: none; width: auto; }
.ecodv2-history-wrap .wpeasycart-timeline-item:last-child { padding-bottom: 4px; }
.ecodv2-history-wrap .wpeasycart-timeline-item > .dashicons { position: absolute; left: 2px; top: 0; width: 22px; height: 22px; border-radius: 50%; background: var(--ecv2-g100); color: var(--ecv2-g600); font-size: 12px; display: flex; align-items: center; justify-content: center; box-shadow: 0 0 0 3px #fff; }
.ecodv2-history-wrap .wpeasycart-timeline-item > .dashicons-plus-alt { background: var(--ecv2-primary); color: #fff; }
.ecodv2-history-wrap .wpeasycart-timeline-item > .dashicons-money-alt { background: var(--ecv2-blue-soft, #eff6ff); color: #1d4ed8; }
.ecodv2-history-wrap .wpeasycart-timeline-item > .dashicons-undo { background: #fee2e2; color: #b91c1c; }
.ecodv2-history-wrap .wpeasycart-timeline-item > .dashicons-lock { background: var(--ecv2-g300); color: #fff; }
/* Title anchors: neutral in every state — kills the purple :visited bleed. */
.ecodv2-history-wrap .wpeasycart-timeline-item-info a,
.ecodv2-history-wrap .wpeasycart-timeline-item-info a:visited,
.ecodv2-history-wrap .wpeasycart-timeline-item-info a:active,
.ecodv2-history-wrap .wpeasycart-timeline-item-info a:focus { font-size: 13px; font-weight: 600; color: var(--ecv2-g800); text-decoration: none; box-shadow: none; outline: none; cursor: default; }
.ecodv2-history-wrap .wpeasycart-timeline-item-info small { display: block; font-size: 12px; line-height: 1.65; color: var(--ecv2-g500); margin-top: 2px; }
.ecodv2-history-wrap .wpeasycart-timeline-item-info p { margin: 4px 0 0; font-size: 11px; color: var(--ecv2-g400); }
.ecodv2-history-wrap .wpeasycart-timeline-item-info p a,
.ecodv2-history-wrap .wpeasycart-timeline-item-info p a:visited { font-size: 11px; font-weight: 500; color: var(--ecv2-blue, #2563eb); cursor: pointer; }
/* Real links inside titles ( e.g. "Click here to view" ) stay clickable + blue. */
.ecodv2-history-wrap .wpeasycart-timeline-item-info a[target],
.ecodv2-history-wrap .wpeasycart-timeline-item-info a[href*="admin.php"] { color: var(--ecv2-blue, #2563eb); cursor: pointer; }

/* ---- Activity log ( 6.0.2 ): day groups, times, a colour per kind and filters ( owner bug round 4, item 14 ). WP EasyCart PRO
   6.0.2 prints .ecodv2-tl-item entries; an older PRO keeps the rules above. ---- */
.ecodv2-history-wrap > .ec_admin_settings_input { float: none; width: auto; margin: 0; padding: 0; }
.ecodv2-history-wrap .wpeasycart-timeline-item-info { margin-left: 0; }
.ecodv2-history-wrap .wpeasycart-timeline-item.ecodv2-tl-item { margin: 0; }
.ecodv2-history-wrap .wpeasycart-timeline-item.ecodv2-tl-item::before { display: none; }
.ecodv2-history-wrap .ecodv2-tl-filters { display: flex; flex-wrap: wrap; gap: 6px; margin: 0 0 16px; }
.ecodv2-history-wrap .ecodv2-tl-chip { display: inline-flex; align-items: center; gap: 6px; height: 28px; margin: 0; padding: 0 11px; border: 1px solid var(--ecv2-g200); border-radius: 999px; background: #fff; color: var(--ecv2-g700); font: inherit; font-size: 12px; font-weight: 500; line-height: 1; cursor: pointer; transition: background .15s, border-color .15s, color .15s; }
.ecodv2-history-wrap .ecodv2-tl-chip:hover { border-color: var(--ecv2-g300); background: var(--ecv2-g50); }
.ecodv2-history-wrap .ecodv2-tl-chip:focus-visible { outline: 2px solid var(--ec-brand, var(--ecv2-primary)); outline-offset: 1px; }
.ecodv2-history-wrap .ecodv2-tl-chip.is-active { background: var(--ecv2-g900); border-color: var(--ecv2-g900); color: #fff; }
.ecodv2-history-wrap .ecodv2-tl-chip-count { font-size: 11px; font-weight: 600; color: var(--ecv2-g400); font-variant-numeric: tabular-nums; }
.ecodv2-history-wrap .ecodv2-tl-chip.is-active .ecodv2-tl-chip-count { color: rgba(255,255,255,.7); }
.ecodv2-history-wrap[data-tl-filter="payments"] .ecodv2-tl-item:not([data-cat="payments"]):not([data-cat="all"]),
.ecodv2-history-wrap[data-tl-filter="emails"] .ecodv2-tl-item:not([data-cat="emails"]):not([data-cat="all"]),
.ecodv2-history-wrap[data-tl-filter="fulfillment"] .ecodv2-tl-item:not([data-cat="fulfillment"]):not([data-cat="all"]),
.ecodv2-history-wrap[data-tl-filter="edits"] .ecodv2-tl-item:not([data-cat="edits"]):not([data-cat="all"]),
.ecodv2-history-wrap[data-tl-filter="notes"] .ecodv2-tl-item:not([data-cat="notes"]):not([data-cat="all"]) { display: none; }
.ecodv2-history-wrap .wpeasycart-timeline-item.ecodv2-tl-item { --tl-top: 0px; padding: var(--tl-top) 0 18px 40px; }
.ecodv2-history-wrap .wpeasycart-timeline-item.ecodv2-tl-item.is-day-first { --tl-top: 40px; }
.ecodv2-history-wrap .wpeasycart-timeline-item.ecodv2-tl-item.is-day-first:first-child { --tl-top: 30px; }
.ecodv2-history-wrap .wpeasycart-timeline-item.ecodv2-tl-item:last-child { padding-bottom: 2px; }
.ecodv2-history-wrap .ecodv2-tl-day { display: none; }
.ecodv2-history-wrap .ecodv2-tl-item.is-day-first > .ecodv2-tl-day { display: flex; align-items: center; gap: 10px; position: absolute; left: 0; right: 0; top: calc( var(--tl-top) - 30px ); height: 20px; padding-right: 0; background: #fff; font-size: 11px; font-weight: 600; letter-spacing: .05em; text-transform: uppercase; color: var(--ecv2-g500); }
.ecodv2-history-wrap .ecodv2-tl-item.is-day-first > .ecodv2-tl-day::after { content: ""; flex: 1; height: 1px; background: var(--ecv2-g100); }
.ecodv2-history-wrap .wpeasycart-timeline-item.ecodv2-tl-item > .dashicons { top: var(--tl-top); left: 1px; width: 24px; height: 24px; font-size: 14px; background: var(--ecv2-g100); color: var(--ecv2-g600); }
.ecodv2-history-wrap .wpeasycart-timeline-item.ecodv2-tl-item > .dashicons::before { font-size: 14px; width: 14px; height: 14px; line-height: 1; }
.ecodv2-history-wrap .ecodv2-tl-item[data-tone="placed"] > .dashicons { background: var(--ec-brand, var(--ecv2-primary)); color: #fff; }
.ecodv2-history-wrap .ecodv2-tl-item[data-tone="paid"] > .dashicons { background: #dcfce7; color: #15803d; }
.ecodv2-history-wrap .ecodv2-tl-item[data-tone="refund"] > .dashicons { background: #fee2e2; color: #b91c1c; }
.ecodv2-history-wrap .ecodv2-tl-item[data-tone="email"] > .dashicons { background: #dbeafe; color: #1d4ed8; }
.ecodv2-history-wrap .ecodv2-tl-item[data-tone="status"] > .dashicons { background: #ede9fe; color: #6d28d9; }
.ecodv2-history-wrap .ecodv2-tl-item[data-tone="ship"] > .dashicons { background: #ccfbf1; color: #0f766e; }
.ecodv2-history-wrap .ecodv2-tl-item[data-tone="stock"] > .dashicons { background: #fef3c7; color: #b45309; }
.ecodv2-history-wrap .ecodv2-tl-item[data-tone="doc"] > .dashicons { background: #e0e7ff; color: #4338ca; }
.ecodv2-history-wrap .ecodv2-tl-item[data-tone="warn"] > .dashicons { background: #ffedd5; color: #c2410c; }
.ecodv2-history-wrap .ecodv2-tl-item[data-tone="note"] > .dashicons { background: #fef9c3; color: #a16207; }
.ecodv2-history-wrap .ecodv2-tl-head { display: flex; align-items: baseline; gap: 12px; min-height: 24px; padding-top: 3px; }
.ecodv2-history-wrap .ecodv2-tl-title { flex: 1; min-width: 0; font-size: 13px; font-weight: 600; line-height: 1.45; color: var(--ecv2-g800); }
.ecodv2-history-wrap .ecodv2-tl-title em { font-weight: 500; color: var(--ecv2-g500); }
.ecodv2-history-wrap .ecodv2-tl-time { flex-shrink: 0; margin-left: auto; font-size: 11.5px; color: var(--ecv2-g400); font-variant-numeric: tabular-nums; white-space: nowrap; cursor: default; }
.ecodv2-history-wrap .ecodv2-tl-item small { margin: 3px 0 0; overflow-wrap: anywhere; }
.ecodv2-history-wrap .ecodv2-tl-item small code { font-size: 11px; padding: 1px 5px; border-radius: 4px; background: var(--ecv2-g100); color: var(--ecv2-g700); }
.ecodv2-history-wrap .ecodv2-tl-item small em { font-style: normal; color: var(--ecv2-g400); }
.ecodv2-history-wrap .ecodv2-tl-item small strong { font-weight: 600; color: var(--ecv2-g700); }
.ecodv2-history-wrap .ecodv2-tl-item small a { font-size: 12px; font-weight: 500; color: var(--ecv2-blue, #2563eb); cursor: pointer; }
.ecodv2-history-wrap .ecodv2-tl-qty { margin-left: 4px; font-weight: 600; color: var(--ecv2-g700); font-variant-numeric: tabular-nums; }
.ecodv2-history-wrap .ecodv2-tl-item[data-tone="note"] small { margin-top: 6px; padding: 8px 10px; border-radius: 8px; background: #fefce8; color: var(--ecv2-g700); }
.ecodv2-history-wrap .ecodv2-tl-pill-slot { margin-left: auto; }

/* ---- Collapse at 21+ items ( JS toggles the class + button ) ---- */
.ecodv2-history-collapsed .wpeasycart-timeline-item:nth-child( n + 21 ) { display: none; }
.ecodv2-history-showall { display: none; margin: 4px 0 0 38px; }
.ecodv2-history-showall .ecv2-btn { float: none; }

/* ---- Full-history drawer ( right panel ) ---- */
.ecodv2-hdrawer-backdrop { display: none; position: fixed; inset: 0; background: rgba(16,20,26,.35); z-index: 100050; }
.ecodv2-hdrawer-backdrop.is-open { display: block; }
.ecodv2-hdrawer { position: fixed; top: 0; right: 0; bottom: 0; width: 480px; max-width: 94vw; background: #fff; box-shadow: -18px 0 48px rgba(0,0,0,.18); z-index: 100051; display: flex; flex-direction: column; transform: translateX( 105% ); transition: transform .22s ease; }
.ecodv2-hdrawer.is-open { transform: translateX( 0 ); }
.ecodv2-hdrawer-head { display: flex; align-items: center; gap: 8px; padding: 14px 18px; border-bottom: 1px solid var(--ecv2-g100); }
.ecodv2-hdrawer-head h3 { margin: 0; font-size: 14px; font-weight: 600; color: var(--ecv2-g900); }
.ecodv2-hdrawer-count { font-size: 12px; color: var(--ecv2-g400); }
.ecodv2-hdrawer-x { margin-left: auto; border: none; background: transparent; cursor: pointer; color: var(--ecv2-g400); padding: 2px; display: inline-flex; }
.ecodv2-hdrawer-x:hover { color: var(--ecv2-g800); }
.ecodv2-hdrawer-body { flex: 1; overflow-y: auto; padding: 18px 20px 26px; }

/* ==================================================================
   Rail cards: shared block pattern
   ================================================================== */
.ecodv2-block { position: relative; float: none; width: 100%; padding: 0; margin: 0; font-size: 12.5px; line-height: 1.7; color: var(--ecv2-g700); border: none; background: transparent; }
.ecodv2-block + .ecodv2-block,
.ecodv2-block + div + .ecodv2-block { margin-top: 16px; padding-top: 14px; border-top: 1px solid var(--ecv2-g100); }
.ecodv2-eyebrow { font-size: 10.5px !important; font-weight: 700 !important; letter-spacing: .5px; text-transform: uppercase; color: var(--ecv2-g400) !important; margin: 0 0 6px !important; padding: 0 !important; float: none !important; width: auto !important; background: transparent !important; display: block; }
.ecodv2-block-edit { position: absolute; top: -3px; right: 0; float: none; display: inline-flex; align-items: center; gap: 4px; padding: 3px 10px; border: 1px solid var(--ecv2-g300); border-radius: 6px; background: #fff; font-size: 12px; line-height: 1.4; color: var(--ecv2-g600); cursor: pointer; margin: 0; }
.ecodv2-block-edit:hover { border-color: var(--ecv2-primary); color: var(--ecv2-primary); }
.ecodv2-block-edit .dashicons-before:before { font-size: 13px; background: transparent !important; padding: 0 !important; margin: 0 !important; color: inherit !important; border-radius: 0 !important; }
.ecodv2-block a { color: var(--ecv2-blue, #2563eb); text-decoration: none; }
.ecodv2-block a:hover { text-decoration: underline; }
.ecodv2-block span,
.ecodv2-block > div { line-height: 1.7; }

/* Shipment hook fields ( order weight + any fields added through wp_easycart_admin_orders_details_shipment_fields_list )
   in the edit drawer's Fulfillment section. The hook prints legacy field markup ( row div > label + fieldset > input ),
   restyled here to match the V2 fields above it. Scoped to the drawer: .ecodv2-shipment-details is the page's shipment strip. */
.ecodv2-drawer-shipment { margin-top: 14px; }
.ecodv2-drawer-shipment > .ecodv2-eyebrow { margin-bottom: 10px !important; }
.ecodv2-drawer-shipment-fields > div { float: none !important; width: auto !important; min-width: 0 !important; margin: 0 !important; padding: 0 !important; }
.ecodv2-drawer-shipment-fields > .ec_admin_hidden { display: none !important; }
.ecodv2-drawer-shipment-fields .wp_easycart_admin_no_padding,
.ecodv2-drawer-shipment-fields .wp-easycart-admin-toggle-group-text { display: block !important; float: none !important; width: auto !important; margin: 0 !important; padding: 0 !important; }
.ecodv2-drawer-shipment-fields label { display: block !important; float: none !important; width: auto !important; font-size: 10.5px !important; font-weight: 600 !important; line-height: 1.4 !important; color: var(--ecv2-g500) !important; margin: 0 0 4px !important; padding: 0 !important; }
.ecodv2-drawer-shipment-fields fieldset { border: none !important; float: none !important; width: auto !important; min-width: 0 !important; margin: 0 !important; padding: 0 !important; }
.ecodv2-drawer-shipment-fields input[type="text"],
.ecodv2-drawer-shipment-fields input[type="number"],
.ecodv2-drawer-shipment-fields select,
.ecodv2-drawer-shipment-fields textarea { display: block; float: none !important; width: 100% !important; min-width: 0 !important; max-width: none !important; border: 1px solid var(--ecv2-g300); border-radius: 9px; padding: 8px 11px; font-size: 12.5px; line-height: 1.4; color: var(--ecv2-g800); background: #fff; box-sizing: border-box; margin: 0; }
.ecodv2-drawer-shipment-fields input:focus,
.ecodv2-drawer-shipment-fields select:focus,
.ecodv2-drawer-shipment-fields textarea:focus { outline: none; border-color: var(--ecv2-primary); box-shadow: 0 0 0 3px rgba(22,163,74,.12); }
@media ( max-width: 700px ) { .ecodv2-drawer .ecodv2-drawer-shipment-fields { grid-template-columns: 1fr; } }

/* ==================================================================
   Targeted legacy overrides ( the only V1 touch points left )
   ================================================================== */
/* Payment badge: id + payment-* class swapped by orders.js. */
#wpeasycart-payment-status { display: inline-flex !important; align-items: center; width: auto !important; float: none !important; padding: 3px 12px !important; margin: 4px 0 0 4px !important; border-radius: 999px !important; font-size: 11.5px !important; font-weight: 600 !important; line-height: 1.6 !important; background-image: none !important; text-align: left !important; }
#wpeasycart-payment-status.payment-paid { background: var(--ecv2-primary-soft, #dcfce7) !important; color: var(--ecv2-primary-deep, #166534) !important; }
#wpeasycart-payment-status.payment-processing { background: #fef3c7 !important; color: #92400e !important; }
#wpeasycart-payment-status.payment-bad { background: #fee2e2 !important; color: #991b1b !important; }
#wpeasycart-payment-status.payment-neutral { background: var(--ecv2-g100) !important; color: var(--ecv2-g600) !important; }

/* PRO prints its stat heading with the legacy class; only PRO output
   still uses it inside this page, so eyebrow-ize it globally here. */
.ecodv2-wrap .ec_admin_row_heading_title { font-size: 10.5px !important; font-weight: 700 !important; letter-spacing: .5px; text-transform: uppercase; color: var(--ecv2-g400) !important; margin: 0 0 6px !important; padding: 0 !important; float: none !important; width: auto !important; background: transparent !important; display: block; }

/* initial_hide is functional; keep it authoritative in this scope. */
.ecodv2-wrap .ec_admin_initial_hide { display: none; }

/* ==================================================================
   V2.3 — block heads, quiet edit links, CC line, Edit Order drawer
   ================================================================== */
.ecodv2-block-head { display: flex; align-items: center; gap: 8px; margin-bottom: 7px; }
.ecodv2-block-head .ecodv2-eyebrow { margin: 0 !important; }
.ecodv2-block-head .ecodv2-edit-link .dashicons{ margin-top:-5px; }
.ecodv2-edit-link { margin-left: auto; display: inline-flex; align-items: center; gap: 4px; border: none; background: transparent; padding: 2px 7px; border-radius: 6px; font-size: 11.5px; color: var(--ecv2-g400); font-weight: 500; cursor: pointer; line-height: 1.6; }
.ecodv2-edit-link:hover { color: var(--ecv2-primary); background: #f0fdf4; }
.ecodv2-edit-link .dashicons { font-size: 12px; width: 12px; height: 12px; margin-top: 2px; }
.ecodv2-kv-name { font-weight: 600; color: var(--ecv2-g900); }
.ecodv2-cc-line { display: inline-flex; align-items: baseline; gap: 5px; font-variant-numeric: tabular-nums; flex-wrap: wrap; }
.ecodv2-cc-dots { color: var(--ecv2-g400); letter-spacing: 1px; }
.ecodv2-cc-exp { color: var(--ecv2-g500); }
.ecodv2-hidden { display: none !important; }

/* ---- Drawer shell ---- */
.ecodv2-drawer-backdrop { position: fixed; inset: 0; background: rgba(15, 23, 42, .5); backdrop-filter: blur(4px); -webkit-backdrop-filter: blur(4px); opacity: 0; pointer-events: none; transition: opacity .2s ease; z-index: 99990; }
body.ecodv2-drawer-open .ecodv2-drawer-backdrop { opacity: 1; pointer-events: auto; }
.ecodv2-drawer { position: fixed; top: 0; right: -500px; width: 460px; max-width: 96vw; height: 100vh; background: #fff; box-shadow: -16px 0 48px rgba(0,0,0,.2); z-index: 99991; transition: right .24s cubic-bezier(.4,0,.2,1); display: flex; flex-direction: column; }
body.ecodv2-drawer-open .ecodv2-drawer { right: 0; }
.ecodv2-drawer-head { display: flex; align-items: center; gap: 10px; padding: 15px 20px; border-bottom: 1px solid var(--ecv2-g100); }
.ecodv2-drawer-head h3 { margin: 0; font-size: 15px; color: var(--ecv2-g900); }
.ecodv2-drawer-dirty { display: none; font-size: 11px; color: var(--ecv2-amber, #f59e0b); font-weight: 600; }
.ecodv2-drawer-x { margin-left: auto; border: none; background: transparent; color: var(--ecv2-g400); padding: 4px; border-radius: 6px; cursor: pointer; display: inline-flex; }
.ecodv2-drawer-x:hover { background: var(--ecv2-g100); color: var(--ecv2-g800); }
.ecodv2-drawer-jump { display: flex; gap: 6px; padding: 11px 20px; border-bottom: 1px solid var(--ecv2-g100); flex-wrap: wrap; background: var(--ecv2-g50); }
.ecodv2-drawer-jump a { font-size: 11px; padding: 4px 12px; border-radius: 999px; background: #fff; border: 1px solid var(--ecv2-g200); color: var(--ecv2-g600); text-decoration: none; font-weight: 500; }
.ecodv2-drawer-jump a:hover,
.ecodv2-drawer-jump a.is-active { background: var(--ecv2-primary-soft, #dcfce7); border-color: var(--ecv2-primary); color: var(--ecv2-primary-deep, #166534); }
.ecodv2-drawer-body { flex: 1; overflow-y: auto; padding: 18px 20px 26px; }
.ecodv2-drawer-sec { margin-bottom: 22px; scroll-margin-top: 8px; border-radius: 10px; }
.ecodv2-drawer-sec > .ecodv2-eyebrow { display: block; margin-bottom: 10px !important; }
.ecodv2-sec-flash { animation: ecodv2secflash 1.2s ease; }
@keyframes ecodv2secflash {
	0% { background: var(--ecv2-primary-soft, #dcfce7); box-shadow: 0 0 0 6px var(--ecv2-primary-soft, #dcfce7); }
	100% { background: transparent; box-shadow: none; }
}
.ecodv2-drawer-foot { padding: 13px 20px; border-top: 1px solid var(--ecv2-g100); display: flex; align-items: center; gap: 10px; background: var(--ecv2-g50); }
.ecodv2-drawer-hint { font-size: 11px; color: var(--ecv2-g400); }
.ecodv2-drawer-foot-spacer { flex: 1; }
.ecodv2-drawer-foot .ecv2-btn { float: none; }
#ecodv2_drawer_save:disabled { background: var(--ecv2-g200); border-color: var(--ecv2-g200); color: var(--ecv2-g400); cursor: not-allowed; }

/* ---- Forms inside the drawer lose the inline inset ---- */
.ecodv2-drawer .ecodv2-form { background: transparent; border: none; padding: 0; margin: 0; }
.ecodv2-drawer .ecodv2-form.ec_admin_initial_hide { display: block; }
.ecodv2-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 11px; }
.ecodv2-grid .ecodv2-field-wide { grid-column: 1 / -1; }
.ecodv2-optional { color: var(--ecv2-g300); font-weight: 400; margin-left: 3px; }
.ecodv2-field input::placeholder { color: var(--ecv2-g300); }

/* Add-field disclosure + removable field. */
.ecodv2-add-field { display: inline-flex; align-items: center; gap: 5px; border: none; background: transparent; padding: 3px 6px; margin: -2px 0 0 -6px; border-radius: 6px; font-size: 11.5px; color: var(--ecv2-g400); font-weight: 500; cursor: pointer; }
.ecodv2-add-field:hover { color: var(--ecv2-primary); background: #f0fdf4; }
.ecodv2-field-removable { position: relative; }
.ecodv2-field-rm { position: absolute; right: 6px; top: 26px; border: none; background: transparent; color: var(--ecv2-g300); padding: 4px; cursor: pointer; display: inline-flex; }
.ecodv2-field-rm:hover { color: var(--ecv2-danger, #dc2626); }
.ecodv2-field-rm .dashicons { font-size: 14px; width: 14px; height: 14px; }
.ecodv2-field-removable input { padding-right: 30px; }

/* Masked CC + segmented expiration composites. */
.ecodv2-cc-wrap,
.ecodv2-exp-wrap { display: flex; align-items: center; border: 1px solid var(--ecv2-g300); border-radius: 9px; padding: 0 11px; background: #fff; }
.ecodv2-cc-wrap:focus-within,
.ecodv2-exp-wrap:focus-within { border-color: var(--ecv2-primary); box-shadow: 0 0 0 3px rgba(22,163,74,.12); }
.ecodv2-cc-wrap-dots { color: var(--ecv2-g400); letter-spacing: 2px; font-variant-numeric: tabular-nums; user-select: none; white-space: nowrap; }
.ecodv2-cc-wrap input,
.ecodv2-exp-wrap input { border: none !important; box-shadow: none !important; outline: none !important; padding: 8px 0; font-size: 12.5px; font-variant-numeric: tabular-nums; background: transparent; width: auto; min-width: 0; }
.ecodv2-cc-wrap input { padding-left: 8px; width: 56px; letter-spacing: 1px; }
.ecodv2-exp-wrap { gap: 4px; }
.ecodv2-exp-mm { width: 28px; text-align: center; }
.ecodv2-exp-yyyy { width: 46px; text-align: center; }
.ecodv2-exp-slash { color: var(--ecv2-g300); font-weight: 600; }

/* Section tools ( copy from billing ). */
.ecodv2-sec-tools { display: flex; align-items: center; gap: 8px; margin: -4px 0 10px; }
.ecodv2-tool-btn { display: inline-flex; align-items: center; gap: 4px; border: 1px dashed var(--ecv2-g300); background: transparent; padding: 3px 11px; border-radius: 999px; font-size: 11px; color: var(--ecv2-g500); cursor: pointer; }
.ecodv2-tool-btn:hover { border-color: var(--ecv2-primary); border-style: solid; color: var(--ecv2-primary); }
.ecodv2-tool-btn .dashicons { font-size: 12px; width: 12px; height: 12px; margin-top: 2px; }
.ecodv2-copied-ok { font-size: 11px; color: var(--ecv2-primary-deep, #166534); display: none; }

/* ==================================================================
   V2.4 — admin-bar z-index, scroll lock, block-head float fix,
   user card, copy links, fulfillment section, notes popover
   ================================================================== */
/* 1. Above the WP admin bar ( #wpadminbar is z-index 99999 ). */
.ecodv2-drawer-backdrop { z-index: 999998; }
.ecodv2-drawer { z-index: 999999; }
/* 4. Lock page scroll while the drawer is open. */
body.ecodv2-drawer-open { overflow: hidden; }
/* 5. Contain any legacy floated content without floating the blocks
   themselves. Floating .ecodv2-block / .ecodv2-block-head let the flex
   payment row slide up beside the head and overflow the card. */
.ecodv2-block { float: none; width: 100%; display: flow-root; }
.ecodv2-block-head { float: none; width: 100%; }
.ecodv2-block + .ecodv2-block,
.ecodv2-block + div + .ecodv2-block { clear: both; }

/* 6. User account card ( V4.0 — avatar layout ). */
.ecodv2-user-card { float: none; width: 100%; border: 1px solid var(--ecv2-g200); border-radius: 10px; padding: 12px 13px; background: var(--ecv2-g50); display: flex; gap: 12px; box-sizing: border-box; }
.ecodv2-avatar { flex: 0 0 auto; width: 42px; height: 42px; border-radius: 50%; background: var(--ecv2-blue-soft, #eff6ff); color: #1d4ed8; display: flex; align-items: center; justify-content: center; font-size: 14px; font-weight: 700; letter-spacing: .02em; }
.ecodv2-avatar-guest { background: var(--ecv2-g100); color: var(--ecv2-g500); }
.ecodv2-avatar .dashicons { font-size: 18px; width: 18px; height: 18px; }
.ecodv2-user-main { flex: 1 1 auto; min-width: 0; }
.ecodv2-user-topline { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }
.ecodv2-user-card-name { font-size: 13.5px; font-weight: 600; color: var(--ecv2-g900); }
.ecodv2-user-chip { display: inline-flex; align-items: center; padding: 1px 8px; border-radius: 9px; font-size: 10.5px; font-weight: 700; }
.ecodv2-user-chip-account { background: var(--ecv2-blue-soft, #eff6ff); color: #1d4ed8; }
.ecodv2-user-chip-guest { background: var(--ecv2-g100); color: var(--ecv2-g600); }
.ecodv2-user-link { display: inline-flex; align-items: center; gap: 2px; font-size: 11.5px; color: var(--ecv2-blue, #2563eb); text-decoration: none; }
.ecodv2-user-link:hover { text-decoration: underline; }
.ecodv2-user-link .dashicons { font-size: 12px; width: 12px; height: 12px; margin-top: -5px; }
.ecodv2-contact-row { display: flex; align-items: center; gap: 7px; margin-top: 5px; font-size: 12.5px; line-height: 1.5; min-width: 0; }
.ecodv2-contact-row:first-of-type { margin-top: 7px; }
/* .ecodv2-block span sets line-height 1.7 which inflates the dashicon box and
   shifts the glyph down; pin the icon's line box to its own size. */
.ecodv2-contact-icon { flex: 0 0 auto; font-size: 14px; width: 14px; height: 14px; line-height: 14px !important; color: var(--ecv2-g400); display: inline-flex; align-items: center; justify-content: center; }
.ecodv2-contact-copy .dashicons { font-size: 13px; width: 13px; height: 13px; line-height: 13px !important; }
.ecodv2-contact-copy { opacity: .6; }
.ecodv2-contact-row:hover .ecodv2-contact-copy { opacity: 1; }
.ecodv2-contact-value { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.ecodv2-contact-value a { color: var(--ecv2-g800); text-decoration: none; }
.ecodv2-contact-copy { padding: 2px 4px; flex: 0 0 auto; }
.ecodv2-contact-sub { margin: 2px 0 0 20px; font-size: 12px; }
.ecodv2-contact-sub:has( > span:empty ) { display: none; }
.ecodv2-user-card-email { font-size: 12.5px; line-height: 1.5; }
.ecodv2-user-card-email a { color: var(--ecv2-blue, #2563eb); text-decoration: none; }
.ecodv2-user-card-email a:hover { text-decoration: underline; }

/* 6b. Payment info row. */
.ecodv2-payment-row { display: flex; align-items: center; gap: 10px; clear: both; width: 100%; }
.ecodv2-payment-icon { flex: 0 0 auto; font-size: 18px; width: 18px; height: 18px; line-height: 18px !important; color: var(--ecv2-g400); }
.ecodv2-payment-text { display: flex; flex-direction: column; gap: 1px; min-width: 0; flex: 1 1 auto; }
.ecodv2-payment-text > span { line-height: 1.5; }
.ecodv2-payment-text .ecodv2-cc-line:empty,
.ecodv2-payment-text .ecodv2-cc-line:not(:has( b )):not(:has( .ecodv2-cc-exp )) { display: none; }

/* 8. Copy link ( address blocks ). */
.ecodv2-copy-link { display: inline-flex; align-items: center; gap: 4px; border: none; background: transparent; padding: 2px 7px; border-radius: 6px; font-size: 11.5px; color: var(--ecv2-g400); font-weight: 500; cursor: pointer; line-height: 1.6; }
.ecodv2-copy-link:hover { color: var(--ecv2-blue, #2563eb); background: var(--ecv2-blue-soft, #eff6ff); }
.ecodv2-copy-link.is-copied { color: var(--ecv2-primary-deep, #166534); background: var(--ecv2-primary-soft, #dcfce7); }
.ecodv2-copy-link .dashicons { font-size: 12px; width: 12px; height: 12px; margin-top: -5px; }
.ecodv2-block-head .ecodv2-copy-link { margin-left: auto; }
.ecodv2-block-head .ecodv2-copy-link + .ecodv2-edit-link { margin-left: 0; }
/* Hide the legacy PRO copy-address link now that the free one exists. */
.ecodv2-wrap .wp-easycart-copy-address,
.ecodv2-wrap .wp-easycart-copy-shipping-address { display: none; }

/* 9/10. Fulfillment drawer section. */
.ecodv2-drawer-account { margin-bottom: 12px; }
.ecodv2-drawer-account label { display: block; font-size: 10.5px; font-weight: 600; color: var(--ecv2-g500); margin-bottom: 4px; }
#ecodv2_sec_fulfillment .ecodv2-form { background: transparent; border: none; padding: 0; margin: 0; }
#ecodv2_sec_fulfillment .ecodv2-form.ec_admin_initial_hide { display: block; }

/* 11. Customer notes popover. */
.ecodv2-cnotes-anchor { position: relative; }
.ecodv2-cnotes-text { font-size: 13px; line-height: 1.6; color: var(--ecv2-g800); word-break: break-word; }
.ecodv2-cnotes-popover { display: none; position: absolute; top: calc(100% + 8px); right: 0; width: 460px; max-width: 92vw; background: #fff; border: 1px solid var(--ecv2-g200); border-radius: 12px; box-shadow: 0 16px 48px rgba(0,0,0,.18); padding: 14px 16px; z-index: 700; }
.ecodv2-cnotes-popover.is-open { display: block; }
.ecodv2-cnotes-popover:before { content: ""; position: absolute; top: -6px; right: 26px; width: 10px; height: 10px; background: #fff; border-left: 1px solid var(--ecv2-g200); border-top: 1px solid var(--ecv2-g200); transform: rotate(45deg); }
.ecodv2-cnotes-popover-head { font-size: 12.5px; font-weight: 600; color: var(--ecv2-g800); margin-bottom: 8px; }
.ecodv2-cnotes-form { float: none; width: 100%; }
.ecodv2-cnotes-popover textarea { width: 100%; min-height: 170px; border: 1px solid var(--ecv2-g300); border-radius: 9px; padding: 10px 12px; font-size: 13px; line-height: 1.55; resize: vertical; float: none; box-sizing: border-box; }
.ecodv2-cnotes-popover textarea:focus { outline: none; border-color: var(--ecv2-primary); box-shadow: 0 0 0 3px rgba(22,163,74,.12); }
.ecodv2-cnotes-popover-foot { display: flex; align-items: center; gap: 8px; margin-top: 10px; }
.ecodv2-cnotes-hint { display: inline-flex; align-items: center; gap: 4px; font-size: 11px; color: var(--ecv2-amber, #b45309); margin-right: auto; }
.ecodv2-cnotes-hint .dashicons { font-size: 13px; width: 13px; height: 13px; }
.ecodv2-cnotes-popover-foot .ecv2-btn { float: none; }

/* ==================================================================
   V2.5 — bug-fix round: drawer width, select2 layering, robust drawer
   fields, header title-row badges, notes empty state
   ================================================================== */
/* 3. One-row jump chips: wider, responsive drawer. */
.ecodv2-drawer { width: min( 700px, 95vw ); max-width: 95vw; right: max( -720px, -100vw ); }
body.ecodv2-drawer-open .ecodv2-drawer { right: 0; }

/* 4. select2 dropdown appends to <body>; lift it above the drawer. */
.select2-container--open { z-index: 9999999 !important; }
body > .select2-container { z-index: 9999999 !important; }

/* 2. Robust drawer field layout — wins over any legacy float/width rules. */
.ecodv2-drawer .ecodv2-sec-host,
.ecodv2-drawer .ecodv2-form,
.ecodv2-drawer .ecodv2-grid { float: none !important; width: 100% !important; }
.ecodv2-drawer .ecodv2-grid { display: grid !important; grid-template-columns: 1fr 1fr; gap: 11px; }
.ecodv2-drawer .ecodv2-field { float: none !important; width: auto !important; min-width: 0 !important; }
.ecodv2-drawer .ecodv2-field label { display: block !important; float: none !important; width: auto !important; font-size: 10.5px; font-weight: 600; color: var(--ecv2-g500); margin: 0 0 4px !important; }
.ecodv2-drawer .ecodv2-field > input,
.ecodv2-drawer .ecodv2-field > select { display: block; float: none !important; width: 100% !important; min-width: 0 !important; max-width: none !important; border: 1px solid var(--ecv2-g300); border-radius: 9px; padding: 8px 11px; font-size: 12.5px; background: #fff; box-sizing: border-box; }
.ecodv2-drawer .ecodv2-field > input,
.ecodv2-drawer .ecodv2-field > select { line-height: 1.4 !important; min-height: 0 !important; height: auto !important; }
.ecodv2-drawer .ecodv2-field > select { padding-right: 28px; }
.ecodv2-drawer .ecodv2-cc-wrap,
.ecodv2-drawer .ecodv2-exp-wrap { display: flex !important; float: none !important; width: 100% !important; min-height: 36px; }
.ecodv2-drawer .ecodv2-cc-wrap input { width: 60px !important; min-width: 60px !important; flex: 1 1 auto; border: none !important; }
.ecodv2-drawer .ecodv2-exp-wrap input { border: none !important; }
.ecodv2-drawer .ecodv2-exp-mm { width: 30px !important; min-width: 30px !important; }
.ecodv2-drawer .ecodv2-exp-yyyy { width: 50px !important; min-width: 50px !important; }
.ecodv2-drawer .ecodv2-cc-wrap-dots { flex: 0 0 auto; }

/* 5. Header: badges live in the title row; meta aligns under the title. */
.ecodv2-title-row { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; margin: 0; }
.ecodv2-title-row #wpeasycart-payment-status { margin: 0 0 0 6px !important; }
.ecodv2-title-row .ecodv2-fulfill-badge { margin: 0; }
.ecodv2-header .ecdv2-header-meta { min-width: 0; flex: 1 1 auto; }

/* 1. Customer notes empty state. */
.ecodv2-cnotes-empty { display: flex; flex-direction: column; align-items: center; gap: 6px; padding: 18px 10px 14px; text-align: center; font-size: 12.5px; color: var(--ecv2-g400); }
.ecodv2-cnotes-empty > .dashicons { font-size: 22px; width: 22px; height: 22px; color: var(--ecv2-g300); }
.ecodv2-cnotes-empty .ecv2-btn { margin-top: 4px; float: none; }
.ecodv2-cnotes-empty .ecv2-btn .dashicons { font-size: 12px; width: 12px; height: 12px; margin-top: 3px; }

/* ==================================================================
   V2.6 — header title-row width fix ( tags wrapped below title )
   ================================================================== */
.ecodv2-title-row { width: 100%; float: none; }
.ecodv2-header .ecdv2-header-meta { width: auto; }
.ecodv2-title-row .ecodv2-tags { display: inline-flex; }

/* ==================================================================
   V2.7 — status swatch pill + inline date editor
   ================================================================== */
/* Status pill. */
.ecodv2-status-wrap { position: relative; }
.ecodv2-status-pill { display: inline-flex; align-items: center; gap: 8px; padding: 7px 14px; border-radius: 999px; border: 1.5px solid var(--ecv2-g800); background: #fff; font-size: 13px; font-weight: 600; color: var(--ecv2-g800); cursor: pointer; line-height: 1.4; }
.ecodv2-status-pill:hover { background: var(--ecv2-g50); }
.ecodv2-status-dot { width: 9px; height: 9px; border-radius: 50%; flex: 0 0 auto; box-shadow: inset 0 0 0 1px rgba(0,0,0,.08); }
.ecodv2-status-caret { font-size: 12px !important; width: 12px !important; height: 12px !important; color: var(--ecv2-g500); margin-top: 2px; }
.ecodv2-status-archived-note { font-style: normal; font-weight: 400; font-size: 11px; color: var(--ecv2-g400); }

/* Status menu. */
.ecodv2-status-menu { right: 0; left: auto; min-width: 250px; max-height: 340px; overflow-y: auto; }
.ecodv2-status-item { display: flex; align-items: center; gap: 9px; width: 100%; padding: 8px 11px; border: none; background: transparent; border-radius: 8px; font-size: 12.5px; color: var(--ecv2-g700); text-align: left; cursor: pointer; }
.ecodv2-status-item:hover { background: var(--ecv2-g100); }
.ecodv2-status-item-label { flex: 1 1 auto; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.ecodv2-status-check { visibility: hidden; color: var(--ecv2-primary); font-size: 15px !important; width: 15px !important; height: 15px !important; }
.ecodv2-status-item.is-current { font-weight: 600; color: var(--ecv2-g900); }
.ecodv2-status-item.is-current .ecodv2-status-check { visibility: visible; }
.ecodv2-status-item.is-unapproved { color: var(--ecv2-g400); }
.ecodv2-status-item.is-unapproved .ecodv2-status-dot { box-shadow: inset 0 0 0 1.5px var(--ecv2-g300); }
.ecodv2-status-add { display: flex; align-items: center; gap: 8px; width: 100%; padding: 8px 11px; border: none; background: transparent; border-radius: 8px; font-size: 12.5px; color: var(--ecv2-blue, #2563eb); text-align: left; cursor: pointer; }
.ecodv2-status-add:hover { background: var(--ecv2-blue-soft, #eff6ff); }

/* Inline date editor. */
.ecdv2-header-sub { min-height: 30px; }
.ecodv2-date-view { display: inline-flex; align-items: center; gap: 5px; padding: 3px 8px; margin-left: -8px; border-radius: 7px; font-weight: 600; color: var(--ecv2-g700); cursor: pointer; border: 1px solid transparent; }
.ecodv2-date-view:hover { background: var(--ecv2-g50); border-color: var(--ecv2-g200); }
.ecodv2-date-pencil { opacity: 0; transition: opacity .12s ease; }
.ecodv2-date-view:hover .ecodv2-date-pencil { opacity: 1; }
.ecodv2-date-form { display: inline-flex; align-items: center; gap: 5px; }
.ecodv2-date-form input { width: 170px; border: 1px solid var(--ecv2-primary); border-radius: 8px; padding: 5px 10px; font-size: 12.5px; box-shadow: 0 0 0 3px rgba(22,163,74,.12); outline: none; }
.ecodv2-icon-btn { width: 26px; height: 26px; border-radius: 7px; border: 1px solid var(--ecv2-g300); background: #fff; display: inline-flex; align-items: center; justify-content: center; color: var(--ecv2-g500); cursor: pointer; }
.ecodv2-icon-btn .dashicons { font-size: 14px; width: 14px; height: 14px; }
.ecodv2-icon-btn-ok { background: var(--ecv2-primary); border-color: var(--ecv2-primary); color: #fff; }
.ecodv2-icon-btn-ok:hover { filter: brightness( .95 ); }
.ecodv2-icon-btn-cancel:hover { border-color: var(--ecv2-danger, #dc2626); color: var(--ecv2-danger, #dc2626); }

/* ==================================================================
   V2.8 — header title row: force full width regardless of base rules
   ================================================================== */
.ecodv2-header .ecdv2-header-meta { display: block !important; }
.ecodv2-header .ecdv2-header-title.ecodv2-title-row { display: flex !important; width: 100% !important; max-width: 100% !important; flex: 0 0 100%; }

/* ==================================================================
   V2.9 — control heights, fixed-width status pill, shipment panel
   ================================================================== */
/* Items 2+3: shared 36px control height; fixed pill width. */
.ecodv2-status-pill { width: 220px; height: 36px; box-sizing: border-box; justify-content: flex-start; padding: 0 14px; }
#ecodv2_status_pill_label { flex: 1 1 auto; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; text-align: left; }
.ecodv2-status-caret { margin-left: auto; }
.ecodv2-header .ecodv2-nav .ecv2-btn,
.ecodv2-header .ecdv2-menu-wrap > .ecv2-btn { height: 36px; box-sizing: border-box; display: inline-flex; align-items: center; }

/* Items 6+7: shipment panel layout. */
.ecodv2-fulfill-banner { display: block; padding: 12px 16px; }
.ecodv2-fulfill-row { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; font-size: 13px; font-weight: 500; }
.ecodv2-fulfill-row .ecv2-btn { margin-left: auto; }
.ecodv2-fulfill-row .ecv2-btn ~ .ecv2-btn { margin-left: 0; }
.ecodv2-tracking-line { display: inline-flex; align-items: center; gap: 4px; }
.ecodv2-tracking-line #ec_admin_order_details_tracking_number { font-family: ui-monospace, SFMono-Regular, Menlo, monospace; font-size: 12px; }
.ecodv2-tracking-copy { padding: 1px 5px; }

/* ==================================================================
   V3.0 — fulfillment card + date/time inputs
   ================================================================== */
.ecodv2-card-fulfillment .ecodv2-fulfill-banner { border-bottom: 1px solid var(--ecv2-g100); border-left-width: 3px; padding: 10px 16px; }
/* Shipment details ( method / carrier / tracking ) below the status strip. */
.ecodv2-shipment { padding: 14px 16px; font-size: 13px; color: var(--ecv2-g700); }
.ecodv2-legacy-hidden { display: none !important; }
/* Order item: customer upload that never reached the server. */
.ecodv2-file-missing { display: inline-flex; align-items: center; gap: 3px; color: #b45309; font-weight: 600; cursor: help; }
.ecodv2-file-missing .dashicons { font-size: 14px; width: 14px; height: 14px; }
.ecodv2-shipment-empty { display: none; align-items: center; gap: 12px; flex-wrap: wrap; }
.ecodv2-shipment.is-empty .ecodv2-shipment-empty { display: flex; }
.ecodv2-shipment.is-empty .ecodv2-shipment-details { display: none; }
.ecodv2-shipment-empty-icon.dashicons { flex-shrink: 0; width: 36px; height: 36px; border-radius: 50%; background: var(--ecv2-g50); border: 1px dashed var(--ecv2-g300); color: var(--ecv2-g400); font-size: 18px; line-height: 36px; text-align: center; box-sizing: border-box; }
.ecodv2-shipment-empty-text { flex: 1 1 180px; min-width: 0; display: flex; flex-direction: column; gap: 1px; line-height: 1.45; }
.ecodv2-shipment-empty-text strong { font-size: 13px; font-weight: 600; color: var(--ecv2-g800, #1f2937); }
.ecodv2-shipment-empty-text span { font-size: 12.5px; color: var(--ecv2-g500); }
.ecodv2-shipment-add { flex-shrink: 0; display: inline-flex; align-items: center; gap: 4px; }
.ecodv2-shipment-add .dashicons { font-size: 14px; width: 14px; height: 14px; }
.ecodv2-shipment-details { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)) auto; gap: 10px 20px; align-items: start; }
.ecodv2-shipment-field { display: flex; flex-direction: column; gap: 3px; min-width: 0; }
.ecodv2-shipment-label { font-size: 10.5px; font-weight: 700; letter-spacing: .5px; text-transform: uppercase; color: var(--ecv2-g400); }
.ecodv2-shipment-value { display: flex; align-items: center; flex-wrap: wrap; gap: 4px 6px; min-width: 0; line-height: 1.5; color: var(--ecv2-g800, #1f2937); font-weight: 500; overflow-wrap: anywhere; }
.ecodv2-shipment-value br { display: none; }
.ecodv2-shipment-value > span[data-empty]:empty::before { content: attr(data-empty); color: var(--ecv2-g400); font-weight: 400; }
.ecodv2-shipment-chip:empty { display: none; }
#ec_admin_order_details_tracking_number:empty::before { font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif; font-size: 13px; }
.ecodv2-shipment-chip { display: inline-flex; padding: 1px 8px; border-radius: 999px; background: #fef3c7; color: #92400e; font-size: 11px; font-weight: 600; }
.ecodv2-shipment-edit { margin-left: 0; align-self: center; }
@media ( max-width: 700px ) {
	.ecodv2-shipment-details { grid-template-columns: 1fr; }
	.ecodv2-shipment-edit { justify-self: start; padding-left: 0; }
	.ecodv2-shipment-add { width: 100%; justify-content: center; }
}
.ecodv2-card-fulfillment .ecdv2-card-header { border-bottom: 1px solid var(--ecv2-g100); }
.ecodv2-date-form input[type="time"] { width: 92px; border: 1px solid var(--ecv2-primary); border-radius: 8px; padding: 5px 8px; font-size: 12.5px; box-shadow: 0 0 0 3px rgba(22,163,74,.12); outline: none; }

/* ==================================================================
   V3.1 — create shipping label popup
   ================================================================== */
.ecodv2-label-backdrop { position: fixed; inset: 0; background: rgba(15,23,42,.5); backdrop-filter: blur(4px); -webkit-backdrop-filter: blur(4px); opacity: 0; pointer-events: none; transition: opacity .18s ease; z-index: 999996; }
body.ecodv2-label-open .ecodv2-label-backdrop { opacity: 1; pointer-events: auto; }
.ecodv2-label-popup { position: fixed; top: 50%; left: 50%; transform: translate(-50%, -47%) scale(.98); width: 580px; max-width: 95vw; max-height: 92vh; overflow-y: auto; background: #fff; border-radius: 16px; box-shadow: 0 24px 80px rgba(0,0,0,.35); z-index: 999997; opacity: 0; pointer-events: none; transition: all .18s ease; }
body.ecodv2-label-open .ecodv2-label-popup { opacity: 1; pointer-events: auto; transform: translate(-50%, -50%) scale(1); }
.ecodv2-label-head { display: flex; align-items: center; gap: 10px; padding: 16px 20px; border-bottom: 1px solid var(--ecv2-g100); position: sticky; top: 0; background: #fff; z-index: 2; }
.ecodv2-label-head h3 { margin: 0; font-size: 15px; }
.ecodv2-label-ref { font-size: 12px; color: var(--ecv2-g400); }
.ecodv2-label-head .ecodv2-drawer-x { margin-left: auto; }
.ecodv2-label-body { padding: 18px 20px; }
.ecodv2-label-body > .ecodv2-eyebrow { display: block; margin-bottom: 8px; }

.ecodv2-label-services { display: flex; flex-direction: column; gap: 8px; margin-bottom: 18px; }
.ecodv2-svc { display: flex; align-items: center; gap: 12px; padding: 11px 14px; border: 1px solid var(--ecv2-g200); border-radius: 11px; background: #fff; text-decoration: none; color: inherit; }
.ecodv2-svc:hover { border-color: var(--ecv2-primary); box-shadow: 0 0 0 3px rgba(22,163,74,.08); }
.ecodv2-svc-logo { width: 34px; height: 34px; border-radius: 9px; display: flex; align-items: center; justify-content: center; font-weight: 800; font-size: 12px; color: #fff; flex: 0 0 auto; }
.ecodv2-svc-name { font-weight: 600; font-size: 13px; color: var(--ecv2-g900); }
.ecodv2-svc-sub { font-size: 11.5px; color: var(--ecv2-g500); }
.ecodv2-svc-cta { margin-left: auto; font-size: 11.5px; color: var(--ecv2-g400); white-space: nowrap; }
.ecodv2-svc-integrated .ecodv2-svc-cta { color: var(--ecv2-primary-deep, #166534); font-weight: 600; }
.ecodv2-svc-install { border-style: dashed; opacity: .88; }
.ecodv2-svc-install .ecodv2-svc-cta { color: var(--ecv2-blue, #2563eb); }

.ecodv2-label-carriers { display: grid; grid-template-columns: repeat(3, 1fr); gap: 8px; margin-bottom: 4px; }
.ecodv2-label-carrier { position: relative; display: flex; flex-direction: column; align-items: center; gap: 4px; padding: 13px 8px 11px; border: 1px solid var(--ecv2-g200); border-radius: 11px; background: #fff; text-decoration: none; }
.ecodv2-label-carrier:hover { border-color: var(--ecv2-g800); }
.ecodv2-label-carrier.is-suggested { border-color: var(--ecv2-primary); background: #f6fdf8; }
.ecodv2-label-sug { position: absolute; top: -8px; left: 50%; transform: translateX(-50%); background: var(--ecv2-primary); color: #fff; font-size: 9px; font-weight: 700; letter-spacing: .4px; padding: 1px 8px; border-radius: 999px; }
.ecodv2-label-carrier-name { font-weight: 800; font-size: 13px; color: var(--ecv2-g800); }
.ecodv2-label-carrier-sub { font-size: 10px; color: var(--ecv2-g400); }
.ecodv2-label-helper { display: grid; grid-template-columns: 1fr auto; gap: 6px 10px; padding: 12px 14px; background: var(--ecv2-g50); border: 1px solid var(--ecv2-g200); border-radius: 11px; margin: 14px 0 16px; font-size: 12px; }
.ecodv2-label-line { color: var(--ecv2-g700); line-height: 1.55; min-width: 0; }
.ecodv2-label-line b { display: block; font-size: 10.5px; text-transform: uppercase; letter-spacing: .4px; color: var(--ecv2-g400); margin-bottom: 1px; }
.ecodv2-label-after { border-top: 1px dashed var(--ecv2-g200); padding-top: 14px; }
.ecodv2-label-after-row { display: flex; gap: 8px; }
.ecodv2-label-after-row select { width: 130px; border: 1px solid var(--ecv2-g300); border-radius: 9px; padding: 8px 10px; font-size: 12.5px; background: #fff; }
.ecodv2-label-after-row input { flex: 1; min-width: 0; border: 1px solid var(--ecv2-g300); border-radius: 9px; padding: 8px 11px; font-size: 12.5px; font-family: ui-monospace, SFMono-Regular, Menlo, monospace; }
.ecodv2-label-after-row input:focus, .ecodv2-label-after-row select:focus { outline: none; border-color: var(--ecv2-primary); box-shadow: 0 0 0 3px rgba(22,163,74,.12); }
.ecodv2-label-email-opt { display: flex; align-items: center; gap: 7px; margin-top: 9px; font-size: 12px; color: var(--ecv2-g600); }
.ecodv2-label-saved { display: none; margin-top: 10px; padding: 9px 12px; border-radius: 9px; background: var(--ecv2-primary-soft, #dcfce7); color: var(--ecv2-primary-deep, #166534); font-size: 12px; font-weight: 500; }

/* 6.0.2: Create shipping label in two steps when the order has packages: make the label, then a tracking number for each
   package ( owner bug round 4, item 2 ). */
.ecodv2-label-step[hidden] { display: none; }
.ecodv2-label-stepper { display: flex; gap: 6px; margin: 0 0 16px; padding: 0; list-style: none; counter-reset: none; }
.ecodv2-label-stepper li { display: flex; align-items: center; gap: 7px; flex: 1 1 0; min-width: 0; margin: 0; padding: 8px 10px; border-radius: 9px; background: var(--ecv2-g50, #f9fafb); color: var(--ecv2-g500); font-size: 12px; font-weight: 600; }
.ecodv2-label-stepper li.is-on { background: var(--ecv2-primary-light, #ecfdf5); color: var(--ecv2-primary-hover, #15803d); }
.ecodv2-label-stepnum { display: inline-grid; place-items: center; flex-shrink: 0; width: 20px; height: 20px; border-radius: 50%; background: #fff; box-shadow: inset 0 0 0 1px currentColor; font-size: 11px; }
.ecodv2-label-foot { display: flex; align-items: center; gap: 10px; margin-top: 16px; padding-top: 14px; border-top: 1px dashed var(--ecv2-g200); }
.ecodv2-label-foot > .ecv2-btn-primary { margin-left: auto; }
.ecodv2-label-foot-hint { font-size: 12px; line-height: 1.45; color: var(--ecv2-g600); }
.ecodv2-label-all { display: flex; align-items: center; justify-content: space-between; gap: 10px; margin: 0 0 10px; padding: 8px 10px; border-radius: 9px; background: var(--ecv2-g50, #f9fafb); font-size: 12.5px; font-weight: 600; color: var(--ecv2-g700); }
.ecodv2-label-all select, .ecodv2-label-pkg-row select { border: 1px solid var(--ecv2-g300); border-radius: 9px; padding: 7px 10px; font-size: 12.5px; background: #fff; }
.ecodv2-label-pkg-list { display: flex; flex-direction: column; gap: 8px; margin: 0; padding: 0; list-style: none; }
.ecodv2-label-pkg { margin: 0; padding: 10px 12px; border: 1px solid var(--ecv2-g200); border-radius: 11px; background: #fff; }
.ecodv2-label-pkg.is-done { background: var(--ecv2-g50, #f9fafb); }
.ecodv2-label-pkg-head { display: flex; flex-wrap: wrap; align-items: baseline; gap: 4px 8px; font-size: 13px; color: var(--ecv2-g900); }
.ecodv2-label-pkg-meta { font-size: 12px; color: var(--ecv2-g500); }
.ecodv2-label-pkg-items { margin-top: 2px; font-size: 12px; line-height: 1.4; color: var(--ecv2-g600); }
.ecodv2-label-pkg-row { display: flex; gap: 8px; margin-top: 8px; }
.ecodv2-label-pkg-row select { width: 130px; flex-shrink: 0; }
.ecodv2-label-pkg-row input { flex: 1; min-width: 0; border: 1px solid var(--ecv2-g300); border-radius: 9px; padding: 7px 11px; font-size: 12.5px; font-family: ui-monospace, SFMono-Regular, Menlo, monospace; }
.ecodv2-label-pkg-row input:focus, .ecodv2-label-pkg-row select:focus, .ecodv2-label-all select:focus { outline: none; border-color: var(--ecv2-primary); box-shadow: 0 0 0 3px rgba(22,163,74,.12); }
.ecodv2-label-pkg-done { display: flex; align-items: center; gap: 4px; margin-top: 6px; font-size: 12px; color: var(--ecv2-primary-hover, #15803d); font-family: ui-monospace, SFMono-Regular, Menlo, monospace; }
.ecodv2-label-pkg-done .dashicons { width: 16px; height: 16px; font-size: 16px; }
.ecodv2-label-status { margin: 10px 0 0; font-size: 12.5px; line-height: 1.45; }
.ecodv2-label-status:empty { display: none; }
.ecodv2-label-status.is-error { color: var(--ecv2-danger, #dc2626); }
.ecodv2-label-status.is-saved { padding: 9px 12px; border-radius: 9px; background: var(--ecv2-primary-soft, #dcfce7); color: var(--ecv2-primary-deep, #166534); }
@media (max-width: 600px) {
	.ecodv2-label-stepper li { padding: 7px 8px; font-size: 11.5px; }
	.ecodv2-label-pkg-row { flex-wrap: wrap; }
	.ecodv2-label-pkg-row select { width: 100%; }
	.ecodv2-label-foot { flex-wrap: wrap; }
}

/* ==================================================================
   V3.3 — Edit Line Item modal
   ================================================================== */
.ecodv2-line-backdrop { position: fixed; inset: 0; background: rgba(15,23,42,.5); backdrop-filter: blur(4px); -webkit-backdrop-filter: blur(4px); opacity: 0; pointer-events: none; transition: opacity .18s ease; z-index: 999996; }
body.ecodv2-line-open .ecodv2-line-backdrop { opacity: 1; pointer-events: auto; }
.ecodv2-line-modal { position: fixed; top: 50%; left: 50%; transform: translate(-50%, -47%) scale(.98); width: 540px; max-width: 95vw; max-height: 90vh; display: flex; flex-direction: column; background: #fff; border-radius: 16px; box-shadow: 0 24px 80px rgba(0,0,0,.35); z-index: 999997; opacity: 0; pointer-events: none; transition: all .18s ease; }
body.ecodv2-line-open .ecodv2-line-modal { opacity: 1; pointer-events: auto; transform: translate(-50%, -50%) scale(1); }
.ecodv2-line-modal-head { display: flex; align-items: center; gap: 10px; padding: 15px 20px; border-bottom: 1px solid var(--ecv2-g100); }
.ecodv2-line-modal-head h3 { margin: 0; font-size: 15px; }
.ecodv2-line-modal-chips { display: flex; gap: 5px; flex-wrap: wrap; min-width: 0; }
.ecodv2-line-modal-head .ecodv2-drawer-x { margin-left: auto; }
.ecodv2-line-modal-body { flex: 1; overflow-y: auto; padding: 18px 20px; }
.ecodv2-line-modal-foot { display: flex; align-items: center; gap: 10px; padding: 13px 20px; border-top: 1px solid var(--ecv2-g100); background: var(--ecv2-g50); }
.ecodv2-line-remove { display: inline-flex; align-items: center; gap: 5px; border: none; background: transparent; padding: 5px 9px; border-radius: 7px; font-size: 12px; color: var(--ecv2-g400); cursor: pointer; }
.ecodv2-line-remove:hover { background: #fee2e2; color: var(--ecv2-danger, #dc2626); }
.ecodv2-line-remove .dashicons { font-size: 14px; width: 14px; height: 14px; margin-top: 2px; }

/* Normalize the PRO-printed edit containers ( unknown legacy markup ) into
   the modal's field pattern: tables flatten, labels stack, inputs fill. */
.ecodv2-line-modal-body > div { float: none !important; width: 100% !important; margin: 0 0 12px !important; padding: 0 !important; background: transparent !important; border: none !important; }
.ecodv2-line-modal-body table,
.ecodv2-line-modal-body thead,
.ecodv2-line-modal-body tbody,
.ecodv2-line-modal-body tr,
.ecodv2-line-modal-body th,
.ecodv2-line-modal-body td { display: block; width: 100% !important; padding: 0; margin: 0; text-align: left; border: none; }
.ecodv2-line-modal-body th,
.ecodv2-line-modal-body label,
.ecodv2-line-modal-body .ec_details_option_label { display: block; float: none !important; width: 100% !important; font-size: 10.5px !important; font-weight: 600 !important; color: var(--ecv2-g500) !important; margin: 0 0 4px !important; text-transform: none; letter-spacing: 0; }
.ecodv2-line-modal-body input[type="text"],
.ecodv2-line-modal-body input:not([type]),
.ecodv2-line-modal-body input[type="number"],
.ecodv2-line-modal-body textarea { display: block; float: none !important; width: 100% !important; min-width: 0 !important; border: 1px solid var(--ecv2-g300) !important; border-radius: 9px !important; padding: 8px 11px !important; font-size: 12.5px !important; background: #fff !important; box-sizing: border-box; margin: 0 0 8px !important; }
.ecodv2-line-modal-body input:focus,
.ecodv2-line-modal-body textarea:focus { outline: none !important; border-color: var(--ecv2-primary) !important; box-shadow: 0 0 0 3px rgba(22,163,74,.12) !important; }
.ecodv2-line-modal-body td:last-child input { margin-bottom: 0 !important; }

/* Qty × unit + total side by side. */
.ecodv2-line-money { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; margin-top: 2px; }
.ecodv2-line-money > div { float: none !important; width: auto !important; margin: 0 !important; min-width: 0; }
.ecodv2-line-money input { text-align: right; font-variant-numeric: tabular-nums; }

/* V3.4: hide the totals editor during the programmatic silent save. */
body.ecodv2-totals-silent #ec_admin_order_details_totals_form { display: none !important; }
body.ecodv2-totals-silent #ec_admin_order_details_totals_content { display: block !important; }

/* ==================================================================
   V3.5 — line-delete confirmation popover
   ================================================================== */
.ecodv2-del-pop { position: absolute; width: 240px; background: #fff; border: 1px solid var(--ecv2-g200); border-radius: 12px; box-shadow: 0 16px 48px rgba(0,0,0,.2); padding: 12px 14px; z-index: 9999998; display: none; }
.ecodv2-del-pop.is-open { display: block; }
.ecodv2-del-pop-msg { font-size: 12.5px; font-weight: 500; color: var(--ecv2-g800); margin-bottom: 10px; }
.ecodv2-del-pop-actions { display: flex; justify-content: flex-end; gap: 7px; }
.ecodv2-del-pop .ecodv2-del-go { background: var(--ecv2-danger, #dc2626); border-color: var(--ecv2-danger, #dc2626); color: #fff; font-weight: 600; }
.ecodv2-del-pop .ecodv2-del-go:hover { filter: brightness( .93 ); color: #fff; }

/* ==================================================================
   V3.6 — Add Line modal
   ================================================================== */
body.ecodv2-add-open .ecodv2-add-backdrop { opacity: 1; pointer-events: auto; }
.ecodv2-add-modal { display: flex; }
body:not(.ecodv2-add-open) .ecodv2-add-modal { opacity: 0; pointer-events: none; transform: translate(-50%, -47%) scale(.98); }
body.ecodv2-add-open .ecodv2-add-modal { opacity: 1; pointer-events: auto; transform: translate(-50%, -50%) scale(1); }
/* 6.0.2: tidied. The Edit line rules above ( .ecodv2-line-modal-body > div, label, input, all !important ) gave the fields
   stacked margins ( inputs 8px, fields 12px, the empty options box 12px more ), 10.5px labels and a green focus ring, and
   `background: #fff` on the selects removed their arrow. One grid with even gaps; selects keep WordPress's arrow and are not
   capped ( WordPress limits selects to 25rem ); the product search looks like the other inputs; the focus follows the admin
   colour. */
.ecodv2-add-modal .ecodv2-line-modal-body { display: grid; gap: 14px; align-content: start; }
.ecodv2-add-modal .ecodv2-line-modal-body > div,
.ecodv2-add-modal .ecodv2-line-modal-body > p { margin: 0 !important; }
.ecodv2-add-modal .ecodv2-field { margin: 0; min-width: 0; }
.ecodv2-add-modal .ecodv2-field label { display: block; font-size: 11px !important; font-weight: 600 !important; color: var(--ecv2-g500) !important; margin: 0 0 5px !important; }
.ecodv2-add-modal .ecodv2-field select:not(.select2-hidden-accessible),
.ecodv2-add-modal .ecodv2-field input { display: block; width: 100% !important; max-width: none !important; min-width: 0 !important; height: 36px; min-height: 36px; margin: 0 !important; border: 1px solid var(--ecv2-g300) !important; border-radius: 9px !important; padding: 0 11px !important; font-size: 13px !important; line-height: 34px; color: var(--ecv2-g800); background-color: #fff !important; box-sizing: border-box; box-shadow: none; }
.ecodv2-add-modal .ecodv2-field select:not(.select2-hidden-accessible) { padding-right: 30px !important; }
.ecodv2-add-modal .ecodv2-field input:focus,
.ecodv2-add-modal .ecodv2-field select:focus { outline: none !important; border-color: var(--ec-brand, var(--ecv2-primary)) !important; box-shadow: 0 0 0 3px var(--ec-brand-soft, rgba(22,163,74,.12)) !important; }
/* The product's options, side by side in a soft panel, only when it has any. */
.ecodv2-add-modal .ecodv2-line-modal-body > .ecodv2-add-options { display: grid !important; grid-template-columns: repeat( auto-fit, minmax( 180px, 1fr ) ); gap: 12px; padding: 12px 14px !important; background: var(--ecv2-g50) !important; border: 1px solid var(--ecv2-g200) !important; border-radius: 10px; }
.ecodv2-add-modal .ecodv2-line-modal-body > .ecodv2-add-options:not(.has-options) { display: none !important; }
.ecodv2-add-money { display: grid; grid-template-columns: 110px minmax( 0, 1fr ) minmax( 0, 1fr ); gap: 12px; align-items: end; }
.ecodv2-add-money input { text-align: right; font-variant-numeric: tabular-nums; }
.ecodv2-add-modal.is-loading .ecodv2-add-money,
.ecodv2-add-modal.is-loading .ecodv2-add-options { opacity: .55; pointer-events: none; }
.ecodv2-add-note { font-size: 11.5px; line-height: 1.45; color: var(--ecv2-g500); }
.ecodv2-add-modal .ecodv2-label-saved { margin: 0; }
#ecodv2_add_line_save:disabled { background: var(--ecv2-g200); border-color: var(--ecv2-g200); color: var(--ecv2-g400); cursor: not-allowed; }
/* The product search ( select2 ) matches the inputs. */
.ecodv2-add-modal .select2-container { width: 100% !important; }
.ecodv2-add-modal .select2-container--default .select2-selection--single { height: 36px; border: 1px solid var(--ecv2-g300); border-radius: 9px; background: #fff; }
.ecodv2-add-modal .select2-container--default .select2-selection--single .select2-selection__rendered { line-height: 34px; padding-left: 11px; padding-right: 30px; font-size: 13px; color: var(--ecv2-g800); }
.ecodv2-add-modal .select2-container--default .select2-selection--single .select2-selection__placeholder { color: var(--ecv2-g400); }
.ecodv2-add-modal .select2-container--default .select2-selection--single .select2-selection__arrow { height: 34px; right: 6px; }
.ecodv2-add-modal .select2-container--default.select2-container--focus .select2-selection--single,
.ecodv2-add-modal .select2-container--default.select2-container--open .select2-selection--single { border-color: var(--ec-brand, var(--ecv2-primary)); box-shadow: 0 0 0 3px var(--ec-brand-soft, rgba(22,163,74,.12)); }
.ecodv2-add-modal .select2-dropdown { border: 1px solid var(--ecv2-g200); border-radius: 9px; box-shadow: 0 12px 32px rgba(15,23,42,.14); overflow: hidden; }
.ecodv2-add-modal .select2-search--dropdown { padding: 8px; }
.ecodv2-add-modal .select2-search--dropdown .select2-search__field { border: 1px solid var(--ecv2-g300); border-radius: 7px; padding: 6px 9px; font-size: 13px; }
.ecodv2-add-modal .select2-results > .select2-results__options { max-height: 280px; }
.ecodv2-add-modal .select2-results__option { padding: 7px 10px; font-size: 13px; }
.ecodv2-add-modal .select2-container--default .select2-results__option--highlighted[aria-selected] { background: var(--ec-brand-softer, var(--ecv2-g100)); color: var(--ecv2-g900); }
@media ( max-width: 520px ) {
	.ecodv2-add-money { grid-template-columns: 1fr 1fr; }
	.ecodv2-add-money .ecodv2-field:first-child { grid-column: 1 / -1; }
}

/* ==================================================================
   V3.7.1 — totals rows align structurally, WITHOUT overriding the
   show / hide machinery: inline display:none ( zero-prune, legacy save )
   must keep hiding rows; rows revealed via jQuery .show() ( inline
   display:block ) are converted back to flex by attribute match.
   ================================================================== */
.ecodv2-trow { display: flex; justify-content: space-between; align-items: baseline; gap: 12px; }
.ecodv2-trow.ec_admin_initial_hide { display: none; }
.ecodv2-trow[style*="display: block"],
.ecodv2-trow[style*="display:block"] { display: flex !important; justify-content: space-between; align-items: baseline; gap: 12px; }
.ecodv2-trow > div:first-child,
.ecodv2-trow > span:first-child { font-size: 13px; color: var(--ecv2-g600); float: none; width: auto; text-align: left; }
.ecodv2-trow > div:last-child,
.ecodv2-trow > span:last-child { margin-left: auto; font-size: 13px; color: var(--ecv2-g800); font-variant-numeric: tabular-nums; float: none; width: auto; text-align: right; }
.ecodv2-grand-row > div:first-child,
.ecodv2-grand-row > div:last-child { font-weight: 700; font-size: 14.5px; color: var(--ecv2-g900); }

/* ==================================================================
   V3.8 — pinned note strip + editor
   ================================================================== */
.ecodv2-pin-strip { display: flex; align-items: flex-start; gap: 9px; padding: 11px 14px; background: #fffbeb; border: 1px solid #fde68a; border-left: 4px solid var(--ecv2-amber, #f59e0b); border-radius: 10px; margin-bottom: 14px; }
.ecodv2-pin-strip > .dashicons { color: var(--ecv2-amber, #f59e0b); font-size: 16px; width: 16px; height: 16px; margin-top: 1px; }
.ecodv2-pin-text { flex: 1 1 auto; min-width: 0; font-size: 12.5px; color: #78350f; line-height: 1.55; white-space: pre-wrap; overflow-wrap: break-word; }
.ecodv2-pin-strip .ecodv2-edit-link { flex: 0 0 auto; }
.ecodv2-pin-add { margin-bottom: 14px; }
.ecodv2-pin-add a { display: inline-flex; align-items: center; gap: 5px; font-size: 12px; color: var(--ecv2-g400); text-decoration: none; }
.ecodv2-pin-add a:hover { color: var(--ecv2-amber, #f59e0b); }
.ecodv2-pin-add .dashicons { font-size: 14px; width: 14px; height: 14px; }
.ecodv2-pin-editor { padding: 12px 14px; background: #fffbeb; border: 1px solid #fde68a; border-radius: 10px; margin-bottom: 14px; }
.ecodv2-pin-editor textarea { width: 100%; min-height: 64px; border: 1px solid var(--ecv2-g300); border-radius: 9px; padding: 9px 12px; font-size: 12.5px; box-sizing: border-box; resize: vertical; background: #fff; }
.ecodv2-pin-editor textarea:focus { outline: none; border-color: var(--ecv2-amber, #f59e0b); box-shadow: 0 0 0 3px rgba(245,158,11,.14); }
.ecodv2-pin-editor-foot { display: flex; align-items: center; gap: 8px; margin-top: 9px; }
.ecodv2-pin-unpin { border: none; background: transparent; font-size: 12px; color: var(--ecv2-g400); cursor: pointer; padding: 4px 8px; border-radius: 6px; }
.ecodv2-pin-unpin:hover { background: #fee2e2; color: var(--ecv2-danger, #dc2626); }
#ecodv2_pin_save_btn:disabled { opacity: .75; cursor: default; }

/* V4.2: body scroll lock while the history drawer is open. */
body.ecodv2-hdrawer-open { overflow: hidden; }

/* ---------- Free-edition PRO markers on the order page ---------- */
.ecodv2-pro-pill { display:inline-flex; align-items:center; padding:1px 6px; border-radius:5px; background:var(--ecv2-amber, #f59e0b); color:#fff; font-size:9.5px; font-weight:800; letter-spacing:.5px; line-height:1.5; margin-left:6px; vertical-align:middle; }
.ecodv2-toolbar-menu .ecodv2-menu-locked { color:var(--ecv2-g500); }
.ecodv2-toolbar-menu .ecodv2-menu-locked .dashicons { color:var(--ecv2-g400); }
.ecodv2-toolbar-menu .ecodv2-menu-locked .ecodv2-pro-pill { margin-left:auto; }
.ecodv2-toolbar-menu .ecodv2-menu-locked:hover { color:var(--ecv2-g800); }

/* Order History ( free stub ) */
.ecodv2-history-free .wpeasycart-timeline-item.is-locked .dashicons { color:var(--ecv2-g400); }
.ecodv2-history-free .wpeasycart-timeline-item.is-locked a { color:var(--ecv2-g600); }
.ecodv2-history-free .wpeasycart-timeline-item.is-locked small { color:var(--ecv2-g400); }
.ecodv2-history-free .wpeasycart-timeline-item.is-locked { opacity:.85; }
.ecodv2-history-cta { display:flex; align-items:center; gap:10px; padding:10px 12px; margin:8px 0 0; border-radius:var(--ecv2-r); border:1px dashed var(--ecv2-g200); background:var(--ecv2-g50); cursor:pointer; width:100%; text-align:left; font:inherit; color:inherit; }
.ecodv2-history-cta:hover { border-color:#fcd34d; background:#fffbeb; }
.ecodv2-history-cta strong { display:block; font-size:12.5px; color:var(--ecv2-g800); }
.ecodv2-history-cta span { display:block; font-size:11.5px; color:var(--ecv2-g500); }
.ecodv2-history-cta .ecodv2-history-cta-text { flex:1 1 auto; }

/* Product picker results ( Add Line modal ) */
.ecodv2-product-result { display:flex; align-items:center; gap:8px; min-width:0; }
.ecodv2-product-result code { font-size:11px; background:var(--ecv2-g100); padding:1px 6px; border-radius:4px; color:var(--ecv2-g600); }
.ecodv2-product-result em { margin-left:auto; font-style:normal; color:var(--ecv2-g500); font-size:12px; }
.ecodv2-add-modal .select2-container { z-index:100010; }

/* ---------- Mobile: the order header scrolls with the page ----------
   It carries too much ( tags, insights, meta, status controls ) to pin; pinned at 400px tall it
   just hid the content below it. On phones the shell top bar already provides navigation. */
@media screen and (max-width: 782px) {
	.ecodv2-header.ecdv2-header { position: static; top: auto; box-shadow: none; }
	.ecodv2-header .ecdv2-header-title { max-width: none; white-space: normal; }
	.ecodv2-header .ecdv2-header-sub { max-width: none; }
	.ecodv2-header .ecdv2-header-spacer { display: none; }
	.ecodv2-header .ecodv2-status-wrap { flex: 1 1 auto; min-width: 0; }
	.ecodv2-header .ecodv2-status-pill { max-width: 100%; }
}
/* ==================================================================
   Header actions between ~1228px and ~1388px: the status select, prev/next and the ⋯ menu used to wrap
   one at a time, leaving the ⋯ stranded at the far left with its right-anchored dropdown off screen.
   Keep the actions as one right-aligned unit that wraps as a whole, and let the title block shrink first.
   ================================================================== */
.ecodv2-header .ecdv2-header-meta { flex: 1 1 320px; min-width: 240px; }
.ecodv2-header .ecdv2-header-actions { flex: 0 0 auto; flex-wrap: nowrap; margin-left: auto; justify-content: flex-end; }
.ecodv2-header .ecodv2-status-wrap { min-width: 170px; }
@media ( max-width: 1400px ) {
	.ecodv2-header .ecodv2-status-wrap { min-width: 150px; }
}
@media ( max-width: 900px ) {
	.ecodv2-header .ecdv2-header-actions { width: 100%; justify-content: flex-end; margin-left: 0; }
}
/* the dropdown never anchors off the left edge, even if a theme narrows the header further */
.ecodv2-menu-wrap .ecdv2-menu { right: 0; left: auto; max-width: calc(100vw - 32px); }
/* the generic phone rule hides .ecdv2-menu-wrap inside header actions ( editors keep only Save ); the order header has
   no Save and its ⋯ menu carries print/email, so keep it */
@media screen and ( max-width: 600px ) {
	.ecodv2-header .ecdv2-header-actions .ecdv2-menu-wrap { display: block; }
	.ecodv2-header .ecdv2-header-actions { flex-wrap: wrap; }
}

/* 6.0.0 — account-dependent fragments repainted after the order's user changes.
   The wrappers exist only as AJAX refill targets, so they add no layout box. */
.ecodv2-header-chips,
.ecodv2-user-account { display: contents; }
.ecodv2-customer-card-extra { clear: both; }

/* 6.0.0 — drawer-native feedback. The drawer sits at z-index 999999 ( above the WP admin bar ), so the
   order toast has to sit above it; while the drawer is open it moves left of the panel so it never covers
   the fields. The spinner inherits the text color so it works on the primary Save button and inline. */
.ecodv2-save-toast { position: fixed; bottom: 24px; right: 24px; z-index: 1000001; display: flex; align-items: center; gap: 8px; max-width: 360px; padding: 12px 18px; border-radius: var(--ecv2-r, 8px); background: var(--ecv2-primary); color: #fff; font-size: 13px; font-weight: 500; line-height: 1.4; box-shadow: var(--ecv2-shlg, 0 10px 30px rgba(0,0,0,.2)); opacity: 0; transform: translateY(8px); pointer-events: none; transition: opacity .2s ease, transform .2s ease; }
.ecodv2-save-toast.is-visible { opacity: 1; transform: translateY(0); pointer-events: auto; }
.ecodv2-save-toast.is-error { background: var(--ecv2-danger); }
.ecodv2-save-toast .dashicons { flex: 0 0 auto; font-size: 16px; width: 16px; height: 16px; }
body.ecodv2-drawer-open .ecodv2-save-toast { right: calc( min( 460px, 96vw ) + 24px ); }
@media screen and ( max-width: 782px ) {
	body.ecodv2-drawer-open .ecodv2-save-toast { right: 50%; transform: translate(50%, 8px); bottom: 76px; max-width: calc( 100vw - 48px ); }
	body.ecodv2-drawer-open .ecodv2-save-toast.is-visible { transform: translate(50%, 0); }
}
.ecodv2-save-spin { display: inline-block; flex: 0 0 auto; width: 12px; height: 12px; margin-right: 6px; vertical-align: -1px; border: 2px solid currentColor; border-right-color: transparent; border-radius: 50%; animation: ecodv2-spin .7s linear infinite; }
@keyframes ecodv2-spin { to { transform: rotate(360deg); } }
/* The V1 full-page preloaders never show while a drawer save is in flight. */
body.ecodv2-drawer-saving #ec_admin_shipping_details,
body.ecodv2-drawer-saving #ec_admin_order_management { display: none !important; }

/* Account picker: inline status line + locked state while the change saves. */
/* The legacy admin.css floats every .select2-container right at min-width 80%; inside the drawer that float
   squeezed the status line into a narrow column beside it. Keep the picker a full-width block and clear it. */
.ecodv2-drawer-account .select2-container { display: block; float: none !important; width: 100% !important; min-width: 0 !important; margin: 0 !important; }
.ecodv2-drawer-account::after { content: ""; display: table; clear: both; }
.ecodv2-account-status { display: flex; align-items: flex-start; gap: 6px; clear: both; width: 100%; box-sizing: border-box; margin-top: 6px; font-size: 12px; line-height: 1.45; color: var(--ecv2-g600); white-space: normal; overflow-wrap: anywhere; }
.ecodv2-account-status[hidden] { display: none; }
.ecodv2-account-status .ecodv2-account-status-msg { flex: 1 1 auto; min-width: 0; }
.ecodv2-account-status .ecodv2-save-spin { margin: 2px 0 0; color: var(--ecv2-primary); }
.ecodv2-account-status .dashicons { flex: 0 0 auto; font-size: 16px; width: 16px; height: 16px; }
.ecodv2-account-status.is-ok { color: var(--ecv2-primary); }
.ecodv2-account-status.is-error { color: var(--ecv2-danger); }

/* 6.0.0 — email actions ( resend receipt, resend gift card, order shipped ) show a busy state on the
   control they were fired from, and the shipped email leaves a line on the fulfillment card. */
.ecdv2-menu a.is-busy,
.ecodv2-giftcard-resend.is-busy { opacity: .55; pointer-events: none; }
.ecodv2-shipped-note { display: flex; align-items: center; gap: 6px; width: 100%; margin-top: 8px; font-size: 12px; color: var(--ecv2-primary); }
.ecodv2-shipped-note .dashicons { font-size: 15px; width: 15px; height: 15px; }
.ecodv2-drawer.is-account-busy .ecodv2-drawer-account .select2-container { opacity: .6; }
.ecodv2-drawer.is-account-busy #ecodv2_drawer_save { opacity: .55; pointer-events: none; }

/* Plan badges show "Pro/Premium", "Pro" or "Premium" ( wp_easycart_admin_edition ); keep them caps on one line. @since 6.0.0 */
.ecodv2-pro-pill { text-transform:uppercase; white-space:nowrap; }

/* Send dialog: resend receipt / order shipped email ( orders-details-v2.js, ecodv2_email_dialog ). @since 6.0.0 */
.ecodv2-send-modal { max-width: 460px; }
.ecodv2-send-field { display: flex; flex-direction: column; gap: 5px; margin: 0 0 12px; }
.ecodv2-send-field label { font-size: 12.5px; font-weight: 600; color: var(--ecv2-g700); }
.ecodv2-send-field .ecv2-input { width: 100%; box-sizing: border-box; }
/* 6.0.2 bug round 7: every box in the dialog ( To, Cc, Bcc, a message's subject and text ) in the Email chooser's look, over
   WordPress's own text box styles. */
.ecodv2-send-modal .ecv2-input { box-sizing: border-box; min-height: 36px; padding: 7px 11px; border: 1px solid var(--ecv2-g300); border-radius: 9px; background: #fff; box-shadow: none; color: var(--ecv2-g900); font-size: 13px; line-height: 1.4; }
.ecodv2-send-modal .ecv2-input:focus { outline: none; border-color: var(--ec-brand, var(--ecv2-primary)); box-shadow: 0 0 0 3px var(--ec-brand-soft, var(--ecv2-primary-light)); }
.ecodv2-send-field .ecv2-input.is-invalid { border-color: var(--ecv2-danger, #dc2626); box-shadow: 0 0 0 3px rgba(220, 38, 38, .12); }
.ecodv2-send-error { margin: 10px 0 0; font-size: 12.5px; color: var(--ecv2-danger, #dc2626); }
.ecodv2-send-error[hidden] { display: none; }

/* 6.0.1: one dialog for every order email: Email choice, Preview, and the document sections ( WP EasyCart PRO fills
   .ecodv2-send-ext; without it a locked strip opens the upgrade popup ). Accent follows the admin colorizer. */
.ecdv2-menu a[hidden] { display: none; }
.ecodv2-send-modal.has-ext { max-width: 560px; }
.ecodv2-send-order { font-weight: 500; color: var(--ecv2-g400); }
.ecodv2-send-label { font-size: 12.5px; font-weight: 600; color: var(--ecv2-g700); }
.ecodv2-send-pro { display: inline-flex; align-items: center; padding: 1px 6px; border-radius: 999px; background: var(--ecv2-g900); color: #fff; font-size: 9.5px; font-weight: 700; letter-spacing: .05em; line-height: 1.4; text-transform: uppercase; white-space: nowrap; }
/* 6.0.2: the email picker ( a button over a listbox ) and the recipients ( "To  address" rows that open on a click,
   Cc / Bcc on request ). Owner bug round 4, items 3 and 4. */
.ecodv2-send-picker { position: relative; }
.ecodv2-send-pick { display: flex; align-items: center; gap: 10px; width: 100%; padding: 9px 12px; border: 1px solid var(--ecv2-g300); border-radius: 10px; background: #fff; text-align: left; cursor: pointer; font: inherit; color: var(--ecv2-g900); }
.ecodv2-send-pick:hover { border-color: var(--ec-brand, var(--ecv2-primary)); }
.ecodv2-send-pick:focus-visible, .ecodv2-send-pick[aria-expanded="true"] { outline: none; border-color: var(--ec-brand, var(--ecv2-primary)); box-shadow: 0 0 0 3px var(--ec-brand-soft, var(--ecv2-primary-light)); }
.ecodv2-send-pick-caret { margin-left: auto; color: var(--ecv2-g500); transition: transform .15s ease; }
.ecodv2-send-pick[aria-expanded="true"] .ecodv2-send-pick-caret { transform: rotate(180deg); }
.ecodv2-send-choice-icon.dashicons { flex-shrink: 0; display: grid; place-items: center; width: 32px; height: 32px; border-radius: 8px; background: var(--ec-brand-soft, var(--ecv2-primary-light)); color: var(--ec-brand, var(--ecv2-primary-hover)); font-size: 17px; line-height: 32px; }
.ecodv2-send-choice-text { display: flex; flex-direction: column; gap: 1px; min-width: 0; }
.ecodv2-send-choice-text b { font-size: 13px; font-weight: 600; color: var(--ecv2-g900); }
.ecodv2-send-choice-text small { font-size: 12px; line-height: 1.35; color: var(--ecv2-g500); }
.ecodv2-send-choice-text small[hidden] { display: none; }
/* 6.0.2 bug round 6: the list floats over the dialog ( it pushed the dialog down and stretched it ). It is placed against the
   window by the page script ( under the button, or above it when there is more room ), so the dialog's scrolling never cuts
   it off. */
.ecodv2-send-menu { position: fixed; z-index: 20; box-sizing: border-box; max-height: 320px; overflow-y: auto; margin: 0; padding: 4px; list-style: none; border: 1px solid var(--ecv2-g200); border-radius: 10px; background: #fff; box-shadow: 0 16px 40px rgba(15,23,42,.18), 0 2px 6px rgba(15,23,42,.08); }
.ecodv2-send-menu[hidden] { display: none; }
.ecodv2-send-menu:focus { outline: none; }
.ecodv2-send-choice { display: flex; align-items: center; gap: 10px; margin: 0; padding: 8px 10px; border-radius: 8px; cursor: pointer; }
.ecodv2-send-choice.is-focus { background: var(--ecv2-g50, #f9fafb); }
.ecodv2-send-choice.is-active .ecodv2-send-choice-text b { color: var(--ec-brand, var(--ecv2-primary-hover)); }
.ecodv2-send-choice-check { margin-left: auto; color: var(--ec-brand, var(--ecv2-primary)); visibility: hidden; }
.ecodv2-send-choice.is-active .ecodv2-send-choice-check { visibility: visible; }
.ecodv2-send-choice.is-locked { opacity: .75; }
.ecodv2-send-choice.is-locked .ecodv2-send-choice-icon.dashicons { background: var(--ecv2-g100); color: var(--ecv2-g500); }
.ecodv2-send-choice .ecodv2-send-pro { margin-left: auto; }
.ecodv2-send-rcpts { display: flex; flex-direction: column; gap: 4px; margin: 0 0 4px; padding: 6px 0; border-top: 1px solid var(--ecv2-g100); border-bottom: 1px solid var(--ecv2-g100); }
.ecodv2-send-rcpt { display: flex; align-items: center; gap: 10px; min-height: 34px; }
.ecodv2-send-rcpt.is-hidden { display: none; }
.ecodv2-send-rcpt-label { flex: 0 0 34px; font-size: 12.5px; font-weight: 600; color: var(--ecv2-g500); }
.ecodv2-send-rcpt-view { display: inline-flex; align-items: center; gap: 6px; min-width: 0; max-width: 100%; padding: 5px 9px; border: 1px solid transparent; border-radius: 8px; background: transparent; cursor: pointer; font: inherit; font-size: 13px; color: var(--ecv2-g900); text-align: left; }
.ecodv2-send-rcpt-view:hover, .ecodv2-send-rcpt-view:focus-visible { outline: none; border-color: var(--ecv2-g200); background: var(--ecv2-g50, #f9fafb); }
.ecodv2-send-rcpt-value { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.ecodv2-send-rcpt-view .dashicons { width: 15px; height: 15px; font-size: 15px; color: var(--ecv2-g400); }
.ecodv2-send-rcpt .ecv2-input { display: none; flex: 1 1 auto; min-width: 0; }
.ecodv2-send-rcpt.is-editing .ecodv2-send-rcpt-view { display: none; }
.ecodv2-send-rcpt.is-editing .ecv2-input { display: block; }
.ecodv2-send-rcpt .ecv2-input.is-invalid { border-color: var(--ecv2-danger, #dc2626); box-shadow: 0 0 0 3px rgba(220, 38, 38, .12); }
.ecodv2-send-rcpt-add { display: flex; gap: 6px; padding-left: 44px; }
.ecodv2-send-rcpt-more { padding: 2px 8px; border: 0; border-radius: 6px; background: transparent; cursor: pointer; font: inherit; font-size: 12px; font-weight: 600; color: var(--ec-brand, var(--ecv2-primary-hover)); }
.ecodv2-send-rcpt-more:hover, .ecodv2-send-rcpt-more:focus-visible { outline: none; background: var(--ec-brand-soft, var(--ecv2-primary-light)); }
.ecodv2-send-rcpt-more[hidden] { display: none; }
.ecodv2-send-hint { margin: 2px 0 0 44px; font-size: 12px; color: var(--ecv2-g500); }
.ecodv2-send-hint[hidden] { display: none; }
.ecodv2-send-ext:empty { display: none; }
/* 6.0.2 bug round 7: the recipients' bottom line is the divider ( a second one sat 14px under it ); WP EasyCart PRO's sections
   ( .ecdocs ) bring their own headings and cards. */
.ecodv2-send-ext { margin: 18px 0 0; padding: 0; border-top: 0; }
.ecodv2-send-ext > * + * { margin-top: 18px; }
.ecodv2-send-ext .ecodv2-msg .ecodv2-send-hint { margin-left: 0; }
.ecodv2-send-more { display: flex; align-items: center; gap: 12px; width: 100%; margin: 18px 0 0; padding: 12px; border: 1px solid var(--ecv2-g200); border-radius: 12px; background: #fff; font: inherit; text-align: left; cursor: pointer; box-sizing: border-box; transition: border-color .15s ease, background-color .15s ease; }
.ecodv2-send-more:hover, .ecodv2-send-more:focus-visible { outline: none; border-color: var(--ec-brand, var(--ecv2-primary)); background: var(--ecv2-g50, #f9fafb); }
.ecodv2-send-more-icon.dashicons { flex-shrink: 0; display: grid; place-items: center; width: 32px; height: 32px; border-radius: 8px; background: var(--ecv2-g100); color: var(--ecv2-g500); font-size: 17px; line-height: 32px; }
.ecodv2-send-more-text { display: flex; flex: 1 1 auto; flex-direction: column; gap: 2px; min-width: 0; }
.ecodv2-send-more-text b { font-size: 13px; font-weight: 600; color: var(--ecv2-g900); }
.ecodv2-send-more-text span { font-size: 12px; line-height: 1.4; color: var(--ecv2-g500); }
#ecodv2_send_preview[hidden] { display: none; }
.ecodv2-preview-overlay { z-index: 100020; }
.ecodv2-preview-modal { max-width: 760px; }
.ecodv2-preview-modal .ecv2-modal-body { padding: 0; background: var(--ecv2-g100); }
.ecodv2-preview-frame { display: block; width: 100%; height: 70vh; border: 0; background: #fff; }

/* Order header on a phone: the status pill ran off the right edge and the "..." menu was pushed out of the row.
   Title and chips wrap, then the status pill and the three action buttons share a full-width row. @since 6.0.0 */
@media screen and (max-width:600px) {
	.ecodv2-header { flex-wrap: wrap; row-gap: 8px; }
	.ecodv2-header .ecdv2-header-meta { flex: 1 1 100%; order: 2; }
	.ecodv2-header .ecdv2-header-spacer { display: none; }
	/* The status pill, prev / next and the "..." menu share one row that wraps inside the header instead of running off it. */
	.ecodv2-header .ecdv2-header-actions { flex: 1 1 100%; order: 3; flex-wrap: wrap; gap: 8px; justify-content: flex-start; }
	.ecodv2-header .ecodv2-status-wrap { flex: 1 1 auto; min-width: 0; }
	.ecodv2-header .ecodv2-status-pill { max-width: 100%; width: 100%; justify-content: space-between; }
	.ecodv2-header .ecodv2-status-pill > span:not(.ecodv2-status-dot):not(.ecodv2-status-caret) { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
	/* The menu hangs off its wrapper, which is now the full header width: align it to the pill instead of the right edge. */
	.ecodv2-header .ecodv2-status-menu { left: 0; right: auto; min-width: 0; width: 100%; max-height: 60vh; }
}

/* 6.0.2: Checkout fields card ( wp_easycart_order_fields::admin_card(); answers to WP EasyCart PRO checkout fields ). Scoped to
   the card: .ecodv2-field is also every edit form's field class on this screen ( add line item, billing, shipping, order info ). */
.ecodv2-card-checkout-fields .ecodv2-fields { margin: 0; }
.ecodv2-card-checkout-fields .ecodv2-field { padding: 7px 0; border-bottom: 1px solid #f0f0f1; }
.ecodv2-card-checkout-fields .ecodv2-field:first-child { padding-top: 0; }
.ecodv2-card-checkout-fields .ecodv2-field:last-child { border-bottom: 0; padding-bottom: 0; }
.ecodv2-card-checkout-fields .ecodv2-field dt { margin: 0 0 2px; font-size: 11px; font-weight: 600; letter-spacing: .03em; text-transform: uppercase; color: #6b7280; }
.ecodv2-card-checkout-fields .ecodv2-field dd { margin: 0; font-size: 13px; line-height: 1.45; color: #111827; overflow-wrap: anywhere; }
.ecodv2-card-checkout-fields .ecodv2-field dd.ecodv2-field-pending { color: #92400e; font-style: italic; }
.ecodv2-card-checkout-fields .ecodv2-field dd.ecodv2-field-empty { color: #9ca3af; }
.ecodv2-card-checkout-fields .ecodv2-fields-none { margin: 0; color: #6b7280; font-size: 13px; }
.ecodv2-card-checkout-fields [hidden] { display: none !important; }

/* 6.0.2 — gift orders ( wp_easycart_order_gift ): a Gift chip in the header and the Gift order card above the shipping
   address, in the warm tone the storefront uses for gifts. The wrapper stays for WP EasyCart PRO to refill after a change. */
.ecodv2-gift-chip { display: inline-flex; align-items: center; gap: 5px; padding: 2px 10px 2px 7px; border: 1px solid #f1cf73; border-radius: 999px; background: #fff7e0; color: #7a4300; font-size: 11.5px; font-weight: 600; line-height: 18px; white-space: nowrap; }
.ecodv2-gift-chip svg { width: 14px; height: 14px; color: #b45309; }
.ecodv2-gift-card-wrap { display: contents; }
.ecdv2-card.ecodv2-card-gift { border-color: #f1cf73; background: linear-gradient( 180deg, #fff7e0 0, #ffffff 64px ); }
/* 6.0.2: the gift note at the top of Create shipping label. */
.ecodv2-label-gift { display: flex; align-items: flex-start; gap: 8px; margin: 0 0 14px; padding: 10px 12px; border: 1px solid #f1cf73; border-radius: 10px; background: #fff7e0; font-size: 12.5px; line-height: 1.45; color: #6b4200; }
.ecodv2-label-gift-icon { font-size: 16px; line-height: 1.2; }
/* 6.0.2: refunds read as money that went back ( owner bug round 4, item 15 ). */
.ecodv2-trow.ecodv2-trow-refund .ecodv2-trow-label, .ecodv2-trow.ecodv2-trow-refund .ecodv2-trow-total { color: var(--ecv2-danger, #dc2626); font-weight: 600; }
.ecodv2-trow.ecodv2-trow-net .ecodv2-trow-label, .ecodv2-trow.ecodv2-trow-net .ecodv2-trow-total { font-weight: 700; color: var(--ecv2-g900); }
/* 6.0.2 bug round 6: gap: a flex item drops the space between "Refunded" and the amount. */
.ecodv2-refund-chip { display: inline-flex; align-items: center; gap: .3em; margin-left: 8px; padding: 2px 9px; border-radius: 999px; background: var(--ecv2-danger-light, #fef2f2); color: var(--ecv2-danger, #dc2626); font-size: 11.5px; font-weight: 600; vertical-align: 2px; }
.ecodv2-card-gift .ecdv2-card-header { border-bottom-color: #f6e2a8; }
.ecodv2-card-gift .ecdv2-card-title { display: flex; align-items: center; gap: 8px; color: #6b4200; }
.ecodv2-gift-mark { display: inline-flex; align-items: center; justify-content: center; flex: 0 0 auto; width: 26px; height: 26px; border-radius: 50%; background: #fde58a; color: #b45309; }
.ecodv2-gift-mark svg { width: 15px; height: 15px; }
.ecodv2-gift-message { margin: 0 0 12px; padding: 10px 12px; border-left: 3px solid #b45309; border-radius: 0 8px 8px 0; background: #fffbeb; color: #1f2937; font-family: Georgia, "Times New Roman", serif; font-size: 14px; font-style: italic; line-height: 1.5; white-space: pre-line; overflow-wrap: anywhere; }
.ecodv2-gift-none { margin: 0 0 12px; color: #6b7280; font-size: 12.5px; }
.ecodv2-gift-rows { display: grid; gap: 8px; margin: 0; }
.ecodv2-gift-row { display: flex; flex-wrap: wrap; align-items: baseline; gap: 4px 10px; font-size: 12.5px; line-height: 1.5; color: #374151; }
.ecodv2-gift-row dt { flex: 0 0 92px; margin: 0; color: #6b7280; font-weight: 600; }
.ecodv2-gift-row dd { flex: 1 1 140px; min-width: 0; margin: 0; overflow-wrap: anywhere; }
.ecodv2-gift-email { font-weight: 600; color: #111827; }
.ecodv2-gift-muted { color: #9ca3af; }
.ecodv2-gift-status { display: inline-block; padding: 0 8px; border-radius: 999px; background: #f3f4f6; color: #4b5563; font-size: 11px; font-weight: 600; line-height: 18px; white-space: nowrap; }
.ecodv2-gift-status.is-sent { background: #dcfce7; color: #166534; }
.ecodv2-gift-status.is-warn { background: #fef3c7; color: #92400e; }
.ecodv2-card-docs .ecodv2-docs-gift-flash { animation: ecodv2-gift-flash 1.6s ease-out 1; border-radius: 6px; }
@keyframes ecodv2-gift-flash { 0% { box-shadow: 0 0 0 3px rgba(180, 83, 9, .35); } 100% { box-shadow: 0 0 0 3px rgba(180, 83, 9, 0); } }

/* ==================================================================
   6.0.2 — order screen redesign ( https://claude.ai/artifact/9FU888SGrpJoFceHXNspwX )
   The page reads top to bottom as the work runs: what needs attention, the items and their shipping, the payment,
   then the activity; the customer and addresses sit beside it. Scoped to .ecodv2-v3 where an older rule would win.
   ================================================================== */

/* ---- Header ---- */
.ecodv2-v3 .ecdv2-header-sub { gap: 6px; }
.ecodv2-sub-sep { color: var(--ecv2-g300); }
.ecodv2-v3 .ecodv2-date-view { cursor: default; padding: 0; margin: 0; border: 0; font-weight: 500; color: var(--ecv2-g600); }
.ecodv2-v3 .ecodv2-date-view:hover { background: transparent; border-color: transparent; }
.ecodv2-meta-total { font-weight: 600; color: var(--ecv2-g800); font-variant-numeric: tabular-nums; }
.ecodv2-v3 .ecodv2-header-actions { gap: 8px; align-items: center; }
.ecodv2-v3 .ecodv2-header-actions > .ecv2-btn,
.ecodv2-v3 .ecodv2-header-actions .ecdv2-menu-wrap > .ecv2-btn,
.ecodv2-v3 .ecodv2-nav .ecv2-btn { height: 36px; box-sizing: border-box; display: inline-flex; align-items: center; gap: 5px; }
.ecodv2-v3 .ecodv2-header-actions .ecv2-btn .dashicons { font-size: 15px; width: 15px; height: 15px; }
.ecodv2-icon-only { width: 36px; padding: 0 !important; justify-content: center; }
.ecodv2-caret { font-size: 12px !important; width: 12px !important; height: 12px !important; color: var(--ecv2-g400); }
.ecodv2-v3 .ecodv2-nav { align-items: center; }
.ecodv2-nav-pos { font-size: 12px; color: var(--ecv2-g500); font-variant-numeric: tabular-nums; white-space: nowrap; padding: 0 4px; }
.ecodv2-nav-pos[hidden] { display: none; }
.ecodv2-next-btn[hidden] { display: none; }
/* The status is a setting, not the page's main action: a quiet labelled control. */
.ecodv2-v3 .ecodv2-status-wrap { margin: 0; min-width: 0; }
.ecodv2-v3 .ecodv2-status-pill { width: auto; min-width: 170px; max-width: 240px; border: 1px solid var(--ecv2-g300); font-weight: 500; font-size: 12.5px; gap: 7px; }
.ecodv2-v3 .ecodv2-status-pill:hover { border-color: var(--ecv2-g500); background: #fff; }
.ecodv2-v3 .ecodv2-status-pill:focus-visible { outline: none; border-color: var(--ec-brand, var(--ecv2-primary)); box-shadow: 0 0 0 3px var(--ec-brand-soft, rgba(22,163,74,.14)); }
.ecodv2-status-eyebrow { font-size: 10.5px; font-weight: 600; letter-spacing: .04em; text-transform: uppercase; color: var(--ecv2-g400); }
.ecodv2-status-pill.is-busy { opacity: .7; cursor: progress; }
.ecodv2-status-pill.is-busy .ecodv2-status-dot { animation: ecodv2-pulse 1s ease-in-out infinite; }
@keyframes ecodv2-pulse { 50% { opacity: .3; } }
.ecodv2-status-item:focus-visible, .ecodv2-status-add:focus-visible, .ecdv2-menu a:focus-visible { outline: none; background: var(--ecv2-g100); box-shadow: inset 0 0 0 2px var(--ec-brand, var(--ecv2-primary)); }
@media ( max-width: 1280px ) {
	.ecodv2-v3 .ecodv2-header .ecdv2-header-actions { flex-wrap: wrap; }
	.ecodv2-status-eyebrow { display: none; }
}

/* ---- Needs attention: holds, the pinned note, the customer's note ---- */
.ecodv2-attention { display: flex; flex-direction: column; gap: 10px; }
.ecodv2-callout { display: flex; align-items: flex-start; gap: 10px; padding: 11px 14px; border: 1px solid var(--ecv2-g200); border-left-width: 4px; border-radius: 10px; background: #fff; font-size: 12.5px; line-height: 1.55; color: var(--ecv2-g700); }
.ecodv2-callout > .dashicons { flex: 0 0 auto; font-size: 17px; width: 17px; height: 17px; margin-top: 1px; }
.ecodv2-callout-body { display: flex; flex-direction: column; gap: 2px; flex: 1 1 auto; min-width: 0; }
.ecodv2-callout-body strong { font-size: 12.5px; font-weight: 600; color: var(--ecv2-g900); }
.ecodv2-callout-body strong em { font-style: normal; font-weight: 400; color: var(--ecv2-g500); margin-left: 4px; }
.ecodv2-callout-body > span { white-space: pre-wrap; overflow-wrap: anywhere; }
.ecodv2-callout-actions { display: flex; align-items: center; gap: 2px; margin-left: auto; flex: 0 0 auto; }
.ecodv2-callout-actions .ecodv2-edit-link { margin-left: 0; }
.ecodv2-callout-red { background: #fef2f2; border-color: #fecaca; border-left-color: var(--ecv2-danger, #dc2626); }
.ecodv2-callout-red > .dashicons { color: var(--ecv2-danger, #dc2626); }
.ecodv2-callout-red .ecodv2-callout-body strong { color: #991b1b; }
.ecodv2-callout-yellow { background: #fffbeb; border-color: #fde68a; border-left-color: var(--ecv2-amber, #f59e0b); }
.ecodv2-callout-yellow > .dashicons { color: var(--ecv2-amber, #f59e0b); }
.ecodv2-callout-yellow .ecodv2-callout-body > span { color: #78350f; }
.ecodv2-callout-blue { background: #eff6ff; border-color: #bfdbfe; border-left-color: #2563eb; }
.ecodv2-callout-blue > .dashicons { color: #2563eb; }
/* 6.0.2 bug round 14: a notice's own buttons ( Stock not taken: Take stock now, Already corrected ). */
.ecodv2-callout-buttons { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 8px; }
.ecodv2-callout-yellow .ecodv2-callout-body strong { color: #78350f; }
.ecodv2-v3 .ecodv2-pin-strip { margin: 0; padding: 11px 14px; }
.ecodv2-v3 .ecodv2-pin-editor { margin: 0; }
.ecodv2-pin-editor-foot .ecodv2-pin-hint { font-size: 11.5px; color: #92400e; }
.ecodv2-v3 .ecodv2-cnotes-anchor.is-empty:not(.is-editing) { display: none; }
.ecodv2-v3 .ecodv2-cnotes-anchor .ecodv2-cnotes-text { font-size: 12.5px; color: var(--ecv2-g800); }
.ecodv2-note-adds { display: flex; flex-wrap: wrap; gap: 4px 16px; }
.ecodv2-note-adds:not(:has( > :not([hidden]) )) { display: none; }
.ecodv2-note-add { display: inline-flex; align-items: center; gap: 5px; padding: 2px 0; border: 0; background: transparent; font: inherit; font-size: 12px; color: var(--ecv2-g500); cursor: pointer; }
.ecodv2-note-add:hover, .ecodv2-note-add:focus-visible { color: var(--ec-brand, var(--ecv2-primary)); outline: none; text-decoration: underline; }
.ecodv2-note-add .dashicons { font-size: 14px; width: 14px; height: 14px; }
.ecodv2-note-add[hidden] { display: none; }
.ecodv2-flash { animation: ecodv2-flash 1.4s ease-out 1; }
@keyframes ecodv2-flash { 0% { box-shadow: 0 0 0 4px rgba(220, 38, 38, .35); } 100% { box-shadow: 0 0 0 4px rgba(220, 38, 38, 0); } }
.ecodv2-attention:focus, .ecodv2-attention:focus-visible { outline: none; }

/* ---- Items and their shipping ---- */
.ecodv2-v3 .ecodv2-o-items .ecdv2-card-header { border-bottom: 0; }
.ecodv2-v3 .ecdv2-card-header .ecodv2-item-actions { margin: 0 0 0 auto; padding: 0; border: 0; gap: 6px; }
.ecodv2-v3 .ecodv2-fulfill-banner { border-top: 1px solid var(--ecv2-g100); }
.ecodv2-fulfill-banner-partial { background: #fffbeb; color: #92400e; border-left: 3px solid var(--ecv2-amber, #f59e0b); }
.ecodv2-fulfill-banner-digital { background: var(--ecv2-g50); color: var(--ecv2-g600); border-left: 3px solid var(--ecv2-g300); }
/* WP EasyCart PRO 6.0.1 adds its own Fulfill Order button; this page has one Fulfill for every order ( its Mark Picked Up stays ). */
.ecodv2-v3 .ecodv2-fulfill-btn[onclick*="open_fulfill"] { display: none !important; }
.ecodv2-v3 .ecodv2-fulfill-row .ecodv2-track-link { margin-left: auto; }
.ecodv2-v3 .ecodv2-fulfill-row .ecodv2-track-link ~ .ecv2-btn { margin-left: 0; }
.ecodv2-v3 .ecodv2-fulfill-row .ecodv2-track-link .dashicons { font-size: 14px; width: 14px; height: 14px; }
.ecodv2-line-group { display: flex; align-items: center; gap: 7px; margin: 14px 0 2px; font-size: 11px; font-weight: 700; letter-spacing: .05em; text-transform: uppercase; color: var(--ecv2-g500); }
.ecodv2-line-group:first-child { margin-top: 2px; }
.ecodv2-line-group-dot { width: 8px; height: 8px; border-radius: 50%; background: var(--ecv2-g300); }
.ecodv2-line-group.is-ship .ecodv2-line-group-dot { background: var(--ecv2-amber, #f59e0b); }
.ecodv2-line-group.is-partner .ecodv2-line-group-dot { background: #7c3aed; }
.ecodv2-line-group.is-shipped .ecodv2-line-group-dot { background: #0d9488; }
.ecodv2-line-group.is-delivered .ecodv2-line-group-dot { background: var(--ecv2-primary); }
.ecodv2-line-group-count { padding: 0 7px; border-radius: 999px; background: var(--ecv2-g100); color: var(--ecv2-g600); font-size: 10.5px; letter-spacing: 0; line-height: 18px; }
.ecodv2-v3 .ecodv2-line-items .ec_admin_order_details_line_item { grid-template-columns: 44px minmax(0, 1fr) 120px 96px 66px; gap: 12px; align-items: center; }
.ecodv2-v3 .ecodv2-line-items .ec_admin_order_details_line_item > .ec_admin_order_details_item_details { align-self: start; }
.ecodv2-v3 .ecodv2-line-items .ec_admin_order_details_item_price_edit,
.ecodv2-v3 .ecodv2-line-items .ec_admin_order_details_item_total_edit { grid-column: 2 / -1; }
.ecodv2-line-thumb { position: relative; align-self: start; width: 44px; height: 44px; border: 1px solid var(--ecv2-g200); border-radius: 8px; background: var(--ecv2-g50); display: flex; align-items: center; justify-content: center; }
.ecodv2-line-thumb img { width: 100%; height: 100%; object-fit: cover; border-radius: 7px; }
.ecodv2-line-thumb .dashicons { font-size: 20px; width: 20px; height: 20px; color: var(--ecv2-g300); }
.ecodv2-line-qty-badge { position: absolute; top: -7px; right: -7px; min-width: 18px; height: 18px; padding: 0 5px; border-radius: 999px; background: var(--ecv2-g700); color: #fff; font-size: 10.5px; font-weight: 700; line-height: 18px; text-align: center; box-sizing: border-box; box-shadow: 0 0 0 2px #fff; }
.ecodv2-line.is-refunded .ecodv2-line-thumb, .ecodv2-line.is-refunded .ec_admin_order_details_item_price, .ecodv2-line.is-refunded .ec_admin_order_details_item_total { opacity: .55; }
.ecodv2-line.is-refunded .ec_admin_order_details_item_total { text-decoration: line-through; }
.ecodv2-chip-ship { background: #fef3c7; color: #92400e; }
.ecodv2-chip-muted { background: var(--ecv2-g100); color: var(--ecv2-g600); font-weight: 500; }
.ecodv2-line-items .ec_admin_order_details_item_actions > .ecodv2-line-act { float: none; width: 30px; height: 30px; margin: 0; padding: 0; border: 0; border-radius: 7px; background: transparent; display: inline-flex; align-items: center; justify-content: center; color: var(--ecv2-g400); cursor: pointer; line-height: 1; box-shadow: none; transition: background .15s ease, color .15s ease; }
.ecodv2-line-items .ec_admin_order_details_item_actions > .ecodv2-line-act:before { background: transparent !important; border-radius: 0 !important; margin: 0 !important; padding: 0 !important; color: inherit !important; font-size: 16px; }
.ecodv2-line-items .ec_admin_order_details_item_actions > .ecodv2-line-act.dashicons-edit:hover,
.ecodv2-line-items .ec_admin_order_details_item_actions > .ecodv2-line-act.dashicons-yes:hover,
.ecodv2-line-items .ec_admin_order_details_item_actions > .ecodv2-line-act:focus-visible { background: var(--ecv2-g100); color: var(--ecv2-g800); outline: none; }
.ecodv2-line-items .ec_admin_order_details_item_actions > .ecodv2-line-act.dashicons-yes { color: var(--ecv2-primary); }
.ecodv2-line-items .ec_admin_order_details_item_actions > .ecodv2-line-act.dashicons-trash:hover { background: #fee2e2; color: #991b1b; }
.ecodv2-download-off { display: flex; flex-wrap: wrap; align-items: center; gap: 6px; margin: 4px 0; }
.ecodv2-download-key { margin-top: 4px; }
.ecodv2-shipping-section { border-top: 1px solid var(--ecv2-g100); }
.ecodv2-shipping-section.is-quiet .ecodv2-shipment { padding-top: 10px; padding-bottom: 10px; font-size: 12.5px; }
.ecodv2-v3 .ecdv2-card-hint { white-space: nowrap; }
@media ( max-width: 700px ) {
	.ecodv2-v3 .ecodv2-o-items .ecdv2-card-header { flex-wrap: wrap; row-gap: 6px; }
	.ecodv2-v3 .ecodv2-o-items .ecdv2-card-hint { display: none; }
	.ecodv2-v3 .ecodv2-line-items .ec_admin_order_details_line_item { grid-template-columns: 40px minmax(0, 1fr) auto; }
	.ecodv2-v3 .ecodv2-line-items .ec_admin_order_details_item_price { display: none; }
	.ecodv2-v3 .ecodv2-line-items .ec_admin_order_details_item_actions { grid-column: 2 / -1; justify-content: flex-start; }
	.ecodv2-line-thumb { width: 40px; height: 40px; }
}

/* ---- Payment ---- */
.ecodv2-pay-chip { display: inline-flex; align-items: center; padding: 2px 9px; border-radius: 999px; font-size: 11.5px; font-weight: 600; line-height: 1.5; background: var(--ecv2-g100); color: var(--ecv2-g600); }
.ecodv2-pay-chip.is-good { background: var(--ecv2-primary-soft, #dcfce7); color: var(--ecv2-primary-deep, #166534); }
.ecodv2-pay-chip.is-warn { background: #fff7ed; color: #9a3412; }
.ecodv2-pay-chip.is-info { background: #eff6ff; color: #1d4ed8; }
.ecodv2-pay-chip.is-bad { background: #fef2f2; color: #b91c1c; }
.ecodv2-v3 .ecodv2-card-totals .ecdv2-card-header-actions .ecv2-btn .dashicons { font-size: 14px; width: 14px; height: 14px; }
.ecodv2-recalc-offer { margin: 0 0 12px; }
.ecodv2-method .ecodv2-payment-panel { margin: 0; }
.ecodv2-v3 .ecodv2-refund-chip { margin-left: 0; }
.ecodv2-method { padding: 0 0 12px; margin: 0 0 12px; border-bottom: 1px dashed var(--ecv2-g200); font-size: 12.5px; color: var(--ecv2-g700); }
.ecodv2-method-line { display: flex; align-items: center; gap: 8px; }
.ecodv2-method-line[hidden], .ecodv2-method-card[hidden] { display: none; }
.ecodv2-method-text { display: inline-flex; align-items: center; flex-wrap: wrap; gap: 4px 6px; min-width: 0; }
.ecodv2-method-sep { color: var(--ecv2-g300); }
.ecodv2-muted { color: var(--ecv2-g400); }
.ecodv2-amt-raw { display: none !important; }
.ecodv2-amt { font-variant-numeric: tabular-nums; white-space: nowrap; }
.ecodv2-v3 .ecodv2-totals-box #ec_admin_order_details_totals_content { max-width: 440px; }
.ecodv2-trow-note { margin-left: 4px; font-size: 11.5px; color: var(--ecv2-g400); font-weight: 400; }
.ecodv2-trow-toggle { display: inline-flex; align-items: center; gap: 2px; padding: 0; border: 0; background: transparent; font: inherit; color: inherit; cursor: pointer; }
.ecodv2-trow-toggle:hover .ecodv2-trow-note, .ecodv2-trow-toggle:focus-visible .ecodv2-trow-note { color: var(--ec-brand, var(--ecv2-primary)); }
.ecodv2-trow-toggle:focus-visible { outline: 2px solid var(--ec-brand, var(--ecv2-primary)); outline-offset: 2px; border-radius: 4px; }
.ecodv2-trow-toggle .dashicons { font-size: 12px; width: 12px; height: 12px; color: var(--ecv2-g400); transition: transform .15s ease; }
.ecodv2-trow-toggle[aria-expanded="true"] .dashicons { transform: rotate(180deg); }
.ecodv2-v3 .ecodv2-discount-detail { margin: 0 0 4px; border-top: 0; }
.ecodv2-v3 .ecodv2-discount-detail .ecodv2-offers-detail { padding: 4px 0 8px; border-radius: 8px; background: var(--ecv2-g50); }
.ecodv2-v3 .ecodv2-discount-detail .ecodv2-offers-row { padding-left: 12px; padding-right: 12px; }
.ecodv2-v3 .ecodv2-discount-detail .ecodv2-offers-note { padding-left: 12px; }
.ecodv2-v3 .ecodv2-discount-detail .ecodv2-edit-link { margin: 4px 0 0 6px; }

/* ---- Sidebar: customer, ship to / bill to, details ---- */
.ecodv2-contact-row:has( #ec_admin_order_details_user_phone:empty ) { display: none; }
.ecodv2-address > div:empty { display: none; }
.ecodv2-address-name { font-weight: 600; color: var(--ecv2-g900); }
.ecodv2-billto { margin-top: 14px; padding-top: 12px; border-top: 1px solid var(--ecv2-g100); }
.ecodv2-billto-head { display: flex; align-items: center; gap: 6px; flex-wrap: wrap; }
.ecodv2-billto-head .ecodv2-eyebrow { margin: 0 !important; }
.ecodv2-billto-head .ecodv2-billto-copy { margin-left: auto; }
.ecodv2-billto-head .ecodv2-billto-copy + .ecodv2-edit-link { margin-left: 0; }
.ecodv2-billto-same { font-size: 12.5px; color: var(--ecv2-g600); }
.ecodv2-billto:not(.is-same) .ecodv2-billto-same { display: none; }
.ecodv2-billto.is-same .ecodv2-billto-head .ecodv2-edit-link { margin-left: auto; }
/* !important: the drawer's view restore ( jQuery .show() ) writes an inline display on the block. */
.ecodv2-billto.is-same .ecodv2-billto-copy,
.ecodv2-billto.is-same #ec_admin_order_details_billing_content { display: none !important; }
.ecodv2-billto > .ecodv2-block { margin-top: 6px; }
.ecodv2-kv { display: flex; justify-content: space-between; align-items: baseline; gap: 12px; padding: 5px 0; font-size: 12.5px; }
.ecodv2-kv > span:first-child { color: var(--ecv2-g500); flex: 0 0 auto; }
.ecodv2-kv > span:last-child { color: var(--ecv2-g800); text-align: right; min-width: 0; overflow-wrap: anywhere; }
.ecodv2-details-rows .ecodv2-kv + .ecodv2-kv { border-top: 1px solid var(--ecv2-g100); }
.ecodv2-pickup { display: flex; flex-direction: column; gap: 8px; margin-top: 14px; padding-top: 12px; border-top: 1px solid var(--ecv2-g100); }
.ecodv2-pickup input, .ecodv2-pickup select { width: 100%; max-width: none; border: 1px solid var(--ecv2-g300); border-radius: 9px; padding: 7px 10px; font-size: 12.5px; box-sizing: border-box; }
.ecodv2-field-note { margin: 10px 0 0; font-size: 11.5px; line-height: 1.45; color: var(--ecv2-g500); }
.ecodv2-drawer .ecodv2-codes-form .ecodv2-payment-meta-fields { padding-top: 0; }

/* ---- Fulfill window ---- */
.ecodv2-label-opts { display: flex; flex-direction: column; gap: 2px; margin-top: 14px; }
.ecodv2-label-opts[hidden] { display: none; }
.ecodv2-label-opts .ecodv2-label-email-opt { margin-top: 4px; font-size: 12.5px; color: var(--ecv2-g700); }
.ecodv2-label-opts .ecodv2-muted { font-size: 11.5px; }
.ecodv2-label-after { border-top: 0; padding-top: 0; }

/* ---- Confirm ---- */
.ecodv2-confirm-backdrop { position: fixed; inset: 0; background: rgba(15, 23, 42, .5); z-index: 1000002; }
.ecodv2-confirm { position: fixed; top: 50%; left: 50%; transform: translate(-50%, -50%); width: 440px; max-width: calc(100vw - 32px); box-sizing: border-box; padding: 20px 22px 18px; border-radius: 14px; background: #fff; box-shadow: 0 24px 80px rgba(0,0,0,.35); z-index: 1000003; }
.ecodv2-confirm[hidden], .ecodv2-confirm-backdrop[hidden] { display: none; }
.ecodv2-confirm h3 { margin: 0 0 6px; font-size: 15px; color: var(--ecv2-g900); }
.ecodv2-confirm p { margin: 0; font-size: 13px; line-height: 1.55; color: var(--ecv2-g600); }
.ecodv2-confirm p[hidden] { display: none; }
.ecodv2-confirm-actions { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; margin-top: 18px; }
.ecodv2-confirm-alt[hidden] { display: none; }

/* ---- Saving: a thin bar at the top of the window ( the old full-page overlays ) ---- */
#ec_admin_order_management.ecodv2-busy-bar,
#ec_admin_shipping_details.ecodv2-busy-bar { position: fixed !important; top: 32px; left: 0; right: 0; width: auto !important; height: 3px !important; margin: 0 !important; padding: 0 !important; border: 0 !important; background: linear-gradient( 90deg, transparent 0, var(--ec-brand, var(--ecv2-primary)) 40%, transparent 80% ) !important; background-size: 200% 100% !important; animation: ecodv2-busy 1s linear infinite; z-index: 1000000; pointer-events: none; }
@keyframes ecodv2-busy { from { background-position: 100% 0; } to { background-position: -100% 0; } }
@media screen and ( max-width: 782px ) {
	#ec_admin_order_management.ecodv2-busy-bar,
	#ec_admin_shipping_details.ecodv2-busy-bar { top: 46px; }
}

/* ---- Toast: an action button ( Undo ) ---- */
.ecodv2-save-toast-act { margin-left: 6px; padding: 3px 10px; border: 1px solid rgba(255,255,255,.55); border-radius: 6px; background: transparent; color: #fff; font: inherit; font-size: 12px; font-weight: 600; cursor: pointer; }
.ecodv2-save-toast-act:hover, .ecodv2-save-toast-act:focus-visible { background: rgba(255,255,255,.18); outline: none; }
.ecodv2-save-toast-act[hidden] { display: none; }

/* ---- One column: the same order of work, with the customer and the addresses before the payment ---- */
@media ( max-width: 1080px ) {
	.ecodv2-v3 .ecodv2-body { display: flex; flex-direction: column; gap: 16px; }
	.ecodv2-v3 .ecodv2-main,
	.ecodv2-v3 .ecodv2-side,
	.ecodv2-v3 .ecodv2-side-inner { display: contents; }
	.ecodv2-v3 .ecodv2-main > *,
	.ecodv2-v3 .ecodv2-side-inner > * { order: 8; }
	.ecodv2-v3 .ecodv2-o-attention { order: 1; }
	.ecodv2-v3 .ecodv2-card-gift { order: 2; }
	.ecodv2-v3 .ecodv2-o-items { order: 3; }
	.ecodv2-v3 .ecodv2-o-customer { order: 4; }
	.ecodv2-v3 .ecodv2-o-shipto { order: 5; }
	.ecodv2-v3 .ecodv2-o-payment { order: 6; }
	.ecodv2-v3 .ecodv2-o-activity { order: 9; }
}

/* ==================================================================
   6.0.2 — layout B, the fast path ( https://claude.ai/artifact/84saKxSSu3YqMhKLDSMnj5 )
   Steps across the top, the next step with the means to do it ( Ship order ), the shipping queue, Packed ticks, the
   payment at a glance, Notes and Documents in the sidebar, Find ( Ctrl K ) and the keys. Scoped to .ecodv2-b.
   ================================================================== */

/* ---- Header: Orders / Order #, Find, Print, Email ---- */
.ecodv2-b .ecodv2-crumb { width: auto; padding: 0 8px 0 4px; gap: 2px; font-size: 13px; font-weight: 500; color: var(--ecv2-g600); text-decoration: none; }
.ecodv2-b .ecodv2-crumb .dashicons { font-size: 16px; width: 16px; height: 16px; }
.ecodv2-crumb-sep { color: var(--ecv2-g300); margin: 0 -4px 0 -8px; }
/* The steps say whether it is paid and shipped; the header keeps the chips ( tags, gift, insights ). */
.ecodv2-b .ecodv2-title-row #wpeasycart-payment-status,
.ecodv2-b .ecodv2-title-row #ecodv2_fulfill_badge { display: none !important; }
.ecodv2-find { display: inline-flex; align-items: center; gap: 8px; height: 36px; width: 290px; max-width: 100%; margin: 0; padding: 0 7px 0 11px; border: 1px solid var(--ecv2-g300); border-radius: 9px; background: #fff; color: var(--ecv2-g500); font: inherit; font-size: 12.5px; text-align: left; cursor: pointer; box-sizing: border-box; }
.ecodv2-find:hover { border-color: var(--ecv2-g400); color: var(--ecv2-g700); }
.ecodv2-find:focus-visible { outline: none; border-color: var(--ec-brand, var(--ecv2-primary)); box-shadow: 0 0 0 3px var(--ec-brand-soft, rgba(22,163,74,.14)); }
.ecodv2-find .dashicons { font-size: 16px; width: 16px; height: 16px; }
.ecodv2-find-text { flex: 1 1 auto; min-width: 0; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.ecodv2-kbd { display: inline-flex; align-items: center; justify-content: center; min-width: 18px; height: 18px; padding: 0 5px; border: 1px solid var(--ecv2-g200, #e5e7eb); border-bottom-width: 2px; border-radius: 5px; background: var(--ecv2-g50, #f9fafb); color: var(--ecv2-g500, #6b7280); font: 600 10.5px/1 ui-monospace, SFMono-Regular, Menlo, Consolas, monospace; box-sizing: border-box; white-space: nowrap; }
.ecv2-btn .ecodv2-kbd { margin-left: 2px; }
.ecv2-btn-primary .ecodv2-kbd, .ecodv2-kbd-on { border-color: rgba(255,255,255,.45); background: transparent; color: inherit; }
/* Keys on a touch screen help nobody. */
@media ( hover: none ), ( pointer: coarse ) {
	.ecodv2-b .ecodv2-kbd { display: none; }
}
@media ( max-width: 1280px ) {
	.ecodv2-find { width: 36px; padding: 0; justify-content: center; }
	.ecodv2-find .ecodv2-find-text, .ecodv2-find .ecodv2-kbd { display: none; }
}

/* ---- Where the order stands, and what is next ---- */
.ecodv2-top { display: flex; flex-direction: column; gap: 14px; margin-bottom: 16px; }
.ecodv2-top > .ecdv2-card { margin: 0; }
.ecodv2-top .ecodv2-attention[hidden] { display: none; }
/* The shipping line of the older layout is kept for its ids only; the next step panel says it now. */
.ecodv2-b .ecodv2-fulfill-banner[hidden] { display: none !important; }
/* How it was paid is under Charged; WP EasyCart PRO's panel ( transaction link, card ) still shows. */
.ecodv2-b .ecodv2-method:not(.has-panel) { display: none; }
/* Refund, Edit totals and Send receipt wrap on a narrow card; no card is wider than the page. */
.ecodv2-b .ecodv2-card-totals .ecdv2-card-header, .ecodv2-b .ecodv2-card-totals .ecdv2-card-header-actions { flex-wrap: wrap; row-gap: 6px; }
.ecodv2-b .ecodv2-top > *, .ecodv2-b .ecodv2-main > *, .ecodv2-b .ecodv2-side-inner > * { min-width: 0; max-width: 100%; }
.ecodv2-steps-card { display: flex; align-items: center; gap: 20px; padding: 16px 20px; }
.ecodv2-steps-host { flex: 1 1 auto; min-width: 0; }
.ecodv2-steps { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat( var(--ecodv2-steps, 5), minmax( 0, 1fr ) ); }
.ecodv2-step { position: relative; display: flex; flex-direction: column; gap: 8px; min-width: 0; margin: 0; padding-right: 10px; }
.ecodv2-step::after { content: ""; position: absolute; top: 13px; left: 36px; right: 8px; height: 3px; border-radius: 2px; background: var(--ecv2-g200); }
.ecodv2-step:last-child::after { display: none; }
.ecodv2-step.is-done::after { background: var(--ec-brand, var(--ecv2-primary)); }
.ecodv2-step-mark { display: inline-flex; align-items: center; justify-content: center; width: 28px; height: 28px; flex: 0 0 auto; border: 2px solid var(--ecv2-g300); border-radius: 50%; background: #fff; color: #fff; box-sizing: border-box; }
.ecodv2-step.is-done .ecodv2-step-mark { border-color: var(--ec-brand, var(--ecv2-primary)); background: var(--ec-brand, var(--ecv2-primary)); }
.ecodv2-step.is-current .ecodv2-step-mark { border: 3px solid var(--ec-brand, var(--ecv2-primary)); }
.ecodv2-step.is-warn .ecodv2-step-mark { border: 3px solid var(--ecv2-amber, #f59e0b); }
.ecodv2-step.is-bad .ecodv2-step-mark { border-color: var(--ecv2-danger, #dc2626); background: var(--ecv2-danger, #dc2626); }
.ecodv2-step-dot { width: 10px; height: 10px; border-radius: 50%; background: var(--ec-brand, var(--ecv2-primary)); }
.ecodv2-step.is-warn .ecodv2-step-dot { background: var(--ecv2-amber, #f59e0b); }
.ecodv2-step-text { display: flex; flex-direction: column; gap: 1px; min-width: 0; }
.ecodv2-step-label { font-size: 13px; font-weight: 600; line-height: 1.35; color: var(--ecv2-g800); }
.ecodv2-step.is-todo .ecodv2-step-label { color: var(--ecv2-g500); }
.ecodv2-step.is-current .ecodv2-step-label { font-weight: 700; color: var(--ec-brand, var(--ecv2-primary)); }
.ecodv2-step.is-warn .ecodv2-step-label { font-weight: 700; color: #92400e; }
.ecodv2-step.is-bad .ecodv2-step-label { color: #b91c1c; }
.ecodv2-step-now { display: inline-block; margin-left: 4px; padding: 0 7px; border-radius: 999px; background: #fef3c7; color: #92400e; font-size: 10px; font-weight: 700; letter-spacing: .03em; line-height: 17px; text-transform: uppercase; vertical-align: 1px; }
.ecodv2-step-sub { font-size: 11.5px; color: var(--ecv2-g500); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
/* 6.0.2 bug round 6: an optional step ( Delivered when no carrier tracking marks it ). Saving buttons show a spinner and
   "Saving…" until the page is drawn again. */
.ecodv2-step.is-optional .ecodv2-step-mark { border-style: dashed; }
/* 6.0.2 bug round 7: a step's one action ( Mark delivered ) is its circle. It looks like the other circles until the pointer
   or the focus is on it: then it fills with the brand colour and shows the check it will become, and a tip says what a click
   does. The step's line adds "click to mark" for touch screens, which have no hover. Busy: the ring turns. */
.ecodv2-step-mark-btn { position: relative; margin: 0; padding: 0; font: inherit; line-height: 1; cursor: pointer; -webkit-appearance: none; appearance: none; transition: background-color .15s ease, border-color .15s ease, box-shadow .15s ease, transform .15s ease; }
.ecodv2-step-mark-btn::before { content: ""; position: absolute; inset: -8px; border-radius: 50%; }
.ecodv2-step-mark-btn .ecodv2-step-check { display: none; }
.ecodv2-step.has-action .ecodv2-step-mark-btn:hover, .ecodv2-step.has-action .ecodv2-step-mark-btn:focus-visible { outline: none; border-style: solid; border-color: var(--ec-brand, var(--ecv2-primary)); background: var(--ec-brand, var(--ecv2-primary)); color: #fff; transform: scale( 1.08 ); }
.ecodv2-step.has-action .ecodv2-step-mark-btn:focus-visible { box-shadow: 0 0 0 3px #fff, 0 0 0 5px var(--ec-brand, var(--ecv2-primary)); }
.ecodv2-step.has-action .ecodv2-step-mark-btn:hover .ecodv2-step-check, .ecodv2-step.has-action .ecodv2-step-mark-btn:focus-visible .ecodv2-step-check { display: block; }
.ecodv2-step.has-action .ecodv2-step-mark-btn:hover .ecodv2-step-dot, .ecodv2-step.has-action .ecodv2-step-mark-btn:focus-visible .ecodv2-step-dot { display: none; }
.ecodv2-step.has-action .ecodv2-step-mark-btn:active { transform: scale( .96 ); }
.ecodv2-step.has-action .ecodv2-step-mark-btn.is-busy, .ecodv2-step.has-action .ecodv2-step-mark-btn.is-busy:hover { border-style: solid; border-color: var(--ec-brand, var(--ecv2-primary)); border-right-color: transparent; background: #fff; transform: none; cursor: progress; animation: ecodv2-spin .8s linear infinite; }
.ecodv2-step.has-action .ecodv2-step-mark-btn.is-busy .ecodv2-step-check, .ecodv2-step.has-action .ecodv2-step-mark-btn.is-busy .ecodv2-step-dot { display: none; }
.ecodv2-step-tip { position: absolute; top: 14px; left: 42px; z-index: 30; display: flex; flex-direction: column; gap: 1px; width: max-content; max-width: 220px; padding: 7px 11px; border-radius: 8px; background: var(--ecv2-g900, #111827); color: #fff; font-size: 12px; font-weight: 400; line-height: 1.35; white-space: normal; box-shadow: 0 8px 24px rgba( 15, 23, 42, .22 ); opacity: 0; visibility: hidden; transform: translate( -4px, -50% ); transition: opacity .12s ease, transform .12s ease, visibility 0s linear .12s; pointer-events: none; }
.ecodv2-step-tip::before { content: ""; position: absolute; top: 50%; left: -5px; width: 10px; height: 10px; margin-top: -5px; border-radius: 2px; background: inherit; transform: rotate( 45deg ); }
.ecodv2-step-tip b { font-size: 12.5px; font-weight: 600; }
.ecodv2-step-tip span { color: rgba( 255, 255, 255, .78 ); }
.ecodv2-step.has-action .ecodv2-step-mark-btn:hover + .ecodv2-step-tip, .ecodv2-step.has-action .ecodv2-step-mark-btn:focus-visible + .ecodv2-step-tip { opacity: 1; visibility: visible; transform: translate( 0, -50% ); transition-delay: 0s; }
.ecodv2-step.has-action .ecodv2-step-mark-btn.is-busy + .ecodv2-step-tip { display: none; }
.ecodv2-step.has-action .ecodv2-step-cue { color: var(--ec-brand, var(--ecv2-primary)); }
@media ( prefers-reduced-motion: reduce ) {
	.ecodv2-step-mark-btn, .ecodv2-step-tip { transition: none; }
	.ecodv2-step.has-action .ecodv2-step-mark-btn:hover, .ecodv2-step.has-action .ecodv2-step-mark-btn:focus-visible, .ecodv2-step.has-action .ecodv2-step-mark-btn:active { transform: none; }
}
.ecv2-btn > .ecodv2-save-spin { margin-right: 2px; }
.ecv2-btn.is-saving { cursor: progress !important; }
.ecodv2-label-foot .ecv2-btn[hidden] { display: none; }
.ecodv2-steps-caption { display: none; }
.ecodv2-steps-status { display: flex; align-items: center; align-self: stretch; flex: 0 0 auto; padding-left: 20px; border-left: 1px solid var(--ecv2-g100); }
.ecodv2-b .ecodv2-steps-status .ecodv2-status-wrap { position: relative; }
.ecodv2-b .ecodv2-steps-status .ecodv2-status-eyebrow { display: inline; }

/* The next step panel and the shipping queue beside it. */
.ecodv2-next { display: grid; grid-template-columns: minmax( 0, 1fr ); overflow: hidden; background: #fff; border: 1px solid var(--ecv2-g200); border-radius: 14px; }
.ecodv2-next.has-queue { grid-template-columns: minmax( 0, 1fr ) 260px; }
.ecodv2-next.is-ship, .ecodv2-next.is-step { border: 2px solid var(--ec-brand, var(--ecv2-primary)); }
.ecodv2-next-main { display: flex; flex-direction: column; gap: 10px; min-width: 0; padding: 18px 22px; }
.ecodv2-next-eyebrow { font-size: 11px; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; color: var(--ecv2-g500); }
.ecodv2-next.is-ship .ecodv2-next-main > .ecodv2-next-eyebrow, .ecodv2-next.is-step .ecodv2-next-main > .ecodv2-next-eyebrow { color: var(--ec-brand, var(--ecv2-primary)); }
.ecodv2-next-title { margin: -6px 0 0; font-size: 19px; font-weight: 700; letter-spacing: -.3px; line-height: 1.3; color: var(--ecv2-g900); }
.ecodv2-next.is-done .ecodv2-next-title, .ecodv2-next.is-waiting .ecodv2-next-title, .ecodv2-next.is-closed .ecodv2-next-title { font-size: 16px; }
.ecodv2-next-text { margin: -4px 0 0; font-size: 13px; line-height: 1.5; color: var(--ecv2-g600); overflow-wrap: anywhere; }
/* 6.0.2 bug round 14: short lines under it ( an order shipped before it was paid; when a manual payment's stock leaves ). */
.ecodv2-next-aside { display: flex; align-items: flex-start; gap: 6px; margin: -4px 0 0; font-size: 12.5px; line-height: 1.5; color: var(--ecv2-g600); }
.ecodv2-next-aside .dashicons { flex: 0 0 auto; font-size: 15px; width: 15px; height: 15px; margin-top: 2px; color: var(--ecv2-g500); }
.ecodv2-next-aside.is-warn { color: #92400e; }
.ecodv2-next-aside.is-warn .dashicons { color: var(--ecv2-amber, #f59e0b); }
.ecodv2-ship { display: flex; flex-wrap: wrap; align-items: flex-end; gap: 10px; }
.ecodv2-ship-field { display: flex; flex-direction: column; gap: 4px; }
.ecodv2-ship-field label { font-size: 11.5px; font-weight: 600; color: var(--ecv2-g600); }
.ecodv2-ship-carrier { width: 170px; }
/* 6.0.3: the carrier name typed with Other… is a name, not a tracking number. */
.ecodv2-b .ecodv2-ship input.wpec-carrier-other-input { font-family: inherit; padding-right: 32px; }
/* Round 9: a tracking number needs about 34 characters, so the field stops at 440px and the send controls sit at the right, over the note. */
.ecodv2-ship-tracking { flex: 1 1 240px; min-width: 0; max-width: 440px; margin-right: auto; }
.ecodv2-b .ecodv2-ship select, .ecodv2-b .ecodv2-ship input[type="text"] { width: 100%; max-width: none; height: 40px; margin: 0; padding: 0 12px; border: 1px solid var(--ecv2-g300); border-radius: 9px; background: #fff; font-size: 13px; line-height: 1; box-sizing: border-box; box-shadow: none; }
.ecodv2-b .ecodv2-ship input[type="text"] { font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace; }
.ecodv2-b .ecodv2-ship select:focus, .ecodv2-b .ecodv2-ship input[type="text"]:focus { outline: none; border-color: var(--ec-brand, var(--ecv2-primary)); box-shadow: 0 0 0 3px var(--ec-brand-soft, rgba(22,163,74,.14)); }
.ecodv2-ship-input { position: relative; display: flex; }
.ecodv2-b .ecodv2-ship-input:has( .ecodv2-ship-scan:not([hidden]) ) input[type="text"] { padding-right: 44px; }
.ecodv2-ship-scan { position: absolute; top: 4px; right: 4px; display: inline-flex; align-items: center; justify-content: center; width: 32px; height: 32px; padding: 0; border: 0; border-radius: 7px; background: transparent; color: var(--ecv2-g600); cursor: pointer; }
.ecodv2-ship-scan[hidden] { display: none; }
.ecodv2-ship-scan:hover, .ecodv2-ship-scan:focus-visible { outline: none; background: var(--ecv2-g100); color: var(--ecv2-g900); }
.ecodv2-ship-email { display: inline-flex; flex: 0 0 auto; align-items: center; gap: 7px; height: 40px; font-size: 13px; color: var(--ecv2-g700); white-space: nowrap; cursor: pointer; }
.ecodv2-ship-email input { margin: 0; accent-color: var(--ec-brand, var(--ecv2-primary)); }
.ecodv2-b .ecodv2-ship-go { display: inline-flex; align-items: center; gap: 8px; height: 40px; padding: 0 16px; font-weight: 600; }
.ecodv2-b .ecodv2-ship-go .dashicons { font-size: 16px; width: 16px; height: 16px; }
/* 6.0.3: a label service's Buy label, the key button when one can buy this order's label ( Ship order is then the second ). */
.ecodv2-b .ecodv2-ship-label { display: inline-flex; align-items: center; gap: 9px; height: 40px; padding: 0 16px 0 6px; font-weight: 600; white-space: nowrap; }
.ecodv2-b .ecodv2-ship-label:not( :has( .ecodv2-ship-label-logo ) ) { padding-left: 16px; }
.ecodv2-ship-label-logo { display: inline-flex; flex: 0 0 28px; align-items: center; justify-content: center; width: 28px; height: 28px; border-radius: 7px; color: #fff; font-size: 11px; font-weight: 700; letter-spacing: .02em; box-shadow: inset 0 0 0 1px rgba( 255, 255, 255, .25 ); }
.ecodv2-ship-label-text { display: flex; flex-direction: column; align-items: flex-start; line-height: 1.15; text-align: left; }
.ecodv2-ship-label-text small { max-width: 220px; overflow: hidden; font-size: 11px; font-weight: 500; text-overflow: ellipsis; opacity: .85; }
.ecodv2-ship-many { display: flex; flex-wrap: wrap; align-items: center; gap: 12px; font-size: 13px; color: var(--ecv2-g700); }
.ecodv2-ship-status { margin: 0; font-size: 12.5px; }
.ecodv2-ship-status:empty { display: none; }
.ecodv2-ship-status.is-error { color: #b91c1c; }
.ecodv2-ship-status.is-saved { color: var(--ecv2-primary-deep, #166534); }
.ecodv2-next-links { display: flex; flex-wrap: wrap; align-items: center; gap: 6px 16px; font-size: 12.5px; }
.ecodv2-next-link { padding: 0; border: 0; background: transparent; font: inherit; color: var(--ecv2-blue, #2563eb); text-decoration: none; cursor: pointer; }
.ecodv2-next-link:hover, .ecodv2-next-link:focus-visible { outline: none; text-decoration: underline; }
.ecodv2-next-note { margin-left: auto; color: var(--ecv2-g500); }
.ecodv2-next-links .ecv2-btn { display: inline-flex; align-items: center; gap: 5px; }
.ecodv2-next-links .ecv2-btn .dashicons { font-size: 14px; width: 14px; height: 14px; }
.ecodv2-next-actions { display: flex; flex-wrap: wrap; gap: 8px; }
/* WP EasyCart PRO prints Mark Picked Up in the banner hook too; the step's own button is enough. */
.ecodv2-next[data-step-key="pickup"] .ecodv2-next-links .ecodv2-pickup-btn { display: none; }
/* WP EasyCart PRO 6.0.1's Mark Picked Up ( class ecodv2-fulfill-btn ) beside the step's own, and its Net ( grand total less
   refunds ) under the payment figures, which show Net received ( paid less refunds ). */
.ecodv2-next[data-step-key="pickup"] .ecodv2-next-links .ecodv2-fulfill-btn[onclick*="open_pickup"],
.ecodv2-v3 .ecodv2-figures ~ .ecodv2-method .ecodv2-net { display: none !important; }
.ecodv2-next-actions .ecv2-btn { display: inline-flex; align-items: center; gap: 6px; }
.ecodv2-next-actions .ecv2-btn .dashicons { font-size: 15px; width: 15px; height: 15px; }
.ecodv2-next .ecodv2-shipped-note { display: flex; align-items: center; gap: 6px; font-size: 12.5px; color: var(--ecv2-primary-deep, #166534); }
/* 6.0.2 bug round 7: once shipped, each tracking number is a card ( the carrier's tile, the number with its copy button,
   Track ) and Mark delivered sits beside them as one optional action ( its dashed ring is the Delivered step's circle ). The
   cards stay together on the left and wrap onto new lines, never across the panel. */
.ecodv2-done { display: flex; flex-wrap: wrap; align-items: stretch; gap: 10px; }
.ecodv2-track { display: grid; grid-template-columns: 40px minmax( 0, auto ) auto; align-items: center; column-gap: 12px; flex: 0 1 auto; min-width: 0; max-width: 100%; padding: 10px 12px 10px 10px; border: 1px solid var(--ecv2-g200); border-radius: 12px; background: #fff; box-sizing: border-box; }
.ecodv2-carrier-tile { display: inline-flex; align-items: center; justify-content: center; flex: 0 0 auto; width: 40px; height: 40px; overflow: hidden; border-radius: 10px; background: var(--ecodv2-tile-bg, var(--ecv2-g100)); color: var(--ecodv2-tile-fg, var(--ecv2-g700)); box-shadow: inset 0 0 0 1px rgba( 0, 0, 0, .06 ); font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif; font-size: 11.5px; font-weight: 800; line-height: 1; letter-spacing: .01em; user-select: none; box-sizing: border-box; }
.ecodv2-carrier-mark { display: block; max-width: 100%; padding: 0 3px; white-space: nowrap; overflow: hidden; }
.ecodv2-carrier-mark.is-wide { font-size: 10px; letter-spacing: 0; }
.ecodv2-carrier-mark.is-long { font-size: 9px; letter-spacing: -.01em; }
.ecodv2-track-main { display: flex; flex-direction: column; gap: 3px; min-width: 0; }
.ecodv2-track-name { font-size: 12px; font-weight: 600; line-height: 1.3; color: var(--ecv2-g600); overflow-wrap: anywhere; }
.ecodv2-track-state { font-weight: 500; color: var(--ecv2-g500); }
.ecodv2-track-num { display: flex; align-items: center; gap: 2px; min-width: 0; }
.ecodv2-track-code { display: block; min-width: 0; margin: 0; padding: 0; background: transparent; color: var(--ecv2-g900); font: 600 14px/1.3 ui-monospace, SFMono-Regular, Menlo, Consolas, "Liberation Mono", monospace; letter-spacing: .02em; word-break: break-all; user-select: all; }
.ecodv2-track-copy { position: relative; display: inline-flex; align-items: center; justify-content: center; flex: 0 0 auto; width: 28px; height: 28px; margin: -4px 0; padding: 0; border: 0; border-radius: 7px; background: transparent; color: var(--ecv2-g500); cursor: pointer; }
.ecodv2-track-copy:hover, .ecodv2-track-copy:focus-visible { outline: none; background: var(--ecv2-g100); color: var(--ecv2-g900); }
.ecodv2-track-copy:focus-visible { box-shadow: 0 0 0 2px var(--ec-brand, var(--ecv2-primary)); }
.ecodv2-track-copy .ecodv2-copied-ic { display: none; }
.ecodv2-track-copy.is-copied { color: var(--ecv2-primary-deep, #166534); }
.ecodv2-track-copy.is-copied .ecodv2-copy-ic { display: none; }
.ecodv2-track-copy.is-copied .ecodv2-copied-ic { display: block; }
.ecodv2-track-copy.is-copied::after { content: attr( data-copied ); position: absolute; bottom: calc( 100% + 6px ); left: 50%; padding: 3px 8px; border-radius: 6px; background: var(--ecv2-g900, #111827); color: #fff; font-size: 11.5px; font-weight: 600; line-height: 1.4; white-space: nowrap; transform: translateX( -50% ); pointer-events: none; }
.ecodv2-track-open { display: inline-flex; align-items: center; gap: 4px; flex: 0 0 auto; margin-left: 6px; padding: 6px 10px; border-radius: 8px; color: var(--ec-brand, var(--ecv2-primary)); font-size: 13px; font-weight: 600; line-height: 1.2; text-decoration: none; white-space: nowrap; }
.ecodv2-track-open:hover, .ecodv2-track-open:focus-visible { outline: none; background: var(--ec-brand-soft, var(--ecv2-primary-light)); color: var(--ec-brand, var(--ecv2-primary)); text-decoration: none; }
.ecodv2-track-open:focus-visible { box-shadow: 0 0 0 2px var(--ec-brand, var(--ecv2-primary)); }
/* Mark delivered ( optional ): the dashed ring fills and shows the check on hover and focus, as the Delivered step's does. */
.ecodv2-deliver-btn { display: inline-flex; align-items: center; gap: 12px; flex: 0 1 auto; min-width: 0; max-width: 100%; margin: 0; padding: 10px 16px 10px 12px; border: 1px dashed var(--ecv2-g300); border-radius: 12px; background: #fff; color: var(--ecv2-g900); font: inherit; text-align: left; cursor: pointer; box-sizing: border-box; transition: border-color .15s ease, background-color .15s ease; }
.ecodv2-deliver-ring { display: inline-flex; align-items: center; justify-content: center; flex: 0 0 auto; width: 28px; height: 28px; border: 2px dashed var(--ecv2-g300); border-radius: 50%; background: #fff; color: #fff; box-sizing: border-box; transition: background-color .15s ease, border-color .15s ease; }
.ecodv2-deliver-ring svg { display: none; }
.ecodv2-deliver-text { display: flex; flex-direction: column; gap: 1px; min-width: 0; }
.ecodv2-deliver-text b { font-size: 13px; font-weight: 600; line-height: 1.3; color: var(--ecv2-g900); }
.ecodv2-deliver-text small { font-size: 12px; line-height: 1.35; color: var(--ecv2-g500); }
.ecodv2-deliver-btn:hover, .ecodv2-deliver-btn:focus-visible { outline: none; border-style: solid; border-color: var(--ec-brand, var(--ecv2-primary)); background: var(--ec-brand-soft, var(--ecv2-primary-light)); }
.ecodv2-deliver-btn:focus-visible { box-shadow: 0 0 0 3px var(--ec-brand-soft, rgba( 22, 163, 74, .18 )); }
.ecodv2-deliver-btn:hover .ecodv2-deliver-ring, .ecodv2-deliver-btn:focus-visible .ecodv2-deliver-ring { border-style: solid; border-color: var(--ec-brand, var(--ecv2-primary)); background: var(--ec-brand, var(--ecv2-primary)); }
.ecodv2-deliver-btn:hover .ecodv2-deliver-ring svg, .ecodv2-deliver-btn:focus-visible .ecodv2-deliver-ring svg { display: block; }
.ecodv2-deliver-btn:hover .ecodv2-deliver-text b, .ecodv2-deliver-btn:focus-visible .ecodv2-deliver-text b { color: var(--ec-brand, var(--ecv2-primary)); }
.ecodv2-deliver-btn.is-busy { cursor: progress; }
.ecodv2-deliver-btn.is-busy .ecodv2-deliver-ring { border-style: solid; border-color: var(--ec-brand, var(--ecv2-primary)); border-right-color: transparent; background: #fff; animation: ecodv2-spin .8s linear infinite; }
.ecodv2-deliver-btn.is-busy .ecodv2-deliver-ring svg { display: none; }
@media ( prefers-reduced-motion: reduce ) {
	.ecodv2-deliver-btn, .ecodv2-deliver-ring { transition: none; }
}
/* The panel lists the tracking: WP EasyCart PRO's Track ( 6.0.2 ) and Track + Copy ( 6.0.1 ) in the banner hook repeat it. */
.ecodv2-next.has-tracking .ecodv2-next-links .ecodv2-track-link,
.ecodv2-next.has-tracking .ecodv2-next-links .ecodv2-fulfill-tracking { display: none !important; }
.ecodv2-next.has-tracking .ecodv2-next-links:not( :has( > :not( .ecodv2-track-link, .ecodv2-fulfill-tracking ) ) ) { display: none; }
.ecodv2-queue { display: flex; flex-direction: column; justify-content: center; gap: 8px; padding: 18px 20px; background: var(--ecv2-g50); border-left: 1px solid var(--ecv2-g200); }
.ecodv2-queue-count { display: flex; align-items: baseline; gap: 6px; }
.ecodv2-queue-count b { font-size: 28px; font-weight: 700; letter-spacing: -.5px; line-height: 1; color: var(--ecv2-g900); }
.ecodv2-queue-count span { font-size: 13px; color: var(--ecv2-g600); }
.ecodv2-queue-sub { font-size: 12px; color: var(--ecv2-g500); }
.ecodv2-b .ecodv2-queue-next { display: inline-flex; align-items: center; justify-content: center; gap: 8px; }
.ecodv2-queue-all { font-size: 12px; color: var(--ecv2-g500); text-decoration: none; }
.ecodv2-queue-all:hover, .ecodv2-queue-all:focus-visible { color: var(--ecv2-blue, #2563eb); text-decoration: underline; }

/* ---- Items to pack ---- */
.ecodv2-pack-progress { display: inline-flex; align-items: center; gap: 10px; font-size: 12px; color: var(--ecv2-g500); white-space: nowrap; }
.ecodv2-pack-bar { display: inline-block; width: 110px; height: 6px; overflow: hidden; border-radius: 999px; background: var(--ecv2-g200); }
.ecodv2-pack-bar > span { display: block; width: 0; height: 100%; border-radius: 999px; background: var(--ec-brand, var(--ecv2-primary)); transition: width .2s ease; }
.ecodv2-pack-progress.is-done { font-weight: 600; color: var(--ecv2-primary-deep, #166534); }
.ecodv2-b.is-packing .ecodv2-line-items .ec_admin_order_details_line_item { grid-template-columns: 24px 44px minmax( 0, 1fr ) 120px 96px 66px; }
.ecodv2-b.is-packing .ecodv2-line-items .ec_admin_order_details_line_item:not(.has-pack) > .ecodv2-line-thumb { grid-column: 2; }
.ecodv2-b.is-packing .ecodv2-line-items .ec_admin_order_details_item_price_edit,
.ecodv2-b.is-packing .ecodv2-line-items .ec_admin_order_details_item_total_edit { grid-column: 3 / -1; }
.ecodv2-pack-check { display: flex; align-items: center; justify-content: center; align-self: start; height: 44px; margin: 0; cursor: pointer; }
.ecodv2-pack-check input { width: 18px; height: 18px; margin: 0; accent-color: var(--ec-brand, var(--ecv2-primary)); cursor: pointer; }
.ecodv2-line.is-packed .ecodv2-line-title { color: var(--ecv2-g500); text-decoration: line-through; }
.ecodv2-line.is-packed .ecodv2-line-thumb { opacity: .6; }
.ecodv2-b:not(.is-packing) .ecodv2-pack-check,
.ecodv2-b:not(.is-packing) .ecodv2-pack-progress { display: none; }

/* ---- Payment at a glance ---- */
.ecodv2-figures { display: grid; grid-template-columns: repeat( 3, minmax( 0, 1fr ) ); gap: 12px; margin: 0 0 14px; padding: 0 0 14px; border-bottom: 1px solid var(--ecv2-g100); }
.ecodv2-figure { display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.ecodv2-figure-label { font-size: 12px; color: var(--ecv2-g500); }
.ecodv2-figure-amt { font-size: 22px; font-weight: 700; letter-spacing: -.4px; line-height: 1.25; color: var(--ecv2-g900); font-variant-numeric: tabular-nums; white-space: nowrap; }
.ecodv2-figure.is-refund .ecodv2-figure-amt { color: var(--ecv2-g500); }
.ecodv2-figure.is-due .ecodv2-figure-amt { color: #9a3412; }
.ecodv2-figure-sub { font-size: 12px; color: var(--ecv2-g600); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }

/* ---- Sidebar: Customer, Notes, Documents ---- */
.ecodv2-subscribed .ecodv2-contact-value { font-size: 12.5px; color: var(--ecv2-g600); }
/* WP EasyCart PRO's customer stats as three tiles. */
.ecodv2-b .ecodv2-customer-stats { display: grid; grid-template-columns: repeat( 3, minmax( 0, 1fr ) ); gap: 8px; }
.ecodv2-b .ecodv2-customer-stats > .ec_admin_row_heading_title,
.ecodv2-b .ecodv2-customer-stats > .ecodv2-stat-link { grid-column: 1 / -1; }
.ecodv2-b .ecodv2-customer-stats > .ecodv2-stat-row { display: flex; flex-direction: column-reverse; align-items: flex-start; gap: 0; margin: 0; padding: 8px 10px; border: 0; border-radius: 10px; background: var(--ecv2-g50); font-size: 11.5px; color: var(--ecv2-g500); }
.ecodv2-b .ecodv2-customer-stats > .ecodv2-stat-row > strong,
.ecodv2-b .ecodv2-customer-stats > .ecodv2-stat-row > a { font-size: 15px; font-weight: 700; color: var(--ecv2-g900); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; max-width: 100%; }
.ecodv2-b .ecodv2-customer-stats > .ecodv2-stat-row:nth-of-type( n + 5 ) { grid-column: 1 / -1; flex-direction: row; justify-content: space-between; padding: 2px 0; background: transparent; }
.ecodv2-b .ecodv2-customer-stats > .ecodv2-stat-row:nth-of-type( n + 5 ) > strong { font-size: 12.5px; font-weight: 600; }
.ecodv2-notes { display: flex; flex-direction: column; gap: 10px; }
.ecodv2-b .ecodv2-notes .ecodv2-callout { position: relative; padding: 10px 12px; border-width: 0; border-radius: 10px; }
.ecodv2-b .ecodv2-notes .ecodv2-callout > .dashicons { display: none; }
.ecodv2-b .ecodv2-notes .ecodv2-callout-yellow { background: #fef9c3; }
.ecodv2-b .ecodv2-notes .ecodv2-callout-body strong { font-size: 11px; font-weight: 700; letter-spacing: .05em; text-transform: uppercase; color: #854d0e; }
.ecodv2-b .ecodv2-notes .ecodv2-callout-blue .ecodv2-callout-body strong { color: #1e40af; }
.ecodv2-b .ecodv2-notes .ecodv2-callout-body strong em { font-weight: 500; letter-spacing: 0; text-transform: none; }
.ecodv2-b .ecodv2-notes .ecodv2-callout-yellow .ecodv2-callout-body > span { color: #422006; }
.ecodv2-b .ecodv2-notes .ecodv2-callout-blue .ecodv2-callout-body > span { color: #1e3a8a; }
.ecodv2-b .ecodv2-notes .ecodv2-note-adds { flex-direction: column; gap: 4px; }
.ecodv2-b .ecodv2-notes .ecodv2-cnotes-popover { right: -8px; width: 380px; }
.ecodv2-docs-list { display: flex; flex-direction: column; padding-top: 6px; padding-bottom: 8px; }
.ecodv2-doc-row { display: flex; align-items: center; gap: 8px; padding: 8px 0; font-size: 12.5px; color: var(--ecv2-g800); }
.ecodv2-doc-row + .ecodv2-doc-row { border-top: 1px solid var(--ecv2-g100); }
.ecodv2-doc-row > .dashicons { font-size: 16px; width: 16px; height: 16px; color: var(--ecv2-g400); }
.ecodv2-doc-name { flex: 1 1 auto; min-width: 0; }
.ecodv2-doc-note { margin-left: 4px; font-size: 11.5px; color: var(--ecv2-primary-deep, #166534); white-space: nowrap; }
.ecodv2-doc-act { padding: 0; border: 0; background: transparent; font: inherit; font-size: 12px; color: var(--ecv2-blue, #2563eb); text-decoration: none; cursor: pointer; }
.ecodv2-doc-act:hover, .ecodv2-doc-act:focus-visible { outline: none; text-decoration: underline; }
.ecodv2-docs-more { margin-top: 2px; border-top: 1px solid var(--ecv2-g100); }
.ecodv2-docs-more .ecdv2-menu-sep { display: none; }
.ecodv2-docs-more a { display: flex; align-items: center; gap: 8px; padding: 8px 0; font-size: 12.5px; color: var(--ecv2-g800); text-decoration: none; }
.ecodv2-docs-more a + a { border-top: 1px solid var(--ecv2-g100); }
.ecodv2-docs-more a:hover, .ecodv2-docs-more a:focus-visible { outline: none; color: var(--ecv2-blue, #2563eb); }
.ecodv2-docs-more a .dashicons { font-size: 16px; width: 16px; height: 16px; color: var(--ecv2-g400); }

/* ---- Find ( Ctrl K ) and the keys: printed on <body>, outside the page's wrapper ---- */
.ecodv2-cmdk-backdrop { position: fixed; inset: 0; z-index: 1000004; background: rgba( 15, 23, 42, .45 ); }
.ecodv2-cmdk { position: fixed; top: 12vh; left: 50%; z-index: 1000005; display: flex; flex-direction: column; width: 600px; max-width: calc( 100vw - 32px ); max-height: 72vh; overflow: hidden; transform: translateX( -50% ); background: #fff; border-radius: 14px; box-shadow: 0 24px 80px rgba( 0, 0, 0, .35 ); color: #1f2937; font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif; font-size: 13px; }
.ecodv2-cmdk, .ecodv2-cmdk * { box-sizing: border-box; }
.ecodv2-cmdk-search { display: flex; align-items: center; gap: 10px; padding: 0 16px; border-bottom: 1px solid #f3f4f6; }
.ecodv2-cmdk-search .dashicons { color: #9ca3af; }
.ecodv2-cmdk .ecodv2-cmdk-input { flex: 1 1 auto; height: 52px; margin: 0; padding: 0; border: 0; border-radius: 0; background: transparent; box-shadow: none; outline: none; font-size: 15px; color: #111827; }
.ecodv2-cmdk-list { overflow-y: auto; padding: 6px; }
.ecodv2-cmdk-group { padding: 8px 10px 4px; font-size: 11px; font-weight: 700; letter-spacing: .05em; text-transform: uppercase; color: #6b7280; }
.ecodv2-cmdk-item { display: flex; align-items: center; gap: 10px; padding: 9px 10px; border-radius: 8px; font-size: 13.5px; color: #1f2937; cursor: pointer; }
.ecodv2-cmdk-item.is-active { background: #f3f4f6; }
.ecodv2-cmdk-main { display: flex; flex-direction: column; flex: 1 1 auto; min-width: 0; }
.ecodv2-cmdk-main > .dashicons { display: none; }
.ecodv2-cmdk-order { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.ecodv2-cmdk-meta { display: inline-flex; align-items: center; gap: 6px; font-size: 12px; color: #6b7280; }
.ecodv2-cmdk-meta .ecodv2-status-dot { width: 8px; height: 8px; border-radius: 50%; }
.ecodv2-cmdk-note { padding: 14px 12px; font-size: 13px; color: #6b7280; }
.ecodv2-cmdk-foot { padding: 8px 16px; border-top: 1px solid #f3f4f6; font-size: 11.5px; color: #6b7280; }
.ecodv2-cmdk.is-keys { width: 440px; }
.ecodv2-keys-head { display: flex; align-items: center; gap: 8px; padding: 14px 12px 4px 18px; }
.ecodv2-keys-head h3 { flex: 1 1 auto; margin: 0; font-size: 15px; color: #111827; }
.ecodv2-keys { display: grid; grid-template-columns: auto 1fr; align-items: center; gap: 10px 16px; margin: 0; padding: 8px 18px 20px; }
.ecodv2-keys dt, .ecodv2-keys dd { margin: 0; }
.ecodv2-keys dd { font-size: 13px; color: #374151; }
@media ( max-width: 600px ) {
	.ecodv2-cmdk { top: 8px; max-height: calc( 100vh - 16px ); }
	.ecodv2-cmdk-foot { display: none; }
}

/* ---- Scan a tracking barcode ---- */
.ecodv2-scan { position: fixed; inset: 0; z-index: 1000006; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 16px; padding: 16px; background: #0b0f14; }
.ecodv2-scan-view { position: relative; width: 520px; max-width: 100%; height: 60vh; overflow: hidden; border-radius: 14px; background: #000; }
.ecodv2-scan-view video { display: block; width: 100%; height: 100%; object-fit: cover; }
.ecodv2-scan-frame { position: absolute; top: 38%; left: 8%; right: 8%; height: 24%; border: 3px solid rgba( 255, 255, 255, .9 ); border-radius: 12px; box-shadow: 0 0 0 9999px rgba( 0, 0, 0, .35 ); }
.ecodv2-scan-hint { margin: 0; font-size: 14px; text-align: center; color: #e5e7eb; }
.ecodv2-scan-hint.is-error { color: #fecaca; }
.ecodv2-scan-close { height: 48px; padding: 0 28px; border: 1px solid rgba( 255, 255, 255, .5 ); border-radius: 12px; background: transparent; color: #fff; font-size: 15px; font-weight: 600; cursor: pointer; }
.ecodv2-scan-close:focus-visible { outline: 3px solid #fff; outline-offset: 2px; }

/* ---- Ship bar: Ship order and Next at the bottom of a phone ---- */
.ecodv2-shipbar { display: none; }

/* ---- Narrower screens ---- */
@media ( max-width: 1080px ) {
	.ecodv2-b .ecodv2-card-gift { order: 1; }
	.ecodv2-b .ecodv2-o-notes { order: 2; }
	.ecodv2-b .ecodv2-o-docs { order: 7; }
}
@media screen and ( max-width: 782px ) {
	.ecodv2-steps-card { flex-direction: column; align-items: stretch; gap: 12px; padding: 14px; }
	.ecodv2-steps-status { padding: 12px 0 0; border-left: 0; border-top: 1px solid var(--ecv2-g100); }
	.ecodv2-step { gap: 6px; padding-right: 4px; }
	.ecodv2-step::after { top: 10px; left: 26px; right: 4px; }
	.ecodv2-step-mark { width: 22px; height: 22px; }
	.ecodv2-step-mark svg { width: 11px; height: 11px; }
	.ecodv2-step-dot { width: 8px; height: 8px; }
	.ecodv2-step-label { font-size: 11.5px; }
	/* One line under the marks says where the order is ( the labels stay for screen readers ). */
	.ecodv2-step-text { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect( 0 0 0 0 ); white-space: nowrap; }
	/* The step's line is hidden here, so a tap on its circle would do something nobody was told about: the next step panel
	   carries the same action, in words ( bug round 7 ). The keyboard still reaches the circle ( it is named ). */
	.ecodv2-step-mark-btn { pointer-events: none; }
	.ecodv2-step-mark-btn::before { display: none; }
	.ecodv2-step-tip { display: none; }
	/* One card under the other, full width; Track goes under the number. */
	.ecodv2-done { flex-direction: column; }
	.ecodv2-track, .ecodv2-deliver-btn { width: 100%; }
	.ecodv2-track { grid-template-columns: 40px minmax( 0, 1fr ); row-gap: 4px; }
	.ecodv2-carrier-tile { grid-row: span 2; align-self: start; }
	.ecodv2-track-open { justify-self: start; margin: 0 0 -4px -10px; }
	.ecodv2-deliver-btn { min-height: 56px; }
	.ecodv2-steps-caption { display: block; margin: 10px 0 0; font-size: 13px; font-weight: 600; color: var(--ecv2-g800); }
	.ecodv2-steps-caption span { font-weight: 400; color: var(--ecv2-g500); }
	.ecodv2-next.has-queue { grid-template-columns: minmax( 0, 1fr ); }
	.ecodv2-queue { padding: 14px 16px; border-left: 0; border-top: 1px solid var(--ecv2-g200); }
	.ecodv2-next-main { padding: 16px; }
	.ecodv2-next-title { font-size: 18px; }
	.ecodv2-ship { flex-direction: column; align-items: stretch; }
	.ecodv2-ship-carrier { width: auto; }
	.ecodv2-ship-tracking { flex: 0 0 auto; max-width: none; margin-right: 0; }
	.ecodv2-b .ecodv2-ship select, .ecodv2-b .ecodv2-ship input[type="text"] { height: 48px; font-size: 16px; }
	.ecodv2-ship-scan { top: 6px; right: 6px; width: 36px; height: 36px; }
	.ecodv2-ship-email { height: auto; min-height: 44px; white-space: normal; overflow-wrap: anywhere; }
	.ecodv2-next-note { margin-left: 0; }
	.ecodv2-figures { gap: 8px; }
	.ecodv2-figure-amt { font-size: 18px; }
	.ecodv2-b .ecodv2-crumb-text { display: none; }
	.ecodv2-crumb-sep { display: none; }
	.ecodv2-b.is-packing .ecodv2-line-items .ec_admin_order_details_line_item { grid-template-columns: 24px 40px minmax( 0, 1fr ) auto; }
	.ecodv2-b.is-packing .ecodv2-line-items .ec_admin_order_details_item_actions { grid-column: 3 / -1; }
	.ecodv2-pack-bar { width: 70px; }
	.ecodv2-pack-check { height: 40px; }
	.ecodv2-pack-check input { width: 22px; height: 22px; }
	/* Ship order and Next move to the bar at the bottom of the screen. */
	.ecodv2-shipbar { position: fixed; right: 0; bottom: 0; left: 0; z-index: 9990; display: flex; gap: 10px; padding: 10px 16px calc( 10px + env( safe-area-inset-bottom, 0px ) ); background: #fff; border-top: 1px solid #e5e7eb; box-shadow: 0 -6px 20px rgba( 17, 24, 39, .08 ); }
	.ecodv2-shipbar .ecv2-btn { display: inline-flex; align-items: center; justify-content: center; height: 50px; font-size: 16px; font-weight: 700; }
	.ecodv2-shipbar-go { flex: 1 1 auto; }
	.ecodv2-shipbar-label { flex: 1 1 auto; }
	.ecodv2-shipbar .ecodv2-shipbar-go.is-secondary { flex: 0 0 auto; padding: 0 18px; }
	.ecodv2-shipbar-next { flex: 0 0 104px; }
	body.ecodv2-has-shipbar #wpbody-content { padding-bottom: 150px; }
	body.ecodv2-has-shipbar .ecodv2-b .ecodv2-ship-go, body.ecodv2-has-shipbar .ecodv2-b .ecodv2-ship-label, body.ecodv2-has-shipbar .ecodv2-b .ecodv2-queue-next { display: none; }
	body.ecodv2-drawer-open .ecodv2-shipbar, body.ecodv2-label-open .ecodv2-shipbar, body.ecodv2-line-open .ecodv2-shipbar, body.ecodv2-add-open .ecodv2-shipbar, body.ecodv2-hdrawer-open .ecodv2-shipbar { display: none; }
}
