@import"https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700;800&family=Manrope:wght@400;500;600;700;800&display=swap";:root{font-family:DM Sans,Arial,sans-serif;color:#1d2d44;background:#f4f7fb;font-synthesis:none;text-rendering:optimizeLegibility}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;min-width:320px}h1,h2,h3,p{margin-top:0}h1,h2,h3{font-family:Manrope,DM Sans,Arial,sans-serif;line-height:1.25;color:#122c52}h1{font-size:clamp(25px,3vw,33px);margin-bottom:9px;letter-spacing:-.75px}h2{font-size:19px;margin-bottom:16px}h3{font-size:15px;margin-bottom:8px}p{line-height:1.5}button,input,textarea,select{font:inherit}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.52}a{color:#126ab1;text-decoration:none}.shell{display:flex;min-height:100vh}.sidebar{width:264px;background:#102a54;color:#fff;display:flex;flex-direction:column;flex-shrink:0;position:fixed;inset:0 auto 0 0;z-index:30}.brand{display:flex;align-items:center;gap:11px;padding:28px 22px 31px;border-bottom:1px solid #ffffff1b}.brand-icon{width:46px;height:46px;background:#fff;border-radius:13px;display:grid;place-items:center;padding:4px;flex-shrink:0}.brand-icon img{width:100%;height:100%;object-fit:contain}.brand strong{font-family:Manrope,sans-serif;font-size:15px;font-weight:800;letter-spacing:.3px;white-space:nowrap;color:#fff}.brand span{display:block;font-size:11px;color:#b4c8e3;margin-top:2px}.side-caption{font-size:10px;letter-spacing:1.65px;font-weight:800;color:#799bc7;margin:27px 24px 12px}.main-nav{padding:0 12px;display:grid;gap:4px}.main-nav>button{width:100%;display:flex;align-items:center;text-align:left;gap:13px;border:0;border-radius:10px;background:transparent;color:#c4d4ec;padding:13px 14px;font-size:13px;font-weight:600}.main-nav>button:hover{background:#ffffff13;color:#fff}.main-nav>button.active{background:#ffffff1e;color:#fff;box-shadow:inset 3px 0 #54c9ef}.nav-count{margin-left:auto;font-size:10px;color:#dcefff;background:#2c537e;padding:2px 6px;border-radius:12px}.sidebar-bottom{margin-top:auto;padding:20px 16px 22px}.connect-card{border:1px solid #ffffff28;background:#ffffff0b;border-radius:12px;padding:14px}.connect-card strong{font-size:12px}.connect-card p{font-size:11px;line-height:1.55;color:#a9c1df;margin:7px 0 0}.erp-link{display:flex;align-items:center;gap:9px;color:#cde5fe;margin:22px 4px 0;font-size:12px;font-weight:700}.erp-link svg:last-child{margin-left:auto}.main{flex:1;min-width:0;margin-left:264px}.topbar{height:73px;background:#fff;border-bottom:1px solid #e5ebf3;padding:0 36px;display:flex;align-items:center;justify-content:space-between}.breadcrumb{font-size:13px;font-weight:700;color:#263e5c}.breadcrumb span{color:#a9b7c9;margin:0 8px}.user-avatar{border-radius:50%;background:#dfeaf6;color:#12375d;width:36px;height:36px;display:grid;place-items:center;font-weight:800;font-size:11px}.connection-pill{font-size:11px;border-radius:20px;background:#ecf9f0;color:#177749;font-weight:700;padding:7px 11px;display:flex;align-items:center;gap:6px}.connection-pill.offline{background:#fff4ea;color:#aa641c}.status-dot{width:7px;height:7px;background:#27bd73;border-radius:50%}.page{max-width:1530px;margin:0 auto;padding:32px 36px 75px}.stack{display:grid;gap:20px}.stack.gap10{gap:10px}.row{display:flex;align-items:center;gap:10px}.row.between{justify-content:space-between}.row.end{justify-content:flex-end}.row.wrap{flex-wrap:wrap}.row.align-start{align-items:flex-start}.row.align-end{align-items:flex-end}.row.gap6{gap:6px}.row.gap8{gap:8px}.row.gap10{gap:10px}.row.gap12{gap:12px}.muted{color:#7d8a9d;margin:4px 0;font-size:13px}.eyebrow{font-size:10px;letter-spacing:1.55px;color:#2e7aaa;font-weight:800;margin-bottom:7px}.btn{border:1px solid transparent;border-radius:9px;padding:11px 17px;font-weight:700;font-size:12px;display:inline-flex;gap:8px;align-items:center;justify-content:center;transition:.15s}.btn.primary{background:#1668ab;color:#fff;border-color:#1668ab}.btn.primary:hover{background:#0b528f}.btn.outline{background:#fff;color:#145d9a;border-color:#cddfed}.btn.outline:hover{background:#edf7ff}.btn.ghost{border-color:transparent;background:transparent;color:#455b75}.btn.ghost:hover{background:#edf3fa}.btn.light{background:#fff;color:#1b5992}.btn.hero-outline{border-color:#ffffff7a;color:#fff;background:#ffffff10}.btn.small{padding:8px 12px;font-size:11px}.btn.danger-ghost,.danger-ghost{color:#bf3b3b!important;background:transparent}.icon-btn{width:34px;height:34px;border:0;background:transparent;color:#57708c;border-radius:8px;display:inline-grid;place-items:center}.icon-btn:hover{background:#edf4fb}.text-link{border:0;background:transparent;color:#1872b4;font-size:12px;font-weight:800;padding:5px;display:inline-flex;align-items:center;gap:5px}.text-link:hover{text-decoration:underline}.back-link{padding:0;margin-bottom:13px}.card{background:#fff;border:1px solid #e5ebf3;border-radius:15px;box-shadow:0 4px 20px #1f355e09}.hero{background:linear-gradient(116deg,#163967,#0e5789 70%,#0e6c9e);color:#fff;border-radius:17px;padding:31px 37px;min-height:228px;display:flex;align-items:center;justify-content:space-between;overflow:hidden;position:relative}.hero h1{font-size:clamp(25px,3vw,32px);color:#fff;margin-bottom:11px}.hero p{color:#deecfa;font-size:13px;max-width:620px;line-height:1.8;margin-bottom:20px}.hero-kicker{font-size:10px;font-weight:800;letter-spacing:1.4px;display:flex;align-items:center;gap:7px;color:#91ddf7;margin-bottom:14px}.hero-art{height:170px;width:210px;flex-shrink:0;opacity:.25;display:grid;place-items:center;border:2px solid #ffffff4b;border-radius:33px;transform:rotate(-12deg) translate(14px)}.kpi-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:17px}.kpi{padding:22px 23px;text-align:left;border-radius:13px;display:grid;justify-items:start;gap:9px}.kpi:hover{border-color:#bad8ed}.kpi-icon{width:40px;height:40px;display:grid;place-items:center;border-radius:11px;color:#1b77b7}.blue-tint{background:#e7f2ff}.cyan-tint{background:#e5f8fb;color:#0d90a1}.yellow-tint{background:#fff4dc;color:#d99723}.green-tint{background:#e8f9ef;color:#20a76b}.kpi-label{font-size:12px;color:#7788a0;font-weight:700}.kpi strong{font-size:29px;font-weight:800;color:#102b4e;line-height:1.1}.kpi small{font-size:11px;color:#8998aa;display:flex;align-items:center;gap:5px}.double-grid{display:grid;grid-template-columns:1fr 1fr;gap:19px}.widget{padding:23px}.widget h2{display:flex;align-items:center;gap:9px;margin:0}.line-list{margin-top:18px}.line-item{display:flex;align-items:center;gap:12px;padding:14px 0;border-bottom:1px solid #edf1f5}.line-item:last-child{border:0}.line-item>div:nth-child(2){flex:1;min-width:0}.line-item strong{font-size:12px;display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.line-item small{display:block;color:#8897aa;margin-top:6px;font-size:11px}.date-badge{width:42px;height:48px;flex-shrink:0;background:#edf5ff;color:#1365aa;border-radius:8px;display:grid;place-items:center;align-content:center}.date-badge strong{font-size:17px}.date-badge span{font-size:10px;font-weight:800;text-transform:uppercase}.file-round{border-radius:50%;padding:10px;background:#eaf4ff;color:#2175b4}.line-item.clickable{border:0;border-bottom:1px solid #edf1f5;text-align:left;width:100%;background:transparent}.line-item.clickable:hover{background:#f8fbff}.badge{display:inline-block;border-radius:30px;background:#f0f3f8;color:#718095;padding:5px 9px;font-size:10px;font-weight:800;white-space:nowrap}.badge.blue{background:#e8f4ff;color:#2471b2}.badge.success{background:#e5f8ef;color:#158353}.badge.amber{background:#fff2da;color:#b16a12}.notice{display:flex;align-items:flex-start;gap:11px;padding:14px 17px;background:#edf5ff;border:1px solid #d9eafa;border-radius:11px;color:#3a638f;font-size:12px;line-height:1.6}.notice svg{flex-shrink:0;margin-top:1px}.notice.amber{background:#fff9ed;border-color:#f4e3be;color:#926b26}.notice.success{background:#ecfbf3;border-color:#d2f3df;color:#166b4a}.empty{min-height:112px;background:#fff;border:1px dashed #cfdbe7;border-radius:12px;padding:25px;display:flex;align-items:center;justify-content:center;gap:12px;color:#8c9bad;font-size:13px;text-align:center}.small-empty{margin-top:16px;min-height:110px}.search{display:flex;align-items:center;gap:10px;background:#fff;border:1px solid #dce6f0;border-radius:11px;padding:0 14px;max-width:480px;color:#8094aa}.search input{border:0;outline:0;flex:1;height:45px;min-width:0}.filter-input{padding:10px;border:1px solid #d9e4ef;border-radius:9px;min-width:260px}.client-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:15px}.client-card{padding:21px}.client-card .avatar{height:41px;width:41px;background:#dfedf9;color:#175b97;border-radius:11px;display:grid;place-items:center;font-size:17px;font-weight:800}.client-card h3{font-size:17px;margin:15px 0 7px}.info-line{display:flex;align-items:center;gap:8px;font-size:12px;color:#8292a4;margin:7px 0}.info-line svg{flex-shrink:0;color:#4c94c2}.sites-block{margin-top:20px;border-top:1px solid #e9eff6;padding-top:13px}.sites-block strong{font-size:12px}.site-line{display:flex;align-items:flex-start;gap:8px;padding:10px 0;border-bottom:1px solid #f1f3f6}.site-line>div{flex:1}.site-line small{font-size:11px;color:#8997a8;display:block;margin-top:4px}.form-panel{padding:23px;background:#eaf3fc;border:1px solid #cbdff0;border-radius:14px;display:grid;gap:17px}.form-panel h3{font-size:17px;margin:0}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:15px}.field{display:grid;gap:7px;font-size:12px;font-weight:700;color:#4b6078;min-width:0}.field span{font-weight:700}.field input,.field select,.field textarea,textarea{width:100%;background:#fff;color:#213b56;border:1px solid #d6e1ee;border-radius:8px;padding:11px 12px;outline-color:#2890c4;font-size:12px}.field input:focus,.field select:focus,.field textarea:focus{border-color:#64a9d2}.field textarea{resize:vertical}.field.compact{font-size:11px}.field.compact input,.field.compact select,.field.compact textarea{padding:9px 10px}.field.span2{grid-column:span 2}.inline-plus{font-size:11px;color:#0e7aae;font-weight:800;background:transparent;border:0;padding:0 3px}.form-card{padding:24px;display:grid;gap:15px}.form-card h2{display:flex;align-items:center;gap:9px;margin:0}.form-card .form-grid{margin-bottom:4px}.hint{font-size:11px;line-height:1.6;color:#6b7c93;display:flex;align-items:flex-start;gap:7px;margin:0}.stat-pill{font-size:11px;border-radius:20px;background:#e9f4fc;color:#1d70ab;padding:8px 11px;font-weight:800;white-space:nowrap}.calendar-card{padding:18px}.segmented{display:flex;align-items:center;border:1px solid #d9e5ef;border-radius:9px;overflow:hidden;background:#f2f6fa}.segmented button{border:0;background:transparent;padding:9px 14px;font-size:11px;font-weight:800;color:#72849d;display:inline-flex;align-items:center;justify-content:center;gap:7px}.segmented button.active{background:#1b6ba9;color:#fff}.date-range{font-size:13px;color:#264361}.calendar-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:7px;margin-top:18px}.calendar-grid.calendar-jour{grid-template-columns:1fr}.day-cell{min-height:115px;text-align:left;border:1px solid #e6edf5;border-radius:8px;padding:9px;background:#fff;display:flex;flex-direction:column;gap:6px;overflow:hidden}.day-cell:hover{background:#f1f8ff;border-color:#b1d2ea}.day-cell.today{border-color:#62a9d8}.day-cell.chosen{background:#eaf5fe}.day-cell .day-label{font-weight:800;color:#52667f;font-size:11px;text-transform:capitalize}.calendar-event{background:#e9f2fd;color:#22699d;border-left:2px solid #3182c2;border-radius:4px;font-size:10px;padding:5px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.calendar-jour .day-cell{min-height:130px}.calendar-jour .calendar-event{white-space:normal;font-size:12px}.section-title{display:flex;align-items:center;gap:11px}.section-title h2{margin:0}.appointment{display:flex;align-items:flex-start;gap:18px;background:#fff;border:1px solid #e5edf5;border-radius:12px;padding:18px}.appointment-date{width:88px;display:grid;gap:5px;justify-items:center;flex-shrink:0;color:#226ca7;background:#eef6ff;border-radius:9px;padding:11px}.appointment-date small{font-size:10px;color:#7393b4}.appointment-main{flex:1}.appointment-main h3{font-size:15px;margin:8px 0 7px}.appointment-main p{font-size:12px;margin:5px 0;color:#63768e}.appointment-actions{display:grid;justify-items:end;gap:8px}.report-list{display:grid;gap:10px}.report-row{display:flex;align-items:center;gap:17px;width:100%;text-align:left;background:#fff;border:1px solid #e4ecf4;border-radius:12px;padding:16px 18px}.report-row:hover{border-color:#b9d5e9}.report-row .report-content{flex:1;min-width:0}.report-row h3{font-size:14px;margin:9px 0 5px}.report-row p,.report-row small{display:block;color:#8594a7;font-size:11px;margin:4px 0}.report-icon{width:50px;height:50px;display:grid;place-items:center;border-radius:12px;background:#eaf5ff;color:#247cb5;flex-shrink:0}.report-icon.entretien{background:#e8f5ff;color:#226fac}.report-icon.devis{background:#eaf5ed;color:#19915a}.report-icon.intervention{background:#fff1dd;color:#d68b23}.visit-tabs{align-self:start}.check-row{display:grid;grid-template-columns:minmax(170px,1.2fr) minmax(120px,.7fr) minmax(120px,1fr);gap:10px;padding:12px 0;border-bottom:1px solid #eef2f6;align-items:center}.check-name strong,.check-name small{display:block}.check-name strong{font-size:12px}.check-name small{color:#9ba8b8;font-size:10px;margin-top:4px}.check-row select,.check-row input{border:1px solid #dbe4ed;border-radius:8px;padding:9px;font-size:11px;min-width:0;width:100%;background:#fff}.meter-wrap{overflow-x:auto}.meter-table{border-collapse:collapse;min-width:760px;width:100%}.meter-table th{text-align:left;font-size:10px;color:#687c96;background:#eef5fb;padding:11px 6px;white-space:nowrap}.meter-table td{padding:9px 5px;border-bottom:1px solid #e6edf5}.meter-table input,.meter-table select{width:100%;min-width:0;border:1px solid #dbe5ef;border-radius:6px;padding:8px;font-size:11px}.meter-table td:first-child{min-width:145px}.meter-table td:nth-child(2){min-width:120px}.meter-table td:nth-child(3),.meter-table td:nth-child(4){min-width:74px}.meter-table .result{font-size:11px;font-weight:800;white-space:nowrap}.meter-totals{display:flex;gap:24px;justify-content:flex-end;border-top:1px solid #e9eff6;padding-top:15px}.meter-totals>div{display:grid;gap:6px;font-size:11px;color:#7a899b}.meter-totals strong{font-size:19px;color:#1b6ca7}.soft-card{border:1px solid #d9e8f4;background:#f2f8fd;border-radius:12px;padding:21px}.soft-card h3{font-size:17px}.photo-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:15px}.photo-card{overflow:hidden;background:#fff;border:1px solid #e2ebf5;border-radius:12px;display:grid;grid-template-rows:180px 1fr}.photo-image{display:block;width:100%;height:180px;object-fit:cover;background:#e9eff5}.photo-placeholder{display:grid;place-items:center;background:#ecf2f7;color:#91a2b5;font-size:12px;text-align:center}.photo-details{padding:15px;display:grid;align-content:start;gap:12px}.check-inline{display:flex;align-items:center;gap:8px;font-size:11px;color:#64778d}.check-inline input{accent-color:#1c78b4}.micro-note{font-size:11px;color:#9f6827;margin:0}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#0b1e34bf;z-index:90;display:flex;align-items:center;justify-content:center;padding:17px}.modal{width:min(95vw,760px);max-height:94vh;overflow:auto;background:#fff;border-radius:17px;padding:24px;display:grid;gap:17px}.large-modal{max-width:1050px}.toolbar{display:flex;gap:8px;flex-wrap:wrap}.chip{display:inline-flex;align-items:center;gap:6px;padding:8px 11px;font-size:11px;font-weight:700;border:1px solid #d8e6f2;background:#fff;border-radius:9px;color:#3f607c}.chip.selected{background:#196dab;color:#fff;border-color:#196dab}.canvas-area{display:flex;justify-content:center;background:#e7edf4;border-radius:8px;max-height:63vh;overflow:auto}.canvas-area canvas{width:auto;max-width:100%;height:auto;max-height:60vh;object-fit:contain;touch-action:none;cursor:crosshair}.link-list a{display:flex;align-items:center;justify-content:space-between;border:1px solid #d8e6f2;border-radius:8px;padding:13px;font-size:12px;font-weight:700}.sync-toast{position:fixed;right:22px;bottom:24px;padding:12px 18px;border-radius:12px;background:#11345b;color:#fff;box-shadow:0 5px 20px #0003;z-index:60;font-size:12px;cursor:pointer}.sync-toast.success{background:#187d52}.spin{animation:spins 1s linear infinite}@keyframes spins{to{transform:rotate(360deg)}}.mobile-close,.mobile-menu,.sidebar-overlay,.bottom-nav{display:none}@media(max-width:1300px){.kpi-grid,.client-grid,.photo-grid{grid-template-columns:repeat(2,1fr)}}@media(max-width:1000px){.sidebar{width:242px}.main{margin-left:242px}.page{padding:24px 21px 70px}.topbar{padding:0 21px}.double-grid{grid-template-columns:1fr}.hero-art{display:none}}@media(max-width:760px){.sidebar{transform:translate(-110%);transition:transform .2s ease;box-shadow:8px 0 24px #17385a22}.sidebar.opened{transform:translate(0)}.mobile-close{display:grid;margin-left:auto;color:#fff}.sidebar-overlay{display:block;position:fixed;top:0;right:0;bottom:0;left:0;background:#001b35a0;z-index:29;border:0}.main{margin-left:0;padding-bottom:68px}.topbar{height:60px;padding:0 13px}.breadcrumb{font-size:12px}.mobile-menu{display:grid}.sync-top,.user-avatar{display:none}.page{padding:17px 14px 75px}.hero{padding:24px;min-height:235px}.hero h1{font-size:24px}.hero p{font-size:12px}.hero .btn{padding:10px 12px}.kpi-grid{gap:10px}.kpi{padding:15px;gap:6px}.kpi-icon{width:34px;height:34px}.kpi strong{font-size:24px}.kpi small{font-size:10px}.client-grid,.photo-grid,.form-grid{grid-template-columns:1fr}.field.span2{grid-column:span 1}.bottom-nav{position:fixed;display:flex;bottom:0;left:0;right:0;background:#fff;height:calc(66px + env(safe-area-inset-bottom));padding-bottom:env(safe-area-inset-bottom);border-top:1px solid #dbe7f1;z-index:24;justify-content:space-evenly;box-shadow:0 -5px 20px #1436530a}.bottom-nav button{display:grid;justify-items:center;align-content:center;gap:4px;min-width:0;flex:1;border:0;background:transparent;color:#8191a5;font-size:9px;font-weight:700;padding:5px 2px}.bottom-nav button.active{color:#166bab}.bottom-nav button.active svg{stroke-width:2.5}.form-panel,.form-card{padding:17px}.calendar-card{padding:12px}.calendar-card>.row{gap:8px}.date-range{width:100%;text-align:center;order:3}.calendar-grid{grid-template-columns:repeat(7,minmax(43px,1fr));gap:3px;overflow-x:auto}.day-cell{min-height:78px;padding:5px;gap:5px}.day-cell .day-label{font-size:9px}.calendar-event{font-size:8px;padding:3px}.calendar-grid.calendar-jour{grid-template-columns:1fr}.appointment{flex-wrap:wrap;padding:15px;gap:10px}.appointment-date{width:58px}.appointment-actions{display:flex;width:100%;justify-content:flex-end}.check-row{grid-template-columns:1fr 1fr}.check-name,.check-row input{grid-column:1 / -1}.meter-totals{justify-content:flex-start}.modal{padding:15px}.photo-card{grid-template-rows:210px 1fr}.photo-image{height:210px}.sync-toast{bottom:82px;right:9px;left:9px}}
