.brand-logo {
    width: 30px;
    height: 30px;
    object-fit: contain;
}

.login-mode #accordionSidebar,
.login-mode .topbar,
.login-mode footer {
    display: none !important;
}

.login-mode #content-wrapper {
    width: 100%;
    min-height: 100vh;
}

.login-mode #content {
    min-height: 100vh;
}

.login-mode #app {
    padding: 0;
}

.login-frame {
    min-height: 100vh;
    display: flex;
    align-items: center;
    justify-content: center;
    background: #f8f9fc;
    padding: 24px;
}

.login-panel,
.choice-panel {
    width: min(420px, 100%);
    background: #fff;
    border: 1px solid #d1d3e2;
    box-shadow: 0 .15rem .6rem rgba(58, 59, 69, .15);
}

.login-title {
    background: #2f81ea;
    color: #fff;
    font-family: "Century Gothic", Arial, sans-serif;
    font-weight: 700;
    text-align: center;
    padding: 8px 12px;
}

.login-title.is-authorized {
    background: #009933;
}

.login-body {
    padding: 22px;
}

.login-logo {
    display: block;
    width: 88px;
    height: 88px;
    object-fit: contain;
    margin: 0 auto 18px;
}

.login-form label {
    display: block;
    color: #5a5c69;
    font-size: .85rem;
    margin-bottom: 12px;
}

.login-message {
    min-height: 22px;
    color: #cc0000;
    font-size: .85rem;
    margin-top: 12px;
    text-align: center;
}

.choice-help {
    padding: 16px 18px 8px;
    color: #5a5c69;
    text-align: center;
}

.choice-list {
    padding: 8px 18px 18px;
}

.choice-item {
    width: 100%;
    display: block;
    border: 1px solid #d1d3e2;
    background: #fff;
    color: #2f81ea;
    text-align: left;
    padding: 9px 10px;
    margin-bottom: 8px;
    cursor: pointer;
}

.choice-item:hover {
    background: #f8f9fc;
}

.sidebar .module-nav-link span {
    white-space: normal;
    line-height: 1.25;
}

.sidebar .stock-menu-button {
    background: #2f81ea;
    color: #fff !important;
    margin: 1px 0;
}

.sidebar .stock-menu-button:hover,
.sidebar .active .stock-menu-button {
    background: #256fcb;
}

.settings-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
    gap: 1rem;
}

.home-logo {
    width: 120px;
    height: 120px;
    object-fit: contain;
}

.home-feature-list {
    line-height: 1.75;
}

.desktop-shell-empty {
    min-height: calc(100vh - 240px);
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    text-align: center;
    background: #fff;
}

.stock-internal-frame {
    background: #fff;
    border: 1px solid #d1d3e2;
    min-height: calc(100vh - 205px);
    font-size: 11px;
}

.stock-module-titlebar {
    height: 25px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 8px;
    background: #2f81ea;
    color: #fff;
    font-family: "Century Gothic", Arial, sans-serif;
    font-size: 12px;
    padding: 2px 5px;
}

.stock-title-button {
    border: 0;
    background: transparent;
    color: #fff;
    width: 24px;
    height: 21px;
    line-height: 1;
    padding: 0;
    cursor: pointer;
}

.stock-feature-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(180px, 1fr));
    grid-template-rows: repeat(4, minmax(90px, 1fr));
    gap: 10px;
    min-height: 420px;
    padding: 10px;
    background: #fff;
}

.stock-feature-tile,
.stock-feature-placeholder {
    min-width: 0;
    min-height: 90px;
    background: #fff;
}

.stock-feature-tile {
    display: flex;
    flex-direction: column;
    border: 2px outset #999;
    color: #2f81ea;
    text-align: center;
    cursor: pointer;
    padding: 0;
    overflow: hidden;
}

.stock-feature-tile:hover,
.stock-feature-tile.is-selected {
    background: #f8f9fc;
}

.stock-feature-title-wrap {
    display: flex;
    min-height: 58px;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    padding: 6px 6px 2px;
}

.stock-feature-icon {
    width: 32px;
    height: 32px;
    object-fit: contain;
    margin-bottom: 3px;
}

.stock-feature-title {
    display: block;
    max-width: 180px;
    color: #2f81ea;
    font-family: "Century Gothic", Arial, sans-serif;
    font-weight: 700;
    font-size: 12px;
    line-height: 1.08;
    overflow-wrap: anywhere;
}

.stock-feature-desc {
    display: block;
    flex: 1;
    width: 100%;
    border: 0;
    color: #666;
    font-family: Arial, sans-serif;
    font-size: 9px;
    line-height: 1.18;
    text-align: left;
    padding: 2px 6px 6px;
    overflow: hidden;
    overflow-wrap: anywhere;
}

.stock-feature-placeholder {
    border: 0;
}

@media (max-width: 991px) {
    .stock-feature-grid {
        grid-template-columns: repeat(2, minmax(140px, 1fr));
        grid-template-rows: none;
    }
}

@media (max-width: 599px) {
    .stock-feature-grid {
        grid-template-columns: 1fr;
        min-height: 0;
    }

    .stock-feature-title {
        font-size: 12px;
        max-width: 100%;
    }
}

.tenant-panel {
    width: min(520px, 100%);
}

.tenant-form-body {
    padding: 18px;
}

.tenant-form-body label {
    display: block;
    color: #5a5c69;
    font-size: .85rem;
    margin-bottom: 12px;
}

.tenant-result {
    min-height: 48px;
    margin-top: 10px;
    padding: 10px;
    background: #f8f9fc;
    border: 1px solid #e3e6f0;
    color: #5a5c69;
    font-size: .85rem;
}

.tenant-actions {
    display: flex;
    justify-content: flex-end;
    gap: 8px;
    padding: 12px 18px 18px;
    border-top: 1px solid #e3e6f0;
}

@media (max-width: 599px) {
    .tenant-actions {
        flex-direction: column;
    }
}

/* --- Caisse Module --------------------------------------------------- */

.caisse-home {
    background: #fff;
    border: 1px solid #d1d3e2;
    min-height: calc(100vh - 205px);
}

.caisse-tabs {
    display: flex;
    gap: 0;
    background: #f8f9fc;
    border-bottom: 2px solid #d1d3e2;
    padding: 0 8px;
}

.caisse-tab {
    border: 0;
    background: transparent;
    color: #6e707e;
    font-size: 13px;
    font-weight: 600;
    padding: 10px 18px;
    cursor: pointer;
    border-bottom: 3px solid transparent;
    margin-bottom: -2px;
    transition: all .15s;
}

.caisse-tab:hover {
    color: #2f81ea;
    background: rgba(47, 129, 234, 0.04);
}

.caisse-tab.is-active {
    color: #2f81ea;
    border-bottom-color: #2f81ea;
    background: rgba(47, 129, 234, 0.06);
}

/* --- Internal operation tabs --------------------------------------- */

.caisse-op-tabs {
    display: flex;
    align-items: center;
    gap: 0;
    padding: 0 8px;
    background: #eaecf4;
    border-bottom: 1px solid #d1d3e2;
    overflow-x: auto;
}

.caisse-op-tab {
    display: flex;
    align-items: center;
    gap: 6px;
    padding: 7px 12px;
    background: transparent;
    border: 1px solid transparent;
    border-bottom: 0;
    border-radius: 6px 6px 0 0;
    cursor: pointer;
    font-size: 11px;
    font-weight: 600;
    color: #6e707e;
    white-space: nowrap;
    transition: all .12s;
    margin-top: 4px;
}

.caisse-op-tab:hover {
    background: rgba(255, 255, 255, 0.6);
    color: #3a3b45;
}

.caisse-op-tab.is-active {
    background: #fff;
    color: #2f81ea;
    border-color: #d1d3e2;
    position: relative;
}

.caisse-op-tab.is-active::after {
    content: '';
    position: absolute;
    bottom: -1px;
    left: 0;
    right: 0;
    height: 2px;
    background: #fff;
}

.caisse-op-tab-label {
    max-width: 140px;
    overflow: hidden;
    text-overflow: ellipsis;
}

.caisse-op-tab-close {
    border: 0;
    background: transparent;
    color: inherit;
    padding: 0 2px;
    font-size: 11px;
    cursor: pointer;
    opacity: 0.6;
    line-height: 1;
}

.caisse-op-tab-close:hover {
    opacity: 1;
    color: #e74a3b;
}

.caisse-op-tab-add {
    border: 0;
    background: transparent;
    color: #2f81ea;
    padding: 6px 10px;
    cursor: pointer;
    font-size: 14px;
    margin-left: 4px;
}

.caisse-op-tab-add:hover {
    color: #1a5cbf;
}

.caisse-op-content {
    min-height: 360px;
}

.caisse-tab-content {
    min-height: 400px;
}

.caisse-empty {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    padding: 60px 20px;
    color: #b7b9cc;
}

.caisse-empty i {
    font-size: 48px;
    margin-bottom: 12px;
}

/* --- Modeles list --------------------------------------------------- */

.caisse-modeles-header {
    padding: 14px 18px 6px;
    color: #5a5c69;
}

.caisse-modeles-header h6 {
    margin: 0;
    font-size: 14px;
    font-weight: 600;
}

.caisse-modeles-list {
    padding: 8px 14px 14px;
}

.caisse-modele-card {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 12px 14px;
    margin-bottom: 8px;
    background: #fff;
    border: 1px solid #e3e6f0;
    border-radius: 10px;
    cursor: pointer;
    transition: all .15s;
}

.caisse-modele-card:hover {
    border-color: #2f81ea;
    box-shadow: 0 2px 8px rgba(47, 129, 234, 0.12);
    transform: translateY(-1px);
}

.caisse-modele-icon {
    width: 40px;
    height: 40px;
    display: flex;
    align-items: center;
    justify-content: center;
    background: rgba(47, 129, 234, 0.08);
    border-radius: 10px;
    color: #2f81ea;
    font-size: 18px;
    flex-shrink: 0;
}

.caisse-modele-info {
    flex: 1;
    min-width: 0;
}

.caisse-modele-name {
    font-weight: 600;
    color: #3a3b45;
    font-size: 14px;
}

.caisse-modele-desc {
    color: #858796;
    font-size: 12px;
    margin-top: 2px;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.caisse-modele-arrow {
    color: #b7b9cc;
    font-size: 12px;
    flex-shrink: 0;
}

.caisse-badge {
    font-size: 11px;
    background: rgba(28, 200, 138, 0.12);
    color: #1cc88a;
    padding: 3px 10px;
    border-radius: 999px;
    font-weight: 600;
    flex-shrink: 0;
}

/* --- Wizard --------------------------------------------------------- */

.caisse-wizard {
    display: flex;
    flex-direction: column;
    min-height: 420px;
}

.wizard-header {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 10px 14px;
    background: #f8f9fc;
    border-bottom: 1px solid #e3e6f0;
    flex-wrap: wrap;
}

.wizard-modele-name {
    font-weight: 600;
    color: #3a3b45;
    font-size: 14px;
}

.wizard-caisse-account {
    font-size: 12px;
    background: #ffd43b;
    color: #3a2b00;
    padding: 3px 10px;
    border-radius: 4px;
    font-weight: 700;
}

.wizard-id-badge {
    font-size: 12px;
    background: #2f81ea;
    color: #fff;
    padding: 3px 10px;
    border-radius: 4px;
    font-weight: 600;
}

.wizard-guichet-badge {
    font-size: 12px;
    background: rgba(47, 129, 234, 0.08);
    color: #2f81ea;
    padding: 3px 10px;
    border-radius: 4px;
    font-weight: 500;
}

.wizard-step-badge {
    font-size: 12px;
    color: #858796;
    margin-left: auto;
}

.wizard-body {
    flex: 1;
    padding: 0;
    overflow-y: auto;
}

.wizard-footer {
    display: flex;
    justify-content: flex-end;
    gap: 8px;
    padding: 10px 14px;
    border-top: 1px solid #e3e6f0;
    background: #f8f9fc;
}

/* --- Wizard question pages ------------------------------------------ */

.wizard-question-page {
    padding: 16px;
}

.wizard-question-title {
    color: #3a3b45;
    font-size: 15px;
    font-weight: 600;
    margin-bottom: 12px;
}

.wizard-compte-list {
    max-height: 360px;
    overflow-y: auto;
    border: 1px solid #e3e6f0;
    border-radius: 8px;
}

.wizard-compte-item {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 10px 12px;
    border-bottom: 1px solid #f0f0f5;
    cursor: pointer;
    transition: background .1s;
}

.wizard-compte-item:last-child {
    border-bottom: 0;
}

.wizard-compte-item:hover {
    background: rgba(47, 129, 234, 0.04);
}

.wizard-compte-item.is-selected {
    background: rgba(47, 129, 234, 0.08);
}

.wizard-compte-avatar {
    width: 32px;
    height: 32px;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: 50%;
    background: #2f81ea;
    color: #fff;
    font-size: 13px;
    font-weight: 700;
    flex-shrink: 0;
}

.wizard-compte-name {
    flex: 1;
    font-size: 13px;
    color: #3a3b45;
}

/* --- Wizard select_n ------------------------------------------------ */

.wizard-select-n-form {
    position: relative;
    display: flex;
    gap: 6px;
    align-items: flex-start;
    flex-wrap: wrap;
    margin-bottom: 10px;
}

.wizard-select-n-form > input[type="text"] {
    flex: 2;
    min-width: 180px;
}

.wizard-select-n-inputs {
    display: flex;
    gap: 6px;
    align-items: center;
}

.wizard-select-n-inputs input {
    width: 80px;
}

.wizard-price-field {
    display: flex;
    align-items: center;
    width: 132px;
}

.wizard-price-field input {
    min-width: 0;
    width: 86px;
    border-top-right-radius: 0;
    border-bottom-right-radius: 0;
}

.wizard-price-field span {
    min-width: 46px;
    height: 31px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 0 6px;
    border: 1px solid #d1d3e2;
    border-left: 0;
    border-radius: 0 4px 4px 0;
    background: #f8f9fc;
    color: #3a3b45;
    font-size: 12px;
    font-weight: 700;
}

.wizard-compte-dropdown {
    position: absolute;
    top: 100%;
    left: 0;
    right: 0;
    z-index: 50;
    max-height: 200px;
    overflow-y: auto;
    background: #fff;
    border: 1px solid #d1d3e2;
    border-radius: 0 0 6px 6px;
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1);
}

.wizard-dropdown-item {
    padding: 8px 12px;
    cursor: pointer;
    font-size: 13px;
    border-bottom: 1px solid #f0f0f5;
}

.wizard-dropdown-item:hover {
    background: rgba(47, 129, 234, 0.06);
}

.wizard-select-n-total {
    padding: 6px 12px;
    background: rgba(47, 129, 234, 0.06);
    border: 1px solid rgba(47, 129, 234, 0.2);
    border-radius: 6px;
    font-size: 13px;
    color: #2f81ea;
    margin-bottom: 10px;
}

.wizard-select-n-list {
    max-height: 240px;
    overflow-y: auto;
}

.wizard-select-n-table-wrap {
    border: 1px solid #e3e6f0;
    border-radius: 6px;
}

.wizard-select-n-table th {
    background: #f8f9fc;
    color: #4e5668;
    font-size: 12px;
    white-space: nowrap;
}

.wizard-select-n-table td {
    vertical-align: middle;
    font-size: 12px;
}

.wizard-select-n-item {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 8px 10px;
    border-bottom: 1px solid #f0f0f5;
    font-size: 13px;
}

.wizard-select-n-item-name {
    flex: 1;
    font-weight: 500;
    color: #3a3b45;
}

.wizard-select-n-item-detail {
    color: #858796;
    font-size: 12px;
}

/* --- Wizard final form ---------------------------------------------- */

.wizard-final-form {
    padding: 14px;
}

.wizard-form-card {
    background: #fff;
    border: 1px solid #e3e6f0;
    border-radius: 10px;
    padding: 16px;
}

.wizard-form-section-title {
    font-size: 14px;
    font-weight: 600;
    color: #3a3b45;
    margin-bottom: 14px;
    padding-bottom: 8px;
    border-bottom: 1px solid #e3e6f0;
}

.wizard-montant-row {
    display: flex;
    gap: 10px;
}

.wizard-montant-field {
    flex: 1;
}

.wizard-montant-field label {
    display: block;
    margin-bottom: 2px;
}

.wizard-due-box {
    padding: 10px 12px;
    background: #f8f9fc;
    border: 1px solid #d9dde8;
    border-radius: 8px;
}

.wizard-due-list {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin-bottom: 8px;
}

.wizard-due-chip {
    padding: 5px 9px;
    background: #ffffff;
    border: 1px solid #e3e6f0;
    border-radius: 6px;
    color: #3a3b45;
    font-size: 13px;
}

.wizard-due-default {
    font-size: 14px;
    color: #1f2d3d;
}

.wizard-total-bar {
    margin-top: 8px;
    padding: 8px 12px;
    background: rgba(47, 129, 234, 0.06);
    border: 1px solid rgba(47, 129, 234, 0.2);
    border-radius: 8px;
    color: #2f81ea;
    font-size: 14px;
}

.wizard-rest-bar {
    background: rgba(231, 74, 59, 0.06);
    border-color: rgba(231, 74, 59, 0.22);
    color: #be3428;
}

/* --- Receipt -------------------------------------------------------- */

.caisse-receipt {
    max-width: 480px;
    margin: 20px auto;
    text-align: center;
}

.caisse-receipt-icon {
    font-size: 56px;
    color: #1cc88a;
    margin-bottom: 12px;
}

.caisse-receipt-title {
    color: #1cc88a;
    font-weight: 700;
    margin-bottom: 20px;
}

.caisse-receipt-details {
    text-align: left;
    background: #f8f9fc;
    border: 1px solid #e3e6f0;
    border-radius: 10px;
    padding: 14px;
    margin-bottom: 20px;
}

.caisse-receipt-row {
    display: flex;
    justify-content: space-between;
    padding: 6px 0;
    border-bottom: 1px solid #eaecf4;
    font-size: 13px;
}

.caisse-receipt-row:last-child {
    border-bottom: 0;
}

.caisse-receipt-row span {
    color: #858796;
}

.caisse-receipt-row strong {
    color: #3a3b45;
}

.caisse-receipt-actions {
    display: flex;
    gap: 10px;
    justify-content: center;
    flex-wrap: wrap;
}

.caisse-print-frame {
    position: fixed;
    width: 0;
    height: 0;
    border: 0;
    right: 0;
    bottom: 0;
    visibility: hidden;
}

/* --- Livre de caisse ------------------------------------------------ */

.livre-caisse-container {
    padding: 14px;
}

.livre-caisse-filters {
    margin-bottom: 14px;
}

.livre-filter-row {
    display: flex;
    gap: 10px;
    align-items: flex-end;
    flex-wrap: wrap;
}

.livre-filter-field {
    flex: 1;
    min-width: 140px;
}

.livre-filter-field label {
    display: block;
    font-size: 12px;
    color: #858796;
    margin-bottom: 4px;
    font-weight: 600;
}

.livre-filter-actions {
    flex-shrink: 0;
}

.livre-table-container {
    border: 1px solid #e3e6f0;
    border-radius: 8px;
    overflow: hidden;
}

.livre-caisse-table {
    margin: 0;
    font-size: 13px;
}

.livre-caisse-table thead th {
    background: #f8f9fc;
    border-bottom: 2px solid #d1d3e2;
    color: #5a5c69;
    font-weight: 700;
    font-size: 12px;
    text-transform: uppercase;
    letter-spacing: 0.03em;
    padding: 10px 8px;
    white-space: nowrap;
}

.livre-caisse-table tbody td {
    padding: 8px;
    vertical-align: middle;
}

.livre-row-total {
    background: #edf2f9 !important;
    font-weight: 700;
}

.livre-pagination {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 12px;
    padding: 12px 0;
}

.livre-page-info {
    font-size: 13px;
    color: #858796;
}

@media (max-width: 768px) {
    .livre-filter-row {
        flex-direction: column;
    }

    .wizard-header {
        flex-direction: column;
        align-items: flex-start;
    }

    .wizard-step-badge {
        margin-left: 0;
    }

    .wizard-montant-row {
        flex-direction: column;
    }

    .wizard-select-n-form {
        flex-direction: column;
    }

    .wizard-select-n-inputs {
        width: 100%;
    }

    .wizard-select-n-inputs input {
        flex: 1;
    }
}

/* --- Stock workflows ------------------------------------------------ */
:root {
    --java-blue: #2f81ea;
    --java-text: #666666;
    --java-green: #009933;
    --java-red: #ff0000;
    --java-alert: #ff3300;
    --java-border: #d6d6d6;
}

.workflow-frame {
    min-height: calc(100vh - 190px);
    background: #fff;
}

.legacy-workspace {
    padding: 0;
    border: 0;
}

.workflow-titlebar {
    align-items: center;
}

.workflow-subbar {
    display: flex;
    justify-content: space-between;
    gap: 12px;
    padding: 8px 12px;
    background: #f8f9fc;
    border: 1px solid #e3e6f0;
    border-top: 0;
    color: #5a5c69;
    font-size: 12px;
}

.workflow-tabs:empty {
    display: none;
}

.legacy-form-shell {
    background: #fff;
    border: 1px solid var(--java-border);
    min-height: calc(100vh - 240px);
    display: flex;
    flex-direction: column;
}

.legacy-workspace .legacy-form-shell {
    border: 0;
    min-height: calc(100vh - 178px);
}

.legacy-form-titlebar {
    min-height: 30px;
    background: #fff;
    display: flex;
    align-items: center;
    gap: 5px;
    padding: 2px 5px;
    color: var(--java-text);
    font-family: "Century Gothic", "Nunito", Arial, sans-serif;
    font-size: 14px;
}

.legacy-status {
    margin-left: auto;
    font-size: 11px;
}

.legacy-refresh-button {
    width: 24px;
    height: 24px;
    border: 0;
    background: transparent;
    color: var(--java-text);
    display: inline-flex;
    align-items: center;
    justify-content: center;
}

.legacy-nav-button {
    width: 24px;
    height: 24px;
    border: 0;
    background: transparent;
    padding: 0;
    display: inline-flex;
    align-items: center;
    justify-content: center;
}

.legacy-nav-button img {
    max-width: 18px;
    max-height: 18px;
}

.legacy-alert {
    margin-left: auto;
    color: var(--java-alert);
    font: 700 12px Tahoma, Arial, sans-serif;
}

.legacy-form-menu {
    min-height: 58px;
    background: var(--java-blue);
    display: flex;
    align-items: stretch;
    gap: 10px;
    padding: 5px 10px;
    flex-wrap: wrap;
}

.legacy-menu-button {
    min-width: 74px;
    min-height: 48px;
    border: 1px solid #bfc7d2;
    background: #fff;
    color: #676767;
    border-radius: 2px;
    padding: 4px 7px;
    display: inline-flex;
    flex-direction: column;
    align-items: center;
    justify-content: flex-start;
    gap: 2px;
    font-size: 12px;
    line-height: 1.1;
    text-align: center;
}

.legacy-menu-button:hover {
    border-color: #7d8795;
    background: #f7f7f7;
}

.legacy-menu-button img {
    width: 26px;
    height: 26px;
    object-fit: contain;
}

.legacy-form-child {
    flex: 1;
    min-height: 260px;
    background: #fff;
    overflow: auto;
}

.legacy-child-empty {
    min-height: 260px;
    background: #fff;
}

.workflow-status {
    color: #6f7484;
    text-align: right;
}

.workflow-status.is-ok {
    color: #1cc88a;
}

.workflow-status.is-error {
    color: #e74a3b;
}

.workflow-tabs {
    display: flex;
    gap: 6px;
    padding: 10px 12px 0;
    flex-wrap: wrap;
}

.workflow-tab {
    border: 1px solid #d1d3e2;
    background: #fff;
    color: #4e73df;
    padding: 6px 10px;
    border-radius: 6px;
    font-size: 12px;
    font-weight: 700;
}

.workflow-tab.is-active,
.workflow-tab:hover {
    background: #4e73df;
    color: #fff;
    text-decoration: none;
}

.workflow-body {
    padding: 12px;
}

.workflow-action-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(180px, 1fr));
    gap: 10px;
}

.workflow-action {
    min-height: 104px;
    border: 1px solid #d1d3e2;
    background: #fff;
    color: #3a3b45;
    border-radius: 8px;
    padding: 12px;
    text-align: left;
    display: grid;
    grid-template-columns: 38px 1fr;
    grid-template-rows: auto auto;
    column-gap: 10px;
    align-items: center;
}

.workflow-action:hover {
    border-color: #4e73df;
    box-shadow: 0 0.15rem 0.45rem rgba(58, 59, 69, 0.12);
}

.workflow-action img {
    width: 34px;
    height: 34px;
    object-fit: contain;
    grid-row: 1 / span 2;
}

.workflow-action span {
    font-weight: 800;
    font-size: 14px;
}

.workflow-action small {
    color: #858796;
    font-size: 12px;
}

.workflow-toolbar {
    display: flex;
    gap: 8px;
    align-items: flex-end;
    flex-wrap: wrap;
    margin-bottom: 10px;
}

.legacy-form-child .workflow-toolbar {
    background: #fff;
    margin-bottom: 0;
    padding: 6px 8px;
    border-bottom: 1px solid #ececec;
}

.legacy-form-child .workflow-toolbar .btn {
    background: #fff;
    color: var(--java-text);
    border-color: #cfcfcf;
}

.legacy-form-child .workflow-toolbar .btn-primary {
    background: var(--java-red);
    border-color: var(--java-red);
    color: #fff;
}

.legacy-form-child .workflow-toolbar .btn-outline-primary,
.legacy-form-child .workflow-toolbar .btn-outline-secondary {
    color: var(--java-text);
}

.workflow-field {
    min-width: 130px;
}

.workflow-field.is-search {
    flex: 1 1 240px;
}

.workflow-field label,
.workflow-form-row label,
.line-editor label,
.payment-panel label {
    display: block;
    margin-bottom: 0;
    color: #5a5c69;
    font-size: 11px;
    font-weight: 700;
}

.workflow-table-wrap {
    border: 1px solid #e3e6f0;
    border-radius: 8px;
    overflow: auto;
    background: #fff;
}

.legacy-form-child > .workflow-table-wrap,
.legacy-form-child > .workflow-split {
    border-radius: 0;
    border-left: 0;
    border-right: 0;
}

.workflow-table-wrap.is-small {
    max-height: 315px;
}

.workflow-table {
    margin-bottom: 0;
    font-size: 11px;
}

.workflow-table thead th {
    background: #f4f4f4;
    color: var(--java-text);
    border-bottom: 1px solid #d1d3e2;
    white-space: nowrap;
}

.workflow-table tbody tr.is-selected,
.workflow-table tbody tr:hover {
    background: #eaf1ff;
}

.workflow-form-grid {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 250px;
    gap: 12px;
    align-items: start;
}

.invoice-layout {
    grid-template-columns: minmax(0, 1fr) 245px;
    gap: 8px;
}

.invoice-zone,
.appro-zone {
    border: 1px solid #e2e2e2;
    border-radius: 3px;
    padding: 8px;
}

.invoice-header-zone {
    background: #f7fbff;
}

.invoice-entry-zone {
    background: #fff8ec;
}

.appro-header-zone {
    background: #f7fbff;
}

.appro-description-zone {
    background: #fff;
}

.appro-option-zone {
    background: #fff8ec;
    padding: 6px 8px;
}

.appro-line-zone {
    background: #f5fff7;
}

.workflow-panel {
    border: 1px solid #e3e6f0;
    background: #fff;
    border-radius: 8px;
    padding: 12px;
}

.legacy-form-child .workflow-panel {
    border-radius: 0;
    border-color: #ececec;
}

.workflow-form-row {
    display: grid;
    gap: 8px;
    margin-bottom: 10px;
}

.workflow-form-row.compact-four {
    grid-template-columns: repeat(4, minmax(120px, 1fr));
}

.workflow-form-row.compact-two {
    grid-template-columns: 1fr 220px;
}

.line-editor {
    display: grid;
    grid-template-columns: minmax(180px, 1fr) 90px 110px 100px auto auto;
    gap: 8px;
    align-items: end;
    margin-bottom: 10px;
}

.line-editor.is-appro-line {
    grid-template-columns: repeat(4, minmax(110px, 1fr));
}

.workflow-split {
    display: grid;
    grid-template-columns: minmax(0, 0.95fr) minmax(0, 1.05fr);
    gap: 10px;
}

.invoice-work-area {
    grid-template-columns: minmax(150px, 0.36fr) minmax(0, 1.64fr);
}

.article-search-panel {
    background: #f7fbff;
}

.basket-panel {
    background: #fff;
}

.workflow-split.is-appro {
    grid-template-columns: minmax(0, 1.25fr) 310px;
}

.workflow-list-detail {
    gap: 0;
    min-height: 430px;
    border-top: 1px solid #c4ccd6;
}

.workflow-list-detail.is-invoice-list {
    grid-template-columns: minmax(0, 1fr) minmax(320px, 31%);
}

.workflow-list-detail.is-appro {
    grid-template-columns: minmax(0, 1fr) 300px;
}

.workflow-flat-table {
    border-radius: 0 !important;
    border: 0 !important;
    margin: 0 !important;
    padding: 0 !important;
}

.workflow-list-detail > .workflow-flat-table {
    border-right: 1px solid #c4ccd6 !important;
}

.workflow-flat-detail {
    border: 0 !important;
    border-radius: 0 !important;
    padding: 0 !important;
    min-width: 0;
    overflow: auto;
}

.workflow-flat-detail > #invoiceDetail,
.workflow-flat-detail > #approDetail,
.workflow-flat-detail > #approCostDetail {
    display: block;
    place-items: initial;
    margin: 0;
    padding: 5px !important;
}

.workflow-flat-detail > #invoiceDetail > .workflow-table-wrap,
.workflow-flat-detail > #approDetail > .workflow-table-wrap {
    width: 100%;
    margin: 0;
}

.workflow-flat-detail .workflow-detail-title {
    margin: 0;
    padding: 5px 7px;
    background: #edf1f5;
    border-bottom: 1px solid #c4ccd6;
    font-size: 11px;
}

.workflow-detail-empty,
.workflow-detail-loading {
    min-height: 70px;
    display: grid;
    place-items: center;
    padding: 4px;
    color: #6b7280;
}

.workflow-flat-costs {
    padding: 4px 7px;
}

.payment-panel {
    display: grid;
    gap: 8px;
}

.invoice-payment-stack {
    background: #f7f7f7;
    align-content: start;
    gap: 7px;
}

.payment-box {
    background: #fff;
    border: 1px solid #d8d8d8;
    border-radius: 3px;
    padding: 6px;
}

.payment-cash {
    background: #f5fff7;
}

.payment-credit {
    background: #fff8ec;
}

.payment-via {
    background: #f7fbff;
}

.payment-rest {
    background: #fff0f0;
}

.payment-total {
    background: #2f81ea;
    border-color: #2f81ea;
    color: #fff;
}

.payment-total strong {
    color: #fff;
}

.payment-title,
.workflow-detail-title {
    font-weight: 800;
    color: #3a3b45;
    border-bottom: 1px solid #e3e6f0;
    padding-bottom: 6px;
}

.workflow-total {
    display: flex;
    justify-content: space-between;
    align-items: center;
    background: #eef2f8;
    border: 1px solid #d1d3e2;
    border-radius: 8px;
    padding: 8px;
}

.workflow-total strong {
    font-size: 12px;
    color: var(--java-green);
}

.payment-total strong,
.payment-total span {
    color: #fff;
}

.workflow-button-stack {
    display: grid;
    gap: 8px;
}

.workflow-checkline {
    display: flex;
    flex-wrap: wrap;
    gap: 18px;
    margin-bottom: 10px;
    color: #5a5c69;
    font-size: 12px;
    font-weight: 700;
}

.workflow-detail-panel {
    border: 1px solid #e3e6f0;
    background: #fff;
    border-radius: 8px;
    padding: 12px;
}

.workflow-mini-grid {
    display: grid;
    grid-template-columns: 1fr auto;
    gap: 6px 12px;
    font-size: 12px;
}

.workflow-empty {
    min-height: 180px;
    border: 1px dashed #d1d3e2;
    border-radius: 8px;
    display: grid;
    place-items: center;
    text-align: center;
    color: #858796;
    padding: 18px;
    gap: 6px;
}

.workflow-empty.is-compact {
    min-height: 90px;
}

.workflow-empty i {
    font-size: 28px;
    color: #4e73df;
}

@media (max-width: 992px) {
    .workflow-form-grid,
    .workflow-split,
    .workflow-split.is-appro,
    .workflow-form-row.compact-four,
    .workflow-form-row.compact-two,
    .line-editor,
    .line-editor.is-appro-line {
        grid-template-columns: 1fr;
    }

    .workflow-subbar {
        flex-direction: column;
    }
}

.atelog-dialog .workflow-form-grid {
    grid-template-columns: minmax(0, 1fr) 230px;
    gap: 8px;
}

.atelog-dialog .workflow-panel {
    padding: 8px;
    border-radius: 4px;
}

.atelog-dialog .workflow-table-wrap.is-small {
    max-height: min(260px, 38vh);
}

.atelog-dialog .line-editor,
.atelog-dialog .line-editor.is-appro-line {
    gap: 6px;
}

@media (max-width: 992px) {
    .atelog-dialog-overlay {
        align-items: stretch;
        padding: 8px;
    }

    .atelog-dialog {
        width: 100%;
        min-height: calc(100vh - 16px);
        max-height: calc(100vh - 16px);
    }

    .atelog-dialog .workflow-form-grid,
    .atelog-dialog .workflow-split,
    .atelog-dialog .workflow-split.is-appro,
    .atelog-dialog .workflow-form-row.compact-four,
    .atelog-dialog .workflow-form-row.compact-two,
    .atelog-dialog .line-editor,
    .atelog-dialog .line-editor.is-appro-line {
        grid-template-columns: 1fr;
    }

    .atelog-dialog .payment-panel {
        order: 2;
    }
}

@media (max-width: 600px) {
    .atelog-dialog-overlay {
        padding: 0;
    }

    .atelog-dialog {
        width: 100vw;
        min-height: 100vh;
        max-height: 100vh;
        border-left: 0;
        border-right: 0;
    }

    .atelog-dialog-body {
        padding: 6px;
    }

    .modele-dialog-grid {
        grid-template-columns: 1fr;
    }

    .atelog-dialog .form-control,
    .atelog-dialog label,
    .modele-dialog-grid .is-wide,
    .modele-dialog-grid .is-wide .form-control {
        max-width: 100%;
    }
}

.cloture-shell {
    background: #fff;
}

.cloture-active-screen,
.cloture-search-screen {
    min-height: 520px;
    background: #f7f7f7;
}

.cloture-toolbar {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 8px;
    padding: 8px;
    background: #fff;
    border-bottom: 1px solid #d8d8d8;
}

.cloture-open-label {
    color: #db6d00;
    font-weight: 800;
    margin-right: auto;
}

.cloture-date-field {
    display: flex;
    align-items: center;
    gap: 6px;
    margin: 0;
    color: #4b4b4b;
    font-size: 12px;
    font-weight: 800;
}

.cloture-date-field input {
    width: 150px;
}

.cloture-table-wrap {
    overflow: auto;
    background: #fff;
    border-top: 1px solid #ededed;
}

.cloture-balance-table {
    margin: 0;
    min-width: 860px;
}

.cloture-balance-table thead th {
    background: #f0f4fb;
    color: #333;
    border-bottom: 1px solid #c9d4e5;
    font-size: 12px;
    white-space: nowrap;
}

.cloture-balance-table thead th:nth-child(n+3) {
    text-align: right;
}

.cloture-balance-table td {
    font-size: 12px;
    vertical-align: middle;
}

.cloture-balance-table tr.is-clickable {
    cursor: pointer;
}

.cloture-balance-table tr.is-selected td,
.cloture-list-item.is-selected {
    background: #2f81ea;
    color: #fff;
}

.cloture-search-screen {
    display: grid;
    grid-template-columns: 300px minmax(0, 1fr);
}

.cloture-search-left {
    background: #fff8ec;
    border-right: 1px solid #d8d8d8;
    padding: 10px;
}

.cloture-filter-title,
.cloture-list-title,
.cloture-grand-title {
    font-weight: 800;
    color: #2f4f2f;
    margin-bottom: 8px;
}

.cloture-list-title {
    margin-top: 14px;
    padding-top: 8px;
    border-top: 1px solid #e2cfa9;
}

.cloture-check {
    display: flex;
    align-items: center;
    gap: 6px;
    color: #4a4a4a;
    font-size: 12px;
    font-weight: 800;
    margin-bottom: 5px;
}

.cloture-date-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 6px;
}

.cloture-list {
    display: grid;
    gap: 5px;
    max-height: 335px;
    overflow: auto;
}

.cloture-list-item {
    border: 1px solid #d8d8d8;
    background: #fff;
    color: #333;
    text-align: left;
    padding: 7px;
    border-radius: 3px;
}

.cloture-list-item span {
    display: block;
    font-weight: 800;
}

.cloture-list-item small {
    display: block;
    line-height: 1.25;
}

.cloture-search-detail {
    min-width: 0;
    background: #fff;
}

.cloture-detail-header {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 8px;
    justify-content: space-between;
    min-height: 48px;
    padding: 8px;
    background: #f7fbff;
    border-bottom: 1px solid #d8d8d8;
}

.cloture-detail-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
}

.cloture-grand-livre,
.cloture-adjust-box {
    margin: 10px;
    border: 1px solid #d8d8d8;
    background: #fff;
    padding: 10px;
}

.cloture-adjust-box {
    background: #f5fff7;
}

.cloture-livre-host {
    padding: 10px;
    background: #fff;
}

.cloture-balance-screen {
    background: #fff;
    min-height: 520px;
}

.cloture-balance-filters {
    display: grid;
    grid-template-columns: repeat(5, minmax(120px, 1fr)) auto auto;
    gap: 8px;
    align-items: end;
    padding: 10px;
    background: #f7fbff;
    border-bottom: 1px solid #d8d8d8;
}

.cloture-balance-filters label {
    margin: 0;
    color: #4a4a4a;
    font-size: 12px;
    font-weight: 800;
}

.cloture-balance-filters .balance-check {
    align-self: center;
    margin-top: 18px;
}

.outils-frame {
    background: #fff;
}

.outils-title-actions {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    margin-left: auto;
}

.outils-layout {
    display: grid;
    grid-template-columns: 360px minmax(0, 1fr);
    min-height: 560px;
    background: #fff;
}

.outils-list-pane {
    border-right: 1px solid #d8d8d8;
    background: #fff;
    min-width: 0;
}

.outils-search-row {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr);
    align-items: center;
    gap: 8px;
    min-height: 42px;
    padding: 6px 8px;
    border-bottom: 1px solid #eeeeee;
    color: #666;
    font-size: 12px;
    font-weight: 700;
}

.outils-list {
    max-height: 514px;
    overflow: auto;
}

.outils-list-item {
    display: block;
    width: 100%;
    min-height: 30px;
    border: 0;
    border-bottom: 1px solid #f2f2f2;
    background: #fff;
    color: #333;
    text-align: left;
    padding: 7px 10px;
    font-size: 12px;
    font-weight: 700;
}

.outils-list-item:hover,
.outils-list-item.is-selected {
    background: #2f81ea;
    color: #fff;
}

.outils-content-pane {
    min-width: 0;
    background: #fff;
}

.outils-empty {
    min-height: 520px;
    display: flex;
    align-items: center;
    justify-content: center;
    color: #777;
    font-weight: 700;
}

.outils-detail {
    min-height: 520px;
    background: #fff;
}

.outils-detail-title {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: 8px;
    min-height: 42px;
    padding: 6px 8px;
    color: #666;
    border-bottom: 1px solid #d8d8d8;
    font-size: 12px;
}

.outils-toolbar {
    display: inline-flex;
    align-items: center;
    gap: 5px;
}

.outils-toolbar input {
    width: 180px;
}

.outils-poste-filter {
    width: 190px;
}

.outils-add-panel {
    display: grid;
    grid-template-columns: repeat(4, minmax(140px, 1fr)) auto;
    gap: 8px;
    align-items: end;
    padding: 8px;
    background: #f7fbff;
    border-bottom: 1px solid #d8d8d8;
}

.outils-add-panel label {
    margin: 0;
    color: #555;
    font-size: 11px;
    font-weight: 800;
}

.outils-table-wrap {
    overflow: auto;
    max-height: 495px;
}

.outils-table {
    min-width: 760px;
    margin: 0;
}

.outils-table thead th {
    background: #f2f6fc;
    color: #444;
    font-size: 11px;
    border-bottom: 1px solid #c9d4e5;
    white-space: nowrap;
}

.outils-table td {
    padding: 4px;
    vertical-align: middle;
}

.outils-check-col {
    width: 36px;
    text-align: center;
}

.outils-cell-input:disabled {
    background: #f7f7f7;
    color: #555;
    font-weight: 700;
}

.print-preview-band {
    display: grid;
    grid-template-columns: 190px minmax(0, 1fr);
    gap: 12px;
    padding: 10px;
    border-bottom: 1px solid #d8d8d8;
    background: #f7f7f7;
}

.print-preview-info {
    display: flex;
    flex-direction: column;
    gap: 5px;
    color: #555;
    font-size: 12px;
}

.print-preview-info strong {
    color: #222;
    font-size: 14px;
}

.print-preview-sheet {
    justify-self: start;
    background: #fff;
    border: 1px solid #c8c8c8;
    box-shadow: 0 2px 8px rgba(0, 0, 0, .08);
    color: #111;
    font-size: 8px;
    overflow: hidden;
}

.print-preview-sheet.is-a4,
.print-preview-sheet.is-letter {
    width: 210px;
    min-height: 145px;
    padding: 10px;
}

.print-preview-sheet.is-compact {
    width: 150px;
    min-height: 160px;
    padding: 9px;
    border-top: 5px solid #2f81ea;
}

.print-preview-sheet.is-thermal {
    width: 92px;
    min-height: 190px;
    padding: 6px;
    font-family: "Courier New", monospace;
}

.print-preview-sheet.is-double {
    display: grid;
    grid-template-columns: 1fr 1px 1fr;
    gap: 8px;
    width: 300px;
}

.preview-copy header,
.print-preview-sheet > header {
    display: flex;
    flex-direction: column;
    text-align: center;
    line-height: 1.2;
}

.print-preview-sheet h4 {
    margin: 7px 0;
    text-align: center;
    font-size: 10px;
}

.preview-meta,
.preview-row,
.preview-total {
    display: flex;
    justify-content: space-between;
    gap: 6px;
    margin: 4px 0;
}

.print-preview-sheet table {
    width: 100%;
    border-collapse: collapse;
    margin: 6px 0;
}

.print-preview-sheet td {
    border-top: 1px solid #ddd;
    padding: 2px;
}

.print-preview-sheet td:last-child {
    text-align: right;
}

.preview-total {
    border: 1px solid #aaa;
    padding: 4px;
    font-weight: 800;
}

.print-preview-sheet footer {
    margin-top: 10px;
    text-align: center;
    border-top: 1px solid #999;
    padding-top: 4px;
}

.preview-cut {
    background: repeating-linear-gradient(to bottom, #999 0, #999 4px, transparent 4px, transparent 8px);
}

.outils-save-message {
    position: fixed;
    right: 18px;
    bottom: 18px;
    z-index: 2000;
    min-width: 220px;
    padding: 10px 14px;
    border-radius: 4px;
    background: #1f7a3f;
    color: #fff;
    font-size: 13px;
    font-weight: 700;
    box-shadow: 0 8px 22px rgba(0, 0, 0, .22);
    opacity: 0;
    transform: translateY(8px);
    pointer-events: none;
    transition: opacity .18s ease, transform .18s ease;
}

.outils-save-message.is-visible {
    opacity: 1;
    transform: translateY(0);
}

.stock-internal-frame input,
.stock-internal-frame select,
.stock-internal-frame textarea,
.stock-internal-frame button,
.stock-internal-frame table,
.atelog-dialog input,
.atelog-dialog select,
.atelog-dialog textarea,
.atelog-dialog button,
.atelog-dialog table {
    font-size: 11px;
}

.stock-internal-frame h1,
.stock-internal-frame h2,
.stock-internal-frame h3,
.stock-internal-frame h4,
.stock-internal-frame h5,
.stock-internal-frame h6,
.atelog-dialog h1,
.atelog-dialog h2,
.atelog-dialog h3,
.atelog-dialog h4,
.atelog-dialog h5,
.atelog-dialog h6 {
    font-size: 12px;
    line-height: 1.25;
}

.stock-internal-frame label,
.atelog-dialog label {
    font-size: 11px;
}

body.atelog-dialog-open {
    overflow: hidden;
}

.atelog-dialog-overlay {
    position: fixed;
    inset: 0;
    z-index: 3000;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 16px;
    background: rgba(20, 26, 36, .42);
}

.atelog-dialog {
    width: min(var(--dialog-width, 980px), calc(100vw - 28px));
    height: var(--dialog-height, 85vh);
    min-width: min(var(--dialog-min-width, 720px), calc(100vw - 28px));
    min-height: min(var(--dialog-min-height, 520px), calc(100vh - 34px));
    max-width: calc(100vw - 28px);
    max-height: calc(100vh - 34px);
    display: flex;
    flex-direction: column;
    overflow: hidden;
    resize: both;
    background: #fff;
    border: 1px solid #8292a8;
    box-shadow: 0 12px 32px rgba(0, 0, 0, .28);
    font-size: 11px;
}

.atelog-dialog-titlebar {
    height: 25px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 8px;
    padding: 2px 5px;
    background: #f3f3f3;
    color: #8a8a8a;
    font-family: "Century Gothic", Arial, sans-serif;
    font-size: 12px;
    font-weight: 500;
    border-bottom: 1px solid #c7c7c7;
}

.atelog-dialog-titlebar span::before {
    content: "";
    width: 14px;
    height: 14px;
    display: inline-block;
    margin-right: 6px;
    vertical-align: -2px;
    border-radius: 3px;
    background: radial-gradient(circle at 50% 50%, #fff 0 22%, transparent 23%),
        linear-gradient(135deg, #00aeef, #2f81ea);
    border: 1px solid #8cc7e8;
}

.atelog-dialog-close {
    width: 24px;
    height: 21px;
    border: 0;
    background: transparent;
    color: #777;
    padding: 0;
    line-height: 1;
}

.atelog-dialog-body {
    flex: 1 1 auto;
    display: flex;
    min-height: 0;
    overflow: hidden;
    padding: 6px;
}

.atelog-dialog-body > * {
    min-height: 0;
}

.atelog-dialog .form-control {
    max-width: 260px;
}

.atelog-dialog .form-control[type="date"],
.atelog-dialog .form-control[type="number"] {
    max-width: 150px;
}

.atelog-dialog label {
    max-width: 280px;
}

.dialog-action-bar {
    position: sticky;
    top: 0;
    z-index: 2;
    display: flex;
    align-items: center;
    gap: 6px;
    flex-wrap: wrap;
    padding: 6px;
    margin: -8px -8px 8px;
    background: #f8fafc;
    border-bottom: 1px solid #d7dde7;
}

.dialog-action-bar.is-secondary {
    position: static;
    margin: 0 0 8px;
    background: #fff8ec;
    border: 1px solid #e3d3b8;
}

.dialog-action-bar .form-control.is-account {
    max-width: 300px;
}

.dialog-action-bar .form-control.is-action,
.dialog-action-bar .form-control.is-question {
    max-width: 180px;
}

.dialog-action-bar .form-control.is-small {
    max-width: 115px;
}

.dialog-action-bar .form-control.is-mini {
    max-width: 72px;
}

.modele-dialog-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(150px, 220px));
    gap: 8px;
    align-items: end;
    margin-bottom: 8px;
}

.modele-dialog-grid .is-wide {
    grid-column: 1 / -1;
    max-width: 640px;
}

.modele-dialog-grid .is-wide .form-control {
    max-width: 640px;
}

.java-modal {
    flex: 1 1 auto;
    width: 100%;
    height: 100%;
    min-height: 0;
    display: flex;
    flex-direction: column;
    overflow: hidden;
    background: #fff;
    color: #000;
    font-family: Arial, sans-serif;
    font-size: 11px;
}

[hidden] {
    display: none !important;
}

.workflow-inline-loader {
    position: absolute;
    z-index: 8;
    top: 46px;
    left: 50%;
    display: inline-flex;
    align-items: center;
    gap: 7px;
    min-height: 30px;
    padding: 5px 12px;
    border: 1px solid #7c8b9a;
    border-radius: 4px;
    background: rgba(255, 255, 255, .96);
    color: #1b2836;
    box-shadow: 0 2px 8px rgba(0, 0, 0, .18);
    transform: translateX(-50%);
}

.java-currency-label {
    min-width: 42px;
    height: 28px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 2px 6px;
    border: 1px solid #9aa6b2;
    border-radius: 2px;
    background: #eef2f6;
    color: #111;
    font-weight: 700;
}

.payment-summary {
    flex: 1 1 180px;
    min-width: 0;
    color: #006600;
    font-weight: 700;
    white-space: normal;
}

.payment-totals {
    min-height: 28px;
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 3px 6px;
    border: 1px solid #9aa6b2;
    background: #fffca6;
    color: #111;
    white-space: nowrap;
}

.payment-totals[hidden] {
    display: none !important;
}

.workflow-subdialog-overlay {
    position: absolute;
    z-index: 30;
    inset: 0;
    display: grid;
    place-items: center;
    padding: 18px;
    background: rgba(31, 42, 54, .42);
}

.workflow-subdialog {
    width: min(760px, 100%);
    max-height: min(72vh, 560px);
    display: flex;
    flex-direction: column;
    overflow: hidden;
    border: 1px solid #657789;
    border-radius: 5px;
    background: #fff;
    box-shadow: 0 12px 28px rgba(0, 0, 0, .28);
}

.workflow-subdialog-title {
    min-height: 34px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 5px 8px 5px 12px;
    border-bottom: 1px solid #c4ccd5;
    background: #eef3f8;
    color: #1d2c3b;
    font-size: 12px;
    font-weight: 700;
}

.workflow-subdialog-title button {
    width: 28px;
    height: 26px;
    border: 0;
    background: transparent;
    color: #4d5965;
}

.workflow-subdialog-body {
    min-height: 0;
    overflow: auto;
    padding: 8px;
}

.workflow-subdialog-actions {
    display: flex;
    justify-content: flex-end;
    gap: 7px;
    padding: 8px;
    border-top: 1px solid #c4ccd5;
    background: #f5f7f9;
}

.appro-advanced-fields {
    flex: 1 0 100%;
    display: grid;
    grid-template-columns: repeat(4, minmax(120px, 1fr));
    gap: 8px;
    padding-top: 6px;
}

.appro-advanced-fields label {
    display: grid;
    gap: 4px;
}

.print-frame {
    position: fixed;
    left: -10000px;
    width: 1px;
    height: 1px;
    border: 0;
    opacity: 0;
    pointer-events: none;
}

.workflow-info-panel {
    display: flex;
    align-items: center;
    gap: 18px;
    flex-wrap: wrap;
    padding: 7px 10px;
    border-bottom: 1px solid #b9c5d1;
    background: #eef5fc;
    color: #1a2c3d;
    font-size: 11px;
}

.java-modal .form-control {
    height: 28px;
    padding: 2px 5px;
    max-width: none;
    flex: 0 0 auto;
    border: 1px solid #9aa6b2;
    border-radius: 2px;
    background: #fff;
    color: #000;
    box-shadow: inset 0 1px 2px rgba(0, 0, 0, .12);
}

.java-modal .form-control:focus {
    border-color: #2f81e8;
    box-shadow: 0 0 0 1px rgba(47, 129, 232, .18), inset 0 1px 2px rgba(0, 0, 0, .12);
}

.java-editable-combo {
    position: relative;
    width: 100%;
    min-width: 0;
    display: grid;
    grid-template-columns: minmax(0, 1fr) 28px;
    align-items: stretch;
}

.java-editable-combo > .form-control {
    width: 100% !important;
    min-width: 0;
    margin: 0 !important;
    padding-right: 5px;
    border-radius: 2px 0 0 2px;
}

.java-editable-combo > button {
    width: 28px;
    height: 28px;
    border: 1px solid #7d8996;
    border-left: 0;
    border-radius: 0 2px 2px 0;
    background: #e9eef4;
    color: #25384b;
    font-size: 10px;
}

.java-combo-options {
    position: absolute;
    z-index: 45;
    top: calc(100% + 1px);
    left: 0;
    right: 0;
    max-height: 240px;
    overflow: auto;
    border: 1px solid #7d8996;
    background: #fff;
    box-shadow: 0 5px 14px rgba(0, 0, 0, .2);
}

.java-combo-options > button {
    width: 100%;
    min-height: 25px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 8px;
    padding: 4px 7px;
    border: 0;
    border-bottom: 1px solid #edf0f3;
    background: #fff;
    color: #111;
    text-align: left;
    font-size: 11px;
}

.java-combo-options > button:hover,
.java-combo-options > button:focus {
    background: #d9eaff;
    outline: 0;
}

.java-combo-options small {
    color: #687685;
    font-size: 9px;
}

.java-combo-empty {
    padding: 8px;
    color: #7b8793;
    text-align: center;
}

.java-invoice-search {
    min-width: 0;
    display: flex;
    align-items: center;
    gap: 7px;
    margin-left: auto;
    white-space: nowrap;
}

.java-invoice-search .is-invoice-lookup {
    width: 370px;
}

.java-invoice-search .java-btn {
    min-width: 145px;
}

.java-form-row .is-client {
    width: 250px;
}

.java-form-row .invoice-save-client {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    max-width: 310px;
    color: #087a21;
    font-weight: 600;
}

.java-form-row .invoice-save-client[hidden] {
    display: none;
}

.java-doc-icon {
    border: 0;
    background: transparent;
    color: #2572b9;
    cursor: pointer;
}

.invoice-empty-action {
    width: 100%;
    border: 0;
    cursor: pointer;
    font: inherit;
}

.invoice-empty-action:hover,
.invoice-empty-action:focus-visible {
    background: #e8f2ff;
}

.credit-choice {
    display: flex;
    justify-content: center;
    gap: 42px;
    margin: 8px 0 20px;
    font-size: 12px;
    font-weight: 700;
}

.credit-cash-fields {
    display: grid;
    grid-template-columns: 120px 90px 32px minmax(150px, 1fr);
    align-items: end;
    gap: 8px;
}

.credit-cash-fields label {
    display: grid;
    gap: 4px;
}

.credit-cash-fields [data-credit-reference] {
    grid-column: 1 / -1;
}

.credit-cash-fields[hidden],
.credit-cash-fields [hidden] {
    display: none;
}

.java-form-row .is-depot {
    width: 220px;
}

.java-stock-entry .is-article {
    width: 320px;
}

.java-stock-entry .is-supplier {
    width: 195px;
}

.java-modal textarea.form-control {
    height: 32px;
    min-height: 32px;
    resize: vertical;
}

.java-modal label {
    flex: 0 0 auto;
    max-width: none;
    display: flex;
    align-items: center;
    gap: 10px;
    margin: 0;
    color: #000;
    font-size: 11px;
    font-weight: 400;
    white-space: nowrap;
}

.java-modal label > .form-control {
    flex: 0 0 auto;
    margin-left: 2px;
}

.java-blue-zone label > .form-control,
.java-stock-entry label > .form-control,
.modele-entry-zone label > .form-control,
.java-checkout-grid label > .form-control {
    margin-left: 0;
}

.java-top-toolbar {
    flex: 0 0 auto;
    min-height: 38px;
    display: flex;
    align-items: center;
    gap: 14px;
    flex-wrap: wrap;
    padding: 6px 10px;
    background: #fff;
    border-bottom: 1px solid #8e8e8e;
}

.java-top-toolbar.align-right {
    justify-content: flex-end;
}

.java-link-btn {
    border: 0;
    background: transparent;
    padding: 2px 4px;
    color: #005fe8;
    font-size: 11px;
    font-weight: 700;
}

.java-link-btn i {
    margin-right: 5px;
}

.text-green {
    color: #007700 !important;
}

.text-red {
    color: #ff0033 !important;
}

.text-blue {
    color: #006ee8 !important;
}

.java-toolbar-search {
    margin-left: auto;
}

.java-toolbar-search .form-control {
    width: 370px;
}

.java-tab-strip {
    flex: 0 0 auto;
    height: 30px;
    display: flex;
    align-items: flex-end;
    gap: 4px;
    padding: 3px 8px 0;
    background: #e9eef5;
    border-top: 1px solid #54718f;
    border-bottom: 3px solid #304c67;
    overflow-x: auto;
    overflow-y: hidden;
}

.java-tab-strip span,
.java-tab-strip button {
    height: 26px;
    border: 1px solid #415c78;
    border-bottom: 0;
    background: #d8e7f8;
    padding: 4px 10px;
    color: #000;
    white-space: nowrap;
}

.java-tab-strip button.is-active {
    background: #fff;
    font-weight: 700;
}

.java-form-row {
    flex: 0 0 auto;
    display: flex;
    align-items: center;
    gap: 10px;
    flex-wrap: wrap;
    padding: 8px 10px;
}

.java-white-row {
    background: #fff;
}

.java-yellow-header {
    flex: 0 0 auto;
    min-height: 90px;
    display: flex;
    align-items: flex-start;
    gap: 10px;
    flex-wrap: wrap;
    padding: 8px 4px;
    background: #fffca6;
}

.java-yellow-header label:nth-child(1) .form-control {
    width: 375px;
}

.java-yellow-header label {
    max-width: none;
}

.java-yellow-header label:nth-child(2) .form-control {
    width: 310px;
}

.java-yellow-header label:nth-child(3) .form-control {
    width: 375px;
}

.java-yellow-header .java-btn:first-of-type {
    margin-left: auto;
}

.java-blue-zone {
    flex: 0 0 auto;
    display: flex;
    align-items: end;
    gap: 10px;
    flex-wrap: wrap;
    padding: 10px 14px;
    background: #2f81df;
    color: #fff36a;
}

.java-blue-zone label {
    color: #fff36a;
    display: grid;
    gap: 6px;
    max-width: none;
}

.java-line-zone {
    min-height: 102px;
}

.invoice-edit-header {
    background: #ffff66 !important;
}

.invoice-selected-article {
    flex: 1 0 100%;
    min-height: 22px;
    padding: 3px 0;
    background: transparent;
    color: #fff36a;
    font-weight: 700;
    line-height: 16px;
}

.invoice-cancel-edit {
    margin-left: auto;
}

.invoice-info-add {
    margin: 6px 0 2px;
}

.java-line-zone label:first-child .form-control {
    width: 276px;
}

.java-stock-entry {
    margin: 0;
    border: 1px solid #1c63b4;
    border-radius: 4px;
    box-shadow: inset 0 1px 3px rgba(0, 0, 0, .24);
}

.java-stock-entry legend {
    width: auto;
    margin: -18px 0 8px -10px;
    padding: 0 4px;
    color: #fff;
    font-size: 11px;
}

.java-stock-entry label:first-of-type .form-control {
    width: 320px;
}

.java-stock-entry label:nth-of-type(2) .form-control {
    width: 195px;
}

.java-yellow-input {
    background: #ffff99 !important;
}

.java-currency,
.java-unit {
    width: 70px !important;
}

.java-btn {
    min-width: 104px;
    height: 30px;
    border: 1px solid #aeb4bd;
    border-radius: 6px;
    background: linear-gradient(#ffffff, #d9dde4);
    color: #000;
    font-size: 11px;
    box-shadow: inset 0 1px rgba(255, 255, 255, .8), 0 1px 2px rgba(0, 0, 0, .18);
}

.java-btn i {
    margin-right: 5px;
}

.java-btn-disabled {
    color: #999;
    background: linear-gradient(#f3f3f3, #d7dbe2);
}

.java-primary-action {
    min-width: 245px;
}

.java-advance-btn {
    min-width: 155px;
    background: #ffff66;
    border-color: #898900;
}

.java-icon-only {
    width: 30px;
    height: 30px;
    border: 1px solid #aeb4bd;
    background: linear-gradient(#fff, #d8dce4);
}

.java-table-split {
    flex: 1 1 auto;
    min-height: 0;
    display: grid;
    grid-template-columns: 315px minmax(0, 1fr);
    gap: 4px;
}

.modele-table-zone {
    grid-template-columns: 500px minmax(0, 1fr);
}

.java-table-wrap {
    flex: 1 1 auto;
    min-height: 0;
    overflow: auto;
    border: 1px solid #b7c0cb;
    background: #eef1f5;
}

.java-grow-table {
    flex: 1 1 auto;
}

.java-table {
    width: 100%;
    margin: 0;
    border-collapse: collapse;
    font-size: 11px;
    color: #000;
}

.java-table thead th {
    height: 24px;
    padding: 3px 6px;
    background: #edf1f5;
    border: 1px solid #c4ccd6;
    color: #000;
    font-weight: 600;
    white-space: nowrap;
}

.java-table tbody td {
    height: 22px;
    padding: 2px 6px;
    border: 0;
    background: #eef1f5;
}

.java-left-list .java-table tbody tr:nth-child(odd) td {
    background: #ffffff;
}

.java-left-list .java-table tbody tr:nth-child(even) td {
    background: #f4f6f8;
}

.java-table tbody tr.is-selected td,
.java-table tbody tr:hover td {
    background: #d7e8ff;
}

.java-invoice-footer {
    flex: 0 0 auto;
    display: grid;
    grid-template-columns: minmax(420px, 515px) minmax(560px, 1fr);
    gap: 8px;
    padding: 6px 10px;
    background: #fff;
    border-top: 1px solid #c0c0c0;
}

.java-payment-mode {
    min-height: 80px;
    display: flex;
    flex-direction: column;
    align-items: stretch;
    gap: 5px;
    margin: 0;
    padding: 10px 12px;
    border: 1px solid #333;
}

.java-payment-controls,
.java-payment-details {
    display: flex;
    align-items: center;
    gap: 8px;
    min-width: 0;
}

.java-payment-details .payment-summary {
    overflow-wrap: anywhere;
}

.java-payment-mode legend {
    width: auto;
    margin: 0;
    padding: 0 4px;
    color: #909090;
    font-size: 11px;
}

.java-payment-mode select {
    width: 180px !important;
}

.java-checkout-grid {
    display: grid;
    grid-template-columns: 62px 110px 110px 110px minmax(100px, 1fr);
    gap: 4px 8px;
    align-items: end;
}

.java-checkout-grid label {
    display: grid;
    gap: 2px;
}

.java-checkout-grid .checkout-caption {
    grid-column: 1;
    align-self: center;
    font-size: 12px;
}

.java-checkout-grid .checkout-total {
    grid-column: 2 / 5;
    width: 100%;
}

.java-checkout-grid .payment-totals {
    grid-column: 5;
}

.java-checkout-grid.is-single-currency .checkout-total {
    grid-column: 2 / 6;
}

.java-checkout-grid small {
    font-size: 9px;
    font-weight: 700;
}

.java-checkline {
    grid-column: 1 / 2;
}

.java-bottom-actions {
    grid-column: 2 / 3;
    display: grid;
    grid-template-columns: minmax(145px, 1fr) minmax(100px, .75fr) minmax(155px, 1fr);
    gap: 5px;
    align-items: stretch;
}

.invoice-inline-status {
    min-height: 28px;
    display: flex;
    align-items: center;
    padding: 3px 7px;
    border-left: 3px solid transparent;
    font-size: 10px;
    overflow-wrap: anywhere;
}

.invoice-inline-status.is-error {
    color: #a11212;
    background: #fff0f0;
    border-left-color: #cf2020;
}

.invoice-inline-status.is-ok {
    color: #0b6c2d;
    background: #eefaf1;
    border-left-color: #159447;
}

.invoice-info-dialog {
    height: 100%;
    display: grid;
    grid-template-rows: auto minmax(0, 1fr) auto auto;
    gap: 0;
    padding: 0;
}

.invoice-info-dialog > .workflow-detail-title {
    padding: 6px 8px;
}

.invoice-info-subdialog {
    width: min(800px, 94vw);
    height: min(600px, 85vh);
    padding: 0;
    overflow: hidden;
}

@media (max-width: 700px) {
    .credit-cash-fields {
        grid-template-columns: 1fr 90px;
    }

    .credit-cash-fields > .text-green {
        display: none;
    }

    .credit-cash-fields [data-credit-mode] {
        grid-column: 1 / -1;
    }
}

.workflow-date-toggle {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    margin: 17px 2px 0;
    white-space: nowrap;
}

.java-blue-footer {
    flex: 0 0 auto;
    min-height: 46px;
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: 10px;
    padding: 6px;
    background: #2f81e8;
    color: #fff;
}

.java-blue-footer strong {
    min-width: 180px;
    height: 32px;
    display: inline-flex;
    align-items: center;
    padding: 4px;
    background: #008f52;
    border: 1px solid #00a86b;
    color: #fff;
}

.modele-config-modal {
    display: flex;
    flex-direction: column;
    min-height: 100%;
    background: #fff;
}

.modele-config-title {
    flex: 0 0 auto;
    min-height: 34px;
    display: flex;
    align-items: center;
    padding: 6px 10px;
    background: #2f81ea;
    color: #fff;
    font-size: 12px;
}

.modele-config-hint {
    flex: 0 0 auto;
    min-height: 30px;
    display: flex;
    align-items: center;
    padding: 4px 10px;
    background: #ffff99;
    border-bottom: 1px solid #a9b1bc;
    color: #222;
    font-size: 11px;
}

.modele-config-modal .config-grid {
    flex: 1 1 auto;
    display: grid;
    grid-template-columns: repeat(3, minmax(180px, 1fr));
    gap: 8px 10px;
    align-content: start;
    padding: 10px;
    background: #fff;
}

.modele-config-modal label {
    display: grid;
    grid-template-rows: auto 28px;
    gap: 3px;
    margin: 0;
    color: #222;
    font-size: 11px;
}

.modele-config-modal .form-control {
    height: 28px;
    font-size: 11px;
    border-radius: 0;
    border-color: #666;
}

.modele-filter-row {
    flex: 0 0 auto;
    display: grid;
    grid-template-columns: 300px 245px minmax(0, 1fr);
    gap: 4px;
    align-items: center;
    background: #ffff99;
    border-bottom: 1px solid #a9b1bc;
}

.modele-filter-row .form-control:first-child {
    max-width: none;
    width: 300px;
}

.modele-filter-row input {
    grid-column: 2;
    max-width: none;
    width: 245px;
}

.java-group-filter-row {
    flex: 0 0 auto;
    display: flex;
    justify-content: flex-end;
    gap: 8px;
    padding: 6px;
    background: #fff;
    border-bottom: 1px solid #c7ced8;
}

.java-group-filter-row .form-control {
    width: 245px;
    max-width: 100%;
}

.modele-entry-zone {
    display: grid;
    grid-template-columns: 220px 88px 88px 62px 78px 72px minmax(130px, 1fr) 96px 88px;
    align-items: end;
}

.modele-entry-zone label {
    display: grid;
    gap: 4px;
    max-width: none;
}

.modele-entry-zone .form-control {
    width: 100%;
    max-width: none;
}

.modele-total-footer strong {
    min-width: 180px;
}

.java-invoice .java-white-row label:nth-of-type(1) .form-control {
    width: 185px;
}

.java-invoice .java-white-row label:nth-of-type(2) .form-control {
    width: 250px;
}

.java-invoice .java-white-row label:nth-of-type(3) .form-control {
    width: 118px;
}

.java-invoice .invoice-work-area {
    min-height: 190px;
}

.java-invoice .invoice-work-area .java-left-list {
    max-width: 315px;
}

.java-invoice #articleSearch {
    width: 276px;
}

.java-invoice #lineQte,
.java-invoice #linePrice {
    width: 90px;
}

.java-appro .java-white-row label:nth-of-type(1) .form-control,
.java-appro .java-white-row label:nth-of-type(2) .form-control,
.java-appro .java-white-row label:nth-of-type(3) .form-control {
    width: 150px;
}

.java-appro .java-white-row .java-currency {
    width: 56px !important;
}

.java-appro .java-white-row label:nth-of-type(5) .form-control {
    width: 200px;
}

.java-appro #approDescription {
    width: 250px;
    height: 50px;
}

.java-appro #approArticle {
    width: 260px;
}

.java-appro #approFournisseur {
    width: 195px;
}

.java-appro #approQte,
.java-appro #approPu {
    width: 80px;
}

.java-appro .java-grow-table {
    min-height: 220px;
}

.java-modele #dlgModeleLibelle,
.java-modele #dlgTxCompte {
    width: 220px;
}

.java-modele #dlgModeleJournal {
    width: 250px;
}

.java-modele #dlgModeleDescription,
.java-modele #dlgTxQuestion {
    width: 140px;
}

.java-modele #dlgTxType,
.java-modele #dlgTxAction {
    width: 88px;
}

.java-modele #dlgModeleAccountFilter {
    width: 200px;
}

.java-modele #dlgModeleCategory {
    width: 300px;
}

.java-tab-strip {
    flex: 0 0 auto;
    display: flex;
    align-items: flex-end;
    gap: 2px;
    min-height: 30px;
    padding: 3px 8px 0;
    border-bottom: 3px solid #0d2035;
    background: #f8f8f8;
}

.java-tab-strip button {
    height: 28px;
    min-width: 88px;
    border: 1px solid #8793a0;
    border-bottom: 0;
    border-radius: 3px 3px 0 0;
    background: linear-gradient(#fff, #d8dde4);
    color: #000;
    font-size: 11px;
    padding: 3px 9px;
}

.java-tab-strip button.is-active {
    background: #e7f0fb;
    border-color: #0d2035;
}

.java-ref-row {
    flex: 0 0 auto;
    min-height: 26px;
    padding: 4px 8px;
    color: #ff0033;
    background: #fff;
    font-size: 12px;
}

.java-ecriture .ecriture-header-row {
    display: grid;
    grid-template-columns: minmax(220px, 360px) minmax(220px, 300px) 120px;
    align-items: end;
    gap: 10px;
    min-height: 50px;
    padding: 5px 8px;
}

.java-ecriture .java-field,
.ecriture-entry-zone label {
    display: grid;
    grid-template-columns: 1fr;
    gap: 3px;
    min-width: 0;
    white-space: normal;
}

.java-ecriture .java-field span {
    display: block;
    min-height: 14px;
    line-height: 14px;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.java-ecriture .java-field.has-check span {
    display: flex;
    align-items: center;
    gap: 4px;
}

.java-ecriture .ecriture-account-title {
    grid-column: 1 / -1;
    width: 100%;
    color: #ffff00;
    font-weight: 800;
    min-height: 15px;
    line-height: 15px;
    overflow: visible;
    white-space: normal;
    word-break: normal;
    overflow-wrap: anywhere;
}

.java-ecriture .java-field .form-control,
.ecriture-entry-zone label .form-control {
    width: 100%;
    max-width: none;
}

.ecriture-entry-zone {
    display: grid;
    grid-template-columns: 112px minmax(170px, 215px) minmax(170px, 215px) 38px 110px 110px 86px 112px 112px;
    align-items: end;
    gap: 7px;
    min-height: 100px;
    padding: 8px 10px;
}

.ecriture-entry-zone label {
    color: #ffff00;
}

.java-ecriture #ecriturePieces,
.java-ecriture #ecritureIntervenant,
.java-ecriture #ecritureDevise,
.java-ecriture #ecritureCompte,
.java-ecriture #ecritureDebit,
.java-ecriture #ecritureCredit {
    width: 100%;
}

.java-ecriture #ecriturePiecesMore.java-btn.icon-only {
    min-width: 38px;
    width: 38px;
    padding: 0;
}

.java-ecriture #ecriturePiecesMore.java-btn.icon-only i {
    margin-right: 0;
}

.ecriture-table-zone {
    flex: 1 1 auto;
    min-height: 260px;
    grid-template-columns: 490px minmax(420px, 1fr);
    gap: 4px;
}

.ecriture-table-panel {
    min-height: 0;
    display: grid;
    grid-template-rows: 34px minmax(0, 1fr);
}

.ecriture-table-panel .java-table-wrap {
    min-height: 0;
}

.ecriture-table-filter {
    display: grid;
    grid-template-columns: 190px 1fr;
    gap: 4px;
    padding: 3px 4px;
    background: #fff;
    border-bottom: 1px solid #9aa6b2;
}

.ecriture-table-filter.is-right {
    grid-template-columns: minmax(150px, 250px);
    justify-content: end;
}

.ecriture-table-filter .form-control {
    width: 100%;
    max-width: none;
    background: #ffff99;
}

.ecriture-action-footer {
    gap: 8px;
    justify-content: flex-end;
}

.ecriture-action-footer .java-btn {
    min-width: 132px;
}

.java-ecriture .modele-total-footer strong {
    min-width: 150px;
}

.java-ecriture .modele-total-footer strong.is-ok {
    background: #009766;
}

.java-ecriture .modele-total-footer strong.is-ko {
    background: #cc0000;
}

@media (max-width: 1180px) {
    .java-ecriture .ecriture-header-row,
    .ecriture-entry-zone,
    .ecriture-table-zone {
        grid-template-columns: 1fr;
    }

    .ecriture-table-filter,
    .ecriture-table-filter.is-right {
        grid-template-columns: 1fr;
        justify-content: stretch;
    }

    .ecriture-action-footer {
        justify-content: flex-start;
    }
}

@media (max-width: 992px) {
    .atelog-dialog-overlay {
        align-items: stretch;
        padding: 8px;
    }

    .atelog-dialog {
        width: 100%;
        min-height: calc(100vh - 16px);
        max-height: calc(100vh - 16px);
        resize: none;
    }
}

@media (max-width: 600px) {
    .atelog-dialog-overlay {
        padding: 0;
    }

    .atelog-dialog {
        width: 100vw;
        min-height: 100vh;
        max-height: 100vh;
        border-left: 0;
        border-right: 0;
        resize: none;
    }

    .modele-dialog-grid {
        grid-template-columns: 1fr;
    }

    .atelog-dialog .form-control,
    .atelog-dialog label,
    .modele-dialog-grid .is-wide,
    .modele-dialog-grid .is-wide .form-control {
        max-width: 100%;
    }
}

@media (max-width: 1100px) {
    .java-yellow-header,
    .java-form-row,
    .java-blue-zone,
    .java-top-toolbar {
        align-items: flex-start;
    }

    .java-table-split,
    .modele-table-zone {
        grid-template-columns: 1fr;
    }

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

    .appro-advanced-fields {
        grid-template-columns: repeat(2, minmax(120px, 1fr));
    }

    .java-bottom-actions {
        grid-column: 1;
        grid-template-columns: repeat(2, minmax(120px, 1fr));
    }

    .modele-entry-zone {
        grid-template-columns: repeat(4, minmax(100px, 1fr));
    }

    .modele-filter-row {
        grid-template-columns: 1fr;
        gap: 4px;
        padding: 4px;
    }

    .ecriture-entry-zone,
    .ecriture-filter-row,
    .ecriture-table-zone {
        grid-template-columns: 1fr;
    }

    .modele-filter-row input,
    .modele-filter-row .form-control:first-child {
        grid-column: auto;
        width: 100%;
    }
}

@media (max-width: 650px) {
    .java-modal label {
        width: 100%;
        align-items: flex-start;
        display: grid;
        gap: 3px;
    }

    .java-modal .form-control,
    .java-yellow-header label:nth-child(1) .form-control,
    .java-yellow-header label:nth-child(2) .form-control,
    .java-yellow-header label:nth-child(3) .form-control,
    .java-toolbar-search .form-control,
    .java-line-zone label:first-child .form-control,
    .java-stock-entry label:first-of-type .form-control,
    .java-stock-entry label:nth-of-type(2) .form-control,
    .java-checkout-grid .form-control {
        width: 100% !important;
        max-width: 100%;
    }

    .java-checkout-grid,
    .modele-entry-zone {
        grid-template-columns: 1fr;
    }

    .java-checkout-grid .checkout-caption,
    .java-checkout-grid .checkout-total,
    .java-checkout-grid .payment-totals,
    .java-checkout-grid label,
    .java-checkout-grid button {
        grid-column: 1;
    }

    .java-invoice-search {
        width: 100%;
        flex-wrap: wrap;
        margin-left: 0;
    }

    .java-invoice-search .is-invoice-lookup,
    .java-form-row .is-client,
    .java-form-row .is-depot,
    .java-stock-entry .is-article,
    .java-stock-entry .is-supplier {
        width: 100%;
    }

    .appro-advanced-fields {
        grid-template-columns: 1fr;
    }

    .workflow-subdialog-overlay {
        padding: 6px;
    }

    .workflow-subdialog {
        max-height: 88vh;
    }

    .java-bottom-actions {
        grid-template-columns: 1fr;
    }
}

.compta-frame {
    min-height: calc(100vh - 170px);
}

.compta-toolbar {
    display: flex;
    align-items: center;
    gap: 10px;
    flex-wrap: wrap;
    background: #2f81ea;
    padding: 5px 10px;
}

.compta-content {
    background: #fff;
    min-height: 420px;
    padding: 8px;
}

.compta-filter-row {
    display: flex;
    align-items: center;
    gap: 8px;
    flex-wrap: wrap;
    margin-bottom: 8px;
}

.compta-filter-row .form-control {
    width: auto;
    min-width: 150px;
}

.rapport-filter-caption {
    font-size: 12px;
    white-space: nowrap;
}

.bilan-grid.is-portrait {
    grid-template-columns: 1fr;
}

.rapports-main-tabs {
    gap: 0;
    padding: 0 8px;
}

.rapports-journal-tabs {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 10px;
    min-height: 33px;
    padding: 3px 12px;
    border-bottom: 1px solid #b8c0cc;
    background: #fff;
}

.rapport-journal-link {
    border: 0;
    background: transparent;
    color: #2f81ea;
    display: inline-flex;
    align-items: center;
    gap: 4px;
    font-size: 12px;
    padding: 2px 0;
}

.rapport-journal-link img {
    width: 18px;
    height: 18px;
}

.rapport-child-title {
    color: #666;
    font-size: 12px;
    margin: 0 0 6px;
}

.compta-split {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 360px;
    gap: 10px;
    align-items: start;
}

.compta-detail-panel {
    border-left: 1px solid #d7dde7;
    padding-left: 10px;
    min-width: 0;
}

.compta-detail-panel.is-wide {
    width: 100%;
}

.compta-totals {
    margin-left: auto;
    display: flex;
    align-items: center;
    gap: 6px;
    font-size: 12px;
}

.compta-totals b {
    background: #009766;
    color: #fff;
    padding: 5px 10px;
    min-width: 80px;
    text-align: right;
}

.bilan-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 10px;
    min-height: 0;
}

.bilan-panel {
    min-width: 0;
}

.bilan-title {
    background: #2f81ea;
    color: #fff;
    font-size: 12px;
    font-weight: 700;
    padding: 5px 8px;
}

.outils-table tr.is-total-row td {
    background: #d6e0ea;
    font-weight: 700;
}

@media (max-width: 992px) {
    .compta-split {
        grid-template-columns: 1fr;
    }

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

    .compta-detail-panel {
        border-left: 0;
        border-top: 1px solid #d7dde7;
        padding-left: 0;
        padding-top: 10px;
    }

    .compta-totals {
        margin-left: 0;
        width: 100%;
        justify-content: flex-end;
    }
}

.administration-frame {
    background: #fff;
    position: relative;
}

.administration-menu {
    border-bottom: 1px solid #d8d8d8;
    background: #2f81ea;
}

.administration-message {
    margin-left: auto;
    font-size: 12px;
    font-weight: 700;
    color: #666;
}

.administration-content {
    min-height: 560px;
    background: #fff;
}

.administration-busy {
    position: absolute;
    inset: 0;
    display: none;
    align-items: center;
    justify-content: center;
    gap: 10px;
    background: rgba(255, 255, 255, 0.72);
    color: #1f4e79;
    font-size: 13px;
    font-weight: 600;
    z-index: 20;
}

.administration-busy.is-visible {
    display: flex;
}

.administration-spinner {
    width: 24px;
    height: 24px;
    border: 3px solid rgba(47, 129, 234, 0.22);
    border-top-color: #2f81ea;
    border-radius: 50%;
    animation: administration-spin 0.8s linear infinite;
}

@keyframes administration-spin {
    to {
        transform: rotate(360deg);
    }
}

.administration-users-layout {
    display: grid;
    grid-template-columns: 340px minmax(0, 1fr);
    min-height: 560px;
}

.administration-form {
    display: grid;
    gap: 8px;
    align-content: start;
    padding: 10px;
    border-right: 1px solid #d8d8d8;
    background: #fff;
}

.administration-form label,
.administration-filters label,
.administration-links-screen label {
    margin: 0;
    color: #555;
    font-size: 12px;
    font-weight: 800;
}

.administration-section-title {
    min-height: 34px;
    display: flex;
    align-items: center;
    color: #666;
    font-size: 13px;
    font-weight: 800;
    border-bottom: 1px solid #eeeeee;
}

.administration-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
}

.administration-table-pane,
.administration-list-screen,
.administration-links-screen {
    min-width: 0;
    padding: 10px;
    background: #fff;
}

.administration-table-wrap {
    overflow: auto;
    max-height: 520px;
}

.administration-table {
    min-width: 760px;
    margin: 0;
}

.administration-table thead th {
    background: #f2f6fc;
    color: #444;
    font-size: 12px;
    border-bottom: 1px solid #c9d4e5;
    white-space: nowrap;
}

.administration-table td {
    padding: 5px;
    vertical-align: middle;
}

.administration-table tbody tr:hover {
    background: #f7fbff;
}

.administration-filters {
    display: grid;
    grid-template-columns: repeat(3, minmax(140px, 1fr)) auto;
    gap: 8px;
    align-items: end;
    padding-bottom: 10px;
    border-bottom: 1px solid #d8d8d8;
}

.administration-links-screen {
    display: grid;
    gap: 10px;
}

.administration-links-screen > label {
    max-width: 340px;
}

.administration-links-columns {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 12px;
}

.administration-link-row {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 8px;
    min-height: 34px;
    padding: 5px 8px;
    border-bottom: 1px solid #eeeeee;
}

.administration-empty,
.administration-pending {
    padding: 18px;
    color: #777;
    font-weight: 700;
}

@media (max-width: 992px) {
    .cloture-search-screen {
        grid-template-columns: 1fr;
    }

    .cloture-search-left {
        border-right: 0;
        border-bottom: 1px solid #d8d8d8;
    }

    .cloture-balance-filters {
        grid-template-columns: repeat(2, minmax(130px, 1fr));
    }

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

    .outils-list-pane {
        border-right: 0;
        border-bottom: 1px solid #d8d8d8;
    }

    .outils-list {
        max-height: 220px;
    }

    .outils-add-panel {
        grid-template-columns: repeat(2, minmax(130px, 1fr));
    }

    .administration-users-layout,
    .administration-links-columns {
        grid-template-columns: 1fr;
    }

    .administration-form {
        border-right: 0;
        border-bottom: 1px solid #d8d8d8;
    }

    .print-preview-band {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 768px) {
    .legacy-form-menu {
        gap: 6px;
        padding: 5px;
    }

    .legacy-menu-button {
        flex: 1 1 92px;
        min-width: 92px;
    }

    .legacy-form-titlebar {
        flex-wrap: wrap;
    }

    .cloture-balance-filters {
        grid-template-columns: 1fr;
    }

    .outils-search-row,
    .outils-add-panel {
        grid-template-columns: 1fr;
    }

    .outils-toolbar {
        width: 100%;
    }

    .outils-toolbar input {
        flex: 1;
        width: auto;
    }

    .administration-filters {
        grid-template-columns: 1fr;
    }

    .outils-poste-filter {
        flex: 1;
        min-width: 180px;
    }
}
