:root {
    --EcocertGreen: rgb(37,188,116);
    --EcocertRed: rgb(227,26,14);
    --EcocertBlack: #1f2937;
    --text-dark: #1f2937;
    --text-soft: #5f6c7b;
    --surface: #ffffff;
    --surface-muted: #f5f6f7;
    --border-soft: #d8dee6;
    --shadow-lg: 0 24px 70px rgba(15, 23, 42, 0.12);
    --shadow-md: 0 10px 30px rgba(15, 23, 42, 0.08);
    --transition: all 0.25s ease;
}

* {
    box-sizing: border-box;
}

html,
body {
    min-height: 100%;
    margin: 0;
}

body.sourcing-page {
    font-family: 'Open Sans', sans-serif;
    color: var(--text-dark);
    background: linear-gradient(180deg, #f8fbfa 0%, #ffffff 100%);
    -webkit-font-smoothing: antialiased;
}

body.sourcing-page.modal-open {
    overflow: hidden;
}

.sourcing-share-modal-overlay {
    position: fixed;
    inset: 0;
    z-index: 600;
    display: grid;
    place-items: center;
    padding: 20px;
}

.sourcing-share-modal-backdrop {
    position: absolute;
    inset: 0;
    background: rgba(15, 23, 42, 0.48);
    backdrop-filter: blur(3px);
}

.sourcing-share-modal {
    position: relative;
    z-index: 1;
    width: min(620px, calc(100vw - 40px));
    max-height: calc(100vh - 40px);
    padding: 30px 34px 28px;
    overflow-y: auto;
    border-radius: 18px;
    background: #fff;
    box-shadow: 0 24px 70px rgba(15, 23, 42, 0.24);
}

.sourcing-share-modal h2 {
    margin: 0 44px 22px;
    color: #2f3745;
    font-family: 'Poppins', sans-serif;
    font-size: 1.65rem;
    text-align: center;
}

.sourcing-share-modal-close {
    position: absolute;
    top: 16px;
    right: 18px;
    display: grid;
    width: 38px;
    height: 38px;
    place-items: center;
    border: 0;
    border-radius: 50%;
    background: #f3f4f6;
    color: #6b7280;
    font-size: 1.25rem;
    cursor: pointer;
}

.sourcing-share-modal-close:hover,
.sourcing-share-modal-close:focus-visible {
    color: #111827;
}

.sourcing-share-copy {
    margin: 0 0 18px;
    color: #5d6778;
    font-size: 0.96rem;
    line-height: 1.55;
    text-align: left;
}

.sourcing-share-link-row {
    display: flex;
    width: 100%;
}

.sourcing-share-url {
    flex: 1 1 auto;
    min-width: 0;
    height: 44px;
    padding: 0 13px;
    border: 1px solid #ccd5e1;
    border-radius: 10px 0 0 10px;
    background: #f8fafc;
    color: #435064;
    font-family: Consolas, "Courier New", monospace;
    font-size: 0.72rem;
    outline: none;
}

.sourcing-share-url:focus {
    border-color: #25bc74;
    box-shadow: inset 0 0 0 1px #25bc74;
}

.sourcing-share-copy-button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    min-width: 124px;
    height: 44px;
    margin-left: -1px;
    padding: 0 18px;
    border: 1px solid #1da566;
    border-radius: 0 10px 10px 0;
    background: #25bc74;
    color: #fff;
    font-size: 0.88rem;
    font-weight: 700;
    cursor: pointer;
}

.sourcing-share-copy-button:hover,
.sourcing-share-copy-button:focus-visible {
    background: #1da566;
}

.sourcing-share-qr {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 14px;
    margin-top: 24px;
    padding-top: 22px;
    border-top: 1px solid #e3e8ee;
}

.sourcing-share-qr-preview {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 248px;
    height: 248px;
    padding: 8px;
    border: 1px solid #e0e6ed;
    border-radius: 16px;
    background: #fff;
    color: #6b7585;
    font-size: 0.82rem;
}

.sourcing-share-qr-preview canvas,
.sourcing-share-qr-preview svg {
    display: block;
    width: 100% !important;
    height: 100% !important;
}

.sourcing-share-qr-error {
    max-width: 180px;
    color: #b42318;
    line-height: 1.45;
}

.sourcing-share-qr-actions {
    display: flex;
    justify-content: center;
    gap: 10px;
}

.sourcing-share-qr-button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 7px;
    min-height: 40px;
    padding: 0 15px;
    border: 1px solid #cbd5df;
    border-radius: 9px;
    background: #fff;
    color: #334155;
    font-size: 0.84rem;
    font-weight: 700;
    cursor: pointer;
}

.sourcing-share-qr-button:hover,
.sourcing-share-qr-button:focus-visible {
    border-color: #25bc74;
    color: #168b56;
}

.sourcing-share-qr-button:disabled {
    cursor: wait;
    opacity: 0.62;
}

.sourcing-share-qr-button[hidden] {
    display: none;
}

@media (max-width: 520px) {
    .sourcing-share-modal {
        padding: 26px 18px 22px;
    }

    .sourcing-share-copy-button {
        min-width: 108px;
        padding: 0 12px;
    }

    .sourcing-share-qr-preview {
        width: 220px;
        height: 220px;
    }
}

.sourcing-view-as-banner {
    position: relative;
    padding: 9px 22px;
    border-bottom: 1px solid #d6b35f;
    background: #fff8dc;
    color: #604b16;
    font-size: 13px;
    font-weight: 600;
    text-align: center;
}

.sourcing-view-as-banner button {
    position: absolute;
    top: 50%;
    right: 18px;
    display: grid;
    width: 28px;
    height: 28px;
    place-items: center;
    border: 0;
    border-radius: 50%;
    background: transparent;
    color: #604b16;
    cursor: pointer;
    transform: translateY(-50%);
}

.sourcing-view-as-banner button:hover {
    background: rgba(96, 75, 22, 0.1);
}

.ingredient-edit-button {
    border-color: #25bc74;
    background: #eaf9f1;
    color: #137a49;
}

.ingredient-edit-button[hidden] {
    display: none;
}

.my-ingredients-filter-button[hidden] {
    display: none;
}

.ingredient-edit-panel {
    border-color: #86dcb2;
    background: #f8fffb;
}

.ingredient-edit-grid {
    display: grid;
    gap: 7px;
}

.ingredient-edit-grid label,
.ingredient-edit-label {
    color: #34424a;
    font-size: 13px;
    font-weight: 600;
}

.ingredient-edit-grid textarea {
    width: 100%;
    box-sizing: border-box;
    border: 1px solid #cfd9d5;
    border-radius: 8px;
    background: #fff;
    padding: 9px 10px;
    color: #243139;
    font: inherit;
}

.ingredient-edit-grid textarea {
    resize: vertical;
}

.ingredient-region-multiselect {
    position: relative;
}

.ingredient-region-multiselect-toggle {
    display: flex;
    width: 100%;
    min-height: 42px;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    border: 1px solid #cfd9d5;
    border-radius: 8px;
    background: #fff;
    padding: 9px 11px;
    color: #34424a;
    font: inherit;
    text-align: left;
    cursor: pointer;
}

.ingredient-region-multiselect-toggle:focus-visible {
    border-color: #42bd80;
    outline: 3px solid rgba(37, 188, 116, 0.15);
}

.ingredient-region-multiselect-toggle i {
    color: #7a8794;
    font-size: 0.75rem;
}

.ingredient-region-multiselect-menu {
    position: absolute;
    z-index: 8;
    top: calc(100% + 6px);
    right: 0;
    left: 0;
    display: grid;
    max-height: 250px;
    overflow-y: auto;
    border: 1px solid #d7e1dc;
    border-radius: 10px;
    background: #fff;
    padding: 6px;
    box-shadow: 0 14px 32px rgba(27, 45, 37, 0.16);
}

.ingredient-region-multiselect-menu[hidden],
.ingredient-region-selection-chips[hidden] {
    display: none;
}

.ingredient-region-option {
    display: flex;
    align-items: center;
    gap: 9px;
    border-radius: 7px;
    padding: 8px 9px;
    color: #34424a;
    cursor: pointer;
}

.ingredient-region-option:hover {
    background: #eff9f4;
}

.ingredient-region-option input {
    accent-color: #25a96d;
}

.ingredient-region-selection-chips {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
    margin-top: 8px;
}

.ingredient-region-selection-chip,
.detail-origin-region-chip {
    display: inline-flex;
    align-items: center;
    border-radius: 999px;
    background: #eaf8f1;
    padding: 4px 8px;
    color: #14784a;
    font-size: 0.78rem;
    font-weight: 700;
}

.detail-origin-region-chip {
    margin: 2px 5px 2px 0;
}

.ingredient-edit-character-count {
    margin-top: -3px;
    color: #7a8794;
    font-size: 0.74rem;
    text-align: right;
}

.ingredient-edit-data-notice {
    display: flex;
    align-items: flex-start;
    gap: 8px;
    margin: 12px 0 0;
    border-left: 3px solid #e96c76;
    border-radius: 7px;
    background: #fff3f4;
    padding: 10px 12px;
    color: #624248;
    font-size: 0.8rem;
    line-height: 1.45;
}

.ingredient-edit-data-notice i {
    margin-top: 2px;
    color: #d75a6e;
}

.ingredient-edit-on-behalf-note {
    margin: 10px 0 0;
    color: #604b16;
    font-size: 13px;
}

.ingredient-edit-actions {
    display: flex;
    justify-content: flex-end;
    gap: 8px;
    margin-top: 12px;
}

.my-ingredients-empty-state a {
    color: #168354;
    font-weight: 700;
}

body.sourcing-public-preview .search-input,
body.sourcing-public-preview .filter-option,
body.sourcing-public-preview .favorite-toggle-button,
body.sourcing-public-preview .table-sort-button,
body.sourcing-public-preview .pagination-arrow-button,
body.sourcing-public-preview .page-size-select {
    cursor: pointer;
}

body.sourcing-public-preview .search-input[readonly],
body.sourcing-public-preview .filter-options-search-input:disabled,
body.sourcing-public-preview .page-size-select[aria-disabled='true'] {
    background: #f4f7f6;
    color: #667085;
}

body.sourcing-public-preview .is-preview-locked {
    opacity: 0.82;
}

.filter-option-lock {
    margin-left: auto;
    color: #7a8794;
    font-size: 0.75rem;
}

.pro-modal-overlay[hidden],
.ingredient-modal-overlay[hidden],
.user-pro-badge[hidden] {
    display: none !important;
}

button,
input {
    font: inherit;
}

a {
    color: inherit;
    text-decoration: none;
}

.quote-button,
.icon-circle-button,
.user-dropdown-toggle,
.filter-group-header,
.view-toggle-button {
    transition: var(--transition);
}

.sourcing-app-shell {
    display: flex;
    flex-direction: column;
    min-height: 100vh;
    background: #f8f9fb;
}

.sourcing-footer {
    margin-top: auto;
    padding: 20px 24px;
    border-top: 1px solid #e3e8ee;
    background: #ffffff;
}

.sourcing-footer-links {
    display: flex;
    justify-content: center;
    gap: 10px 28px;
    flex-wrap: wrap;
}

.sourcing-footer-links a {
    color: #526173;
    font-size: 0.82rem;
    font-weight: 600;
    text-decoration: none;
}

.sourcing-footer-links a:hover,
.sourcing-footer-links a:focus-visible {
    color: var(--EcocertGreen);
    text-decoration: underline;
}

.top-nav.sourcing-top-nav {
    display: flex;
    justify-content: space-between;
    align-items: center;
    min-height: 74px;
    gap: 24px;
    padding: 12px 24px;
    background: #ffffff;
    border-bottom: 1px solid #e7eaee;
    box-shadow: 0 1px 4px rgba(15, 23, 42, 0.04);
}

.top-nav-left,
.top-nav-right {
    display: flex;
    align-items: center;
}

.top-nav-left {
    flex: 1 1 auto;
    min-width: 0;
}

.top-nav-identity {
    display: flex;
    align-items: center;
    gap: 18px;
    flex-wrap: wrap;
    min-width: 0;
}

.top-nav-logo {
    display: block;
    width: auto;
    max-width: 100%;
    height: 66px;
    flex: 0 0 auto;
    transform: translateY(-4px);
}

.top-nav-tagline {
    margin: 0;
    color: #374151;
    font-size: 0.98rem;
    font-weight: inherit;
    line-height: 1.3;
    flex: 1 1 280px;
    min-width: 220px;
    max-width: 560px;
}

.sourcing-nav-right {
    gap: 14px;
    position: relative;
}

.language-dropdown {
    position: relative;
}

.language-button {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    min-height: 40px;
    padding: 0 14px 0 10px;
    border: 1px solid #dbe4ea;
    border-radius: 14px;
    background: #ffffff;
    color: #1f2937;
    cursor: pointer;
    transition: var(--transition);
}

.language-button:hover {
    border-color: #c7d6cc;
    background: #f8fbfa;
}

.language-button i {
    color: #6b7280;
    font-size: 0.8rem;
}

.language-flag,
.language-option-flag {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 22px;
    height: 16px;
}

.language-flag-image,
.language-option-flag-image {
    width: 20px;
    height: 14px;
    display: block;
    border-radius: 2px;
    object-fit: cover;
    box-shadow: inset 0 0 0 1px rgba(15, 23, 42, 0.08);
}

.language-chip,
.language-option-chip {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 30px;
    height: 24px;
    padding: 0 8px;
    border-radius: 999px;
    background: #edf7f3;
    color: #209264;
    font-size: 0.78rem;
    font-weight: 800;
    letter-spacing: 0.03em;
}

.language-label {
    font-size: 0.94rem;
    font-weight: 700;
}

.language-dropdown-menu {
    position: absolute;
    top: calc(100% + 10px);
    right: 0;
    min-width: 210px;
    padding: 8px;
    border: 1px solid #dfe5ec;
    border-radius: 18px;
    background: #ffffff;
    box-shadow: var(--shadow-md);
    opacity: 0;
    transform: translateY(-10px);
    pointer-events: none;
    z-index: 50;
    transition: opacity 0.2s ease, transform 0.2s ease;
}

.language-dropdown-menu.show {
    opacity: 1;
    transform: translateY(0);
    pointer-events: auto;
}

.language-option {
    display: flex;
    align-items: center;
    gap: 12px;
    width: 100%;
    padding: 10px 12px;
    border: none;
    border-radius: 12px;
    background: transparent;
    color: #1f2937;
    text-align: left;
    cursor: pointer;
    transition: var(--transition);
}

.language-option:hover {
    background: #f5f7f8;
}

.language-option.is-active {
    background: #eff8f4;
}

.language-option-label {
    font-size: 0.94rem;
    font-weight: 700;
}

.icon-circle-button.notification-button {
    position: relative;
    width: 42px;
    height: 42px;
    border: 1px solid #dbe4ea;
    background: #ffffff;
    box-shadow: 0 4px 10px rgba(15, 23, 42, 0.06);
}

.icon-circle-button.notification-button i {
    font-size: 1.02rem;
}

.icon-circle-button.notification-button:hover {
    border-color: #cbd8cf;
    background: #f8fbfa;
}

.sourcing-notification-badge {
    position: absolute;
    top: -6px;
    right: -7px;
    display: inline-flex;
    min-width: 20px;
    height: 20px;
    padding: 0 5px;
    align-items: center;
    justify-content: center;
    border: 2px solid #ffffff;
    border-radius: 999px;
    background: #d92d20;
    color: #ffffff;
    font-size: 0.66rem;
    font-weight: 800;
    line-height: 1;
}

.sourcing-notification-badge[hidden] {
    display: none;
}

.unavailable-favorites-notice {
    display: flex;
    margin: 0 0 12px;
    padding: 12px 14px;
    align-items: center;
    justify-content: space-between;
    gap: 14px;
    border: 1px solid #f1c26d;
    border-radius: 10px;
    background: #fff8e8;
    color: #684a12;
    font-size: 0.86rem;
    line-height: 1.4;
}

.unavailable-favorites-notice[hidden] {
    display: none;
}

.remove-unavailable-favorites-button {
    flex: 0 0 auto;
    padding: 7px 12px;
    border: 1px solid #ad7614;
    border-radius: 7px;
    background: #ffffff;
    color: #79520d;
    font: inherit;
    font-weight: 800;
    cursor: pointer;
}

.remove-unavailable-favorites-button:hover {
    background: #fff1cc;
}

.remove-unavailable-favorites-button:disabled {
    cursor: wait;
    opacity: 0.65;
}

.icon-circle-button {
    width: 36px;
    height: 36px;
    border: none;
    border-radius: 50%;
    background: transparent;
    color: #1f2937;
    cursor: pointer;
}

.icon-circle-button:hover,
.user-dropdown-toggle:hover {
    background: #f2f4f7;
}

.user-dropdown {
    position: relative;
}

.user-dropdown-toggle {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 0;
    border: none;
    border-radius: 999px;
    background: transparent;
    cursor: pointer;
}

.user-avatar {
    position: relative;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 44px;
    height: 44px;
    border-radius: 50%;
    background: linear-gradient(180deg, #ffffff 0%, #f3f4f6 100%);
    border: 1px solid #1f2937;
    box-shadow: 0 8px 18px rgba(15, 23, 42, 0.08);
}

.user-plan-badge {
    position: absolute;
    top: -5px;
    left: -5px;
    z-index: 2;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 28px;
    height: 16px;
    padding: 0 6px;
    border: 2px solid #ffffff;
    border-radius: 999px;
    background: #cbd5e1;
    color: #475569;
    font-size: 0.52rem;
    font-weight: 800;
    line-height: 1;
    letter-spacing: 0.03em;
    text-transform: uppercase;
    box-shadow: 0 4px 10px rgba(100, 116, 139, 0.2);
}

.user-plan-badge.is-pro {
    background: linear-gradient(180deg, #fff5cf 0%, #ffd879 100%);
    color: #9a6a00;
    box-shadow: 0 6px 14px rgba(154, 106, 0, 0.18);
}

.user-avatar-icon-shell {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    height: 100%;
    color: #1f2937;
}

.user-avatar-icon {
    font-size: 1rem;
}

.user-avatar-initials {
    position: absolute;
    right: -2px;
    bottom: -2px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 18px;
    height: 18px;
    padding: 0 4px;
    border: 2px solid #ffffff;
    border-radius: 999px;
    background: #25bc74;
    color: #ffffff;
    font-family: 'Poppins', sans-serif;
    font-size: 0.58rem;
    font-weight: 700;
    line-height: 1;
}

.user-dropdown-menu {
    position: absolute;
    top: 54px;
    right: 0;
    min-width: 240px;
    background: #ffffff;
    border: 1px solid #dfe5ec;
    border-radius: 16px;
    box-shadow: var(--shadow-md);
    opacity: 0;
    transform: translateY(-10px);
    pointer-events: none;
    z-index: 50;
    transition: opacity 0.2s ease, transform 0.2s ease;
}

.user-dropdown-menu.show {
    opacity: 1;
    transform: translateY(0);
    pointer-events: auto;
}

.user-dropdown-menu ul {
    list-style: none;
    margin: 0;
    padding: 10px 0;
}

.user-dropdown-menu li {
    padding: 10px 16px;
    color: #374151;
    border-bottom: 1px solid #eef2f6;
}

.user-dropdown-menu li:last-child {
    border-bottom: none;
}

.user-dropdown-menu li a {
    display: flex;
    align-items: center;
    gap: 10px;
}

.user-dropdown-menu li a:hover {
    color: var(--EcocertGreen);
}

.user-dropdown-menu .sourcing-view-menu-item {
    padding: 0;
}

.sourcing-view-menu-button {
    display: flex;
    width: 100%;
    align-items: center;
    gap: 11px;
    border: 0;
    background: transparent;
    padding: 11px 16px;
    color: #374151;
    font: inherit;
    text-align: left;
    cursor: pointer;
}

.sourcing-view-menu-button:hover {
    background: #f5faf7;
    color: #168354;
}

.sourcing-exit-view-menu-button {
    color: #8a5e14;
}

.sourcing-view-menu-button > i:first-child {
    width: 16px;
    color: #25a96d;
    text-align: center;
}

.sourcing-view-menu-copy {
    display: grid;
    flex: 1;
    min-width: 0;
    gap: 2px;
}

.sourcing-view-menu-copy strong {
    font-size: 0.88rem;
    line-height: 1.2;
}

.sourcing-view-menu-copy small {
    overflow: hidden;
    color: #667085;
    font-size: 0.75rem;
    line-height: 1.25;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.sourcing-view-menu-chevron {
    color: #98a2b3;
    font-size: 0.72rem;
}

.sourcing-view-switch-popup {
    border-radius: 18px;
    padding: 26px;
}

.sourcing-view-switch-popup .swal2-title {
    padding: 0 32px;
    color: #25313a;
    font-size: 1.55rem;
}

.sourcing-view-switch-popup .swal2-html-container {
    margin: 8px 0 0;
    color: #667085;
    font-size: 0.9rem;
}

.sourcing-view-switch-intro {
    margin: 0;
}

.sourcing-view-choice-list {
    display: grid;
    width: 100%;
    box-sizing: border-box;
    gap: 9px;
    margin-top: 20px;
}

.sourcing-view-choice {
    display: flex;
    width: 100%;
    align-items: center;
    gap: 12px;
    border: 1px solid #dce3e8;
    border-radius: 12px;
    background: #fff;
    padding: 12px 14px;
    color: #344054;
    font: inherit;
    text-align: left;
    cursor: pointer;
    transition: border-color 0.15s ease, background 0.15s ease, transform 0.15s ease;
}

.sourcing-view-choice:hover {
    border-color: #75d2a5;
    background: #f5fcf8;
    transform: translateY(-1px);
}

.sourcing-view-choice.is-current {
    border-color: #75d2a5;
    background: #effaf4;
}

.sourcing-view-choice-icon {
    display: grid;
    width: 36px;
    height: 36px;
    flex: 0 0 36px;
    place-items: center;
    border-radius: 10px;
    background: #eaf8f1;
    color: #19925c;
}

.sourcing-view-choice-copy {
    display: grid;
    flex: 1;
    gap: 2px;
}

.sourcing-view-choice-copy strong {
    color: #27333c;
    font-size: 0.94rem;
}

.sourcing-view-choice-copy small {
    color: #667085;
    font-size: 0.78rem;
}

.sourcing-view-current-label {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    border-radius: 999px;
    background: #d9f4e6;
    padding: 4px 8px;
    color: #137a49;
    font-size: 0.7rem;
    font-weight: 700;
}

.sourcing-view-choice-chevron {
    color: #98a2b3;
    font-size: 0.72rem;
}

.sourcing-client-search-popup {
    border-radius: 18px;
    padding: 26px;
}

.sourcing-client-search-popup .swal2-title {
    color: #25313a;
    font-size: 1.55rem;
}

.sourcing-client-search-popup .swal2-html-container {
    margin: 16px 0 0;
    overflow: visible;
}

.sourcing-client-search {
    text-align: left;
}

.sourcing-client-search > label {
    display: block;
    margin-bottom: 7px;
    color: #344054;
    font-size: 0.82rem;
    font-weight: 700;
}

.sourcing-client-search-input-wrap {
    position: relative;
}

.sourcing-client-search-input-wrap > i {
    position: absolute;
    top: 50%;
    left: 13px;
    color: #98a2b3;
    transform: translateY(-50%);
}

.sourcing-client-search-input-wrap input {
    width: 100%;
    border: 1px solid #cfd8df;
    border-radius: 10px;
    padding: 11px 12px 11px 38px;
    color: #27333c;
    font: inherit;
    outline: none;
}

.sourcing-client-search-input-wrap input:focus {
    border-color: #48bd83;
    box-shadow: 0 0 0 3px rgba(37, 188, 116, 0.14);
}

.sourcing-client-search-results {
    display: grid;
    max-height: 300px;
    gap: 7px;
    margin-top: 10px;
    overflow-y: auto;
}

.sourcing-client-search-results > p {
    margin: 12px 4px;
    color: #667085;
    font-size: 0.82rem;
    text-align: center;
}

.sourcing-client-search-result {
    display: flex;
    width: 100%;
    align-items: center;
    gap: 10px;
    border: 1px solid #e0e6ea;
    border-radius: 10px;
    background: #fff;
    padding: 10px 12px;
    color: #344054;
    font: inherit;
    text-align: left;
    cursor: pointer;
}

.sourcing-client-search-result:hover {
    border-color: #75d2a5;
    background: #f5fcf8;
}

.sourcing-client-search-result-copy {
    display: grid;
    flex: 1;
    gap: 2px;
}

.sourcing-client-search-result-copy strong {
    color: #27333c;
    font-size: 0.88rem;
}

.sourcing-client-search-result-copy small {
    color: #667085;
    font-size: 0.74rem;
}

.sourcing-client-search-result > i {
    color: #98a2b3;
    font-size: 0.72rem;
}
.user-menu-upgrade-item a {
    justify-content: space-between;
    padding: 2px 0;
    color: #d75a6e;
    font-weight: 700;
}

.user-menu-upgrade-item a:hover {
    color: #c84e63;
}

.user-menu-upgrade-item a > i,
.user-menu-upgrade-item a > span:first-of-type {
    flex: 0 0 auto;
}

.user-menu-upgrade-item a > span:first-of-type {
    margin-right: auto;
}

.user-menu-upgrade-badge {
    display: inline-flex;
    align-items: center;
    min-height: 22px;
    padding: 0 8px;
    border-radius: 999px;
    background: #ffe7ea;
    color: #d75a6e;
    font-size: 0.72rem;
    font-weight: 800;
    letter-spacing: 0.04em;
    text-transform: uppercase;
}

.user-menu-upgrade-badge.is-active {
    background: #edf7f3;
    color: #209264;
}

.user-menu-account-badge {
    display: inline-flex;
    align-items: center;
    min-height: 22px;
    margin-left: 10px;
    padding: 0 8px;
    border-radius: 999px;
    background: #edf7f3;
    color: #209264;
    font-size: 0.72rem;
    font-weight: 800;
    letter-spacing: 0.04em;
    text-transform: uppercase;
}

.user-menu-account-badge.is-pro {
    background: #fff4d6;
    color: #9a6a00;
}

.user-menu-feedback-item {
    padding-top: 8px !important;
    padding-bottom: 8px !important;
}

.user-menu-feedback-item a {
    display: flex;
    align-items: center;
    gap: 10px;
    color: #1f2937;
    font-weight: 700;
}

.user-menu-feedback-item a > i {
    color: #25bc74;
    font-size: 0.95rem;
}

.user-menu-feedback-copy {
    display: inline-flex;
    align-items: center;
}

.user-menu-feedback-copy strong {
    font-size: 0.88rem;
    line-height: 1.2;
}

.sourcing-feedback-popup-overlay .popup {
    border-radius: 18px;
    border: 1px solid #dfe5ec;
    box-shadow: 0 22px 60px rgba(15, 23, 42, 0.28);
    padding: 14px;
}

.sourcing-feedback-popup-overlay .popup-header {
    margin-bottom: 12px;
    padding-bottom: 12px;
    border-bottom: 1px solid #e5ebf1;
}

.sourcing-feedback-popup-overlay .popup-header h2 {
    font-family: 'Poppins', sans-serif;
    font-size: 1.2rem;
    font-weight: 700;
    color: #1f2937;
}

.sourcing-feedback-popup-overlay .popup-close {
    margin-top: -8px;
    font-size: 2rem;
}

.sourcing-feedback-popup-overlay .popup-content {
    padding: 4px 6px 8px;
    overflow: hidden;
}

.sourcing-feedback-survey {
    display: flex;
    flex-direction: column;
    gap: 12px;
}

.sourcing-feedback-survey p {
    margin: 0;
    color: #5f6c7b;
    font-size: 0.95rem;
}

.sourcing-feedback-iframe-placeholder {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    padding: 10px 12px;
    border: 1px solid #dce5ed;
    border-radius: 10px;
    background: #f8fbfd;
    color: #4b5563;
    font-size: 0.9rem;
    font-weight: 600;
}

.sourcing-feedback-spinner {
    width: 16px;
    height: 16px;
    border: 2px solid #d8e0e8;
    border-top-color: #25bc74;
    border-radius: 50%;
    animation: sourcing-feedback-spin 0.9s linear infinite;
}

.sourcing-feedback-iframe {
    width: 100%;
    min-height: 355px;
    border: 1px solid #dce5ed;
    border-radius: 14px;
    background: #ffffff;
    display: none;
}

.sourcing-feedback-iframe.is-ready {
    display: block;
}

@keyframes sourcing-feedback-spin {
    from {
        transform: rotate(0deg);
    }

    to {
        transform: rotate(360deg);
    }
}

@media (max-width: 768px) {
    .sourcing-feedback-popup-overlay .popup {
        width: 95vw;
        padding: 14px;
    }

    .sourcing-feedback-iframe {
        min-height: 355px;
    }
}
.sourcing-dashboard {
    display: grid;
    grid-template-columns: 280px minmax(0, 1fr);
    gap: 20px;
    padding: 20px;
}

.sourcing-filters-panel {
    background: #ffffff;
    border: 1px solid #e3e8ee;
    border-radius: 18px;
    padding: 14px 0;
    box-shadow: 0 6px 20px rgba(15, 23, 42, 0.04);
    align-self: start;
    position: sticky;
    top: 18px;
}

.filter-summary-shell {
    margin: 0 14px 14px;
    padding: 14px;
    border-radius: 18px;
    background: linear-gradient(180deg, #fbfcfd 0%, #f5f7fa 100%);
    border: 1px solid #e7edf3;
}

.filter-summary-empty {
    display: flex;
    align-items: center;
    gap: 10px;
    min-height: 40px;
}

.filter-summary-empty-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 30px;
    height: 30px;
    border-radius: 10px;
    background: #ffffff;
    color: #7b8794;
}

.filter-summary-empty-copy {
    color: #5f6c7b;
    font-size: 0.9rem;
    font-weight: 700;
}

.filter-summary-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    margin-bottom: 10px;
}

.filter-summary-count {
    color: #374151;
    font-size: 0.85rem;
    font-weight: 800;
    letter-spacing: 0.04em;
    text-transform: uppercase;
}

.filter-summary-reset {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 6px;
    min-height: 32px;
    padding: 0 10px;
    border: 1px solid #f2b8bd;
    border-radius: 10px;
    background: #fff1f2;
    color: #b52d38;
    font-size: 0.8rem;
    font-weight: 700;
    white-space: nowrap;
    cursor: pointer;
    transition: var(--transition);
}

.filter-summary-reset-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 14px;
    height: 14px;
    font-size: 1rem;
    font-weight: 800;
    line-height: 1;
}

.filter-summary-reset:hover {
    border-color: #df8f97;
    background: #ffe4e6;
    color: #95232c;
}

.filter-summary-pill-list {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
}

.filter-summary-pill {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    min-height: 28px;
    max-width: 100%;
    padding: 0 8px;
    border: 1px solid #dbe4ec;
    border-radius: 999px;
    background: #ffffff;
    color: #374151;
    font-size: 0.76rem;
    font-weight: 700;
    cursor: pointer;
    transition: var(--transition);
}

.filter-summary-pill span {
    display: inline-block;
    min-width: 0;
    max-width: 190px;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.filter-summary-pill:hover {
    border-color: #c6d4df;
    background: #f9fbfc;
}

.filter-summary-pill i {
    color: #94a3b8;
    font-size: 0.68rem;
}

.filter-group {
    border-top: 1px solid #edf1f5;
    padding: 16px 14px 0;
}

.filter-group:first-of-type {
    border-top: none;
}

.filter-group-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    width: 100%;
    padding: 0 0 14px;
    border: none;
    background: transparent;
    color: #252f3f;
    font-weight: 800;
    font-size: 0.98rem;
    letter-spacing: 0.02em;
    text-align: left;
    cursor: pointer;
}

.filter-group-header span {
    flex: 1;
    min-width: 0;
    text-align: left;
}

.filter-group-header span.filter-header-label-compact {
    font-size: 0.88rem;
    letter-spacing: 0;
}

.filter-group-header span.filter-header-label-tight {
    font-size: 0.8rem;
    overflow-wrap: anywhere;
}

.filter-group-header i {
    flex: 0 0 auto;
    margin-left: 12px;
    font-size: 0.82rem;
}

.filter-group-body {
    display: flex;
    flex-direction: column;
    gap: 8px;
    max-height: 250px;
    overflow: auto;
    overflow-x: hidden;
    scrollbar-gutter: stable;
    padding-right: 18px;
    padding-bottom: 16px;
}

.filter-group-body.is-collapsed {
    display: none;
}

.filter-option {
    display: flex;
    align-items: flex-start;
    gap: 10px;
    color: #252f3f;
    font-weight: 600;
}

.filter-option input {
    appearance: none;
    -webkit-appearance: none;
    flex: 0 0 18px;
    width: 18px;
    min-width: 18px;
    max-width: 18px;
    height: 18px;
    margin: 0;
    margin-top: 2px;
    border: 1px solid #bfc9d4;
    border-radius: 4px;
    background: #ffffff;
    cursor: pointer;
    transition: var(--transition);
}

.filter-option-label {
    display: block;
    flex: 1 1 auto;
    min-width: 0;
    font-size: 0.84rem;
    line-height: 1.3;
    overflow-wrap: anywhere;
    word-break: break-word;
}

.filter-option-label-supplier {
    display: -webkit-box;
    overflow: hidden;
    text-overflow: ellipsis;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    line-height: 1.25;
}

.filter-option-missing {
    margin-bottom: 4px;
    padding-bottom: 10px;
    border-bottom: 1px solid #dce5e1;
}

.filter-option-missing > .filter-option-info-button {
    flex: 0 0 18px;
    margin-top: 2px;
}

.filter-planned-indicators {
    display: flex;
    flex-direction: column;
    gap: 10px;
    margin-top: 14px;
    padding-top: 12px;
    border-top: 1px solid #dce5e1;
}

.filter-planned-indicators-heading {
    color: #687689;
    font-size: 0.75rem;
    font-weight: 800;
    letter-spacing: 0.04em;
    text-transform: uppercase;
}

.filter-option-planned {
    color: #7b8794;
    cursor: default;
}

.filter-option-planned input {
    background: #f1f4f3;
    cursor: default;
}

.filter-option input:checked {
    border-color: var(--EcocertGreen);
    background-color: var(--EcocertGreen);
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M3.4 8.2l2.7 2.7L12.6 4.6' fill='none' stroke='%23ffffff' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
    background-repeat: no-repeat;
    background-position: center;
    background-size: 14px 14px;
}

.filter-option input:focus-visible {
    outline: none;
    box-shadow: 0 0 0 3px rgba(37, 188, 116, 0.18);
}

.filter-loading-skeleton {
    display: flex;
    flex-direction: column;
    gap: 10px;
}

.filter-loading-row {
    display: flex;
    align-items: center;
    gap: 10px;
}

.filter-loading-check,
.filter-loading-line {
    display: inline-block;
    background: linear-gradient(90deg, #ebf1f5 0%, #f8fbfc 45%, #ebf1f5 100%);
    background-size: 220% 100%;
    animation: sourcing-skeleton-shimmer 1.15s ease-in-out infinite;
}

.filter-loading-check {
    width: 18px;
    height: 18px;
    border-radius: 5px;
    border: 1px solid #d5e0e8;
}

.filter-loading-line {
    height: 12px;
    border-radius: 999px;
}

.filter-options-error {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 10px;
    color: #5f6c7b;
    font-size: 0.95rem;
    line-height: 1.35;
}

.filter-options-retry {
    border: 1px solid #c8d4df;
    background: #ffffff;
    color: #25354a;
    border-radius: 10px;
    padding: 6px 12px;
    font-weight: 700;
    font-size: 0.84rem;
    cursor: pointer;
}

.filter-options-retry:hover {
    border-color: #9fb4c8;
}

.filter-options-selected-block {
    display: flex;
    flex-direction: column;
    gap: 10px;
    padding-bottom: 10px;
    margin-bottom: 8px;
    border-bottom: 1px solid #e4ebf1;
}

.filter-options-loading-status {
    color: #5f6c7b;
    font-size: 0.85rem;
    font-weight: 700;
    letter-spacing: 0.01em;
}

.filter-options-refreshing-status {
    display: flex;
    align-items: center;
    gap: 7px;
    min-height: 24px;
    margin: 0 0 7px;
    padding: 4px 8px;
    border-radius: 6px;
    background: linear-gradient(100deg, #edf3f1 25%, #f8fbfa 45%, #edf3f1 65%);
    background-size: 220% 100%;
    animation: sourcing-skeleton-shimmer 1.15s ease-in-out infinite;
}

.filter-options-refreshing-indicator {
    width: 7px;
    height: 7px;
    flex: 0 0 7px;
    border-radius: 50%;
    background: var(--EcocertGreen);
}

.filter-options-search-wrap {
    margin: 0 0 10px;
}

.filter-group-body[data-filter-body='supplier'] .filter-options-search-wrap {
    position: sticky;
    top: 0;
    z-index: 3;
    margin: 0 0 12px;
    padding: 0 0 10px;
    background: linear-gradient(180deg, #f5f7f9 0%, #f5f7f9 82%, rgba(245, 247, 249, 0) 100%);
}

.filter-options-search-input {
    width: 100%;
    min-height: 38px;
    padding: 8px 12px;
    box-sizing: border-box;
    border: 1px solid #c8d4df;
    border-radius: 10px;
    background: #ffffff;
    color: #25354a;
    font-size: 0.91rem;
    font-weight: 500;
    line-height: 1.3;
    transition: border-color 0.18s ease, box-shadow 0.18s ease;
}

.filter-options-search-input::placeholder {
    color: #738397;
    font-weight: 500;
}

.filter-options-search-input:focus-visible {
    outline: none;
    border-color: #4a8f75;
    box-shadow: 0 0 0 3px rgba(74, 143, 117, 0.15);
}

.filter-option.is-selected .filter-option-label {
    color: #1e3a35;
    font-weight: 700;
}

.sourcing-main-panel {
    min-width: 0;
}

.sourcing-results-shell {
    position: relative;
}

.sourcing-skeleton-row td {
    padding-top: 14px;
    padding-bottom: 14px;
}

.sourcing-skeleton-line,
.sourcing-skeleton-circle,
.sourcing-skeleton-chip {
    display: inline-block;
    background: linear-gradient(90deg, #edf2f6 0%, #f7fafc 45%, #edf2f6 100%);
    background-size: 220% 100%;
    animation: sourcing-skeleton-shimmer 1.25s ease-in-out infinite;
}

.sourcing-skeleton-line {
    height: 12px;
    border-radius: 8px;
}

.sourcing-skeleton-circle {
    width: 16px;
    height: 16px;
    border-radius: 50%;
}

.sourcing-skeleton-chip-row {
    display: inline-flex;
    align-items: center;
    gap: 8px;
}

.sourcing-skeleton-chip {
    width: 68px;
    height: 20px;
    border-radius: 999px;
}

.sourcing-skeleton-card {
    border: 1px solid #e4ebf0;
    box-shadow: none;
}

@keyframes sourcing-skeleton-shimmer {
    0% {
        background-position: 100% 0;
    }

    100% {
        background-position: -100% 0;
    }
}

.pro-modal-overlay {
    position: fixed;
    inset: 0;
    z-index: 205;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 24px;
}

.pro-modal-backdrop {
    position: absolute;
    inset: 0;
    background:
        linear-gradient(180deg, rgba(255, 255, 255, 0.72) 0%, rgba(243, 246, 247, 0.88) 100%),
        linear-gradient(135deg, rgba(255, 255, 255, 0.3) 0%, rgba(55, 65, 81, 0.12) 100%),
        url('../images/landing-page-hero.png') center 42%/cover no-repeat;
    backdrop-filter: blur(14px);
}

.pro-modal-panel {
    position: relative;
    width: min(1120px, calc(100vw - 48px));
    max-height: calc(100vh - 32px);
    border-radius: 30px;
    overflow: hidden;
    background: rgba(255, 255, 255, 0.86);
    box-shadow: 0 30px 90px rgba(15, 23, 42, 0.2);
    backdrop-filter: blur(20px);
}

.pro-modal-close {
    position: absolute;
    top: 18px;
    right: 18px;
    z-index: 2;
    width: 42px;
    height: 42px;
    border: none;
    border-radius: 50%;
    background: rgba(255, 255, 255, 0.85);
    color: #6b7280;
    font-size: 1.6rem;
    cursor: pointer;
    box-shadow: 0 8px 22px rgba(15, 23, 42, 0.1);
}

.pro-modal-content {
    position: relative;
    z-index: 1;
    max-height: calc(100vh - 32px);
    overflow: auto;
    scrollbar-gutter: stable;
    margin: 10px 10px 10px 0;
    padding: 24px 24px 20px;
}

.pro-modal-header {
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
}

.pro-modal-eyebrow {
    margin-bottom: 8px;
    color: #e96c76;
    font-size: 0.74rem;
    font-weight: 800;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

.pro-modal-header h2 {
    margin: 0 0 6px;
    font-family: 'Poppins', sans-serif;
    font-size: clamp(1.55rem, 2.1vw, 2.25rem);
    line-height: 1.06;
}

.pro-modal-intro {
    max-width: 640px;
    margin: 0;
    color: #5f6c7b;
    font-size: 0.88rem;
    line-height: 1.45;
}

.pro-billing-toggle {
    display: flex;
    width: fit-content;
    align-items: center;
    gap: 6px;
    margin: 14px auto 18px;
    padding: 5px;
    border: 1px solid rgba(216, 222, 230, 0.92);
    border-radius: 18px;
    background: rgba(255, 255, 255, 0.86);
    box-shadow: 0 10px 24px rgba(15, 23, 42, 0.08);
}

.pro-billing-button {
    min-width: 118px;
    min-height: 40px;
    padding: 0 16px;
    border: none;
    border-radius: 14px;
    background: transparent;
    color: #4b5563;
    font-weight: 700;
    cursor: pointer;
    transition: var(--transition);
}

.pro-billing-button.is-active {
    background: #ffffff;
    color: #e96c76;
    box-shadow: 0 8px 22px rgba(15, 23, 42, 0.08);
}

.pro-plan-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 26px;
    align-items: stretch;
}

.pro-plan-card {
    position: relative;
    min-width: 0;
    padding: 24px 26px 22px;
    border: 1px solid rgba(217, 224, 232, 0.94);
    border-radius: 26px;
    background: rgba(255, 255, 255, 0.95);
    box-shadow: 0 18px 44px rgba(15, 23, 42, 0.08);
}

.pro-plan-label {
    color: #1f2937;
    font-family: 'Poppins', sans-serif;
    font-size: 1.05rem;
    font-weight: 700;
}

.pro-plan-price-row {
    margin-top: 12px;
}

.pro-plan-price {
    display: inline-block;
    font-family: 'Poppins', sans-serif;
    font-size: clamp(2.7rem, 5vw, 4rem);
    line-height: 1;
    font-weight: 600;
    letter-spacing: -0.03em;
}

.pro-plan-subcopy {
    margin-top: 6px;
    color: #5f6c7b;
    font-size: 0.92rem;
}

.pro-plan-section-title {
    margin-top: 22px;
    color: #1f2937;
    font-family: 'Poppins', sans-serif;
    font-size: 1.45rem;
    line-height: 1.15;
}

.pro-feature-list {
    margin: 14px 0 0;
    padding: 0;
    list-style: none;
    display: flex;
    flex-direction: column;
    gap: 10px;
}

.pro-feature-list li {
    display: flex;
    align-items: flex-start;
    gap: 12px;
    color: #334155;
    line-height: 1.55;
}

.pro-feature-list .fa-circle-check {
    margin-top: 2px;
    color: #6fc8b5;
}

.pro-acceptance-box {
    margin-top: 16px;
    padding: 12px 14px;
    border: 1px solid #f2ccd3;
    border-radius: 18px;
    background: linear-gradient(180deg, #fff8f9 0%, #fff2f4 100%);
}

.pro-acceptance-toggle {
    display: flex;
    align-items: flex-start;
    gap: 12px;
    color: #374151;
    line-height: 1.55;
    cursor: pointer;
}

.pro-acceptance-toggle input {
    width: 18px;
    height: 18px;
    margin-top: 2px;
    accent-color: #e96c76;
    flex: 0 0 auto;
}

.pro-plan-secondary-button,
.pro-plan-primary-button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    min-height: 46px;
    margin-top: 18px;
    padding: 0 20px;
    border-radius: 16px;
    font-weight: 700;
    cursor: pointer;
    transition: transform 0.2s ease, box-shadow 0.2s ease, background 0.2s ease;
}

.pro-plan-secondary-button {
    border: 1px solid #d7dde5;
    background: #ffffff;
    color: #374151;
}

.pro-plan-primary-button {
    border: none;
    background: linear-gradient(135deg, #ef7b83 0%, #e96c76 100%);
    color: #ffffff;
    box-shadow: 0 16px 34px rgba(233, 108, 118, 0.24);
}

.pro-plan-primary-button:disabled {
    opacity: 0.52;
    cursor: not-allowed;
    transform: none;
    box-shadow: none;
}

.pro-plan-primary-button:disabled:hover {
    transform: none;
}

.pro-plan-secondary-button:hover,
.pro-plan-primary-button:hover {
    transform: translateY(-1px);
}

.metric-row {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 18px;
    margin-bottom: 18px;
}

.metric-card {
    display: flex;
    align-items: center;
    gap: 14px;
    min-height: 78px;
    padding: 16px 18px;
    background: #ffffff;
    border: 1px solid #dde5ec;
    border-radius: 16px;
}

.metric-icon {
    width: 40px;
    height: 40px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
}

.metric-icon img {
    width: 40px;
    height: 40px;
    display: block;
}

.metric-copy strong {
    display: block;
    font-family: 'Poppins', sans-serif;
    font-size: 1.75rem;
    font-variant-numeric: tabular-nums;
    line-height: 1;
}

.metric-copy strong.is-loading {
    width: 76px;
    height: 1.75rem;
    border-radius: 6px;
    color: transparent;
    background: linear-gradient(100deg, #e8edf1 25%, #f8fafb 45%, #e8edf1 65%);
    background-size: 220% 100%;
    animation: sourcing-metric-shimmer 1.2s ease-in-out infinite;
}

@keyframes sourcing-metric-shimmer {
    from {
        background-position: 100% 0;
    }

    to {
        background-position: -120% 0;
    }
}

@media (prefers-reduced-motion: reduce) {
    .metric-copy strong.is-loading,
    .filter-options-refreshing-status {
        animation: none;
    }
}

.metric-copy span {
    display: block;
    margin-top: 6px;
    color: #5f6c7b;
    font-size: 0.96rem;
}

.sourcing-toolbar {
    display: flex;
    align-items: center;
    justify-content: flex-start;
    flex-wrap: wrap;
    gap: 18px;
    margin-bottom: 18px;
}

.search-shell {
    position: relative;
    flex: 1;
    min-width: 280px;
    max-width: 640px;
}

.search-input {
    width: 100%;
    min-height: 52px;
    padding: 0 62px 0 22px;
    border: 1px solid #d7dde5;
    border-radius: 28px;
    background: #ffffff;
    color: #1f2937;
    font-size: 1rem;
}

.search-input:focus {
    outline: none;
    border-color: #9ccfb9;
    box-shadow: 0 0 0 4px rgba(37, 188, 116, 0.1);
}

.search-button {
    position: absolute;
    top: 50%;
    right: 8px;
    transform: translateY(-50%);
    width: 38px;
    height: 38px;
    border: none;
    border-radius: 50%;
    background: transparent;
    color: #7b8794;
}

.view-toggle-group {
    display: inline-flex;
    gap: 10px;
}
.sourcing-quick-filter-button {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    min-height: 42px;
    padding: 0 16px;
    border: 1px solid #d7dde5;
    border-radius: 14px;
    background: #ffffff;
    color: #252f3f;
    font-weight: 700;
    cursor: pointer;
    transition: var(--transition);
}
.sourcing-quick-filter-button:not(.is-active):hover {
    border-color: #cbd8cf;
    background: #f8fbfa;
}
.favorites-filter-button i {
    color: #d9a441;
}
.favorites-filter-button:not(.is-active):hover {
    border-color: #ead8aa;
    background: #fffaf1;
}
.favorites-filter-button.is-active {
    border-color: #d9a441;
    background: linear-gradient(180deg, #fff7dc 0%, #ffedb5 100%);
    color: #725715;
    box-shadow: 0 10px 22px rgba(114, 87, 21, 0.14);
}
.favorites-filter-button.is-active i {
    color: #d9a441;
}
.sourcing-quick-filter-count {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 24px;
    height: 24px;
    padding: 0 8px;
    border-radius: 999px;
    background: #f3f4f6;
    color: #4b5563;
    font-size: 0.78rem;
    font-weight: 800;
}
.sourcing-quick-filter-button.is-active .sourcing-quick-filter-count {
    background: #ffffff;
}
.sourcing-quick-filter-remove {
    display: none;
    align-items: center;
    justify-content: center;
    width: 14px;
    height: 14px;
    font-size: 1rem;
    font-weight: 800;
    line-height: 1;
}
.sourcing-quick-filter-button.is-active .sourcing-quick-filter-remove {
    display: inline-flex;
}
.favorites-filter-button.is-active .sourcing-quick-filter-count {
    color: #725715;
}
.new-ingredients-filter-button i {
    color: #268e71;
}
.new-ingredients-filter-button:not(.is-active):hover {
    border-color: #9dd9c4;
    background: #eefaf5;
    color: #137a5b;
}
.new-ingredients-filter-button.is-active {
    border-color: #268e71;
    background: linear-gradient(180deg, #e4f8f1 0%, #cff1e5 100%);
    color: #0d684e;
}
.new-ingredients-filter-button.is-active .sourcing-quick-filter-count {
    color: #0d684e;
}
.my-ingredients-filter-button i {
    color: #25a967;
}
.my-ingredients-filter-button:not(.is-active):hover {
    border-color: #9eddbd;
    background: #f0fbf5;
    color: #137a49;
}
.my-ingredients-filter-button.is-active {
    border-color: #25bc74;
    background: linear-gradient(180deg, #e1f8ec 0%, #c9f0dc 100%);
    color: #0d663c;
}
.my-ingredients-filter-button.is-active .sourcing-quick-filter-count {
    color: #0d663c;
}
.view-toggle-button {
    width: 42px;
    height: 42px;
    border: none;
    border-radius: 50%;
    background: #f0f2f4;
    color: #4b5563;
    cursor: pointer;
}

.view-toggle-button.is-active,
.view-toggle-button:hover {
    background: #e5e7eb;
    color: #111827;
}

.sourcing-table-shell {
    overflow-x: auto;
    overflow-y: hidden;
    background: #ffffff;
    border: 1px solid #dde5ec;
    border-radius: 14px;
    box-shadow: 0 10px 26px rgba(15, 23, 42, 0.05);
}

.ingredient-card-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
    gap: 18px;
}

.ingredient-card {
    display: flex;
    flex-direction: column;
    min-height: 0;
    overflow: hidden;
    border: 1px solid #dde5ec;
    border-radius: 20px;
    background: #ffffff;
    box-shadow: 0 10px 26px rgba(15, 23, 42, 0.05);
    cursor: pointer;
    transition: transform 0.2s ease, box-shadow 0.2s ease, border-color 0.2s ease;
}

.ingredient-card:hover,
.ingredient-card:focus {
    border-color: #cde6d8;
    box-shadow: 0 16px 34px rgba(15, 23, 42, 0.08);
    transform: translateY(-2px);
    outline: none;
}

.ingredient-card-media {
    position: relative;
    aspect-ratio: 16 / 9;
    display: flex;
    align-items: center;
    justify-content: center;
    background: linear-gradient(135deg, #f3f7f5 0%, #e9f1ed 100%);
    overflow: hidden;
}

.ingredient-card-favorite {
    position: absolute;
    top: 14px;
    right: 14px;
    z-index: 1;
}

.ingredient-card-picto-shell {
    width: 88px;
    height: 88px;
    border-radius: 22px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border: 1px solid rgba(255, 255, 255, 0.8);
    box-shadow: 0 14px 32px rgba(15, 23, 42, 0.12);
}

.ingredient-card-picto-shell.theme-mint {
    background: linear-gradient(145deg, #dff6ef 0%, #c9eee1 100%);
    color: #208f67;
}

.ingredient-card-picto-shell.theme-amber {
    background: linear-gradient(145deg, #fdebd8 0%, #f7dbbc 100%);
    color: #c0822e;
}

.ingredient-card-picto-shell.theme-blue {
    background: linear-gradient(145deg, #dfe8ff 0%, #cfdcff 100%);
    color: #476fc8;
}

.ingredient-card-picto-shell.theme-violet {
    background: linear-gradient(145deg, #f0e2f8 0%, #e8d5f4 100%);
    color: #8e60a4;
}

.ingredient-card-picto {
    font-size: 2rem;
    line-height: 1;
}

.ingredient-card-quote-tile {
    cursor: default;
    min-height: 240px;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 24px;
    padding: 28px;
    text-align: center;
    background: linear-gradient(160deg, #58b3a6 0%, #4faea1 100%);
    border-color: #58b3a6;
}

.ingredient-card-quote-tile:hover,
.ingredient-card-quote-tile:focus {
    transform: none;
    border-color: #58b3a6;
    box-shadow: 0 10px 26px rgba(15, 23, 42, 0.08);
}

.ingredient-card-quote-title {
    width: 100%;
    max-width: 260px;
    margin: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-wrap: wrap;
    column-gap: 6px;
    color: #ffffff;
    font-family: 'Poppins', sans-serif;
    font-size: 1.75rem;
    line-height: 1.25;
    font-weight: 500;
}

.ingredient-card-quote-button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 46px;
    padding: 0 22px;
    border-radius: 14px;
    border: 1px solid #d3efea;
    background: #ffffff;
    color: #4faea1;
    font-size: 0.98rem;
    font-weight: 700;
    text-decoration: none;
    transition: transform 0.2s ease, box-shadow 0.2s ease, background-color 0.2s ease;
}

.ingredient-card-quote-button:hover,
.ingredient-card-quote-button:focus-visible {
    background: #f7fffd;
    box-shadow: 0 8px 20px rgba(15, 23, 42, 0.16);
    transform: translateY(-1px);
    outline: none;
}

.ingredient-card-body {
    display: flex;
    flex: 1 1 auto;
    flex-direction: column;
    gap: 16px;
    padding: 18px 18px 20px;
}

.ingredient-card-compact {
    border-radius: 14px;
}

.ingredient-card-body-compact {
    gap: 10px;
    padding: 14px 16px 16px;
}

.ingredient-card-compact-top {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
}

.ingredient-card-origin {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    color: #8b95a1;
    font-size: 0.88rem;
    font-weight: 600;
    line-height: 1;
}

.ingredient-card-mini-picto-shell {
    width: 24px;
    height: 24px;
    border-radius: 8px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
}

.ingredient-card-mini-picto-shell.theme-mint {
    background: #e4f6f0;
    color: #208f67;
}

.ingredient-card-mini-picto-shell.theme-amber {
    background: #fdebd8;
    color: #c0822e;
}

.ingredient-card-mini-picto-shell.theme-blue {
    background: #e4ebfd;
    color: #476fc8;
}

.ingredient-card-mini-picto-shell.theme-violet {
    background: #f0e2f8;
    color: #8e60a4;
}

.ingredient-card-mini-picto {
    font-size: 0.78rem;
}

.ingredient-card-favorite-inline {
    display: inline-flex;
    align-items: center;
}

.ingredient-card-header {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 14px;
}

.ingredient-card-title-wrap {
    min-width: 0;
}

.ingredient-card-title {
    margin: 0;
    color: #1f2937;
    font-family: 'Poppins', sans-serif;
    font-size: 1.05rem;
    line-height: 1.3;
}

.ingredient-card-subtitle {
    margin-top: 2px;
    color: #5f6c7b;
    font-size: 0.96rem;
    line-height: 1.35;
}

.ingredient-card-inci {
    margin-top: 2px;
    color: #4b5563;
    font-size: 0.95rem;
    line-height: 1.35;
}

.ingredient-card-verified {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    flex-shrink: 0;
    padding: 8px 12px;
    border-radius: 999px;
    background: #ecf8f2;
    color: #209264;
    font-size: 0.82rem;
    font-weight: 700;
}

.ingredient-card-meta {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 12px;
}

.ingredient-card-meta-row {
    display: flex;
    flex-direction: column;
    gap: 6px;
    padding: 12px 14px;
    border-radius: 14px;
    background: #f8fafb;
}

.ingredient-card-meta-label,
.ingredient-card-section-label {
    color: #6b7280;
    font-size: 0.76rem;
    font-weight: 700;
    letter-spacing: 0.04em;
    text-transform: uppercase;
}

.ingredient-card-meta-row strong,
.ingredient-card-text {
    color: #252f3f;
    font-size: 0.95rem;
    line-height: 1.5;
}

.ingredient-card-section {
    display: flex;
    flex-direction: column;
    gap: 10px;
}

.ingredient-card-chip-row,
.ingredient-card-certifications {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 8px;
}

.ingredient-card-chip-row-functions,
.ingredient-card-chip-row-indicators {
    gap: 6px;
}

.ingredient-card-section-split {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 16px;
}

.empty-state-card {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 10px;
    padding: 48px 20px;
    border: 1px solid #dde5ec;
    border-radius: 18px;
    background: #ffffff;
    box-shadow: 0 10px 26px rgba(15, 23, 42, 0.05);
    text-align: center;
}

.empty-state-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 52px;
    height: 52px;
    border-radius: 50%;
    background: #ecf8f2;
    color: var(--EcocertGreen);
    font-size: 1.15rem;
}

.empty-state-title {
    color: #1f2937;
    font-family: 'Poppins', sans-serif;
    font-size: 1.1rem;
    font-weight: 700;
}

.empty-state-text {
    max-width: 420px;
    color: #6b7280;
    line-height: 1.6;
}

.sourcing-table {
    width: 100%;
    border-collapse: collapse;
    min-width: 980px;
}

.sourcing-table th,
.sourcing-table td {
    padding: 16px 14px;
    text-align: left;
    vertical-align: top;
}

.sourcing-table th {
    background: #f4f4f5;
    color: #252f3f;
    font-family: 'Poppins', sans-serif;
    font-size: 0.98rem;
    font-weight: 600;
    white-space: nowrap;
}

.table-head-label {
    vertical-align: middle;
}

.table-indicator-header {
    display: flex;
    flex-direction: column;
    align-items: stretch;
    gap: 4px;
    min-width: 0;
}

.sourcing-table th.table-indicator-column-header {
    padding-bottom: 3px;
    vertical-align: top;
}

.table-indicator-header .table-verified-badge {
    align-self: flex-start;
}

.table-sort-button {
    display: inline-flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    width: 100%;
    padding: 0;
    border: none;
    background: transparent;
    color: inherit;
    font: inherit;
    text-align: left;
    cursor: pointer;
}

.table-sort-button:hover {
    color: #111827;
}

.table-sort-button.is-active {
    color: #1f2937;
}

.table-sort-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 22px;
    color: #7b8794;
    font-size: 0.85rem;
    transition: color 0.2s ease;
}

.table-sort-button.is-active .table-sort-icon {
    color: var(--EcocertGreen);
}

.sourcing-table td {
    color: #374151;
    border-top: 1px solid #eceff3;
    line-height: 1.45;
}

.table-favorite-header {
    width: 20px;
    min-width: 20px;
    text-align: center;
    padding-left: 9px !important;
    padding-right: 2px !important;
}
.table-favorite-header i {
    color: #d9a441;
    font-size: 0.9rem;
}
.table-favorite-cell {
    width: 20px;
    min-width: 20px;
    text-align: center;
    vertical-align: middle;
    padding-left: 9px !important;
    padding-right: 2px !important;
}
.favorite-toggle-button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 6px;
    min-height: 32px;
    padding: 0 10px;
    border: 1px solid transparent;
    border-radius: 10px;
    background: #ffffff;
    color: #7b8794;
    font-weight: 700;
    cursor: pointer;
    transition: var(--transition);
    font-size: 0.82rem;
}
.favorite-toggle-button i {
    color: #cbd5e1;
    transition: inherit;
    font-size: 0.78rem;
}
.favorite-toggle-button:hover {
    color: #9a7b2f;
}
.favorite-toggle-button:hover i,
.favorite-toggle-button.is-favorite i {
    color: #e0a92f;
}
.favorite-toggle-button.is-favorite {
    color: #9a7b2f;
}
.favorite-toggle-button-table,
.favorite-toggle-button-card {
    width: 14px;
    min-width: 14px;
    height: 14px;
    min-height: 14px;
    padding: 0;
    border: none;
    border-radius: 0;
    background: transparent;
    box-shadow: none;
}
.favorite-toggle-button-card {
    backdrop-filter: none;
}
.favorite-toggle-button-table {
    padding-left: 9px;
}
.favorite-toggle-button-detail {
    min-width: 144px;
    min-height: 34px;
    padding: 0 12px;
    justify-content: flex-start;
}

.ingredient-detail-action-button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 7px;
    min-height: 34px;
    padding: 0 12px;
    border: 1px solid #d7dde5;
    border-radius: 10px;
    background: #ffffff;
    color: #374151;
    font-size: 0.82rem;
    font-weight: 700;
    cursor: pointer;
}

.ingredient-detail-action-button:hover {
    border-color: #93dfcc;
    background: #f1fbf8;
    color: #267f68;
}
.favorite-toggle-button-table i,
.favorite-toggle-button-card i {
    font-size: 0.9rem;
}
.sourcing-table-row {
    cursor: pointer;
    transition: background-color 0.2s ease;
}
.sourcing-table-row.is-favorite {
    background: linear-gradient(90deg, rgba(255, 250, 239, 0.92) 0%, rgba(255, 255, 255, 0) 30%);
}
.sourcing-table-row:focus {
    outline: none;
    background: #f4faf7;
}

.sourcing-table tbody tr:hover {
    background: #fbfcfd;
}

.sourcing-table tbody tr.sourcing-table-quote-row:hover {
    background: transparent;
}

.sourcing-table-quote-row td {
    padding: 12px 14px;
}

.sourcing-table-quote-shell {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 20px;
    padding: 18px 20px;
    border-radius: 12px;
    background: linear-gradient(90deg, #4fb299 0%, #5dbfb2 100%);
    color: #ffffff;
}

.sourcing-table-quote-copy strong {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    column-gap: 5px;
    margin-bottom: 4px;
    font-size: 1.05rem;
}

.sourcing-table-quote-copy span {
    display: block;
}

.ingredient-card-quote-title .sourcing-quote-brand,
.sourcing-table-quote-copy .sourcing-quote-brand {
    display: inline-flex;
    align-items: center;
    gap: 5px;
}

.sourcing-table-quote-copy .sourcing-quote-brand {
    white-space: nowrap;
}

.ingredient-card-quote-title .sourcing-quote-brand {
    max-width: 100%;
    justify-content: center;
    white-space: normal;
}

.sourcing-quote-brand-icon {
    width: 22px;
    height: auto;
    flex: 0 0 auto;
}

.ingredient-card-quote-title .sourcing-quote-brand-icon {
    width: 30px;
}

.sourcing-table-quote-button {
    flex-shrink: 0;
}

.table-pagination {
    display: flex;
    align-items: center;
    justify-content: space-between;
    flex-wrap: wrap;
    gap: 16px;
    padding: 16px 4px 4px;
}

.pagination-summary {
    color: #5f6c7b;
    font-size: 0.95rem;
    font-weight: 600;
}

.sourcing-preview-disclaimer {
    display: flex;
    align-items: baseline;
    flex-wrap: wrap;
    gap: 4px;
    margin: 10px 4px 0;
    color: #667085;
    font-size: 0.78rem;
    line-height: 1.45;
}

.sourcing-preview-disclaimer[hidden] {
    display: none;
}

.sourcing-preview-disclaimer button {
    border: 0;
    background: transparent;
    padding: 0;
    color: #087a5f;
    font: inherit;
    font-weight: 700;
    text-decoration: underline;
    text-underline-offset: 2px;
    cursor: pointer;
}

.sourcing-preview-disclaimer button:hover,
.sourcing-preview-disclaimer button:focus-visible {
    color: #065f4b;
}

.pagination-actions {
    display: inline-flex;
    align-items: center;
    flex-wrap: wrap;
    justify-content: flex-end;
    gap: 16px;
    margin-left: auto;
}

.page-size-control {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    color: #5f6c7b;
    font-size: 0.92rem;
    font-weight: 700;
}

.page-size-select {
    min-width: 86px;
    min-height: 40px;
    padding: 0 34px 0 14px;
    border: 1px solid #d7dde5;
    border-radius: 12px;
    background: #ffffff;
    color: #252f3f;
    font-weight: 700;
}

.page-size-select:focus {
    outline: none;
    border-color: #9ccfb9;
    box-shadow: 0 0 0 4px rgba(37, 188, 116, 0.08);
}

.pagination-nav {
    display: inline-flex;
    align-items: center;
    gap: 8px;
}

.pagination-pages {
    display: inline-flex;
    align-items: center;
    gap: 8px;
}

.pagination-arrow-button,
.pagination-page-button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 40px;
    height: 40px;
    padding: 0 12px;
    border: 1px solid #d7dde5;
    border-radius: 12px;
    background: #ffffff;
    color: #374151;
    font-weight: 700;
    cursor: pointer;
    transition: var(--transition);
}

.pagination-arrow-button:hover,
.pagination-page-button:hover {
    border-color: #bfd9c8;
    background: #f8fbfa;
    color: #1f2937;
}

.pagination-page-button.is-active {
    border-color: var(--EcocertGreen);
    background: #eaf8f1;
    color: #209264;
}

.pagination-arrow-button:disabled {
    opacity: 0.45;
    cursor: default;
}

.pagination-arrow-button:disabled:hover {
    border-color: #d7dde5;
    background: #ffffff;
    color: #374151;
}

.pagination-ellipsis {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 24px;
    color: #7b8794;
    font-weight: 700;
}

.indicator-chip-list,
.function-chip-list,
.cert-chip-list,
.cert-visual-list {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
}

.indicator-chip,
.function-chip,
.ingredient-card-chip,
.detail-indicator-pill,
.cert-chip {
    display: inline-flex;
    align-items: center;
    min-height: 24px;
    padding: 0 10px;
    border-radius: 999px;
    font-size: 0.8rem;
    font-weight: 700;
    line-height: 1.2;
    white-space: nowrap;
}

.indicator-chip,
.ingredient-card-chip-indicator,
.detail-indicator-pill {
    background: #eef5f1;
    color: #267f58;
    gap: 6px;
    max-width: 100%;
    white-space: normal;
    overflow-wrap: anywhere;
}

.indicator-more-button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 24px;
    padding: 0 10px;
    border: 1px solid #b8ddd2;
    border-radius: 999px;
    background: #ffffff;
    color: #267f58;
    font: inherit;
    font-size: 0.8rem;
    font-weight: 700;
    line-height: 1.2;
    white-space: nowrap;
    cursor: pointer;
    transition: background-color 160ms ease, border-color 160ms ease, box-shadow 160ms ease, transform 160ms ease;
}

.indicator-more-button:hover {
    border-color: #83c9b6;
    background: #e7f5f1;
    box-shadow: 0 3px 10px rgba(38, 127, 88, 0.12);
    transform: translateY(-1px);
}

.indicator-more-button:focus-visible {
    outline: 2px solid #4fb299;
    outline-offset: 2px;
}

.function-chip,
.ingredient-card-chip-function,
.cert-chip {
    background: #fff0f2;
    color: #d4586d;
}

.cert-visual-list {
    align-items: center;
    gap: 10px;
}

.cert-visual-badge {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 30px;
    height: 30px;
    padding: 0 6px;
    border-radius: 999px;
    border: 1px solid currentColor;
    background: #ffffff;
    font-size: 0.66rem;
    font-weight: 800;
    letter-spacing: 0.03em;
}

.cert-visual-badge-image {
    width: 44px;
    min-width: 44px;
    height: 40px;
    padding: 0;
    overflow: visible;
    border: 0;
    border-radius: 0;
    background: transparent;
}

.cert-visual-badge-image.cert-badge-natrue {
    width: 110px;
    min-width: 110px;
}

.cert-badge-logo {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: contain;
}

.cert-badge-default {
    color: #6b7280;
}

.empty-state {
    padding: 28px 16px;
    color: #6b7280;
    text-align: center;
    font-weight: 600;
}

.ingredient-modal-overlay {
    position: fixed;
    inset: 0;
    z-index: 200;
}

.ingredient-modal-backdrop {
    position: absolute;
    inset: 0;
    background: rgba(15, 23, 42, 0.34);
    backdrop-filter: blur(3px);
}

.ingredient-modal {
    position: relative;
    width: min(940px, calc(100vw - 48px));
    max-height: calc(100vh - 36px);
    margin: 18px auto;
    border-radius: 28px;
    background: #ffffff;
    box-shadow: 0 30px 80px rgba(15, 23, 42, 0.25);
    overflow: hidden;
}

.ingredient-modal-close {
    position: absolute;
    top: 22px;
    right: 26px;
    z-index: 2;
    width: 40px;
    height: 40px;
    border: none;
    border-radius: 50%;
    background: #f3f4f6;
    color: #6b7280;
    font-size: 1.7rem;
    cursor: pointer;
}

.ingredient-modal-close:hover {
    background: #f3f4f6;
    color: #111827;
}

.ingredient-modal-scroll {
    max-height: calc(100vh - 120px);
    overflow: auto;
    scrollbar-gutter: stable;
    margin: 10px 10px 10px 0;
    padding: 68px 38px 26px 38px;
}

.ingredient-modal-hero {
    display: grid;
    grid-template-columns: 112px minmax(0, 1fr);
    gap: 18px;
    margin-bottom: 18px;
}

.ingredient-modal-hero-copy {
    min-width: 0;
}

.ingredient-modal-image-shell {
    min-height: 112px;
    border-radius: 16px;
    display: flex;
    align-items: center;
    justify-content: center;
    background: linear-gradient(145deg, #f3f7f5 0%, #e8efec 100%);
}

.ingredient-modal-picto-shell {
    width: 64px;
    height: 64px;
    border-radius: 16px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border: 1px solid rgba(255, 255, 255, 0.85);
    box-shadow: 0 8px 20px rgba(15, 23, 42, 0.12);
}

.ingredient-modal-picto-shell.theme-mint {
    background: linear-gradient(145deg, #dff6ef 0%, #c9eee1 100%);
    color: #208f67;
}

.ingredient-modal-picto-shell.theme-amber {
    background: linear-gradient(145deg, #fdebd8 0%, #f7dbbc 100%);
    color: #c0822e;
}

.ingredient-modal-picto-shell.theme-blue {
    background: linear-gradient(145deg, #dfe8ff 0%, #cfdcff 100%);
    color: #476fc8;
}

.ingredient-modal-picto-shell.theme-violet {
    background: linear-gradient(145deg, #f0e2f8 0%, #e8d5f4 100%);
    color: #8e60a4;
}

.ingredient-modal-picto {
    font-size: 1.5rem;
    line-height: 1;
}

.ingredient-modal-hero-copy h2 {
    margin: 0 0 8px;
    font-family: 'Poppins', sans-serif;
    font-size: 2.2rem;
    line-height: 1.08;
    overflow-wrap: anywhere;
}

.detail-verified-badge {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    min-height: 34px;
    padding: 0 9px;
    border-radius: 999px;
    background: #dcf6f0;
    color: #2d9b85;
    font-size: 0.92rem;
    font-weight: 700;
}

.detail-verified-icon {
    width: 14px;
    height: 14px;
    display: block;
}

.detail-action-row,
.ingredient-detail-action-row {
    display: flex;
    flex-wrap: wrap;
    gap: 12px;
}
.detail-section-card {
    margin-bottom: 18px;
    padding: 22px 22px 20px;
    border: 1px solid #d8dee6;
    border-radius: 16px;
}

.ingredient-platform-disclaimer {
    padding: 0 6px 8px;
    color: #6b7280;
    font-size: 0.72rem;
    line-height: 1.45;
}

.ingredient-platform-disclaimer p {
    margin: 0 0 8px;
}

.ingredient-platform-disclaimer p:last-child {
    margin-bottom: 0;
}

.detail-section-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    margin-bottom: 18px;
}

.detail-section-title {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    color: #252f3f;
    font-family: 'Poppins', sans-serif;
    font-size: 1.05rem;
    font-weight: 600;
}

.detail-section-actions {
    display: inline-flex;
    align-items: center;
    justify-content: flex-end;
    flex-wrap: wrap;
    gap: 10px;
}

.detail-request-button {
    display: inline-flex;
    align-items: center;
    min-height: 32px;
    padding: 0 14px;
    border: 1px solid #93dfcc;
    border-radius: 999px;
    background: #ffffff;
    color: #2d9b85;
    font-size: 0.9rem;
    font-weight: 700;
    cursor: pointer;
}

.detail-request-button:hover {
    background: #f1fbf8;
}

.detail-provided-badge {
    display: inline-flex;
    align-items: center;
    min-height: 30px;
    padding: 0 10px;
    border-radius: 6px;
    background: #717b8b;
    color: #ffffff;
    font-size: 0.82rem;
    font-weight: 600;
}

.detail-section-icon {
    display: block;
    flex: 0 0 auto;
}

.detail-provided-badge[hidden] {
    display: none;
}

.indicator-info-button,
.filter-option-info-button {
    display: inline-flex;
    flex: 0 0 18px;
    align-items: center;
    justify-content: center;
    width: 18px;
    height: 18px;
    padding: 0;
    border: 0;
    border-radius: 50%;
    background: transparent;
    color: #4f7568;
    font-size: 0.72rem;
    cursor: pointer;
    opacity: 0.78;
}

.indicator-info-button:hover,
.indicator-info-button:focus-visible,
.indicator-info-button[aria-expanded='true'],
.filter-option-info-button:hover,
.filter-option-info-button:focus-visible {
    background: #dcefe8;
    color: #176b4b;
    opacity: 1;
}

.indicator-info-button:focus-visible,
.filter-option-info-button:focus-visible {
    outline: 2px solid rgba(37, 188, 116, 0.38);
    outline-offset: 2px;
}

.filter-option > .indicator-info-button,
.filter-option > .filter-option-info-button {
    margin-top: 2px;
}

.indicator-tooltip-popover {
    position: fixed;
    z-index: 700;
    display: flex;
    flex-direction: column;
    width: min(380px, calc(100vw - 24px));
    max-height: min(420px, calc(100vh - 24px));
    overflow: hidden;
    border: 1px solid #d7e1dd;
    border-radius: 12px;
    background: #ffffff;
    color: #25313d;
    box-shadow: 0 14px 38px rgba(25, 45, 38, 0.2);
}

.filter-option-tooltip-popover {
    width: min(320px, calc(100vw - 24px));
}

.indicator-tooltip-popover-header {
    display: flex;
    flex: 0 0 auto;
    align-items: flex-start;
    justify-content: space-between;
    gap: 12px;
    padding: 12px 14px 10px;
    border-bottom: 1px solid #e3ebe8;
    background: #f4faf7;
    color: #176b4b;
}

.indicator-tooltip-popover-header strong {
    min-width: 0;
    overflow-wrap: anywhere;
}

.indicator-tooltip-close {
    display: inline-flex;
    flex: 0 0 28px;
    align-items: center;
    justify-content: center;
    width: 28px;
    height: 28px;
    margin: -5px -7px -3px 0;
    padding: 0;
    border: 0;
    border-radius: 50%;
    background: transparent;
    color: #5f6c7b;
    cursor: pointer;
}

.indicator-tooltip-close:hover,
.indicator-tooltip-close:focus-visible {
    background: #e3efea;
    color: #25313d;
}

.indicator-tooltip-close:focus-visible {
    outline: 2px solid rgba(37, 188, 116, 0.38);
    outline-offset: 1px;
}

.indicator-tooltip-popover-content {
    overflow-y: auto;
    padding: 13px 14px 15px;
    font-size: 0.88rem;
    line-height: 1.55;
}

.indicator-tooltip-popover-content a {
    color: #145fc0;
    font-weight: 700;
    text-decoration: underline;
    text-underline-offset: 2px;
}

.detail-info-tooltip {
    position: relative;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    color: currentColor;
    cursor: help;
    outline: none;
}

.detail-info-tooltip > i {
    font-size: 0.78rem;
    opacity: 0.75;
}

.detail-info-tooltip-content {
    position: absolute;
    left: 50%;
    bottom: calc(100% + 10px);
    z-index: 8;
    width: max-content;
    max-width: min(280px, calc(100vw - 48px));
    padding: 9px 11px;
    border-radius: 8px;
    background: #25313d;
    color: #ffffff;
    box-shadow: 0 8px 24px rgba(15, 23, 42, 0.2);
    font-size: 0.78rem;
    font-weight: 500;
    line-height: 1.35;
    white-space: normal;
    transform: translate(-50%, 4px);
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
    transition: opacity 0.16s ease, transform 0.16s ease;
}

.detail-info-tooltip:hover .detail-info-tooltip-content,
.detail-info-tooltip:focus .detail-info-tooltip-content,
.detail-info-tooltip:focus-within .detail-info-tooltip-content {
    opacity: 1;
    visibility: visible;
    pointer-events: auto;
    transform: translate(-50%, 0);
}

.detail-info-tooltip-content a {
    color: #ffffff;
    font-weight: 700;
    text-decoration: underline;
    text-underline-offset: 2px;
}

.detail-verified-badge.detail-info-tooltip .detail-info-tooltip-content {
    right: 0;
    left: auto;
    transform: translateY(4px);
}

.detail-verified-badge.detail-info-tooltip:hover .detail-info-tooltip-content,
.detail-verified-badge.detail-info-tooltip:focus .detail-info-tooltip-content,
.detail-verified-badge.detail-info-tooltip:focus-within .detail-info-tooltip-content {
    transform: translateY(0);
}

.context-verified-badge {
    max-width: 100%;
    min-height: 26px;
    padding: 4px 8px;
    gap: 6px;
    box-sizing: border-box;
    font-size: 0.74rem;
    line-height: 1.2;
    white-space: normal;
}

.context-verified-badge .detail-verified-icon {
    flex: 0 0 auto;
    width: 12px;
    height: 12px;
}

.context-verified-badge > span:not(.detail-info-tooltip-content) {
    flex: 1 1 auto;
    min-width: 0;
    overflow-wrap: anywhere;
}

.context-verified-badge.detail-info-tooltip .detail-info-tooltip-content {
    top: calc(100% + 8px);
    right: auto;
    bottom: auto;
    left: 0;
    transform: translateY(-4px);
}

.context-verified-badge.detail-info-tooltip:hover .detail-info-tooltip-content,
.context-verified-badge.detail-info-tooltip:focus .detail-info-tooltip-content,
.context-verified-badge.detail-info-tooltip:focus-within .detail-info-tooltip-content {
    transform: translateY(0);
}

.filter-verified-intro {
    position: relative;
    display: flex;
    align-items: flex-start;
    padding: 0 0 10px;
    margin-bottom: 2px;
    border-bottom: 1px solid #e4ebf1;
}

.filter-verified-badge.detail-info-tooltip {
    position: static;
}

.filter-verified-badge.detail-info-tooltip .detail-info-tooltip-content {
    right: 8px;
    left: 0;
    width: auto;
    max-width: none;
}

.detail-indicator-list {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
}

.detail-info-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 18px 28px;
}

.detail-info-row {
    min-width: 0;
}

.detail-info-label {
    margin-bottom: 6px;
    color: #6b7280;
    font-size: 0.85rem;
    font-weight: 500;
}

.detail-info-value {
    color: #252f3f;
    font-size: 1.03rem;
    font-weight: 600;
    line-height: 1.45;
}

.detail-empty-value {
    color: #9ca3af;
    font-weight: 400;
    font-style: italic;
}

.detail-load-error {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    padding: 16px;
    border: 1px solid #f1c9c9;
    border-radius: 10px;
    background: #fff7f7;
    color: #8b2f2f;
    font-weight: 600;
}

.detail-load-retry {
    min-height: 32px;
    padding: 0 14px;
    border: 1px solid #d59a9a;
    border-radius: 9px;
    background: #ffffff;
    color: #7b2929;
    font-weight: 700;
    cursor: pointer;
}

.detail-load-retry:hover {
    background: #fff0f0;
}

.detail-description {
    min-height: 54px;
    color: #374151;
    font-size: 1rem;
    line-height: 1.55;
    white-space: pre-wrap;
}

.detail-description.is-empty {
    color: #9ca3af;
    font-style: italic;
}

.detail-certification-list {
    display: flex;
    flex-direction: column;
    gap: 16px;
}

.detail-cert-card {
    padding: 16px;
    border: 1px solid #e4e9ee;
    border-radius: 12px;
    background: #fbfcfc;
}

.detail-cert-card:first-child {
    padding-top: 16px;
    border-top: 1px solid #e4e9ee;
}

.detail-cert-heading {
    display: flex;
    align-items: center;
    justify-content: flex-start;
    gap: 14px;
    margin-bottom: 14px;
}

.detail-cert-title-wrap {
    display: inline-flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 12px;
}

.detail-cert-title-wrap .cert-visual-badge-image {
    width: 64px;
    min-width: 64px;
    height: 56px;
}

.detail-cert-title-wrap strong {
    font-family: 'Poppins', sans-serif;
    font-size: 1.02rem;
}

.detail-cert-grid {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 8px 18px;
}

.detail-cert-label {
    color: #6b7280;
    font-size: 0.9rem;
}

.detail-cert-value {
    color: #252f3f;
    font-weight: 700;
    text-align: right;
    overflow-wrap: anywhere;
}

.quote-button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 160px;
    min-height: 46px;
    padding: 0 18px;
    border: none;
    border-radius: 16px;
    background: #ffffff;
    color: #3d9d88;
    font-weight: 700;
    cursor: pointer;
}

.quote-button:hover {
    transform: translateY(-1px);
}

.sourcing-contact-popup .swal2-html-container {
    margin: 0;
}

.sourcing-contact-form {
    display: grid;
    gap: 9px;
    padding: 0 4px;
    color: #344054;
    text-align: left;
}

.sourcing-contact-context {
    margin: 0 0 7px;
    color: #526173;
    font-size: 0.9rem;
    line-height: 1.55;
}

.sourcing-contact-context strong {
    color: #25364a;
}

.sourcing-contact-form label {
    display: block;
    margin-top: 5px;
    font-size: 0.92rem;
    font-weight: 700;
}

.sourcing-contact-form select,
.sourcing-contact-form textarea {
    box-sizing: border-box;
    width: 100%;
    min-height: 44px;
    padding: 10px 12px;
    border: 1px solid #cfd8e3;
    border-radius: 8px;
    background: #fff;
    color: #344054;
    font: inherit;
    font-size: 0.95rem;
}

.sourcing-contact-form textarea {
    min-height: 130px;
    resize: vertical;
}

.sourcing-contact-form select:focus,
.sourcing-contact-form textarea:focus {
    border-color: #25a77a;
    box-shadow: 0 0 0 3px rgba(37, 167, 122, 0.14);
    outline: none;
}

.sourcing-contact-character-count {
    justify-self: end;
    color: #667085;
}

.sourcing-contact-acceptance {
    margin: 10px 0 0;
    color: #667085;
    font-size: 0.82rem;
    line-height: 1.55;
}

.sourcing-contact-acceptance a {
    color: #087f5b;
    font-weight: 700;
}

.sourcing-additional-details-popup .swal2-html-container,
.sourcing-notifications-popup .swal2-html-container {
    margin: 0;
}

.sourcing-additional-details-form {
    display: grid;
    gap: 12px;
    color: #344054;
    text-align: left;
}

.sourcing-additional-details-form > p {
    margin: 0 0 2px;
    color: #526173;
    font-size: 0.92rem;
    line-height: 1.5;
}

.sourcing-additional-details-form fieldset {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 8px 14px;
    margin: 0;
    padding: 12px;
    border: 1px solid #dbe4ea;
    border-radius: 9px;
}

.sourcing-additional-details-form legend {
    padding: 0 6px;
    color: #25364a;
    font-size: 0.9rem;
    font-weight: 800;
}

.sourcing-additional-details-form label {
    display: flex;
    align-items: flex-start;
    gap: 8px;
    font-size: 0.88rem;
    line-height: 1.35;
}

.sourcing-additional-details-form input {
    flex: 0 0 auto;
    margin-top: 2px;
    accent-color: #25a77a;
}

.sourcing-additional-details-form .sourcing-additional-details-privacy {
    margin-top: 3px;
    color: #667085;
    font-size: 0.8rem;
}

.sourcing-notification-list {
    display: grid;
    max-height: min(520px, 65vh);
    gap: 10px;
    overflow-y: auto;
    text-align: left;
}

.sourcing-notification-item {
    padding: 14px;
    border: 1px solid #dbe4ea;
    border-radius: 10px;
    background: #f8fbfa;
}

.sourcing-notification-item h3 {
    margin: 0 0 8px;
    color: #25364a;
    font-size: 1rem;
}

.sourcing-notification-item-heading {
    display: flex;
    margin-bottom: 7px;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
}

.sourcing-notification-type,
.sourcing-notification-new {
    color: #08745c;
    font-size: 0.72rem;
    font-weight: 800;
    letter-spacing: 0.035em;
    text-transform: uppercase;
}

.sourcing-notification-new {
    padding: 3px 7px;
    border-radius: 999px;
    background: #dff7ef;
}

.sourcing-notification-group {
    margin-top: 5px;
    color: #526173;
    font-size: 0.86rem;
    line-height: 1.4;
}

.sourcing-notification-explanation {
    margin: 0 0 10px;
    color: #526173;
    font-size: 0.86rem;
    line-height: 1.45;
}

.sourcing-notification-requested-heading {
    margin-top: 9px;
    color: #344054;
    font-size: 0.82rem;
    font-weight: 800;
}

.sourcing-notification-description {
    margin-top: 9px;
    padding: 9px 10px;
    border-left: 3px solid #54bba5;
    background: #ffffff;
    color: #344054;
    font-size: 0.86rem;
    line-height: 1.45;
    white-space: pre-wrap;
}

.sourcing-notification-contact {
    margin-top: 9px;
    color: #526173;
    font-size: 0.82rem;
    line-height: 1.5;
}

.sourcing-notification-item time {
    display: block;
    margin-top: 9px;
    color: #7a8796;
    font-size: 0.76rem;
}

@media (max-width: 600px) {
    .sourcing-additional-details-form fieldset {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 1280px) {
    .metric-row {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }
}

@media (max-width: 1080px) {
    .sourcing-dashboard {
        display: flex;
        flex-direction: column;
        gap: 16px;
        padding: 16px;
    }

    .sourcing-filters-panel {
        order: 2;
        width: 100%;
        max-width: none;
        align-self: stretch;
    }

    .sourcing-main-panel {
        display: contents;
    }

    .sourcing-filters-panel {
        position: static;
    }

    .metric-row {
        order: 1;
        width: 100%;
        max-width: none;
        align-self: stretch;
    }

    .sourcing-toolbar {
        order: 3;
        width: 100%;
        max-width: none;
        align-self: stretch;
    }

    .sourcing-results-shell {
        order: 4;
        width: 100%;
        max-width: none;
        align-self: stretch;
    }

    .table-pagination {
        order: 5;
        width: 100%;
        max-width: none;
        align-self: stretch;
    }

    .sourcing-table-shell,
    .ingredient-card-grid {
        width: 100%;
        max-width: none;
    }

}

@media (max-width: 960px) {
    .metric-row {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .ingredient-modal {
        width: min(940px, calc(100vw - 24px));
        max-height: calc(100vh - 24px);
        margin: 12px auto;
    }

    .ingredient-modal-close {
        top: 18px;
        right: 22px;
    }

    .ingredient-modal-scroll {
        margin: 8px 8px 8px 0;
        padding: 64px 24px 22px 22px;
    }

    .ingredient-modal-hero,
    .detail-info-grid {
        grid-template-columns: 1fr;
    }

    .pro-plan-grid {
        grid-template-columns: 1fr;
    }

    .pro-modal-content {
        margin: 8px 8px 8px 0;
        padding: 30px 18px 18px;
    }

    .ingredient-card-meta,
    .ingredient-card-section-split {
        grid-template-columns: 1fr;
    }

}

@media (max-width: 760px) {
    .unavailable-favorites-notice {
        align-items: stretch;
        flex-direction: column;
    }

    .remove-unavailable-favorites-button {
        width: 100%;
    }

    .metric-row {
        grid-template-columns: 1fr;
    }

    .top-nav.sourcing-top-nav {
        flex-direction: column;
        align-items: flex-start;
        gap: 16px;
        padding: 16px;
    }

    .ingredient-modal-close {
        right: 20px;
    }

    .sourcing-nav-right {
        width: 100%;
        justify-content: flex-end;
        flex-wrap: wrap;
    }

    .top-nav-identity {
        align-items: flex-start;
        gap: 12px;
    }

    .top-nav-tagline {
        min-width: 0;
    }

    .detail-section-header {
        align-items: flex-start;
        flex-direction: column;
    }
    .detail-section-actions {
        width: 100%;
        justify-content: flex-start;
    }
    .detail-cert-grid {
        grid-template-columns: 1fr;
        gap: 4px;
    }
    .detail-cert-value {
        margin-bottom: 8px;
        text-align: left;
    }
    .sourcing-toolbar,
    .table-pagination,
    .pagination-actions {
        flex-direction: column;
        align-items: stretch;
    }

    .sourcing-table-quote-shell {
        flex-direction: column;
        align-items: flex-start;
    }

    .search-shell {
        max-width: none;
    }

    .pro-modal-overlay {
        padding: 12px;
    }

    .pro-modal-panel {
        width: min(1120px, calc(100vw - 24px));
        max-height: calc(100vh - 24px);
    }

    .pro-modal-content {
        max-height: calc(100vh - 24px);
        margin: 8px 8px 8px 0;
        padding: 30px 14px 16px;
    }

    .pro-billing-toggle {
        width: 100%;
    }

    .pro-billing-button {
        flex: 1;
        min-width: 0;
    }

    .ingredient-card-body {
        padding: 16px;
    }

    .ingredient-card-quote-tile {
        min-height: 200px;
        gap: 18px;
        padding: 22px;
    }

    .ingredient-card-quote-title {
        font-size: 1.75rem;
    }

    .ingredient-card-header {
        flex-direction: column;
    }

    .pagination-nav,
    .pagination-pages {
        justify-content: center;
        flex-wrap: wrap;
    }

    .page-size-control {
        justify-content: space-between;
    }
}

.sourcing-legal-popup {
    text-align: left;
}

.sourcing-legal-popup .swal2-title {
    text-align: center;
}

.sourcing-legal-popup .swal2-html-container {
    text-align: left;
}

.sourcing-legal-intro {
    margin: 0 0 20px;
    color: #465466;
    line-height: 1.55;
}

.sourcing-legal-terms {
    display: flex;
    gap: 12px;
    align-items: flex-start;
    padding: 18px;
    border: 1px solid #d8dee6;
    border-radius: 10px;
    color: #1f2937;
    font-weight: 600;
    line-height: 1.5;
}

.sourcing-legal-terms input {
    width: 18px;
    height: 18px;
    margin-top: 2px;
    flex: 0 0 auto;
    accent-color: var(--EcocertGreen);
}

.sourcing-legal-privacy {
    display: flex;
    gap: 12px;
    align-items: flex-start;
    margin: 20px 0 0;
    color: #526171;
    line-height: 1.5;
}

.sourcing-legal-privacy i {
    margin-top: 4px;
}

.sourcing-legal-saving {
    display: flex;
    gap: 9px;
    align-items: center;
    margin: 18px 0 0;
    padding: 10px 12px;
    border: 1px solid rgba(37, 188, 116, 0.24);
    border-radius: 9px;
    background: rgba(37, 188, 116, 0.08);
    color: #167447;
    font-size: 0.9rem;
    font-weight: 600;
}

.sourcing-legal-saving[hidden] {
    display: none;
}

.sourcing-legal-saving i {
    color: var(--EcocertGreen);
}

.sourcing-legal-popup a {
    color: var(--EcocertGreen);
    text-decoration: underline;
}

.sourcing-legal-popup .swal2-confirm {
    background-color: var(--EcocertGreen);
}

.sourcing-legal-popup .swal2-confirm:hover,
.sourcing-legal-popup .swal2-confirm:focus-visible {
    background-color: #169b5c;
}

.sourcing-pdf-loading-popup .swal2-title {
    color: var(--EcocertBlack);
    font-size: 1.35rem;
}

.sourcing-pdf-loading-indicator {
    border-color: var(--EcocertGreen) transparent var(--EcocertGreen) transparent;
}
