:root{--base-font-size:14px;--nav-bg-color:#001f3f;--nav-link-color:#fff;--nav-link-hover-color:#cbd5e1;--secondary:#475569;--dark:#0f172a;--success:#059669;--danger:#dc2626;--warning:#d97706;--info:var(--nav-bg-color);--primary-color:var(--nav-bg-color);--secondary-color:#2d3748;--success-color:#28a745;--info-color:#17a2b8;--warning-color:#ffc107;--danger-color:#dc3545;--light-color:#f8f9fa;--dark-color:var(--nav-bg-color);--bs-btn-close-color:#0f172a;--primary-hover:#23272b;--light-gray:#f8f9fa;--border-color:#e9ecef;--primary-light:#495057;--primary-dark:#212529;--light-bg:#f8f9fa;--shadow-sm:0 2px 4px #00000014;--shadow-md:0 4px 12px #0000001f;--shadow-lg:0 8px 24px #00000026;--gradient-primary:linear-gradient(135deg, var(--primary-color) 0%, var(--primary-light) 100%);--gradient-light:linear-gradient(135deg, #fff 0%, #f8f9fa 100%)}.page-gradient{background:linear-gradient(135deg,#f8f9fa 0%,#e3f2fd 100%);min-height:100vh}.styled-input{color:#343a40;background-color:#fff;border:1px solid #dee2e6;border-radius:8px;height:42px;padding:.5rem 1rem;font-size:1rem;transition:border-color .15s ease-in-out,box-shadow .15s ease-in-out}textarea.styled-input{resize:vertical;min-height:100px}.styled-input:focus,.form-select:focus{border-color:#343a40;box-shadow:0 0 0 .2rem #343a4026}.table>:not(caption)>*>*{vertical-align:middle}.invalid-feedback{font-size:.875rem}.navbar-custom{background-color:var(--nav-bg-color,#001f3f);color:var(--nav-link-color,#fff)}.navbar-custom .navbar-nav .nav-link,.navbar-custom .navbar-brand{color:var(--nav-link-color,#fff);font-size:.875rem}.navbar-custom .navbar-toggler-icon{color:var(--nav-link-color,#fff);background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 30'%3e%3cpath stroke='currentColor' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e")}.navbar-custom .nav-link:hover,.navbar-custom .nav-link:focus{color:var(--nav-link-hover-color,#cbd5e1)}.navbar-custom .btn:hover,.navbar-custom .btn:focus{background-color:var(--nav-link-hover-color,#cbd5e1);border-color:var(--nav-link-hover-color,#cbd5e1)}.text-nav{color:var(--nav-link-color,#fff)}.dashboard-page-container{padding-top:clamp(.75rem,1.2vw,1.5rem);padding-bottom:clamp(1.5rem,3vw,2.5rem)}.dashboard-welcome{margin-bottom:clamp(1.25rem,2.5vw,2rem)}.dashboard-welcome__title{margin-bottom:.35rem}.dashboard-welcome__company{color:var(--bs-gray-600);margin-bottom:0}.dashboard-stat-card{background-color:var(--bs-white);border-radius:var(--bs-border-radius-lg);box-shadow:var(--bs-box-shadow);border-left:4px solid;padding:1.5rem}.dashboard-stat-card-primary{border-color:var(--bs-gray-500)}.dashboard-stat-card-success{border-color:var(--bs-success)}.dashboard-stat-card-warning{border-color:var(--bs-warning)}.dashboard-stat-card-danger{border-color:var(--bs-danger)}.chart-container{background-color:var(--bs-white);border-radius:var(--bs-border-radius-lg);box-shadow:var(--bs-box-shadow);height:16rem;padding:1rem}.module-section-title{color:var(--bs-gray-900);font-weight:600}.module-section-description{color:var(--bs-gray-600);font-size:.95rem}.module-grid{grid-auto-rows:1fr}.module-tile{background:linear-gradient(180deg, #fffffff5 0%, var(--bs-white) 100%);border:1px solid var(--bs-border-color);border-top-width:4px;border-top-color:var(--bs-primary);box-shadow:var(--bs-box-shadow-sm);border-radius:1rem;padding:1.5rem;transition:transform .2s,box-shadow .2s;position:relative}.module-tile:hover{box-shadow:var(--bs-box-shadow);transform:translateY(-4px)}.module-icon{color:inherit;font-size:2.5rem}.module-label{color:var(--bs-gray-800);font-weight:600}.module-link{padding-inline:1.5rem;font-weight:600}.module-link:hover{transform:translateY(-1px)}.module-theme-primary{border-top-color:var(--bs-primary)}.module-theme-secondary{border-top-color:var(--bs-secondary)}.module-theme-success{border-top-color:var(--bs-success)}.module-theme-info{border-top-color:var(--bs-info)}.module-theme-warning{border-top-color:var(--bs-warning)}.module-theme-danger{border-top-color:var(--bs-danger)}.module-theme-dark{border-top-color:var(--bs-dark)}.bi-dashboard,.bi-section-page{background:linear-gradient(#f8f9fa 0%,#fff 60%);border-radius:16px;position:relative}.bi-dashboard.bi-loading:after,.bi-section-page.bi-loading:after{content:var(--bi-loading-text,"Loading data...");color:#495057;z-index:5;background:#ffffffbf;border-radius:12px;justify-content:center;align-items:center;font-weight:600;display:flex;position:absolute;inset:0}.bi-panel{background:#fff;border-radius:16px;padding:1.5rem;box-shadow:0 10px 30px #0f172a14}.bi-panel--filters{margin-bottom:1.5rem}.bi-panel--stretch{flex-direction:column;height:100%;display:flex}.bi-panel__header{justify-content:space-between;align-items:flex-start;gap:1rem;margin-bottom:1rem;display:flex}.bi-panel__header--compact{align-items:center}.bi-panel__title{color:#1f2937;margin:0;font-size:1.35rem;font-weight:600}.bi-panel__subtitle{color:#6c757d;margin:.25rem 0 0;font-size:.95rem}.bi-panel__actions{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:.5rem;display:inline-flex}.bi-panel__body{flex:1}.bi-panel__body--table{flex-direction:column;gap:1rem;display:flex}.bi-section{margin-top:2.5rem}.bi-section:first-of-type{margin-top:1.5rem}.bi-section .section-header{margin-bottom:1.5rem}.bi-section .section-title{color:#1f2937;margin-bottom:.25rem;font-size:1.5rem;font-weight:600}.bi-section .section-subtitle{color:#6c757d;margin-bottom:0}.bi-kpi-card{color:#0d1b2a;background:linear-gradient(135deg,#0d6efd14 0%,#0d6efd2e 100%);border-radius:16px;height:100%;padding:1.25rem 1.5rem;box-shadow:0 15px 35px #0d6efd1f}.bi-kpi-card__header{justify-content:space-between;align-items:center;margin-bottom:.5rem;display:flex}.bi-kpi-card__label{letter-spacing:.02em;text-transform:uppercase;font-size:.95rem;font-weight:600}.bi-kpi-card__value{font-size:2rem;font-weight:700}.chart-wrapper{min-height:320px;position:relative}.chart-wrapper canvas{position:absolute;inset:0}.bi-empty{text-align:center;color:#6c757d;margin-top:2rem;font-weight:500}[data-bi-error]{margin-top:1.5rem}.bi-section-page .table thead th{text-transform:uppercase;letter-spacing:.08em;color:#6c757d;font-size:.75rem}.bi-section-page .table tbody td{vertical-align:middle}.bi-quick-link{color:inherit;background:#0d6efd0f;border-radius:14px;align-items:center;gap:1rem;padding:1rem 1.25rem;text-decoration:none;transition:transform .2s,box-shadow .2s;display:flex;box-shadow:0 10px 24px #0d6efd1f}.bi-quick-link:hover,.bi-quick-link:focus{text-decoration:none;transform:translateY(-4px);box-shadow:0 18px 36px #0d6efd2e}.bi-quick-link__icon{color:#fff;background:#0d6efd;border-radius:12px;justify-content:center;align-items:center;width:48px;height:48px;font-size:1.5rem;display:inline-flex}.bi-quick-link__content{flex:1}.bi-quick-link__label{color:#0d1b2a;font-size:1.05rem;font-weight:600;display:block}.bi-quick-link__caption{color:#495057;font-size:.9rem;display:block}.bi-quick-link__chevron{color:#0d1b2a;font-size:1.25rem}@media (width<=1199.98px){.bi-panel__header{flex-direction:column;align-items:stretch}.bi-panel__actions{justify-content:flex-start}}.rfa-stats-card{background:linear-gradient(135deg,#011f3f14,#011f3f05);border-radius:1rem;flex-direction:column;gap:.35rem;min-height:120px;padding:1.25rem;display:flex;box-shadow:0 18px 35px -28px #011f3fb3}.rfa-stats-card .rfa-stats-label{text-transform:uppercase;letter-spacing:.08em;color:#6c7a91;font-size:.75rem;font-weight:600}.rfa-stats-card .rfa-stats-value{color:#0a2342;font-size:1.35rem;font-weight:700}.rfa-progress .progress{background-color:#0a234214;border-radius:999px;height:.6rem}.rfa-progress .progress-bar{background:linear-gradient(90deg,#036 0%,#0093e9 100%);border-radius:999px}.rfa-palier-panel{background:#fff;border:1px solid #0a234214;border-radius:1rem;padding:1.5rem;box-shadow:0 12px 30px -24px #0a234299}.rfa-palier-table table{border-radius:.75rem;overflow:hidden}.rfa-palier-table table td{vertical-align:middle}.rfa-filter-form .form-control,.rfa-filter-form .form-select{border-color:#0a234226;border-radius:.75rem}.rfa-filter-form .form-control:focus,.rfa-filter-form .form-select:focus{border-color:#0a2342;box-shadow:0 0 0 .2rem #011f3f26}.rfa-form .form-label{color:#0a2342;font-weight:600}.rfa-form .form-control,.rfa-form .form-select,.rfa-form textarea{border-color:#0a234226;border-radius:.75rem}.rfa-form .form-control:focus,.rfa-form .form-select:focus,.rfa-form textarea:focus{border-color:#0a2342;box-shadow:0 0 0 .2rem #011f3f1f}.projet-form-card{border:none;border-radius:1rem;box-shadow:0 1.5rem 3rem -2rem #0f172a59}.projet-form-card__body{padding:clamp(1.5rem,3vw,2.5rem)!important}.projet-form-card .form-control,.projet-form-card .form-select{border:1px solid #dee2e6;border-radius:.75rem;transition:border-color .2s,box-shadow .2s}.projet-form-card .form-control:focus,.projet-form-card .form-select:focus{border-color:#0a3d62;box-shadow:0 0 0 .2rem #0a3d6226}.projet-form-card .input-group-text{border-color:#dee2e6;border-radius:.75rem 0 0 .75rem}.projet-form-card .form-label{color:#364152;font-weight:600}.projet-form-card .alert{border:none;border-radius:.75rem}@media (width<=768px){.projet-form-card__body{padding:1.25rem!important}}.devis-clients-page{flex-direction:column;gap:1.5rem;min-height:100vh;display:flex}.devis-card{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#fffffff2;border-radius:1.25rem;overflow:hidden;box-shadow:0 30px 70px -40px #0f172a8c}.devis-card__filters{background:linear-gradient(135deg,#fffffffa 0%,#f0f4fcfa 100%);border-bottom:1px solid #0f172a14;padding:1.75rem}.devis-card__filters .form-label{color:#1f2937;font-weight:600}.devis-card__filters .input-group-text{color:#0a3d62;background-color:#0000;border-right:0}.devis-card__filters .form-control,.devis-card__filters .form-select{min-height:44px;box-shadow:none;border-color:#0f172a26;border-radius:.75rem}.devis-card__filters .form-control:focus,.devis-card__filters .form-select:focus{border-color:#0a3d62a6;box-shadow:0 0 0 .2rem #0a3d6226}.devis-card__filters .btn{border-radius:.85rem;min-height:44px}.devis-card__body{flex-direction:column;gap:1.5rem;padding:1.75rem;display:flex}.devis-card__alerts>*{margin-bottom:0}.devis-table__container{background:#fff;border-radius:1rem;padding:0}.devis-lines-table-wrapper{-webkit-overflow-scrolling:touch;overflow-x:auto}.devis-lines-table-wrapper .table{min-width:1080px}.devis-table__container .table{min-width:720px;margin-bottom:0}.devis-table__container .table thead th{letter-spacing:.06em;text-transform:uppercase;color:#334155;background-color:#0f172a0a;border-bottom:0;font-size:.75rem;font-weight:700}.devis-table__container .table tbody td{color:#1f2937;vertical-align:middle;font-size:.95rem}.devis-table__container .table tbody tr:hover{background-color:#0f172a08}.devis-status-badges{flex-wrap:wrap;align-items:center;gap:.5rem;display:flex}.devis-transformable-badge{color:#047857;letter-spacing:.05em;text-transform:uppercase;background:#ecfdf5;border:1px solid #04785740;border-radius:999px;padding:.35rem .75rem;font-size:.75rem;font-weight:600}.devis-table__empty{padding:3rem 1rem}.devis-table__empty i{opacity:.4;margin-bottom:.75rem}.devis-card__footer{padding:0 1.75rem 1.75rem}@media (width<=1199.98px){.devis-card__filters{padding:1.5rem}}@media (width<=991.98px){.devis-card__filters,.devis-card__body,.devis-card__footer{padding:1.25rem}.devis-table__container .table{min-width:640px}}@media (width<=575.98px){.devis-card__filters .btn{width:100%}.devis-table__container .table{min-width:980px}}.article-detail{--article-section-title-color:var(--bs-gray-800,#343a40);--article-card-shadow:0 18px 35px -25px #0f172a40}.article-detail .article-info-card{box-shadow:var(--article-card-shadow);border:1px solid #0f172a0f}.article-detail .article-section-title{color:var(--article-section-title-color);letter-spacing:.02em;text-transform:uppercase}.article-detail .article-meta dt{letter-spacing:.08em;text-transform:uppercase;margin-bottom:.35rem;font-size:.75rem}.article-detail .article-meta dd{color:var(--bs-gray-900,#1f2937);margin-bottom:1rem;font-weight:500}.article-detail .article-meta dd:last-child{margin-bottom:0}.article-detail .article-meta-badges .badge{letter-spacing:.02em;font-size:.85rem;font-weight:600}.article-detail .table thead th{color:var(--bs-gray-700,#495057);border-top:0;font-weight:600}.article-detail .table tbody td{vertical-align:middle}.article-detail .table tbody tr td:first-child{color:var(--bs-gray-800,#343a40);font-weight:600}.article-detail .table tbody tr td .badge{font-size:.8rem}.stock-dashboard{flex-direction:column;gap:1.75rem;display:flex}.stock-dashboard .summary-card{border:none;border-radius:1.25rem;transition:transform .2s,box-shadow .2s;box-shadow:0 24px 55px -35px #0f172a73}.stock-dashboard .summary-card:hover{transform:translateY(-2px);box-shadow:0 30px 60px -30px #0f172a73}.stock-dashboard .summary-card p{letter-spacing:.3px}.stock-dashboard .table-dashboard{border-radius:1rem;overflow:hidden}.stock-dashboard .table-dashboard thead th{text-transform:uppercase;letter-spacing:.08em;color:#0f172a8c;background:#0f172a08;border-bottom:1px solid #0f172a0d;font-size:.78rem}.stock-dashboard .table-dashboard tbody tr{transition:background-color .18s,transform .18s}.stock-dashboard .table-dashboard tbody tr:hover{background-color:#0f172a0a;transform:translate(1px)}.stock-dashboard .table-dashboard td,.stock-dashboard .table-dashboard th{padding-top:.9rem;padding-bottom:.9rem}.stock-dashboard .badge{letter-spacing:.08em;text-transform:uppercase;border-radius:50rem;font-size:.7rem;font-weight:600}.stock-dashboard .card+.card{margin-top:0}html{font-size:var(--base-font-size)}.app-shell{background:linear-gradient(#f7f9fc 0%,#eef2f9 100%);flex-direction:column;min-height:100vh;display:flex}.app-header{z-index:1020;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);background-color:#ffffffeb;border-bottom:1px solid #0f172a14;padding:.75rem 0;position:sticky;top:0;box-shadow:0 10px 30px -20px #0f172a59}.app-header .dropdown-menu{min-width:18rem}.app-main{flex:auto;padding:2rem 0 2.5rem}.app-page{flex-direction:column;gap:1.5rem;display:flex}.app-card{background:#fff;border:none;border-radius:1rem;box-shadow:0 20px 45px -25px #0f172a59}.card-header{border-bottom:0;background-color:var(--nav-bg-color,#001f3f)!important;color:var(--nav-link-color,#fff)!important;border-radius:1rem 1rem 0 0!important}.card.header{color:#fff!important}:root{--app-btn-font-size:.9375rem;--app-btn-font-weight:600;--app-btn-line-height:1.4;--app-btn-padding-y:.55rem;--app-btn-padding-x:1.25rem;--app-btn-radius:.75rem;--app-btn-gap:.5rem;--app-btn-transition:all .18s ease-in-out;--app-btn-shadow:0 .1rem .35rem #0f172a14;--app-btn-shadow-hover:0 .45rem .9rem #0f172a1f;--app-btn-light-bg:#f3f6fb;--app-btn-light-bg-hover:#e3e9f3;--app-btn-light-border:#d6deeb;--app-btn-light-text:#1f2933;--app-btn-outline-border:#0a3d62}.btn{justify-content:center;align-items:center;gap:var(--app-btn-gap);font-size:var(--app-btn-font-size);font-weight:var(--app-btn-font-weight);line-height:var(--app-btn-line-height);padding:var(--app-btn-padding-y) var(--app-btn-padding-x);border-radius:var(--app-btn-radius);transition:var(--app-btn-transition);box-shadow:var(--app-btn-shadow);text-transform:none;border-width:1px;display:inline-flex}.btn i,.btn svg{font-size:1rem}.btn:hover,.btn:focus{box-shadow:var(--app-btn-shadow-hover);transform:translateY(-1px)}.btn:active{box-shadow:var(--app-btn-shadow);transform:translateY(0)}.btn-sm{border-radius:calc(var(--app-btn-radius) - .15rem);gap:.35rem;padding:.35rem .85rem;font-size:.85rem}.table-actions{--table-actions-gap:.35rem;justify-content:flex-end;gap:var(--table-actions-gap);min-width:6rem}.table-actions--with-labels{--table-actions-gap:.5rem;flex-wrap:wrap;justify-content:flex-end}.table-actions--with-labels .table-actions__button{min-width:0;min-height:0;padding-inline:.75rem;border-radius:var(--app-btn-radius)!important}.table-actions--with-labels .table-actions__button i{font-size:.8rem}.table-actions__form{margin:0;display:inline-flex}.table-actions__button{min-width:1.95rem;min-height:1.95rem;padding-inline:.5rem;border-radius:999px!important}.table-actions__button i{font-size:.85rem}.btn-lg{padding:.75rem 1.5rem;font-size:1rem}.btn-link{box-shadow:none;color:var(--app-btn-outline-border);gap:.35rem;padding:0}.btn-link:hover,.btn-link:focus{color:#052c46;box-shadow:none;transform:none}.btn-primary,.btn-secondary,.btn-success,.btn-danger,.btn-warning,.btn-info,.btn-dark{color:#fff}.btn-light{color:var(--app-btn-light-text);background-color:var(--app-btn-light-bg);border-color:var(--app-btn-light-border)}.btn-light:hover,.btn-light:focus{color:var(--app-btn-light-text);background-color:var(--app-btn-light-bg-hover);border-color:var(--app-btn-light-border)}.btn-outline-secondary{color:var(--app-btn-outline-border);border-color:var(--app-btn-outline-border);box-shadow:none;background-color:#0000}.btn-outline-secondary:hover,.btn-outline-secondary:focus{color:var(--app-btn-outline-border);border-color:var(--app-btn-outline-border);box-shadow:var(--app-btn-shadow-hover);background-color:#0a3d6214}.btn-warning{color:#212529;background-color:#ffd149;border-color:#ffca2c}.btn-warning:hover,.btn-warning:focus{color:#212529;background-color:#ffbe1a;border-color:#ffb30d}.project-status-badge{border-radius:50rem;align-items:center;padding:.125rem .625rem;font-size:.75rem;font-weight:500;display:inline-flex}.project-status-en_preparation{background-color:var(--bs-gray-100);color:var(--bs-gray-800)}.project-status-en_cours{background-color:var(--bs-success-bg-subtle);color:var(--bs-success-text-emphasis)}.project-status-en_pause{background-color:var(--bs-warning-bg-subtle);color:var(--bs-warning-text-emphasis)}.project-status-termine{background-color:var(--bs-gray-100);color:var(--bs-gray-800)}.tabs{border-bottom:1px solid var(--bs-gray-200);display:flex}.tab{text-align:center;border-bottom:2px solid #0000;padding:.5rem 1rem;font-size:.875rem;font-weight:500}.tab-active{border-color:var(--bs-gray-500);color:var(--bs-gray-700)}.tab-inactive{color:var(--bs-gray-500);border-color:#0000}.tab-inactive:hover{color:var(--bs-gray-700);border-color:var(--bs-gray-300)}.pagination{justify-content:center;margin-top:1rem;display:flex}.modal-backdrop{background-color:rgba(var(--bs-gray-500-rgb), .75);transition:opacity .15s linear;position:fixed;inset:0}.modal{position:fixed;inset:0;overflow-y:auto}.modal-content{background-color:var(--bs-white);border-radius:var(--bs-border-radius-lg);box-shadow:var(--bs-box-shadow-lg);width:100%;max-width:32rem;margin:1.5rem auto;transition:all .3s ease-in-out;overflow:hidden;transform:scale(1)}.modal-header{background-color:var(--bs-gray-100);border-bottom:1px solid var(--bs-gray-200);padding:.75rem 1rem}.modal-body{padding:1.25rem 1rem}.modal-footer{background-color:var(--bs-gray-100);border-top:1px solid var(--bs-gray-200);padding:.75rem 1rem}.sidebar{background-color:var(--nav-bg-color,#001f3f);color:var(--bs-white);width:16rem;transition:transform .2s ease-in-out;position:fixed;top:0;bottom:0;left:0;transform:translate(0)}.sidebar-collapsed{transform:translate(-100%)}@media (width>=768px){.sidebar-collapsed{width:4rem;transform:translate(0)}}.sidebar-header{background-color:var(--bs-gray-900);align-items:center;height:4rem;padding:0 1rem;display:flex}.sidebar-item{color:var(--bs-gray-300);align-items:center;padding:.5rem 1rem;display:flex}.sidebar-item:hover{background-color:var(--bs-gray-700);color:var(--bs-white)}.sidebar-item-active{background-color:var(--bs-gray-900);color:var(--bs-white)}.badge{border-radius:50rem;align-items:center;padding:.35rem 1.25rem;font-size:.75rem;font-weight:500;display:inline-flex}.badge-gray{background-color:var(--bs-gray-100);color:var(--bs-gray-800)}.badge-green{background-color:var(--bs-success-bg-subtle);color:var(--bs-success-text-emphasis)}.badge-red{background-color:var(--bs-danger-bg-subtle);color:var(--bs-danger-text-emphasis)}.badge-yellow{background-color:var(--bs-warning-bg-subtle);color:var(--bs-warning-text-emphasis)}.badge-primary{background-color:var(--primary-color)}.badge-secondary{background-color:var(--secondary-color)}.badge-success{background-color:var(--success-color)}.badge-danger{background-color:var(--danger-color)}.badge-warning{background-color:var(--warning-color);color:#212529}.badge-info{background-color:var(--info-color)}.tooltip{z-index:10;color:var(--bs-white);background-color:var(--bs-black);border-radius:var(--bs-border-radius);box-shadow:var(--bs-box-shadow);padding:.5rem;font-size:.75rem;position:absolute}@keyframes spin{to{transform:rotate(360deg)}}.spinner{border:4px solid var(--bs-gray-200);border-top-color:var(--bs-gray-500);border-radius:50%;width:2rem;height:2rem;animation:1s linear infinite spin}.avatar{border-radius:50%;overflow:hidden}.avatar-sm{width:2rem;height:2rem}.avatar-md{width:3rem;height:3rem}.avatar-lg{width:4rem;height:4rem}.list-group{border:1px solid var(--bs-gray-200);border-radius:var(--bs-border-radius);overflow:hidden}.list-group-item{background-color:var(--bs-white);border-bottom:1px solid var(--bs-gray-200);padding:1rem}.list-group-item:last-child{border-bottom:none}.stepper,.step{align-items:center;display:flex}.step-circle{border-radius:50%;justify-content:center;align-items:center;width:2rem;height:2rem;display:flex}.step-circle-active{background-color:var(--bs-gray-600);color:var(--bs-white)}.step-circle-completed{background-color:var(--bs-success);color:var(--bs-white)}.step-circle-inactive{background-color:var(--bs-gray-200);color:var(--bs-gray-600)}.step-line{width:4rem;height:.25rem;margin:0 .5rem}.step-line-active{background-color:var(--bs-gray-600)}.step-line-completed{background-color:var(--bs-success)}.step-line-inactive{background-color:var(--bs-gray-200)}.filter-container{background-color:var(--bs-white);border-radius:var(--bs-border-radius);box-shadow:var(--bs-box-shadow-sm);border:1px solid var(--bs-gray-200);margin-bottom:1rem;padding:1rem}.stat-value{font-size:1.875rem;font-weight:700}.stat-label{color:var(--bs-gray-500);font-size:.875rem}.stat-change-positive{color:var(--bs-success);font-size:.875rem}.stat-change-negative{color:var(--bs-danger);font-size:.875rem}.calendar{background-color:var(--bs-white);border-radius:var(--bs-border-radius);box-shadow:var(--bs-box-shadow-sm);border:1px solid var(--bs-gray-200)}.calendar-header{background-color:var(--bs-gray-100);border-bottom:1px solid var(--bs-gray-200);justify-content:space-between;align-items:center;padding:.5rem;display:flex}.calendar-day{text-align:center;border:1px solid var(--bs-gray-100);padding:.5rem}.calendar-day-current{background-color:var(--bs-gray-100)}.calendar-event{white-space:nowrap;text-overflow:ellipsis;border-radius:.125rem;margin-bottom:.25rem;padding:.25rem;font-size:.75rem;overflow:hidden}.progress{background-color:var(--bs-gray-200);border-radius:var(--bs-border-radius);width:100%;height:.625rem}.progress-bar{background-color:var(--bs-gray-600);border-radius:var(--bs-border-radius);height:.625rem}.switch{border-radius:var(--bs-border-radius-pill);align-items:center;width:2.75rem;height:1.5rem;transition:background-color .2s ease-in-out;display:inline-flex;position:relative}.switch-on{background-color:var(--bs-gray-600)}.switch-off{background-color:var(--bs-gray-200)}.switch-handle{background-color:var(--bs-white);border-radius:50%;width:1rem;height:1rem;transition:transform .2s ease-in-out;position:absolute;top:.25rem;left:.25rem}.switch-handle-on{transform:translate(1.25rem)}.switch-handle-off{transform:translate(0)}.breadcrumb{color:var(--bs-gray-500);align-items:center;font-size:.875rem;display:flex}.breadcrumb-item{align-items:center;display:flex}.breadcrumb-separator{color:var(--bs-gray-400);margin:0 .5rem}.dropdown{display:inline-block;position:relative}.dropdown-menu{border-radius:var(--bs-border-radius);width:12rem;box-shadow:var(--bs-box-shadow);background-color:var(--bs-white);z-index:10;margin-top:.5rem;position:absolute;right:0}.dropdown-item{color:var(--bs-gray-700);padding:.5rem 1rem;font-size:.875rem;display:block}.dropdown-item:hover{background-color:var(--bs-gray-100)}.accordion{border:1px solid var(--bs-gray-200);border-radius:var(--bs-border-radius)}.accordion-header{cursor:pointer;background-color:var(--bs-white);padding:1rem}.accordion-header:hover{background-color:var(--bs-gray-100)}.accordion-body{background-color:var(--bs-gray-100);padding:1rem}.toast{border-radius:var(--bs-border-radius);box-shadow:var(--bs-box-shadow);z-index:50;max-width:20rem;padding:1rem;position:fixed;bottom:1rem;right:1rem}.toast-success{background-color:var(--bs-success);color:var(--bs-white)}.toast-error{background-color:var(--bs-danger);color:var(--bs-white)}.toast-warning{background-color:var(--bs-warning);color:var(--bs-white)}.toast-info{background-color:var(--bs-gray-500);color:var(--bs-white)}@media print{.no-print{display:none}.print-only{display:block}body{background-color:var(--bs-white);color:var(--bs-black)}}.dark-mode{background-color:var(--bs-gray-900);color:var(--bs-white)}.dark-mode .card{background-color:var(--bs-gray-800);border-color:var(--bs-gray-700)}.dark-mode .card-footer{background-color:var(--bs-gray-700);border-color:var(--bs-gray-600)}.dark-mode .table th{background-color:var(--bs-gray-700);color:var(--bs-gray-300)}.dark-mode .table td{color:var(--bs-gray-300)}.dark-mode .table tr:nth-child(2n){background-color:var(--bs-gray-700)}body{background-color:var(--bs-gray-100);flex-direction:column;min-height:100vh;font-family:Inter,sans-serif;font-size:.875rem;display:flex}.main-wrapper{flex-direction:column;flex:1;min-height:100vh;display:flex}.content-section{flex:1;padding:0 .5rem}.alerts-wrapper .p-4{padding-left:1.5rem}.alerts-wrapper{z-index:1050;width:350px;position:fixed;top:20px;right:20px}.footer-section{color:var(--nav-bg-color,#001f3f);border-top:3px solid var(--bs-primary);background:linear-gradient(135deg,#f8f9fa 0%,#e9ecef 100%);margin-top:auto;padding:2rem 0}.footer-content{text-align:center;font-size:.9rem}.footer-content p{opacity:.9;color:var(--nav-bg-color,#001f3f);margin:0}@media (width<=768px){.alerts-wrapper{width:calc(100% - 2rem);left:1rem;right:1rem}.content-section{padding:0 .5rem}}@media (width<=640px){.hide-sm{display:none}}@media (width<=768px){.hide-md{display:none}}@media (width<=1024px){.hide-lg{display:none}}#add-field{color:#001f3f;background-color:#0000;border:1px solid #001f3f}body{background-color:#f5f8fa;font-family:Inter,sans-serif;font-size:.875rem}.footer{background-color:var(--light-color);border-top:1px solid #dee2e6}.alert{border:none;border-radius:.375rem;font-size:1rem;box-shadow:0 .125rem .25rem #00000013}main{min-height:calc(100vh - 160px)}.card{border:1px solid #0000000d;border-radius:.5rem;box-shadow:0 .125rem .25rem #00000013}.form-control:focus{border-color:var(--primary-color);box-shadow:0 0 0 .2rem #0a3d6240}.bi-search:before{color:#343a40}.active>.page-link{background-color:#343a40}.page-link{color:#343a40}.align-items-sm-center{gap:.5rem}.container{max-width:100%;margin:0 auto;padding:0 .25rem}.page-spacing{padding-top:0;padding-bottom:2rem}.supplier-page{background:linear-gradient(135deg,#f8f9fa 0%,#e3f2fd 100%);min-height:100vh}.supplier-card{border-radius:12px;overflow:hidden}.supplier-card-header-dark{border:none}.supplier-card-header-light{border-bottom:1px solid #e9ecef}.form-label{color:#343a40;font-weight:600}.form-control,.form-select{border-radius:8px}.form-select:focus,.form-control:focus{border-color:#343a40;box-shadow:0 0 0 .2rem #31353b26}.select2-container--default .select2-selection--single,.select2-container--default .select2-selection--multiple{border:1px solid var(--bs-border-color,#ced4da);border-radius:var(--bs-border-radius,.375rem);min-height:calc(1.5em + .75rem + 2px)}.select2-container--default .select2-selection--single .select2-selection__rendered,.select2-container--default .select2-results__option{color:#343a40}.select2-container--default .select2-selection--single .select2-selection__rendered{padding-left:.75rem;line-height:calc(1.5em + .75rem)}.select2-container--default .select2-selection--single .select2-selection__arrow{height:calc(1.5em + .75rem)}.select2-container--default.select2-container--focus .select2-selection--single,.select2-container--default.select2-container--focus .select2-selection--multiple{border-color:#343a40;box-shadow:0 0 0 .2rem #31353b26}.select2-container--default .select2-search--dropdown .select2-search__field{border:1px solid var(--bs-border-color,#ced4da);border-radius:var(--bs-border-radius,.375rem);padding:.375rem .75rem}.select2-dropdown{border-color:var(--bs-border-color,#ced4da);z-index:1056}.is-invalid+.select2-container--default .select2-selection--single,.is-invalid+.select2-container--default .select2-selection--multiple{border-color:var(--bs-form-invalid-border-color,#dc3545)}@media (width<=767.98px){form .table-responsive,.needs-validation .table-responsive{-webkit-overflow-scrolling:touch;overflow:auto visible}form .table-responsive table,.needs-validation .table-responsive table{min-width:720px}.devis-lines-table-wrapper table{min-width:1080px}.facture-lines-table-wrapper table{min-width:1100px}.achat-lines-table-wrapper table{min-width:1600px}form .table-responsive th,form .table-responsive td,.needs-validation .table-responsive th,.needs-validation .table-responsive td{white-space:nowrap}form .table-responsive .form-control,form .table-responsive .form-select,.needs-validation .table-responsive .form-control,.needs-validation .table-responsive .form-select{min-width:8rem}form .table-responsive .input-group,.needs-validation .table-responsive .input-group{min-width:10rem}}@media (width<=991.98px){.table-responsive.mobile-table-scroll,.table-responsive.auto-table-responsive{-webkit-overflow-scrolling:touch;scrollbar-width:thin;overflow:auto visible}.table-responsive.mobile-table-scroll .table,.table-responsive.auto-table-responsive .table,table.mobile-data-table{min-width:max(100%,640px)}table.mobile-data-table.mobile-data-table-wide{min-width:max(100%,900px)}table.mobile-data-table.mobile-data-table-xwide{min-width:max(100%,1200px)}table.mobile-data-table th,table.mobile-data-table td{white-space:nowrap;vertical-align:middle}table.mobile-data-table .btn,table.mobile-data-table .badge,table.mobile-data-table a{white-space:nowrap}.table-responsive.mobile-table-scroll.is-scrollable,.table-responsive.auto-table-responsive.is-scrollable{position:relative}.table-responsive.mobile-table-scroll.is-scrollable:after,.table-responsive.auto-table-responsive.is-scrollable:after{content:"";float:right;pointer-events:none;background:linear-gradient(270deg,#fffffff2,#fff0);width:1.25rem;height:100%;position:sticky;top:0;right:0}.table-row-actions{flex-wrap:nowrap;gap:.375rem}main .btn,main a.btn{justify-content:center;align-items:center;min-height:44px}main .btn-sm,main a.btn-sm{min-width:44px;min-height:44px;padding:.5rem .625rem}.remove-line,.remove-ligne,.remove-devis-line{min-width:44px;min-height:44px;padding:.5rem}.select2-container--default .select2-selection--single{min-height:44px}.select2-container--default .select2-selection--single .select2-selection__rendered{line-height:42px}.mobile-lines-table-wrapper,.devis-lines-table-wrapper,.facture-lines-table-wrapper,.commande-lines-table-wrapper,.achat-lines-table-wrapper,.ecriture-lignes-table-wrapper,.bon-retour-lines-table-wrapper,.contrat-rfa-paliers-table-wrapper{overflow-y:visible!important}.achat-lines-table-wrapper{-webkit-overflow-scrolling:touch;overflow-x:auto}.achat-lines-table-wrapper table{min-width:1600px}.achat-lines-table-wrapper th,.achat-lines-table-wrapper td{white-space:nowrap;vertical-align:middle;min-width:8.5rem}.achat-lines-table-wrapper th:first-child,.achat-lines-table-wrapper td:first-child{min-width:12rem}.achat-lines-table-wrapper th:last-child,.achat-lines-table-wrapper td:last-child{min-width:4rem}.achat-lines-table-wrapper .form-control,.achat-lines-table-wrapper .form-select{min-width:7rem}.achat-lines-table-wrapper .form-control[name*="[designation]"]{min-width:10rem}}.bg-success-subtle{background-color:#1987541a}.bg-danger-subtle{background-color:#dc35451a}.bg-warning-subtle{background-color:#ffc1071f}.bg-nav{background-color:var(--nav-bg-color)}.opacity-50{opacity:.5}.text-primary{color:#343a40}.custom-tabs{border-bottom:2px solid #343a40;gap:.5rem;margin-bottom:1.5rem;display:flex}.custom-tab-btn{color:#343a40;background:0 0;border:none;border-bottom:3px solid #0000;border-radius:8px 8px 0 0;outline:none;padding:.75rem 1.5rem;font-size:1rem;font-weight:600;transition:background .15s,color .15s,border-bottom .15s;position:relative}.custom-tab-btn.active,.custom-tab-btn:hover{color:#fff;background:#343a40;border-bottom:3px solid #343a40}.custom-tab-btn i{margin-right:.5rem}@media (width<=767.98px){.custom-tabs{-webkit-overflow-scrolling:touch;scrollbar-width:thin;overscroll-behavior-x:contain;flex-wrap:nowrap;overflow:auto hidden}.custom-tab-btn{white-space:nowrap;flex:none}}.btn-group .btn i{margin-right:0}.table th,.table td{vertical-align:baseline}.badge{font-size:.95em}.page-header{color:var(--dark-color)}.titre-principal{color:var(--dark-color);font-size:1.25rem;font-weight:600}.titre-section{font-size:1rem;font-weight:600}.titre-section.fs-6{font-size:1rem}.suivi-achats-page{background:linear-gradient(135deg,#f8f9fa 0%,#e3f2fd 100%);min-height:100vh}.suivi-achats-page .card{border-radius:12px;overflow:hidden}.suivi-achats-page .card-header{border-bottom:1px solid #e9ecef}.suivi-achats-page .page-header-dark{color:var(--dark-color);background:#fff;border:none}.page-header-light .card .card-header .page-header h2{color:#fff!important}.suivi-achats-page .form-select,.suivi-achats-page .form-control{border:1px solid #dee2e6;transition:all .2s ease-in-out}.suivi-achats-page .form-select:focus,.suivi-achats-page .form-control:focus{border-color:#343a40;box-shadow:0 0 0 .2rem #31353b26}.suivi-achats-page .list-group-item{background:0 0;border:none;padding-left:0;padding-right:0}.suivi-achats-page .list-group-item a:hover{color:#23272b;text-decoration:underline}.btn-no-hover:hover{background-color:inherit!important;color:inherit!important;border-color:inherit!important}
