.btn,
.gmails-save-btn,
.dm-secondary-btn,
.product-explorer-modal-btn,
.product-feed-manager-modal-btn,
.cj-modal-run-btn,
.col-modal-save-btn.cj-task-create-btn {
    min-height: var(--control-height-sm);
    border: 1px solid var(--hairline);
    border-radius: var(--radius-sm);
    background: var(--canvas);
    color: var(--primary);
    font-family: inherit;
    font-size: 0.78rem;
    font-weight: 500;
    line-height: 1;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: var(--space-2);
    padding: 0 var(--space-3);
    text-decoration: none;
    cursor: pointer;
}

.btn {
    height: var(--control-height-md);
    border-radius: var(--radius-lg);
    font-size: 1rem;
    padding-inline: 1.25rem;
}

.btn-sm,
.gmails-save-btn,
.dm-secondary-btn,
.product-explorer-modal-btn,
.product-feed-manager-modal-btn,
.cj-modal-run-btn,
.col-modal-save-btn.cj-task-create-btn {
    height: var(--control-height-sm);
    min-width: 0;
}

.btn-primary,
.gmails-save-btn {
    border-color: var(--primary);
    background: var(--primary);
    color: #ffffff;
}

.btn-primary:active,
.gmails-save-btn:active {
    border-color: var(--primary-active);
    background: var(--primary-active);
}

.btn-secondary,
.dm-secondary-btn,
.product-explorer-modal-btn,
.product-feed-manager-modal-btn,
.cj-modal-run-btn,
.col-modal-save-btn.cj-task-create-btn {
    background: var(--canvas);
    color: var(--primary);
}

.btn-danger {
    border-color: var(--color-danger-border);
    background: var(--color-danger-bg);
    color: var(--color-danger);
}

.btn-icon,
.col-modal-save-btn {
    width: var(--control-height-sm);
    min-width: var(--control-height-sm);
    height: var(--control-height-sm);
    padding: 0;
}

.btn:disabled,
.gmails-save-btn:disabled,
.dm-secondary-btn:disabled,
.product-explorer-modal-btn:disabled,
.product-feed-manager-modal-btn:disabled,
.cj-modal-run-btn:disabled,
.col-modal-save-btn:disabled {
    opacity: 0.55;
    cursor: not-allowed;
}

.btn:focus-visible,
.gmails-save-btn:focus-visible,
.dm-secondary-btn:focus-visible,
.product-explorer-modal-btn:focus-visible,
.product-feed-manager-modal-btn:focus-visible,
.cj-modal-run-btn:focus-visible,
.col-modal-save-btn:focus-visible {
    outline: 2px solid rgba(69, 143, 255, 0.45);
    outline-offset: 2px;
}

.form-control,
.row-edit-control,
.ops-search-input,
.ddm-value-input {
    border: 1px solid var(--hairline);
    border-radius: var(--radius-sm);
    background: var(--canvas);
    color: var(--body);
    font-family: inherit;
}

.form-control:focus,
.row-edit-control:focus,
.ops-search-input:focus,
.ddm-value-input:focus {
    outline: none;
    border-color: var(--color-focus);
}

.row-edit-control.is-dirty,
.row-edit-field.is-dirty .ops-column-trigger,
.row-edit-field.is-dirty .row-edit-switch-slider {
    border-color: var(--color-danger);
    box-shadow: 0 0 0 1px var(--color-danger-focus) inset;
}

.modal,
.row-edit-modal {
    position: fixed;
    inset: 0;
    z-index: 2600;
    display: none;
}

.modal.is-open,
.row-edit-modal.is-open {
    display: block;
}

.modal__backdrop,
.row-edit-modal-backdrop {
    position: absolute;
    inset: 0;
    background: rgba(13, 17, 23, 0.45);
}

.modal__dialog,
.row-edit-modal-dialog {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    width: min(34rem, calc(100vw - 2rem));
    max-height: min(80vh, calc(100vh - 2rem));
    border: 1px solid var(--hairline);
    border-radius: var(--radius-lg);
    background: var(--canvas);
    box-shadow: var(--shadow-modal);
    display: grid;
    grid-template-rows: auto minmax(0, 1fr);
    overflow: hidden;
}

.modal__dialog:has(.ops-column-picker.is-open),
.row-edit-modal-dialog:has(.ops-column-picker.is-open),
.ui-modal__dialog:has(.ops-column-picker.is-open) {
    overflow: visible;
}

.modal-sm .modal__dialog,
.modal-sm.row-edit-modal .row-edit-modal-dialog {
    width: min(24rem, calc(100vw - 2rem));
}

.modal-md .modal__dialog,
.modal-md.row-edit-modal .row-edit-modal-dialog {
    width: min(34rem, calc(100vw - 2rem));
}

.modal-lg .modal__dialog,
.modal-lg.row-edit-modal .row-edit-modal-dialog {
    width: min(48rem, calc(100vw - 2rem));
}

.modal-xl .modal__dialog,
.modal-xl.row-edit-modal .row-edit-modal-dialog {
    width: min(80vw, calc(100vw - 2rem));
}

.modal__header,
.row-edit-modal-head {
    min-height: 2.5rem;
    border-bottom: 1px solid var(--hairline);
    background: var(--surface-soft);
    padding: 0 var(--space-4);
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: var(--space-3);
}

.modal__title,
.row-edit-modal-title {
    font-size: 0.82rem;
    color: #2f3440;
}

.modal__body,
.row-edit-modal-body {
    min-height: 0;
    padding: var(--space-4);
}

.modal__body:has(.ops-column-picker.is-open),
.row-edit-modal-body:has(.ops-column-picker.is-open),
.ui-modal__body:has(.ops-column-picker.is-open) {
    overflow: visible;
}

.modal__close,
.row-edit-modal-close {
    width: 1.7rem;
    height: 1.7rem;
    border: 1px solid var(--hairline);
    border-radius: var(--radius-sm);
    background: var(--canvas);
    color: #445065;
    cursor: pointer;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    line-height: 1;
    padding: 0;
}

.toast,
.ops-toast {
    border-radius: var(--radius-md);
}

.ops-row-edit-form {
    display: grid;
    gap: 0.85rem;
    align-content: start;
}

.ui-btn {
    min-height: var(--control-height-sm);
    border: 1px solid var(--hairline);
    border-radius: var(--radius-sm);
    background: var(--canvas);
    color: var(--primary);
    font-family: inherit;
    font-size: 0.78rem;
    font-weight: 500;
    line-height: 1;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: var(--space-2);
    padding: 0 var(--space-3);
    text-decoration: none;
    cursor: pointer;
}

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

.ui-btn--secondary {
    background: var(--canvas);
    color: var(--primary);
}

.ui-btn--danger {
    border-color: var(--color-danger-border);
    background: var(--color-danger-bg);
    color: var(--color-danger);
}

.ui-btn--sm {
    height: var(--control-height-sm);
}

.ui-icon-btn {
    width: var(--control-height-sm);
    min-width: var(--control-height-sm);
    height: var(--control-height-sm);
    border: 1px solid var(--hairline);
    border-radius: var(--radius-sm);
    background: var(--canvas);
    color: var(--primary);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 0;
    cursor: pointer;
}

.ui-btn:disabled,
.ui-icon-btn:disabled {
    opacity: 0.55;
    cursor: not-allowed;
}

.ui-modal,
.row-edit-modal.ui-modal {
    position: fixed;
    inset: 0;
    z-index: 2600;
    display: none;
}

.ui-modal.is-open,
.row-edit-modal.ui-modal.is-open {
    display: block;
}

.row-edit-modal.ui-modal.ui-modal--fullscreen.is-open {
    display: flex;
    align-items: center;
    justify-content: center;
}

.row-edit-modal.ui-modal.ui-modal--fullscreen.product-feed-manager-modal.is-open,
.row-edit-modal.ui-modal.ui-modal--fullscreen.product-feed-manager-upload-modal.is-open {
    display: flex;
    align-items: center;
    justify-content: center;
    top: calc(64px + 1rem);
    bottom: 1rem;
    height: auto;
}

.row-edit-modal.ui-modal.ui-modal--fullscreen.product-feed-manager-modal .ui-modal__dialog,
.row-edit-modal.ui-modal.ui-modal--fullscreen.product-feed-manager-upload-modal .ui-modal__dialog {
    width: min(96vw, calc(100vw - 2rem));
    height: min(86vh, calc(100vh - 64px - 3rem));
    margin: 0;
}

.ui-modal__backdrop {
    position: absolute;
    inset: 0;
    background: rgba(13, 17, 23, 0.45);
}

.ui-modal__dialog {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    width: min(34rem, calc(100vw - 2rem));
    max-height: min(80vh, calc(100vh - 2rem));
    border: 1px solid var(--hairline);
    border-radius: var(--radius-lg);
    background: var(--canvas);
    box-shadow: var(--shadow-modal);
    display: grid;
    grid-template-rows: auto minmax(0, 1fr);
    overflow: hidden;
}

.ui-modal--sm .ui-modal__dialog {
    width: min(24rem, calc(100vw - 2rem));
}

.ui-modal--md .ui-modal__dialog {
    width: min(34rem, calc(100vw - 2rem));
}

.ui-modal--lg .ui-modal__dialog {
    width: min(48rem, calc(100vw - 2rem));
}

.ui-modal--xl .ui-modal__dialog {
    width: min(80vw, calc(100vw - 2rem));
}

.ui-modal--wide .ui-modal__dialog {
    width: min(820px, 94vw);
}

.ui-modal--fullscreen.is-open {
    display: flex;
    align-items: center;
    justify-content: center;
}

.ui-modal--fullscreen .ui-modal__dialog {
    position: relative;
    inset: auto;
    transform: none;
    width: 90vw;
    height: 90vh;
    max-width: none;
    max-height: none;
    padding: var(--space-4);
    display: grid;
    grid-template-rows: auto minmax(0, 1fr);
    gap: 0.85rem;
}

.ui-modal__header {
    height: auto;
    min-height: 2.5rem;
    border-bottom: 1px solid var(--hairline);
    background: var(--surface-soft);
    padding: 0 var(--space-4);
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: var(--space-3);
}

.ui-modal__title {
    margin: 0;
    font-size: 0.82rem;
    line-height: 1.2;
    color: #2f3440;
}

.ui-modal__actions {
    min-width: 0;
    display: inline-flex;
    align-items: center;
    justify-content: flex-end;
    gap: var(--space-2);
    flex-wrap: wrap;
}

.ui-modal__body {
    min-height: 0;
    padding: var(--space-4);
    overflow: auto;
}

.ui-modal__footer {
    border-top: 1px solid var(--hairline);
    background: var(--canvas);
    padding: var(--space-3);
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: var(--space-2);
}

/* Button compatibility layer: keep old selectors working, make them look shared. */
.btn,
.tools-btn,
.tools-output-btn,
.product-feed-manager-generate-btn,
.product-feed-manager-modal-btn,
.product-explorer-modal-btn,
.cj-modal-run-btn,
.cj-card-search-btn,
.cj-card-search-clear,
.cj-card-page-btn,
.dm-theme-btn,
.dm-secondary-btn,
.dm-two-row-buttons button,
.ops-card-order-actions button,
.table-page-btn,
.invoice-page-btn,
.documents-ledger-open,
.col-modal-save-btn.cj-task-create-btn,
.gmails-save-btn,
.gmails-today-btn,
.wallet-sync-row #wallet-sync-btn {
    min-height: var(--control-height-sm);
    height: var(--control-height-sm);
    border: 1px solid var(--hairline);
    border-radius: var(--radius-sm);
    background: var(--canvas);
    color: var(--body);
    font-family: inherit;
    font-size: var(--button-label-size);
    font-weight: var(--button-label-weight);
    line-height: 1;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: var(--space-2);
    padding: 0 var(--space-3);
    text-decoration: none;
    white-space: nowrap;
    cursor: pointer;
    letter-spacing: 0;
    text-transform: uppercase;
}

.btn-primary,
.ui-btn--primary,
.gmails-save-btn,
.tools-btn.is-primary,
.tools-btn.ui-btn--primary,
.product-feed-manager-generate-btn {
    border-color: var(--primary);
    background: var(--primary);
    color: var(--on-dark);
}

.btn-secondary,
.ui-btn--secondary,
.dm-secondary-btn,
.product-feed-manager-modal-btn,
.product-explorer-modal-btn,
.cj-modal-run-btn,
.documents-ledger-open,
.tools-btn.ui-btn--secondary {
    border-color: var(--hairline);
    background: var(--canvas);
    color: var(--body);
}

.btn-danger,
.ui-btn--danger,
.confirm-ok-btn,
button.is-danger {
    border-color: var(--color-danger);
    background: var(--color-danger);
    color: var(--on-dark);
}

.icon-btn:not(.action-edit-link),
.ui-icon-btn,
.dm-icon-btn,
.tools-icon-btn,
.product-explorer-icon-btn,
.product-feed-manager-icon-only,
.product-feed-manager-action-btn,
.product-feed-manager-refresh-btn,
.upload-media-icon-btn,
.proxies-qr-generate-btn,
.cj-api-add-icon-btn,
.shell-icon-btn,
.online-strip-btn,
.gmails-two-fa-btn,
.ops-btn-group button {
    width: var(--control-height-sm);
    min-width: var(--control-height-sm);
    height: var(--control-height-sm);
    border: 1px solid var(--hairline);
    border-radius: var(--radius-sm);
    background: var(--canvas);
    color: var(--body);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 0;
    text-decoration: none;
    cursor: pointer;
    font-family: inherit;
    font-size: var(--button-label-size);
    line-height: 1;
    letter-spacing: 0;
}

.ui-btn:hover,
.btn:hover,
.tools-btn:hover,
.tools-output-btn:hover,
.product-feed-manager-modal-btn:hover,
.product-explorer-modal-btn:hover,
.cj-modal-run-btn:hover,
.dm-theme-btn:hover,
.dm-secondary-btn:hover,
.table-page-btn:not(.is-disabled):hover,
.invoice-page-btn:not(.is-disabled):hover,
.ui-icon-btn:hover,
.icon-btn:not(.action-edit-link):hover,
.dm-icon-btn:hover,
.tools-icon-btn:hover,
.product-explorer-icon-btn:hover,
.product-feed-manager-icon-only:hover,
.product-feed-manager-action-btn:hover,
.product-feed-manager-refresh-btn:hover,
.upload-media-icon-btn:hover,
.proxies-qr-generate-btn:hover,
.shell-icon-btn:hover,
.online-strip-btn:hover,
.ops-btn-group button:hover {
    border-color: #c6d0dd;
    background: var(--surface-soft);
    color: var(--primary);
}

.ui-btn:disabled,
.btn:disabled,
.tools-btn:disabled,
.tools-output-btn:disabled,
.product-feed-manager-modal-btn:disabled,
.product-explorer-modal-btn:disabled,
.cj-modal-run-btn:disabled,
.dm-theme-btn:disabled,
.dm-secondary-btn:disabled,
.dm-two-row-buttons button:disabled,
.ui-icon-btn:disabled,
.icon-btn:not(.action-edit-link):disabled,
.dm-icon-btn:disabled,
.tools-icon-btn:disabled,
.product-explorer-icon-btn:disabled,
.product-feed-manager-icon-only:disabled,
.product-feed-manager-action-btn:disabled,
.product-feed-manager-refresh-btn:disabled,
.upload-media-icon-btn:disabled,
.proxies-qr-generate-btn:disabled,
.ops-btn-group button:disabled {
    opacity: 0.55;
    cursor: not-allowed;
}

.ui-btn:focus-visible,
.btn:focus-visible,
.tools-btn:focus-visible,
.tools-output-btn:focus-visible,
.product-feed-manager-modal-btn:focus-visible,
.product-explorer-modal-btn:focus-visible,
.cj-modal-run-btn:focus-visible,
.dm-theme-btn:focus-visible,
.dm-secondary-btn:focus-visible,
.dm-two-row-buttons button:focus-visible,
.ui-icon-btn:focus-visible,
.icon-btn:not(.action-edit-link):focus-visible,
.dm-icon-btn:focus-visible,
.tools-icon-btn:focus-visible,
.product-explorer-icon-btn:focus-visible,
.product-feed-manager-icon-only:focus-visible,
.product-feed-manager-action-btn:focus-visible,
.product-feed-manager-refresh-btn:focus-visible,
.upload-media-icon-btn:focus-visible,
.proxies-qr-generate-btn:focus-visible,
.ops-btn-group button:focus-visible {
    outline: 2px solid rgba(69, 143, 255, 0.45);
    outline-offset: 2px;
}

.ui-btn,
.btn,
.tools-btn,
.tools-output-btn,
.product-feed-manager-generate-btn,
.product-feed-manager-modal-btn,
.product-explorer-modal-btn,
.cj-modal-run-btn,
.cj-card-search-btn,
.cj-card-search-clear,
.cj-card-page-btn,
.dm-theme-btn,
.dm-secondary-btn,
.dm-two-row-buttons button,
.ops-card-order-actions button,
.table-page-btn,
.invoice-page-btn,
.documents-ledger-open,
.col-modal-save-btn.cj-task-create-btn,
.gmails-save-btn,
.gmails-today-btn,
.wallet-sync-row #wallet-sync-btn {
    font-size: var(--button-label-size);
    font-weight: var(--button-label-weight);
    letter-spacing: 0;
}

.ui-btn svg,
.btn svg,
.ops-btn-group button svg,
.ui-icon-btn svg,
.icon-btn:not(.action-edit-link) svg,
.dm-icon-btn svg,
.tools-icon-btn svg,
.product-explorer-icon-btn svg,
.product-feed-manager-icon-only svg,
.product-feed-manager-action-btn svg,
.product-feed-manager-refresh-btn svg,
.upload-media-icon-btn svg,
.proxies-qr-generate-btn svg,
.shell-icon-btn svg,
.online-strip-btn svg,
.cj-modal-run-btn svg,
.gmails-save-btn svg,
.cj-api-add-icon-btn svg,
.cj-api-edit-save-btn svg {
    width: var(--button-icon-size);
    height: var(--button-icon-size);
    min-width: var(--button-icon-size);
    flex: 0 0 auto;
    display: block;
    fill: none;
    stroke: currentColor;
    stroke-width: 2;
    stroke-linecap: round;
    stroke-linejoin: round;
}

.ui-btn i,
.btn i,
.ops-btn-group button i,
.ui-icon-btn i,
.icon-btn:not(.action-edit-link) i,
.dm-icon-btn i,
.tools-icon-btn i,
.product-explorer-icon-btn i,
.product-feed-manager-icon-only i,
.product-feed-manager-action-btn i,
.product-feed-manager-refresh-btn i,
.upload-media-icon-btn i,
.proxies-qr-generate-btn i,
.shell-icon-btn i,
.online-strip-btn i,
.cj-modal-run-btn i,
.gmails-save-btn i,
.cj-api-add-icon-btn i,
.cj-api-edit-save-btn i {
    width: var(--button-icon-size);
    min-width: var(--button-icon-size);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-size: var(--button-fa-size);
    line-height: 1;
}

.product-feed-manager-group-table input[type="number"].product-feed-manager-count-input {
    width: 100%;
    height: 100%;
    min-height: 1.7rem;
    border: 0;
    border-radius: 0;
    padding: 0;
    font: inherit;
    color: var(--text);
    background: transparent;
    text-align: center;
    outline: none;
    appearance: textfield;
    -moz-appearance: textfield;
}

.product-feed-manager-group-table input[type="number"].product-feed-manager-count-input:focus {
    border: 0;
    box-shadow: inset 0 -2px 0 rgba(31, 111, 235, 0.4);
}

.product-feed-manager-group-table input[type="number"].product-feed-manager-count-input::-webkit-outer-spin-button,
.product-feed-manager-group-table input[type="number"].product-feed-manager-count-input::-webkit-inner-spin-button {
    margin: 0;
    -webkit-appearance: none;
}

.product-feed-manager-result-table .product-feed-manager-action-btn,
.product-feed-manager-refresh-btn,
.product-feed-manager-icon-only {
    width: 2rem;
    min-width: 2rem;
    height: 2rem;
    padding: 0;
    font-size: 0;
    line-height: 1;
}

.product-feed-manager-refresh-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
}

.product-feed-manager-result-table .product-feed-manager-action-btn {
    border: 0;
    background: transparent;
    box-shadow: none;
}

.product-feed-manager-refresh-btn svg {
    display: block;
    margin: 0;
}

.product-feed-manager-result-table .product-feed-manager-action-btn i {
    width: var(--button-icon-size);
    min-width: var(--button-icon-size);
    height: var(--button-icon-size);
    font-size: var(--button-icon-size);
    line-height: var(--button-icon-size);
}

/* Compact action-cell buttons stay small for stable table row height. */
.ops-table .action-edit-link,
.action-wrapper,
.fg-action-stack {
    width: 20px;
    min-width: 20px;
    height: 20px;
}

.ops-table .action-edit-link i,
.ops-table .action-edit-link svg,
.row-edit-inline-actions .action-edit-link i,
.row-edit-inline-actions .action-edit-link svg {
    width: var(--button-compact-icon-size);
    min-width: var(--button-compact-icon-size);
    height: var(--button-compact-icon-size);
    font-size: var(--button-compact-icon-size);
}
