:root {
    --fz-background: #f5f7fb;
    --fz-surface: #ffffff;
    --fz-sidebar: #ffffff;
    --fz-border: #e4e9f2;
    --fz-text: #14213d;
    --fz-text-soft: #667085;
    --fz-primary: #3157d5;
    --fz-primary-soft: #eef2ff;
    --fz-danger: #dc3545;
    --fz-radius: 14px;
    --fz-sidebar-width: 270px;
    --fz-topbar-height: 72px;
    --fz-shadow: 0 8px 30px rgba(16, 24, 40, 0.05);
}

* {
    box-sizing: border-box;
}

html,
body {
    min-height: 100%;
    margin: 0;
}

body.fz-assets-body {
    background: var(--fz-background);
    color: var(--fz-text);
    font-family:
        Inter,
        system-ui,
        -apple-system,
        BlinkMacSystemFont,
        "Segoe UI",
        sans-serif;
    font-size: 15px;
}

button,
input,
select,
textarea {
    font: inherit;
}

a {
    color: inherit;
    text-decoration: none;
}

.fz-assets-app {
    display: flex;
    min-height: 100vh;
}

.fz-sidebar {
    position: fixed;
    inset: 0 auto 0 0;
    z-index: 1000;
    display: flex;
    width: var(--fz-sidebar-width);
    flex-direction: column;
    overflow-y: auto;
    background: var(--fz-sidebar);
    border-right: 1px solid var(--fz-border);
    transition: transform 0.2s ease;
}

.fz-sidebar-brand {
    display: flex;
    min-height: var(--fz-topbar-height);
    align-items: center;
    padding: 12px 20px;
    border-bottom: 1px solid var(--fz-border);
}

.fz-brand-link {
    display: flex;
    align-items: center;
    gap: 12px;
}

.fz-brand-icon {
    display: grid;
    width: 40px;
    height: 40px;
    place-items: center;
    border-radius: 12px;
    background: var(--fz-primary);
    color: #fff;
    font-size: 20px;
    font-weight: 800;
}

.fz-brand-text {
    display: flex;
    flex-direction: column;
}

.fz-brand-text strong {
    font-size: 17px;
}

.fz-brand-text span {
    color: var(--fz-text-soft);
    font-size: 13px;
}

.fz-sidebar-organization {
    display: flex;
    flex-direction: column;
    gap: 3px;
    margin: 18px 16px 8px;
    padding: 14px;
    border: 1px solid var(--fz-border);
    border-radius: 12px;
    background: #f9fafb;
}

.fz-sidebar-label {
    color: var(--fz-text-soft);
    font-size: 11px;
    font-weight: 700;
    letter-spacing: 0.07em;
    text-transform: uppercase;
}

.fz-sidebar-nav {
    flex: 1;
    padding: 8px 12px 20px;
}

.fz-nav-section {
    margin-top: 18px;
}

.fz-nav-section-title {
    padding: 0 12px 8px;
    color: var(--fz-text-soft);
    font-size: 11px;
    font-weight: 700;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

.fz-nav-link {
    display: flex;
    align-items: center;
    gap: 11px;
    min-height: 42px;
    margin-bottom: 3px;
    padding: 9px 12px;
    border-radius: 10px;
    color: #344054;
    font-weight: 500;
    transition:
        background 0.15s ease,
        color 0.15s ease;
}

.fz-nav-link:hover {
    background: #f2f4f7;
    color: var(--fz-text);
}

.fz-nav-link.is-active {
    background: var(--fz-primary-soft);
    color: var(--fz-primary);
    font-weight: 700;
}

.fz-nav-icon {
    display: inline-grid;
    width: 22px;
    place-items: center;
    font-size: 17px;
}

.fz-sidebar-user {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 16px;
    border-top: 1px solid var(--fz-border);
}

.fz-user-avatar,
.fz-profile-button {
    display: grid;
    width: 40px;
    height: 40px;
    flex: 0 0 40px;
    place-items: center;
    border: 0;
    border-radius: 50%;
    background: var(--fz-primary-soft);
    color: var(--fz-primary);
    font-weight: 800;
}

.fz-user-info {
    display: flex;
    min-width: 0;
    flex-direction: column;
}

.fz-user-info strong {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.fz-user-info span {
    color: var(--fz-text-soft);
    font-size: 12px;
}

.fz-assets-main {
    display: flex;
    width: calc(100% - var(--fz-sidebar-width));
    min-height: 100vh;
    margin-left: var(--fz-sidebar-width);
    flex-direction: column;
}

.fz-topbar {
    position: sticky;
    top: 0;
    z-index: 900;
    display: flex;
    min-height: var(--fz-topbar-height);
    align-items: center;
    justify-content: space-between;
    gap: 20px;
    padding: 12px 30px;
    background: rgba(255, 255, 255, 0.96);
    border-bottom: 1px solid var(--fz-border);
    backdrop-filter: blur(12px);
}

.fz-topbar-left,
.fz-topbar-actions {
    display: flex;
    align-items: center;
    gap: 12px;
}

.fz-topbar-left {
    min-width: 0;
    flex: 1;
}

.fz-icon-button {
    display: grid;
    width: 42px;
    height: 42px;
    flex: 0 0 42px;
    place-items: center;
    border: 1px solid var(--fz-border);
    border-radius: 11px;
    background: #fff;
    color: var(--fz-text);
    cursor: pointer;
}

.fz-global-search {
    display: flex;
    width: min(620px, 100%);
    height: 44px;
    align-items: center;
    gap: 10px;
    padding: 0 13px;
    border: 1px solid var(--fz-border);
    border-radius: 12px;
    background: #fff;
}

.fz-global-search input {
    min-width: 0;
    flex: 1;
    border: 0;
    outline: 0;
    background: transparent;
    color: var(--fz-text);
}

.fz-global-search kbd {
    padding: 3px 7px;
    border: 1px solid var(--fz-border);
    border-radius: 6px;
    background: #f9fafb;
    color: var(--fz-text-soft);
    font-size: 11px;
}

.fz-button {
    display: inline-flex;
    min-height: 42px;
    align-items: center;
    justify-content: center;
    gap: 7px;
    padding: 9px 15px;
    border: 1px solid transparent;
    border-radius: 10px;
    cursor: pointer;
    font-weight: 700;
}

.fz-button-primary {
    background: var(--fz-primary);
    color: #fff;
}

.fz-button-secondary {
    border-color: var(--fz-border);
    background: #fff;
    color: var(--fz-text);
}

.fz-assets-content {
    width: 100%;
    flex: 1;
    padding: 30px;
}

.fz-page-eyebrow {
    margin-bottom: 8px;
    color: var(--fz-primary);
    font-size: 12px;
    font-weight: 800;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

.fz-page-header {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 20px;
    margin-bottom: 26px;
}

.fz-page-title {
    margin: 0;
    font-size: clamp(27px, 3vw, 38px);
    line-height: 1.15;
}

.fz-page-description {
    max-width: 720px;
    margin: 10px 0 0;
    color: var(--fz-text-soft);
    font-size: 16px;
    line-height: 1.6;
}

.fz-card {
    overflow: hidden;
    background: var(--fz-surface);
    border: 1px solid var(--fz-border);
    border-radius: var(--fz-radius);
    box-shadow: var(--fz-shadow);
}

.fz-card-header {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 20px;
    padding: 22px 24px;
    border-bottom: 1px solid var(--fz-border);
}

.fz-card-header h2 {
    margin: 0;
    font-size: 19px;
}

.fz-card-header p {
    margin: 7px 0 0;
    color: var(--fz-text-soft);
}

.fz-toolbar {
    display: flex;
    gap: 12px;
    padding: 18px 24px;
    border-bottom: 1px solid var(--fz-border);
}

.fz-field-search {
    flex: 1;
}

.fz-field input,
.fz-select {
    width: 100%;
    min-height: 42px;
    padding: 9px 12px;
    border: 1px solid var(--fz-border);
    border-radius: 10px;
    background: #fff;
    color: var(--fz-text);
    outline: none;
}

.fz-select {
    width: auto;
    min-width: 210px;
}

.fz-field input:focus,
.fz-select:focus {
    border-color: var(--fz-primary);
    box-shadow: 0 0 0 3px rgba(49, 87, 213, 0.12);
}

.fz-empty-state {
    display: flex;
    min-height: 310px;
    align-items: center;
    justify-content: center;
    flex-direction: column;
    padding: 40px 20px;
    text-align: center;
}

.fz-empty-state-icon {
    display: grid;
    width: 64px;
    height: 64px;
    margin-bottom: 16px;
    place-items: center;
    border-radius: 18px;
    background: var(--fz-primary-soft);
    color: var(--fz-primary);
    font-size: 28px;
}

.fz-empty-state h3 {
    margin: 0;
}

.fz-empty-state p {
    margin: 8px 0 0;
    color: var(--fz-text-soft);
}

.fz-footer {
    display: flex;
    justify-content: space-between;
    gap: 20px;
    padding: 18px 30px;
    color: var(--fz-text-soft);
    border-top: 1px solid var(--fz-border);
    font-size: 12px;
}

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

@media (max-width: 1050px) {
    .fz-sidebar {
        transform: translateX(-100%);
    }

    body.fz-sidebar-open .fz-sidebar {
        transform: translateX(0);
        box-shadow: 15px 0 40px rgba(16, 24, 40, 0.16);
    }

    .fz-assets-main {
        width: 100%;
        margin-left: 0;
    }
}

@media (max-width: 720px) {
    .fz-topbar {
        padding: 12px 16px;
    }

    .fz-topbar-actions .fz-button span:last-child {
        display: none;
    }

    .fz-global-search kbd {
        display: none;
    }

    .fz-assets-content {
        padding: 22px 16px;
    }

    .fz-page-header,
    .fz-card-header,
    .fz-toolbar,
    .fz-footer {
        flex-direction: column;
    }

    .fz-toolbar > *,
    .fz-select {
        width: 100%;
    }
}

/* =========================================================
   DASHBOARD ASSETS
   ========================================================= */

.assets-dashboard {
    width: 100%;
}

.assets-kpi-grid {
    display: grid;
    grid-template-columns: repeat(6, minmax(0, 1fr));
    gap: 16px;
    margin-bottom: 24px;
}

.assets-kpi-card {
    display: flex;
    flex-direction: column;
    min-width: 0;
    min-height: 152px;
    padding: 20px;
    color: #12213f;
    text-decoration: none;
    background: #ffffff;
    border: 1px solid #e2e8f2;
    border-radius: 14px;
    box-shadow: 0 2px 5px rgba(19, 33, 63, 0.03);
    transition:
        transform 0.18s ease,
        border-color 0.18s ease,
        box-shadow 0.18s ease;
}

a.assets-kpi-card:hover {
    color: #12213f;
    text-decoration: none;
    border-color: #b9c8ef;
    box-shadow: 0 10px 25px rgba(31, 63, 136, 0.08);
    transform: translateY(-2px);
}

.assets-kpi-card__header {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 12px;
}

.assets-kpi-card__label {
    color: #64748b;
    font-size: 13px;
    font-weight: 700;
    line-height: 1.4;
}

.assets-kpi-card__icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex: 0 0 34px;
    width: 34px;
    height: 34px;
    color: #315fd5;
    font-size: 16px;
    font-weight: 700;
    background: #edf3ff;
    border-radius: 10px;
}

.assets-kpi-card__value {
    display: block;
    margin-top: 18px;
    color: #12213f;
    font-size: 31px;
    font-weight: 800;
    line-height: 1;
    letter-spacing: -0.03em;
}

.assets-kpi-card__value--money {
    font-size: 24px;
    white-space: nowrap;
}

.assets-kpi-card__footer {
    display: block;
    margin-top: auto;
    padding-top: 15px;
    color: #8792a7;
    font-size: 12px;
    font-weight: 500;
}

.assets-dashboard-grid {
    display: grid;
    grid-template-columns: minmax(0, 2fr) minmax(300px, 1fr);
    gap: 20px;
}

.assets-panel {
    min-width: 0;
    padding: 24px;
    background: #ffffff;
    border: 1px solid #e2e8f2;
    border-radius: 14px;
    box-shadow: 0 2px 5px rgba(19, 33, 63, 0.03);
}

.assets-panel__header {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 16px;
    margin-bottom: 20px;
}

.assets-panel__header h2 {
    margin: 0;
    color: #12213f;
    font-size: 18px;
    font-weight: 800;
    line-height: 1.3;
}

.assets-panel__header p {
    margin: 5px 0 0;
    color: #718096;
    font-size: 13px;
    line-height: 1.5;
}

.assets-quick-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 14px;
}

.assets-quick-card {
    display: flex;
    align-items: center;
    gap: 14px;
    min-width: 0;
    padding: 17px;
    color: #12213f;
    text-decoration: none;
    background: #f8faff;
    border: 1px solid #e7ecf6;
    border-radius: 12px;
    transition:
        background-color 0.18s ease,
        border-color 0.18s ease,
        transform 0.18s ease;
}

.assets-quick-card:hover {
    color: #12213f;
    text-decoration: none;
    background: #f1f5ff;
    border-color: #bfcdf0;
    transform: translateY(-1px);
}

.assets-quick-card__icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex: 0 0 42px;
    width: 42px;
    height: 42px;
    color: #315fd5;
    font-size: 18px;
    font-weight: 800;
    background: #ffffff;
    border: 1px solid #dbe4f7;
    border-radius: 11px;
}

.assets-quick-card > div {
    min-width: 0;
}

.assets-quick-card strong {
    display: block;
    color: #12213f;
    font-size: 14px;
    font-weight: 700;
}

.assets-quick-card span:not(.assets-quick-card__icon) {
    display: block;
    margin-top: 3px;
    color: #7b879b;
    font-size: 12px;
    line-height: 1.4;
}

.assets-status-list {
    display: flex;
    flex-direction: column;
    gap: 9px;
}

.assets-status-row {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    padding: 14px 16px;
    color: #263755;
    text-decoration: none;
    background: #f8faff;
    border: 1px solid #edf0f6;
    border-radius: 10px;
    transition:
        background-color 0.18s ease,
        border-color 0.18s ease;
}

.assets-status-row:hover {
    color: #263755;
    text-decoration: none;
    background: #f1f5ff;
    border-color: #c8d4ef;
}

.assets-status-row span {
    font-size: 13px;
    font-weight: 600;
}

.assets-status-row strong {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 31px;
    height: 27px;
    padding: 0 8px;
    color: #315fd5;
    font-size: 13px;
    font-weight: 800;
    background: #eaf0ff;
    border-radius: 8px;
}

/* =========================================================
   RESPONSIVE DASHBOARD
   ========================================================= */

@media (max-width: 1400px) {
    .assets-kpi-grid {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }
}

@media (max-width: 1050px) {
    .assets-dashboard-grid {
        grid-template-columns: 1fr;
    }
}

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

    .assets-quick-grid {
        grid-template-columns: 1fr;
    }

    .assets-panel {
        padding: 18px;
    }
}

@media (max-width: 480px) {
    .assets-kpi-grid {
        grid-template-columns: 1fr;
    }

    .assets-kpi-card {
        min-height: 135px;
    }
}

/* =========================================================
   FORMULAIRE ACTIF
   ========================================================= */

.fz-asset-form {
    width: 100%;
}

.fz-form-layout {
    display: grid;
    grid-template-columns: minmax(0, 2fr) minmax(300px, 0.8fr);
    gap: 22px;
    align-items: start;
}

.fz-form-main,
.fz-form-sidebar {
    display: flex;
    min-width: 0;
    flex-direction: column;
    gap: 22px;
}

.fz-form-card {
    overflow: visible;
}

.fz-form-card-body {
    padding: 24px;
}

.fz-form-card-sticky {
    position: sticky;
    top: calc(var(--fz-topbar-height) + 20px);
}

.fz-form-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 20px;
}

.fz-form-stack {
    display: flex;
    flex-direction: column;
    gap: 18px;
}

.fz-form-group {
    display: flex;
    min-width: 0;
    flex-direction: column;
}

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

.fz-form-label {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    margin-bottom: 7px;
    color: #344054;
    font-size: 13px;
    font-weight: 700;
}

.fz-required {
    color: var(--fz-danger);
}

.fz-form-control {
    display: block;
    width: 100%;
    min-width: 0;
    min-height: 44px;
    padding: 10px 13px;
    color: var(--fz-text);
    background: #ffffff;
    border: 1px solid var(--fz-border);
    border-radius: 10px;
    outline: none;
    transition:
        border-color 0.15s ease,
        box-shadow 0.15s ease,
        background-color 0.15s ease;
}

textarea.fz-form-control {
    min-height: 110px;
    resize: vertical;
}

select.fz-form-control {
    padding-right: 36px;
    cursor: pointer;
}

.fz-form-control::placeholder {
    color: #98a2b3;
}

.fz-form-control:hover {
    border-color: #cfd6e3;
}

.fz-form-control:focus {
    border-color: var(--fz-primary);
    box-shadow: 0 0 0 3px rgba(49, 87, 213, 0.12);
}

.fz-form-control.is-invalid {
    border-color: var(--fz-danger);
    background: #fffafa;
}

.fz-form-control.is-invalid:focus {
    box-shadow: 0 0 0 3px rgba(220, 53, 69, 0.12);
}

.fz-form-help,
.fz-form-error {
    display: block;
    margin-top: 6px;
    font-size: 12px;
    line-height: 1.4;
}

.fz-form-help {
    color: var(--fz-text-soft);
}

.fz-form-error {
    color: var(--fz-danger);
    font-weight: 600;
}

.fz-input-with-prefix,
.fz-input-with-suffix {
    position: relative;
    display: flex;
    width: 100%;
    align-items: center;
}

.fz-input-prefix,
.fz-input-suffix {
    position: absolute;
    z-index: 1;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    color: var(--fz-text-soft);
    font-size: 14px;
    font-weight: 700;
    pointer-events: none;
}

.fz-input-prefix {
    left: 13px;
}

.fz-input-suffix {
    right: 13px;
}

.fz-input-with-prefix .fz-form-control {
    padding-left: 38px;
}

.fz-input-with-suffix .fz-form-control {
    padding-right: 38px;
}

.fz-form-actions {
    position: sticky;
    bottom: 0;
    z-index: 20;
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: 12px;
    margin: 24px -30px -30px;
    padding: 16px 30px;
    background: rgba(255, 255, 255, 0.96);
    border-top: 1px solid var(--fz-border);
    backdrop-filter: blur(12px);
}

.fz-alert {
    display: flex;
    align-items: flex-start;
    gap: 13px;
    margin-bottom: 22px;
    padding: 15px 17px;
    border: 1px solid transparent;
    border-radius: 12px;
}

.fz-alert-icon {
    display: inline-flex;
    width: 30px;
    height: 30px;
    flex: 0 0 30px;
    align-items: center;
    justify-content: center;
    border-radius: 50%;
    font-weight: 800;
}

.fz-alert strong {
    display: block;
    margin-bottom: 3px;
}

.fz-alert p {
    margin: 0;
    font-size: 13px;
    line-height: 1.5;
}

.fz-alert-danger {
    color: #842029;
    background: #fff5f5;
    border-color: #f1c7cb;
}

.fz-alert-danger .fz-alert-icon {
    color: #ffffff;
    background: var(--fz-danger);
}

@media (max-width: 1150px) {
    .fz-form-layout {
        grid-template-columns: 1fr;
    }

    .fz-form-sidebar {
        display: grid;
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .fz-form-card-sticky {
        position: static;
    }
}

@media (max-width: 760px) {
    .fz-form-grid,
    .fz-form-sidebar {
        grid-template-columns: 1fr;
    }

    .fz-form-card-body {
        padding: 18px;
    }

    .fz-form-actions {
        margin-right: -16px;
        margin-bottom: -22px;
        margin-left: -16px;
        padding: 14px 16px;
    }

    .fz-form-actions .fz-button {
        flex: 1;
    }
}

/* =========================================================
   ASSIGNATIONS
   ========================================================= */

.fz-assignments-page {
    width: 100%;
}

.fz-assignments-toolbar {
    align-items: center;
    flex-wrap: wrap;
}

.fz-assignments-toolbar .fz-field-search {
    min-width: 260px;
}

.fz-table-wrapper {
    width: 100%;
    overflow-x: auto;
}

.fz-table {
    width: 100%;
    border-collapse: collapse;
    background: #ffffff;
}

.fz-table thead {
    background: #f8faff;
}

.fz-table th {
    padding: 13px 16px;
    color: #667085;
    border-bottom: 1px solid var(--fz-border);
    font-size: 12px;
    font-weight: 800;
    letter-spacing: 0.03em;
    text-align: left;
    text-transform: uppercase;
    white-space: nowrap;
}

.fz-table td {
    padding: 16px;
    color: #344054;
    border-bottom: 1px solid #edf0f5;
    font-size: 13px;
    vertical-align: middle;
}

.fz-table tbody tr:last-child td {
    border-bottom: 0;
}

.fz-table tbody tr:hover {
    background: #fbfcff;
}

.fz-table-primary {
    display: flex;
    min-width: 190px;
    flex-direction: column;
    gap: 3px;
}

.fz-table-primary strong {
    color: var(--fz-text);
    font-size: 14px;
}

.fz-table-primary span,
.fz-table-primary small {
    color: var(--fz-text-soft);
    font-size: 12px;
}

.fz-table-person {
    display: flex;
    min-width: 180px;
    align-items: center;
    gap: 10px;
}

.fz-table-avatar {
    display: inline-flex;
    width: 34px;
    height: 34px;
    flex: 0 0 34px;
    align-items: center;
    justify-content: center;
    color: var(--fz-primary);
    background: var(--fz-primary-soft);
    border-radius: 50%;
    font-size: 12px;
    font-weight: 800;
}

.fz-table-person > div {
    display: flex;
    min-width: 0;
    flex-direction: column;
}

.fz-table-person strong {
    overflow: hidden;
    color: var(--fz-text);
    font-size: 13px;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.fz-table-person span {
    overflow: hidden;
    color: var(--fz-text-soft);
    font-size: 12px;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.fz-type-badge,
.fz-status-badge {
    display: inline-flex;
    min-height: 27px;
    align-items: center;
    justify-content: center;
    padding: 5px 9px;
    border-radius: 999px;
    font-size: 11px;
    font-weight: 800;
    white-space: nowrap;
}

.fz-type-badge {
    color: #344054;
    background: #f2f4f7;
    border: 1px solid #e4e7ec;
}

.fz-status-badge {
    color: #344054;
    background: #f2f4f7;
}

.fz-status-active {
    color: #067647;
    background: #ecfdf3;
    border: 1px solid #abefc6;
}

.fz-status-returned {
    color: #175cd3;
    background: #eff8ff;
    border: 1px solid #b2ddff;
}

.fz-status-cancelled {
    color: #b42318;
    background: #fef3f2;
    border: 1px solid #fecdca;
}

.fz-status-expired {
    color: #b54708;
    background: #fffaeb;
    border: 1px solid #fedf89;
}

.fz-table-actions-column {
    width: 90px;
    text-align: right !important;
}

.fz-table-actions {
    text-align: right;
}

.fz-table-action {
    display: inline-flex;
    min-height: 32px;
    align-items: center;
    justify-content: center;
    padding: 6px 10px;
    color: var(--fz-primary);
    background: var(--fz-primary-soft);
    border: 1px solid #d9e1ff;
    border-radius: 8px;
    font-size: 12px;
    font-weight: 700;
    transition:
        background-color 0.15s ease,
        border-color 0.15s ease;
}

.fz-table-action:hover {
    background: #e4eaff;
    border-color: #bdc9fa;
}

.fz-alert-success {
    color: #05603a;
    background: #ecfdf3;
    border-color: #abefc6;
}

.fz-alert-success .fz-alert-icon {
    color: #ffffff;
    background: #12b76a;
}

.fz-empty-state .fz-button {
    margin-top: 20px;
}

@media (max-width: 900px) {
    .fz-assignments-toolbar {
        align-items: stretch;
    }

    .fz-assignments-toolbar .fz-field-search {
        width: 100%;
        min-width: 100%;
    }
}

@media (max-width: 720px) {
    .fz-assignments-toolbar .fz-button,
    .fz-assignments-toolbar .fz-select {
        width: 100%;
    }

    .fz-card-header .fz-button {
        width: 100%;
    }
}

/* =========================================================
   FORMULAIRE D’ASSIGNATION
   ========================================================= */

.fz-assignment-form {
    width: 100%;
}

.fz-assignment-layout {
    display: grid;
    grid-template-columns: minmax(0, 2fr) minmax(300px, 0.85fr);
    gap: 22px;
    align-items: start;
}

.fz-assignment-main {
    display: flex;
    min-width: 0;
    flex-direction: column;
    gap: 22px;
}

.fz-assignment-sidebar {
    min-width: 0;
}

.fz-assignment-summary-card {
    position: sticky;
    top: calc(var(--fz-topbar-height) + 20px);
}

.fz-assignment-summary {
    display: flex;
    flex-direction: column;
    gap: 10px;
}

.fz-assignment-summary-row {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 18px;
    padding: 13px 14px;
    background: #f8faff;
    border: 1px solid #edf0f6;
    border-radius: 10px;
}

.fz-assignment-summary-row span {
    color: var(--fz-text-soft);
    font-size: 12px;
    font-weight: 600;
}

.fz-assignment-summary-row strong {
    max-width: 58%;
    color: var(--fz-text);
    font-size: 12px;
    font-weight: 750;
    text-align: right;
    overflow-wrap: anywhere;
}

.fz-assignment-info {
    display: flex;
    align-items: flex-start;
    gap: 11px;
    margin-top: 18px;
    padding: 14px;
    color: #344054;
    background: #f1f5ff;
    border: 1px solid #dbe4ff;
    border-radius: 10px;
}

.fz-assignment-info-icon {
    display: inline-flex;
    width: 24px;
    height: 24px;
    flex: 0 0 24px;
    align-items: center;
    justify-content: center;
    color: #ffffff;
    background: var(--fz-primary);
    border-radius: 50%;
    font-size: 12px;
    font-weight: 800;
}

.fz-assignment-info p {
    margin: 0;
    font-size: 12px;
    line-height: 1.55;
}

@media (max-width: 1100px) {
    .fz-assignment-layout {
        grid-template-columns: 1fr;
    }

    .fz-assignment-summary-card {
        position: static;
    }
}

@media (max-width: 720px) {
    .fz-assignment-summary-row {
        flex-direction: column;
        gap: 5px;
    }

    .fz-assignment-summary-row strong {
        max-width: 100%;
        text-align: left;
    }
}

/* =========================================================
   OPÉRATIONS ET MOUVEMENTS
   ========================================================= */

.fz-operations-page {
    width: 100%;
}

.fz-card-header-actions {
    display: flex;
    align-items: center;
    gap: 10px;
    flex-wrap: wrap;
}

.fz-operations-toolbar {
    align-items: center;
    flex-wrap: wrap;
}

.fz-operations-toolbar .fz-field-search {
    min-width: 280px;
}

.fz-operations-table th:nth-child(1) {
    min-width: 210px;
}

.fz-operations-table th:nth-child(2) {
    min-width: 150px;
}

.fz-operations-table th:nth-child(3),
.fz-operations-table th:nth-child(4) {
    min-width: 160px;
}

.fz-operations-table th:nth-child(5) {
    min-width: 145px;
}

.fz-operations-table th:nth-child(6) {
    min-width: 220px;
}

.fz-movement-badge {
    display: inline-flex;
    min-height: 28px;
    align-items: center;
    justify-content: center;
    padding: 5px 10px;
    color: #344054;
    background: #f2f4f7;
    border: 1px solid #e4e7ec;
    border-radius: 999px;
    font-size: 11px;
    font-weight: 800;
    white-space: nowrap;
}

.fz-location-cell {
    display: flex;
    min-width: 0;
    align-items: center;
    gap: 8px;
}

.fz-location-icon {
    display: inline-flex;
    width: 24px;
    height: 24px;
    flex: 0 0 24px;
    align-items: center;
    justify-content: center;
    color: var(--fz-primary);
    background: var(--fz-primary-soft);
    border-radius: 50%;
    font-size: 10px;
}

.fz-location-cell span:last-child {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.fz-date-cell {
    color: #475467;
    font-size: 12px;
    white-space: nowrap;
}

.fz-notes-cell {
    display: block;
    max-width: 300px;
    overflow: hidden;
    color: #475467;
    font-size: 12px;
    line-height: 1.5;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.fz-text-muted {
    color: var(--fz-text-soft);
}

.fz-empty-state-actions {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
    margin-top: 20px;
    flex-wrap: wrap;
}

.fz-empty-table-row:hover {
    background: transparent !important;
}

@media (max-width: 900px) {
    .fz-operations-toolbar {
        align-items: stretch;
    }

    .fz-operations-toolbar .fz-field-search {
        width: 100%;
        min-width: 100%;
    }

    .fz-card-header-actions {
        width: 100%;
    }
}

@media (max-width: 720px) {
    .fz-card-header-actions .fz-button,
    .fz-operations-toolbar .fz-button,
    .fz-operations-toolbar .fz-select {
        width: 100%;
    }

    .fz-empty-state-actions {
        flex-direction: column;
        width: 100%;
    }

    .fz-empty-state-actions .fz-button {
        width: 100%;
    }
}

/* =========================================================
   INVENTAIRE
   ========================================================= */

.fz-inventory-page {
    width: 100%;
}

.fz-inventory-kpis {
    display: grid;
    grid-template-columns: repeat(6, minmax(0, 1fr));
    gap: 14px;
    margin-bottom: 22px;
}

.fz-inventory-kpi {
    display: flex;
    min-width: 0;
    min-height: 104px;
    flex-direction: column;
    justify-content: space-between;
    padding: 17px;
    color: var(--fz-text);
    background: #ffffff;
    border: 1px solid var(--fz-border);
    border-radius: 12px;
    box-shadow: 0 2px 5px rgba(19, 33, 63, 0.03);
    transition:
        transform 0.15s ease,
        border-color 0.15s ease,
        box-shadow 0.15s ease;
}

a.fz-inventory-kpi:hover {
    border-color: #b9c8ef;
    box-shadow: 0 8px 22px rgba(31, 63, 136, 0.08);
    transform: translateY(-2px);
}

.fz-inventory-kpi span {
    color: var(--fz-text-soft);
    font-size: 12px;
    font-weight: 700;
}

.fz-inventory-kpi strong {
    color: var(--fz-text);
    font-size: 27px;
    font-weight: 800;
    line-height: 1;
}

.fz-inventory-kpi-money {
    font-size: 20px !important;
    white-space: nowrap;
}

.fz-inventory-toolbar {
    align-items: center;
    flex-wrap: wrap;
}

.fz-inventory-toolbar .fz-field-search {
    min-width: 300px;
}

.fz-inventory-table th:nth-child(1) {
    min-width: 210px;
}

.fz-inventory-table th:nth-child(2) {
    min-width: 130px;
}

.fz-inventory-table th:nth-child(3) {
    min-width: 140px;
}

.fz-inventory-table th:nth-child(4),
.fz-inventory-table th:nth-child(5) {
    min-width: 170px;
}

.fz-inventory-table th:nth-child(6),
.fz-inventory-table th:nth-child(7) {
    min-width: 120px;
}

.fz-inventory-tag {
    display: inline-flex;
    min-height: 28px;
    align-items: center;
    padding: 5px 9px;
    color: #344054;
    background: #f8faff;
    border: 1px solid #e4e9f2;
    border-radius: 7px;
    font-family: ui-monospace, SFMono-Regular, Consolas, monospace;
    font-size: 11px;
    font-weight: 700;
    white-space: nowrap;
}

.fz-condition-badge {
    display: inline-flex;
    min-height: 27px;
    align-items: center;
    justify-content: center;
    padding: 5px 9px;
    color: #344054;
    background: #f2f4f7;
    border: 1px solid #e4e7ec;
    border-radius: 999px;
    font-size: 11px;
    font-weight: 800;
    white-space: nowrap;
}

.fz-condition-new,
.fz-condition-excellent {
    color: #067647;
    background: #ecfdf3;
    border-color: #abefc6;
}

.fz-condition-good {
    color: #175cd3;
    background: #eff8ff;
    border-color: #b2ddff;
}

.fz-condition-fair {
    color: #b54708;
    background: #fffaeb;
    border-color: #fedf89;
}

.fz-condition-poor,
.fz-condition-damaged,
.fz-condition-broken {
    color: #b42318;
    background: #fef3f2;
    border-color: #fecdca;
}

.fz-status-in_stock {
    color: #067647;
    background: #ecfdf3;
    border: 1px solid #abefc6;
}

.fz-status-assigned {
    color: #175cd3;
    background: #eff8ff;
    border: 1px solid #b2ddff;
}

.fz-status-loaned {
    color: #6941c6;
    background: #f4f3ff;
    border: 1px solid #d9d6fe;
}

.fz-status-reserved {
    color: #b54708;
    background: #fffaeb;
    border: 1px solid #fedf89;
}

.fz-status-in_repair,
.fz-status-maintenance {
    color: #b54708;
    background: #fff6ed;
    border: 1px solid #f9dbaf;
}

.fz-status-lost,
.fz-status-retired,
.fz-status-disposed {
    color: #b42318;
    background: #fef3f2;
    border: 1px solid #fecdca;
}

@media (max-width: 1400px) {
    .fz-inventory-kpis {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }
}

@media (max-width: 900px) {
    .fz-inventory-toolbar {
        align-items: stretch;
    }

    .fz-inventory-toolbar .fz-field-search {
        width: 100%;
        min-width: 100%;
    }
}

@media (max-width: 720px) {
    .fz-inventory-kpis {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .fz-inventory-toolbar .fz-button,
    .fz-inventory-toolbar .fz-select,
    .fz-card-header .fz-button {
        width: 100%;
    }
}

@media (max-width: 480px) {
    .fz-inventory-kpis {
        grid-template-columns: 1fr;
    }
}

/* =========================================================
   REPORTS
   ========================================================= */

.fz-report-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 16px;
    padding: 24px;
}

.fz-report-card {
    display: flex;
    min-height: 110px;
    flex-direction: column;
    justify-content: center;
    gap: 7px;
    padding: 20px;
    color: var(--fz-text);
    background: #f8faff;
    border: 1px solid var(--fz-border);
    border-radius: 12px;
}

.fz-report-card:hover {
    background: #f1f5ff;
    border-color: #bfcdf0;
}

.fz-report-card strong {
    font-size: 15px;
}

.fz-report-card span {
    color: var(--fz-text-soft);
    font-size: 13px;
}

@media (max-width: 720px) {
    .fz-report-grid {
        grid-template-columns: 1fr;
        padding: 18px;
    }
}

/* =========================================================
   RÉPARATIONS, GARANTIES ET RAPPORTS
   ========================================================= */

.fz-repairs-page,
.fz-warranties-page,
.fz-reports-page {
    width: 100%;
}

.fz-repairs-toolbar,
.fz-warranties-toolbar {
    align-items: center;
    flex-wrap: wrap;
}

.fz-repairs-toolbar .fz-field-search,
.fz-warranties-toolbar .fz-field-search {
    min-width: 300px;
}

.fz-table-secondary-text {
    margin-top: 5px;
    color: var(--fz-text-soft);
    font-size: 12px;
}

.fz-warranty-expiration {
    display: flex;
    flex-direction: column;
    gap: 3px;
    white-space: nowrap;
}

.fz-warranty-expiration small {
    color: var(--fz-text-soft);
    font-size: 11px;
}

.fz-warranty-expiration small.is-warning {
    color: #b54708;
    font-weight: 700;
}

.fz-warranty-expiration small.is-expired {
    color: #b42318;
    font-weight: 700;
}

.fz-status-open,
.fz-status-approved,
.fz-status-active {
    color: #067647;
    background: #ecfdf3;
    border: 1px solid #abefc6;
}

.fz-status-pending,
.fz-status-diagnostic {
    color: #b54708;
    background: #fffaeb;
    border: 1px solid #fedf89;
}

.fz-status-in_progress {
    color: #175cd3;
    background: #eff8ff;
    border: 1px solid #b2ddff;
}

.fz-status-completed,
.fz-status-renewed {
    color: #6941c6;
    background: #f4f3ff;
    border: 1px solid #d9d6fe;
}

.fz-status-expired,
.fz-status-cancelled,
.fz-status-rejected,
.fz-status-not_renewed {
    color: #b42318;
    background: #fef3f2;
    border: 1px solid #fecdca;
}

.fz-reports-layout {
    display: grid;
    grid-template-columns: minmax(0, 2fr) minmax(300px, 0.8fr);
    gap: 22px;
    align-items: start;
}

.fz-reports-sidebar {
    display: flex;
    min-width: 0;
    flex-direction: column;
    gap: 22px;
}

.fz-report-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 15px;
    padding: 24px;
}

.fz-report-card {
    display: flex;
    min-width: 0;
    min-height: 125px;
    align-items: flex-start;
    gap: 14px;
    padding: 18px;
    color: var(--fz-text);
    background: #f8faff;
    border: 1px solid var(--fz-border);
    border-radius: 12px;
    transition:
        background-color 0.15s ease,
        border-color 0.15s ease,
        transform 0.15s ease;
}

.fz-report-card:hover {
    color: var(--fz-text);
    background: #f1f5ff;
    border-color: #bdc9ef;
    transform: translateY(-1px);
}

.fz-report-card-icon {
    display: inline-flex;
    width: 42px;
    height: 42px;
    flex: 0 0 42px;
    align-items: center;
    justify-content: center;
    color: var(--fz-primary);
    background: #ffffff;
    border: 1px solid #dbe4f7;
    border-radius: 11px;
    font-size: 17px;
    font-weight: 800;
}

.fz-report-card > div {
    min-width: 0;
}

.fz-report-card strong {
    display: block;
    margin-bottom: 5px;
    font-size: 14px;
}

.fz-report-card span:not(.fz-report-card-icon) {
    color: var(--fz-text-soft);
    font-size: 12px;
    line-height: 1.5;
}

.fz-export-actions {
    display: flex;
    flex-direction: column;
    gap: 10px;
}

.fz-export-actions .fz-button {
    width: 100%;
}

@media (max-width: 1100px) {
    .fz-reports-layout {
        grid-template-columns: 1fr;
    }

    .fz-reports-sidebar {
        display: grid;
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 760px) {
    .fz-report-grid,
    .fz-reports-sidebar {
        grid-template-columns: 1fr;
    }

    .fz-repairs-toolbar .fz-field-search,
    .fz-warranties-toolbar .fz-field-search {
        width: 100%;
        min-width: 100%;
    }

    .fz-repairs-toolbar .fz-select,
    .fz-repairs-toolbar .fz-button,
    .fz-warranties-toolbar .fz-select,
    .fz-warranties-toolbar .fz-button {
        width: 100%;
    }

    .fz-report-grid {
        padding: 18px;
    }

}

/* =========================================================
   FINDZLE ASSETS — FORMULAIRES ET NOUVELLES PAGES
   ========================================================= */

.fz-page-head {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 24px;
    margin-bottom: 28px;
}

.fz-page-head h1 {
    margin: 4px 0 8px;
    color: #072451;
    font-size: clamp(2rem, 3vw, 3rem);
    line-height: 1.08;
    font-weight: 800;
    letter-spacing: -0.035em;
}

.fz-page-head p {
    margin: 0;
    color: #64748b;
    font-size: 1rem;
    line-height: 1.6;
}

.fz-eyebrow {
    display: inline-block;
    margin-bottom: 6px;
    color: #3155e7;
    font-size: 0.78rem;
    font-weight: 800;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

.fz-page-actions {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    flex-wrap: wrap;
    gap: 12px;
}


/* =========================================================
   CARTES
   ========================================================= */

.fz-card {
    margin-bottom: 24px;
    padding: 28px;
    background: #ffffff;
    border: 1px solid #dfe6f1;
    border-radius: 18px;
    box-shadow: 0 12px 32px rgba(15, 35, 70, 0.06);
}

.fz-card-header {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 20px;
    margin-bottom: 22px;
}

.fz-card-header h2,
.fz-card h2 {
    margin: 0 0 6px;
    color: #072451;
    font-size: 1.35rem;
    font-weight: 800;
}

.fz-card-header p,
.fz-card > p {
    margin: 0;
    color: #64748b;
    line-height: 1.5;
}


/* =========================================================
   FORMULAIRES
   ========================================================= */

.fz-form {
    display: flex;
    flex-direction: column;
    gap: 24px;
}

.fz-form-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 20px;
}

.fz-field {
    display: flex;
    flex-direction: column;
    gap: 8px;
    min-width: 0;
}

.fz-field label {
    color: #1f3558;
    font-size: 0.92rem;
    font-weight: 700;
}

.fz-field p {
    margin: 0;
    color: #6b7b93;
    font-size: 0.88rem;
    line-height: 1.45;
}

.fz-field input,
.fz-field select,
.fz-field textarea,
.fz-form input,
.fz-form select,
.fz-form textarea,
.fz-toolbar input,
.fz-toolbar select,
.fz-table form input,
.fz-table form select {
    width: 100%;
    min-height: 54px;
    padding: 0 16px;
    color: #172b4d;
    background: #ffffff;
    border: 1px solid #d9e2ef;
    border-radius: 14px;
    outline: none;
    font: inherit;
    transition:
        border-color 0.2s ease,
        box-shadow 0.2s ease,
        background-color 0.2s ease;
    box-sizing: border-box;
}

.fz-field textarea,
.fz-form textarea {
    min-height: 120px;
    padding-top: 14px;
    padding-bottom: 14px;
    resize: vertical;
}

.fz-field select,
.fz-form select,
.fz-toolbar select,
.fz-table form select {
    appearance: none;
    -webkit-appearance: none;
    padding-right: 46px;
    background-image:
        linear-gradient(45deg, transparent 50%, #17345d 50%),
        linear-gradient(135deg, #17345d 50%, transparent 50%);
    background-position:
        calc(100% - 20px) 50%,
        calc(100% - 14px) 50%;
    background-size:
        6px 6px,
        6px 6px;
    background-repeat: no-repeat;
}

.fz-field input:focus,
.fz-field select:focus,
.fz-field textarea:focus,
.fz-form input:focus,
.fz-form select:focus,
.fz-form textarea:focus,
.fz-toolbar input:focus,
.fz-toolbar select:focus,
.fz-table form input:focus,
.fz-table form select:focus {
    border-color: #3155e7;
    box-shadow: 0 0 0 4px rgba(49, 85, 231, 0.12);
}

.fz-field input::placeholder,
.fz-form input::placeholder,
.fz-toolbar input::placeholder,
.fz-table form input::placeholder {
    color: #94a3b8;
}

.fz-field input:disabled,
.fz-field select:disabled,
.fz-field textarea:disabled {
    cursor: not-allowed;
    color: #7c8ca3;
    background: #f3f6fa;
}


/* =========================================================
   BARRE DE RECHERCHE ET FILTRES
   ========================================================= */

.fz-toolbar {
    display: flex;
    align-items: center;
    justify-content: space-between;
    flex-wrap: wrap;
    gap: 16px;
}

.fz-toolbar__search {
    position: relative;
    display: flex;
    align-items: center;
    flex: 1 1 340px;
    min-width: 240px;
}

.fz-toolbar__search > input {
    padding-left: 44px;
}

.fz-toolbar__search::before {
    content: "⌕";
    position: absolute;
    left: 16px;
    top: 50%;
    z-index: 2;
    color: #667894;
    font-size: 1.15rem;
    transform: translateY(-50%);
    pointer-events: none;
}

.fz-toolbar__search > input:first-child {
    padding-left: 16px;
}

.fz-filter-row {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 12px;
}

.fz-filter-row select {
    width: auto;
    min-width: 190px;
}


/* =========================================================
   BOUTONS
   ========================================================= */

.fz-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    min-height: 46px;
    padding: 0 20px;
    color: #ffffff;
    background: #3155e7;
    border: 1px solid #3155e7;
    border-radius: 12px;
    cursor: pointer;
    font: inherit;
    font-size: 0.92rem;
    font-weight: 700;
    line-height: 1;
    text-decoration: none;
    transition:
        transform 0.15s ease,
        background-color 0.2s ease,
        border-color 0.2s ease,
        box-shadow 0.2s ease;
}

.fz-btn:hover {
    color: #ffffff;
    background: #2445cc;
    border-color: #2445cc;
    box-shadow: 0 8px 18px rgba(49, 85, 231, 0.2);
    transform: translateY(-1px);
}

.fz-btn--ghost {
    color: #20385d;
    background: #ffffff;
    border-color: #d6dfec;
}

.fz-btn--ghost:hover {
    color: #17345d;
    background: #f4f7fb;
    border-color: #bdcadc;
    box-shadow: none;
}


/* =========================================================
   INDICATEURS
   ========================================================= */

.fz-metrics {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 18px;
    margin-bottom: 24px;
}

.fz-metrics--compact {
    grid-template-columns: repeat(4, minmax(0, 1fr));
}

.fz-metric {
    position: relative;
    overflow: hidden;
    min-height: 130px;
    padding: 22px;
    background: #ffffff;
    border: 1px solid #dfe6f1;
    border-radius: 18px;
    box-shadow: 0 10px 28px rgba(15, 35, 70, 0.05);
}

.fz-metric::before {
    content: "";
    position: absolute;
    top: 0;
    right: 0;
    width: 84px;
    height: 84px;
    border-radius: 0 0 0 84px;
    background: rgba(49, 85, 231, 0.07);
}

.fz-metric span {
    display: block;
    margin-bottom: 12px;
    color: #5c6e88;
    font-size: 0.84rem;
    font-weight: 700;
}

.fz-metric strong {
    display: block;
    margin-bottom: 8px;
    color: #072451;
    font-size: 2rem;
    line-height: 1;
}

.fz-metric small {
    color: #8290a5;
    font-size: 0.78rem;
}

.fz-metric.warning::before {
    background: rgba(245, 158, 11, 0.12);
}


/* =========================================================
   TABLEAUX
   ========================================================= */

.fz-table-wrap {
    width: 100%;
    overflow-x: auto;
    border: 1px solid #e2e8f0;
    border-radius: 14px;
}

.fz-table {
    width: 100%;
    border-collapse: collapse;
    background: #ffffff;
}

.fz-table th,
.fz-table td {
    padding: 15px 16px;
    text-align: left;
    vertical-align: middle;
    border-bottom: 1px solid #edf1f6;
}

.fz-table th {
    color: #52647f;
    background: #f7f9fc;
    font-size: 0.76rem;
    font-weight: 800;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    white-space: nowrap;
}

.fz-table td {
    color: #263a5b;
    font-size: 0.9rem;
}

.fz-table tbody tr:last-child td {
    border-bottom: 0;
}

.fz-table tbody tr:hover td {
    background: #fafcff;
}

.fz-table td b {
    color: #102b53;
}

.fz-table td small {
    display: block;
    margin-top: 4px;
    color: #7b8ba2;
}

.fz-table form {
    display: grid;
    grid-template-columns: minmax(160px, 1fr) minmax(140px, 1fr) auto;
    align-items: center;
    gap: 8px;
}

.fz-table form input,
.fz-table form select {
    min-height: 40px;
    padding-top: 0;
    padding-bottom: 0;
    border-radius: 10px;
    font-size: 0.84rem;
}


/* =========================================================
   STATUTS ET ALERTES
   ========================================================= */

.fz-status {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 28px;
    padding: 4px 10px;
    color: #3155e7;
    background: #edf1ff;
    border-radius: 999px;
    font-size: 0.75rem;
    font-weight: 800;
}

.fz-alert {
    margin-bottom: 20px;
    padding: 15px 18px;
    border: 1px solid transparent;
    border-radius: 12px;
    font-size: 0.92rem;
}

.fz-alert-success {
    color: #166534;
    background: #ecfdf3;
    border-color: #bbf7d0;
}

.fz-alert-danger {
    color: #991b1b;
    background: #fef2f2;
    border-color: #fecaca;
}


/* =========================================================
   RESPONSIVE
   ========================================================= */

@media (max-width: 1100px) {
    .fz-metrics,
    .fz-metrics--compact {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 760px) {
    .fz-page-head {
        flex-direction: column;
    }

    .fz-page-actions {
        width: 100%;
        justify-content: flex-start;
    }

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

    .fz-toolbar {
        align-items: stretch;
        flex-direction: column;
    }

    .fz-filter-row {
        align-items: stretch;
        flex-direction: column;
    }

    .fz-filter-row select,
    .fz-filter-row .fz-btn {
        width: 100%;
    }

    .fz-card {
        padding: 20px;
        border-radius: 14px;
    }

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

@media (max-width: 520px) {
    .fz-metrics,
    .fz-metrics--compact {
        grid-template-columns: 1fr;
    }

    .fz-page-head h1 {
        font-size: 2rem;
    }
}    

/* =========================================================
   CONTRATS
   ========================================================= */

.fz-contracts-page {
    width: 100%;
}

.fz-contracts-toolbar {
    align-items: center;
    flex-wrap: wrap;
}

.fz-contracts-toolbar .fz-field-search {
    min-width: 280px;
}

.fz-contracts-page .fz-table th:nth-child(1) {
    min-width: 230px;
}

.fz-contracts-page .fz-table th:nth-child(3) {
    min-width: 160px;
}

.fz-contracts-page .fz-table th:nth-child(4),
.fz-contracts-page .fz-table th:nth-child(5),
.fz-contracts-page .fz-table th:nth-child(6) {
    min-width: 125px;
}

@media (max-width: 900px) {
    .fz-contracts-toolbar {
        align-items: stretch;
    }

    .fz-contracts-toolbar .fz-field-search {
        width: 100%;
        min-width: 100%;
    }
}

@media (max-width: 720px) {
    .fz-contracts-toolbar .fz-select,
    .fz-contracts-toolbar .fz-button {
        width: 100%;
    }
}

/* =========================================================
   ALERTES
   ========================================================= */

.fz-alerts-page {
    width: 100%;
}

.fz-alerts-toolbar {
    align-items: center;
    flex-wrap: wrap;
}

.fz-alerts-toolbar .fz-field-search {
    min-width: 280px;
}

.fz-alert-severity {
    display: inline-flex;
    min-height: 27px;
    align-items: center;
    justify-content: center;
    padding: 5px 9px;
    border: 1px solid transparent;
    border-radius: 999px;
    font-size: 11px;
    font-weight: 800;
    white-space: nowrap;
}

.fz-alert-severity-info,
.fz-alert-severity-low {
    color: #175cd3;
    background: #eff8ff;
    border-color: #b2ddff;
}

.fz-alert-severity-warning {
    color: #b54708;
    background: #fffaeb;
    border-color: #fedf89;
}

.fz-alert-severity-high {
    color: #c4320a;
    background: #fff6ed;
    border-color: #f9dbaf;
}

.fz-alert-severity-critical {
    color: #b42318;
    background: #fef3f2;
    border-color: #fecdca;
}

.fz-alerts-page .fz-table th:nth-child(1) {
    min-width: 240px;
}

.fz-alerts-page .fz-table th:nth-child(4) {
    min-width: 180px;
}

.fz-alerts-page .fz-table th:nth-child(5),
.fz-alerts-page .fz-table th:nth-child(6) {
    min-width: 150px;
}

@media (max-width: 950px) {
    .fz-alerts-toolbar {
        align-items: stretch;
    }

    .fz-alerts-toolbar .fz-field-search {
        width: 100%;
        min-width: 100%;
    }
}

@media (max-width: 720px) {
    .fz-alerts-toolbar .fz-select,
    .fz-alerts-toolbar .fz-button {
        width: 100%;
    }
}

/* =========================================================
   PARAMÈTRES ASSETS
   ========================================================= */

.fz-settings-page,
.fz-settings-form {
    width: 100%;
}

.fz-settings-layout {
    display: grid;
    grid-template-columns:
        minmax(0, 2fr)
        minmax(280px, 0.7fr);
    gap: 22px;
    align-items: start;
}

.fz-settings-main {
    display: flex;
    min-width: 0;
    flex-direction: column;
    gap: 22px;
}

.fz-settings-main .fz-card {
    margin-bottom: 0;
    padding: 0;
}

.fz-settings-sidebar {
    min-width: 0;
}

.fz-settings-summary {
    position: sticky;
    top: calc(var(--fz-topbar-height) + 20px);
    padding: 0;
}

.fz-settings-card-body {
    padding: 24px;
}

.fz-settings-options {
    display: flex;
    flex-direction: column;
    gap: 12px;
    margin-top: 22px;
}

.fz-settings-option {
    position: relative;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 24px;
    min-height: 74px;
    padding: 16px;
    cursor: pointer;
    background: #f8faff;
    border: 1px solid var(--fz-border);
    border-radius: 12px;
}

.fz-settings-option > span:first-child {
    display: flex;
    min-width: 0;
    flex-direction: column;
    gap: 4px;
}

.fz-settings-option strong {
    color: var(--fz-text);
    font-size: 13px;
}

.fz-settings-option small {
    color: var(--fz-text-soft);
    font-size: 12px;
    line-height: 1.5;
}

.fz-settings-option input {
    position: absolute;
    width: 1px;
    height: 1px;
    opacity: 0;
}

.fz-switch {
    position: relative;
    width: 46px;
    height: 26px;
    flex: 0 0 46px;
    background: #d0d5dd;
    border-radius: 999px;
    transition: background-color 0.15s ease;
}

.fz-switch::after {
    content: "";
    position: absolute;
    top: 3px;
    left: 3px;
    width: 20px;
    height: 20px;
    background: #ffffff;
    border-radius: 50%;
    box-shadow: 0 1px 4px rgba(16, 24, 40, 0.24);
    transition: transform 0.15s ease;
}

.fz-settings-option input:checked + .fz-switch {
    background: var(--fz-primary);
}

.fz-settings-option input:checked + .fz-switch::after {
    transform: translateX(20px);
}

.fz-settings-summary-row {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    padding: 13px 0;
    border-bottom: 1px solid var(--fz-border);
}

.fz-settings-summary-row:last-child {
    border-bottom: 0;
}

.fz-settings-summary-row span {
    color: var(--fz-text-soft);
    font-size: 12px;
}

.fz-settings-summary-row strong {
    color: var(--fz-text);
    font-size: 13px;
}

.fz-settings-actions {
    position: sticky;
    bottom: 0;
    z-index: 20;
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: 12px;
    margin: 24px -30px -30px;
    padding: 16px 30px;
    background: rgba(255, 255, 255, 0.96);
    border-top: 1px solid var(--fz-border);
    backdrop-filter: blur(12px);
}

@media (max-width: 1050px) {
    .fz-settings-layout {
        grid-template-columns: 1fr;
    }

    .fz-settings-summary {
        position: static;
    }
}

@media (max-width: 720px) {
    .fz-settings-card-body {
        padding: 18px;
    }

    .fz-settings-option {
        align-items: flex-start;
    }

    .fz-settings-actions {
        margin-right: -16px;
        margin-bottom: -22px;
        margin-left: -16px;
        padding: 14px 16px;
    }

    .fz-settings-actions .fz-button {
        flex: 1;
    }
}

.fz-sidebar-user {
    flex-shrink: 0;
    padding: 14px 16px;
    border-top: 1px solid #e5e7eb;
    background: #ffffff;
}

.fz-sidebar-user-button {
    appearance: none;
    width: 100%;
    min-width: 0;
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 10px;
    margin: 0;
    border: 0;
    border-radius: 14px;
    background: transparent;
    color: #111827;
    font: inherit;
    text-align: left;
    cursor: pointer;
    box-shadow: none;
    outline: none;
    transition:
        background-color 0.2s ease,
        transform 0.2s ease;
}

.fz-sidebar-user-button:hover {
    background: #f3f6ff;
}

.fz-sidebar-user-button:focus-visible {
    outline: 3px solid rgba(49, 89, 217, 0.2);
    outline-offset: 2px;
}

.fz-sidebar-user-avatar {
    flex: 0 0 44px;
    width: 44px;
    height: 44px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 50%;
    background: #eef2ff;
    color: #3159d9;
    font-size: 15px;
    font-weight: 800;
    line-height: 1;
    letter-spacing: -0.02em;
}

.fz-sidebar-user-info {
    flex: 1;
    min-width: 0;
    display: flex;
    flex-direction: column;
    gap: 3px;
}

.fz-sidebar-user-name {
    display: block;
    min-width: 0;
    overflow: hidden;
    color: #111827;
    font-size: 14px;
    font-weight: 700;
    line-height: 1.25;
    white-space: nowrap;
    text-overflow: ellipsis;
}

.fz-sidebar-user-account {
    display: block;
    min-width: 0;
    overflow: hidden;
    color: #64748b;
    font-size: 12px;
    font-weight: 500;
    line-height: 1.25;
    white-space: nowrap;
    text-overflow: ellipsis;
}

.fz-sidebar-user-arrow {
    flex: 0 0 auto;
    margin-left: 4px;
    color: #94a3b8;
    font-size: 12px;
    line-height: 1;
}

/* =========================================================
   Réduction du menu latéral Assets
   ========================================================= */

.fz-sidebar {
    transition:
        width 0.22s ease,
        min-width 0.22s ease,
        transform 0.22s ease,
        opacity 0.16s ease;
}

.fz-assets-main {
    transition:
        width 0.22s ease,
        margin-left 0.22s ease;
}

/* =========================================================
   CONTACTS - SIDEBAR RÉDUITE DESKTOP
   ========================================================= */

@media (min-width: 901px) {

    body.fz-sidebar-collapsed {
        --fz-sidebar: 74px;
    }

    body.fz-sidebar-collapsed #assets-sidebar {
        width: 74px !important;
        min-width: 74px !important;
        opacity: 1 !important;
        visibility: visible !important;
        pointer-events: auto !important;
        transform: none !important;
        overflow-x: hidden;
    }

    body.fz-sidebar-collapsed .fz-assets-main {
        margin-left: 74px !important;
        width: calc(100% - 74px) !important;
    }

    body.fz-sidebar-collapsed .fz-brand-text,
    body.fz-sidebar-collapsed .contacts-context-selector,
    body.fz-sidebar-collapsed .fz-nav-section-title,
    body.fz-sidebar-collapsed .fz-sidebar-section-title,
    body.fz-sidebar-collapsed .fz-sidebar-link-label {
        display: none !important;
    }

    body.fz-sidebar-collapsed .fz-sidebar-brand {
        justify-content: center;
        padding-left: 0;
        padding-right: 0;
    }

    body.fz-sidebar-collapsed .fz-brand-link {
        justify-content: center;
    }

    body.fz-sidebar-collapsed .fz-brand-icon {
        margin: 0 auto;
    }

    body.fz-sidebar-collapsed .fz-nav-link,
    body.fz-sidebar-collapsed .fz-sidebar-link {
        justify-content: center;
        padding-left: 0 !important;
        padding-right: 0 !important;
    }

    body.fz-sidebar-collapsed .fz-nav-icon,
    body.fz-sidebar-collapsed .fz-sidebar-link-icon {
        margin: 0 !important;
    }

    body.fz-sidebar-collapsed .fz-sidebar-section,
    body.fz-sidebar-collapsed .fz-nav-section {
        padding-left: 0;
        padding-right: 0;
    }
}

/*
 * Sécurité pour empêcher une ancienne marge de rester active.
 */
body.fz-sidebar-collapsed .fz-topbar,
body.fz-sidebar-collapsed .fz-assets-content {
    width: 100%;
    max-width: none;
    margin-left: 0;
}

/* Notifications */
.fz-notifications-wrapper {
    position: relative;
}

.fz-notifications-panel {
    position: absolute;
    top: calc(100% + 12px);
    right: 0;
    z-index: 1200;
    width: min(380px, calc(100vw - 30px));
    overflow: hidden;
    background: #fff;
    border: 1px solid #e1e7f0;
    border-radius: 16px;
    box-shadow: 0 18px 50px rgba(23, 37, 61, 0.16);
}

.fz-notifications-panel[hidden] {
    display: none !important;
}

.fz-notifications-panel.is-open {
    display: block;
}

.fz-notifications-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    min-height: 58px;
    padding: 12px 16px;
    border-bottom: 1px solid #edf0f5;
}

.fz-notifications-content {
    padding: 20px 16px;
    color: #64748b;
}

.fz-notifications-content p {
    margin: 0;
}

.fz-notifications-close {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 34px;
    height: 34px;
    padding: 0;
    font-size: 24px;
    line-height: 1;
    color: #64748b;
    cursor: pointer;
    background: transparent;
    border: 0;
    border-radius: 10px;
}

.fz-notifications-close:hover {
    color: #17233d;
    background: #f3f6fa;
}

@media (max-width: 900px) {
    body:not(.fz-sidebar-collapsed) .fz-sidebar {
        position: fixed;
        top: 0;
        bottom: 0;
        left: 0;
        z-index: 1300;
        transform: translateX(0);
    }

    body.fz-sidebar-collapsed .fz-sidebar {
        transform: translateX(-100%);
    }
}

/* =========================================================
   Page de session expirée
   ========================================================= */

.fz-session-page {
    min-height: calc(100vh - var(--fz-topbar-height, 72px));
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 40px 24px;
    background:
        radial-gradient(
            circle at top center,
            rgba(46, 111, 255, 0.08),
            transparent 42%
        ),
        var(--fz-page-background, #f5f7fb);
}

.fz-session-card {
    width: 100%;
    max-width: 560px;
    display: flex;
    align-items: flex-start;
    gap: 22px;
    padding: 36px;
    background: var(--fz-surface, #ffffff);
    border: 1px solid var(--fz-border-color, #e2e7ef);
    border-radius: 18px;
    box-shadow:
        0 20px 50px rgba(15, 23, 42, 0.08),
        0 4px 12px rgba(15, 23, 42, 0.04);
}

.fz-session-icon {
    flex: 0 0 auto;
    width: 64px;
    height: 64px;
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--fz-primary, #2563eb);
    background: rgba(37, 99, 235, 0.1);
    border-radius: 16px;
}

.fz-session-content {
    min-width: 0;
}

.fz-session-eyebrow {
    display: block;
    margin-bottom: 8px;
    color: var(--fz-primary, #2563eb);
    font-size: 0.75rem;
    font-weight: 700;
    letter-spacing: 0.08em;
    line-height: 1.3;
    text-transform: uppercase;
}

.fz-session-content h1 {
    margin: 0 0 12px;
    color: var(--fz-heading-color, #172033);
    font-size: clamp(1.65rem, 4vw, 2rem);
    font-weight: 750;
    line-height: 1.2;
}

.fz-session-content > p {
    margin: 0;
    color: var(--fz-muted-color, #64748b);
    font-size: 0.98rem;
    line-height: 1.7;
}

.fz-session-actions {
    display: flex;
    margin-top: 26px;
}

.fz-session-button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
    min-height: 46px;
    padding: 0 20px;
    text-decoration: none;
}

.fz-session-note {
    margin-top: 18px !important;
    font-size: 0.82rem !important;
    line-height: 1.5 !important;
}

@media (max-width: 640px) {
    .fz-session-page {
        align-items: flex-start;
        padding: 24px 16px;
    }

    .fz-session-card {
        flex-direction: column;
        padding: 26px 22px;
        border-radius: 14px;
    }

    .fz-session-icon {
        width: 56px;
        height: 56px;
    }

    .fz-session-actions,
    .fz-session-button {
        width: 100%;
    }
}

.fz-onboarding-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 20px;
    margin-bottom: 24px;
}

.fz-onboarding-card {
    display: grid;
    grid-template-columns: auto 1fr auto;
    align-items: flex-start;
    gap: 18px;

    min-height: 180px;
    padding: 24px;

    color: inherit;
    text-decoration: none;

    background: var(--fz-surface, #ffffff);
    border: 1px solid var(--fz-border, #e4e8ef);
    border-radius: 18px;

    transition:
        transform 160ms ease,
        border-color 160ms ease,
        box-shadow 160ms ease;
}

.fz-onboarding-card:hover {
    transform: translateY(-2px);
    border-color: #b8c8f6;
    box-shadow: 0 14px 35px rgba(30, 55, 100, 0.09);
}

.fz-onboarding-card h2 {
    margin: 0 0 8px;
    font-size: 18px;
}

.fz-onboarding-card p {
    margin: 0;
    color: #667085;
    line-height: 1.55;
}

.fz-onboarding-icon {
    display: grid;
    place-items: center;

    width: 44px;
    height: 44px;

    color: #3157c8;
    font-size: 22px;
    font-weight: 700;

    background: #edf2ff;
    border-radius: 13px;
}

.fz-onboarding-arrow {
    color: #667085;
    font-size: 22px;
}

.fz-info-panel {
    display: flex;
    gap: 16px;
    align-items: flex-start;

    padding: 20px 22px;

    background: #f6f8ff;
    border: 1px solid #dfe6ff;
    border-radius: 16px;
}

.fz-info-panel-icon {
    display: grid;
    place-items: center;

    flex: 0 0 auto;
    width: 32px;
    height: 32px;

    color: #ffffff;
    font-weight: 700;

    background: #3157c8;
    border-radius: 50%;
}

.fz-info-panel h2 {
    margin: 0 0 5px;
    font-size: 16px;
}

.fz-info-panel p {
    margin: 0;
    color: #596579;
    line-height: 1.55;
}

.fz-form-layout {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 320px;
    gap: 24px;
    align-items: start;
}

.fz-form-main {
    display: grid;
    gap: 20px;
}

.fz-form-sidebar {
    min-width: 0;
}

.fz-sticky-card {
    position: sticky;
    top: 88px;
}

.fz-form-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 18px;
}

.fz-field {
    display: flex;
    flex-direction: column;
    gap: 7px;
}

.fz-field-full {
    grid-column: 1 / -1;
}

.fz-field label {
    color: #344054;
    font-size: 14px;
    font-weight: 650;
}

.fz-field input,
.fz-field select,
.fz-field textarea {
    width: 100%;
    min-height: 44px;
    padding: 10px 12px;

    color: #1d2939;
    font: inherit;

    background: #ffffff;
    border: 1px solid #d0d5dd;
    border-radius: 10px;

    outline: none;
}

.fz-field textarea {
    min-height: 120px;
    resize: vertical;
}

.fz-field input:focus,
.fz-field select:focus,
.fz-field textarea:focus {
    border-color: #5477da;
    box-shadow: 0 0 0 3px rgba(84, 119, 218, 0.14);
}

.fz-check {
    display: inline-flex;
    flex-direction: row;
    align-items: center;
    gap: 8px;

    margin-top: 4px;

    color: #667085;
    font-size: 13px;
    font-weight: 400;
}

.fz-check input {
    width: 16px;
    min-height: 16px;
    height: 16px;
}

.fz-input-prefix {
    display: grid;
    grid-template-columns: auto 1fr;
    align-items: center;

    background: #ffffff;
    border: 1px solid #d0d5dd;
    border-radius: 10px;
    overflow: hidden;
}

.fz-input-prefix span {
    padding: 0 12px;
    color: #667085;
}

.fz-input-prefix input {
    border: 0;
    border-left: 1px solid #e4e7ec;
    border-radius: 0;
}

.fz-summary-list {
    margin: 0 0 20px;
}

.fz-summary-list div {
    display: flex;
    justify-content: space-between;
    gap: 20px;

    padding: 12px 0;

    border-bottom: 1px solid #eaecf0;
}

.fz-summary-list dt {
    color: #667085;
}

.fz-summary-list dd {
    margin: 0;
    color: #1d2939;
    font-weight: 650;
    text-align: right;
}

.fz-button-block {
    display: flex;
    width: 100%;
    justify-content: center;
    margin-top: 10px;
}

.fz-upload-zone {
    position: relative;
    padding: 20px;
}

.fz-upload-zone input[type="file"] {
    position: absolute;
    width: 1px;
    height: 1px;
    opacity: 0;
}

.fz-upload-zone label {
    display: grid;
    justify-items: center;
    gap: 8px;

    padding: 48px 20px;

    cursor: pointer;

    background: #fafbfc;
    border: 2px dashed #cfd5df;
    border-radius: 16px;
}

.fz-upload-zone label:hover {
    background: #f6f8ff;
    border-color: #8aa3e8;
}

.fz-upload-icon {
    font-size: 34px;
    color: #3157c8;
}

.fz-form-actions {
    display: flex;
    justify-content: flex-end;
    padding: 0 20px 20px;
}

@media (max-width: 1100px) {
    .fz-onboarding-grid {
        grid-template-columns: 1fr;
    }

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

    .fz-sticky-card {
        position: static;
    }
}

@media (max-width: 700px) {
    .fz-form-grid {
        grid-template-columns: 1fr;
    }

    .fz-field-full {
        grid-column: auto;
    }

    .fz-onboarding-card {
        grid-template-columns: auto 1fr;
    }

    .fz-onboarding-arrow {
        display: none;
    }
}

.fz-page-actions-right {
    display: flex;
    justify-content: flex-end;
    align-items: center;
    gap: 12px;

    margin-top: 12px;
    margin-bottom: 28px;

    flex-wrap: wrap;
}

.fz-stats-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 18px;
    margin: 0 0 28px;
}

.fz-stat-card {
    display: flex;
    flex-direction: column;
    gap: 8px;

    min-height: 120px;
    padding: 22px;

    background: #ffffff;
    border: 1px solid #dfe5ef;
    border-radius: 16px;

    box-shadow: 0 8px 24px rgba(15, 35, 70, 0.05);
}

.fz-stat-card span {
    color: #667085;
    font-size: 14px;
    font-weight: 600;
}

.fz-stat-card strong {
    color: #0d2348;
    font-size: 34px;
    font-weight: 800;
    line-height: 1;
}

.fz-stat-card:hover {
    border-color: #b9c8ee;
    box-shadow: 0 12px 30px rgba(15, 35, 70, 0.08);
}

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

@media (max-width: 650px) {
    .fz-stats-grid {
        grid-template-columns: 1fr;
    }
}

.fz-table-muted {
    margin-top: 4px;
    color: #667085;
    font-size: 13px;
}

.fz-campaign-progress {
    min-width: 160px;
}

.fz-progress-track {
    width: 100%;
    height: 8px;
    margin-bottom: 6px;

    background: #e9edf5;
    border-radius: 999px;
    overflow: hidden;
}

.fz-progress-track span {
    display: block;
    height: 100%;

    background: #3157d5;
    border-radius: inherit;
}

.fz-campaign-progress small {
    color: #667085;
}

.fz-status-badge {
    display: inline-flex;
    align-items: center;

    padding: 6px 10px;

    font-size: 12px;
    font-weight: 700;

    background: #eef2f7;
    border-radius: 999px;
}

.fz-status-in_progress {
    color: #1f4bc4;
    background: #eaf0ff;
}

.fz-status-validation {
    color: #9a6700;
    background: #fff4d6;
}

.fz-status-completed {
    color: #087443;
    background: #ddf7ea;
}

.fz-status-cancelled {
    color: #b42318;
    background: #fee4e2;
}

.fz-filter-form {
    padding: 0 24px 24px;
}

.fz-card-header-actions {
    display: flex;
    align-items: center;
    gap: 10px;
}

.fz-table-actions {
    width: 1%;
    white-space: nowrap;
    text-align: right;
}

.fz-button-small {
    min-height: 34px;
    padding: 7px 11px;
    font-size: 13px;
}

.fz-stat-value-small {
    font-size: 24px !important;
    line-height: 1.2 !important;
}

.fz-empty-state-actions {
    display: flex;
    justify-content: center;
    gap: 12px;
    margin-top: 20px;
    flex-wrap: wrap;
}

.fz-stock-status-available {
    color: #087443;
    background: #ddf7ea;
}

.fz-stock-status-low {
    color: #9a6700;
    background: #fff4d6;
}

.fz-stock-status-out {
    color: #b42318;
    background: #fee4e2;
}

.fz-status-draft {
    color: #475467;
    background: #f2f4f7;
}

.fz-status-submitted,
.fz-status-approved,
.fz-status-ordered {
    color: #1f4bc4;
    background: #eaf0ff;
}

.fz-status-partial {
    color: #9a6700;
    background: #fff4d6;
}

.fz-status-received,
.fz-status-closed {
    color: #087443;
    background: #ddf7ea;
}

.fz-status-cancelled {
    color: #b42318;
    background: #fee4e2;
}

.fz-movement-type-stock_in,
.fz-movement-type-receipt,
.fz-movement-type-opening_balance,
.fz-movement-type-return,
.fz-movement-type-returned {
    color: #087443;
    background: #ddf7ea;
}

.fz-movement-type-stock_out,
.fz-movement-type-lost,
.fz-movement-type-disposed {
    color: #b42318;
    background: #fee4e2;
}

.fz-movement-type-transfer,
.fz-movement-type-transferred,
.fz-movement-type-assignment,
.fz-movement-type-assigned,
.fz-movement-type-loan,
.fz-movement-type-loaned {
    color: #1f4bc4;
    background: #eaf0ff;
}

@media (max-width: 760px) {
    .fz-filter-form {
        padding: 0 16px 18px;
    }

    .fz-card-header-actions {
        width: 100%;
    }
}

.fz-physical-count-layout {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 340px;
    gap: 24px;
    align-items: start;
}

.fz-physical-count-main {
    display: grid;
    gap: 24px;
    min-width: 0;
}

.fz-physical-count-sidebar {
    min-width: 0;
}

.fz-physical-count-sidebar form {
    display: grid;
    gap: 16px;
}

@media (max-width: 1100px) {
    .fz-physical-count-layout {
        grid-template-columns: 1fr;
    }

    .fz-physical-count-sidebar .fz-sticky-card {
        position: static;
    }
}

/* =========================================================
   Lanceur d'applications Findzle
   ========================================================= */

.fz-app-launcher {
    position: relative;
    display: inline-flex;
    align-items: center;
}

.fz-app-launcher-button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
}

.fz-nine-dots {
    display: grid;
    grid-template-columns: repeat(3, 4px);
    grid-template-rows: repeat(3, 4px);
    gap: 3px;
    width: 18px;
    height: 18px;
    align-content: center;
    justify-content: center;
}

.fz-nine-dots span {
    display: block;
    width: 4px;
    height: 4px;
    border-radius: 1px;
    background: currentColor;
}

.fz-app-launcher-menu {
    position: absolute;
    top: calc(100% + 12px);
    right: 0;
    z-index: 2000;

    width: min(420px, calc(100vw - 24px));
    max-height: calc(100vh - 95px);

    overflow: hidden;

    background: #ffffff;
    border: 1px solid #dfe6f2;
    border-radius: 18px;

    box-shadow:
        0 20px 50px rgba(15, 23, 42, 0.16),
        0 4px 14px rgba(15, 23, 42, 0.08);
}

.fz-app-launcher-menu[hidden] {
    display: none;
}

.fz-app-launcher-header {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 16px;

    padding: 20px 20px 14px;
}

.fz-app-launcher-header strong {
    display: block;
    color: #172033;
    font-size: 17px;
    line-height: 1.25;
}

.fz-app-launcher-header span {
    display: block;
    margin-top: 3px;
    color: #6b7485;
    font-size: 13px;
}

.fz-app-launcher-close {
    display: inline-flex;
    align-items: center;
    justify-content: center;

    width: 34px;
    height: 34px;

    border: 0;
    border-radius: 10px;

    background: transparent;
    color: #5f6878;
    cursor: pointer;

    font-size: 24px;
    line-height: 1;
}

.fz-app-launcher-close:hover {
    background: #f2f5fa;
    color: #172033;
}

.fz-app-launcher-search {
    padding: 0 20px 16px;
}

.fz-app-launcher-search input {
    width: 100%;
    height: 42px;

    padding: 0 14px;

    border: 1px solid #dce3ef;
    border-radius: 11px;

    background: #f8faff;
    color: #172033;

    font: inherit;
    outline: none;
}

.fz-app-launcher-search input:focus {
    border-color: #3b5ddd;
    background: #ffffff;
    box-shadow: 0 0 0 3px rgba(59, 93, 221, 0.12);
}

.fz-app-launcher-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 8px;

    max-height: 470px;
    padding: 0 14px 16px;

    overflow-y: auto;
}

.fz-app-launcher-item {
    position: relative;

    display: flex;
    min-width: 0;
    min-height: 108px;

    flex-direction: column;
    align-items: center;
    justify-content: flex-start;

    padding: 14px 8px 10px;

    border: 1px solid transparent;
    border-radius: 14px;

    color: #23304a;
    text-align: center;
    text-decoration: none;

    transition:
        background-color 0.16s ease,
        border-color 0.16s ease,
        transform 0.16s ease;
}

.fz-app-launcher-item:hover {
    background: #f4f7ff;
    border-color: #dce5ff;
    transform: translateY(-1px);
}

.fz-app-launcher-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;

    width: 46px;
    height: 46px;

    margin-bottom: 8px;

    border-radius: 13px;

    background: #edf2ff;
    color: #3157d5;
}

.fz-app-launcher-icon svg {
    width: 25px;
    height: 25px;

    fill: none;
    stroke: currentColor;
    stroke-width: 1.8;
    stroke-linecap: round;
    stroke-linejoin: round;
}

.fz-app-launcher-name {
    display: block;
    width: 100%;

    overflow: hidden;

    color: #25304a;
    font-size: 13px;
    font-weight: 700;
    line-height: 1.25;

    text-overflow: ellipsis;
    white-space: nowrap;
}

.fz-app-launcher-badge {
    display: inline-flex;
    align-items: center;
    justify-content: center;

    min-height: 18px;
    margin-top: 5px;
    padding: 1px 7px;

    border-radius: 999px;

    background: #eaf8ef;
    color: #218451;

    font-size: 10px;
    font-weight: 700;
}

.fz-app-launcher-badge.is-locked {
    background: #f1f3f7;
    color: #747d8e;
}

.fz-app-launcher-item.no-access .fz-app-launcher-icon {
    background: #f1f3f7;
    color: #7a8495;
}

.fz-app-launcher-footer {
    padding: 14px 20px;

    border-top: 1px solid #e7ebf2;
    background: #fafbfe;

    text-align: center;
}

.fz-app-launcher-footer a {
    color: #3157d5;
    font-size: 13px;
    font-weight: 700;
    text-decoration: none;
}

.fz-app-launcher-footer a:hover {
    text-decoration: underline;
}

@media (max-width: 640px) {
    .fz-app-launcher-menu {
        position: fixed;
        top: 72px;
        right: 12px;
        left: 12px;

        width: auto;
        max-height: calc(100vh - 84px);
    }

    .fz-app-launcher-grid {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }
}

/* =========================================================
   Actions du header
   ========================================================= */

.fz-topbar-actions {
    position: relative;
    display: flex;
    align-items: center;
    gap: 14px;
}

.fz-header-action-button {
    appearance: none;
    -webkit-appearance: none;

    display: inline-flex;
    align-items: center;
    justify-content: center;

    width: 54px;
    height: 54px;
    min-width: 54px;

    padding: 0;

    border: 1px solid #dde5f1;
    border-radius: 16px;

    background: #ffffff;
    color: #172033;

    font: inherit;
    cursor: pointer;

    box-shadow: none;
}

.fz-header-action-button:hover {
    background: #f7f9fd;
    border-color: #cdd8e8;
}

.fz-user-avatar {
    appearance: none;
    -webkit-appearance: none;

    display: inline-flex;
    align-items: center;
    justify-content: center;

    width: 50px;
    height: 50px;
    min-width: 50px;

    padding: 0;
    margin: 0;

    border: 0;
    border-radius: 50%;

    background: #eef2ff;
    color: #3157d5;

    font-family: inherit;
    font-size: 16px;
    font-weight: 700;
    line-height: 1;

    cursor: pointer;
    box-shadow: none;
}

.fz-user-avatar:hover {
    background: #e2e9ff;
}

/* =========================================================
   Bouton neuf points
   ========================================================= */

.fz-app-launcher {
    position: relative;
    display: inline-flex;
    align-items: center;
}

.fz-nine-dots {
    display: grid;
    grid-template-columns: repeat(3, 4px);
    grid-template-rows: repeat(3, 4px);
    gap: 4px;

    width: 20px;
    height: 20px;

    align-content: center;
    justify-content: center;
}

.fz-nine-dots span {
    display: block;

    width: 4px;
    height: 4px;

    border-radius: 1px;
    background: #1c2d50;
}

/* =========================================================
   Fenêtre des applications
   ========================================================= */

.fz-app-launcher-menu {
    position: absolute;

    top: calc(100% + 12px);
    right: 0;

    z-index: 99999;

    width: 420px;
    max-width: calc(100vw - 24px);
    max-height: calc(100vh - 100px);

    overflow: hidden;

    border: 1px solid #dfe6f1;
    border-radius: 18px;

    background: #ffffff;

    box-shadow:
        0 20px 50px rgba(15, 23, 42, 0.18),
        0 4px 14px rgba(15, 23, 42, 0.08);
}

.fz-app-launcher-menu[hidden] {
    display: none !important;
}

.fz-app-launcher-header {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 15px;

    padding: 20px 20px 14px;
}

.fz-app-launcher-header strong {
    display: block;

    color: #172033;
    font-size: 17px;
}

.fz-app-launcher-header span {
    display: block;

    margin-top: 3px;

    color: #6b7485;
    font-size: 13px;
}

.fz-app-launcher-close {
    appearance: none;
    -webkit-appearance: none;

    display: inline-flex;
    align-items: center;
    justify-content: center;

    width: 34px;
    height: 34px;

    padding: 0;

    border: 0;
    border-radius: 10px;

    background: transparent;
    color: #667085;

    font-size: 24px;
    line-height: 1;

    cursor: pointer;
}

.fz-app-launcher-close:hover {
    background: #f2f5fa;
}

.fz-app-launcher-search {
    padding: 0 20px 16px;
}

.fz-app-launcher-search input {
    box-sizing: border-box;

    width: 100%;
    height: 42px;

    padding: 0 14px;

    border: 1px solid #dce3ef;
    border-radius: 11px;

    background: #f8faff;
    color: #172033;

    font: inherit;
    outline: none;
}

.fz-app-launcher-search input:focus {
    border-color: #3157d5;
    background: #ffffff;
    box-shadow: 0 0 0 3px rgba(49, 87, 213, 0.12);
}

.fz-app-launcher-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 8px;

    max-height: 460px;
    overflow-y: auto;

    padding: 0 14px 16px;
}

.fz-app-launcher-item {
    box-sizing: border-box;

    display: flex;
    min-width: 0;
    min-height: 112px;

    flex-direction: column;
    align-items: center;
    justify-content: flex-start;

    padding: 14px 8px 10px;

    border: 1px solid transparent;
    border-radius: 14px;

    color: #25304a;
    text-align: center;
    text-decoration: none;
}

.fz-app-launcher-item:hover {
    border-color: #dce5ff;
    background: #f4f7ff;
}

.fz-app-launcher-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;

    width: 46px;
    height: 46px;

    margin-bottom: 8px;

    border-radius: 13px;

    background: #edf2ff;
    color: #3157d5;
}

.fz-app-launcher-icon svg {
    width: 25px;
    height: 25px;

    fill: none;
    stroke: currentColor;
    stroke-width: 1.8;
    stroke-linecap: round;
    stroke-linejoin: round;
}

.fz-app-launcher-name {
    display: block;

    width: 100%;

    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;

    color: #25304a;
    font-size: 13px;
    font-weight: 700;
}

.fz-app-launcher-badge {
    display: inline-flex;
    align-items: center;
    justify-content: center;

    min-height: 18px;

    margin-top: 5px;
    padding: 1px 7px;

    border-radius: 999px;

    background: #eaf8ef;
    color: #218451;

    font-size: 10px;
    font-weight: 700;
}

.fz-app-launcher-badge.is-locked {
    background: #f1f3f7;
    color: #747d8e;
}

.fz-app-launcher-item.no-access .fz-app-launcher-icon {
    background: #f1f3f7;
    color: #7a8495;
}

.fz-app-launcher-empty {
    grid-column: 1 / -1;

    padding: 30px 20px;

    color: #667085;
    text-align: center;
}

@media (max-width: 640px) {
    .fz-app-launcher-menu {
        position: fixed;

        top: 72px;
        right: 12px;
        left: 12px;

        width: auto;
        max-width: none;
    }
}

/* =========================================================
   Menus du header
   ========================================================= */

.fz-topbar,
.fz-topbar-actions,
.fz-header-menu-wrapper {
    overflow: visible;
}

.fz-topbar-actions {
    display: flex;
    align-items: center;
    gap: 14px;
}

.fz-header-menu-wrapper {
    position: relative;
    display: inline-flex;
    align-items: center;
}

.fz-dropdown-panel {
    position: absolute;
    top: calc(100% + 12px);
    right: 0;
    z-index: 100000;

    overflow: hidden;

    border: 1px solid #dfe6f1;
    border-radius: 18px;

    background: #ffffff;

    box-shadow:
        0 20px 50px rgba(15, 23, 42, 0.18),
        0 4px 14px rgba(15, 23, 42, 0.08);
}

.fz-dropdown-panel[hidden] {
    display: none !important;
}

.fz-dropdown-header {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 16px;

    padding: 20px 20px 14px;
}

.fz-dropdown-header strong {
    display: block;

    color: #172033;
    font-size: 17px;
    line-height: 1.25;
}

.fz-dropdown-header span {
    display: block;

    margin-top: 3px;

    color: #6f7a8f;
    font-size: 13px;
}

.fz-dropdown-close {
    appearance: none;
    -webkit-appearance: none;

    display: inline-flex;
    align-items: center;
    justify-content: center;

    width: 34px;
    height: 34px;

    padding: 0;

    border: 0;
    border-radius: 10px;

    background: transparent;
    color: #6f7a8f;

    font: inherit;
    font-size: 24px;
    line-height: 1;

    cursor: pointer;
}

.fz-dropdown-close:hover {
    background: #f3f5f9;
    color: #172033;
}

.fz-dropdown-footer {
    padding: 13px 18px;

    border-top: 1px solid #e7ebf2;
    background: #fafbfe;

    text-align: center;
}

.fz-dropdown-footer a {
    color: #3157d5;
    font-size: 13px;
    font-weight: 700;
    text-decoration: none;
}

.fz-dropdown-footer a:hover {
    text-decoration: underline;
}

.fz-dropdown-empty {
    display: flex;
    min-height: 160px;

    flex-direction: column;
    align-items: center;
    justify-content: center;

    padding: 24px;

    color: #6f7a8f;
    text-align: center;
}

.fz-dropdown-empty-icon {
    display: block;

    margin-bottom: 10px;

    font-size: 26px;
}

.fz-dropdown-empty strong {
    color: #25304a;
    font-size: 14px;
}

.fz-dropdown-empty p {
    margin: 5px 0 0;

    color: #7c879a;
    font-size: 13px;
}

/* =========================================================
   Boutons cloche et applications
   ========================================================= */

.fz-header-action-button {
    appearance: none;
    -webkit-appearance: none;

    position: relative;

    display: inline-flex;
    align-items: center;
    justify-content: center;

    width: 54px;
    height: 54px;
    min-width: 54px;

    padding: 0;

    border: 1px solid #dde5f1;
    border-radius: 16px;

    background: #ffffff;
    color: #172033;

    font: inherit;
    cursor: pointer;
}

.fz-header-action-button:hover,
.fz-header-action-button[aria-expanded="true"] {
    border-color: #cbd7ea;
    background: #f5f8fe;
}

.fz-notification-count {
    position: absolute;
    top: 5px;
    right: 5px;

    display: inline-flex;
    align-items: center;
    justify-content: center;

    min-width: 17px;
    height: 17px;

    padding: 0 4px;

    border: 2px solid #ffffff;
    border-radius: 999px;

    background: #db3f4d;
    color: #ffffff;

    font-size: 9px;
    font-weight: 800;
    line-height: 1;
}

.fz-nine-dots {
    display: grid;
    grid-template-columns: repeat(3, 4px);
    grid-template-rows: repeat(3, 4px);
    gap: 4px;

    align-content: center;
    justify-content: center;
}

.fz-nine-dots span {
    display: block;

    width: 4px;
    height: 4px;

    border-radius: 1px;

    background: #1d2e51;
}

/* =========================================================
   Notifications
   ========================================================= */

.fz-notification-menu {
    width: 380px;
    max-width: calc(100vw - 24px);
}

.fz-notification-list {
    max-height: 430px;
    overflow-y: auto;
}

.fz-notification-item {
    display: flex;
    align-items: flex-start;
    gap: 12px;

    padding: 14px 18px;

    border-top: 1px solid #edf0f5;

    color: inherit;
    text-decoration: none;
}

.fz-notification-item:hover {
    background: #f7f9fd;
}

.fz-notification-item-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;

    width: 38px;
    height: 38px;
    min-width: 38px;

    border-radius: 11px;

    background: #fff6e5;
}

.fz-notification-item-content {
    display: flex;
    min-width: 0;

    flex-direction: column;
    gap: 3px;
}

.fz-notification-item-content strong {
    color: #25304a;
    font-size: 13px;
}

.fz-notification-item-content span {
    color: #69758a;
    font-size: 12px;
    line-height: 1.4;
}

.fz-notification-item-content small {
    color: #9199a8;
    font-size: 11px;
}

/* =========================================================
   Menu utilisateur
   ========================================================= */

.fz-user-avatar {
    appearance: none;
    -webkit-appearance: none;

    display: inline-flex;
    align-items: center;
    justify-content: center;

    width: 50px;
    height: 50px;
    min-width: 50px;

    padding: 0;

    border: 0;
    border-radius: 50%;

    background: #eef2ff;
    color: #3157d5;

    font: inherit;
    font-size: 16px;
    font-weight: 800;
    line-height: 1;

    cursor: pointer;
}

.fz-user-avatar:hover,
.fz-user-avatar[aria-expanded="true"] {
    background: #e1e8ff;
}

.fz-user-menu {
    width: 330px;
    max-width: calc(100vw - 24px);
}

.fz-user-menu-profile {
    display: flex;
    align-items: center;
    gap: 13px;

    padding: 20px;
}

.fz-user-menu-avatar {
    display: inline-flex;
    align-items: center;
    justify-content: center;

    width: 48px;
    height: 48px;
    min-width: 48px;

    border-radius: 50%;

    background: #eef2ff;
    color: #3157d5;

    font-size: 17px;
    font-weight: 800;
}

.fz-user-menu-identity {
    display: flex;
    min-width: 0;

    flex-direction: column;
}

.fz-user-menu-identity strong,
.fz-user-menu-identity span,
.fz-user-menu-identity small {
    display: block;

    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.fz-user-menu-identity strong {
    color: #202b41;
    font-size: 14px;
}

.fz-user-menu-identity span {
    margin-top: 2px;

    color: #707b8f;
    font-size: 12px;
}

.fz-user-menu-identity small {
    margin-top: 5px;

    color: #3157d5;
    font-size: 11px;
    font-weight: 700;
}

.fz-user-menu-separator {
    height: 1px;
    margin: 0 14px;

    background: #e8ecf3;
}

.fz-user-menu-item {
    display: flex;
    align-items: center;
    gap: 12px;

    margin: 5px 8px;
    padding: 11px 12px;

    border-radius: 11px;

    color: inherit;
    text-decoration: none;
}

.fz-user-menu-item:hover {
    background: #f5f7fb;
}

.fz-user-menu-item-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;

    width: 34px;
    height: 34px;
    min-width: 34px;

    border-radius: 9px;

    background: #f0f3f9;
}

.fz-user-menu-item > span:last-child {
    display: flex;
    min-width: 0;

    flex-direction: column;
}

.fz-user-menu-item strong {
    color: #273248;
    font-size: 13px;
}

.fz-user-menu-item small {
    margin-top: 2px;

    color: #7a8495;
    font-size: 11px;
}

.fz-user-menu-logout {
    margin-bottom: 8px;
}

.fz-user-menu-logout strong {
    color: #c63e4a;
}

/* =========================================================
   Applications
   ========================================================= */

.fz-app-launcher-menu {
    width: 520px;
    max-width: calc(100vw - 24px);
}

.fz-app-launcher-search {
    padding: 0 20px 16px;
}

.fz-app-launcher-search input {
    box-sizing: border-box;

    width: 100%;
    height: 44px;

    padding: 0 14px;

    border: 1px solid #dbe3f0;
    border-radius: 11px;

    background: #f8faff;
    color: #172033;

    font: inherit;
    outline: none;
}

.fz-app-launcher-search input:focus {
    border-color: #3157d5;
    background: #ffffff;
    box-shadow: 0 0 0 3px rgba(49, 87, 213, 0.12);
}

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

    max-height: 460px;
    overflow-y: auto;

    padding: 0 14px 16px;
}

.fz-app-launcher-item {
    display: flex;
    min-width: 0;
    min-height: 112px;

    flex-direction: column;
    align-items: center;
    justify-content: flex-start;

    padding: 14px 8px 10px;

    border: 1px solid transparent;
    border-radius: 14px;

    color: #25304a;
    text-align: center;
    text-decoration: none;
}

.fz-app-launcher-item:hover {
    border-color: #dce5ff;
    background: #f4f7ff;
}

.fz-app-launcher-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;

    width: 46px;
    height: 46px;

    margin-bottom: 8px;

    border-radius: 13px;

    background: #edf2ff;
    color: #3157d5;
}

.fz-app-launcher-icon svg {
    width: 25px;
    height: 25px;

    fill: none;
    stroke: currentColor;
    stroke-width: 1.8;
    stroke-linecap: round;
    stroke-linejoin: round;
}

.fz-app-launcher-name {
    display: block;

    width: 100%;

    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;

    color: #25304a;
    font-size: 12px;
    font-weight: 700;
}

.fz-app-launcher-badge {
    display: inline-flex;
    align-items: center;
    justify-content: center;

    min-height: 18px;

    margin-top: 5px;
    padding: 1px 7px;

    border-radius: 999px;

    background: #eaf8ef;
    color: #218451;

    font-size: 9px;
    font-weight: 700;
}

.fz-app-launcher-badge.is-locked {
    background: #f1f3f7;
    color: #747d8e;
}

.fz-app-launcher-empty {
    grid-column: 1 / -1;
}

@media (max-width: 720px) {
    .fz-dropdown-panel {
        position: fixed;

        top: 72px;
        right: 12px;
        left: 12px;

        width: auto;
        max-width: none;
    }

    .fz-app-launcher-grid {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }
}

.fz-app-launcher-content {
    max-height: 560px;
    padding: 0 14px 18px;
    overflow-y: auto;
}

.fz-app-launcher-section {
    padding: 4px 0 16px;
}

.fz-app-launcher-section + .fz-app-launcher-section {
    padding-top: 16px;
    border-top: 1px solid #e8edf5;
}

.fz-app-launcher-section-header {
    display: flex;
    align-items: center;
    justify-content: space-between;

    padding: 0 5px 10px;
}

.fz-app-launcher-section-header h3 {
    margin: 0;

    color: #202b41;
    font-size: 13px;
    font-weight: 800;
}

.fz-app-launcher-section-header span {
    display: inline-flex;
    align-items: center;
    justify-content: center;

    min-width: 22px;
    height: 22px;
    padding: 0 6px;

    border-radius: 999px;

    background: #f0f3f8;
    color: #6f798c;

    font-size: 10px;
    font-weight: 700;
}

.fz-app-launcher-section .fz-app-launcher-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 8px;

    max-height: none;
    padding: 0;
    overflow: visible;
}

.fz-app-launcher-item {
    position: relative;
}

.fz-app-favorite-indicator {
    position: absolute;
    top: 7px;
    right: 8px;

    color: #f2ac2e;
    font-size: 12px;
    line-height: 1;
}

@media (max-width: 720px) {
    .fz-app-launcher-section .fz-app-launcher-grid {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }
}

/* =========================================================
   Organisation du menu Inventaire
   ========================================================= */

.fz-sidebar-inventory {
    padding-bottom: 20px;
}

.fz-sidebar-section-title {
    margin: 0 18px 16px;

    color: #647086;
    font-size: 11px;
    font-weight: 800;
    letter-spacing: 0.09em;
    line-height: 1.2;
    text-transform: uppercase;
}

.fz-sidebar-group {
    margin: 0 8px 19px;
}

.fz-sidebar-group:last-child {
    margin-bottom: 0;
}

.fz-sidebar-group + .fz-sidebar-group {
    padding-top: 17px;
    border-top: 1px solid #edf0f5;
}

.fz-sidebar-group-title {
    margin: 0 11px 7px;

    color: #8a94a6;
    font-size: 10px;
    font-weight: 800;
    letter-spacing: 0.075em;
    line-height: 1.3;
    text-transform: uppercase;
}

.fz-sidebar-link {
    position: relative;

    display: flex;
    min-height: 43px;

    align-items: center;
    gap: 12px;

    margin: 2px 0;
    padding: 9px 11px;

    border: 1px solid transparent;
    border-radius: 10px;

    color: #17284a;
    text-decoration: none;

    transition:
        background-color 0.15s ease,
        border-color 0.15s ease,
        color 0.15s ease;
}

.fz-sidebar-link:hover {
    border-color: #e4eaf4;
    background: #f5f7fb;
    color: #2447b8;
}

.fz-sidebar-link.is-active {
    border-color: #dbe5ff;
    background: #edf2ff;
    color: #3157d5;
}

.fz-sidebar-link-icon {
    display: inline-flex;
    width: 22px;
    height: 22px;
    min-width: 22px;

    align-items: center;
    justify-content: center;

    color: currentColor;
}

.fz-sidebar-link-icon svg {
    width: 19px;
    height: 19px;

    fill: none;
    stroke: currentColor;
    stroke-width: 1.65;
    stroke-linecap: round;
    stroke-linejoin: round;
}

.fz-sidebar-link-label {
    min-width: 0;
    flex: 1;

    overflow: hidden;

    font-size: 14px;
    font-weight: 600;
    line-height: 1.25;

    text-overflow: ellipsis;
    white-space: nowrap;
}

.fz-sidebar-link.is-active .fz-sidebar-link-label {
    font-weight: 750;
}

.fz-sidebar-badge {
    display: inline-flex;
    min-width: 22px;
    height: 22px;

    align-items: center;
    justify-content: center;

    padding: 0 6px;

    border-radius: 999px;

    background: #fff0f0;
    color: #c43d4b;

    font-size: 10px;
    font-weight: 800;
    line-height: 1;
}

.fz-sidebar-link.is-active .fz-sidebar-badge {
    background: #ffffff;
    color: #3157d5;
}

@media (max-width: 1100px) {
    .fz-sidebar-group-title,
    .fz-sidebar-section-title {
        white-space: nowrap;
    }
}

.fz-page-breadcrumb {
    display: flex;
    align-items: center;
    gap: 7px;
    margin-bottom: 8px;
    color: #7a8495;
    font-size: 12px;
}

.fz-page-breadcrumb a {
    color: #3157d5;
    text-decoration: none;
}

.fz-form-grid {
    display: grid;
    gap: 18px;
}

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

.fz-form-field {
    display: flex;
    min-width: 0;
    flex-direction: column;
    gap: 7px;
}

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

.fz-form-field label {
    color: #273248;
    font-size: 13px;
    font-weight: 700;
}

.fz-form-field input,
.fz-form-field select,
.fz-form-field textarea {
    box-sizing: border-box;
    width: 100%;
    min-height: 44px;
    padding: 10px 12px;
    border: 1px solid #dbe3ef;
    border-radius: 10px;
    background: #ffffff;
    color: #1f2937;
    font: inherit;
    outline: none;
}

.fz-form-field textarea {
    min-height: 105px;
    resize: vertical;
}

.fz-form-field input:focus,
.fz-form-field select:focus,
.fz-form-field textarea:focus {
    border-color: #3157d5;
    box-shadow: 0 0 0 3px rgba(49, 87, 213, 0.12);
}

.fz-required {
    color: #c63e4a;
}

.fz-form-actions {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: 10px;
    margin-top: 20px;
}

.fz-alert-danger {
    margin-bottom: 18px;
    border: 1px solid #f3c9ce;
    background: #fff4f5;
    color: #9f2935;
}

@media (max-width: 760px) {
    .fz-form-grid-2 {
        grid-template-columns: 1fr;
    }

    .fz-form-field-full {
        grid-column: auto;
    }
}

/* =========================================================
   Ligne fil d’Ariane et actions de page
   ========================================================= */

.fz-page-actions-row {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 20px;

    width: 100%;
    margin: 0 0 26px;
}

.fz-page-actions-row .fz-page-breadcrumb {
    display: flex;
    min-width: 0;

    align-items: center;
    flex-wrap: wrap;
    gap: 8px;

    margin: 0;

    color: #7b8699;
    font-size: 13px;
}

.fz-page-actions-row .fz-page-breadcrumb a {
    color: #3157d5;
    text-decoration: none;
}

.fz-page-actions-row .fz-page-breadcrumb a:hover {
    text-decoration: underline;
}

.fz-page-actions {
    display: flex;
    flex-shrink: 0;

    align-items: center;
    justify-content: flex-end;
    gap: 10px;

    margin-left: auto;
}

.fz-page-actions .fz-button {
    white-space: nowrap;
}

@media (max-width: 700px) {
    .fz-page-actions-row {
        align-items: flex-start;
        flex-direction: column;
    }

    .fz-page-actions {
        width: 100%;
        justify-content: flex-start;
        margin-left: 0;
    }
}

.fz-app-launcher-item[hidden],
.fz-app-launcher-section[hidden],
.fz-app-launcher-search-empty[hidden] {
    display: none !important;
}

.fz-app-launcher-search-empty {
    padding: 42px 20px;
    text-align: center;
}

.fz-page-actions-bar {
    display: flex;
    justify-content: flex-end;
    align-items: center;
    margin-bottom: 22px;
}

.fz-global-search {
    position: relative;
    width: min(100%, 775px);
}

.fz-global-search-form {
    position: relative;
    display: flex;
    align-items: center;
    width: 100%;
}

.fz-global-search-input {
    width: 100%;
    min-height: 54px;
    padding: 0 92px 0 44px;
    border: 1px solid #dbe3f0;
    border-radius: 16px;
    background: #fff;
    font-size: 16px;
    color: #26324a;
    outline: none;
}

.fz-global-search-input:focus {
    border-color: #3157d5;
    box-shadow: 0 0 0 3px rgba(49, 87, 213, 0.1);
}

.fz-global-search-icon {
    position: absolute;
    left: 17px;
    z-index: 2;
    color: #4f5d75;
    pointer-events: none;
}

.fz-global-search-shortcut {
    position: absolute;
    right: 17px;
    padding: 4px 9px;
    border: 1px solid #dbe3f0;
    border-radius: 7px;
    background: #f8fafc;
    color: #52617a;
    font-size: 12px;
    pointer-events: none;
}

.fz-search-suggestions {
    position: absolute;
    top: calc(100% + 8px);
    left: 0;
    right: 0;
    z-index: 1000;
    overflow: hidden;
    padding: 7px;
    border: 1px solid #dbe3f0;
    border-radius: 14px;
    background: #fff;
    box-shadow:
        0 16px 40px rgba(31, 42, 68, 0.13);
}

.fz-search-suggestion {
    display: flex;
    align-items: center;
    width: 100%;
    border-radius: 10px;
}

.fz-search-suggestion:hover {
    background: #f3f6fc;
}

.fz-search-suggestion-value {
    display: flex;
    align-items: center;
    flex: 1;
    min-width: 0;
    gap: 11px;
    padding: 11px 12px;
    border: 0;
    background: transparent;
    color: #27334d;
    text-align: left;
    cursor: pointer;
}

.fz-search-suggestion-icon {
    flex: 0 0 auto;
    color: #71809b;
    font-size: 17px;
}

.fz-search-suggestion-text {
    overflow: hidden;
    white-space: nowrap;
    text-overflow: ellipsis;
}

.fz-search-suggestion-delete {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 34px;
    height: 34px;
    margin-right: 5px;
    border: 0;
    border-radius: 8px;
    background: transparent;
    color: #8b96aa;
    font-size: 20px;
    cursor: pointer;
}

.fz-search-suggestion-delete:hover {
    background: #feecef;
    color: #c7354f;
}

.fz-search-suggestion-delete:disabled {
    opacity: 0.45;
    cursor: wait;
}

@media (max-width: 700px) {
    .fz-global-search-shortcut {
        display: none;
    }

    .fz-global-search-input {
        padding-right: 16px;
    }
}

/* =========================================================
   Correction finale du modal Bundles
   ========================================================= */

html.fz-modal-open,
body.fz-modal-open {
    overflow: hidden !important;
}

#bundle-modal {
    position: fixed !important;
    inset: 0 !important;
    z-index: 999999 !important;

    width: auto !important;
    height: auto !important;
    max-width: none !important;
    max-height: none !important;

    margin: 0 !important;
    padding: 24px !important;

    box-sizing: border-box !important;

    background: transparent !important;

    align-items: center !important;
    justify-content: center !important;

    overflow: hidden !important;
}

#bundle-modal[hidden],
#bundle-modal:not(.is-open) {
    display: none !important;
}

#bundle-modal.is-open {
    display: flex !important;
}

/*
 * Fond réellement transparent.
 * Mets 0.08 pour une très légère teinte.
 * Mets transparent pour aucune teinte.
 */
#bundle-modal .fz-modal-backdrop {
    position: absolute !important;
    inset: 0 !important;
    z-index: 0 !important;

    margin: 0 !important;
    padding: 0 !important;

    background: rgba(15, 23, 42, 0.08) !important;

    opacity: 1 !important;

    backdrop-filter: none !important;
    -webkit-backdrop-filter: none !important;
    filter: none !important;
}

/*
 * Popup centré et net.
 */
#bundle-modal .fz-modal-dialog {
    position: relative !important;
    z-index: 1 !important;

    width: min(920px, calc(100% - 48px)) !important;
    max-width: 920px !important;
    max-height: calc(100vh - 48px) !important;

    margin: auto !important;

    box-sizing: border-box !important;

    overflow: hidden !important;

    background: #ffffff !important;
    opacity: 1 !important;

    filter: none !important;
    backdrop-filter: none !important;

    border-radius: 20px !important;
}

/*
 * Évite toute barre horizontale dans le contenu.
 */
#bundle-modal .fz-modal-body {
    max-height: calc(100vh - 185px) !important;

    overflow-x: hidden !important;
    overflow-y: auto !important;

    box-sizing: border-box !important;
}

#bundle-modal .fz-modal-body,
#bundle-modal .fz-modal-header,
#bundle-modal .fz-modal-footer,
#bundle-modal form,
#bundle-modal .fz-form-grid {
    max-width: 100% !important;
    box-sizing: border-box !important;
}

/*
 * Évite qu'un input ou textarea élargisse le popup.
 */
#bundle-modal input,
#bundle-modal select,
#bundle-modal textarea {
    max-width: 100% !important;
    box-sizing: border-box !important;
}

#bundle-modal .fz-modal-backdrop {
    background: rgba(15, 23, 42, 0.24) !important;
}

#bundle-modal .fz-modal-dialog {
    overflow: hidden !important;
}

#bundle-modal .fz-modal-header {
    padding: 26px 28px !important;
}

#bundle-modal .fz-modal-body {
    padding: 26px 28px 28px !important;
}

#bundle-modal .fz-modal-footer {
    margin-top: 28px !important;
    padding: 22px 28px !important;
    border-top: 1px solid #e5eaf2 !important;
    background: #ffffff !important;
}

#bundle-modal .fz-form-grid {
    gap: 22px 24px !important;
}

#bundle-modal .fz-checkbox-grid {
    margin-top: 24px !important;
}

#bundle-modal .fz-checkbox-card {
    padding: 16px 18px !important;
}

/* =========================================================
   Modal Accessoires
   ========================================================= */

#accessory-modal[hidden],
#accessory-modal:not(.is-open) {
    display: none !important;
}

#accessory-modal {
    position: fixed !important;
    inset: 0 !important;
    z-index: 999999 !important;

    width: auto !important;
    height: auto !important;

    margin: 0 !important;
    padding: 24px !important;

    box-sizing: border-box !important;

    background: transparent !important;

    align-items: center !important;
    justify-content: center !important;

    overflow: hidden !important;
}

#accessory-modal.is-open {
    display: flex !important;
}

#accessory-modal .fz-modal-backdrop {
    position: absolute !important;
    inset: 0 !important;
    z-index: 0 !important;

    background: rgba(15, 23, 42, 0.20) !important;

    backdrop-filter: none !important;
    -webkit-backdrop-filter: none !important;
    filter: none !important;
}

#accessory-modal .fz-modal-dialog {
    position: relative !important;
    z-index: 1 !important;

    width: min(900px, calc(100% - 64px)) !important;
    max-width: 900px !important;
    max-height: calc(100vh - 48px) !important;

    margin: auto !important;

    box-sizing: border-box !important;
    overflow: hidden !important;

    background: #ffffff !important;
    border: 1px solid #dbe3f0;
    border-radius: 20px !important;

    box-shadow:
        0 30px 90px rgba(15, 23, 42, 0.32);

    filter: none !important;
    transform: none !important;
}

#accessory-modal .fz-modal-header {
    padding: 26px 28px !important;
}

#accessory-modal .fz-modal-body {
    max-height: calc(100vh - 185px) !important;

    padding: 26px 28px 28px !important;

    overflow-x: hidden !important;
    overflow-y: auto !important;
}

#accessory-modal .fz-form-grid {
    gap: 22px 24px !important;
}

#accessory-modal .fz-checkbox-grid {
    margin-top: 24px !important;
}

#accessory-modal .fz-checkbox-card {
    padding: 16px 18px !important;
}

#accessory-modal .fz-modal-footer {
    margin-top: 28px !important;

    padding: 22px 0 0 !important;

    border-top: 1px solid #e5eaf2 !important;
}

#accessory-modal input,
#accessory-modal select,
#accessory-modal textarea {
    max-width: 100% !important;
    box-sizing: border-box !important;
}

@media (max-width: 700px) {
    #accessory-modal {
        align-items: flex-end !important;
        padding: 0 !important;
    }

    #accessory-modal .fz-modal-dialog {
        width: 100% !important;
        max-width: none !important;
        max-height: 92vh !important;

        border-radius: 20px 20px 0 0 !important;
    }
}

/* =========================================================
   Modal Accessoires — version propre
   ========================================================= */

#accessory-modal {
    position: fixed !important;
    inset: 0 !important;
    z-index: 999999 !important;

    display: none;
    align-items: center;
    justify-content: center;

    padding: 24px !important;
    box-sizing: border-box !important;

    background: transparent !important;
    overflow: hidden !important;
}

#accessory-modal[hidden],
#accessory-modal:not(.is-open) {
    display: none !important;
}

#accessory-modal.is-open {
    display: flex !important;
}

#accessory-modal .fz-modal-backdrop {
    position: absolute !important;
    inset: 0 !important;
    z-index: 0 !important;

    background: rgba(15, 23, 42, 0.20) !important;

    backdrop-filter: none !important;
    -webkit-backdrop-filter: none !important;
    filter: none !important;
}

#accessory-modal .fz-modal-dialog {
    position: relative !important;
    z-index: 1 !important;

    display: flex !important;
    flex-direction: column !important;

    width: min(980px, calc(100vw - 64px)) !important;
    max-width: 980px !important;
    max-height: calc(100vh - 48px) !important;

    margin: 0 !important;

    overflow: hidden !important;

    background: #ffffff !important;
    border: 1px solid #dbe3f0 !important;
    border-radius: 20px !important;

    box-shadow:
        0 28px 80px rgba(15, 23, 42, 0.28) !important;
}

#accessory-modal .fz-modal-header {
    flex: 0 0 auto !important;

    display: flex !important;
    align-items: flex-start !important;
    justify-content: space-between !important;
    gap: 24px !important;

    padding: 24px 30px !important;

    background: #ffffff !important;
    border-bottom: 1px solid #e5eaf2 !important;
}

#accessory-modal .fz-modal-header h2 {
    margin: 4px 0 6px !important;
}

#accessory-modal .fz-modal-header p {
    margin: 0 !important;
}

#accessory-modal .fz-modal-form {
    display: flex !important;
    flex: 1 1 auto !important;
    flex-direction: column !important;

    min-height: 0 !important;
    overflow: hidden !important;
}

#accessory-modal .fz-modal-body {
    flex: 1 1 auto !important;
    min-height: 0 !important;

    padding: 26px 30px !important;

    overflow-x: hidden !important;
    overflow-y: auto !important;

    background: #ffffff !important;
}

/*
 * Une seule barre de défilement.
 */
#accessory-modal .fz-modal-dialog,
#accessory-modal .fz-modal-form {
    overflow-y: hidden !important;
}

/*
 * Formulaire en deux colonnes.
 */
#accessory-modal .fz-form-grid {
    display: grid !important;
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 20px 24px !important;

    width: 100% !important;
    max-width: none !important;
}

#accessory-modal .fz-form-group {
    min-width: 0 !important;
    margin: 0 !important;
}

#accessory-modal .fz-form-group label {
    display: block !important;
    margin-bottom: 8px !important;
}

#accessory-modal input,
#accessory-modal select,
#accessory-modal textarea {
    width: 100% !important;
    max-width: 100% !important;
    box-sizing: border-box !important;
}

/*
 * Description pleine largeur.
 */
#accessory-modal .fz-accessory-description {
    grid-column: 1 / -1 !important;
}

/*
 * Options en cartes compactes.
 */
#accessory-modal .fz-checkbox-grid {
    display: grid !important;
    grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
    gap: 14px !important;

    margin-top: 26px !important;
}

#accessory-modal .fz-checkbox-card {
    display: flex !important;
    align-items: flex-start !important;
    gap: 12px !important;

    padding: 16px !important;

    border: 1px solid #dbe3f0 !important;
    border-radius: 14px !important;
    background: #ffffff !important;
}

#accessory-modal .fz-checkbox-card input {
    width: auto !important;
    flex: 0 0 auto !important;
    margin-top: 3px !important;
}

#accessory-modal .fz-checkbox-card strong,
#accessory-modal .fz-checkbox-card small {
    display: block !important;
}

#accessory-modal .fz-checkbox-card small {
    margin-top: 4px !important;
    color: #64748b !important;
    line-height: 1.4 !important;
}

/*
 * Footer toujours visible.
 */
#accessory-modal .fz-modal-footer {
    flex: 0 0 auto !important;

    display: flex !important;
    align-items: center !important;
    justify-content: flex-end !important;
    gap: 12px !important;

    margin: 0 !important;
    padding: 18px 30px !important;

    background: #ffffff !important;
    border-top: 1px solid #e5eaf2 !important;

    box-shadow:
        0 -8px 20px rgba(15, 23, 42, 0.04) !important;
}

html.fz-modal-open,
body.fz-modal-open {
    overflow: hidden !important;
}

@media (max-width: 800px) {
    #accessory-modal {
        align-items: flex-end !important;
        padding: 0 !important;
    }

    #accessory-modal .fz-modal-dialog {
        width: 100% !important;
        max-width: none !important;
        max-height: 94vh !important;

        border-radius: 20px 20px 0 0 !important;
    }

    #accessory-modal .fz-form-grid {
        grid-template-columns: 1fr !important;
    }

    #accessory-modal .fz-checkbox-grid {
        grid-template-columns: 1fr !important;
    }

    #accessory-modal .fz-modal-footer {
        flex-direction: column-reverse !important;
    }

    #accessory-modal .fz-modal-footer .fz-button {
        width: 100% !important;
    }
}

#accessory-modal {
    display: none !important;
}

#accessory-modal[aria-hidden="false"] {
    display: flex !important;
}

#accessory-modal[aria-hidden="true"] {
    display: none !important;
}

/* =========================================================
   Correction des options de distribution — Accessoires
   ========================================================= */

#accessory-modal .fz-accessory-option-grid {
    display: grid !important;
    grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
    gap: 14px !important;
    width: 100% !important;
}

#accessory-modal .fz-accessory-option {
    display: grid !important;
    grid-template-columns: 18px minmax(0, 1fr) !important;
    align-items: flex-start !important;
    justify-content: initial !important;
    gap: 12px !important;

    min-width: 0 !important;
    width: auto !important;
    min-height: 118px !important;

    padding: 17px 18px !important;

    overflow: hidden !important;

    border: 1px solid #dbe3f0 !important;
    border-radius: 14px !important;
    background: #ffffff !important;
}

#accessory-modal .fz-accessory-option input[type="checkbox"] {
    display: block !important;

    width: 16px !important;
    min-width: 16px !important;
    max-width: 16px !important;

    height: 16px !important;
    min-height: 16px !important;
    max-height: 16px !important;

    margin: 3px 0 0 !important;
    padding: 0 !important;

    flex: none !important;
}

#accessory-modal .fz-accessory-option > span {
    display: block !important;
    min-width: 0 !important;
    width: auto !important;

    overflow: hidden !important;
}

#accessory-modal .fz-accessory-option strong {
    display: block !important;
    margin: 0 !important;

    color: #10254a !important;
    font-size: 14px !important;
    font-weight: 750 !important;
    line-height: 1.35 !important;

    overflow-wrap: anywhere !important;
}

#accessory-modal .fz-accessory-option small {
    display: block !important;
    margin-top: 6px !important;

    color: #64748b !important;
    font-size: 12px !important;
    line-height: 1.5 !important;

    overflow-wrap: anywhere !important;
}

#accessory-modal .fz-accessory-option:hover {
    border-color: #b8c7e5 !important;
    background: #f8faff !important;
}

@media (max-width: 900px) {
    #accessory-modal .fz-accessory-option-grid {
        grid-template-columns: 1fr !important;
    }

    #accessory-modal .fz-accessory-option {
        min-height: auto !important;
    }
}

/* =========================================================
   Licences — barre de recherche et filtres
   ========================================================= */

.fz-licenses-page .fz-filters-bar {
    display: grid !important;
    grid-template-columns:
        minmax(280px, 1fr)
        minmax(210px, 300px)
        auto !important;

    align-items: center !important;
    gap: 14px !important;

    width: 100% !important;
    margin: 0 !important;
    padding: 0 0 22px !important;
}

.fz-licenses-page .fz-filters-bar input[type="search"],
.fz-licenses-page .fz-filters-bar select {
    display: block !important;

    width: 100% !important;
    min-width: 0 !important;
    max-width: 100% !important;
    min-height: 46px !important;

    margin: 0 !important;
    padding: 10px 14px !important;

    color: #172b4d !important;
    background-color: #ffffff !important;

    border: 1px solid #d9e2ef !important;
    border-radius: 11px !important;

    font: inherit !important;
    line-height: 1.2 !important;

    box-sizing: border-box !important;
    outline: none !important;
}

.fz-licenses-page .fz-filters-bar select {
    padding-right: 42px !important;

    appearance: none !important;
    -webkit-appearance: none !important;

    background-image:
        linear-gradient(
            45deg,
            transparent 50%,
            #475467 50%
        ),
        linear-gradient(
            135deg,
            #475467 50%,
            transparent 50%
        ) !important;

    background-position:
        calc(100% - 19px) 50%,
        calc(100% - 13px) 50% !important;

    background-size:
        6px 6px,
        6px 6px !important;

    background-repeat: no-repeat !important;
}

.fz-licenses-page .fz-filters-bar input[type="search"]:focus,
.fz-licenses-page .fz-filters-bar select:focus {
    border-color: #3157d5 !important;

    box-shadow:
        0 0 0 3px rgba(49, 87, 213, 0.12) !important;
}

.fz-licenses-page .fz-filters-bar .fz-button {
    width: auto !important;
    min-width: 110px !important;
    min-height: 46px !important;
    margin: 0 !important;
    white-space: nowrap !important;
}

@media (max-width: 850px) {
    .fz-licenses-page .fz-filters-bar {
        grid-template-columns: 1fr !important;
    }

    .fz-licenses-page .fz-filters-bar .fz-button {
        width: 100% !important;
    }
}

.contacts-dashboard-kpis,
.contacts-kpi-grid,
.assets-kpi-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 18px;
    width: 100%;
}

.contacts-kpi-card,
.assets-kpi-card {
    min-width: 0;
    width: 100%;
}

.contacts-kpi-card {
    display: flex;
    flex-direction: column;
    justify-content: center;
    gap: 14px;
    min-height: 118px;
    padding: 24px;
    border: 1px solid #dce4f0;
    border-radius: 18px;
    background: #ffffff;
    box-shadow: 0 10px 30px rgba(18, 38, 74, 0.05);
}

.contacts-kpi-label {
    display: block;
    color: #61708b;
    font-size: 15px;
    font-weight: 500;
}

.contacts-kpi-value {
    display: block;
    color: #071f4d;
    font-size: 32px;
    font-weight: 750;
    line-height: 1;
}


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

@media (max-width: 640px) {
    .contacts-dashboard-kpis,
    .contacts-kpi-grid,
    .assets-kpi-grid {
        grid-template-columns: 1fr;
    }
}

/* =========================================================
   FINDZLE CONTACTS — DASHBOARD
   À charger après le CSS principal de l'application.
   ========================================================= */

.contacts-dashboard {
    width: 100%;
}

.contacts-page-header {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 24px;
    margin-bottom: 28px;
}

.contacts-page-header > div:first-child {
    min-width: 0;
}

.contacts-page-eyebrow {
    display: block;
    margin-bottom: 8px;
    color: var(--fz-primary, #3157d5);
    font-size: 12px;
    font-weight: 800;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

.contacts-page-header h1 {
    margin: 0;
    color: #072451;
    font-size: clamp(30px, 3vw, 42px);
    font-weight: 800;
    line-height: 1.12;
    letter-spacing: -0.035em;
}

.contacts-page-header p {
    max-width: 780px;
    margin: 10px 0 0;
    color: #64748b;
    font-size: 16px;
    line-height: 1.6;
}

.contacts-page-actions {
    display: flex;
    flex: 0 0 auto;
    align-items: center;
    justify-content: flex-end;
}

.contacts-kpi-grid {
    display: grid !important;
    grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
    gap: 18px !important;
    width: 100% !important;
    margin: 0 0 24px !important;
}

.contacts-kpi-card {
    display: flex !important;
    min-width: 0 !important;
    width: auto !important;
    min-height: 126px !important;
    flex-direction: column !important;
    align-items: flex-start !important;
    justify-content: center !important;
    gap: 14px !important;
    padding: 22px 24px !important;
    color: #12213f !important;
    text-decoration: none !important;
    background: #ffffff !important;
    border: 1px solid #dce4f0 !important;
    border-radius: 16px !important;
    box-shadow: 0 8px 24px rgba(18, 38, 74, 0.05) !important;
    transition:
        transform 0.18s ease,
        border-color 0.18s ease,
        box-shadow 0.18s ease !important;
}

.contacts-kpi-card:hover {
    color: #12213f !important;
    text-decoration: none !important;
    border-color: #b9c8ef !important;
    box-shadow: 0 12px 28px rgba(31, 63, 136, 0.09) !important;
    transform: translateY(-2px);
}

.contacts-kpi-card:focus-visible {
    outline: 3px solid rgba(49, 87, 213, 0.18);
    outline-offset: 3px;
}

.contacts-kpi-label {
    display: block !important;
    margin: 0 !important;
    color: #64748b !important;
    font-size: 14px !important;
    font-weight: 650 !important;
    line-height: 1.3 !important;
}

.contacts-kpi-value {
    display: block !important;
    margin: 0 !important;
    color: #0d2348 !important;
    font-size: 32px !important;
    font-weight: 800 !important;
    line-height: 1 !important;
    letter-spacing: -0.03em;
}

.contacts-main-card {
    display: flex;
    align-items: flex-start;
    gap: 18px;
    padding: 28px;
    background: #ffffff;
    border: 1px solid #dce4f0;
    border-radius: 18px;
    box-shadow: 0 10px 28px rgba(18, 38, 74, 0.05);
}

.contacts-main-card__icon {
    display: grid;
    width: 46px;
    height: 46px;
    flex: 0 0 46px;
    place-items: center;
    color: #3157d5;
    background: #edf2ff;
    border-radius: 13px;
    font-size: 22px;
    font-weight: 800;
}

.contacts-main-card__content {
    min-width: 0;
}

.contacts-main-card h2 {
    margin: 0;
    color: #072451;
    font-size: 22px;
    font-weight: 800;
    line-height: 1.3;
}

.contacts-main-card p {
    margin: 10px 0 0;
    color: #64748b;
    font-size: 15px;
    line-height: 1.65;
}

.contacts-main-card__actions {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 16px;
    margin-top: 18px;
}

.contacts-main-card__actions a {
    color: #3157d5;
    font-weight: 750;
    text-decoration: none;
}

.contacts-main-card__actions a:hover {
    text-decoration: underline;
}

@media (max-width: 1050px) {
    .contacts-kpi-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    }
}

@media (max-width: 720px) {
    .contacts-page-header {
        flex-direction: column;
    }

    .contacts-page-actions,
    .contacts-page-actions .fz-button {
        width: 100%;
    }

    .contacts-kpi-grid {
        grid-template-columns: 1fr !important;
    }

    .contacts-main-card {
        flex-direction: column;
        padding: 22px;
    }
}

/* =========================================================
   Contacts — visibilité privée ou organisation
   ========================================================= */

.contacts-contact-form {
    overflow: visible;
}

.contacts-visibility-section {
    margin-top: 8px;
    padding: 22px;
    background: #f8faff;
    border: 1px solid #dfe6f2;
    border-radius: 15px;
}

.contacts-visibility-heading {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 18px;
    margin-bottom: 18px;
}

.contacts-visibility-heading h2 {
    margin: 0;
    color: #0d2348;
    font-size: 17px;
    font-weight: 800;
}

.contacts-visibility-heading p {
    max-width: 720px;
    margin: 6px 0 0;
    color: #667085;
    font-size: 13px;
    line-height: 1.55;
}

.contacts-private-badge,
.contacts-visibility-status {
    display: inline-flex;
    min-height: 28px;
    align-items: center;
    justify-content: center;
    flex: 0 0 auto;
    padding: 5px 10px;
    color: #475467;
    background: #f2f4f7;
    border: 1px solid #e4e7ec;
    border-radius: 999px;
    font-size: 11px;
    font-weight: 800;
    white-space: nowrap;
}

.contacts-visibility-checkbox {
    position: relative;
    display: grid;
    grid-template-columns: 24px minmax(0, 1fr);
    align-items: flex-start;
    gap: 13px;
    padding: 18px;
    cursor: pointer;
    background: #ffffff;
    border: 1px solid #d9e2ef;
    border-radius: 13px;
    transition:
        border-color 0.16s ease,
        box-shadow 0.16s ease,
        background-color 0.16s ease;
}

.contacts-visibility-checkbox:hover {
    border-color: #b8c7e5;
    background: #fbfcff;
}

.contacts-visibility-checkbox > input {
    position: absolute;
    width: 1px;
    height: 1px;
    opacity: 0;
    pointer-events: none;
}

.contacts-visibility-checkbox__control {
    position: relative;
    display: inline-flex;
    width: 22px;
    height: 22px;
    align-items: center;
    justify-content: center;
    margin-top: 1px;
    background: #ffffff;
    border: 2px solid #b8c2d1;
    border-radius: 7px;
    transition:
        background-color 0.16s ease,
        border-color 0.16s ease,
        box-shadow 0.16s ease;
}

.contacts-visibility-checkbox__control::after {
    content: "";
    width: 9px;
    height: 5px;
    border-bottom: 2px solid #ffffff;
    border-left: 2px solid #ffffff;
    opacity: 0;
    transform: translateY(-1px) rotate(-45deg);
}

.contacts-visibility-checkbox > input:checked
+ .contacts-visibility-checkbox__control {
    background: #3157d5;
    border-color: #3157d5;
    box-shadow: 0 0 0 4px rgba(49, 87, 213, 0.11);
}

.contacts-visibility-checkbox > input:checked
+ .contacts-visibility-checkbox__control::after {
    opacity: 1;
}

.contacts-visibility-checkbox > input:focus-visible
+ .contacts-visibility-checkbox__control {
    outline: 3px solid rgba(49, 87, 213, 0.2);
    outline-offset: 3px;
}

.contacts-visibility-checkbox__content {
    display: flex;
    min-width: 0;
    flex-direction: column;
    gap: 5px;
}

.contacts-visibility-checkbox__content strong {
    color: #172b4d;
    font-size: 14px;
    font-weight: 800;
}

.contacts-visibility-checkbox__content small {
    color: #667085;
    font-size: 12px;
    line-height: 1.55;
}

.contacts-visibility-note {
    margin-top: 14px;
    padding: 12px 14px;
    color: #52617a;
    background: #eef3ff;
    border: 1px solid #dbe5ff;
    border-radius: 10px;
    font-size: 12px;
    line-height: 1.55;
}

.contacts-detail-actions {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    flex-wrap: wrap;
    gap: 10px;
    margin-bottom: 18px;
}

.contacts-detail-grid {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    gap: 20px;
}

.contacts-detail-card {
    padding: 26px;
}

.contacts-detail-header {
    display: flex;
    align-items: center;
    gap: 16px;
    margin-bottom: 24px;
}

.contacts-detail-avatar {
    display: inline-flex;
    width: 54px;
    height: 54px;
    flex: 0 0 54px;
    align-items: center;
    justify-content: center;
    color: #3157d5;
    background: #edf2ff;
    border-radius: 15px;
    font-size: 20px;
    font-weight: 800;
}

.contacts-detail-header h2 {
    margin: 0;
    color: #0d2348;
    font-size: 23px;
}

.contacts-detail-header p {
    margin: 5px 0 0;
    color: #667085;
}

.contacts-detail-list {
    margin: 0;
    overflow: hidden;
    border: 1px solid #e1e7f0;
    border-radius: 13px;
}

.contacts-detail-list > div {
    display: grid;
    grid-template-columns: 190px minmax(0, 1fr);
    gap: 18px;
    padding: 14px 17px;
    border-bottom: 1px solid #edf0f5;
}

.contacts-detail-list > div:last-child {
    border-bottom: 0;
}

.contacts-detail-list dt {
    color: #667085;
    font-size: 13px;
    font-weight: 650;
}

.contacts-detail-list dd {
    min-width: 0;
    margin: 0;
    color: #172b4d;
    font-size: 13px;
    font-weight: 700;
    overflow-wrap: anywhere;
}

.contacts-visibility-status.is-organization {
    color: #175cd3;
    background: #eff8ff;
    border-color: #b2ddff;
}

.contacts-detail-notes {
    margin-top: 20px;
    padding: 18px;
    background: #f8faff;
    border: 1px solid #e1e8f5;
    border-radius: 12px;
}

.contacts-detail-notes h3 {
    margin: 0 0 8px;
    color: #172b4d;
    font-size: 14px;
}

.contacts-detail-notes p {
    margin: 0;
    color: #52617a;
    line-height: 1.65;
}

@media (max-width: 700px) {
    .contacts-visibility-heading {
        flex-direction: column;
    }

    .contacts-detail-actions,
    .contacts-detail-actions .fz-button {
        width: 100%;
    }

    .contacts-detail-list > div {
        grid-template-columns: 1fr;
        gap: 5px;
    }
}

/* =========================================================
   CONTACTS — PROPRIÉTÉ, ACCÈS, PARTAGES ET COPIE
   ========================================================= */

.contacts-accessible-toggle {
    display: inline-flex;
    flex: 1 0 100%;
    align-items: center;
    gap: 10px;
    margin-top: 4px;
    color: #475467;
    font-size: 13px;
    font-weight: 650;
    cursor: pointer;
}

.contacts-accessible-toggle input {
    width: 18px !important;
    min-width: 18px !important;
    height: 18px;
    min-height: 18px !important;
    margin: 0;
    accent-color: var(--fz-primary, #3157d5);
}

.contacts-share-tabs {
    display: inline-flex;
    gap: 5px;
    margin: 4px 0 18px;
    padding: 5px;
    background: #eef2f7;
    border-radius: 12px;
}

.contacts-share-tab {
    display: inline-flex;
    min-height: 38px;
    align-items: center;
    justify-content: center;
    padding: 0 15px;
    color: #52617a;
    border-radius: 9px;
    font-size: 13px;
    font-weight: 750;
    text-decoration: none;
}

.contacts-share-tab:hover {
    color: #172b4d;
    background: rgba(255, 255, 255, 0.62);
}

.contacts-share-tab.is-active {
    color: #3157d5;
    background: #ffffff;
    box-shadow: 0 2px 8px rgba(15, 35, 70, 0.08);
}

.contacts-table-card {
    padding: 0 !important;
}

.contacts-table th:nth-child(5) {
    min-width: 190px;
}

.contacts-table th:nth-child(6) {
    min-width: 170px;
}

.contacts-contact-link {
    display: flex;
    min-width: 180px;
    flex-direction: column;
    gap: 4px;
    color: #102b53;
}

.contacts-contact-link small,
.contacts-owner-email {
    display: block;
    color: #7b879b;
    font-size: 11px;
    font-weight: 500;
}

.contacts-owner-name {
    display: block;
    color: #273755;
    font-size: 13px;
    font-weight: 750;
}

.contacts-access-badge {
    display: inline-flex;
    min-height: 28px;
    align-items: center;
    justify-content: center;
    padding: 5px 10px;
    color: #475467;
    background: #f2f4f7;
    border: 1px solid #e4e7ec;
    border-radius: 999px;
    font-size: 11px;
    font-weight: 800;
    white-space: nowrap;
}

.contacts-access-badge.is-owner {
    color: #087443;
    background: #ecfdf3;
    border-color: #abefc6;
}

.contacts-access-badge.is-shared {
    color: #6941c6;
    background: #f4f3ff;
    border-color: #d9d6fe;
}

.contacts-access-badge.is-organization {
    color: #175cd3;
    background: #eff8ff;
    border-color: #b2ddff;
}

.contacts-access-badge.is-hr {
    color: #b54708;
    background: #fffaeb;
    border-color: #fedf89;
}

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

.contacts-access-summary {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 24px;
    margin-bottom: 20px;
    padding: 17px 20px;
    color: #344054;
    background: #f8faff;
    border: 1px solid #dfe6f1;
    border-radius: 14px;
}

.contacts-access-summary > div {
    display: flex;
    min-width: 0;
    flex-direction: column;
    gap: 5px;
}

.contacts-access-summary strong {
    color: #172b4d;
    font-size: 14px;
}

.contacts-access-summary span,
.contacts-access-summary p {
    color: #64748b;
    font-size: 12px;
    line-height: 1.55;
}

.contacts-access-summary p {
    max-width: 510px;
    margin: 0;
}

.contacts-access-summary.is-owner {
    background: #f0fdf6;
    border-color: #b7ebcd;
}

.contacts-access-summary.is-shared {
    background: #f7f5ff;
    border-color: #ddd7fe;
}

.contacts-access-summary.is-organization {
    background: #f2f8ff;
    border-color: #c9e0ff;
}

@media (max-width: 760px) {
    .contacts-share-tabs {
        display: flex;
        width: 100%;
    }

    .contacts-share-tab {
        flex: 1;
    }

    .contacts-access-summary {
        flex-direction: column;
    }
}

/* =========================================================
   Barre complète des listes Contacts
   ========================================================= */

.contacts-list-toolbar {
    display: flex;
    width: 100%;
    align-items: center;
    flex-wrap: wrap;
    gap: 14px;

    margin: 28px 0 20px;
    padding: 18px 20px;

    background: #ffffff;
    border: 1px solid #dce4f0;
    border-radius: 16px;

    box-shadow:
        0 8px 24px rgba(18, 38, 74, 0.05);

    box-sizing: border-box;
}

.contacts-list-filters {
    display: grid;
    grid-template-columns:
        minmax(280px, 1fr)
        minmax(180px, 230px)
        auto;

    flex: 1 1 650px;
    align-items: center;
    gap: 12px;

    min-width: 0;
    margin: 0;
}

.contacts-list-search,
.contacts-list-select,
.contacts-list-submit {
    width: 100%;
    min-width: 0;
    min-height: 46px;

    margin: 0;
    box-sizing: border-box;

    font: inherit;
}

.contacts-list-search,
.contacts-list-select {
    padding: 0 14px;

    color: #172b4d;
    background: #ffffff;

    border: 1px solid #d9e2ef;
    border-radius: 11px;

    outline: none;

    transition:
        border-color 0.18s ease,
        box-shadow 0.18s ease;
}

.contacts-list-search:focus,
.contacts-list-select:focus {
    border-color: #3157d5;
    box-shadow:
        0 0 0 3px rgba(49, 87, 213, 0.12);
}

.contacts-list-search::placeholder {
    color: #94a3b8;
}

.contacts-list-select {
    padding-right: 40px;
    cursor: pointer;
}

.contacts-list-submit {
    display: inline-flex;
    width: auto;
    min-width: 118px;
    align-items: center;
    justify-content: center;

    padding: 0 18px;

    color: #263755;
    background: #ffffff;

    border: 1px solid #d6dfec;
    border-radius: 11px;

    cursor: pointer;
    font-weight: 700;

    transition:
        background-color 0.18s ease,
        border-color 0.18s ease,
        transform 0.18s ease;
}

.contacts-list-submit:hover {
    background: #f4f7fb;
    border-color: #bdcadc;
    transform: translateY(-1px);
}

.contacts-list-toolbar .btn-add-contact {
    flex: 0 0 auto;
    margin: 0;
}

@media (max-width: 900px) {
    .contacts-list-filters {
        grid-template-columns: 1fr;
        flex-basis: 100%;
    }

    .contacts-list-submit {
        width: 100%;
    }
}

@media (max-width: 620px) {
    .contacts-list-toolbar {
        align-items: stretch;
        flex-direction: column;
        padding: 16px;
    }

    .contacts-list-toolbar .btn-add-contact,
    .contacts-list-filters,
    .contacts-list-search,
    .contacts-list-select,
    .contacts-list-submit {
        width: 100%;
    }
}

/* =========================================================
   FINDZLE CONTACTS — INTÉGRATION OUTLOOK
   ========================================================= */

.outlook-integration-page {
    width: 100%;
}

.outlook-state-card {
    display: flex;
    align-items: flex-start;
    gap: 24px;

    width: 100%;
    margin: 0;
    padding: 32px;

    box-sizing: border-box;

    background: #ffffff;
    border: 1px solid #dce4f0;
    border-radius: 20px;

    box-shadow:
        0 12px 34px rgba(18, 38, 74, 0.06);
}

.outlook-state-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;

    width: 68px;
    height: 68px;
    flex: 0 0 68px;

    color: #b54708;
    background: #fff4df;
    border-radius: 18px;

    font-size: 26px;
    font-weight: 800;
    line-height: 1;
}

.outlook-state-content {
    min-width: 0;
    flex: 1;
}

.outlook-status-badge {
    display: inline-flex;
    align-items: center;
    justify-content: center;

    min-height: 30px;
    margin-bottom: 14px;
    padding: 5px 12px;

    color: #3157d5;
    background: #edf2ff;
    border-radius: 999px;

    font-size: 12px;
    font-weight: 800;
    line-height: 1;
}

.outlook-status-badge--warning {
    color: #9a6700;
    background: #fff4d6;
}

.outlook-status-badge--success {
    color: #087443;
    background: #ddf7ea;
}

.outlook-state-card h2 {
    margin: 0;

    color: #072451;
    font-size: clamp(23px, 2.5vw, 28px);
    font-weight: 800;
    line-height: 1.3;
    letter-spacing: -0.02em;
}

.outlook-state-content > p {
    max-width: 880px;
    margin: 12px 0 0;

    color: #64748b;
    font-size: 15px;
    line-height: 1.7;
}

.outlook-requirements,
.outlook-user-steps {
    max-width: 880px;
    margin-top: 24px;
    padding: 20px 22px;

    background: #f8faff;
    border: 1px solid #e1e8f5;
    border-radius: 14px;
}

.outlook-requirements h3,
.outlook-user-steps h3 {
    margin: 0 0 14px;

    color: #172b4d;
    font-size: 15px;
    font-weight: 800;
}

.outlook-requirements ul,
.outlook-user-steps ol {
    margin: 0;
    padding-left: 22px;

    color: #52617a;
    font-size: 14px;
    line-height: 1.7;
}

.outlook-requirements li + li,
.outlook-user-steps li + li {
    margin-top: 6px;
}

.outlook-requirements code {
    display: inline-block;
    max-width: 100%;
    padding: 3px 7px;

    overflow-wrap: anywhere;

    color: #3157d5;
    background: #edf2ff;
    border-radius: 6px;

    font-family:
        ui-monospace,
        SFMono-Regular,
        Consolas,
        monospace;
    font-size: 12px;
}

.outlook-admin-notice,
.outlook-permission-notice {
    display: flex;
    max-width: 880px;
    align-items: flex-start;
    gap: 6px;
    flex-wrap: wrap;

    margin-top: 18px;
    padding: 16px 18px;

    color: #344054;
    background: #fffaf0;
    border: 1px solid #f2dfae;
    border-radius: 12px;
}

.outlook-admin-notice strong {
    color: #172b4d;
}

.outlook-admin-notice span {
    color: #667085;
}

.outlook-permission-notice {
    display: block;

    background: #f4f7ff;
    border-color: #dce5ff;
}

.outlook-permission-notice p {
    margin: 6px 0 0;

    color: #64748b;
    line-height: 1.6;
}

.outlook-state-actions {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 12px;

    margin-top: 24px;
}

.outlook-state-actions form {
    margin: 0;
}

.outlook-state-actions .fz-button {
    min-height: 46px;
    padding: 0 20px;

    border-radius: 12px;
}

.outlook-connection-details {
    max-width: 880px;
    margin: 24px 0 0;

    overflow: hidden;

    background: #ffffff;
    border: 1px solid #e1e8f5;
    border-radius: 14px;
}

.outlook-connection-details div {
    display: grid;
    grid-template-columns: 220px minmax(0, 1fr);
    gap: 18px;

    padding: 14px 18px;

    border-bottom: 1px solid #edf0f5;
}

.outlook-connection-details div:last-child {
    border-bottom: 0;
}

.outlook-connection-details dt {
    color: #667085;
    font-size: 13px;
    font-weight: 650;
}

.outlook-connection-details dd {
    min-width: 0;
    margin: 0;

    color: #172b4d;
    font-size: 13px;
    font-weight: 700;

    overflow-wrap: anywhere;
}

.outlook-sync-message {
    max-width: 880px;
    margin-top: 16px;
    padding: 14px 16px;

    color: #475467;
    background: #f8faff;
    border: 1px solid #e1e8f5;
    border-radius: 11px;
}

@media (max-width: 720px) {
    .outlook-state-card {
        flex-direction: column;
        gap: 18px;
        padding: 22px 20px;
    }

    .outlook-state-icon {
        width: 58px;
        height: 58px;
        flex-basis: 58px;
    }

    .outlook-requirements,
    .outlook-user-steps,
    .outlook-admin-notice,
    .outlook-permission-notice {
        padding: 16px;
    }

    .outlook-connection-details div {
        grid-template-columns: 1fr;
        gap: 5px;
    }

    .outlook-state-actions,
    .outlook-state-actions form,
    .outlook-state-actions .fz-button {
        width: 100%;
    }
}

/* =========================================================
   Export vCard
   ========================================================= */

.contacts-detail-actions {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    flex-wrap: wrap;
    gap: 10px;
}

.contact-vcard-button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 8px;

    min-height: 44px;
    padding: 0 16px;

    color: #263755;
    background: #ffffff;

    border: 1px solid #d6dfec;
    border-radius: 11px;

    font-weight: 700;
    text-decoration: none;

    transition:
        background-color 0.18s ease,
        border-color 0.18s ease,
        transform 0.18s ease,
        box-shadow 0.18s ease;
}

.contact-vcard-button:hover {
    color: #17345d;
    background: #f4f7fb;
    border-color: #bdcadc;

    transform: translateY(-1px);

    box-shadow:
        0 6px 16px rgba(18, 38, 74, 0.08);
}

.contact-vcard-button__icon {
    display: inline-flex;
    width: 24px;
    height: 24px;

    align-items: center;
    justify-content: center;

    color: #3157d5;
    background: #edf2ff;
    border-radius: 7px;

    font-size: 15px;
    font-weight: 800;
    line-height: 1;
}

@media (max-width: 620px) {
    .contacts-detail-actions,
    .contacts-detail-actions .fz-button {
        width: 100%;
    }
}

/* =========================================================
   Export Excel des contacts
   ========================================================= */

.contacts-excel-button {
    display: inline-flex;
    min-height: 46px;
    flex: 0 0 auto;
    align-items: center;
    justify-content: center;
    gap: 9px;

    padding: 0 17px;

    color: #087443;
    background: #ecfdf3;

    border: 1px solid #abefc6;
    border-radius: 11px;

    font-size: 14px;
    font-weight: 750;
    line-height: 1;
    text-decoration: none;
    white-space: nowrap;

    transition:
        background-color 0.18s ease,
        border-color 0.18s ease,
        transform 0.18s ease,
        box-shadow 0.18s ease;
}

.contacts-excel-button:hover {
    color: #05603a;
    background: #dcfae6;
    border-color: #75e0a7;

    transform: translateY(-1px);

    box-shadow:
        0 7px 18px rgba(8, 116, 67, 0.12);
}

.contacts-excel-button__icon {
    display: inline-flex;
    width: 24px;
    height: 24px;
    align-items: center;
    justify-content: center;

    color: #ffffff;
    background: #12b76a;
    border-radius: 7px;

    font-size: 12px;
    font-weight: 850;
    line-height: 1;
}

@media (max-width: 900px) {
    .contacts-excel-button {
        width: 100%;
    }
}

/* =========================================================
   DIRECTORY / EMPLOYÉS
   ========================================================= */

.contacts-directory-page {
    width: 100%;
}

.contacts-directory-avatar {
    display: inline-grid;
    width: 38px;
    height: 38px;
    flex: 0 0 38px;
    place-items: center;
    margin-right: 10px;
    border-radius: 50%;
    background: var(--fz-primary-soft, #eef2ff);
    color: var(--fz-primary, #3157d5);
    font-size: 14px;
    font-weight: 800;
    vertical-align: middle;
}

.contacts-contact-link {
    display: inline-flex;
    align-items: center;
    gap: 2px;
    color: inherit;
    text-decoration: none;
}

.contacts-contact-link > span:last-child {
    display: flex;
    flex-direction: column;
}

.contacts-contact-link small {
    margin-top: 2px;
    color: var(--fz-text-soft, #667085);
    font-size: 11px;
}

.contacts-contact-link:hover strong {
    text-decoration: underline;
}

/* =========================================================
   FINDZLE CONTACTS - MODE PUBLIC SANS SIDEBAR
   ========================================================= */

.contacts-public-mode .fz-assets-shell,
.contacts-shell-public {
    grid-template-columns: 1fr !important;
}

.contacts-public-mode .fz-assets-main,
.contacts-main-public {
    width: 100% !important;
    max-width: none !important;
    margin-left: 0 !important;
}

.contacts-public-mode .fz-assets-content {
    width: 100% !important;
    max-width: none !important;
}

.contacts-public-mode .fz-page-header,
.contacts-public-mode .fz-page-content {
    width: 100% !important;
}

.contacts-public-mode .fz-page-header-content,
.contacts-public-mode .fz-page-content {
    max-width: none !important;
}

.contacts-public-mode .fz-topbar {
    width: 100% !important;
}

.contacts-public-mode .contacts-public-home {
    width: 100%;
}

/* =========================================================
   CONTACTS - SELECTEUR D'ESPACE
   ========================================================= */

.contacts-space-switcher {
    position: relative;
    margin: 14px 16px 28px;
}

.contacts-space-label {
    margin: 0 8px 8px;
    color: #65728a;
    font-size: 12px;
    font-weight: 800;
    letter-spacing: .08em;
}

.contacts-space-button {
    width: 100%;
    min-height: 72px;

    display: grid;
    grid-template-columns: auto 1fr auto;
    align-items: center;
    gap: 11px;

    padding: 12px 14px;

    border: 1px solid #dbe3ef;
    border-radius: 14px;

    background: #fff;
    color: #102044;

    cursor: pointer;
    text-align: left;
}

.contacts-space-button:hover,
.contacts-space-button[aria-expanded="true"] {
    border-color: #bfcbea;
    background: #f8faff;
}

.contacts-space-icon {
    width: 34px;
    height: 34px;

    display: grid;
    place-items: center;

    border-radius: 10px;

    background: #edf2ff;

    font-size: 16px;
}

.contacts-space-current {
    min-width: 0;
}

.contacts-space-current small,
.contacts-space-current strong {
    display: block;
}

.contacts-space-current small {
    margin-bottom: 3px;

    color: #77839a;

    font-size: 10px;
    font-weight: 700;

    text-transform: uppercase;
    letter-spacing: .05em;
}

.contacts-space-current strong {
    overflow: hidden;

    color: #102044;

    font-size: 14px;

    text-overflow: ellipsis;
    white-space: nowrap;
}

.contacts-space-chevron {
    color: #77839a;
}

.contacts-space-menu {
    position: absolute;

    top: calc(100% + 8px);
    left: 0;
    right: 0;

    z-index: 2000;

    padding: 8px;

    border: 1px solid #dce4ef;
    border-radius: 14px;

    background: #fff;

    box-shadow:
        0 16px 45px
        rgba(20, 38, 75, .16);
}

.contacts-space-menu[hidden] {
    display: none !important;
}

.contacts-space-option {
    display: grid;
    grid-template-columns: auto 1fr auto;
    align-items: center;

    gap: 10px;

    padding: 10px 11px;

    border-radius: 10px;

    color: #172445;

    text-decoration: none;
}

.contacts-space-option:hover {
    background: #f5f7fb;
}

.contacts-space-option.is-active {
    background: #edf2ff;
    color: #315ce7;
}

.contacts-space-option-icon {
    width: 31px;
    height: 31px;

    display: grid;
    place-items: center;

    border-radius: 9px;

    background: #f0f3fa;
}

.contacts-space-option strong,
.contacts-space-option small {
    display: block;
}

.contacts-space-option strong {
    font-size: 13px;
}

.contacts-space-option small {
    margin-top: 3px;

    color: #8590a4;

    font-size: 10px;
}

.contacts-space-check {
    color: #315ce7;
    font-weight: 900;
}

@media (min-width: 901px) {

    body.fz-sidebar-collapsed .fz-brand-text,
    body.fz-sidebar-collapsed .contacts-context-selector,
    body.fz-sidebar-collapsed .fz-nav-section-title,
    body.fz-sidebar-collapsed .fz-sidebar-section-title,
    body.fz-sidebar-collapsed .fz-sidebar-link-label,
    body.fz-sidebar-collapsed .fz-nav-link-label {
        display: none !important;
    }

    body.fz-sidebar-collapsed .fz-nav-link,
    body.fz-sidebar-collapsed .fz-sidebar-link {
        justify-content: center !important;
        padding-left: 0 !important;
        padding-right: 0 !important;
    }

    body.fz-sidebar-collapsed .fz-nav-icon,
    body.fz-sidebar-collapsed .fz-sidebar-link-icon {
        margin: 0 !important;
    }
}

/* =========================================================
   CONTACTS — FORMULAIRE CONTACT
   ========================================================= */

.contacts-form-page {
    width: 100%;
}

.contacts-form {
    width: 100%;
}

.contacts-form-layout {
    display: grid;
    grid-template-columns: 220px minmax(0, 1fr);
    gap: 22px;
    align-items: start;
}

.contacts-form-nav {
    position: sticky;
    top: calc(var(--fz-topbar-height, 72px) + 24px);
    display: flex;
    flex-direction: column;
    gap: 3px;
    padding: 10px;
}

.contacts-form-nav a {
    display: flex;
    min-height: 42px;
    align-items: center;
    padding: 9px 12px;
    border-radius: 10px;
    color: var(--fz-text-soft, #667085);
    font-size: 13px;
    font-weight: 700;
    text-decoration: none;
}

.contacts-form-nav a:hover,
.contacts-form-nav a.is-active {
    background: var(--fz-primary-soft, #eef2ff);
    color: var(--fz-primary, #3157d5);
}

.contacts-form-content {
    display: flex;
    min-width: 0;
    flex-direction: column;
    gap: 20px;
}

.contacts-form-section {
    overflow: hidden;
    scroll-margin-top: calc(
        var(--fz-topbar-height, 72px) + 24px
    );
}

.contacts-form-section-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 20px 24px;
    border-bottom: 1px solid var(--fz-border, #e5eaf2);
}

.contacts-form-section-header h2 {
    margin: 3px 0 0;
    color: var(--fz-text, #17233c);
    font-size: 18px;
    font-weight: 800;
}

.contacts-form-section-header p {
    margin: 5px 0 0;
    color: var(--fz-text-soft, #667085);
    font-size: 13px;
}

.contacts-form-eyebrow {
    display: block;
    color: var(--fz-primary, #3157d5);
    font-size: 11px;
    font-weight: 800;
    letter-spacing: .07em;
    text-transform: uppercase;
}

.contacts-form-section-body {
    padding: 24px;
}

.contacts-form-grid {
    display: grid;
    gap: 18px;
}

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

.contacts-field {
    min-width: 0;
}

.contacts-field-full {
    grid-column: 1 / -1;
}

.contacts-field label {
    display: block;
    margin-bottom: 7px;
    color: var(--fz-text, #17233c);
    font-size: 13px;
    font-weight: 750;
}

.contacts-field small {
    display: block;
    margin-top: 6px;
    color: var(--fz-text-soft, #7b879d);
    font-size: 11px;
}

.contacts-field input,
.contacts-field select,
.contacts-field textarea {
    width: 100%;
    min-height: 42px;
    padding: 10px 12px;
    border: 1px solid var(--fz-border, #dfe5ee);
    border-radius: 9px;
    outline: none;
    background: #fff;
    color: var(--fz-text, #17233c);
    font: inherit;
}

.contacts-field textarea {
    min-height: 140px;
    resize: vertical;
}

.contacts-field input:focus,
.contacts-field select:focus,
.contacts-field textarea:focus {
    border-color: var(--fz-primary, #3157d5);
    box-shadow: 0 0 0 3px rgba(49, 87, 213, .10);
}

.contacts-form-actions {
    position: sticky;
    bottom: 0;
    z-index: 10;
    display: flex;
    justify-content: flex-end;
    gap: 10px;
    padding: 16px 0 4px;
    background:
        linear-gradient(
            to bottom,
            rgba(245, 247, 251, 0),
            rgba(245, 247, 251, 1) 35%
        );
}

.contacts-form-errors {
    margin-bottom: 20px;
    padding: 16px 18px;
    border: 1px solid #f1b8b8;
    border-radius: 10px;
    background: #fff2f2;
    color: #a52a2a;
}

.contacts-form-errors ul {
    margin: 8px 0 0 18px;
}

@media (max-width: 1050px) {
    .contacts-form-layout {
        grid-template-columns: 1fr;
    }

    .contacts-form-nav {
        position: static;
        display: grid;
        grid-template-columns:
            repeat(
                3,
                minmax(0, 1fr)
            );
    }
}

@media (max-width: 700px) {
    .contacts-form-grid-2 {
        grid-template-columns: 1fr;
    }

    .contacts-form-nav {
        grid-template-columns:
            repeat(
                2,
                minmax(0, 1fr)
            );
    }

    .contacts-form-section-header,
    .contacts-form-section-body {
        padding: 18px;
    }

    .contacts-form-actions {
        flex-direction: column-reverse;
    }

    .contacts-form-actions .fz-button {
        width: 100%;
    }
}

.fz-integration-icon-google {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 74px;
    height: 74px;
    flex: 0 0 74px;
    border-radius: 20px;
    background: #f1f5ff;
}

.fz-integration-icon-google svg {
    width: 34px;
    height: 34px;
    fill: none;
    stroke: currentColor;
    stroke-width: 1.8;
    stroke-linecap: round;
    stroke-linejoin: round;
}

.contacts-context-card {
    margin-bottom: 24px;
}

.contacts-integration-settings-card {
    margin-bottom: 24px;
}

.contacts-settings-grid {
    display: grid;
    grid-template-columns:
        repeat(3, minmax(0, 1fr));
    gap: 18px;
    margin-bottom: 28px;
}

.contacts-settings-checks {
    display: grid;
    grid-template-columns:
        repeat(2, minmax(0, 1fr));
    gap: 12px 20px;
    margin: 14px 0 24px;
}

.contacts-settings-check {
    display: flex;
    align-items: flex-start;
    gap: 10px;
    line-height: 1.45;
}

.contacts-settings-check input {
    margin-top: 4px;
}

.contacts-settings-actions {
    margin-top: 24px;
}

@media (max-width: 900px) {
    .contacts-settings-grid,
    .contacts-settings-checks {
        grid-template-columns: 1fr;
    }
}

/* FINDZLE CONTACTS - LAUNCHER FIXED FOOTER */

.fz-app-launcher-menu {
    display: flex;
    flex-direction: column;
    height: min(690px, calc(100dvh - 100px));
    max-height: calc(100dvh - 100px);
    overflow: hidden;
}

.fz-app-launcher-menu .fz-app-launcher-content {
    flex: 1 1 auto;
    min-height: 0;
    overflow-y: auto;
    overscroll-behavior: contain;
}

.fz-app-launcher-menu .fz-app-launcher-footer {
    flex: 0 0 auto;
}

.fz-app-launcher-menu .fz-app-launcher-header,
.fz-app-launcher-menu .fz-app-launcher-search {
    flex: 0 0 auto;
}

