:root{--clr-primary: #2563c8;--clr-primary-hover: #1a4fa0;--clr-primary-active: #163e80;--clr-primary-light: #dbeafe;--clr-th-bg: #3d5a80;--clr-th-bg-hover: #2e4667;--clr-th-text: #f0f4f8;--clr-success: #1a7a4a;--clr-danger: #c0392b;--clr-warning: #d4710a;--clr-neutral: #64748b;--clr-toast-success: #28a745;--clr-toast-danger: #e74c3c;--clr-toast-warning: #ffc107;--clr-toast-info: #17a2b8;--clr-toast-muted: #6c757d;--clr-nav: #1e2d3d;--clr-nav-hover: #2e4260;--clr-surface: #f8fafc;--clr-border: #e2e8f0;--clr-row-even: #f1f5f9;--clr-row-hover: #e8f0fe;--clr-text: #1e293b;--clr-text-muted:#64748b;--font-base: "Lato", "Segoe UI", Arial, Helvetica, sans-serif;--font-size-base: 13px;--font-size-sm: 12px;--line-height: 1.5;--shadow-box: 0 1px 4px rgba(0, 0, 0, .08), 0 4px 12px rgba(0, 0, 0, .06);--shadow-modal: 0 8px 30px rgba(0, 0, 0, .18);--radius: 5px;--radius-lg: 8px;--clr-bleu-clair: var(--clr-primary);--clr-bleu-clair-hover: var(--clr-primary-hover);--radius-table: var(--radius-lg)}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}body{display:flex;background:var(--clr-surface);color:var(--clr-text)}body,html{font-family:var(--font-base);font-size:var(--font-size-base);line-height:var(--line-height);height:100%}html{scroll-behavior:smooth}#content{padding:20px}main{flex-grow:1;position:relative;overflow:auto;padding:24px;background:var(--clr-surface)}button,.action-bar button,.modal-form button,.tab-buttons button,.toggle-btn,.bilan-toggle-btn,.bilan-btn-fetch{background-color:var(--clr-primary);color:#fff;padding:6px 14px;border:none;border-radius:var(--radius);cursor:pointer;font-family:var(--font-base);font-size:var(--font-size-base);font-weight:600;margin:0 2px;transition:background-color .15s ease,box-shadow .15s ease;box-shadow:0 1px 3px #00000026;white-space:nowrap;line-height:1.4}button:hover,.action-bar button:hover,.modal-form button:hover,.tab-buttons button:hover,.toggle-btn:hover,.bilan-toggle-btn:hover,.bilan-btn-fetch:hover{background-color:var(--clr-primary-hover);box-shadow:0 2px 6px #0003}button:active,.action-bar button:active,.modal-form button:active,.tab-buttons button:active,.toggle-btn:active,.bilan-toggle-btn:active,.bilan-btn-fetch:active{background-color:var(--clr-primary-active);box-shadow:none}button:disabled,.action-bar button:disabled,.modal-form button:disabled,.tab-buttons button:disabled,.toggle-btn:disabled{background-color:#c8d6e8;cursor:not-allowed;box-shadow:none;color:#7a90a8;opacity:.75}button:focus-visible{outline:2px solid var(--clr-primary);outline-offset:2px}.tab-buttons button.active{background-color:var(--clr-primary-active);border-bottom:2px solid #fff;box-shadow:none}.btn-danger,button.btn-danger{background-color:var(--clr-danger)}.btn-success,button.btn-success{background-color:var(--clr-success)}.btn-neutral,button.btn-neutral{background-color:var(--clr-neutral)}.btn-warning,button.btn-warning{background-color:var(--clr-warning)}.btn-danger:hover{background-color:#a93226}.btn-success:hover{background-color:#14623b}.btn-neutral:hover{background-color:#4e5f6e}.btn-warning:hover{background-color:#b05d08}.toggle-btn{background-color:var(--clr-primary-light);color:var(--clr-primary-active);padding:3px 8px;font-size:11px;font-weight:700;box-shadow:none;border-radius:3px}.toggle-btn:hover{background-color:#bfdbfe;box-shadow:none}.pagination button{background-color:#fff;color:var(--clr-primary);border:1px solid var(--clr-border);padding:4px 9px;min-width:32px;font-size:var(--font-size-sm);box-shadow:none}.pagination button:hover{background-color:var(--clr-primary-light);color:var(--clr-primary);border-color:var(--clr-primary)}.pagination button.active{background-color:var(--clr-primary);color:#fff;border-color:var(--clr-primary);font-weight:700}.pagination button:disabled{background-color:#f1f5f9;color:#94a3b8;border-color:var(--clr-border)}input[type=checkbox]{margin:0}input[type=text]{width:100%;margin-bottom:10px;padding:8px 10px;border:1px solid var(--clr-border);border-radius:var(--radius);font-size:var(--font-size-base);font-family:var(--font-base);transition:border-color .2s ease,box-shadow .2s ease}input[type=text]:focus,input[type=date]:focus{border-color:var(--clr-primary);box-shadow:0 0 0 3px #2563c81a;outline:none}input[type=number]{padding:8px 10px;border:1px solid var(--clr-border);border-radius:var(--radius);font-size:var(--font-size-base);font-family:var(--font-base);transition:border-color .2s ease,box-shadow .2s ease}input[type=number]:focus{border-color:var(--clr-primary);box-shadow:0 0 0 3px #2563c81a;outline:none}select{padding:8px 10px;border:1px solid var(--clr-border);border-radius:var(--radius);font-size:var(--font-size-base);font-family:var(--font-base);transition:border-color .2s ease;cursor:pointer}select:focus{border-color:var(--clr-primary);outline:none}label{display:block}#container{position:relative}#nav ul li>span{cursor:pointer;-webkit-user-select:none;user-select:none}.sb{width:210px;min-width:210px;height:100vh;background:var(--clr-nav);color:#fffc;font-size:13px;display:flex;flex-direction:column;overflow-y:auto;overflow-x:hidden;border-right:1px solid #0d1620;flex-shrink:0}.sb::-webkit-scrollbar{width:6px}.sb::-webkit-scrollbar-thumb{background:#ffffff1f;border-radius:3px}.sb>*{flex-shrink:0}.sb__burger{height:48px;display:flex;align-items:center;padding:0 16px;gap:10px;color:#fff6;border-bottom:1px solid rgba(255,255,255,.08);flex-shrink:0;position:sticky;top:0;z-index:1;background:var(--clr-nav)}.sb__section{color:#fff6;font-size:10px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;padding:14px 16px 6px}.sb__item{display:flex;align-items:center;gap:10px;padding:6px 16px;cursor:pointer;border-left:2px solid transparent;color:#fffc;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;transition:background .12s ease,color .12s ease;-webkit-user-select:none;user-select:none}.sb__item--child{padding-left:36px}.sb__item:hover{background:#ffffff0f;color:#fff}.sb__item--active{color:#60a5fa;border-left-color:#60a5fa}.sb__item--active:hover{color:#60a5fa}.sb__icon{width:16px;height:16px;flex-shrink:0;display:flex;align-items:center;justify-content:center}.sb{transition:width .22s ease}.sb--collapsed{width:0;min-width:0;border-right:0;overflow:hidden}.sb--collapsed~main{padding-left:60px;transition:padding-left .22s ease}main{transition:padding-left .22s ease}.sb-reopen{position:fixed;top:0;left:0;width:48px;height:48px;background:var(--clr-nav);color:#fff9;border:none;border-bottom-right-radius:8px;cursor:pointer;z-index:200;align-items:center;justify-content:center;transition:color .12s ease,background .12s ease}.sb-reopen:hover{color:#fff;background:var(--clr-nav-hover)}#globalLoader{position:fixed;top:0;left:0;width:100vw;height:100vh;background-color:var(--clr-nav);color:#fff;font-weight:700;display:flex;justify-content:center;align-items:center;z-index:9999;transition:opacity .3s ease,visibility .3s ease;opacity:1;visibility:visible}.element-row{border-bottom:1px solid #ddd}.element-cell{padding:6px;text-align:center}.img-cell-wrapper{width:70px;height:70px;overflow:hidden;margin:0 auto;border-radius:4px}.pieces-cell{padding:6px;text-align:center}.expand-row{background:#f9f9f9}.expand-cell{border:none;padding:0}.expand-container{padding:8px;max-height:2000px;opacity:1;overflow:hidden;transition:max-height .3s ease,opacity .2s ease,padding .3s ease}.expand-container.hidden{display:block;max-height:0;opacity:0;padding:0 8px}.hidden{display:none}.box-input{position:absolute;border:1px solid #444;background:#fffc;padding:2px 4px;border-radius:var(--radius);cursor:move}.img-preview{max-width:100px;display:block;margin:5px 0}.modal{position:fixed;top:0;left:0;width:100%;height:100%;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000}#contratModal>.modal-form,#contratDetailModal>.modal-form{min-width:1200px}.modal-form{display:flex;background:#fff;padding:30px 40px;border-radius:var(--radius);min-width:500px;box-shadow:var(--shadow-modal);font-family:var(--font-base);color:#333;flex-direction:column;max-height:90vh;overflow-y:auto;scrollbar-width:thin;scrollbar-color:rgba(100,100,100,.5) transparent;animation:modalFadeIn .2s ease}.modal-form h2{text-align:center;margin-bottom:16px;color:var(--clr-primary-active);font-size:1.2em;font-weight:700;border-bottom:2px solid var(--clr-primary-light);padding-bottom:10px}.modal-form label{font-size:var(--font-size-sm);font-weight:600;margin-bottom:4px;color:var(--clr-text);display:block}.modal-form input[type=text],.modal-form input[type=date],.modal-form input[type=number]{width:100%;padding:8px 10px;border:1px solid var(--clr-border);margin-bottom:10px;border-radius:var(--radius);font-size:var(--font-size-base);font-family:var(--font-base);transition:border-color .2s ease,box-shadow .2s ease}.modal-form input[type=text]:focus,.modal-form input[type=date]:focus,.modal-form input[type=number]:focus{border-color:var(--clr-primary);box-shadow:0 0 0 3px #2563c81a;outline:none}.modal-form select{width:100%;padding:8px 10px;border:1px solid var(--clr-border);border-radius:var(--radius);font-size:var(--font-size-base);font-family:var(--font-base);transition:border-color .2s ease;margin-bottom:10px;cursor:pointer}.modal-form select:focus{border-color:var(--clr-primary);outline:none}.modal-form button{margin-bottom:10px}.modal-form::-webkit-scrollbar{width:6px}.modal-form::-webkit-scrollbar-thumb{background-color:#64646480;border-radius:3px}.modal-form::-webkit-scrollbar-track{background:transparent}#plan{width:100%}svg{max-width:100%;height:auto;display:block;margin:0}.boxCellule{display:inline-block;padding:4px;height:auto;font-size:12px;font-weight:700;position:relative;border-radius:var(--radius);transition:background-color .3s,transform .2s}.boxCellule.dragging{will-change:transform}.boxCellule p{margin:1px;overflow:hidden;text-overflow:ellipsis}.boxCellule--occupied{background:#15803d2e;border-left:3px solid #15803d}.boxCellule--free{background:#eab3082e;border-left:3px solid #eab308}.boxCellule:hover{background:#dcdcdc;transform:scale(1.05);cursor:pointer}.popupOverlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#0006;display:flex;align-items:center;justify-content:center;z-index:9998;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.popupModal{background:#fff;padding:25px 35px 45px;height:auto;border-radius:var(--radius-table);box-shadow:var(--shadow-box);position:relative;font-family:var(--font-base);color:#333;line-height:1.6;text-align:left;animation:fadeIn .25s ease-out}.popupClose{position:absolute;top:10px;right:15px;font-size:20px;font-weight:700;color:#666;cursor:pointer;transition:color .2s}.popupClose:hover{color:red}.popupModal p{margin:6px 0;font-size:15px;border-left:3px solid var(--clr-bleu-clair);background:#f9f9f9;border-radius:4px;padding:6px 10px}.popupOkBtn{display:block;margin:25px auto 0;padding:10px 25px;font-size:15px;font-weight:600;border:none;border-radius:6px;background-color:var(--clr-bleu-clair);color:#fff;cursor:pointer;transition:background-color .2s,transform .1s}.popupOkBtn:hover{background-color:#1565c0;transform:translateY(-1px)}.popupOkBtn:active{background-color:#0d47a1;transform:translateY(0)}.popup-header{display:flex;align-items:center;gap:12px;margin-bottom:8px}.popup-header h2{margin:0}.popup-societe{font-size:14px;color:var(--clr-text-muted);margin:0 0 12px;padding:0;background:none;border:none}.popup-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:10px;margin:12px 0}.popup-grid__item{background:var(--clr-surface);border:1px solid var(--clr-border);border-radius:var(--radius);padding:10px 12px}.popup-grid__label{display:block;font-size:11px;color:var(--clr-text-muted);font-weight:600;text-transform:uppercase;letter-spacing:.03em;margin-bottom:4px}.popup-grid__value{display:block;font-size:15px;font-weight:600;color:var(--clr-text)}@keyframes fadeIn{0%{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}.popupModalImg{display:flex;flex-direction:column;align-items:center;justify-content:center;max-width:95vw;max-height:90vh;background:#fff;padding:15px;border-radius:10px;overflow:hidden;box-shadow:0 5px 30px #0006;transition:transform .2s ease,opacity .2s ease}.imgTableauElement,.imgTableauPieces{width:70px;height:70px;overflow:hidden;cursor:pointer;border:1px solid rgb(204,204,204);border-radius:4px;background-color:#f0f0f0;object-fit:contain}.imgZoom{max-width:90vw;max-height:80vh;width:auto;height:auto;object-fit:contain;border-radius:6px;display:block;margin:auto;box-shadow:0 0 10px #0006}table{width:100%;border-collapse:separate;border-spacing:0;font-family:var(--font-base);font-size:14px;color:#2c3e50;background:#fff;border-radius:8px;overflow:hidden;box-shadow:0 4px 12px #00000014;margin:30px 0;transition:box-shadow .3s ease}th,td{text-align:center;padding:12px 18px;font-weight:400;font-size:16px;color:#3a4a5a;border-bottom:1px solid rgba(0,0,0,.05);letter-spacing:.1px;transition:color .2s ease,background-color .2s ease}td{border:none}th{background-color:var(--clr-th-bg);color:var(--clr-th-text);font-weight:600}th:hover{background-color:var(--clr-th-bg-hover)}tr:nth-child(2n){background-color:var(--clr-row-even)}tr:hover{background-color:var(--clr-row-hover)}@media (max-width: 640px){table thead{display:none}table tbody tr{display:block;margin-bottom:14px;border:1px solid rgba(0,0,0,.08);border-radius:8px;background:#fff;box-shadow:0 4px 12px #00000014;overflow:hidden;padding:10px 0}table tbody td{display:flex;justify-content:space-between;align-items:center;padding:12px 16px;font-size:14px;border-bottom:none}table tbody td:before{content:attr(data-label);font-weight:600;color:#1a2c47;width:50%;text-align:left}}.library-modal{position:fixed;top:0;left:0;width:100%;height:100%;background:#000000b3;display:flex;align-items:center;justify-content:center;z-index:2000}.lib-content{background:#fff;width:600px;max-height:80vh;padding:25px;border-radius:10px;overflow:hidden;box-shadow:0 4px 20px #0003;display:flex;flex-direction:column;gap:5px}.lib-content>label{display:block;margin-bottom:5px;font-weight:500;color:#333;font-size:14px}.lib-content>input{display:block;width:100%;padding:8px 10px;margin-bottom:15px;border:1px solid #ccc;border-radius:5px;font-size:14px;transition:border-color .2s,box-shadow .2s}.lib-content>input:focus{border-color:#888;box-shadow:0 0 5px #0000001a;outline:none}.lib-content>hr{border:none;height:1px;background-color:#ccc;margin:20px 0;border-radius:2px}.lib-grid{display:flex;flex-wrap:nowrap;gap:10px;padding:5px;overflow-x:auto;overflow-y:hidden;-webkit-overflow-scrolling:touch;scrollbar-width:thin;scrollbar-color:#888 #f0f0f0}.lib-grid::-webkit-scrollbar{height:8px}.lib-grid::-webkit-scrollbar-track{background:#f0f0f0;border-radius:4px}.lib-grid::-webkit-scrollbar-thumb{background-color:#888;border-radius:4px;border:2px solid #f0f0f0}.lib-wrapper{position:relative;flex:0 0 100px;height:100px;overflow:hidden;display:flex;align-items:center;justify-content:center;cursor:pointer;border:1px solid #ccc;border-radius:6px;background-color:#f0f0f0;transition:transform .2s,box-shadow .2s}.lib-wrapper:hover{transform:scale(1.05);box-shadow:0 2px 10px #00000026}.lib-img{max-width:100%;max-height:100%;display:block;object-fit:cover;border-radius:6px}.lib-delete-btn{position:absolute;top:4px;right:4px;background-color:var(--clr-bleu-clair);border:none;border-radius:50%;font-size:13px;cursor:pointer;padding:2px 5px;line-height:1;opacity:1;transition:opacity .2s,background .2s,transform .2s;z-index:5}.lib-delete-btn:hover{background-color:var(--clr-bleu-clair-hover);color:#fff;transform:scale(1.1)}#container_badge,#container_historique,#container_cannons,#container_contrats,#container_documents_badge,#container_documents_clef,#container_documents_edl{width:100%;overflow-x:auto;flex-direction:column;min-height:calc(100vh - 80px);padding-bottom:80px;box-sizing:border-box}#container_badge table,#container_historique table,#container_cannons table,#container_documents_badge table,#container_documents_clef table,#container_documents_edl table{width:100%;border-collapse:collapse}#container_badge td,#container_historique td,#container_cannons td{vertical-align:middle;overflow:hidden;text-overflow:ellipsis;word-wrap:break-word;white-space:normal;height:32px;padding:4px 10px;max-width:220px}#container_badge th,#container_historique th,#container_cannons th{vertical-align:middle;overflow:hidden;text-overflow:ellipsis;word-wrap:break-word;white-space:normal;height:32px;padding:12px 18px;max-width:220px}#container_badge th:hover{background-color:var(--clr-th-bg-hover)}#container_badge tbody tr:nth-child(odd),#container_historique tbody tr:nth-child(odd),#container_cannons tbody tr:nth-child(odd){background-color:var(--clr-row-even)}#search_badge input,#search_soc input,#search_cannons input,#search_contrats input,#search_documents_badge input,#search_documents_clef input,#search_documents_edl input,.filter-select{padding:5px;width:auto;border-radius:4px;margin-bottom:.5rem;border:1px solid #ccc}main .pagination{position:relative;bottom:unset;left:unset;transform:none;display:flex;justify-content:center;flex-wrap:wrap;gap:.25rem;background-color:#fffffff2;padding:6px 10px;border-radius:8px;box-shadow:0 0 10px #0003;z-index:10;width:fit-content;margin:1rem auto}#main.login-page{min-height:100vh;background:linear-gradient(135deg,#0c1929,#1e2d3d 55%,#162848);display:flex;align-items:center;justify-content:center}.login-wrapper{width:100%;display:flex;justify-content:center;align-items:center;padding:20px;box-sizing:border-box}.login-card{width:100%;max-width:420px;border-radius:16px;overflow:hidden;box-shadow:0 24px 64px #0000008c;animation:loginSlideUp .45s ease forwards}.login-card-header{background:linear-gradient(135deg,#1e2d3d,#2563c8);padding:36px 48px;display:flex;justify-content:center;align-items:center}.login-card-header svg{width:190px;height:auto}.login-card-body{background:#fff;padding:32px 40px 28px}.login-subtitle{color:#64748b;font-size:.875rem;margin:0 0 24px;text-align:center;letter-spacing:.2px}.login-field-group{display:flex;flex-direction:column;margin-bottom:16px}.login-field-group label{font-weight:600;color:#374151;font-size:.82rem;margin-bottom:6px;letter-spacing:.3px;text-transform:uppercase}.login-field-group input{padding:11px 14px;border:1.5px solid #e2e8f0;border-radius:8px;font-size:15px;background:#f8fafc;color:#1e293b;transition:border-color .2s,box-shadow .2s,background .2s;outline:none}.login-field-group input::placeholder{color:#94a3b8}.login-field-group input:focus{border-color:#2563c8;box-shadow:0 0 0 3px #2563c81f;background:#fff}#loginForm button[type=submit]{width:100%;margin-top:8px;padding:13px;border:none;border-radius:8px;background:linear-gradient(135deg,#2563c8,#1a3fa8);color:#fff;font-weight:700;font-size:15px;cursor:pointer;transition:opacity .2s,transform .15s,box-shadow .2s;letter-spacing:.3px}#loginForm button[type=submit]:hover:not(:disabled){opacity:.9;transform:translateY(-1px);box-shadow:0 6px 20px #2563c859}#loginForm button[type=submit]:disabled{opacity:.55;cursor:not-allowed;transform:none}#error{min-height:1.3em;margin-top:12px;font-size:.85rem;color:#dc2626;text-align:center}@keyframes loginSlideUp{0%{transform:translateY(18px);opacity:0}to{transform:translateY(0);opacity:1}}@supports not ((backdrop-filter: blur(4px)) or (-webkit-backdrop-filter: blur(4px))){.modal{background-color:#000c}}button,.boxCellule,.popupModal,.lib-wrapper{will-change:transform}.modalTransfer{position:fixed;top:0;right:0;bottom:0;left:0;width:100vw;height:100vh;background:#0000008c;display:flex;align-items:center;justify-content:center;z-index:1000;padding:10px;box-sizing:border-box}.modalTransferContent{background:#fff;border-radius:10px;width:90%;max-width:800px;max-height:90vh;overflow-y:auto;padding:25px;box-shadow:0 10px 30px #00000040;box-sizing:border-box;display:flex;flex-direction:column}@keyframes modalFadeIn{0%{opacity:0;transform:translateY(-20px)}to{opacity:1;transform:translateY(0)}}.navTransfer{font-family:var(--font-base, Arial, sans-serif);font-size:15px;color:#2c2c2c;line-height:1.6}.navTransfer div{border-radius:6px;transition:background .25s ease,transform .2s ease,box-shadow .2s ease}.batiment-line{font-weight:600;padding:4px;margin-top:6px;cursor:pointer}.batiment-line:hover{background:linear-gradient(90deg,#1a73e814,#1a73e826);box-shadow:0 2px 8px #1a73e826;transform:translate(3px)}.etage-line{font-weight:500;padding:6px 12px;margin-left:18px;cursor:pointer;border-radius:6px}.etage-line:hover{background:linear-gradient(90deg,#1a73e80f,#1a73e81f);box-shadow:0 1px 6px #1a73e81f;transform:translate(2px)}.cellule-line{font-weight:400;padding:6px 12px;margin-left:32px;color:#1a73e8;cursor:pointer;position:relative;border-radius:6px;transition:all .2s ease}.cellule-line:hover,.clickable:hover{background:linear-gradient(90deg,#1a73e81a,#1a73e826);transform:translate(4px) scale(1.02);box-shadow:0 2px 10px #1a73e826}.cellule-line:active{background-color:#1a73e833;transform:translate(2px) scale(.99)}.cellule-line:before{color:#1a73e8;font-size:18px;position:absolute;left:8px;top:50%;transform:translateY(-50%);opacity:.6}.clickable{color:#1a73e8;cursor:pointer}.etages-container,.cellules-container{margin-top:4px}.modal-title{font-size:22px;font-weight:700;margin-bottom:6px;text-align:center}.modal-subtitle{font-size:14px;margin-bottom:15px;text-align:center;color:#555}.modal-close{margin:6px;font-weight:500;padding:8px 16px;border-radius:6px;cursor:pointer;transition:all .2s ease;width:auto;max-width:100px}.transfer-info{font-family:var(--font-base);font-size:15px;color:#2c2c2c;line-height:1.6;margin-bottom:20px}.transfer-info h3{font-weight:600;margin-bottom:10px}.transfer-info ul{padding-left:20px;margin:0;list-style-type:disc}.transfer-info ul li{padding:4px 0}.modal-buttons{display:flex;justify-content:flex-start;gap:10px;margin-top:20px}.modal-field{margin-bottom:15px}.modal-field-checkbox{display:flex;flex-direction:row!important;align-items:center;gap:10px;margin-bottom:15px}.modal-field-checkbox label{margin-bottom:0!important;white-space:nowrap}.modal-field-checkbox input[type=checkbox]{margin:0}.modal-section-title{font-size:14px;font-weight:600;color:var(--clr-bleu-clair);text-transform:uppercase;letter-spacing:.04em;margin:18px 0 8px;padding-bottom:4px;border-bottom:2px solid var(--clr-bleu-clair)}.modal-section-title:first-child{margin-top:0}.modal-validate{margin:6px;font-weight:500;padding:8px 16px;border-radius:6px;cursor:pointer;transition:all .2s ease;width:auto}[id^=container_societe],[id^=container_cannons],[id^=container_contrats],[id^=container_documents_badge],[id^=container_documents_clef],[id^=container_documents_edl],.container-base{max-width:90%;margin:30px auto;background:#fff;padding:20px;border-radius:var(--radius-lg);box-shadow:var(--shadow-box);font-family:var(--font-base);color:#333}.action-bar{display:flex;gap:10px;margin-bottom:15px}#search_soc,#search_badge,#search_cannons,#search_contrats,#search_documents_badge,#search_documents_clef,#search_documents_edl{display:flex;margin-bottom:20px}#search_soc input,#search_badge input,#search_cannons input,#search_contrats input,#search_documents_badge input,#search_documents_clef input,#search_documents_edl input{flex:1;padding:8px 12px;border-radius:var(--radius);border:1px solid var(--clr-border);font-size:var(--font-size-base);font-family:var(--font-base);transition:border-color .2s ease,box-shadow .2s ease}#search_soc input:focus,#search_badge input:focus,#search_cannons input:focus,#search_contrats input:focus,#search_documents_badge input:focus,#search_documents_clef input:focus,#search_documents_edl input:focus{border-color:var(--clr-primary);box-shadow:0 0 0 3px #2563c81a;outline:none}.stock-badge{display:flex;align-items:center;gap:10px}#societe{margin-top:10px}.societe-item,.cannon-item,.contrat-item,.docbadge-item,.docclef-item,.docedl-item{border:1px solid #ddd;border-radius:8px;background:#fafafa;margin-bottom:12px;overflow:hidden;transition:background .2s}.societe-item:hover,.cannon-item:hover,.contrat-item:hover,.docbadge-item:hover,.docclef-item:hover,.docedl-item:hover{background:#eef5ff}.edl-toolbar{height:48px;display:flex;align-items:center;gap:10px;padding:0 16px;background:#fff;border-bottom:1px solid var(--clr-border, #e2e8f0)}.edl-toolbar__title{font-size:15px;font-weight:600;color:var(--clr-text, #1d2d3d);white-space:nowrap}.edl-toolbar__count{font-size:12px;font-weight:400;color:var(--clr-text-muted, #64748b)}.edl-toolbar__spacer{flex:1}.edl-search-wrap{position:relative;display:flex;align-items:center}.edl-search-wrap svg{position:absolute;left:9px;color:var(--clr-text-muted, #64748b);pointer-events:none}.edl-search-input{height:30px;width:220px;padding:0 10px 0 30px;border:1px solid var(--clr-border, #e2e8f0);border-radius:4px;font-size:13px;font-family:inherit;color:var(--clr-text, #1d2d3d);background:#fff;outline:none}.edl-search-input:focus{border-color:var(--clr-primary, #2563c8);box-shadow:0 0 0 3px #2563c81f}#edl-table{width:100%;font-size:14px;border-collapse:collapse}#edl-table thead th{padding:10px 12px;text-align:left;font-weight:600;font-size:11px;letter-spacing:.04em;text-transform:uppercase;color:var(--clr-th-text, #f0f4f8);border-bottom:none;white-space:nowrap;background:var(--clr-th-bg, #3d5a80);position:sticky;top:0;z-index:2}#edl-table td{padding:9px 12px;border-bottom:1px solid var(--clr-border, #e2e8f0);vertical-align:middle}#edl-table tr.edl-in-row{background:#fafbfc;transition:background .15s}#edl-table tr.edl-in-row:hover{background:#eef4ff}#edl-table tr.edl-out-row{background:#f8f7ff;transition:background .15s}#edl-table tr.edl-out-row:hover{background:#eef2f8}#edl-table tr.edl-in-row.edl-group-pair td{border-bottom:1px dashed #e0e0e0}#edl-table tr.edl-contract-header td{padding:9px 16px;font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.07em;color:#fff;background:var(--clr-th-bg, #3d5a80);border:none;border-top:1px solid rgba(255,255,255,.1)}#edl-table tbody tr.edl-contract-header:first-child td{border-top:none}#edl-table tr.edl-contract-header:hover td{background:var(--clr-th-bg-hover, #2e4667)}.edl-hdr-count{margin-left:10px;font-weight:500;text-transform:none;letter-spacing:0;font-size:11px;color:#ffffffa6}#edl-table tr.edl-title-sep td{padding:6px 16px 6px 24px;background:#eef2f8;color:var(--clr-text, #1d2d3d);font-size:12px;font-weight:600;letter-spacing:0;border-top:1px solid var(--clr-border, #e2e8f0);border-bottom:none;font-style:normal}#edl-table tr.edl-title-sep:hover td{background:#e3eaf3}.edl-title-inner{display:inline-flex;align-items:center;gap:8px;width:100%}.edl-ver-count{margin-left:8px;font-size:11px;font-weight:500;color:var(--clr-text-muted, #64748b)}#edl-table tr.edl-workflow-sep td{padding:0;height:0;border:none;border-top:1px dashed #dde3ee;background:transparent}#edl-table tr.edl-group-first td{padding-top:10px}#edl-table tr.edl-group-last td{padding-bottom:10px}.edl-soc-name{font-weight:600;font-size:13px;color:#222;display:block}.edl-cell-name{font-size:11px;color:#888;display:block;margin-top:1px}.edl-type-tag{display:inline-block;border-radius:3px;padding:2px 7px;font-size:10px;font-weight:600;letter-spacing:.06em;vertical-align:middle;margin-right:6px;white-space:nowrap;text-transform:uppercase}.edl-type-in{background:#ece8ff;color:#5b4ae8}.edl-type-out{background:#e3eef9;color:#3b6aa8}.edl-child-arrow{color:#94a3b8;font-size:13px;margin-right:4px}.edl-doc-link{color:var(--clr-primary, #2563c8);text-decoration:none;font-weight:500;font-family:Courier New,Courier,monospace;font-size:13px;letter-spacing:-.01em}.edl-doc-link:hover{text-decoration:underline}.edl-status{display:inline-flex;align-items:center;gap:5px;font-size:12px;white-space:nowrap}.edl-status:before{content:"";display:inline-block;width:7px;height:7px;border-radius:50%;flex-shrink:0}.edl-status-signed{color:#15803d}.edl-status-signed:before{background:#22c55e}.edl-status-draft{color:#92400e}.edl-status-draft:before{background:#f59e0b}.edl-chip{display:inline-block;border-radius:12px;padding:2px 9px;font-size:11px;font-weight:700;white-space:nowrap}.edl-chip-in{background:#ece8ff;color:#5b4ae8;border:1px solid #c4b5fd}.edl-chip-out{background:#e3eef9;color:#3b6aa8;border:1px solid #93c5fd}.edl-chip-signed{background:#dcfce7;color:#15803d;border:1px solid #86efac}.edl-chip-draft{background:#fef9c3;color:#92400e;border:1px solid #fde047}.edl-action-btn{padding:4px 10px;font-size:12px;cursor:pointer}.tooltip{position:fixed;background:#323232f2;color:#fff;padding:10px 14px;border-radius:6px;font-size:14px;max-width:400px;max-height:250px;overflow-y:auto;overflow-x:hidden;pointer-events:none;z-index:1000;display:none;box-shadow:0 4px 12px #0000004d;line-height:1.4}.societe-header,.cannon-header,.contrat-header{padding:12px;display:flex;justify-content:space-between;align-items:center;cursor:pointer;background:var(--clr-primary-light);transition:background .15s ease}.societe-header:hover,.cannon-header:hover,.contrat-header:hover{background:#bfdbfe}.societe-header strong,.cannon-header strong,.contrat-header strong{color:var(--clr-primary);font-size:1.1em}.societe-header .toggle-btn,.cannon-header .toggle-btn{background:transparent;border:none;font-size:16px;cursor:pointer;color:#555}.societe-content,.cle-content{padding:12px 15px;background:#fff;border-top:1px solid #ddd}.tab-container{margin-top:10px}.tab-buttons{display:flex;gap:4px;margin-bottom:8px}.tab-buttons button{flex:1;border-radius:var(--radius) var(--radius) 0 0;margin:0}.tab-contents{border:1px solid #ccc;border-radius:0 0 5px 5px;padding:12px;background:#fff;box-sizing:border-box;overflow-x:auto}.tab-table{width:100%;max-width:100%;border-collapse:separate;border-spacing:0;table-layout:auto;word-wrap:break-word}.tab-table thead th{padding:8px 10px;text-align:left;font-weight:600;font-size:11px;letter-spacing:.04em;text-transform:uppercase;color:var(--clr-th-text, #f0f4f8);background:var(--clr-th-bg, #3d5a80);position:sticky;top:0;z-index:10;white-space:nowrap;border:none;-webkit-user-select:none;user-select:none}.tab-table tbody td{padding:8px 10px;border-bottom:1px solid var(--clr-border, #e2e8f0);vertical-align:middle;font-size:13px}.tab-table tbody tr{transition:background .12s}.tab-table tbody tr:hover{background:var(--clr-row-hover, #e8f0fe)}.tbl-toolbar{display:flex;align-items:center;gap:10px;padding:0 4px;margin-bottom:12px;flex-wrap:wrap}.tbl-toolbar__title{font-size:15px;font-weight:600;color:var(--clr-text,#1e293b);white-space:nowrap;margin:0}.tbl-toolbar__spacer{flex:1}.tbl-search-wrap{position:relative;display:flex;align-items:center}.tbl-search-wrap svg{position:absolute;left:9px;color:var(--clr-text-muted,#64748b);pointer-events:none}.tbl-search-input{height:30px;width:220px;padding:0 10px 0 30px;border:1px solid var(--clr-border,#e2e8f0);border-radius:4px;font-size:13px;font-family:inherit;color:var(--clr-text,#1e293b);background:#fff;outline:none}.tbl-search-input:focus{border-color:var(--clr-primary,#2563c8);box-shadow:0 0 0 3px #2563c81f}.tbl-wrapper{overflow-x:auto;max-height:calc(100vh - 260px);overflow-y:auto;border-radius:var(--radius-lg,8px);border:1px solid var(--clr-border,#e2e8f0)}.tbl-toolbar__actions{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.tbl-subtitle{font-size:var(--font-size-sm,12px);color:var(--clr-text-muted,#64748b);white-space:nowrap}.tbl-section{margin:20px 0}.tbl-filter-bar{display:flex;align-items:center;gap:8px;margin-bottom:10px;flex-wrap:wrap}.select-annee{padding:5px 10px;border-radius:6px;border:1px solid var(--clr-border,#ccc);font-size:.95em;font-family:inherit}.budget-title{margin:0;color:var(--clr-nav);font-size:1.3em}.budget-cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:14px;margin-bottom:20px}.budget-card{background:#fff;border:1px solid var(--clr-border,#e0e0e0);border-radius:8px;padding:14px 12px;text-align:center;box-shadow:var(--shadow-box);border-top:4px solid transparent}.budget-cat-header{background:var(--clr-nav,#1e2d3d);cursor:pointer;-webkit-user-select:none;user-select:none}.budget-cat-header td{color:#fff;font-weight:700;font-size:.92em;padding:0}.budget-cat-header__inner{display:flex;align-items:center;padding:8px 12px}.budget-cat-header__chevron{margin-right:8px;font-size:.8em;transition:transform .2s;display:inline-block}.budget-subtotal{background:#e8f0fe;font-weight:700;border-top:2px solid #c8d8f8}.budget-total{background:#34495e;color:#fff;font-weight:700;font-size:1.05em;border-top:3px solid #2c3e50}.btn-budget{padding:6px 14px;font-size:.88em;border:none;border-radius:5px;cursor:pointer;font-family:inherit;line-height:1.4}.tbl-chip{display:inline-block;padding:2px 10px;border-radius:12px;font-size:11px;font-weight:600;white-space:nowrap}.tbl-chip--success{background:#dcfce7;color:#15803d;border:1px solid #86efac}.tbl-chip--warning{background:#fef9c3;color:#92400e;border:1px solid #fde047}.tbl-chip--danger{background:#fee2e2;color:#991b1b;border:1px solid #fca5a5}.tbl-chip--info{background:#e3eef9;color:#3b6aa8;border:1px solid #93c5fd}.tbl-chip--muted{background:#f1f5f9;color:#64748b;border:1px solid #cbd5e1}.tbl-action-btn{padding:3px 8px;font-size:12px;border-radius:5px;cursor:pointer;border:none;font-family:inherit;line-height:1.4;transition:opacity .15s}.tbl-action-btn:hover{opacity:.82}.tbl-empty-td{text-align:center;padding:60px 20px;color:#aaa}.celltab{padding:12px 0}.celltab-kpi{display:flex;gap:12px;flex-wrap:wrap;margin-bottom:16px}.celltab-grid{display:flex;flex-wrap:wrap;gap:12px}.celltab-grid .bilan-card{cursor:default}.celltab-grid .bilan-card:hover{transform:none;box-shadow:0 4px 6px -1px #0000000d}.celltab-actions{margin-bottom:12px}.tab{display:none}.sub-action-bar{display:flex;gap:6px;margin-bottom:10px}.sub-action-bar button{padding:5px 10px;font-size:13px}.contrat-tab-item{margin-bottom:10px;border:1px solid #ddd;border-radius:8px;overflow:hidden}.contrat-tab-info{padding:10px 15px;display:flex;justify-content:space-between;align-items:center;background:#fff;border-bottom:1px solid #eee;cursor:pointer;transition:background-color .2s}.contrat-tab-info:hover{background-color:#f5f5f5}.contrat-tab-info .contrat-tab-date{color:#666}.suggestions{border:1px solid #ccc;max-height:150px;overflow-y:auto;background:#fff;position:relative;z-index:10}.suggestion-item{padding:5px 8px;cursor:pointer}.suggestion-item:hover{background-color:#eee}.subtable{width:100%;border-collapse:collapse;table-layout:auto;margin:0}.subtable th,.subtable td{border:1px solid #ccc;padding:4px 6px;text-align:left;white-space:nowrap}.modal-content iframe{flex:1;width:100%;height:100%;border:1px solid #ccc;border-radius:4px;background-color:#fff}.modal-content iframe::-webkit-scrollbar{width:10px}.modal-content iframe::-webkit-scrollbar-thumb{background-color:#0003;border-radius:5px}.modal-content iframe::-webkit-scrollbar-track{background-color:#0000000d}.form-row-dates{display:flex;gap:1rem;align-items:flex-end;flex-wrap:wrap}.form-row-dates .form-group{flex:1;min-width:180px}hr{border:none;height:2px;background:#ccc;margin:20px 0;border-radius:2px;box-shadow:0 1px 3px #0000001a}.contrat-item{padding:12px 18px;border-radius:10px;background:#fff;border:1px solid #ddd;margin-bottom:10px;transition:box-shadow .2s ease}.contrat-item:hover{box-shadow:0 2px 6px #00000014}.contrat-header{display:flex;align-items:center;gap:12px;cursor:pointer}.contrat-icon{width:38px;height:38px;border-radius:50%;background:#ececec;display:flex;align-items:center;justify-content:center;font-weight:700;color:#666;font-size:16px;flex-shrink:0}.contrat-text{display:flex;flex-direction:column}.contrat-title{font-weight:700;font-size:15px;margin-bottom:2px}.contrat-subtitle{font-size:13px;color:#777}.contrat-checkbox{margin-left:auto;width:20px;height:20px;cursor:pointer}#fileBrowserModal .modal-form{min-width:600px;max-width:800px;width:80%;max-height:70vh}#file-browser{display:flex;flex-direction:column;padding:10px;overflow-y:auto;background:#fff;border:1px solid #ddd;border-radius:4px;max-height:400px}#file-browser .folder,#file-browser .file{display:flex;flex-direction:row;align-items:center;padding:8px 12px;border-bottom:1px solid #eee;cursor:pointer;transition:background .2s ease;text-align:left;font-size:14px;width:100%;box-sizing:border-box}#file-browser .folder:hover,#file-browser .file:hover{background:#f0f0f0}#file-browser .folder:before,#file-browser .file:before{content:none}#file-browser .back-btn{background-color:#f9f9f9;font-weight:700;color:#555}#file-browser .file.selected{background:#e0e0e0;font-weight:500}.contrat-documents{display:flex;flex-wrap:wrap;gap:10px;padding:10px;background-color:#f9f9f9;border-top:1px solid #eee}.doc-item{padding:6px 12px;border-radius:20px;font-size:13px;font-weight:500;cursor:pointer;transition:all .2s ease;border:1px solid #ddd;background-color:#fff;color:#333;display:flex;align-items:center;gap:6px}.doc-item:hover{transform:translateY(-2px);box-shadow:0 2px 5px #0000001a;border-color:var(--clr-bleu-clair);color:var(--clr-bleu-clair)}.doc-item.empty{opacity:.5;background-color:#f0f0f0;cursor:default;border-color:transparent}.doc-item.empty:hover{transform:none;box-shadow:none;color:#888}.doc-item[data-type=contrat]{border-left:4px solid #3498db}.doc-item[data-type=etat_des_lieux_in]{border-left:4px solid #2ecc71}.doc-item[data-type=etat_des_lieux_out]{border-left:4px solid var(--clr-toast-danger)}.doc-item[data-type=badge]{border-left:4px solid #f1c40f}.doc-item[data-type=cles]{border-left:4px solid #9b59b6}.modal-doc-preview{width:90vw;height:90vh;max-width:1200px;display:flex;flex-direction:column}.modal-doc-preview iframe{flex:1;width:100%;border:none;background:#eee}.modal-doc-header{display:flex;justify-content:space-between;align-items:center;padding:10px 20px;background:#f5f5f5;border-bottom:1px solid #ddd}.modal-doc-header h3{margin:0;font-size:18px}.modal-doc-actions{display:flex;gap:10px}.status-badge{padding:4px 8px;border-radius:12px;font-size:.85em;font-weight:700;text-transform:uppercase;display:inline-block}.status-active{background-color:#d1fae5;color:#065f46;border:1px solid #a7f3d0}.status-closed{background-color:#f3f4f6;color:#374151;border:1px solid #e5e7eb}.inventory-actions{display:flex;gap:5px}.inventory-actions button{padding:6px 12px;font-size:14px}.photo-delete-btn{position:absolute;top:8px;right:8px;width:28px;height:28px;border-radius:50%;background-color:#0009;color:#fff;border:none;cursor:pointer;display:flex;align-items:center;justify-content:center;font-size:20px;line-height:1;transition:background-color .2s ease,transform .2s ease;z-index:20}.photo-delete-btn:hover{background-color:#dc3545e6;transform:scale(1.1)}.photo-add-block{border:2px dashed #ccc;height:200px;display:flex;flex-direction:column;align-items:center;justify-content:center;cursor:pointer;border-radius:8px;transition:background-color .2s ease}.photo-add-block:hover{background-color:#00000008}.photo-block{position:relative;border:1px solid #ccc;height:200px;display:flex;align-items:center;justify-content:center;background-color:#eee;overflow:hidden;border-radius:8px}.doc-group{margin-bottom:15px}.doc-group>div:first-child{font-weight:700;margin-bottom:5px;color:#555}.form-actions{margin-top:20px;display:flex;justify-content:flex-end}.form-group input,.form-group select{width:100%;padding:6px 10px;border:1px solid #ccc;border-radius:4px}.btn{padding:6px 12px;font-size:13px}.btn-primary{background-color:var(--clr-primary);color:#fff}.btn-secondary{background-color:var(--clr-neutral);color:#fff}.btn-success{background-color:var(--clr-success);color:#fff}.status{padding:4px 8px;border-radius:4px;font-size:12px;font-weight:700;white-space:nowrap}.status-ok{background-color:var(--clr-primary);color:#fff}.status-transition{background-color:var(--clr-danger);color:#fff}.status-ready{background-color:#dcfce7;color:#92400e}.status-wait{background-color:#fef3c7;color:#92400e}.form-group-checkbox{display:flex;align-items:center;gap:10px;margin-top:10px;margin-bottom:5px}.form-group-checkbox input[type=checkbox]{margin:0;width:18px;height:18px;cursor:pointer}.form-group-checkbox label{margin:0!important;cursor:pointer;font-weight:600}.bilan_locatif-container{padding:20px}.bilan_locatif-container h2{font-size:1.4em;color:var(--clr-primary-active);margin-bottom:16px;border-bottom:2px solid #d0e1f9;padding-bottom:8px}.bilan-resume{display:flex;gap:16px;margin-bottom:24px;flex-wrap:wrap}.bilan-resume-card{flex:1;min-width:160px;background:#f4f7fb;border:1px solid #d0e1f9;border-left:4px solid var(--clr-primary);border-radius:8px;padding:14px 18px;display:flex;flex-direction:column;gap:6px;box-shadow:0 2px 6px #4a90e214;transition:box-shadow .2s ease}.bilan-resume-card:hover{box-shadow:0 4px 12px #4a90e22e}.bilan-resume-label{font-size:12px;text-transform:uppercase;letter-spacing:.05em;color:#6b7c93;font-weight:600}.bilan-resume-value{font-size:1.6em;font-weight:700;color:var(--clr-primary-active);line-height:1.1}.bilan-resume-value small{font-size:.55em;font-weight:400;color:#6b7c93;margin-left:3px}#bilan_locatif_table{border-collapse:collapse;width:100%;background:#fff;border-radius:8px;overflow:hidden;box-shadow:0 1px 4px #00000012}#bilan_locatif_table thead tr{background:var(--clr-primary);color:#fff}#bilan_locatif_table th{padding:10px 14px;text-align:center;font-size:13px;font-weight:600;letter-spacing:.03em}#bilan_locatif_table tbody tr:nth-child(2n){background:#f4f7fb}#bilan_locatif_table tbody tr:hover{background:#e8f0fb}#bilan_locatif_table td{padding:8px 14px;font-size:14px;border-bottom:1px solid #eef0f3;color:#333;text-align:center}.bilan-table-wrapper{margin-top:4px}.bilan-toggle-btn{background:var(--clr-primary);color:#fff;border:none;padding:8px 16px;border-radius:6px;font-size:13px;font-weight:600;cursor:pointer;margin-bottom:12px;transition:background .2s ease,transform .1s ease;letter-spacing:.02em}.bilan-toggle-btn:hover{background:var(--clr-primary-hover);transform:translateY(-1px)}.bilan-toggle-btn:active{transform:translateY(0)}.bilan-grid{display:flex;gap:15px;flex-wrap:wrap;margin-bottom:30px}.bilan-section-title{width:100%;font-size:14px;font-weight:600;color:#64748b;margin-bottom:16px;letter-spacing:.02em}.bilan-card{background:#fff;border:1px solid #e2e8f0;padding:12px 18px;border-radius:12px;min-width:180px;flex:1 1 180px;box-shadow:0 4px 6px -1px #0000000d;transition:transform .2s ease,box-shadow .2s ease,border-color .2s ease,background .2s ease;cursor:pointer;position:relative;overflow:hidden}.bilan-card:hover{transform:translateY(-2px);box-shadow:0 10px 15px -3px #0000001a}.bilan-card.is-active{border-color:#3b82f6!important;box-shadow:0 8px 15px -3px #3b82f633!important;background:#f0f7ff!important;transform:translateY(-2px)}.bilan-card-label{font-size:13px;color:#64748b;font-weight:600;margin-bottom:8px}.bilan-card-value{font-size:18px;color:#0f172a;font-weight:700;display:flex;align-items:baseline;justify-content:flex-start}.bilan-card-value.is-between{justify-content:space-between}.bilan-unit{font-size:11px;font-weight:400;color:#64748b;margin-left:4px}.bilan-progress-container{width:100%;height:6px;background:#f1f5f9;border-radius:3px;overflow:hidden;margin-top:8px}.bilan-progress-bar{height:100%;transition:width .5s cubic-bezier(.4,0,.2,1)}.bilan-card-active-text{font-size:12px;font-weight:600}.bilan-tabs{display:flex;gap:2px;margin-bottom:25px;border-bottom:2px solid #eef0f3}.bilan-tab{padding:12px 24px;cursor:pointer;font-weight:600;font-size:14px;color:#64748b;border-bottom:2px solid transparent;transition:all .2s ease;margin-bottom:-2px}.bilan-tab:hover{color:#3b82f6;background:#f8fafc}.bilan-tab.is-active{color:#3b82f6;border-bottom-color:#3b82f6}.bilan-tab-content{display:none;animation:fadeIn .3s ease}.bilan-tab-content.is-active{display:block}.bilan-controls{background:#f8fafc;padding:20px;border-radius:12px;margin-bottom:30px;display:flex;align-items:flex-end;gap:20px;flex-wrap:wrap;border:1px solid #e2e8f0}.bilan-control-group{display:flex;flex-direction:column;gap:8px}.bilan-control-group label{font-size:12px;font-weight:600;color:#64748b;text-transform:uppercase;letter-spacing:.05em}.bilan-control-group input{padding:10px 14px;border:1px solid #cbd5e1;border-radius:8px;font-size:14px;color:#0f172a;outline:none;transition:border-color .2s}.bilan-control-group input:focus{border-color:#3b82f6;box-shadow:0 0 0 3px #3b82f61a}.bilan-btn-fetch{background:#3b82f6;color:#fff;border:none;padding:11px 24px;border-radius:8px;font-weight:600;font-size:14px;cursor:pointer;transition:background .2s,transform .1s}.bilan-btn-fetch:hover{background:#2563eb}.bilan-btn-fetch:active{transform:translateY(1px)}@keyframes fadeIn{0%{opacity:0;transform:translateY(5px)}to{opacity:1;transform:translateY(0)}}#global-toast{position:fixed;bottom:24px;right:24px;padding:12px 20px;color:#fff;border-radius:var(--radius);z-index:9999;box-shadow:var(--shadow-modal);font-family:var(--font-base);font-size:var(--font-size-base);max-width:360px;line-height:1.4;opacity:0;transform:translateY(10px);transition:opacity .25s ease,transform .25s ease;pointer-events:none}#global-toast.is-visible{opacity:1;transform:translateY(0);pointer-events:auto}.page-loading{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:80px 20px;gap:14px;color:var(--clr-text-muted);font-size:var(--font-size-base)}.page-loading-spinner{width:32px;height:32px;border:3px solid var(--clr-border);border-top-color:var(--clr-primary);border-radius:50%;animation:spin .65s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.page-error{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:80px 20px;gap:14px;color:var(--clr-text-muted);font-size:var(--font-size-base)}.ws-dot{width:8px;height:8px;border-radius:50%;background:#666;transition:background .4s;flex-shrink:0}.ws-dot.connected{background:#2ecc71}.ws-dot.disconnected{background:var(--clr-toast-danger)}.ws-dot.reconnecting{background:#f39c12;animation:ws-pulse 1.2s ease-in-out infinite}@keyframes ws-pulse{0%,to{opacity:1}50%{opacity:.35}}.energy-container{display:flex;flex-direction:column;gap:16px}.energy-kpi{display:flex;gap:12px;flex-wrap:wrap}.energy-kpi__card{background:#fff;border:1px solid var(--clr-border);border-radius:var(--radius);padding:12px 18px;min-width:110px;text-align:center;box-shadow:var(--shadow-box)}.energy-kpi__value{font-size:22px;font-weight:700}.energy-kpi__label{font-size:var(--font-size-sm);color:var(--clr-text-muted);margin-top:2px}.energy-kpi__toggle{background:none;border:none;color:var(--clr-text-muted);cursor:pointer;font-size:var(--font-size-sm);padding:4px 8px;margin-bottom:6px}.energy-kpi__toggle:hover{color:var(--clr-primary)}.energy-toolbar{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.energy-toolbar h2{font-size:16px;font-weight:600}.energy-filter{padding:5px 10px;border:1px solid var(--clr-border);border-radius:var(--radius);font-size:var(--font-size-sm);background:#fff}.energy-table{width:100%}.energy-badge{display:inline-block;padding:3px 10px;border-radius:12px;font-size:11px;font-weight:600;white-space:nowrap;color:#fff}.badge-success{background:var(--clr-toast-success)}.badge-danger{background:var(--clr-toast-danger)}.badge-warning{background:var(--clr-toast-warning);color:#333}.badge-info{background:var(--clr-toast-info)}.badge-muted{background:var(--clr-toast-muted)}.energy-progress{display:flex;flex-direction:column;gap:4px;min-width:200px}.energy-progress__row{display:flex;justify-content:space-between;align-items:center}.energy-progress__bar{height:6px;background:var(--clr-border);border-radius:3px;overflow:hidden}.energy-progress__fill{height:100%;background:linear-gradient(90deg,var(--clr-primary),#60a5fa);border-radius:3px;transition:width .6s ease;position:relative}.energy-progress__fill:after{content:"";position:absolute;top:0;left:0;right:0;bottom:0;background:linear-gradient(90deg,transparent,rgba(255,255,255,.3),transparent);animation:energy-shimmer 1.5s infinite}@keyframes energy-shimmer{0%{transform:translate(-100%)}to{transform:translate(100%)}}.energy-progress__label{font-size:10px;color:var(--clr-text-muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:160px}.energy-progress__pct{font-size:10px;font-weight:600;color:var(--clr-primary)}.energy-progress__timer{font-size:10px;color:var(--clr-text-muted);font-variant-numeric:tabular-nums}.energy-steps-toggle{font-size:10px;color:var(--clr-text-muted);cursor:pointer;-webkit-user-select:none;user-select:none;padding:2px 0;margin-top:2px}.energy-steps-toggle:hover{color:var(--clr-primary)}.energy-steps-timeline{padding-left:8px;border-left:2px solid var(--clr-border);margin:4px 0 0 4px;max-height:200px;overflow-y:auto}.energy-step-item{display:flex;align-items:center;gap:6px;padding:2px 0;font-size:10px;animation:energy-step-fade .3s ease}.energy-step-dot{width:6px;height:6px;border-radius:50%;background:var(--clr-primary);flex-shrink:0}.energy-step-label{color:var(--clr-text);flex:1}.energy-step-time{color:var(--clr-text-muted);font-variant-numeric:tabular-nums;white-space:nowrap}@keyframes energy-step-fade{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}.energy-actions{display:flex;gap:4px;flex-wrap:wrap}.btn-sm{padding:3px 8px;font-size:11px;border-radius:var(--radius);cursor:pointer;border:none;color:#fff;font-weight:600}.btn-sm.btn-primary{background:var(--clr-primary)}.btn-sm.btn-primary:hover{background:var(--clr-primary-hover)}.btn-sm.btn-warning{background:var(--clr-warning)}.btn-sm.btn-warning:hover{background:#b05d08}.btn-sm.btn-danger{background:var(--clr-danger)}.btn-sm.btn-danger:hover{background:#a93226}.energy-steps{display:flex;gap:16px;margin-bottom:16px;border-bottom:1px solid var(--clr-border);padding-bottom:8px}.energy-step{font-size:var(--font-size-sm);color:var(--clr-text-muted);font-weight:500}.energy-step.active{color:var(--clr-primary);font-weight:700;border-bottom:2px solid var(--clr-primary);padding-bottom:6px;margin-bottom:-9px}.energy-bat-checkboxes{max-height:200px;overflow-y:auto;border:1px solid var(--clr-border);border-radius:var(--radius);padding:8px;margin-top:4px}.energy-file-list{list-style:none;margin-top:8px;font-size:var(--font-size-sm);color:var(--clr-text-muted)}.energy-file-list li{padding:4px 0}.energy-file-list li:before{content:"📎 "}.energy-summary p{margin:6px 0}.energy-edit-modal{max-width:600px;display:flex;flex-direction:column;max-height:80vh}.energy-doc-list{display:flex;flex-direction:column;gap:4px}.energy-doc-item{display:flex;align-items:center;gap:8px;padding:6px 8px;border-radius:var(--radius);background:var(--clr-bg-alt, #f8f9fa);transition:opacity .2s}.energy-doc-item--deleted{opacity:.35;text-decoration:line-through}.energy-doc-item--replaced{border-left:3px solid var(--clr-bleu-clair)}.energy-doc-item--new{border-left:3px solid var(--clr-success, #28a745)}.energy-doc-item__name{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:var(--font-size-sm)}.energy-doc-item__size{color:var(--clr-text-muted);font-size:12px;min-width:50px;text-align:right}.energy-pipeline-toggle{margin-top:16px;cursor:pointer;font-size:var(--font-size-sm);color:var(--clr-text-muted);-webkit-user-select:none;user-select:none;padding:6px 0}.energy-pipeline-toggle:hover{color:var(--clr-primary)}.energy-pipeline-list{font-size:12px;color:var(--clr-text-muted);padding-left:16px}.energy-pipeline-list div{padding:2px 0}
