.pointer-events-none{
    pointer-events: none !important;
}

a{
    transition: 200ms !important;
}

.tooltip-span{
    font-size: 11px !important;
    width: 33% !important;
    text-align: left !important;
    border-bottom: 1px solid grey;
}

.tooltip-span.date{
    width: 20%;
}

.tooltip-span.amount{
    width: 20%;
}

.tooltip-span.gateway{
    width: 60%;
}

/* -------------------------------------------------------------------------
  VERTICAL STEPPERS
-------------------------------------------------------------------------- */

/* Steps */
.delivery-step {
    position: relative;
    min-height: 1em;
    color: gray;
}
.delivery-step + .delivery-step {
    margin-top: 1.5em
}
.delivery-step > div:first-child {
    position: static;
    height: 0;
}
.delivery-step > div:not(:first-child) {
    margin-left: 1.5em;
    padding-left: 1em;
}
.delivery-step h5 {
    margin-bottom: 5px !important;
}

.delivery-step.step-pending {
    color: #d9822b
}
.delivery-step.step-pending h5 {
    color: #d9822b
}
.delivery-step.step-pending .circle {
    background-color: #d9822b;
}

.delivery-step.step-error {
    color: #dc3545
}
.delivery-step.step-error h5 {
    color: #dc3545
}
.delivery-step.step-error .circle {
    background-color: #dc3545;
}

.delivery-step.step-delivered {
    color: #28a745
}
.delivery-step.step-delivered h5 {
    color: #28a745
}
.delivery-step.step-delivered .circle {
    background-color: #28a745;
}

/* Circle */
.circle {
    background: gray;
    position: relative;
    width: 1.8em;
    height: 1.8em;
    line-height: 1.8em;
    border-radius: 100%;
    color: #fff;
    text-align: center;
    box-shadow: 0 0 0 3px #fff;
}

/* Vertical Line */
.circle:after {
    content: ' ';
    position: absolute;
    display: block;
    top: 1px;
    right: 50%;
    bottom: 1px;
    left: 50%;
    height: 100%;
    width: 1px;
    transform: scale(1, 2);
    transform-origin: 50% -100%;
    background-color: rgba(0, 0, 0, 0.25);
}
.delivery-step:last-child .circle:after {
    display: none
}

/* Stepper Titles */
.title {
    line-height: 1.5em;
    font-weight: bold;
}
.caption {
    font-size: 0.9em;
    color: rgb(90,90,90) !important;
}
.step-note {
    font-size: 0.8em;
    font-weight: 500;
    color: rgb(100,100,100) !important;
}

.tva-pill-selector {
    /*justify-content: space-between;*/
}

.tva-pill-selector li button{
    padding: 6px 13px;
    font-size: 12px;
    margin-right: 5px;
}

.tva-pill-selector li button, .tva-pill-selector li button:focus{
    border: none;
    outline: none !important;
}

.nav-pills .nav-link.active, .nav-pills .show>.nav-link {
    background-color: #03A9F4 !important;
}

.max-height-400{
    max-height: 400px;
}

/* Sticky column header: stays visible while the table body scrolls (the wrapper
   is a max-height scroll container, same one the TOTAL footer sticks to). Table
   stays in Bootstrap's default border-collapse: collapse so cells don't segment;
   the header underline is a box-shadow so it survives the sticky positioning. */
.table-tva-order thead th {
    position: sticky;
    top: 0;
    z-index: 3;
    background: #fff;
    box-shadow: inset 0 -2px 0 #e6e9ee;
}

/* Grand-total footer: one clean continuous band (collapse mode = no cell
   segmentation), clear presence with a gentle lift off the list. */
.bottom-row-tva-ca{
    background-color: transparent;
}
.bottom-row-tva-ca td{
    background-color: #eaf1f8;
    position: sticky;
    bottom: 0;
    z-index: 2;
    border-top: 2px solid #c9dbec;
    box-shadow: 0 -4px 12px rgba(31,45,61,.07);
    font-weight: 700;
    color: #24384a;
    padding-top: 14px;
    padding-bottom: 14px;
}

.table-tva-ca::-webkit-scrollbar {
    width: 3px;
    transition: 200ms;
}

/* Track */
.table-tva-ca::-webkit-scrollbar-track {
    border-radius: 10px;
}

/* Handle */
.table-tva-ca::-webkit-scrollbar-thumb {
    background: #455a64;
    border-radius: 10px;
}

/* Handle on hover */
.table-tva-ca::-webkit-scrollbar-thumb:hover {
    background: #263136;
}

.table-tva-ca{
    transition: max-height 0.5s ease;
}

.bill-web-logo-header-container {
    position: relative;
    transition: 200ms;
    margin-bottom: 25px;
    max-width: 110px;
    max-height: 110px;
}

.bill-logosize-none {
    display: none !important;
}

.bill-logosize-small {
    max-width: 70px;
    max-height: 70px;
}

.bill-logosize-medium {
    max-width: 110px;
    max-height: 110px;
}

.bill-logosize-large {
    max-width: 200px;
    max-height: 200px;
}

.bill-web-logo-header-container img{
    width: 100%;
    height: 100%;
}

.bill-web-logo-header-container .edit-logo-btn{
    transition: 200ms;
    position: absolute;
    top: 5%;
    right: 5%;
    /*transform: translate(-50%, -50%);*/
    /*-ms-transform: translate(-50%, -50%);*/
    background-color: #ff5c6c;
    color: white;
    border: none;
    cursor: pointer;
    border-radius: 5px;
    text-align: center;
    opacity: .75;
    width: 30px;
    height: 30px;
    font-size: 14px;
    padding: 5px;
}

.bill-web-logo-header-container .edit-logo-btn:hover{
    opacity: 1;
    background-color: #ff5c6c;
}

.contact-us-card{
    height: 50px;
    border: 1px solid #20aee3 !important;
    border-radius: 5px !important;
    transition: 200ms;
}

.contact-us-card:hover{
    background-color: #20aee3 !important;
}

.contact-us-card:hover p{
    color: white !important;
}

.contact-us-card p {
    font-size: 15px;
    font-weight: bold;
}

.article-thumbnail{
    max-width: 100% !important;
    max-height: 64px !important;
}

/* MOBILE */
@media screen and (max-width: 640px) {
    .show-desktop{
        display: none;
    }
    .show-mobile{
        display: block;
    }
    .flex-row-desktop-column-mobile{
        flex-direction: column;
    }
}
/* MOBILE */
@media screen and (min-width: 640px) {
    .show-desktop{
        display: block;
    }
    .show-mobile{
        display: none;
    }
    .flex-row-desktop-column-mobile{
        flex-direction: row;
    }
}

.tva-disabled{
    pointer-events: none;
    opacity: .25;
}

.dropdown-toggle-income-year::after{
    margin-bottom: 3px !important;
    font-size: 18px !important;
}

.dropdown-menu--small{
    min-width: 80px;
    border-radius: 2px;
    transform: translate3d(80px, 36px, 0px) !important;
}

.tinymce-textarea-item{
    display: block;
    width: 100%;
    min-height: 150px !important;
}

td.form-group.x-description.bill_col_description > div > div > div.mce-top-part.mce-container.mce-stack-layout-item.mce-first,
.tinymce-item-parent-element .mce-top-part
{
    position: absolute;
    bottom: 1px;
    left: 1px;
}

td.form-group.x-description.bill_col_description > div > div > div.mce-top-part.mce-container.mce-stack-layout-item.mce-first > div > div,
td.form-group.x-description.bill_col_description > div > div > div.mce-top-part.mce-container.mce-stack-layout-item.mce-first > div > div > div > div,
.tinymce-item-parent-element .mce-top-part > div > div > div > div
{
    background: #f3f3f3 !important;
    border-top-right-radius: 5px;
}

.tinymce-item-parent-element .mce-top-part > div > div {
    padding: 0;
}

td.form-group.x-description.bill_col_description > div > div > div.mce-edit-area.mce-container.mce-panel.mce-stack-layout-item.mce-last{
    transition: 200ms;
    border-radius: 3px;
    border-color: #eeeff0;
}

.mce-panel iframe{
    border-radius: 10px !important;
}

.focused-tinymce > div > .mce-panel{
    border-color: #80bdff !important;
}

#billing-items-container tr {
    border-top: 1px solid #dee2e6;
}

.rotative-div{
    transition: .3s;
}

/* Collapse accordion -> rotate arrow icon */
#recurringExpensesHeader[aria-expanded="true"] .rotative-div {
    transform: rotate(-90deg);
}

.d-flex-force{
    display: flex !important;
}

.recurring-expense-card{
    background-color: #f6f6f6;
    padding: 15px;
    margin-bottom: 20px;
}

.recurring-expense-price{
    font-size: 18px;
}

.recurring-expense-period{
    font-size: 12px;
}

.recurring-expense-card-create{
    cursor: pointer;
    min-height: 127px;
    width: 100%;
    border: 1px dashed #20aee3;
    background-color: transparent;
    display: flex !important;
    flex-direction: column;
    justify-content: center;
    align-items: center;
}

.recurring-expense-card-create-icon{
    font-size: 25px;
}

.btn-delete-circle-recurring-expense{
    width: 26px;
    height: 26px;
    padding: 0;
    font-size: 14px;
    top: -10px;
    right: 5px;
    position: absolute;
    /*background-color: #f22613;*/
    background-color: white;
    box-shadow: 0 0 3px rgba(0,0,0,0.2);
    color: #f22613;
    border: none;
}

.btn-delete-circle-recurring-expense:hover, .btn-delete-circle-recurring-expense:focus{
    background-color: #f22613;
    color: white;
    border: none;
}

.btn-edit-circle-recurring-expense{
    width: 26px;
    height: 26px;
    padding: 0;
    font-size: 14px;
    top: -10px;
    right: 39px;
    position: absolute;
    color: #24d2b5;
    background-color: white;
    box-shadow: 0 0 3px rgba(0,0,0,0.2);
    border: none;
}

.btn-edit-circle-recurring-expense:hover, .btn-edit-circle-recurring-expense:focus{
    background-color: #24d2b5;
    color: white;
    border: none;
}

.recurring-expense-new-badge{
    padding: 3px 8px;
    font-size: 12px;
    background-color: #20aee3;
    color: white;
    font-weight: bold;
    border-radius: 6px;
    margin-left: 10px;
}

/*@media print{*/
/*    .used-for-sorting{*/
/*        display: none !important;*/
/*    }*/
/*    #tva-top-cards{*/
/*        visibility: hidden !important;*/
/*        display: none !important;*/
/*    }*/
/*}*/

.col-print-1 {width:8%;  float:left;}
.col-print-2 {width:16%; float:left;}
.col-print-3 {width:25%; float:left;}
.col-print-4 {width:33%; float:left;}
.col-print-5 {width:42%; float:left;}
.col-print-6 {width:50%; float:left;}
.col-print-7 {width:58%; float:left;}
.col-print-8 {width:66%; float:left;}
.col-print-9 {width:75%; float:left;}
.col-print-10{width:83%; float:left;}
.col-print-11{width:92%; float:left;}
.col-print-12{width:100%; float:left;}

@media print {
    .hidden-print{
        visibility: hidden !important;
        display: none !important;
    }
    .card-border-printing{
        border: 1px solid #20aee3 !important;
    }
    .table-tva-ca{
        max-height: none !important;
    }
}

.report-border-left-sep{
    border-left: 1px solid #ededed !important;
}

.gmail-box-connected-as{
    margin-top: 10px;
    margin-bottom: 25px;
    display: flex;
    flex-direction: row;
    justify-content: space-between;
    align-items: center;
    background-color: #1a73e8;
    height: 42px;
    border-radius: 42px;
}

.gmail-box-connected-as p{
    margin-bottom: 0 !important;
    color: white;
    padding: 10px 20px 10px 12px;
    font-weight: 500;
}

.gmail-box-connected-as .img-container{
    width: 42px;
    height: 42px;
    background-color: white;
    border: 2px solid #1a73e8;
    display: flex;
    justify-content: center;
    align-items: center;
    border-radius: 42px;
}

.gmail-box-connected-as .img-container img{
    height: 25px;
    width: 25px;
    margin: auto;
}

.gmail-icon-round{
    padding: 20px;
    border-radius: 50px;
    box-shadow: 0 0 15px rgba(0,0,0,0.2);
    margin-bottom: 15px;
}

.gmail-icon-round img{
    width: 30px;
    height: 30px;
}

.text-debit{
    color: #cf5a66 !important;
}

.btn-bs-custom-action{
    justify-content: center;
    align-items: center;
    display: flex;
    background: #ebf2f5;
    color: #79848a;
    font-weight: 500;
    margin-left: 6px;
}

.btn-bs-custom-action span{
    margin-left: 4px;
}

.alert-danger-full{
    background-color: #f8d7da !important;
}

.team_manager_tenant_name{
    display: block;
    font-size: 8px;
    color: grey;
    font-weight: 700;
}

.team_avatar{
    object-fit: cover;
}

.table-responsive{
    scrollbar-width: thin;
}

/* Social share buttons — fresh look: same 5px radius / weight as the other buttons, flat brand
   colours (Messenger's gradient flattened to a solid blue), icon + label flex-centred. */
.btn-whatsapp, .btn-messenger, .btn-mail{
    color: #fff;
    font-weight: 600;
    border: none !important;
    padding: 9px 18px;
    border-radius: 5px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 7px;
    box-shadow: none;
    margin: auto;
}
.btn-whatsapp{ background-color: #25D366; }
.btn-messenger{ background-color: #0084ff; }
.btn-mail{ background-color: #5a6268; }

/*.btn-whatsapp, .btn-messenger, .btn-mail{*/
/*    display: flex !important;*/
/*    justify-content: center;*/
/*}*/

/*.btn-whatsapp i, .btn-messenger i, .btn-mail i{*/
/*    margin: auto 5px auto auto;*/
/*}*/

.btn-whatsapp:hover, .btn-messenger:hover, .btn-mail:hover{
    opacity: .9 !important;
    color: white !important;
}

/* MOBILE */
@media screen and (max-width: 640px) {
    .btn-whatsapp, .btn-messenger, .btn-mail{
        width: 100%;
    }
}

.sharer-top-logo{
    max-height: 50px;
    margin: auto;
}

.sharer-company-name{
    margin: auto auto auto 15px;
    white-space: normal;
    line-height: 14px;
}

@media screen and (max-width: 640px){
    .sharer-company-name{
        font-size: 14px;
    }
}

.page-wrapper-sharer{
    margin-left: 0 !important;
}

.sharer-navbar{
    border-bottom: 1px solid #eeeff0;
}

.js-invoice-statuses h1{
    font-size: 25px !important;
}

.bill-file-attachments-wrapper-sharer .x-file-attachment{
    width: auto !important;
    padding-right: 12px;
}

.btn-sharer-top-action-row{
    max-width: 100%;
    margin: auto;
    width: 500px;
}

.sharer-payments-no-payment{
    text-align: center;
    font-size: 13px;
    background: #ededed;
    padding: 16px 23px;
}

.sharer-payzen-icon{
    max-width: 140px;
}

@media (min-width: 1200px) {
    .container-sharer {
        max-width: 1280px;
    }
}

.fc-alert{
    border: 2px solid #def1ff;
    position: relative;
    border-radius: 5px;
    border-left-width: 60px;
    margin: .5em 0;
    padding: 10px 15px;
}

.fc-alert.warning {
    border-color: #fdf1b8;
}

.fc-alert.info {
    border-color: #b8ccfd;
}

.fc-alert.danger {
    border-color: #fdb8b8;
}

.fc-alert.warning.warning>i{
    color: #f99d29;
    background-color: #fdf1b8;
}

.fc-alert.danger.danger>i{
    color: #f92929;
    background-color: #fdb8b8;
}

.fc-alert.info.info>i{
    color: #297cf9;
}

.fc-alert>i{
    position: absolute;
    font-size: 24px;
    top: calc(50% - 12px);
    left: -42px;
}

.footer-sharer{
    padding: 60px;
    position: relative !important;
    z-index: 1;
    font-family: "Poppins", sans-serif;
}

.footer-sharer h4{
    font-size: 17px;
    font-weight: 500;
    margin: 0 0 10px;
    color: #5c5678;
}

.footer-sharer p, .footer-sharer div{
    font-weight: 500;
    font-size: 14px;
}

.sharer-footer-img{
    max-height: 115px;
    max-width: 115px;
}

.bill-text-button-actions{
    flex-wrap: wrap;
    row-gap: 7px;
}

.tva-expand-btn-container{
    position: absolute;
    top: 20px;
    right: 20px;
}

.tva-expand-btn-container span{
    font-weight: 500;
    color: #a6b5bd !important;
    font-size: 12px;
}

.tva-expand-btn-container i{
    font-size: 10px;
    color: #a6b5bd !important;
}

.tva-expand-btn-container button:hover {
    background-color: #e2e9ec !important;
    color: #a6b5bd !important;
}

/* ───────── Applied filter chips — echo the segmented-control style ─────────
   White pill + soft shadow (like the active segment), brand-blue value/icon,
   slate-bold key, and a hover-able circular remove. Markup built in
   public/js/core/app.js (NXUpdateFilterBadges). */
.active-filters-container .filter-badge {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    background: #ffffff;
    border: 1px solid #e6ebf1;
    border-radius: 50px;
    padding: 6px 8px 6px 14px;
    font-size: 12.5px;
    color: #4b5563;
    box-shadow: 0 1px 2px rgba(16, 24, 40, .08);
    transition: box-shadow .15s ease, border-color .15s ease;
}

.active-filters-container .filter-badge:hover {
    border-color: #d7dee6;
    box-shadow: 0 2px 6px rgba(16, 24, 40, .12);
}

.active-filters-container .filter-badge strong {
    color: #212529;
    font-weight: 600;
}

.active-filters-container .filter-badge .filter-badge-value {
    color: #20aee3;
    font-weight: 500;
}

.active-filters-container .filter-badge .filter-badge-info {
    color: #20aee3;
    font-size: 14px;
    cursor: help;
}

.active-filters-container .filter-badge .filter-badge-remove {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 18px;
    height: 18px;
    margin-left: 2px;
    padding: 0;
    border: 0;
    border-radius: 50%;
    background: transparent;
    color: #9aa5b1;
    font-size: 15px;
    line-height: 1;
    cursor: pointer;
    transition: background-color .15s ease, color .15s ease;
}

.active-filters-container .filter-badge .filter-badge-remove:hover {
    background: #fdecec;
    color: #e0533d;
}

/* ============================================================
   Dashboard — currency code de-emphasis (moneyHtml helper)
   ============================================================ */
.money-cur { font-size: .62em; font-weight: 600; opacity: .55; margin-left: 2px; letter-spacing: .2px; }

/* dashboard income chart — empty state (dimmed placeholder chart + floating card) */
.fc-chart-faded canvas { opacity: .28; }
.fc-chart-empty-card { position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%); display: flex; align-items: center; gap: 12px; background: #fff; border: 1px solid #eef0f4; border-radius: 12px; box-shadow: 0 8px 28px rgba(62, 85, 105, .12); padding: 18px 26px; color: #67757c; font-size: 14px; font-weight: 600; max-width: 85%; }
.fc-chart-empty-card i { font-size: 24px; color: #b6bfc7; flex: 0 0 auto; }

/* dashboard activity timeline — empty state (skeleton rows + floating card) */
.fc-activity-empty { position: relative; min-height: 230px; }
.fc-activity-skeleton { padding: 4px 0; }
.fc-skel-row { display: flex; align-items: flex-start; gap: 14px; padding: 12px 2px; }
.fc-skel-dot { flex: 0 0 auto; width: 34px; height: 34px; border-radius: 50%; background: #eef1f5; }
.fc-skel-lines { flex: 1 1 auto; display: flex; flex-direction: column; gap: 9px; padding-top: 5px; }
.fc-skel-line { display: block; height: 10px; border-radius: 6px; background: #eef1f5; }
.fc-skel-line--title { width: 42%; }
.fc-skel-line--sub { width: 68%; height: 8px; background: #f2f4f7; }
.fc-activity-empty-card { position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%); display: flex; align-items: center; gap: 12px; background: #fff; border: 1px solid #eef0f4; border-radius: 12px; box-shadow: 0 8px 28px rgba(62, 85, 105, .12); padding: 16px 22px; color: #67757c; font-size: 14px; font-weight: 600; max-width: 88%; }
.fc-activity-empty-card i { font-size: 24px; color: #b6bfc7; flex: 0 0 auto; }

/* ============================================================
   Dashboard — invoice-status card + mobile-app promo card
   ============================================================ */
.fc-bar-head { display: flex; justify-content: space-between; align-items: baseline; margin-bottom: 6px; }
.fc-bar-label { font-size: 11px; font-weight: 600; color: #99abb4; text-transform: uppercase; letter-spacing: .4px; }
.fc-bar-total { font-size: 13px; font-weight: 700; color: #3e5569; }
.fc-stacked-bar { display: flex; height: 20px; border-radius: 5px; background: #eef0f4; margin-bottom: 18px; }
.fc-stacked-seg { position: relative; height: 100%; display: flex; align-items: center; justify-content: center; color: #fff; font-size: 11px; font-weight: 600; overflow: hidden; white-space: nowrap; cursor: pointer; min-width: 22px; transition: opacity .15s ease, filter .15s ease; }
.fc-seg-txt { display: block; max-width: 100%; overflow: hidden; text-overflow: ellipsis; padding: 0 4px; }
.fc-stacked-bar:hover .fc-stacked-seg { opacity: .4; }
.fc-stacked-bar .fc-stacked-seg:hover { opacity: 1; filter: brightness(1.06); }
.fc-bar-empty { color: #99abb4; font-size: 11px; margin: auto; }
.fc-detail { width: 100%; border-collapse: collapse; }
.fc-detail td { padding: 7px 0; font-size: 12px; border-top: 1px solid #eef0f4; vertical-align: middle; }
.fc-detail tr.fc-detail-head td { border-top: 0; padding: 0 0 4px; font-size: 10px; font-weight: 600; text-transform: uppercase; letter-spacing: .4px; color: #aab4bd; }
.fc-detail .lbl { color: #67757c; }
.fc-detail .num { text-align: right; font-weight: 600; color: #455a64; width: 42px; white-space: nowrap; padding-right: 14px; }
.fc-detail .amt { text-align: right; font-weight: 600; color: #3e5569; white-space: nowrap; }
.fc-detail tr.muted td { color: #b6bfc7; font-weight: 500; }
.fc-detail .fc-dot { display: inline-block; width: 8px; height: 8px; border-radius: 50%; margin-right: 8px; vertical-align: middle; }
.fc-app-promo { display: flex; align-items: center; }
.fc-phone-img { flex: 0 0 auto; width: 96px; height: auto; margin-right: 18px; }
.fc-app-text { min-width: 0; }
.fc-new-badge { display: inline-block; background: #e6f1fb; color: #1c6cc0; font-size: 10px; font-weight: 700; text-transform: uppercase; letter-spacing: .6px; padding: 3px 8px; border-radius: 5px; margin-bottom: 8px; }
.fc-app-title { color: #3e5569; font-weight: 600; font-size: 15px; line-height: 1.25; }
.fc-app-sub { color: #99abb4; font-size: 12px; margin: 5px 0 14px; line-height: 1.4; }
.fc-app-badges { margin-top: 14px; white-space: nowrap; }
.fc-app-badges a { display: inline-block; margin-right: 6px; text-decoration: none !important; }
.fc-app-badges img { height: 28px; width: auto; vertical-align: middle; border: 0; }
.fc-config-link { display: inline-block; margin-top: 14px; font-size: 12px; color: #1c6cc0 !important; font-weight: 600; text-decoration: none !important; }
.fc-config-link:hover { text-decoration: underline !important; }

/* ============================================================
   Reports — expenses category × month report
   ============================================================ */
.fc-xr-summary { display: flex; align-items: flex-end; gap: 22px; margin: 6px 0 20px; flex-wrap: wrap; }
.fc-xr-metric { display: flex; flex-direction: column; }
.fc-xr-metric .fc-xr-label { font-size: 11px; font-weight: 600; text-transform: uppercase; letter-spacing: .4px; color: #99abb4; margin-bottom: 2px; }
.fc-xr-metric .fc-xr-value { font-size: 27px; font-weight: 700; color: #3e5569; line-height: 1.05; }
.fc-xr-sub { display: flex; gap: 16px; font-size: 12px; color: #8a97a0; flex-wrap: wrap; align-items: baseline; }
.fc-xr-sub .fc-xr-period { color: #67757c; font-weight: 700; }
.fc-xr-state { background: #eef4f9; color: #3e5569; font-weight: 700; padding: 1px 9px; border-radius: 20px; font-size: 11px; }
.fc-xr-summary .money-cur { font-size: .55em; font-weight: 600; opacity: .55; margin-left: 2px; }
.fc-xr-chart { min-height: 340px; margin-bottom: 4px; }
.fc-xr-legend { display: flex; flex-wrap: wrap; justify-content: center; gap: 16px; margin: 2px 0 10px; font-size: 12px; color: #67757c; }
.fc-xr-lg { display: inline-flex; align-items: center; }
.fc-xr-sw { width: 11px; height: 11px; border-radius: 3px; display: inline-block; margin-right: 6px; }
.fc-xr-sw-hatch { background-color: #dfe4ea; background-image: repeating-linear-gradient(45deg, #9aa4ae 0, #9aa4ae 2px, transparent 2px, transparent 4px); }
.fc-xr-empty { padding: 48px 12px; text-align: center; color: #99abb4; font-size: 13px; }
.fc-xr-caption { caption-side: top; text-align: left; color: #99abb4; font-size: 11px; font-weight: 600; padding: 2px 2px 8px; }
.fc-xr-table { margin-bottom: 0; table-layout: fixed; width: 100%; min-width: 960px; font-variant-numeric: tabular-nums; }
.fc-xr-table th { font-size: 10px; text-transform: uppercase; letter-spacing: .2px; color: #aab4bd; font-weight: 600; border-bottom: 1px solid #eef0f4; white-space: nowrap; padding: 6px 5px; overflow: hidden; text-overflow: ellipsis; }
.fc-xr-table td { font-size: 12px; color: #67757c; border-top: 1px solid #f2f4f7; white-space: nowrap; padding: 7px 5px; overflow: hidden; text-overflow: ellipsis; }
.fc-xr-table .fc-xr-cat { width: 132px; text-align: left; color: #455a64; font-weight: 500; position: sticky; left: 0; background: #fff; z-index: 1; padding-left: 2px; }
.fc-xr-table th.fc-xr-cat { color: #aab4bd; }
.fc-xr-yr { display: block; font-size: 9px; color: #c3cbd1; font-weight: 500; }
.fc-xr-table .fc-xr-total-col { width: 104px; font-weight: 700; color: #3e5569; border-left: 1px solid #eef0f4; }
.fc-xr-table tr.fc-xr-muted td { color: #cbd2d8; }
.fc-xr-table tfoot .report-results-table-totals td { font-weight: 700; color: #3e5569; border-top: 2px solid #e6e9ee; background: #fbfcfd; }
.fc-xr-table tfoot .report-results-table-totals .fc-xr-cat { color: #3e5569; background: #fbfcfd; }
.reports-list-page-filter-container { margin-bottom: 6px; }
/* off-screen table used only for the complete Excel/CSV export (not display:none, so tableExport still reads it) */
.fc-xr-export-only { position: absolute; left: -99999px; top: 0; width: auto; }

/* ============================================================
   Reports — landing / start page
   ============================================================ */
.fc-rs-page { padding: 8px 4px 12px; }
.fc-rs-intro { display: flex; align-items: baseline; flex-wrap: wrap; gap: 4px 12px; margin: 0 0 22px; }
.fc-rs-intro h4 { color: #3e5569; font-weight: 700; margin: 0; font-size: 20px; }
.fc-rs-intro p { color: #99abb4; font-size: 12.5px; margin: 0; line-height: 1.5; flex: 1 1 320px; min-width: 0; }
.fc-rs-grid { display: flex; flex-wrap: wrap; gap: 14px; justify-content: flex-start; align-items: stretch; }
.fc-rs-card { flex: 0 1 288px; max-width: 300px; min-width: 240px; background: #fff; border: 1px solid #e9edf2; border-radius: 12px; box-shadow: 0 1px 3px rgba(62, 85, 105, .05); padding: 16px 16px 14px; }
.fc-rs-head { display: flex; align-items: center; gap: 10px; margin-bottom: 10px; }
.fc-rs-icon { width: 38px; height: 38px; border-radius: 10px; display: flex; align-items: center; justify-content: center; font-size: 19px; flex: 0 0 auto; }
.fc-rs-title { font-size: 15px; font-weight: 700; color: #3e5569; }
.fc-rs-desc { font-size: 12px; color: #99abb4; line-height: 1.5; margin: 0 0 13px; }
.fc-rs-links { display: flex; flex-wrap: wrap; gap: 6px; }
.fc-rs-links a { font-size: 11.5px; font-weight: 600; color: #3e5569; background: #f4f6f9; border-radius: 6px; padding: 5px 10px; text-decoration: none !important; cursor: pointer; transition: background .15s ease, color .15s ease; }
.fc-rs-links a:hover { background: #e6f1fb; color: #1c6cc0; }
.fc-rs-foot { text-align: center; color: #aab4bd; font-size: 12px; margin-top: 28px; }

/* ============================================================
   Dashboard — top KPI cards (payments / invoices)
   ============================================================ */
.fc-kpi .fc-kpi-card { position: relative; border: 1px solid #eef0f4; border-radius: 0; overflow: hidden; }
.fc-kpi-card::before { content: ''; position: absolute; left: 0; right: 0; bottom: 0; height: 3px; }
.fc-kpi-card .card-body { padding: 16px 18px; }
.fc-kpi-top { display: flex; align-items: center; justify-content: space-between; gap: 8px; margin-bottom: 12px; min-height: 22px; }
.fc-kpi-label { font-size: 11px; font-weight: 600; text-transform: uppercase; letter-spacing: .5px; color: #99abb4; }
.fc-kpi-value { font-size: 25px; font-weight: 700; color: #3e5569; line-height: 1.1; white-space: nowrap; }
.fc-kpi-sub { font-size: 12px; color: #99abb4; margin-top: 8px; min-height: 18px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.fc-kpi-sub--danger { color: #ff5c6c; font-weight: 600; }
.fc-kpi-prev { font-weight: 700; color: #67757c; }
.fc-kpi-badge { font-size: 11px; font-weight: 700; padding: 2px 8px; border-radius: 20px; white-space: nowrap; flex: 0 0 auto; }
.fc-kpi-badge--up { background: rgba(27, 184, 158, .12); color: #1bb89e; }
.fc-kpi-badge--down { background: rgba(255, 92, 108, .12); color: #ff5c6c; }
.fc-kpi-badge--flat { background: #eef0f4; color: #99abb4; }
.fc-kpi--teal .fc-kpi-card::before { background: #24d2b5; }
.fc-kpi--blue .fc-kpi-card::before { background: #20aee3; }
.fc-kpi--orange .fc-kpi-card::before { background: #ff9041; }
.fc-kpi--red .fc-kpi-card::before { background: #ff5c6c; }

/* Embedded list tables (client/project detail tabs) already sit inside a card, but each list table
   renders its own .card too — flatten that inner card so it doesn't stack a second card's shadow /
   border / margin / padding and push the table in. Standalone list pages keep their card. */
.tab-body-embedded .card-embed-fix .card { box-shadow: none !important; border: 0 !important; margin: 0 !important; background: transparent; }
.tab-body-embedded .card-embed-fix .card > .card-body { padding: 0 !important; }

/* ============================================================
   Expense add/edit modal (expenses/components/modals/add-edit-inc)
   ============================================================ */
#js-trigger-expenses .form-group { margin-bottom: .9rem !important; }
#js-trigger-expenses .col-form-label { padding-top: 0 !important; padding-bottom: 7px !important; line-height: 1.3 !important; }
#js-trigger-expenses .row + .row { margin-top: 0; }
/* "Plus de détails" expander reflects its open/closed state via the hidden checkbox :checked state (no JS) */
#js-trigger-expenses .js-more-details-toggle:hover .more-label-show,
#js-trigger-expenses .js-more-details-toggle:hover .more-label-hide { text-decoration: underline; }
#js-trigger-expenses .more-chevron { width: 0; height: 0; border-left: 4px solid transparent; border-right: 4px solid transparent; border-top: 5px solid currentColor; transition: transform .15s ease; }
#js-trigger-expenses .more-label-hide { display: none; }
#js-trigger-expenses .js-more-details-toggle input:checked ~ .more-chevron { transform: rotate(180deg); }
#js-trigger-expenses .js-more-details-toggle input:checked ~ .more-label-show { display: none; }
#js-trigger-expenses .js-more-details-toggle input:checked ~ .more-label-hide { display: inline; }

/* settlement segmented chooser (Réglée / Pas encore réglée) */
.settle-choice { display: flex; align-items: stretch; margin-top: 12px; }
.settle-card { flex: 1 1 0; display: flex; align-items: center; gap: 12px; margin: 0; padding: 13px 14px; border: 1.5px solid #e3e8ee; border-radius: 12px; background: #fff; cursor: pointer; transition: all .15s ease; min-width: 0; }
.settle-card:hover { border-color: #cbd2d9; }
.settle-card input { position: absolute; opacity: 0; width: 0; height: 0; }
.settle-card__icon { flex: 0 0 auto; width: 34px; height: 34px; display: flex; align-items: center; justify-content: center; border-radius: 50%; background: #eef1f5; color: #9aa5b1; font-size: 15px; transition: all .15s ease; }
.settle-card__body { display: flex; flex-direction: column; line-height: 1.25; min-width: 0; }
.settle-card__title { font-weight: 700; font-size: 14px; color: #8795a1; }
.settle-card__desc { font-size: 11px; color: #b0b7c0; }
.settle-choice__or { align-self: center; flex: 0 0 auto; margin: 0 10px; width: 34px; height: 34px; display: flex; align-items: center; justify-content: center; border-radius: 50%; background: #fff; border: 1.5px solid #e3e8ee; font-size: 11px; font-weight: 700; color: #9aa5b1; }
.settle-card--paid.is-active { border-color: #14b8a6; background: #f0fbf9; }
.settle-card--paid.is-active .settle-card__icon { background: #14b8a6; color: #fff; }
.settle-card--paid.is-active .settle-card__title { color: #0d9488; }
.settle-card--paid.is-active .settle-card__desc { color: #4a9d92; }
.settle-card--due.is-active { border-color: #f59e0b; background: #fff8ef; }
.settle-card--due.is-active .settle-card__icon { background: #f59e0b; color: #fff; }
.settle-card--due.is-active .settle-card__title { color: #c9760a; }
.settle-card--due.is-active .settle-card__desc { color: #a9773f; }
@media (max-width: 480px) { .settle-choice { flex-direction: column; } .settle-choice__or { margin: 8px 0; } }
/* --- Stock oversell warning (invoice line quantity exceeds available stock) --- */
.fc-stock-oversell { border-color: #e46a76 !important; background: #fff6f7; }
.fc-stock-warning { font-size: 11px; font-weight: 600; color: #e46a76; margin-top: 3px; line-height: 1.2; }

/* --- Free-trial countdown banner (shown in-app while settings_saas_status = free-trial) --- */
.fc-trial-banner { display: flex; align-items: center; justify-content: space-between; gap: 16px; flex-wrap: wrap; padding: 12px 18px; border-radius: 8px; border: 1px solid #dcebf7; background: #f0f7fd; }
.fc-trial-banner__main { display: flex; align-items: center; gap: 12px; min-width: 0; }
.fc-trial-banner__icon { width: 40px; height: 40px; border-radius: 50%; display: inline-flex; align-items: center; justify-content: center; flex: 0 0 auto; font-size: 21px; line-height: 1; background: #e3f0fb; color: #1c8fcf; }
.fc-trial-banner__text { font-size: 14px; color: #33475c; line-height: 1.35; }
.fc-trial-banner__text strong { color: #16243f; }
.fc-trial-banner__sub { display: block; font-size: 12px; color: #8895a4; margin-top: 1px; }
.fc-trial-banner__cta { display: inline-block; background: #1c6cc0; color: #fff !important; font-weight: 600; font-size: 13.5px; text-decoration: none; padding: 9px 18px; border-radius: 7px; white-space: nowrap; flex: 0 0 auto; }
.fc-trial-banner__cta:hover { background: #155aa6; color: #fff !important; }
.fc-trial-warning { background: #fbf3e2; border-color: #f0e0bd; }
.fc-trial-warning .fc-trial-banner__icon { background: #fbeccf; color: #c9871f; }
.fc-trial-warning .fc-trial-banner__cta { background: #c9871f; }
.fc-trial-warning .fc-trial-banner__cta:hover { background: #a96f13; }
.fc-trial-critical { background: #fdecec; border-color: #f5d2d2; }
.fc-trial-critical .fc-trial-banner__icon { background: #fbdad6; color: #c0392b; }
.fc-trial-critical .fc-trial-banner__cta { background: #c0392b; }
.fc-trial-critical .fc-trial-banner__cta:hover { background: #a12f22; }
/* card registered mid-trial: calm scheduled state */
.fc-trial-scheduled { background: #e4f3f0; border-color: #cfe9e3; }
.fc-trial-scheduled .fc-trial-banner__icon { background: #d3efe9; color: #0e8f82; }
.fc-trial-scheduled .fc-trial-banner__cta { background: #0e8f82; }
.fc-trial-scheduled .fc-trial-banner__cta:hover { background: #0b756a; }

/* --- Billing page (myaccount) trial status box --- */
.fc-trial-account { padding: 16px 18px; border-radius: 8px; border: 1px solid #dcebf7; background: #f0f7fd; margin-top: 6px; }
.fc-trial-account__title { font-weight: 700; color: #16243f; font-size: 15px; }
.fc-trial-account__sub { color: #54657a; font-size: 13.5px; margin-top: 4px; line-height: 1.5; }
.fc-trial-account--scheduled { background: #e4f3f0; border-color: #cfe9e3; }
.fc-trial-account--open { background: #fbf3e2; border-color: #f0e0bd; }

/* --- Settings > Application mobile (QR pairing + download) --- */
.fc-ma-head { display: flex; align-items: center; gap: 14px; padding-bottom: 18px; margin-bottom: 24px; border-bottom: 1px solid #e7ecf1; }
.fc-ma-head__icon { width: 42px; height: 42px; border-radius: 12px; background: #eaf7fc; display: flex; align-items: center; justify-content: center; color: #1691c4; font-size: 19px; flex: 0 0 42px; }
.fc-ma-head__title { font-size: 16.5px; font-weight: 600; color: #1f2733; margin: 0; }
.fc-ma-head__sub { font-size: 12.5px; color: #8a94a3; margin: 2px 0 0; }
@media (min-width: 992px) {
    .fc-ma-col--left { border-right: 1px solid #e7ecf1; padding-right: 34px; }
    .fc-ma-col--right { padding-left: 34px; }
}
.fc-ma-eyebrow { font-size: 10.5px; font-weight: 700; letter-spacing: 1.3px; color: #1691c4; text-transform: uppercase; margin-bottom: 6px; }
.fc-ma-title { font-size: 16px; font-weight: 600; color: #1f2733; margin: 0 0 4px; }
.fc-ma-sub { font-size: 13px; color: #8a94a3; line-height: 1.55; margin: 0 0 22px; }
.fc-ma-sub b { color: #1f2733; }
.fc-ma-qrwrap { display: flex; flex-direction: column; align-items: center; padding-bottom: 6px; }
.fc-ma-qrtile { position: relative; width: 236px; height: 236px; background: #fff; border-radius: 16px; box-shadow: 0 2px 14px rgba(20, 40, 60, .10); display: flex; align-items: center; justify-content: center; }
.fc-ma-qrtile__inner { width: 196px; height: 196px; display: flex; align-items: center; justify-content: center; transition: filter .25s, opacity .25s; }
.fc-ma-qrtile__inner img, .fc-ma-qrtile__inner canvas { width: 196px !important; height: 196px !important; }
.fc-ma-corner { position: absolute; width: 26px; height: 26px; border: 3px solid #20AEE3; }
.fc-ma-corner--tl { top: -3px; left: -3px; border-right: 0; border-bottom: 0; border-top-left-radius: 12px; }
.fc-ma-corner--tr { top: -3px; right: -3px; border-left: 0; border-bottom: 0; border-top-right-radius: 12px; }
.fc-ma-corner--bl { bottom: -3px; left: -3px; border-right: 0; border-top: 0; border-bottom-left-radius: 12px; }
.fc-ma-corner--br { bottom: -3px; right: -3px; border-left: 0; border-top: 0; border-bottom-right-radius: 12px; }
.fc-ma-qrtile.is-expired .fc-ma-qrtile__inner { filter: blur(4px); opacity: .25; }
.fc-ma-overlay { position: absolute; top: 0; right: 0; bottom: 0; left: 0; display: none; flex-direction: column; align-items: center; justify-content: center; gap: 10px; z-index: 2; }
.fc-ma-qrtile.is-expired .fc-ma-overlay { display: flex; }
.fc-ma-overlay__msg { font-size: 12px; color: #C2362B; font-weight: 600; background: #FDE7E4; padding: 5px 12px; border-radius: 999px; }
.fc-ma-overlay__btn { background: #20AEE3; color: #fff; border: none; border-radius: 10px; padding: 11px 18px; font-family: inherit; font-size: 13.5px; font-weight: 600; box-shadow: 0 3px 10px rgba(32, 174, 227, .35); cursor: pointer; }
.fc-ma-overlay__btn:hover { background: #1a9dcf; }
.fc-ma-ttl { width: 236px; margin-top: 18px; }
.fc-ma-bar { height: 4px; background: #edf1f5; border-radius: 3px; overflow: hidden; }
.fc-ma-bar__fill { display: block; height: 100%; width: 100%; background: linear-gradient(90deg, #20AEE3, #6fd0f2); border-radius: 3px; transition: width 1s linear; }
.fc-ma-ttl__lbl { display: flex; justify-content: space-between; margin-top: 8px; font-size: 12px; color: #8a94a3; }
.fc-ma-ttl__lbl b { color: #1f2733; font-weight: 600; }
.fc-ma-ttl__expired { color: #C2362B; font-weight: 600; }
.fc-ma-regen { display: inline-block; margin-top: 14px; font-size: 12.5px; color: #1691c4; font-weight: 500; cursor: pointer; }
.fc-ma-regen:hover { color: #127aa6; text-decoration: none; }
.fc-ma-steps { list-style: none; margin: 0 0 24px; padding: 0; }
.fc-ma-steps li { display: flex; gap: 14px; padding-bottom: 20px; position: relative; }
.fc-ma-steps li:last-child { padding-bottom: 0; }
.fc-ma-steps li::before { content: ""; position: absolute; left: 14px; top: 30px; bottom: 2px; width: 2px; background: #e7ecf1; }
.fc-ma-steps li:last-child::before { display: none; }
.fc-ma-steps__n { flex: 0 0 28px; height: 28px; border-radius: 50%; background: #eaf7fc; color: #1691c4; font-size: 12.5px; font-weight: 700; display: flex; align-items: center; justify-content: center; position: relative; z-index: 1; }
.fc-ma-steps__tx { font-size: 13.5px; line-height: 1.5; padding-top: 4px; color: #1f2733; }
.fc-ma-badges { display: flex; align-items: center; flex-wrap: wrap; gap: 10px; margin-bottom: 16px; }
.fc-ma-badges a { display: inline-block; text-decoration: none !important; border-radius: 8px; transition: transform .15s, box-shadow .15s; }
.fc-ma-badges a:hover { transform: translateY(-1px); box-shadow: 0 4px 12px rgba(20, 40, 60, .18); }
.fc-ma-badges img { height: 40px; width: auto; display: block; border: 0; border-radius: 8px; }

/* --- Landlord backoffice > Analytics section (Usage + AI Pricing) ---
   Tiles use the theme's own .card markup (same as the home top stats) — only the two
   intermediate band colors need utilities the theme lacks. */
.fc-lla-watch { color: #b98900 !important; }
.fc-lla-risk { color: #d2691e !important; }
/* Equal-height KPI cards: the flex row stretches the cols; fill it minus the theme card's
   margin-bottom (30px) so a card that wraps to 2 lines doesn't overhang the next row. */
.analytics .top-stats-panels .card,
.aipricing .top-stats-panels .card { height: calc(100% - 30px); }
.fc-lla-table th { font-size: 11.5px; text-transform: uppercase; letter-spacing: .5px; color: #8a99a8; }
/* Only the churn table is click-sortable; scope the affordance to it (the AI-pricing table isn't). */
#fc-lla-churn thead th { cursor: pointer; user-select: none; white-space: nowrap; }
.fc-lla-table td { vertical-align: middle; }
.fc-lla-tenant { font-weight: 600; }
.fc-lla-muted { color: #8a99a8; }
.fc-lla-up { color: #0e8f6e; font-weight: 600; }
.fc-lla-down { color: #c2362b; font-weight: 600; }
.fc-lla-empty { color: #8a99a8; font-size: 13px; padding: 14px 0; margin: 0; }
.fc-lla-badge { display: inline-block; padding: 3px 11px; border-radius: 999px; font-size: 11.5px; font-weight: 600; }
.fc-lla-badge--healthy { background: #e0f4ee; color: #0e8f6e; }
.fc-lla-badge--watch { background: #fdf3d7; color: #b98900; }
.fc-lla-badge--risk { background: #fdeadd; color: #d2691e; }
.fc-lla-badge--dormant { background: #fde7e4; color: #c2362b; }

/* ============================================================
   Déclaration TVA 1010 (pages/tva/declaration.blade.php)
   ============================================================ */
.fc-tvadecl-formhead { display: flex; justify-content: space-between; align-items: flex-start; gap: 16px; margin-bottom: 6px; }
.fc-tvadecl-section { background: #f6f7fa; border-left: 3px solid #ff6849; padding: 7px 12px; font-weight: 700; font-size: 13px; letter-spacing: .3px; text-transform: uppercase; color: #455261; margin: 18px 0 10px; }
.fc-tvadecl-subhead { font-weight: 600; font-size: 12.5px; color: #67757c; margin: 4px 0 6px; }
.fc-tvadecl-table { margin-bottom: 6px; }
.fc-tvadecl-table td, .fc-tvadecl-table th { padding: 6px 8px; vertical-align: middle; }
.fc-tvadecl-table th.fc-tvadecl-amount { text-align: right; font-size: 12px; color: #67757c; }
.fc-tvadecl-num { width: 44px; font-weight: 700; color: #ff6849; text-align: center; background: #fdf5f3; border-radius: 4px; font-size: 12.5px; }
.fc-tvadecl-amount { width: 190px; text-align: right; }
.fc-tvadecl-amount input { text-align: right; font-variant-numeric: tabular-nums; }
.fc-tvadecl-table tr.fc-tvadecl-total td { border-top: 2px solid #e3e7ee; font-weight: 700; }
.fc-tvadecl-table tr.fc-tvadecl-total input[readonly] { background: #f2f4f8; font-weight: 700; }
.fc-tvadecl-due-final input[readonly] { background: #fdeadd !important; color: #c2362b; font-size: 15px; }
.fc-tvadecl-hint { font-size: 12px; margin: 2px 0 10px; }

/* ============================================================
   TVA & CA — period chips + gated déclaration button (pages/tva/tva.blade.php)
   ============================================================ */
.fc-tva-chips { margin-top: 12px; display: flex; flex-wrap: wrap; gap: 7px; }
.fc-tva-chip { display: inline-block; padding: 4px 13px; border-radius: 999px; font-size: 12px; font-weight: 600; color: #455261; background: #f1f3f7; border: 1px solid #e0e4ec; text-decoration: none; transition: background .15s ease, color .15s ease; }
.fc-tva-chip:hover { background: #e2ebf5; color: #1c72b8; text-decoration: none; }
.fc-tva-chip--active { background: #1d96c3; border-color: #1d96c3; color: #fff; }
.fc-tva-chip--active:hover { background: #1d96c3; color: #fff; }
/* Fresh, consistent TVA action buttons (report + declaration). inline-flex + symmetric padding =
   always perfectly centred label/icon; soft rounded look with a subtle lift on the primary. */
.fc-tvabtn { display: inline-flex; align-items: center; justify-content: center; gap: 7px;
    border-radius: 8px; font-weight: 600; font-size: 13px; line-height: 1; padding: 10px 18px;
    border: 1px solid transparent; cursor: pointer; text-decoration: none; white-space: nowrap;
    transition: background .15s ease, color .15s ease, box-shadow .15s ease, border-color .15s ease; }
.fc-tvabtn i { font-size: 15px; }
.fc-tvabtn + .fc-tvabtn { margin-left: 8px; }
.fc-tvabtn--primary { background: #20aee3; color: #fff; box-shadow: 0 3px 8px rgba(32,174,227,.28); }
.fc-tvabtn--primary:hover, .fc-tvabtn--primary:focus { background: #12a2d8; color: #fff; box-shadow: 0 5px 14px rgba(32,174,227,.36); text-decoration: none; }
.fc-tvabtn--ghost { background: #fff; color: #5a6b7b; border-color: #e2e7ef; box-shadow: 0 1px 2px rgba(31,45,61,.05); }
.fc-tvabtn--ghost:hover, .fc-tvabtn--ghost:focus { background: #eaf6fc; color: #1c9fd4; border-color: #bfe6f6; text-decoration: none; }
.fc-tvabtn--disabled, .fc-tvabtn--disabled:hover, .fc-tvabtn--disabled:focus { background: #f3f5f8; color: #a2a8b4; border-color: #e6e9f0; box-shadow: none; cursor: not-allowed; }

/* ============================================================
   TVA & CA v2 — synthèse, tuiles CA, matrice par taux, onglets,
   overlay module TVA désactivé (pages/tva/tva.blade.php)
   ============================================================ */
.fc-tva2-lockzone { position: relative; }
.fc-tva2-dim { opacity: .35; pointer-events: none; user-select: none; }
.fc-tva2-overlay { position: absolute; inset: 0; z-index: 5; display: flex; align-items: center; justify-content: center; padding: 14px; }
/* Faint tint over ONLY this band's region, so the disabled area reads as one bounded
   box scoped to the TVA synthesis, not a page-level modal. */
.fc-tva2-overlay:not(.fc-tva2-overlay--mini) { background: rgba(249,250,253,.5); border-radius: 10px; }
.fc-tva2-overlay--mini { align-items: flex-start; padding-top: 90px; }
/* Compact, soft-shadowed notice (was a big modal-like card): sits within the band. */
.fc-tva2-overlay-card { background: #fff; border: 1px solid #e0e4ec; border-radius: 8px; box-shadow: 0 3px 12px rgba(31,45,61,.12); padding: 14px 22px; max-width: 540px; text-align: center; }
.fc-tva2-overlay-card h4 { font-size: 14px; font-weight: 700; color: #1f2d3d; margin: 6px 0 4px; }
.fc-tva2-overlay-card p { font-size: 12.5px; color: #55606d; margin: 0; }
.fc-tva2-overlay-sub a { font-weight: 600; }
.fc-tva2-overlay-icon { width: 34px; height: 34px; margin: 0 auto; border-radius: 50%; background: #fdf5f3; color: #ff6849; display: flex; align-items: center; justify-content: center; font-size: 15px; }
.fc-tva2-overlay-card--mini { padding: 9px 18px; font-size: 13px; font-weight: 600; color: #455261; }
.fc-tva2-overlay-card--mini i { color: #ff6849; }

/* Clean white card (no left rail — it clashed with the rounded corners); the result is a soft
   tinted pill so the eye lands on it without needing an accent bar. */
.fc-tva2-synth { background: #fff; border: 1px solid #e6e9f0; border-radius: 10px; box-shadow: 0 1px 3px rgba(31,45,61,.06); color: #2b3440; padding: 18px 24px; display: flex; flex-wrap: wrap; align-items: center; gap: 24px; margin-bottom: 18px; }
.fc-tva2-synth-lab { font-size: 11px; letter-spacing: .5px; text-transform: uppercase; color: #7b8493; font-weight: 600; }
.fc-tva2-synth-val { font-size: 21px; font-weight: 700; font-variant-numeric: tabular-nums; margin-top: 3px; color: #1c1c30; }
.fc-tva2-synth-op { font-size: 18px; color: #c3c9d4; font-weight: 400; }
.fc-tva2-synth-net { padding: 8px 18px; border-radius: 9px; background: #fdecea; }
.fc-tva2-synth-net .fc-tva2-synth-lab { color: #c2362b; opacity: .9; }
.fc-tva2-synth-net .fc-tva2-synth-val { color: #c2362b; font-size: 24px; }
.fc-tva2-synth-net--credit { background: #e6f6f0; }
.fc-tva2-synth-net--credit .fc-tva2-synth-lab, .fc-tva2-synth-net--credit .fc-tva2-synth-val { color: #0e8f6e; }
.fc-tva2-synth-cta { margin-left: auto; text-align: right; }
/* Short reason under the disabled CTA, instead of a hidden tooltip. */
.fc-tva2-cta-hint { font-size: 11.5px; line-height: 1.45; color: #97a0ad; margin-top: 8px; max-width: 250px; margin-left: auto; text-align: right; }
.fc-tva2-cta-hint i { color: #c3c9d4; }
/* Declaration page footer actions, right-aligned with even spacing. */
.fc-decl-actions { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 8px; }
/* TVA & CA period filter: align the Soumettre button on the inputs' baseline (bottom of the
   label+input group), not floated above them. */
.fc-tva-submit-col { display: flex; align-items: flex-end; }
.fc-tva-submit-col .fc-tvabtn { height: 38px; }
/* Du/Au date fields: sized to the date, not the column (were full col-4 width),
   and height matched to the Soumettre button (38px). */
input.fc-tva-date { width: 150px; max-width: 100%; height: 38px; }
/* "Du" / "Au" label inline with its input (was stacked above). */
.fc-tva-datefield { display: flex; align-items: center; gap: 8px; }
.fc-tva-datefield > label { white-space: nowrap; }
/* Period block: title (calendar) on top, then the Du/Au range + Appliquer, and the
   shortcut chips below. */
.fc-tva-period-head { margin-bottom: 14px; }
.fc-tva-period-title { font-size: 14px; font-weight: 700; color: #3e5569; margin: 0; display: flex; align-items: center; gap: 7px; }
.fc-tva-period-title i { color: #20aee3; font-size: 16px; }

/* Custom dropdown (declaration filters) — replaces the raw <select>. Opens on first click; the
   native select stays hidden inside for form submission. */
.fc-sel { position: relative; }
.fc-sel select { display: none !important; }
.fc-sel-btn { width: 100%; display: flex; align-items: center; justify-content: space-between; gap: 8px; background: #fff; border: 1px solid #d9dfe7; border-radius: 8px; padding: 8px 12px; font-size: 13px; color: #2b3440; cursor: pointer; text-align: left; transition: border-color .15s ease, box-shadow .15s ease; }
.fc-sel-btn:hover { border-color: #bfe6f6; }
.fc-sel.is-open .fc-sel-btn { border-color: #20aee3; box-shadow: 0 0 0 3px rgba(32,174,227,.15); }
.fc-sel-btn:focus { outline: none; } /* drop the native blue focus ring; the .is-open accent is the indicator */
.fc-sel-label { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.fc-sel-caret { width: 7px; height: 7px; border-right: 2px solid #9aa4b0; border-bottom: 2px solid #9aa4b0; transform: rotate(45deg); margin-top: -3px; flex: none; transition: transform .15s ease; }
.fc-sel.is-open .fc-sel-caret { transform: rotate(-135deg); margin-top: 2px; }
.fc-sel-menu { position: absolute; top: calc(100% + 5px); left: 0; right: 0; background: #fff; border: 1px solid #e6e9f0; border-radius: 8px; box-shadow: 0 8px 24px rgba(31,45,61,.14); padding: 5px; z-index: 30; display: none; max-height: 260px; overflow-y: auto; }
.fc-sel.is-open .fc-sel-menu { display: block; }
.fc-sel-opt { padding: 8px 11px; border-radius: 6px; font-size: 13px; color: #46525f; cursor: pointer; white-space: nowrap; }
.fc-sel-opt::before { content: ""; display: inline-block; width: 15px; height: 12px; vertical-align: middle; background: no-repeat left center; background-size: 12px 12px; }
.fc-sel-opt.is-sel::before { background-image: url("data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20width='12'%20height='12'%20viewBox='0%200%2024%2024'%20fill='none'%20stroke='%231c9fd4'%20stroke-width='3'%20stroke-linecap='round'%20stroke-linejoin='round'%3E%3Cpath%20d='M20%206%209%2017l-5-5'/%3E%3C/svg%3E"); }
.fc-sel-opt:hover { background: #eaf6fc; color: #1c9fd4; }
.fc-sel-opt.is-sel { color: #1c9fd4; font-weight: 600; }

/* PDF preview modal (Aperçu) */
.fc-pdfmodal { position: fixed; inset: 0; background: rgba(20,28,38,.55); display: none; align-items: center; justify-content: center; z-index: 1060; padding: 24px; }
.fc-pdfmodal.is-open { display: flex; }
.fc-pdfmodal-box { background: #fff; border-radius: 12px; box-shadow: 0 24px 64px rgba(0,0,0,.35); width: 100%; max-width: 920px; height: 90vh; display: flex; flex-direction: column; overflow: hidden; }
.fc-pdfmodal-head { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 12px 16px 12px 20px; border-bottom: 1px solid #eef0f4; }
.fc-pdfmodal-head > div { display: flex; align-items: center; gap: 10px; }
.fc-pdfmodal-title { font-weight: 700; font-size: 14px; color: #1f2d3d; }
.fc-pdfmodal-close { border: 0; background: none; font-size: 26px; line-height: 1; color: #9aa4b0; cursor: pointer; padding: 0 6px; }
.fc-pdfmodal-close:hover { color: #46525f; }
.fc-pdfmodal-body { flex: 1; position: relative; background: #f3f5f8; }
.fc-pdfmodal-body iframe { width: 100%; height: 100%; border: 0; }
.fc-pdfmodal-loading { position: absolute; inset: 0; display: flex; align-items: center; justify-content: center; color: #7b8493; font-size: 13px; padding: 20px; text-align: center; }

.fc-tva2-tile-lab { font-weight: 700; font-size: 12px; letter-spacing: .3px; margin-bottom: 4px; }
.fc-tva2-tile--fact .fc-tva2-tile-lab { color: #1c72b8; }
.fc-tva2-tile--enc .fc-tva2-tile-lab { color: #0e8f6e; }

.fc-tva2-fact { color: #1c72b8; }
.fc-tva2-enc { color: #0e8f6e; }
.fc-tva2-matrix th, .fc-tva2-matrix td { text-align: right; font-variant-numeric: tabular-nums; vertical-align: middle; }
.fc-tva2-matrix th:first-child, .fc-tva2-matrix td:first-child { text-align: left; }
.fc-tva2-matrix thead th { font-size: 12px; border-top: 0; }
.fc-tva2-matrix tr.fc-tva2-zero td { color: #c3c9d2; }
.fc-tva2-matrix tr.fc-tva2-matrix-total td { font-weight: 700; border-top: 2px solid #e3e7ee; }

.fc-tva2-tabs { display: flex; gap: 4px; border-bottom: 2px solid #e3e7ee; margin: 4px 0 14px; }
.fc-tva2-tab { padding: 9px 16px; font-size: 13px; font-weight: 600; color: #67757c; border: 0; background: none; cursor: pointer; border-bottom: 2px solid transparent; margin-bottom: -2px; }
.fc-tva2-tab:hover { color: #1c9fd4; }
.fc-tva2-tab.fc-on { color: #1c9fd4; border-bottom-color: #1c9fd4; }
.fc-tva2-tab:focus { outline: none; box-shadow: none; }
.fc-tva2-tab:focus-visible { outline: 2px solid #bfe6f6; outline-offset: 2px; border-radius: 4px; }

@media print {
    /* les onglets ne concernent que l'écran : tout imprimer */
    .fc-tva2-pane { display: block !important; }
}

/* ============================================================
   Déclaration 1010 v2 — barre de période, bandeau résultat,
   états des champs (pages/tva/declaration.blade.php)
   ============================================================ */
.fc-decl-periodbar { display: flex; flex-wrap: wrap; align-items: center; gap: 10px; }
.fc-decl-pill { background: #f1f3f7; border: 1px solid #e0e4ec; border-radius: 999px; padding: 4px 13px; font-size: 12.5px; font-weight: 600; color: #455261; }
.fc-decl-pill b { color: #1f2d3d; }
.fc-decl-link { color: #1c72b8; font-size: 12.5px; font-weight: 600; }
.fc-decl-spacer { flex: 1; }
.fc-decl-filters { margin-top: 14px; border-top: 1px dashed #e3e7ee; padding-top: 12px; }
.fc-decl-basis-help { background: #eef6fc; border-radius: 5px; color: #33607f; font-size: 12.5px; padding: 8px 12px; margin-top: 12px; }
.fc-decl-back { display: inline-flex; align-items: center; gap: 6px; margin-bottom: 14px; font-size: 13px; font-weight: 600; color: #67757c; text-decoration: none; }
.fc-decl-back i { font-size: 16px; }
.fc-decl-back:hover, .fc-decl-back:focus { color: #1c9fd4; text-decoration: none; }

/* Light result banner — same white-card look as the report's synthesis card. */
.fc-decl-hero { background: #fff; border: 1px solid #e6e9f0; border-radius: 10px; box-shadow: 0 1px 3px rgba(31,45,61,.06); color: #2b3440; padding: 18px 24px; display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 14px; }
.fc-decl-hero-lab { font-size: 12px; letter-spacing: .6px; text-transform: uppercase; color: #7b8493; font-weight: 600; }
.fc-decl-hero-val { font-size: 30px; font-weight: 700; font-variant-numeric: tabular-nums; margin-top: 2px; color: #c2362b; }
.fc-decl-hero-val.fc-is-credit { color: #0e8f6e; }
.fc-decl-hero-val small { font-size: 15px; font-weight: 600; color: #a2a7b5; }
.fc-decl-hero-sub { color: #7b8493; font-size: 12.5px; margin-top: 6px; font-variant-numeric: tabular-nums; }
.fc-decl-hero-sub b { color: #1c1c30; font-weight: 600; }
.fc-decl-hero-side { text-align: right; }
.fc-decl-deadline { display: inline-block; background: #eef6fc; border: 1px solid #cfe7f7; color: #1c72b8; border-radius: 999px; padding: 5px 14px; font-size: 12.5px; font-weight: 600; }
.fc-decl-deadline.fc-is-overdue { background: #fde7e4; border-color: #f3c7c1; color: #c2362b; }
.fc-decl-sources { font-size: 12.5px; color: #67757c; margin: 10px 2px 14px; }
.fc-decl-sources a { color: #1c72b8; font-weight: 600; }
/* Official DICP reference links (footer of the déclaration page) */
.fc-decl-refs { margin: 6px 0 4px; padding: 10px 14px; background: #f7f9fb; border: 1px solid #eef0f4; border-radius: 8px; font-size: 12px; color: #67757c; }
.fc-decl-refs-title { display: block; font-weight: 700; color: #46525f; margin-bottom: 5px; }
.fc-decl-refs ul { margin: 0; padding-left: 18px; }
.fc-decl-refs li { margin: 3px 0; }
.fc-decl-refs a { color: #1c72b8; }
.fc-decl-refs a:hover { text-decoration: underline; }

.fc-decl-wrap { position: relative; display: block; }
/* Badge inside the field on the LEFT (amounts are right-aligned, so this side is free) and
   vertically centred — the old top:-8px overlapped the border and the row above. */
.fc-decl-tag { position: absolute; top: 50%; left: 8px; transform: translateY(-50%); border: 0; border-radius: 4px; padding: 2px 6px; font-size: 9px; font-weight: 700; letter-spacing: .4px; text-transform: uppercase; display: none; line-height: 1; }
.fc-decl-wrap.fc-is-auto .fc-decl-tag { display: block; background: #e0f4ee; color: #0e8f6e; cursor: default; }
.fc-decl-wrap.fc-is-edited .fc-decl-tag { display: block; background: #fdf3d7; color: #b98900; cursor: pointer; }
.fc-decl-wrap.fc-is-edited .fc-decl-inp { border-color: #e8a13d; background: #fdf7ec; }
tr.fc-decl-opt td:not(.fc-tvadecl-num) { color: #8a94a1; font-size: 12.5px; }
tr.fc-decl-opt .fc-tvadecl-num { opacity: .55; }
tr.fc-decl-opt .form-control { border-style: dashed; background: #fcfcfd; }
.fc-decl-total { font-size: 15px; font-weight: 700; font-variant-numeric: tabular-nums; color: #1f2d3d; }
.fc-decl-total--due { color: #c2362b; }
   Fresh app-wide buttons — standard rectangular text buttons (primary blue +
   ghost secondary) get the modern look used on the TVA screens: rounded, a
   soft lift on the primary, a light hover on the ghost. Scoped with :not() so
   circular/icon buttons (.btn-circle, .btn-add-circle) keep their shape, and
   the semantic red/green outline buttons keep their colour (shape only).
   ============================================================ */
/* Smooth hover on EVERY button. NB: the primary changes its background COLOUR, and browsers do not
   animate the `background` shorthand — it must be `background-color`, which is why "Sauvegarder"
   snapped while the ghost (which animates color/border) looked fine. Set as a base !important rule
   so no theme declaration can drop it. */
.btn {
    transition: color .15s ease, background-color .15s ease,
                border-color .15s ease, box-shadow .15s ease, opacity .15s ease !important;
}
.btn-danger:not(.btn-circle):not(.btn-add-circle),
.btn-info:not(.btn-circle):not(.btn-add-circle),
.btn-secondary:not(.btn-circle):not(.btn-add-circle),
.btn-outline-secondary:not(.btn-circle):not(.btn-add-circle),
.btn-outline-danger:not(.btn-circle):not(.btn-add-circle),
.btn-outline-success:not(.btn-circle):not(.btn-add-circle),
.btn-outline-primary:not(.btn-circle):not(.btn-add-circle) {
    border-radius: 5px;
    font-weight: 600;
    padding: 9px 18px;
    line-height: 1.2;
}
.btn-sm.btn-danger:not(.btn-circle):not(.btn-add-circle),
.btn-sm.btn-info:not(.btn-circle):not(.btn-add-circle),
.btn-sm.btn-secondary:not(.btn-circle):not(.btn-add-circle),
.btn-sm.btn-outline-secondary:not(.btn-circle):not(.btn-add-circle),
.btn-sm.btn-outline-danger:not(.btn-circle):not(.btn-add-circle),
.btn-sm.btn-outline-success:not(.btn-circle):not(.btn-add-circle) {
    padding: 6px 13px;
    font-size: 12.5px;
}
/* primary (the theme's btn-danger/btn-info are both brand blue) */
.btn-danger:not(.btn-circle):not(.btn-add-circle),
.btn-info:not(.btn-circle):not(.btn-add-circle) {
    background: #20aee3 !important;
    border: 1px solid #20aee3 !important;
    color: #fff !important;
    box-shadow: none;
}
.btn-danger:not(.btn-circle):not(.btn-add-circle):hover,
.btn-danger:not(.btn-circle):not(.btn-add-circle):focus,
.btn-info:not(.btn-circle):not(.btn-add-circle):hover,
.btn-info:not(.btn-circle):not(.btn-add-circle):focus {
    background: #1aa6da !important;
    border-color: #1aa6da !important;
    color: #fff !important;
    box-shadow: 0 1px 3px rgba(32,174,227,.14);
}
/* ghost (secondary) */
.btn-secondary:not(.btn-circle):not(.btn-add-circle),
.btn-outline-secondary:not(.btn-circle):not(.btn-add-circle) {
    background: #fff !important;
    color: #5a6b7b !important;
    border: 1px solid #e2e7ef !important;
    box-shadow: 0 1px 2px rgba(31,45,61,.05);
}
.btn-secondary:not(.btn-circle):not(.btn-add-circle):hover,
.btn-secondary:not(.btn-circle):not(.btn-add-circle):focus,
.btn-outline-secondary:not(.btn-circle):not(.btn-add-circle):hover,
.btn-outline-secondary:not(.btn-circle):not(.btn-add-circle):focus {
    background: #eaf6fc !important;
    color: #1c9fd4 !important;
    border-color: #bfe6f6 !important;
}
/* Respect reduced-motion preferences: instant, no fade. */
@media (prefers-reduced-motion: reduce) {
    .btn { transition: none !important; }
}

/* --------------------------------------------------------------------------
   Required-field indicator
   The "*" after required labels is rendered via CSS (removed from the blade
   labels) so it can be coloured. Applies wherever custom.css loads (tenant +
   landlord); frontend does not load custom.css and has no required labels.
   -------------------------------------------------------------------------- */
label.required::after,
.control-label.required::after {
    content: "*";
    color: #1d96c3;
    margin-left: 2px;
}

/* Invoice / estimate line-item action buttons (Nouveau produit, section title, text block...)
   Softer look requested: a bit more vertical padding, rounder corners, and a tighter group
   indent (the theme sets a large 37px left padding + crushes the buttons to ~1px vertical via
   .btn-rounded-icon !important, so these need matching specificity + !important to win). */
.invoice .invoice-wrapper .invoice-item-actions,
.estimate .invoice-wrapper .invoice-item-actions {
    padding-left: 8px;
}
.invoice .invoice-wrapper .invoice-item-actions .btn,
.estimate .invoice-wrapper .invoice-item-actions .btn {
    padding-top: 7px !important;
    padding-bottom: 7px !important;
    border-radius: 10px !important;
}

/* ============================================================================
   [FENUACOMPTA] select2 restyle — give every select2 the "fc-sel" look (rounded
   control, floating rounded panel, accent hover, checkmark on the selected row)
   WITHOUT replacing select2, so search / optgroups / ajax / multi-select keep
   working. Accent #20aee3. custom.css loads after the theme, so these win by order.
   ============================================================================ */

/* --- single control (the closed box) --- */
.select2-container--bootstrap .select2-selection--single {
    background: #fff;
    border: 1px solid #d9dfe7;
    border-radius: 8px;
    transition: border-color .15s ease, box-shadow .15s ease;
    /* box model (height / padding / line-height) is left to the bootstrap theme so vertical
       centering and left padding stay consistent with the app's other form-control inputs */
}
.select2-container--bootstrap .select2-selection--single:hover { border-color: #bfe6f6; }
.select2-container--bootstrap .select2-selection--single .select2-selection__rendered {
    color: #2b3440;
}
.select2-container--bootstrap .select2-selection--single .select2-selection__placeholder { color: #9aa4b0; }

/* open / focus — accent ring like fc-sel */
.select2-container--bootstrap.select2-container--open .select2-selection--single,
.select2-container--bootstrap.select2-container--focus .select2-selection--single {
    border-color: #20aee3;
    box-shadow: 0 0 0 3px rgba(32, 174, 227, .15);
}
.select2-container--bootstrap .select2-selection { outline: none; } /* kill the native focus outline; accent ring is the indicator */

/* caret — replace select2's triangle with a thin chevron via ::after */
.select2-container--bootstrap .select2-selection--single .select2-selection__arrow {
    top: 0;
    bottom: 0;
    right: 10px;
    width: 14px;
    height: auto;
    display: flex;
    align-items: center;
    justify-content: center;
}
.select2-container--bootstrap .select2-selection--single .select2-selection__arrow b { display: none; }
.select2-container--bootstrap .select2-selection--single .select2-selection__arrow::after {
    content: "";
    width: 7px;
    height: 7px;
    margin-top: -2px; /* optical centering of the down-chevron */
    border-right: 2px solid #9aa4b0;
    border-bottom: 2px solid #9aa4b0;
    transform: rotate(45deg);
    transition: transform .15s ease;
}
.select2-container--bootstrap.select2-container--open .select2-selection--single .select2-selection__arrow::after {
    margin-top: 2px;
    transform: rotate(-135deg);
}
.select2-container--bootstrap .select2-selection--single .select2-selection__clear { color: #9aa4b0; }
.select2-container--bootstrap .select2-selection--single .select2-selection__clear:hover { color: #fb7d88; }

/* --- the dropdown panel --- */
.select2-container--bootstrap .select2-dropdown {
    background: #fff;
    border: 1px solid #e6e9f0;
    border-radius: 8px;
    box-shadow: 0 8px 24px rgba(31, 45, 61, .14);
    padding: 5px;
    overflow: hidden;
    color: #46525f;
}
/* match the TVA fc-sel menu: float with a small gap (theme sets margin-top:-1px = flush), all corners rounded */
.select2-container--bootstrap .select2-dropdown--below { margin-top: 5px; }
.select2-container--bootstrap .select2-dropdown--above { margin-bottom: 5px; }

/* results: options, hover, selected (+ aligned checkmark column like fc-sel) */
.select2-container--bootstrap .select2-results__option {
    padding: 8px 11px;
    border-radius: 6px;
    font-size: 13px;
    color: #46525f;
}
.select2-container--bootstrap .select2-results__option[aria-selected]::before {
    content: "";
    display: inline-block;
    width: 16px;
    height: 12px;
    vertical-align: middle;
    background: no-repeat left center;
    background-size: 12px 12px;
}
.select2-container--bootstrap .select2-results__option[aria-selected="true"]::before {
    background-image: url("data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20width='12'%20height='12'%20viewBox='0%200%2024%2024'%20fill='none'%20stroke='%231c9fd4'%20stroke-width='3'%20stroke-linecap='round'%20stroke-linejoin='round'%3E%3Cpath%20d='M20%206%209%2017l-5-5'/%3E%3C/svg%3E");
}
.select2-container--bootstrap .select2-results__option--highlighted[aria-selected] {
    background: #eaf6fc;
    color: #1c9fd4;
}
.select2-container--bootstrap .select2-results__option[aria-selected="true"] {
    background: transparent;
    color: #1c9fd4;
    font-weight: 600;
}

/* optgroup section header (the "sections" case) */
.select2-container--bootstrap .select2-results__group {
    padding: 8px 11px 4px;
    font-size: 11px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: .04em;
    color: #9aa4b0;
}
/* the group wrapper <li> is itself a .select2-results__option — strip its option padding so
   only its header (.select2-results__group) and its child options carry spacing */
.select2-container--bootstrap .select2-results__option[role="group"] { padding: 0; }

/* search box inside the dropdown */
.select2-container--bootstrap .select2-search--dropdown { padding: 4px 4px 6px; }
.select2-container--bootstrap .select2-search--dropdown .select2-search__field {
    border: 1px solid #e0e5ec;
    border-radius: 6px;
    padding: 7px 10px;
    font-size: 13px;
    outline: none;
}
.select2-container--bootstrap .select2-search--dropdown .select2-search__field:focus {
    border-color: #20aee3;
    box-shadow: 0 0 0 3px rgba(32, 174, 227, .12);
}

/* --- multi-select (tags): match the rounded control; chips already themed accent --- */
.select2-container--bootstrap .select2-selection--multiple {
    border: 1px solid #d9dfe7;
    border-radius: 8px;
    min-height: 38px;
    transition: border-color .15s ease, box-shadow .15s ease;
}
.select2-container--bootstrap.select2-container--open .select2-selection--multiple,
.select2-container--bootstrap.select2-container--focus .select2-selection--multiple {
    border-color: #20aee3;
    box-shadow: 0 0 0 3px rgba(32, 174, 227, .15);
}
.select2-container--bootstrap .select2-selection--multiple .select2-selection__choice { border-radius: 5px; }

/* ===== Empty bill (invoice / estimate) state ===== */
.invoice-table-wrapper.fc-bill-empty {
    position: relative;
    min-height: 180px;
}
.fc-bill-skeleton-row {
    opacity: .5;
}
.fc-bill-skeleton-row td {
    border: 0;
    padding: 10px 12px;
}
.fc-bill-skeleton-line {
    display: flex;
    align-items: center;
    gap: 18px;
}
.fc-bill-skeleton-bar {
    display: inline-block;
    height: 11px;
    border-radius: 6px;
    background: linear-gradient(90deg, #edeef1 25%, #e3e5e9 37%, #edeef1 63%);
    background-size: 400% 100%;
    animation: fcBillShimmer 1.5s ease infinite;
}
.fc-bill-skeleton-bar--desc  { width: 38%; }
.fc-bill-skeleton-bar--sm    { width: 8%; }
.fc-bill-skeleton-bar--md    { width: 12%; }
.fc-bill-skeleton-bar--right { width: 12%; margin-left: auto; }
@keyframes fcBillShimmer {
    0%   { background-position: 100% 0; }
    100% { background-position: -100% 0; }
}
.fc-bill-empty-overlay {
    position: absolute;
    top: 0; left: 0; right: 0; bottom: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    background: rgba(255, 255, 255, .70);
    z-index: 3;
}
.fc-bill-empty-card {
    max-width: 440px;
    text-align: center;
    padding: 18px 26px;
    background: #ffffff;
    border: 1px solid #e6e8ec;
    border-radius: 12px;
    box-shadow: 0 6px 18px rgba(20, 32, 43, .10);
}
.fc-bill-empty-icon {
    width: 38px; height: 38px;
    margin: 0 auto 9px;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: 50%;
    background: #eef2f7;
    color: #7a8695;
    font-size: 15px;
}
.fc-bill-empty-title {
    font-size: 14.5px;
    font-weight: 600;
    color: #1f2a37;
    margin-bottom: 4px;
}
.fc-bill-empty-text {
    font-size: 12.5px;
    line-height: 1.4;
    color: #6b7280;
    margin-bottom: 13px;
}
.fc-bill-empty-btn i {
    margin-right: 7px;
}

/* ─────────────────────────────────────────────────────────────────────────
   Dashboard "Dernière activité" — editorial feed. Scoped to .dashboard-events
   (rendered by pages/timeline/components/misc/dashboard-feed.blade.php); the
   shared project/lead timelines keep their original markup + styling.
   ───────────────────────────────────────────────────────────────────────── */
.dashboard-events.profiletimeline {
    padding-left: 0;
    margin: 16px 0 0;
    border-left: 0;
}
.dashboard-events .sl-item.timeline {
    display: flex;
    gap: 15px;
    margin: 0;
    padding: 16px 2px;
    border-top: 1px solid #edf0f5;
}
.dashboard-events .sl-item.timeline:first-child {
    border-top: 0;
    padding-top: 4px;
}
/* icon node: soft teal circle with a Font Awesome type icon */
.dashboard-events .sl-left {
    float: none;
    margin: 1px 0 0;
    flex: none;
    width: 34px;
    height: 34px;
    border-radius: 50%;
    background: #e7f6fa;
    display: flex;
    align-items: center;
    justify-content: center;
}
.dashboard-events .sl-left i {
    color: #12849f;
    font-size: 15px;
    line-height: 1;
}
.dashboard-events .sl-right {
    float: none;
    margin: 0;
    flex: 1;
    min-width: 0;
}
/* line 1: action (headline) + time (right) */
.dashboard-events .ev-head {
    display: flex;
    align-items: baseline;
    gap: 10px;
}
.dashboard-events .ev-action {
    font-size: 15px;
    font-weight: 700;
    color: #182230;
    letter-spacing: -.005em;
}
.dashboard-events .ev-time {
    margin-left: auto;
    font-size: 12.5px;
    color: #93a0b0;
    white-space: nowrap;
}
/* line 2: resource link · par who (muted) */
.dashboard-events .ev-sub {
    margin-top: 3px;
    font-size: 13px;
    color: #93a0b0;
}
.dashboard-events .ev-sub .x-description {
    display: inline;
    margin: 0;
    padding: 0;
    background: none;
    border: 0;
}
.dashboard-events .ev-sub .x-description a {
    color: #0b7f9b;
    font-weight: 500;
    text-decoration: none;
}
.dashboard-events .ev-sub .x-description a:hover {
    text-decoration: underline;
}
.dashboard-events .x-description + .ev-who::before {
    content: '·';
    margin: 0 7px;
    color: #c9d2de;
}

/* ------------------------------------------------------------------ *
 * Client delete modal (loaded into #commonModal) — .fc-cd
 * ------------------------------------------------------------------ */
/* fixed body min-height so the loading spinner has room while the AJAX body loads (footer hidden,
   buttons live in the body) */
#commonModalContainer.fc-cd-modal #commonModalBody {
    min-height: 200px;
}
.fc-cd {
    text-align: left;
    padding: 10px 6px 6px;
}
/* no-documents state: a compact, centred confirmation reads better than a sparse left-aligned block */
.fc-cd.fc-cd--empty {
    text-align: center;
}
.fc-cd-icon {
    width: 54px;
    height: 54px;
    margin: 2px auto 16px;
    border-radius: 50%;
    background: #fdecec;
    color: #e0505a;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 22px;
    line-height: 1;
}
.fc-cd-lead {
    font-size: 16px;
    font-weight: 700;
    color: #2b3648;
    margin: 0 0 4px;
}
.fc-cd-sub {
    font-size: 13px;
    color: #7a8494;
    margin: 0 0 12px;
}
.fc-cd-summary {
    list-style: none;
    padding: 0;
    margin: 0 0 16px;
    text-align: left;
}
.fc-cd-summary li {
    display: flex;
    align-items: baseline;
    padding: 9px 14px;
    margin-bottom: 6px;
    font-size: 13px;
    color: #5a6472;
    background: #fafbfc;
    border: 1px solid #eef1f4;
    border-radius: 8px;
}
.fc-cd-n {
    font-weight: 700;
    color: #2b3648;
    font-size: 15px;
    min-width: 26px;
}
.fc-cd-label {
    color: #5a6472;
}
.fc-cd-amount {
    margin-left: auto;
    font-weight: 600;
    color: #2b3648;
    font-variant-numeric: tabular-nums;
}
.fc-cd-note {
    font-size: 13px;
    color: #7a8494;
    margin: 0 0 16px;
    line-height: 1.5;
}

/* ------------------------------------------------------------------ *
 * Bill recycle bin modal (invoices/estimates toolbar) — .fc-arch
 * ------------------------------------------------------------------ */
.fc-arch-sub { font-size: 13px; color: #8a94a2; margin: 0 0 20px; line-height: 1.5; }
.fc-arch-tablewrap { overflow-x: auto; }
.fc-arch-table { width: 100%; border-collapse: collapse; }
/* borderless & clean — kill any inherited table borders, keep only horizontal row dividers */
.fc-arch-table th, .fc-arch-table td { border: none !important; background: transparent; }
.fc-arch-table thead th { text-align: left; font-size: 10.5px; letter-spacing: .05em; text-transform: uppercase; color: #929cab; font-weight: 600; padding: 11px 16px; background: #f6f8fa; border: none !important; border-bottom: 1px solid #eef1f4 !important; white-space: nowrap; }
.fc-arch-table thead th.ta-r, .fc-arch-table td.ta-r { text-align: right; }
.fc-arch-table tbody td { padding: 15px 16px; font-size: 13px; color: #5a6472; border-bottom: 1px solid #f2f4f7 !important; vertical-align: middle; }
.fc-arch-table tbody tr:last-child td { border-bottom: none !important; }
.fc-arch-table tbody tr:hover td { background: #f8fafc; }
.fc-arch-num { font-weight: 700; color: #2b3648; font-size: 13.5px; white-space: nowrap; }
.fc-arch-muted { color: #98a2b0; font-size: 12.5px; }
.fc-arch-amt { font-weight: 600; color: #2b3648; font-variant-numeric: tabular-nums; white-space: nowrap; }
.fc-arch-actions { text-align: right; white-space: nowrap; }
.fc-arch-empty { text-align: center; padding: 54px 20px; color: #8a94a2; font-size: 14px; }
.fc-arch-empty-ico { width: 56px; height: 56px; border-radius: 50%; background: #f1f4f7; color: #9aa4b2; display: flex; align-items: center; justify-content: center; font-size: 24px; margin: 0 auto 14px; }

/* Archive modal (invoice/estimate trash → #commonModal): keep a fixed body height so the loading
   spinner has room while the AJAX body loads (the footer is hidden, buttons live in the body). */
#commonModalContainer.fc-arch-modal #commonModalBody { min-height: 200px; padding-top: 8px; }
/* the theme forces .modal-header min-height:58px — tighten the title→content gap for the bin modal */
#commonModalContainer.fc-arch-modal .modal-header { min-height: auto; padding-bottom: 4px; }
/* commonModal title: the theme's h4 line-height is tight (22px on an 18px font), so accents (é)
   in a modal title clip at the rounded top edge (e.g. "Créer une nouvelle facture"). Give it room. */
#commonModal .modal-header { padding-top: 20px; }
#commonModal .modal-header .modal-title { line-height: 1.5; margin: 0; }
/* sortable column headers */
.fc-arch-sort { color: inherit; display: inline-flex; align-items: center; gap: 5px; cursor: pointer; }
.fc-arch-sort:hover { color: #5a6472; }
.fc-arch-sort-ico { font-size: 9px; opacity: .45; }
.fc-arch-sort.is-active { color: #5a6472; }
.fc-arch-sort.is-active .fc-arch-sort-ico { opacity: 1; color: #4aa3d6; }

/* ------------------------------------------------------------------ *
 * Client detail left panel (pages/client/components/misc/leftpanel) — "profil épuré"
 * ------------------------------------------------------------------ */
.fc-cp-top { padding: 22px 22px 20px; text-align: center; background: #eef3f6; }
.fc-cp-logo { margin-bottom: 12px; }
.fc-cp-logo img { max-height: 42px; max-width: 72%; object-fit: contain; }
.fc-cp-name { font-size: 18px; font-weight: 600; letter-spacing: .01em; color: #5a6472; margin: 0; line-height: 1.3; }
.fc-cp-pill { display: inline-flex; align-items: center; font-size: 11.5px; font-weight: 600; padding: 4px 12px; border-radius: 20px; white-space: nowrap; }
.fc-cp-pill.cat { background: #efedfc; color: #7b71e4; }
.fc-cp-pill.ok { background: #e9f6ef; color: #34a96f; }
.fc-cp-pill.ko { background: #fdeeee; color: #e0616a; }
.fc-cp-sep { height: 1px; background: #eef1f5; margin: 4px 22px; }
.fc-cp-rows { padding: 18px 22px 8px; display: flex; flex-direction: column; gap: 16px; }
.fc-cp-row { display: flex; flex-direction: column; gap: 4px; }
.fc-cp-lbl { display: block; font-size: 11px; font-weight: 500; letter-spacing: .01em; color: #9aa6b2; }
.fc-cp-val { font-size: 14.5px; font-weight: 500; color: #4a5561; word-break: break-word; }
.fc-cp-val.muted { color: #b7c0ca; font-weight: 400; }
.fc-cp-tags { display: flex; flex-wrap: wrap; gap: 5px; }
.fc-cp-tags .fc-cp-tag { font-size: 11px; font-weight: 600; color: #5a6472; background: #f0f2f6; border-radius: 20px; padding: 3px 10px; }
.fc-cp-money { padding: 18px 22px; display: flex; flex-direction: column; gap: 20px; }
.fc-cp-mrow { display: grid; grid-template-columns: auto 1fr; align-items: baseline; gap: 18px; }
.fc-cp-mlabel { font-size: 14px; font-weight: 500; color: #7a8494; white-space: nowrap; }
.fc-cp-mval { text-align: right; }
.fc-cp-amt { font-size: 16px; font-weight: 700; color: #46515f; line-height: 1; white-space: nowrap; }
.fc-cp-bar { height: 3px; border-radius: 3px; margin-top: 9px; width: 88px; margin-left: auto; }
.fc-cp-bar.inv { background: #20aee3; }
.fc-cp-bar.pay { background: #26cdad; }
.fc-cp-addr { padding: 18px 22px 24px; display: flex; flex-direction: column; gap: 4px; }

/* ===== Activity log page (full "Voir tout" activity table) ===== */
/* "Voir tout" link on the dashboard activity widget heading */
.fc-view-all { font-size: 12.5px; font-weight: 500; color: #20aee3; white-space: nowrap; }
.fc-view-all:hover { color: #1794c2; text-decoration: none; }

/* filter bar */
.fc-activity-filters { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; margin-bottom: 18px; padding-bottom: 18px; border-bottom: 1px solid #eef1f5; }
.fc-activity-filters .pickadate { width: 150px; }
.fc-activity-filters .select2-container { min-width: 180px; }
.fc-activity-filters .btn { white-space: nowrap; }

/* sortable table */
.fc-activity-table thead th { border-top: 0; border-bottom: 1px solid #eef1f5; font-size: 11px; font-weight: 600; letter-spacing: .02em; text-transform: uppercase; color: #9aa6b2; padding: 10px 12px; }
.fc-activity-table td { vertical-align: middle; padding: 13px 12px; border-top: 1px solid #f2f4f7; }
.fc-activity-table .fc-act-sort { color: #9aa6b2; }
.fc-activity-table .fc-act-sort:hover { color: #46515f; text-decoration: none; }
.fc-act-c-action { white-space: nowrap; }
.fc-act-ico { display: inline-flex; align-items: center; justify-content: center; width: 30px; height: 30px; border-radius: 50%; background: #eaf6fb; color: #20aee3; margin-right: 10px; vertical-align: middle; }
.fc-act-ico i { font-size: 14px; }
.fc-act-label { font-weight: 600; color: #46515f; vertical-align: middle; }
.fc-act-c-item .x-description { margin: 0; }
.fc-act-c-item a { color: #20aee3; }
.fc-act-c-user { color: #6a7583; }
.fc-act-c-date { color: #9aa6b2; font-size: 13px; white-space: nowrap; }

/* ===== Settings > Documentation API (mobile REST API reference) — .fc-apidoc ===== */
.fc-apidoc { color: #46515f; font-size: 14px; line-height: 1.6; }
.fc-apidoc code { font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace; font-size: .85em; background: #eef1f5; color: #3b4656; padding: 1px 6px; border-radius: 5px; }
.fc-apidoc section[id] { scroll-margin-top: 90px; }
/* language toggling — request blocks only; responses are shared */
.fc-apidoc[data-lang="curl"] .fc-apidoc-lang.lang-js { display: none; }
.fc-apidoc[data-lang="js"] .fc-apidoc-lang.lang-curl { display: none; }
/* header */
.fc-apidoc-head { display: flex; align-items: center; gap: 16px; flex-wrap: wrap; padding-bottom: 20px; margin-bottom: 16px; border-bottom: 1px solid #eef1f5; }
.fc-apidoc-head__icon { flex: none; width: 46px; height: 46px; border-radius: 12px; background: linear-gradient(135deg,#20aee3,#1794c2); color: #fff; display: flex; align-items: center; justify-content: center; font-size: 20px; box-shadow: 0 6px 16px -6px rgba(32,174,227,.6); }
.fc-apidoc-head__txt { flex: 1 1 260px; }
.fc-apidoc-head__title { margin: 0; font-size: 19px; font-weight: 700; color: #2b3542; }
.fc-apidoc-head__sub { margin: 3px 0 0; font-size: 13.5px; color: #8a95a3; }
.fc-apidoc-head__base { margin-left: auto; }
.fc-apidoc-head__baselbl { display: block; font-size: 10.5px; font-weight: 700; text-transform: uppercase; letter-spacing: .04em; color: #9aa6b2; margin-bottom: 4px; }
/* toolbar: section nav + language switch */
.fc-apidoc-bar { display: flex; align-items: center; gap: 14px; flex-wrap: wrap; justify-content: space-between; padding: 4px 0 14px; margin-bottom: 22px; border-bottom: 1px solid #eef1f5; }
.fc-apidoc-toc { display: flex; flex-wrap: wrap; gap: 6px; }
.fc-apidoc-toc__a { font-size: 12.5px; font-weight: 600; color: #6a7583; padding: 5px 12px; border-radius: 20px; background: #f2f4f7; }
.fc-apidoc-toc__a:hover { background: #e6f6fc; color: #1794c2; text-decoration: none; }
.fc-apidoc-langbar { display: inline-flex; background: #eef1f5; border-radius: 8px; padding: 3px; }
.fc-apidoc-langtab { border: 0; background: none; font-size: 12.5px; font-weight: 600; color: #7a8494; padding: 5px 14px; border-radius: 6px; cursor: pointer; }
.fc-apidoc-langtab.is-active { background: #fff; color: #2b3542; box-shadow: 0 1px 3px rgba(20,30,50,.12); }
/* prerequisites */
.fc-apidoc-prereq { list-style: none; margin: 0 0 30px; padding: 14px 18px; background: #f7f9fb; border: 1px solid #eef1f5; border-radius: 10px; display: grid; grid-template-columns: repeat(auto-fit, minmax(250px, 1fr)); gap: 6px 22px; }
.fc-apidoc-prereq li { font-size: 13px; }
.fc-apidoc-prereq li i { color: #34a96f; margin-right: 6px; font-size: 11px; }
/* section */
.fc-apidoc-section { margin-bottom: 38px; }
.fc-apidoc-h { display: flex; align-items: center; gap: 10px; font-size: 16px; font-weight: 700; color: #2b3542; margin: 0 0 6px; }
.fc-apidoc-h__num { flex: none; width: 24px; height: 24px; border-radius: 50%; background: #20aee3; color: #fff; font-size: 12px; font-weight: 700; display: inline-flex; align-items: center; justify-content: center; }
.fc-apidoc-p { color: #6a7583; margin: 0 0 14px; }
.fc-apidoc-p--tight { margin-top: 22px; }
/* endpoint line */
.fc-apidoc-ep { display: flex; align-items: center; gap: 10px; margin: 10px 0; flex-wrap: wrap; }
.fc-apidoc-path { font-family: ui-monospace, Menlo, Consolas, monospace; font-size: 14px; font-weight: 600; color: #2b3542; }
.fc-apidoc-ep__note { font-size: 11.5px; color: #9aa6b2; font-style: italic; }
/* method badge */
.fc-apidoc-method { flex: none; display: inline-block; min-width: 50px; text-align: center; font-size: 10.5px; font-weight: 700; letter-spacing: .03em; padding: 3px 8px; border-radius: 5px; color: #fff; }
.fc-apidoc-method.get { background: #16a34a; }
.fc-apidoc-method.post { background: #2563eb; }
.fc-apidoc-method.put { background: #d97706; }
.fc-apidoc-method.patch { background: #0891b2; }
.fc-apidoc-method.delete { background: #dc2626; }
/* code block with header bar */
.fc-apidoc-codewrap { margin: 10px 0; border-radius: 9px; overflow: hidden; box-shadow: 0 1px 2px rgba(20,30,50,.05); }
.fc-apidoc-codebar { display: flex; align-items: center; justify-content: space-between; gap: 10px; background: #141a24; padding: 7px 12px; border-bottom: 1px solid #2a323f; }
.fc-apidoc-codebar__lang { font-size: 11px; font-weight: 600; letter-spacing: .02em; color: #9aa6b2; display: inline-flex; align-items: center; gap: 6px; }
.fc-apidoc-copy { border: 0; background: rgba(255,255,255,.06); color: #b7c2d0; font-size: 11.5px; font-weight: 600; padding: 4px 10px; border-radius: 6px; cursor: pointer; display: inline-flex; align-items: center; gap: 6px; transition: background .15s, color .15s; }
.fc-apidoc-copy:hover { background: rgba(255,255,255,.13); color: #fff; }
.fc-apidoc-copy.is-done { background: #1f6f4a; color: #eafaf1; }
.fc-apidoc-copy--icon { padding: 4px 8px; }
.fc-apidoc-code { background: #1b2230; border: 0; margin: 0; padding: 14px 16px; overflow-x: auto; }
.fc-apidoc-code code { display: block; background: none !important; color: #e6edf3 !important; padding: 0 !important; font-size: 12.5px; line-height: 1.6; white-space: pre; }
.fc-tk-key { color: #7ec7ff; }
.fc-apidoc-status { display: inline-block; font-size: 10.5px; font-weight: 700; padding: 1px 7px; border-radius: 4px; background: rgba(52,169,111,.18); color: #4ade80; }
/* inline base url */
.fc-apidoc-codewrap--inline { display: inline-flex; align-items: stretch; margin: 0; border: 1px solid #2a323f; }
.fc-apidoc-code--inline { padding: 6px 10px; }
.fc-apidoc-code--inline code { font-size: 12px; white-space: nowrap; }
.fc-apidoc-codewrap--inline .fc-apidoc-copy--icon { border-radius: 0; background: #141a24; color: #9aa6b2; }
.fc-apidoc-codewrap--inline .fc-apidoc-copy--icon:hover { color: #fff; }
/* note */
.fc-apidoc-note { background: #eef8fc; border-left: 3px solid #20aee3; border-radius: 0 6px 6px 0; padding: 10px 14px; margin: 12px 0; font-size: 13px; color: #4a5561; }
.fc-apidoc-chip { background: #2b3542 !important; color: #e6edf3 !important; padding: 3px 8px !important; border-radius: 5px; font-size: 12px; }
/* steps */
.fc-apidoc-step { border: 1px solid #eef1f5; border-radius: 12px; padding: 18px 20px; margin-bottom: 16px; background: #fff; }
.fc-apidoc-step__head { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; margin-bottom: 12px; }
.fc-apidoc-step__num { flex: none; width: 26px; height: 26px; border-radius: 50%; background: #2b3542; color: #fff; font-size: 12px; font-weight: 700; display: inline-flex; align-items: center; justify-content: center; }
.fc-apidoc-step__title { font-size: 15px; font-weight: 700; color: #2b3542; margin-right: 4px; }
/* fields table */
.fc-apidoc-fields { width: 100%; margin: 4px 0 12px; border-collapse: collapse; }
.fc-apidoc-fields td { padding: 7px 10px; border-bottom: 1px solid #f2f4f7; font-size: 13px; vertical-align: top; }
.fc-apidoc-fields td:first-child { white-space: nowrap; width: 1%; }
.fc-apidoc-fields td:nth-child(2) { white-space: nowrap; width: 1%; }
.fc-apidoc-fields__ind { padding-left: 26px !important; position: relative; }
.fc-apidoc-fields__ind::before { content: '\21B3'; position: absolute; left: 9px; color: #c2ccd8; }
.fc-apidoc-tag { display: inline-block; font-size: 10.5px; font-weight: 600; padding: 1px 7px; border-radius: 4px; white-space: nowrap; }
.fc-apidoc-tag.req { background: #fdecec; color: #dc2626; }
.fc-apidoc-tag.opt { background: #eef1f5; color: #8a95a3; }
/* endpoint reference accordion */
.fc-apidoc-acc { border: 1px solid #eef1f5; border-radius: 10px; margin-bottom: 10px; overflow: hidden; }
.fc-apidoc-acc__sum { list-style: none; cursor: pointer; padding: 12px 16px; font-size: 14px; font-weight: 700; color: #2b3542; display: flex; align-items: center; gap: 9px; background: #f7f9fb; }
.fc-apidoc-acc__sum::-webkit-details-marker { display: none; }
.fc-apidoc-acc__chev { color: #9aa6b2; font-size: 11px; transition: transform .18s; }
.fc-apidoc-acc[open] .fc-apidoc-acc__chev { transform: rotate(90deg); }
.fc-apidoc-acc[open] .fc-apidoc-acc__sum { border-bottom: 1px solid #eef1f5; }
.fc-apidoc-acc__count { margin-left: auto; font-size: 11px; font-weight: 600; color: #8a95a3; background: #e9edf2; border-radius: 20px; padding: 1px 9px; }
/* reference table */
.fc-apidoc-table { width: 100%; border-collapse: collapse; }
.fc-apidoc-table td { padding: 8px 14px; border-top: 1px solid #f2f4f7; font-size: 13px; vertical-align: middle; }
.fc-apidoc-table tr:first-child td { border-top: 0; }
.fc-apidoc-table td:first-child { width: 1%; }
/* conventions — full-width rows (definition list) */
.fc-apidoc-conv { margin: 0; border: 1px solid #eef1f5; border-radius: 12px; overflow: hidden; }
.fc-apidoc-conv__row { display: grid; grid-template-columns: 190px 1fr; gap: 18px; padding: 14px 18px; border-top: 1px solid #f2f4f7; align-items: start; }
.fc-apidoc-conv__row:first-child { border-top: 0; }
.fc-apidoc-conv dt { font-size: 13.5px; font-weight: 700; color: #2b3542; display: flex; align-items: center; gap: 8px; }
.fc-apidoc-conv dt i { color: #20aee3; }
.fc-apidoc-conv dd { margin: 0; font-size: 13px; color: #6a7583; }
@media (max-width: 640px) { .fc-apidoc-conv__row { grid-template-columns: 1fr; gap: 5px; } }

/* ============================================================================
 * [Settings > Détails de l'entreprise] grouped-section layout.
 * Replaces the old full-width stacked inputs (fine on mobile, far too wide on
 * desktop) with themed sections + a 2-column grid, capped so fields fit content.
 * Bootstrap .form-row / .col-md-6 handle the responsive columns (stack on mobile).
 * ==========================================================================*/
.fc-company-form { max-width: 1100px; }
/* sections tile into 2 balanced columns on desktop, using the horizontal space; break-inside
   keeps each section whole; collapses to a single column below the lg breakpoint. */
.fc-company-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 22px 26px; align-items: start; }
/* white cards with a light crisp border (no shadow, no grey fill) — distinguishes the four
   groups cleanly and stays light; the border is the only delineation. */
.fc-company-section { background: #fff; border: 1px solid #dde4ec; border-radius: 10px; padding: 20px 22px 8px; }
/* header: accent icon chip + label */
.fc-company-section-title { display: flex; align-items: center; gap: 11px; margin: 0 0 16px; font-size: 12px; font-weight: 700; letter-spacing: .05em; text-transform: uppercase; color: #46586b; }
.fc-company-ico { display: inline-flex; align-items: center; justify-content: center; flex: 0 0 auto; width: 30px; height: 30px; border-radius: 9px; background: #e7f6fc; color: #20aee3; font-size: 13px; }
.fc-company-hint { margin: -8px 0 18px; font-size: 12.5px; color: #9aa5b1; }
/* tiny help note (under an input, or under a section title), with a leading (i) icon */
.fc-company-note { display: flex; align-items: flex-start; gap: 6px; margin: 6px 2px 12px; font-size: 11px; line-height: 1.45; color: #9aa5b1; }
.fc-company-note i { flex: 0 0 auto; margin-top: 2px; font-size: 10.5px; color: #20aee3; }
.fc-company-narrow { max-width: 320px; }
@media (max-width: 991.98px) { .fc-company-grid { grid-template-columns: 1fr; } }

/* ============================================================================
 * [Settings home] card-grid landing (replaces the empty "select an item" page).
 * Cards open sections via the existing AJAX nav mechanism (data-url).
 * ==========================================================================*/
.fc-settings-home { max-width: 1120px; }
.fc-settings-intro { margin-bottom: 6px; }
.fc-settings-intro h4 { margin: 0 0 4px; font-size: 18px; font-weight: 700; color: #2b3542; }
.fc-settings-intro p { margin: 0; font-size: 14px; color: #8a95a3; }
.fc-settings-group { display: flex; align-items: center; gap: 12px; margin: 26px 0 13px; font-size: 12px; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; color: #9aa5b1; }
.fc-settings-group::after { content: ""; flex: 1; height: 1px; background: #e7ebf1; }
.fc-settings-cards { display: grid; grid-template-columns: repeat(3, 1fr); gap: 14px; }
.fc-settings-card { display: flex; gap: 13px; align-items: flex-start; padding: 15px 16px; border: 1px solid #e4e9f0; border-radius: 11px; background: #fff; text-decoration: none; color: inherit; transition: border-color .12s ease, box-shadow .12s ease; }
.fc-settings-card:hover, .fc-settings-card:focus { border-color: #20aee3; box-shadow: 0 6px 18px rgba(32, 174, 227, .12); text-decoration: none; color: inherit; }
.fc-settings-ic { flex: 0 0 auto; width: 38px; height: 38px; border-radius: 10px; background: #e7f6fc; color: #20aee3; display: flex; align-items: center; justify-content: center; font-size: 16px; }
.fc-settings-txt { display: flex; flex-direction: column; min-width: 0; }
.fc-settings-tt { font-size: 14px; font-weight: 700; color: #2b3542; margin-bottom: 3px; }
.fc-settings-ds { font-size: 12px; color: #7c8794; line-height: 1.4; }
@media (max-width: 900px) { .fc-settings-cards { grid-template-columns: 1fr 1fr; } }
@media (max-width: 600px) { .fc-settings-cards { grid-template-columns: 1fr; } }

/* [Settings] "Quitter" exit control in the dark top-left header — a clean pill button */
.exit-panel { display: flex; align-items: center; height: 100%; padding: 0 14px; margin: 0; }
.fc-exit-settings { display: inline-flex; align-items: center; gap: 9px; padding: 8px 15px; border-radius: 8px; background: rgba(255, 255, 255, .08); color: #d6e8f4 !important; font-size: 13.5px; font-weight: 600; line-height: 1; transition: background .12s ease, color .12s ease; }
.fc-exit-settings:hover, .fc-exit-settings:focus { background: rgba(255, 255, 255, .16); color: #fff !important; text-decoration: none; }
.fc-exit-settings i { font-size: 14px; color: inherit; }
/* [Settings] make the "Réglages" breadcrumb crumb read as a clickable link (back to the card overview) */
.settings-crumb-link a { color: #20aee3; }
.settings-crumb-link a:hover { color: #1183ab; text-decoration: underline; }

/* [Settings] "Accueil des réglages" button in the white top bar — same dark-pill style as "Quitter"
   (cog icon), offset a little to the right. No .nav-link class so the theme font can't inflate it. */
.fc-settings-home-top { display: inline-flex; align-items: center; gap: 9px; margin-left: 24px; padding: 8px 16px; border-radius: 8px; background: #3a4759; color: #d6e8f4; font-size: 13.5px; font-weight: 600; line-height: 1; transition: background .12s ease, color .12s ease; }
.fc-settings-home-top i { font-size: 13px; color: inherit; }
.fc-settings-home-top:hover, .fc-settings-home-top:focus { background: #47566c; color: #fff; text-decoration: none; }

/* ============================================================================
 * [Settings > Logo] one logo + live invoice preview (desktop only).
 * ==========================================================================*/
.fc-logo-wrap { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 22px; align-items: start; }
.fc-logo-card { background: #fff; border: 1px solid #dde4ec; border-radius: 11px; padding: 22px 24px; }
.fc-logo-title { display: flex; align-items: center; gap: 11px; margin: 0 0 4px; font-size: 12px; font-weight: 700; letter-spacing: .05em; text-transform: uppercase; color: #46586b; }
.fc-logo-ico { flex: 0 0 auto; width: 30px; height: 30px; border-radius: 9px; background: #e7f6fc; color: #20aee3; display: flex; align-items: center; justify-content: center; font-size: 13px; }
.fc-logo-hint { margin: 0 0 18px; font-size: 12.5px; color: #9aa5b1; }
.fc-logo-frame { border: 1px dashed #dbe2ea; border-radius: 10px; background: #fbfcfd; display: flex; align-items: center; justify-content: center; height: 130px; margin-bottom: 18px; }
.fc-logo-frame img { max-width: 72%; max-height: 74px; }
.fc-logo-meta { margin: 16px 0 0; font-size: 12px; color: #9aa5b1; line-height: 1.6; }
.fc-logo-meta b { color: #7c8794; }
/* live invoice preview */
.fc-logo-preview { border: 1px solid #dde4ec; border-radius: 11px; background: linear-gradient(180deg, #f3fbfe, #fff); overflow: hidden; }
.fc-logo-preview-cap { font-size: 11px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: #9aa5b1; padding: 12px 18px; border-bottom: 1px solid #e7ebf1; }
.fc-logo-preview-cap i { color: #20aee3; margin-right: 6px; }
.fc-logo-doc { background: #fff; margin: 18px; border: 1px solid #eef1f5; border-radius: 8px; box-shadow: 0 8px 22px rgba(20, 30, 45, .09); padding: 22px 22px 26px; }
.fc-logo-doc-logorow { margin-bottom: 18px; }
.fc-logo-doc-logo { max-width: 160px; max-height: 48px; }
.fc-logo-doc-addr { display: flex; justify-content: space-between; gap: 20px; margin-bottom: 22px; }
.fc-logo-doc-client { text-align: right; }
.fc-logo-doc-coname { font-size: 13px; font-weight: 700; color: #20aee3; margin-bottom: 4px; }
.fc-logo-doc-coname--dark { color: #2b3542; }
.fc-logo-doc-clabel { font-size: 11px; font-weight: 700; color: #2b3542; margin-bottom: 3px; }
.fc-logo-doc-addrtxt { font-size: 11px; color: #8a95a3; line-height: 1.6; }
.fc-logo-doc-title { font-size: 22px; font-weight: 800; color: #2b3542; letter-spacing: 1px; }
.fc-logo-doc-meta { font-size: 11px; color: #9aa5b1; margin-top: 2px; }
/* line-items table skeleton (mirrors the invoice: Description / Qté / P.U. / Montant) */
.fc-logo-doc-table { margin-top: 18px; }
.fc-logo-doc-tr { display: grid; grid-template-columns: 1fr 40px 60px 66px; gap: 12px; align-items: center; padding: 9px 0; border-bottom: 1px solid #f2f4f7; }
.fc-logo-doc-tr > * { justify-self: end; }
.fc-logo-doc-tr > *:first-child { justify-self: start; }
.fc-logo-doc-tr--head { padding: 7px 0; border-bottom: 1px solid #e7ebf1; }
.fc-logo-doc-tr--head span { font-size: 9px; font-weight: 700; letter-spacing: .04em; text-transform: uppercase; color: #b7c0cb; }
/* shimmering skeleton bars */
.fc-sk { display: block; height: 8px; border-radius: 5px; background: linear-gradient(90deg, #eef1f5 25%, #f6f8fb 37%, #eef1f5 63%); background-size: 400% 100%; animation: fcSkShimmer 1.4s ease infinite; }
.fc-sk-lg { width: 88%; }
.fc-sk-md { width: 62%; }
.fc-sk-n { width: 30px; }
.fc-sk-num { width: 56px; }
.fc-sk--accent { background: linear-gradient(90deg, #bfe6f6 25%, #ddf2fb 37%, #bfe6f6 63%); background-size: 400% 100%; }
@keyframes fcSkShimmer { 0% { background-position: 100% 0; } 100% { background-position: 0 0; } }
@media (prefers-reduced-motion: reduce) { .fc-sk { animation: none; } }
/* totals block (right-aligned, like the invoice) */
.fc-logo-doc-totals { margin: 16px 0 0 auto; width: 210px; }
.fc-logo-doc-totrow { display: flex; justify-content: space-between; align-items: center; padding: 6px 0; font-size: 11px; color: #8a95a3; }
.fc-logo-doc-totrow--grand { border-top: 1px solid #e7ebf1; margin-top: 4px; padding-top: 9px; font-size: 13px; font-weight: 700; color: #2b3542; }
@media (max-width: 860px) { .fc-logo-wrap { grid-template-columns: 1fr; } .fc-logo-preview { display: none; } }

/* single app logo in the sidebar header — shown expanded (185px) AND collapsed (scaled to ~50px) */
/* Single sidebar logo (from the /logos page) — cap BOTH dimensions so any aspect
   ratio (wide wordmark or near-square mark) fits the header without overflowing
   onto the menu. width/height auto keeps the aspect ratio; the smaller cap wins. */
.fix-sidebar .fc-app-logo { display: inline-block; width: auto; height: auto; max-width: 185px; max-height: 46px; }
.fix-sidebar.mini-sidebar .fc-app-logo { max-width: 48px; max-height: 40px; }
/* ===== Bon de sortie (goods-issue note) — .fc-bs ===== */
/* create form: articles as stacked cards (mobile-first, never scrolls sideways) */
.fc-bs-cards { display: flex; flex-direction: column; gap: 10px; }
.fc-bs-card { border: 1px solid #e9edf2; border-radius: 10px; background: #fbfcfe; padding: 12px; }
.fc-bs-card .select2-container { width: 100% !important; min-width: 0; }
.fc-bs-card-foot { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-top: 10px; }
.fc-bs-qty { display: inline-flex; align-items: stretch; height: 40px; border: 1px solid #d7dee6; border-radius: 8px; overflow: hidden; background: #fff; }
.fc-bs-qty-btn { border: 0; background: #f2f6fa; color: #2b3542; width: 40px; font-size: 20px; line-height: 1; cursor: pointer; display: flex; align-items: center; justify-content: center; -webkit-user-select: none; user-select: none; }
.fc-bs-qty-btn:hover { background: #e6edf4; }
.fc-bs-qty-btn:active { background: #d9e3ec; }
.fc-bs-qty-input { border: 0; width: 62px; text-align: center; font-size: 15px; font-weight: 600; color: #2b3542; -moz-appearance: textfield; }
.fc-bs-qty-input:focus { outline: 0; }
.fc-bs-qty-input::-webkit-outer-spin-button, .fc-bs-qty-input::-webkit-inner-spin-button { -webkit-appearance: none; margin: 0; }
.fc-bs-del { border: 0; background: #fdecec; color: #e0554e; width: 40px; height: 40px; border-radius: 8px; font-size: 16px; cursor: pointer; display: inline-flex; align-items: center; justify-content: center; flex: 0 0 auto; }
.fc-bs-del:hover { background: #f9dad9; color: #d23b33; }
/* detail: read-only article list (name -> quantity + unit, no prices; stacks fine on mobile) */
.fc-bs-lines-title { font-size: 13px; font-weight: 600; text-transform: uppercase; letter-spacing: .03em; color: #9aa6b2; margin: 22px 0 10px; }
.fc-bs-lines { border: 1px solid #eef1f5; border-radius: 10px; overflow: hidden; }
.fc-bs-line { display: flex; align-items: center; justify-content: space-between; gap: 14px; padding: 12px 16px; border-bottom: 1px solid #f2f4f7; }
.fc-bs-line:last-child { border-bottom: 0; }
.fc-bs-line:nth-child(even) { background: #fbfcfe; }
.fc-bs-line-name { font-weight: 500; color: #2b3542; }
.fc-bs-line-qty { flex: 0 0 auto; font-weight: 700; color: #2b3542; white-space: nowrap; }
.fc-bs-line-unit { font-weight: 500; color: #9aa6b2; font-size: 12.5px; margin-left: 5px; }
.fc-bs-sigwrap { border: 1px dashed #cfd8e0; border-radius: 8px; background: #fff; overflow: hidden; }
.fc-bs-sig { width: 100%; height: 190px; display: block; touch-action: none; cursor: crosshair; }
.fc-bs-error { font-size: 13px; font-weight: 500; }
.fc-bs .select2-container { min-width: 200px; }
/* history table: headers + status badge inherit the app's list-table + label styling via .contact-list
   and .label-outline-success (see wrapper/ajax). Cell links use the theme blue like the BS number. */
.fc-bs-msort { margin-bottom: 14px; }
.fc-bs-msort label { display: block; font-size: 12px; font-weight: 600; color: #9aa6b2; margin-bottom: 4px; }
/* filter bar (same layout as the activity table's .fc-activity-filters) */
.fc-bs-filters { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; margin-bottom: 18px; padding-bottom: 18px; border-bottom: 1px solid #eef1f5; }
.fc-bs-filters .pickadate { width: 140px; }
.fc-bs-filters .select2-container { min-width: 180px; }
.fc-bs-filters .btn { white-space: nowrap; }
/* borderless row-action icons (view / archive / unarchive) */
.fc-bs-act { display: inline-flex; align-items: center; justify-content: center; width: 30px; height: 30px; padding: 0; border: 0; background: none; font-size: 17px; line-height: 1; cursor: pointer; opacity: .8; vertical-align: middle; }
.fc-bs-act:hover { opacity: 1; }
.fc-bs-act:focus { outline: 0; }
/* detail */
.fc-bs-detail-head { display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 8px; padding-bottom: 14px; margin-bottom: 14px; border-bottom: 1px solid #eef1f5; }
.fc-bs-detail-num { font-size: 20px; font-weight: 700; color: #2b3542; }
.fc-bs-lock { font-size: 11.5px; color: #9aa6b2; margin-left: 8px; }
.fc-bs-lock i { font-size: 11px; }
.fc-bs-meta { width: 100%; }
.fc-bs-meta td { padding: 6px 0; font-size: 14px; vertical-align: top; }
.fc-bs-meta-k { width: 130px; color: #9aa6b2; font-size: 12.5px; }
.fc-bs-doc-icon { font-size: 40px; color: #20aee3; margin: 8px 0 6px; }
.fc-bs-doc-name { font-size: 15px; font-weight: 600; color: #2b3542; }
.fc-bs-table td a { color: #20aee3; }
.fc-bs-table td a b { color: #20aee3; }

/* mobile (employee's phone): turn the history table into stacked cards so it never scrolls sideways.
   Each row becomes a card and each cell shows its data-label -> value. Headers are hidden (sorting is
   provided by .fc-bs-msort above the list). */
@media (max-width: 767px) {
    .fc-bs-table thead { display: none; }
    .fc-bs-table, .fc-bs-table tbody, .fc-bs-table tfoot, .fc-bs-table tr, .fc-bs-table td { display: block; width: 100%; }
    .fc-bs-table tbody tr { border: 1px solid #e9edf2; border-radius: 10px; background: #fff; margin-bottom: 10px; padding: 4px 2px; box-shadow: 0 1px 2px rgba(20,34,54,.03); }
    .fc-bs-table tbody td { border: 0 !important; display: flex; align-items: center; justify-content: space-between; gap: 14px; padding: 8px 14px; text-align: right; white-space: normal; }
    .fc-bs-table tbody td::before { content: attr(data-label); flex: 0 0 auto; color: #9aa6b2; font-size: 10.5px; font-weight: 600; text-transform: uppercase; letter-spacing: .02em; text-align: left; }
    .fc-bs-table tbody td:first-child { border-bottom: 1px solid #f2f4f7 !important; padding-bottom: 10px; margin-bottom: 2px; }
    .fc-bs-table tbody td:first-child a b { font-size: 15px; }
    .fc-bs-table tfoot td { text-align: center; padding: 6px 0; border: 0 !important; }
    /* the row actions are cramped in a card; hide them and let a tap open the detail instead */
    .fc-bs-table tbody td[data-label="Actions"] { display: none; }
    .fc-bs-table tbody tr.fc-bs-row-link { cursor: pointer; }
    /* filter bar: stack every control full-width so it never wraps awkwardly */
    .fc-bs-filters { flex-direction: column; align-items: stretch; }
    .fc-bs-filters > *, .fc-bs-filters .pickadate { width: 100%; }
    .fc-bs-filters .select2-container { width: 100% !important; min-width: 0; }
}
/* small screens: keep the create-form signature + detail meta comfortable */
@media (max-width: 640px) {
    .fc-bs-sig { height: 200px; }
    .fc-bs-meta-k { width: 100px; }
}
