:root{--sa-bg:#f5f6f8;--sa-surface:#ffffff;--sa-ink:#131722;--sa-muted:#667085;--sa-line:#e4e7ec;--sa-soft:#f0f2f5;--sa-accent:#1d3fae;--sa-accent-ink:#ffffff;--sa-accent-soft:#e8edfb;--sa-retard:#d92d20;--sa-retard-soft:#fdecea;--sa-alerte:#b54708;--sa-alerte-soft:#fff4e5;--sa-ok:#067647;--sa-ok-soft:#e7f6ee;--sa-conciergerie:#6d3fd4;--sa-nettoyage:#0e7c6b;--sa-laundry:#0b6aa8;--sa-refacturation:#8a6100;--sa-radius:10px;--sa-shadow:0 1px 2px rgba(16,24,40,.06),0 1px 3px rgba(16,24,40,.08)}*{box-sizing:border-box}body,html{margin:0;padding:0}body{background:var(--sa-bg);color:var(--sa-ink);font:14px/1.45 ui-sans-serif,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif;-webkit-font-smoothing:antialiased}a{color:inherit;text-decoration:none}button,input,select,textarea{font:inherit;color:inherit}h1{font-size:22px;line-height:1.2;letter-spacing:-.01em}h1,h2{margin:0}h2{font-size:15px}.sa-num{font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.sa-shell{display:grid;grid-template-columns:232px minmax(0,1fr);min-height:100dvh}.sa-side{background:var(--sa-surface);border-right:1px solid var(--sa-line);padding:18px 12px;position:-webkit-sticky;position:sticky;top:0;height:100dvh;display:flex;flex-direction:column;gap:4px;overflow-y:auto}.sa-brand{display:flex;align-items:center;gap:10px;padding:4px 10px 16px;font-weight:700;font-size:15px}.sa-brand-mark{width:28px;height:28px;border-radius:8px;background:var(--sa-accent);display:grid;place-items:center;color:#fff;font-size:14px;transform:rotate(45deg)}.sa-brand-mark span{transform:rotate(-45deg)}.sa-navlink{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:8px 10px;border-radius:8px;color:#344054;font-weight:500}.sa-navlink:hover{background:var(--sa-soft)}.sa-navlink[aria-current=page]{background:var(--sa-accent-soft);color:var(--sa-accent)}.sa-navsep{font-size:11px;text-transform:uppercase;letter-spacing:.06em;color:var(--sa-muted);padding:14px 10px 4px}.sa-pill{font-size:11px;font-weight:600;min-width:20px;text-align:center;padding:1px 6px;border-radius:999px;background:var(--sa-soft);color:#475467}.sa-pill.retard{background:var(--sa-retard);color:#fff}.sa-pill.alerte{background:var(--sa-alerte-soft);color:var(--sa-alerte)}.sa-side-foot{margin-top:auto;padding:12px 10px 0;border-top:1px solid var(--sa-line);font-size:13px}.sa-side-foot small{color:var(--sa-muted);display:block}.sa-main{padding:26px 30px 60px;min-width:0}.sa-main.plein{padding:0}.sa-head{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;flex-wrap:wrap;margin-bottom:18px}.sa-head p{margin:4px 0 0;color:var(--sa-muted)}.sa-actions{display:flex;gap:8px;flex-wrap:wrap;align-items:center}.sa-card{background:var(--sa-surface);border:1px solid var(--sa-line);border-radius:var(--sa-radius);box-shadow:var(--sa-shadow)}.sa-card.pad{padding:16px 18px}.sa-btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;height:36px;padding:0 14px;border-radius:8px;border:1px solid var(--sa-line);background:var(--sa-surface);font-weight:600;cursor:pointer;white-space:nowrap}.sa-btn:hover{background:var(--sa-soft)}.sa-btn.primaire{background:var(--sa-accent);border-color:var(--sa-accent);color:var(--sa-accent-ink)}.sa-btn.primaire:hover{filter:brightness(1.08)}.sa-btn.petit{height:30px;padding:0 10px;font-size:13px}.sa-btn.grand{height:48px;font-size:16px;width:100%}.sa-btn:disabled{opacity:.5;cursor:not-allowed}.sa-btn.lien{border:0;background:none;padding:0 4px;color:var(--sa-accent);height:auto}.sa-input,.sa-select,.sa-textarea{width:100%;height:38px;padding:0 10px;border-radius:8px;border:1px solid #d0d5dd;background:#fff}.sa-textarea{height:auto;min-height:70px;padding:8px 10px;resize:vertical}.sa-btn:focus-visible,.sa-input:focus,.sa-select:focus,.sa-textarea:focus{outline:2px solid var(--sa-accent);outline-offset:1px}.sa-input[readonly]{background:var(--sa-soft);color:#475467}.sa-field{display:flex;flex-direction:column;gap:5px;min-width:0}.sa-field>span{font-size:12.5px;font-weight:600;color:#344054}.sa-field>small{color:var(--sa-muted);font-size:12px}.sa-grid{display:grid;grid-gap:12px;gap:12px}.sa-grid.c2{grid-template-columns:repeat(2,minmax(0,1fr))}.sa-grid.c3{grid-template-columns:repeat(3,minmax(0,1fr))}.sa-grid.c4{grid-template-columns:repeat(4,minmax(0,1fr))}.sa-check{display:flex;align-items:center;gap:8px;font-weight:500}.sa-check input{width:17px;height:17px;accent-color:var(--sa-accent)}.sa-filtres{display:flex;gap:8px;flex-wrap:wrap;align-items:center;margin-bottom:12px}.sa-filtres .sa-input,.sa-filtres .sa-select{width:auto;min-width:150px;height:34px}.sa-tabs{display:flex;gap:4px;border-bottom:1px solid var(--sa-line);margin-bottom:14px;overflow-x:auto}.sa-tab{padding:9px 14px;border:0;background:none;font-weight:600;color:var(--sa-muted);cursor:pointer;border-bottom:2px solid transparent;margin-bottom:-1px;white-space:nowrap}.sa-tab[aria-selected=true]{color:var(--tab,var(--sa-accent));border-bottom-color:var(--tab,var(--sa-accent))}.sa-tablewrap{overflow-x:auto}.sa-table{width:100%;border-collapse:collapse}.sa-table th{text-align:left;font-size:12px;font-weight:600;color:var(--sa-muted);white-space:nowrap;background:#fafbfc}.sa-table td,.sa-table th{padding:10px 12px;border-bottom:1px solid var(--sa-line)}.sa-table td{vertical-align:middle}.sa-table tr:last-child td{border-bottom:0}.sa-table tbody tr:hover{background:#fafbfc}.sa-table .d{text-align:right}.sa-table .actions{text-align:right;white-space:normal;min-width:250px}.sa-table .actions .sa-btn{margin:2px 0 2px 2px}.sa-table td b{white-space:nowrap}.sa-vide{padding:34px 16px;text-align:center}.sa-muted,.sa-vide{color:var(--sa-muted)}.sa-petit{font-size:12.5px}.sa-badge{display:inline-flex;align-items:center;gap:5px;padding:2px 8px;border-radius:999px;font-size:12px;font-weight:600;background:var(--sa-soft);color:#344054;white-space:nowrap}.sa-badge.planifie{background:var(--sa-accent-soft);color:var(--sa-accent)}.sa-badge.realise{background:var(--sa-alerte-soft);color:var(--sa-alerte)}.sa-badge.facture,.sa-badge.payee{background:var(--sa-ok-soft);color:var(--sa-ok)}.sa-badge.retard{background:var(--sa-retard-soft);color:var(--sa-retard)}.sa-dot{width:8px;height:8px;border-radius:50%;display:inline-block;background:var(--c,#98a2b3);flex:none}.sa-mod{display:inline-flex;align-items:center;gap:6px;font-weight:500}.sa-kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));grid-gap:12px;gap:12px;margin-bottom:14px}.sa-kpi{padding:14px 16px}.sa-kpi .lab{font-size:12.5px;color:var(--sa-muted);font-weight:600}.sa-kpi .val{font-size:24px;font-weight:700;letter-spacing:-.02em;margin-top:4px;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.sa-kpi .sub{font-size:12.5px;color:var(--sa-muted)}.sa-bandeau{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 16px;border-radius:var(--sa-radius);background:var(--sa-alerte-soft);border:1px solid #f7c98b;color:#7a2e0e;font-weight:600;margin-bottom:14px}.sa-bandeau.retard{background:var(--sa-retard-soft);border-color:#f4b4ae;color:#912018}.sa-msg{padding:10px 12px;border-radius:8px;background:var(--sa-alerte-soft);color:#7a2e0e;font-weight:500}.sa-msg.ok{background:var(--sa-ok-soft);color:#085d3a}.sa-voile{position:fixed;inset:0;background:rgba(16,24,40,.45);display:grid;place-items:start center;padding:5vh 16px;overflow-y:auto;z-index:50}.sa-modal{background:#fff;border-radius:14px;width:100%;max-width:640px;box-shadow:0 20px 50px rgba(16,24,40,.25)}.sa-modal.large{max-width:860px}.sa-modal-tete{display:flex;align-items:center;justify-content:space-between;padding:16px 20px;border-bottom:1px solid var(--sa-line)}.sa-modal-corps{padding:18px 20px;display:flex;flex-direction:column;gap:14px}.sa-modal-pied{padding:14px 20px;border-top:1px solid var(--sa-line);display:flex;justify-content:flex-end;gap:8px;flex-wrap:wrap}.sa-x{border:0;background:none;font-size:22px;line-height:1;cursor:pointer;color:var(--sa-muted);padding:4px 8px;border-radius:6px}.sa-toast{position:fixed;bottom:20px;left:50%;transform:translateX(-50%);background:#131722;color:#fff;padding:10px 16px;border-radius:10px;z-index:80;font-weight:500;max-width:90vw;box-shadow:0 8px 24px rgba(0,0,0,.25)}.sa-lignes{display:flex;flex-direction:column;gap:8px}.sa-ligne{display:grid;grid-template-columns:minmax(0,1fr) 90px 110px 34px;grid-gap:8px;gap:8px;align-items:center}.sa-ligne .prix{text-align:right;color:var(--sa-muted);font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.sa-totaux{margin-left:auto;width:min(100%,320px);display:flex;flex-direction:column;gap:4px}.sa-totaux div{display:flex;justify-content:space-between;gap:12px}.sa-totaux .fort{font-weight:700;font-size:16px;border-top:1px solid var(--sa-line);padding-top:6px;margin-top:2px}.sa-combo{position:relative}.sa-combo-liste{position:absolute;z-index:5;left:0;right:0;top:42px;background:#fff;border:1px solid var(--sa-line);border-radius:8px;box-shadow:0 8px 24px rgba(16,24,40,.14);max-height:240px;overflow-y:auto}.sa-combo-liste button{display:block;width:100%;text-align:left;padding:8px 10px;border:0;background:none;cursor:pointer}.sa-combo-liste button:hover{background:var(--sa-soft)}.sa-auth{min-height:100dvh;display:grid;place-items:center;padding:20px}.sa-auth-card{width:100%;max-width:380px;padding:28px;gap:14px}.sa-auth-card,.sa-auth-card form{display:flex;flex-direction:column}.sa-auth-card form{gap:12px}.sa-mj{max-width:560px;margin:0 auto;padding:16px 14px 60px}.sa-mj-tete{display:flex;justify-content:space-between;align-items:center;margin-bottom:14px}.sa-mj h2{margin:18px 2px 8px;font-size:13px;text-transform:uppercase;letter-spacing:.05em;color:var(--sa-muted)}.sa-mj-carte{padding:14px;margin-bottom:10px;display:flex;flex-direction:column;gap:8px;border-left:4px solid var(--c,var(--sa-line))}.sa-mj-carte.retard{border-left-color:var(--sa-retard)}.sa-mj-carte strong{font-size:16px}.sa-plein{position:fixed;inset:0;background:#fff;z-index:60;overflow-y:auto}.sa-plein-in{max-width:560px;margin:0 auto;padding:16px 14px 90px;display:flex;flex-direction:column;gap:14px}.sa-plein .sa-input,.sa-plein .sa-select{height:46px;font-size:16px}.sa-fil{display:flex;flex-direction:column}.sa-fil-item{display:grid;grid-template-columns:96px minmax(0,1fr) auto;grid-gap:12px;gap:12px;padding:12px 16px;border-bottom:1px solid var(--sa-line);align-items:center}.sa-fil-item:last-child{border-bottom:0}.sa-fil-item.retard{box-shadow:inset 3px 0 0 var(--sa-retard)}.sa-pie{display:flex;gap:22px;align-items:center;flex-wrap:wrap}.sa-legende{display:flex;flex-direction:column;gap:8px;flex:1 1;min-width:200px}.sa-legende div{display:flex;justify-content:space-between;gap:12px}.sa3d-wrap{position:relative;height:100dvh;overflow:hidden;background:#eef1f6}.sa3d-canvas{width:100%;height:100%;display:block}.sa3d-top{position:absolute;top:16px;left:20px;right:20px;display:flex;justify-content:space-between;align-items:flex-start;gap:12px;pointer-events:none}.sa3d-top>*{pointer-events:auto}.sa3d-titre{background:rgba(255,255,255,.92);border:1px solid var(--sa-line);border-radius:12px;padding:10px 14px;box-shadow:var(--sa-shadow)}.sa3d-titre p{margin:2px 0 0;color:var(--sa-muted);font-size:13px}.sa3d-etiq{position:absolute;transform:translate(-50%,-100%);background:rgba(255,255,255,.96);border:1px solid var(--sa-line);border-radius:10px;padding:6px 10px;box-shadow:var(--sa-shadow);cursor:pointer;white-space:nowrap;text-align:left;font:inherit}.sa3d-etiq b{display:flex;align-items:center;gap:6px;font-size:13px}.sa3d-etiq small{color:var(--sa-muted);font-size:12px;display:block}.sa3d-etiq.retard{border-color:var(--sa-retard)}.sa3d-etiq.retard small{color:var(--sa-retard);font-weight:600}.sa3d-panneau{position:absolute;top:16px;right:16px;bottom:16px;width:360px;background:#fff;border:1px solid var(--sa-line);border-radius:14px;box-shadow:0 12px 40px rgba(16,24,40,.18);display:flex;flex-direction:column;overflow:hidden}.sa3d-panneau-tete{padding:14px 16px;border-bottom:1px solid var(--sa-line);display:flex;justify-content:space-between;align-items:flex-start;gap:8px}.sa3d-panneau-liste{flex:1 1;overflow-y:auto}.sa3d-item{padding:11px 16px;border-bottom:1px solid var(--sa-line);display:grid;grid-template-columns:minmax(0,1fr) auto;grid-gap:4px 10px;gap:4px 10px;align-items:center}.sa3d-item.retard{box-shadow:inset 3px 0 0 var(--sa-retard)}.sa3d-item .t{font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sa3d-item .s{grid-column:1/-1;color:var(--sa-muted);font-size:12.5px;display:flex;justify-content:space-between;gap:8px;align-items:center}.sa3d-panneau-pied{padding:12px 16px;border-top:1px solid var(--sa-line)}.sa3d-repli{padding:26px 30px;display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));grid-gap:12px;gap:12px}@media (max-width:860px){.sa-shell{grid-template-columns:minmax(0,1fr)}.sa-side{position:static;height:auto;flex-direction:row;align-items:center;padding:8px 10px;overflow-x:auto;border-right:0;border-bottom:1px solid var(--sa-line);gap:2px}.sa-brand{padding:0 8px 0 4px}.sa-brand b,.sa-navsep{display:none}.sa-navlink{white-space:nowrap;padding:7px 10px}.sa-side-foot{margin:0 0 0 auto;border:0;padding:0 0 0 8px;white-space:nowrap}.sa-side-foot .nom,.sa-side-foot small{display:none}.sa-main{padding:18px 14px 60px}.sa-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}.sa-grid.c2,.sa-grid.c3,.sa-grid.c4{grid-template-columns:minmax(0,1fr)}.sa-ligne{grid-template-columns:minmax(0,1fr) 70px 34px}.sa-ligne .prix{display:none}.sa-voile{padding:0}.sa-modal,.sa-modal.large{max-width:none;min-height:100dvh;border-radius:0}.sa-fil-item{grid-template-columns:78px minmax(0,1fr)}.sa-fil-item>:last-child{grid-column:1/-1}.sa3d-wrap{height:calc(100dvh - 53px)}.sa3d-panneau{top:auto;left:0;right:0;bottom:0;width:auto;height:58%;border-radius:16px 16px 0 0}.sa3d-etiq small{display:none}.sa3d-repli{padding:16px 14px}}@media (prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}}.sa3d-outils{display:flex;gap:8px;align-items:center;flex-wrap:wrap;justify-content:flex-end}.sa3d-wrap{--sa3d-panneau:376px}.sa3d-seg{display:flex;background:rgba(255,255,255,.94);border:1px solid var(--sa-line);border-radius:9px;padding:3px;box-shadow:var(--sa-shadow)}.sa3d-seg button{border:0;background:none;padding:5px 11px;border-radius:6px;font-weight:600;font-size:13px;color:#475467;cursor:pointer}.sa3d-seg button[aria-pressed=true]{background:var(--sa-accent);color:#fff}.sa3d-outils .sa-btn[aria-pressed=true]{background:var(--sa-accent);border-color:var(--sa-accent);color:#fff}.sa3d-aide{position:absolute;left:50%;bottom:14px;transform:translateX(-50%);background:rgba(19,23,34,.78);color:#fff;font-size:12.5px;padding:6px 12px;border-radius:999px;white-space:nowrap;pointer-events:none}.sa3d-equipe{padding:10px 16px;border-bottom:1px solid var(--sa-line);background:#fafbfc;display:flex;flex-direction:column;gap:6px}.sa3d-equipe div{display:grid;grid-template-columns:10px auto minmax(0,1fr);grid-gap:8px;gap:8px;align-items:center;font-size:13px}.sa3d-equipe i{width:9px;height:9px;border-radius:50%;background:#98a2b3}.sa3d-equipe .actif i{background:var(--sa-accent)}.sa3d-equipe .retard i{background:var(--sa-retard)}.sa3d-equipe span{color:var(--sa-muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sa3d-equipe .retard span{color:var(--sa-retard)}@media (max-width:860px){.sa3d-wrap{--sa3d-panneau:0px}.sa3d-aide{display:none}.sa3d-top{flex-direction:column;align-items:stretch;left:10px;right:10px;top:10px}.sa3d-outils{justify-content:flex-start}.sa3d-seg button{padding:5px 8px}.sa3d-titre{display:none}.sa3d-etiq{padding:3px 7px;border-radius:8px}.sa3d-etiq b{font-size:11px;gap:4px}.sa3d-etiq .sa-pill{font-size:10px;min-width:16px;padding:0 4px}}