:root{--orange: #f58d22;--orange-d: #d97a14;--olive: #6b8c00;--slate: #52747e;--slate-d: #41616b;--lime: #beda61;--dark: #1a1a1a;--ink: #22262b;--bg: #eef1f4;--card: #ffffff;--line: #e2e6ea;--rouge: #c0392b;--muted: #7d8794;--radius: 10px;--shadow: 0 1px 2px rgba(20, 30, 40, .06), 0 6px 18px rgba(20, 30, 40, .06)}*{box-sizing:border-box}body{margin:0;font-family:Segoe UI,system-ui,-apple-system,Roboto,sans-serif;background:var(--bg);color:var(--ink);font-size:13px;-webkit-font-smoothing:antialiased}html,body,#root{height:100%}.app{max-width:1320px;margin:0 auto;padding:14px}.ecran{min-height:0}header{display:flex;align-items:center;justify-content:space-between;border-bottom:3px solid var(--orange);padding-bottom:.75rem}h1{font-size:1.4rem;margin:0}h2{color:var(--olive);font-size:1rem;margin:0 0 .5rem}.badge{font-size:.8rem;font-weight:600;padding:.25rem .6rem;border-radius:999px;color:#fff}.badge.offline{background:var(--slate)}.card{background:#fff;border-radius:8px;padding:1rem;margin:1rem 0;box-shadow:0 1px 3px #0000001a}.card p{margin:.3rem 0;font-size:.95rem}.actions{display:flex;gap:.75rem}button{flex:1;background:var(--orange);color:var(--dark);border:none;border-radius:6px;padding:.7rem 1rem;font-weight:600;cursor:pointer}button:active{transform:translateY(1px)}.message{margin-top:1rem;padding:.6rem .8rem;background:#fff8e9;border-left:3px solid var(--orange);font-size:.9rem}footer{margin-top:2rem;font-size:.8rem;color:var(--slate)}.barre{display:flex;gap:.5rem;align-items:center;margin:1rem 0}.barre button{flex:0 0 auto}.api-etat{margin-left:auto;font-size:.8rem;color:var(--slate)}.retour{background:none;color:var(--slate);border:none;padding:.4rem 0;font-weight:600;cursor:pointer;text-align:left}.liste-clients{list-style:none;margin:0;padding:0}.liste-clients li{display:flex;flex-direction:column;padding:.7rem .5rem;border-bottom:1px solid #eee;cursor:pointer}.liste-clients li:hover{background:#fff8e9}.liste-clients li span{font-size:.82rem;color:var(--slate)}.cadencier{background:var(--card);border-radius:var(--radius);box-shadow:var(--shadow);overflow:hidden}.cad-entete{flex-shrink:0;display:flex;flex-direction:column;align-items:stretch;gap:8px;padding:.7rem .9rem;border-bottom:3px solid var(--orange)}.cad-l1{display:flex;align-items:center;gap:12px}.cad-l2{display:flex;align-items:center;gap:18px;flex-wrap:wrap;font-size:12px}.cad-contact{display:flex;gap:14px;align-items:center}.cad-contact a{color:var(--slate);font-weight:600;text-decoration:none}.cad-contact a:hover{color:var(--orange-d);text-decoration:underline}.cad-contact .vide{color:#b6bdc5}.cad-cmd{display:flex;align-items:center;gap:14px;margin-left:auto;color:var(--muted)}.cad-cmd b{color:var(--ink)}.cad-cmd input[type=date]{padding:4px 6px;border:1px solid var(--line);border-radius:6px;font-family:inherit;font-size:12px}.lien-liv{border:1px solid var(--line);background:var(--card);border-radius:6px;padding:5px 10px;font-size:12px;font-weight:600;color:var(--slate);cursor:pointer}.lien-liv:hover{border-color:var(--orange);color:var(--orange-d)}.cad-client strong{font-size:1.05rem}.cad-sub{display:block;font-size:.78rem;color:var(--slate)}.cad-recherche{position:relative;flex:1;max-width:380px}.cad-recherche input{width:100%;padding:.5rem .7rem;border:1px solid var(--line);border-radius:8px;font-size:.9rem}.cad-recherche input:focus{outline:2px solid var(--orange);border-color:var(--orange)}.cad-resultats{position:absolute;z-index:8;left:0;right:0;top:calc(100% + 4px);list-style:none;margin:0;padding:4px;background:var(--card);border:1px solid var(--line);border-radius:10px;box-shadow:var(--shadow);max-height:280px;overflow:auto}.cad-resultats li{display:grid;grid-template-columns:5rem 1fr auto;align-items:center;gap:.5rem;padding:.5rem .6rem;cursor:pointer;font-size:.86rem;border-radius:7px}.cad-resultats li:hover{background:#fff6e6}.cad-resultats .r-code{color:var(--slate);font-variant-numeric:tabular-nums}.cad-resultats .r-add{color:var(--olive);font-weight:700;font-size:.78rem}.cad-scroll{max-height:calc(100vh - 392px);overflow:auto}.cad-scroll .cad-table{min-width:1500px}.cadencier.actions-ouvert .cad-scroll{max-height:calc(100vh - 512px)}.cad-table{width:100%;border-collapse:collapse;font-size:.82rem}.cad-table thead th{position:sticky;top:0;z-index:3;background:var(--ink);color:#fff;font-weight:600;font-size:.72rem;text-transform:uppercase;letter-spacing:.02em;padding:.45rem .5rem;text-align:right;white-space:nowrap}.cad-table thead th.c-code,.cad-table thead th.c-uv,.cad-table thead th.c-lib,.cad-table thead th.c-date,.cad-table thead th.c-rythme{text-align:left}.cad-fam td{position:sticky;top:60px;z-index:2;background:var(--dark);color:var(--orange);font-weight:700;font-size:.74rem;letter-spacing:.04em;padding:.28rem .6rem}.cad-ligne td{padding:.32rem .5rem;border-bottom:1px solid #f1f3f5;white-space:nowrap}.cad-ligne:hover{background:#fafbfc}.cad-ligne.active{background:#f3f8ec}.c-code{color:var(--slate);font-variant-numeric:tabular-nums}.c-uv{color:var(--muted);font-size:.76rem}.c-lib{white-space:normal;min-width:14rem}.c-date{color:var(--muted);font-variant-numeric:tabular-nums}.c-rythme{color:var(--slate);font-size:.74rem;font-variant-numeric:tabular-nums}.c-num{text-align:right;font-variant-numeric:tabular-nums}.c-num.strong{font-weight:700}.c-prix{position:relative}.c-prix .rem{display:block;font-style:normal;color:var(--rouge);font-size:.68rem}.in-qte,.in-prix{width:4.2rem;padding:.28rem .35rem;border:1px solid var(--line);border-radius:6px;text-align:right;font-variant-numeric:tabular-nums;font-size:.82rem}.in-prix{width:5.2rem;background:#fffbef}.in-qte:focus,.in-prix:focus{outline:2px solid var(--orange);border-color:var(--orange)}.tag{font-style:normal;font-size:.6rem;font-weight:700;padding:.05rem .35rem;border-radius:3px;margin-left:.45rem;color:#fff;white-space:nowrap}.tag-nouveaute{background:#2f6fb0;color:#fff}.tag-promo{background:#6a9a2e;color:#fff}.tag-hors_cadencier{background:var(--slate)}.tag-manuel{background:var(--rouge)}.cad-pied{flex-shrink:0;display:flex;justify-content:space-between;align-items:center;gap:1rem;padding:.7rem .9rem;border-top:2px solid var(--orange);flex-wrap:wrap}.cad-totaux{display:flex;gap:1.1rem;font-size:.86rem;align-items:baseline;flex-wrap:wrap}.cad-totaux b{font-variant-numeric:tabular-nums}.cad-totaux .ttc{font-size:1rem}.cad-totaux .ttc b{color:var(--olive)}.btn-valider{flex:0 0 auto;background:var(--olive);color:#fff;border:0;cursor:pointer;padding:.6rem 1.1rem;border-radius:8px;font-weight:700;font-size:.9rem}.btn-valider:hover{background:var(--olive);filter:brightness(.95)}.topbar{display:flex;align-items:center;gap:16px;background:var(--card);border-radius:var(--radius);padding:12px 18px;box-shadow:var(--shadow);border-bottom:3px solid var(--orange)}.brand{display:flex;align-items:baseline;gap:2px;font-weight:800;letter-spacing:-.5px;font-size:20px}.brand .b1{color:var(--slate)}.brand .b2{color:var(--orange)}.brand small{display:block;font-size:9px;font-weight:600;letter-spacing:.12em;color:var(--muted);margin-top:-2px}.vendeur{font-size:12px;color:var(--muted)}.vendeur b{color:var(--ink);font-size:14px;display:block}.tb-spacer{flex:1}.tb-actions{display:flex;align-items:center;gap:8px}.tb-actions button{border:1px solid var(--line);background:var(--card);color:var(--ink);padding:7px 12px;border-radius:8px;font-weight:700;font-size:12px}.tb-actions button:hover{border-color:var(--orange);color:var(--orange-d)}.tb-actions .api-etat{font-size:11px;color:var(--muted)}.badge{font-size:11px;font-weight:700;padding:5px 12px;border-radius:999px;color:#fff}.badge.online{background:var(--olive)}.badge.offline{background:var(--rouge)}.nav{display:flex;gap:6px;margin:14px 0}.nav button{border:1px solid var(--line);background:var(--card);color:var(--muted);padding:9px 18px;border-radius:8px;font-weight:700;font-size:13px}.nav button.on{background:var(--dark);color:var(--orange);border-color:var(--dark)}.nav button:disabled{opacity:.5;cursor:not-allowed}.stats{display:grid;grid-template-columns:repeat(6,1fr);gap:10px;margin-bottom:12px;align-items:stretch}.stat{background:var(--card);border-radius:var(--radius);padding:12px 14px;box-shadow:var(--shadow)}.stat .l{font-size:10px;letter-spacing:.06em;text-transform:uppercase;color:var(--muted);font-weight:700}.stat .v{font-size:20px;font-weight:800;margin-top:4px;font-variant-numeric:tabular-nums}.stat .s{font-size:11px;color:var(--muted);margin-top:2px}.stat.up .v{color:var(--olive)}.stat.down .v{color:var(--rouge)}.stat.accent{background:var(--dark);color:#fff}.stat.accent .l{color:var(--orange)}.stat.accent .s{color:#b9c2cb}.tiles{display:grid;grid-template-columns:repeat(5,1fr);gap:10px;margin-bottom:12px}.tile{border:none;border-radius:var(--radius);padding:16px 12px;color:#fff;display:flex;flex-direction:column;align-items:center;gap:9px;font-weight:700;font-size:12px;text-align:center;box-shadow:var(--shadow);transition:transform .08s ease,filter .12s ease}.tile:hover{transform:translateY(-2px);filter:brightness(1.05)}.tile svg{width:26px;height:26px;stroke:#fff;fill:none;stroke-width:1.8}.t-orange{background:var(--orange);color:var(--dark)}.t-orange svg{stroke:var(--dark)}.t-olive{background:var(--olive)}.t-slate{background:var(--slate)}.t-dark{background:var(--dark)}.grid2{display:grid;grid-template-columns:1fr 300px;gap:12px;align-items:start}.panel{background:var(--card);border-radius:var(--radius);box-shadow:var(--shadow);overflow:hidden}.panel h3{margin:0;padding:11px 16px;font-size:13px;border-bottom:1px solid var(--line)}.panel .t-wrap{max-height:52vh;overflow:auto}.panel table{width:100%;border-collapse:collapse}.panel thead th{position:sticky;top:0;background:#f5f7f9;color:var(--muted);font-size:10px;letter-spacing:.04em;text-transform:uppercase;text-align:left;padding:8px 10px;border-bottom:1px solid var(--line);font-weight:700}.panel tbody td{padding:9px 10px;border-bottom:1px solid var(--line);font-size:12px}.panel tbody tr{cursor:pointer}.panel tbody tr:hover{background:#fff8e9}.dot{display:inline-block;width:9px;height:9px;border-radius:50%;margin-right:7px;vertical-align:-1px}.d-saisie{background:var(--olive)}.d-encours{background:var(--orange)}.d-susp{background:var(--rouge)}.d-none{background:#c7ced4}.panel .num{text-align:right;font-variant-numeric:tabular-nums}.trend-up{color:var(--olive);font-weight:700}.trend-dn{color:var(--rouge);font-weight:700}.legend{display:flex;gap:18px;flex-wrap:wrap;padding:10px 14px;font-size:11px;color:var(--muted)}.legend span{display:flex;align-items:center}.qsf{background:var(--dark)}.qsf h3{color:var(--orange);border-color:#2c2c2c}.qsf ul{list-style:none;margin:0;padding:8px}.qsf li{color:#e8ebee;padding:11px 12px;border-radius:8px;font-size:13px;font-weight:600;display:flex;align-items:center;gap:10px;cursor:pointer}.qsf li:hover{background:#262626}.qsf li.primary{background:var(--orange);color:var(--dark)}.qsf .mk{width:7px;height:7px;border-radius:50%;background:var(--orange)}.qsf li.primary .mk{background:var(--dark)}.qsf li.sel{outline:2px solid var(--orange);outline-offset:-2px}@media(max-width:1000px){.stats{grid-template-columns:repeat(3,1fr)}.grid2{grid-template-columns:1fr}.tiles{grid-template-columns:repeat(3,1fr)}}.brand{align-items:center}.brand-logo{height:44px;width:auto;display:block}.brand small{align-self:flex-end;padding-bottom:4px;margin-top:0}.tournee-toolbar{display:flex;gap:10px;align-items:center;padding:10px 14px;border-bottom:1px solid var(--line);flex-wrap:wrap}.tournee-toolbar select,.tournee-toolbar input{padding:7px 10px;border:1px solid var(--line);border-radius:8px;font-size:13px;font-family:inherit}.tournee-toolbar select{font-weight:700;color:var(--ink);background:var(--card)}.tournee-toolbar .t-search{flex:1;min-width:200px}.tournee-toolbar .t-search:focus{outline:2px solid var(--orange);border-color:var(--orange)}.tournee-toolbar .t-count{font-size:11px;color:var(--muted);font-variant-numeric:tabular-nums}.triable{cursor:pointer;-webkit-user-select:none;user-select:none}.triable:hover{color:var(--orange)}.tri-ind{margin-left:4px;font-size:.72em;color:var(--muted);font-weight:400}.cad-outils{display:flex;gap:10px;align-items:center;flex:1;justify-content:flex-end;flex-wrap:wrap}.cad-affichage{padding:8px 10px;border:1px solid var(--line);border-radius:8px;font-size:13px;font-weight:700;background:var(--card);color:var(--ink);font-family:inherit}.cad-affichage:focus{outline:2px solid var(--orange);border-color:var(--orange)}.cad-table .cad-filtres td{position:sticky;top:28px;z-index:3;background:var(--card);padding:4px 6px;border-bottom:1px solid var(--line)}.cad-table .cad-filtres input{width:100%;padding:4px 6px;border:1px solid var(--line);border-radius:5px;font-size:11px}.cad-table .cad-filtres input:focus{outline:1px solid var(--orange);border-color:var(--orange)}.cad-ssf td{background:#eef2f5;color:var(--slate-d);font-weight:700;font-size:.72rem;letter-spacing:.03em;padding:.22rem .6rem .22rem 1.3rem}.panel .col-filtres td{position:sticky;top:27px;z-index:2;background:var(--card);padding:4px 6px;border-bottom:1px solid var(--line)}.panel .col-filtres input{width:100%;padding:4px 6px;border:1px solid var(--line);border-radius:5px;font-size:11px}.panel .col-filtres input:focus{outline:1px solid var(--orange);border-color:var(--orange)}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#141e2880;display:flex;align-items:center;justify-content:center;z-index:100;padding:16px}.modal-card{width:360px;max-width:100%;border-radius:12px;box-shadow:var(--shadow);overflow:hidden}.modal-card.qsf{background:var(--dark)}.modal-head{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;padding:14px 16px;border-bottom:1px solid #2c2c2c}.modal-head strong{color:#fff;font-size:15px;display:block}.modal-head span{color:#b9c2cb;font-size:12px}.modal-x{background:none;border:none;color:#b9c2cb;font-size:22px;line-height:1;cursor:pointer;padding:0 2px}.modal-x:hover{color:#fff}.modal-card h3{color:var(--orange);margin:0;padding:12px 16px 2px;font-size:13px;border:none}.btn-colonnes{flex:0 0 auto;width:36px;height:34px;padding:0;display:inline-flex;align-items:center;justify-content:center;border:1px solid var(--line);border-radius:8px;font-size:18px;line-height:1;background:var(--card);color:var(--slate);font-family:inherit}.btn-colonnes:hover{border-color:var(--orange);color:var(--orange-d)}.col-panel{width:320px;max-width:100%;background:var(--card);border-radius:12px;box-shadow:var(--shadow);overflow:hidden}.col-panel-head{display:flex;justify-content:space-between;align-items:center;padding:12px 16px;border-bottom:1px solid var(--line)}.col-panel-head strong{font-size:14px}.col-panel-head .modal-x{color:var(--muted)}.col-panel-head .modal-x:hover{color:var(--ink)}.col-panel ul{list-style:none;margin:0;padding:8px;max-height:60vh;overflow:auto}.col-panel li{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:7px 8px;border-radius:8px}.col-panel li:hover{background:var(--bg)}.col-panel label{display:flex;align-items:center;gap:8px;font-size:13px;cursor:pointer;flex:1}.col-panel label.verrou{color:var(--muted);cursor:default}.col-panel .col-move{display:flex;gap:4px}.col-panel .col-move button{width:24px;height:24px;border:1px solid var(--line);border-radius:6px;background:var(--card);color:var(--slate);font-size:11px;line-height:1;cursor:pointer}.col-panel .col-move button:hover:not(:disabled){border-color:var(--orange);color:var(--orange-d)}.col-panel .col-move button:disabled{opacity:.35;cursor:default}.cad-table thead th[draggable=true],.panel thead th[draggable=true]{cursor:grab}.cad-table thead th.col-drag,.panel thead th.col-drag{opacity:.4}.cad-table thead th.col-cible,.panel thead th.col-cible{box-shadow:inset 3px 0 0 var(--orange)}.cad-table,.panel table{table-layout:fixed}.cad-table thead th,.panel thead th{overflow:hidden;text-overflow:ellipsis}.cad-table tbody td,.panel tbody td{overflow:hidden}.col-resize{position:absolute;top:0;right:0;width:8px;height:100%;cursor:col-resize;touch-action:none;-webkit-user-select:none;user-select:none}.col-resize:hover{background:#f58d2273}.liv-corps{padding:12px 16px;font-size:13px}.liv-corps p{margin:0 0 8px}.liv-jours{margin:6px 0 0;padding-left:18px}.liv-corps .vide{color:var(--muted)}.cad-actions{display:flex;flex-wrap:wrap;gap:8px;padding:12px 14px;border-top:1px solid var(--line);background:var(--bg)}.cad-actions button{border:1px solid var(--line);background:var(--card);border-radius:8px;padding:8px 12px;font-size:12px;font-weight:600;color:var(--slate);cursor:pointer}.cad-actions button:hover{border-color:var(--orange);color:var(--orange-d)}.cad-toggle{border:1px solid var(--line);background:var(--card);border-radius:8px;padding:7px 12px;font-size:12px;font-weight:700;color:var(--slate);margin-right:auto;cursor:pointer}.cad-toggle:hover{border-color:var(--orange);color:var(--orange-d)}.cad-l2 .cad-outils{justify-content:flex-start}.liv-hint{font-size:.8rem;color:#5a6a70;margin:0 0 .5rem}.liv-jours li{cursor:pointer;border-radius:6px;padding:.35rem .5rem}.liv-jours li:hover{background:#eef3f4}.liv-jours li.sel{background:var(--lime, #beda61);font-weight:600}.auth{min-height:100vh;display:flex;flex-direction:column;background:#fff}.auth-main{flex:1;display:flex;align-items:center;justify-content:center;gap:4vw;padding:4vh 6vw;flex-wrap:wrap}.auth-left{flex:1 1 320px;max-width:520px;text-align:center}.auth-logo{width:min(360px,72%);height:auto}.auth-tagline{color:var(--slate, #52747e);font-weight:800;letter-spacing:.02em;text-transform:uppercase;margin-top:.6rem}.auth-right{flex:1 1 320px;max-width:420px;width:100%}.auth-form{display:flex;flex-direction:column}.auth-hi{color:var(--slate, #52747e);font-size:1.25rem;font-weight:700;margin:0 0 1rem}.auth-label{color:var(--slate, #52747e);font-weight:700;font-size:1.1rem;margin-top:1.1rem}.auth-input{border:none;border-bottom:2px solid var(--slate, #52747e);background:transparent;font-size:1.4rem;padding:.3rem .1rem;color:#1f2d31;outline:none}.auth-input:focus{border-bottom-color:var(--orange, #f58d22)}.auth-note{color:#5a6a70;font-size:.85rem;margin:.5rem 0 0}.auth-err{color:#c0392b;margin:.8rem 0 0;font-weight:600}.auth-go{align-self:flex-end;margin-top:1.6rem;width:84px;height:48px;border:2px solid var(--lime, #beda61);border-radius:26px;background:transparent;color:var(--lime, #beda61);font-size:1.6rem;line-height:1;cursor:pointer;transition:background .15s,color .15s}.auth-go:hover:not(:disabled){background:var(--lime, #beda61);color:#fff}.auth-go:disabled{opacity:.4;cursor:default}.auth-link{align-self:flex-end;margin-top:.8rem;background:none;border:none;color:var(--slate, #52747e);text-decoration:underline;cursor:pointer;font-size:.9rem}.auth-vague{width:100%;height:90px;display:block;vertical-align:top;margin-bottom:-1px}.auth-foot{background:var(--slate, #52747e);color:#fff;display:flex;flex-direction:column;gap:.15rem;align-items:center;padding:.8rem 1rem 1.1rem;font-size:.85rem;text-align:center}.auth-foot b{color:var(--lime, #beda61)}.auth-foot a{color:#fff;text-decoration:underline}.auth-foot a:hover{color:var(--lime, #beda61)}.tb-logout{border:none;background:transparent;color:#fff;font-size:1.1rem;cursor:pointer;padding:2px 6px}@media(max-width:720px){.auth-main{flex-direction:column;gap:2rem}}.dot.d-surv{background:var(--orange, #f58d22)}.cad-bandeau{padding:.55rem .9rem;font-weight:600;font-size:.95rem}.cad-bandeau.susp{background:#fdecec;color:#b0281a;border-left:4px solid #c0392b}.cad-bandeau.surv{background:#fff5e8;color:#9a5a12;border-left:4px solid var(--orange, #f58d22)}.btn-valider:disabled{opacity:.45;cursor:not-allowed}.fl-up{color:#2e9e5b;font-weight:700}.fl-down{color:#c0392b;font-weight:700}.cad-table .c-cat{min-width:120px}.modal-card.comm{max-width:560px}.comm-texte{white-space:pre-wrap;font-family:inherit;background:#f6f8f9;border:1px solid #e0e6e9;border-radius:8px;padding:12px 14px;margin:12px 0;max-height:50vh;overflow:auto;color:#1f2d31;line-height:1.5}.comm-actions{display:flex;justify-content:flex-end}.btn-continuer{background:var(--lime, #beda61);color:#24343a;border:none;border-radius:22px;padding:10px 20px;font-weight:700;cursor:pointer}.btn-continuer:hover{filter:brightness(.95)}.t-carte{border:1px solid var(--slate, #52747e);background:#fff;color:var(--slate, #52747e);border-radius:8px;padding:4px 10px;cursor:pointer;font-size:.9rem}.t-carte:hover:not(:disabled){background:var(--slate, #52747e);color:#fff}.t-carte:disabled{opacity:.4;cursor:default}.panel thead th{padding:6px 8px;font-size:11px}.panel tbody td{padding:5px 8px;font-size:11px}.panel .t-wrap{max-height:62vh}.t-carte{padding:2px 6px;font-size:1rem;line-height:1.1;min-width:0;width:32px}.modal-card.carte{width:min(92vw,900px);max-width:92vw}.carte-zone{height:min(70vh,560px);width:100%;border-radius:8px;overflow:hidden;margin-top:8px}.carte-zone .leaflet-container{height:100%;width:100%}.pop-c{font-size:12px;line-height:1.5}.pop-c .pop-code{color:#5a6a70}.modal-card.cr-modal{width:min(96vw,860px);max-width:96vw;max-height:92vh;overflow:auto;background:#fff}.modal-card.comm,.modal-card.carte{background:#fff}.cr-modal .modal-head,.comm .modal-head,.carte .modal-head{border-bottom:1px solid #e0e6e9}.cr-modal .modal-head strong,.comm .modal-head strong,.carte .modal-head strong{color:#24343a}.cr-modal .modal-head span,.comm .modal-head span,.carte .modal-head span{color:#5a6a70}.cr-modal .modal-x,.comm .modal-x,.carte .modal-x{color:#8a969c}.cr-modal .modal-x:hover,.comm .modal-x:hover,.carte .modal-x:hover{color:#24343a}.cr-modal .cr-grid{padding:14px 16px 16px}.cr-modal .cr-actions{padding:0 16px 16px}.cr-grid{display:grid;grid-template-columns:1fr 240px;gap:22px}.cr-col{display:flex;flex-direction:column;gap:4px}.cr-col--droite{gap:12px}.cr-l{font-weight:600;font-size:12px;color:#3a4b51;margin-top:8px}.cr-in{border:1px solid #cdd7db;border-radius:6px;padding:7px 9px;font-size:13px}.cr-in--court{width:110px}.cr-ta{border:1px solid #cdd7db;border-radius:6px;padding:8px 10px;font:inherit;resize:vertical}.cr-client{background:#f6f8f9;border:1px solid #e0e6e9;border-radius:6px;padding:8px 10px;line-height:1.4}.cr-code{font-weight:700;color:var(--slate, #52747e)}.cr-ville{color:#5a6a70;font-size:12px}.cr-ligne{display:flex;justify-content:space-between;align-items:center;gap:10px;font-size:13px}.cr-ligne>span{color:#3a4b51}.cr-actions{display:flex;justify-content:flex-end;gap:12px;margin-top:18px}.cr-enreg{background:var(--lime, #beda61);color:#24343a;border:none;border-radius:22px;padding:10px 24px;font-weight:700;cursor:pointer}.cr-annuler{background:#fff;border:1px solid #c0392b;color:#c0392b;border-radius:22px;padding:10px 20px;cursor:pointer}.cr-enreg:disabled,.cr-annuler:disabled{opacity:.5;cursor:default}.btn-consult{flex:0 0 auto;height:34px;padding:0 12px;border:1px solid var(--line, #cdd7db);border-radius:8px;background:#fff;color:#3a4b51;font-size:13px;cursor:pointer}.btn-consult:hover{background:#f2f6f7}.crl{width:min(96vw,680px)}.crl-corps{padding:8px 16px 16px}.crl-info{color:#5a6a70;padding:12px 2px}.crl-liste{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px}.crl-item{border:1px solid #e0e6e9;border-radius:8px;padding:8px 10px}.crl-l1{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.crl-date{font-weight:700;color:var(--slate, #52747e);font-size:13px}.crl-type{background:#eef3f4;color:#3a4b51;border-radius:12px;padding:1px 9px;font-size:12px}.crl-duree{color:#8a969c;font-size:12px;margin-left:auto}.crl-objet{font-size:13px;color:#24343a;margin-top:3px}.crl-comm{font-size:12px;color:#5a6a70;margin-top:2px;white-space:pre-wrap}.crl-cmd{display:flex;gap:14px;margin-top:4px;font-size:12px;color:#3a4b51}.stat--clic{cursor:pointer;transition:box-shadow .12s,transform .12s}.stat--clic:hover{box-shadow:var(--shadow, 0 2px 8px rgba(0,0,0,.12));transform:translateY(-1px)}.btn-pdc{background:#fff;border:1px solid var(--slate, #52747e);color:var(--slate, #52747e);border-radius:22px;padding:10px 18px;font-weight:600;cursor:pointer;margin-right:8px}.btn-pdc:hover{background:#f2f6f7}.stat--multi{display:flex;flex-direction:column;gap:2px}.stat--multi .l{margin-bottom:5px}.stat-ligne{display:flex;justify-content:space-between;align-items:baseline;font-size:12.5px;gap:14px}.stat--mois-gauche .stat-ligne>b{min-width:92px;text-align:right}.stat-ligne>span{color:#5a6a70}.stat-ligne>b{font-variant-numeric:tabular-nums;color:#24343a}.stat-ecart{border-top:1px solid #eef2f3;margin-top:3px;padding-top:4px}.stat-ecart.pos>b{color:#2e7d32}.stat-ecart.neg>b{color:#c0392b}.stat--mois{grid-column:span 2;display:flex;align-items:center;justify-content:space-between;gap:10px}.stat--mois-gauche{flex:0 1 auto;display:flex;flex-direction:column;gap:2px;min-width:0}.stat--mois-gauche .l{margin-bottom:5px}.stat-trend>b{color:var(--slate, #52747e)}.donut-wrap{flex:0 0 auto;width:96px;height:96px}.donut{width:96px;height:96px}.donut-pct{font-size:20px;font-weight:700;fill:#24343a}.modal-fond{position:fixed;top:0;right:0;bottom:0;left:0;background:#141e2373;display:flex;align-items:center;justify-content:center;z-index:50;padding:16px}.modal-obj{background:var(--card, #fff);border-radius:12px;box-shadow:0 12px 40px #00000047;width:min(720px,96vw);max-height:92vh;overflow:auto;padding:16px 18px}.modal-tete{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px}.modal-tete .l{font-size:12px;letter-spacing:.06em;text-transform:uppercase;color:var(--muted, #6b7a80);font-weight:800}.modal-x{border:0;background:transparent;font-size:24px;line-height:1;cursor:pointer;color:#6b7a80}.modal-vide{color:#6b7a80;font-size:14px;padding:14px 0}.obj-chart{width:100%;height:auto}.obj-x{font-size:10px;fill:#6b7a80}.obj-legende{display:flex;gap:18px;justify-content:center;margin:4px 0 12px;font-size:12px;color:#4a5a60}.obj-legende span{display:inline-flex;align-items:center;gap:6px}.obj-legende i{width:12px;height:12px;border-radius:2px;display:inline-block}.obj-table-wrap{overflow-x:auto}.obj-table{width:100%;border-collapse:collapse;font-size:12.5px;font-variant-numeric:tabular-nums}.obj-table th,.obj-table td{padding:5px 8px;border-bottom:1px solid #eef2f3;text-align:left}.obj-table th{color:#6b7a80;font-weight:700}.obj-table td.num,.obj-table th:not(:first-child){text-align:right}.obj-table tfoot td{font-weight:800;border-top:2px solid #dfe6e8}.obj-table .pos{color:#2e7d32}.obj-table .neg{color:#c0392b}.obj-entete{font-size:12px;color:#4a5a60;margin-bottom:10px}.obj-entete .pos{color:#2e7d32;font-weight:700}.obj-entete .neg{color:#c0392b;font-weight:700}.obj-jours{color:#9aa7ac;font-weight:400}.obj-table--enc td:first-child>div:first-child{font-weight:600}.modal-obj--large{width:min(1200px,97vw);max-height:94vh}.modal-retour{border:0;background:transparent;cursor:pointer;color:#52747e;font-weight:800;font-size:12px;letter-spacing:.04em;text-transform:uppercase;padding:0}.obj-table .ligne-clic{cursor:pointer}.obj-table .ligne-clic:hover{background:#f4f7f8}.ligne-clic-nom{font-weight:600}.obj-regl{color:#4a5a60}.obj-table--ecr td:nth-child(3){max-width:220px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.app{height:100dvh;display:flex;flex-direction:column;box-sizing:border-box}.ecran{flex:1 1 auto;min-height:0}.ecran--scroll{display:flex;flex-direction:column}.ecran--scroll .panel{flex:1 1 auto;min-height:0;display:flex;flex-direction:column}.ecran--scroll .panel .t-wrap{flex:1 1 auto;min-height:0;max-height:none}@media(max-width:720px){.app{height:auto;min-height:100dvh}.ecran--scroll .panel .t-wrap{max-height:62vh;flex:0 1 auto}}.obj-filtre{width:100%;box-sizing:border-box;margin:0 0 10px;padding:7px 10px;border:1px solid var(--line, #e0e6e9);border-radius:8px;font-size:13px}.obj-filtre:focus{outline:2px solid var(--orange);border-color:var(--orange)}.obj-table th.tri{cursor:pointer;-webkit-user-select:none;user-select:none;white-space:nowrap}.obj-table th.tri:hover{color:var(--orange)}.comm-edit{width:100%;box-sizing:border-box;min-height:160px;resize:vertical;border:1px solid var(--line, #e0e6e9);border-radius:8px;padding:12px 14px;font:inherit;line-height:1.5;color:#1f2d31;background:#fff;margin:8px 0 4px}.comm-edit:focus{outline:2px solid var(--orange);border-color:var(--orange)}.btn-enreg{background:var(--lime, #BEDA61);color:#24343a;border:0;border-radius:8px;padding:9px 16px;font-weight:700;cursor:pointer}.btn-enreg:hover{filter:brightness(.96)}.cad-actions .fx-orange{background:var(--orange, #F58D22);color:#fff;border:0}.cad-actions .fx-vert{background:var(--lime, #BEDA61);color:#24343a;border:0}.cad-actions .fx-gris{background:#e3e8ea;color:#4a5a60;border:0}.cad-actions button{border-radius:8px;padding:8px 12px;font-weight:700;cursor:pointer}.cad-actions .fx-orange:hover,.cad-actions .fx-vert:hover,.cad-actions .fx-gris:hover{filter:brightness(.96)}.qte-bloq{color:#c0392b;font-size:15px;display:inline-block;text-align:center;width:100%}.cad-famille{padding:8px 10px;border:1px solid var(--line);border-radius:8px;font-size:13px;font-weight:700;background:var(--card);color:var(--ink);font-family:inherit}.btn-annuler{background:#c0392b;color:#fff;border:0;border-radius:22px;padding:10px 18px;font-weight:700;cursor:pointer;margin-right:8px}.btn-annuler:hover{filter:brightness(.95)}.panel tbody tr.ligne-sel{background:#fff3e6;box-shadow:inset 3px 0 0 var(--orange, #F58D22)}.cad-ligne.ligne-sel{box-shadow:inset 3px 0 0 var(--orange, #F58D22);background:#fff3e6}.cad-ligne.ligne-sel.active{background:#fdeede}.qte-stepper{display:flex;align-items:center;gap:3px;justify-content:center}.qte-stepper .in-qte{width:44px;text-align:center;-moz-appearance:textfield}.qte-stepper .in-qte::-webkit-outer-spin-button,.qte-stepper .in-qte::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.qte-pm{width:30px;height:32px;border:1px solid var(--line, #dfe6e8);background:#fff;border-radius:7px;font-size:18px;font-weight:700;line-height:1;cursor:pointer;color:#52747e;padding:0;flex:0 0 auto}.qte-pm:active{background:#eef3f4}.recap-grp td{background:#eef3f4;font-weight:700;color:#24343a}.recap-ssf td{background:#f4f7f8;font-weight:600;padding-left:18px}.recap-actions{display:flex;justify-content:space-between;align-items:center;margin-top:12px;gap:12px}.qte-stepper--sm{justify-content:flex-end}.qte-stepper--sm .qte-pm{width:24px;height:26px;font-size:15px}.qte-stepper--sm .in-qte{width:40px}.recap-suppr{border:0;background:transparent;color:#c0392b;font-size:14px;cursor:pointer;padding:2px 8px;border-radius:6px}.recap-suppr:hover{background:#fdecea}.obj-table .ligne-gratuit td{color:#6b7a80;background:#f7faf0}.tag-gratuit{display:inline-block;margin-left:6px;font-size:10px;font-weight:700;color:#fff;background:#8a969b;border-radius:4px;padding:1px 5px;text-transform:uppercase}.cad-grid .c-uv{text-align:center;color:#4a5a60}.tag-special{background:#c0392b;color:#fff}.tag-gratuit{background:#8a969b;color:#fff}.cad-ligne.ligne-gratuit.active td{background:#eef5da}.qte-gratuit{display:inline-block;text-align:center;width:100%}.tag-fondamental{background:#7c3aed;color:#fff}.tag-degagement{background:#f58d22;color:#24343a}.cad-resultats .r-meta{color:#6b7a80;font-size:11px;margin-left:8px}.tag-mini{font-size:9px;padding:0 4px;background:#52747e;color:#fff;border-radius:3px}.qte-gratuit{display:inline-flex;align-items:center;justify-content:center;width:100%;color:#8a969b}.qte-cadeau{border:0;background:transparent;cursor:pointer;color:#8a969b;padding:0 2px;display:inline-flex;align-items:center}.qte-cadeau:hover{color:#f58d22}.qte-offert{display:inline-flex;align-items:center;gap:5px;justify-content:center;width:100%;border:0;background:transparent;cursor:pointer;color:#4a9e2f;font:inherit}.qte-offert:hover{text-decoration:underline}.qte-offert-n{font-weight:700;color:#24343a}.qte-gratuit--vert{color:#4a9e2f}.ic-offert{display:inline-flex;align-items:center;padding:0 2px;color:#8a969b}.cad-ligne.active .in-qte,.cad-liv-date{background:#dcefc4;border-color:#bcdd8a}
