@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Manrope:wght@500;600;700;800&display=swap');
:root{font-family:'DM Sans',sans-serif;color:#1c2822;background:#f7f9fc;font-synthesis:none;--blue:#2874b9;--blue-dark:#185a96;--muted:#77827b;--line:#e8ece7}*{box-sizing:border-box}body{margin:0;min-width:320px;height:100dvh;overflow:hidden}button,input,textarea,select{font:inherit}button{cursor:pointer}.topbar{height:70px;background:#fff;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;padding:0 26px;position:relative;z-index:500}.brand{display:flex;align-items:center;gap:11px;text-decoration:none;color:inherit;font-family:Manrope,sans-serif;font-size:14px;line-height:1.2}.brand>span:last-child{display:flex;flex-direction:column}.brand small{font:11px 'DM Sans',sans-serif;color:#89938d;margin-top:3px}.brand-mark{width:38px;height:38px;min-width:38px;max-width:38px;object-fit:contain;border-radius:11px;display:block}.top-actions{display:flex;align-items:center;gap:18px}.local-badge{font-size:11px;color:#68746d;display:flex;align-items:center;gap:7px}.local-badge i,.demo-dot{width:7px;height:7px;background:#d6a943;border-radius:50%}.icon-button{border:1px solid var(--line);background:white;border-radius:10px;width:36px;height:36px;color:#536057;font-size:17px}.layout{height:calc(100dvh - 70px);display:grid;grid-template-columns:310px minmax(0,1fr)}.sidebar{padding:29px 23px 18px;background:#fff;border-right:1px solid var(--line);display:flex;flex-direction:column;min-height:0;z-index:2}.eyebrow{font-size:9px;font-weight:700;letter-spacing:1.25px;color:#5682aa}.intro h1{font:700 26px/1.2 Manrope,sans-serif;letter-spacing:-.8px;margin:11px 0 9px}.intro p{font-size:12px;line-height:1.6;color:var(--muted);margin:0;max-width:235px}.side-heading{display:flex;justify-content:space-between;align-items:center;margin:30px 0 11px;font-size:12px;font-weight:700}.category-actions{display:flex;align-items:center;gap:3px}.text-button{border:0;background:none;color:var(--blue);font-size:11px;font-weight:600;padding:5px}.category-list{display:grid;gap:4px;overflow:auto}.category-row{height:39px;min-width:0;display:flex;align-items:center;gap:8px;padding:0 5px;border-radius:9px;color:#46534b;user-select:none}.category-row:hover{background:#f3f7fb}.category-row input{accent-color:var(--blue);width:14px;height:14px;flex:none;margin:0}.category-icon{width:25px;height:25px;flex:none;border-radius:8px;display:grid;place-items:center;font-size:13px}.category-name{font-size:12px;flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.category-count{font-size:10px;color:#306b9e;background:#eaf3fb;border-radius:20px;min-width:22px;height:20px;padding:0 6px;display:grid;place-items:center;font-weight:700}.category-add-btn{flex:none;width:24px;height:24px;padding:0;border:1px solid #d8e7f4;border-radius:7px;background:#f3f8fc;color:var(--blue);font-size:17px;line-height:1}.category-add-btn:hover{background:#e3f0fb;border-color:#a9c9e4}.side-spacer{flex:1}.primary-button{background:var(--blue);border:0;border-radius:10px;padding:11px 14px;color:white;font-size:12px;font-weight:600;box-shadow:0 3px 8px #2874b920}.primary-button:hover{background:var(--blue-dark)}.primary-button span{font-size:17px;vertical-align:-1px;margin-right:6px}.wide{width:100%}.sidebar-foot{display:flex;justify-content:center;align-items:center;gap:7px;color:#89938d;font-size:10px;margin:16px 0 0}.map-wrap{position:relative;min-width:0;min-height:0;height:100%}#map{height:100%;width:100%;background:#edf2f6}.leaflet-container{font-family:'DM Sans',sans-serif}.map-tools{position:absolute;right:17px;top:17px;z-index:450;display:grid;gap:7px}.map-tool{width:38px;height:38px;border-radius:10px;background:white;border:1px solid #e6e9e4;color:#526057;font-size:19px;box-shadow:0 2px 9px #27362b15}.map-mode{width:auto;min-width:64px;padding:0 8px;font-size:10px;font-weight:700}.map-hint{position:absolute;bottom:19px;left:50%;transform:translateX(-50%);z-index:450;background:#fff;color:#647169;border:1px solid #edf0eb;padding:9px 13px;border-radius:9px;font-size:11px;box-shadow:0 2px 10px #27362b12;white-space:nowrap}.selection-card{position:absolute;z-index:470;left:50%;bottom:58px;transform:translateX(-50%);background:#fff;border:1px solid var(--line);box-shadow:0 8px 32px #17291d20;border-radius:14px;padding:14px 16px;width:min(340px,calc(100% - 32px))}.hidden{display:none!important}.selection-top{display:flex;align-items:center;gap:10px}.selection-top .category-icon{width:32px;height:32px}.selection-info{flex:1}.selection-info strong{display:block;font-size:13px}.selection-info small{color:var(--muted);font-size:10px}.close-card{border:0;background:transparent;color:#88938b;font-size:20px}.selection-note{font-size:11px;color:#69756d;line-height:1.5;margin:11px 0}.card-actions{display:flex;gap:8px}.secondary-button{background:#f1f6fb;color:#285d8a;border:1px solid #e1ebf4;border-radius:8px;padding:9px 11px;font-size:11px;font-weight:600}.card-actions .primary-button{flex:1;padding:9px}.equipment-marker{border:2px solid white;border-radius:50% 50% 50% 4px;transform:rotate(-45deg);width:32px;height:32px;display:grid;place-items:center;box-shadow:0 2px 7px #16251d55}.equipment-marker span{transform:rotate(45deg);font-size:14px}.modal-backdrop{position:fixed;inset:0;background:#17251e63;z-index:1000;display:grid;place-items:center;padding:18px}.modal{width:min(520px,100%);max-height:min(90dvh,800px);overflow:auto;background:#fff;border-radius:17px;box-shadow:0 20px 70px #15271f30}.modal-header{display:flex;align-items:flex-start;justify-content:space-between;padding:22px 24px 15px;border-bottom:1px solid var(--line)}.modal-header h2{font:700 18px Manrope,sans-serif;margin:0}.modal-header p{font-size:11px;color:var(--muted);margin:5px 0 0}.modal-close{border:0;background:#f4f6f3;border-radius:50%;width:29px;height:29px;color:#617067;font-size:18px}.modal-body{padding:18px 24px 23px}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:13px}.field{display:grid;gap:6px}.field.full{grid-column:1/-1}.field label{font-size:11px;font-weight:600;color:#455249}.field input,.field select,.field textarea{border:1px solid #dfe5df;border-radius:8px;padding:10px 11px;font-size:12px;color:#26352c;background:#fff;outline:none;width:100%}.field input:focus,.field select:focus,.field textarea:focus{border-color:#72a4d0;box-shadow:0 0 0 3px #2874b918}.field textarea{resize:vertical;min-height:75px}.field-hint{font-size:10px;color:#89938d}.position-row{display:flex;gap:8px}.position-row input{flex:1}.position-row button{white-space:nowrap}.modal-footer{display:flex;justify-content:flex-end;gap:8px;padding-top:16px}.category-manage-row{display:flex;align-items:center;gap:10px;padding:11px 0;border-bottom:1px solid #f0f2ef}.category-manage-row:last-child{border-bottom:0}.category-manage-row .category-icon{flex:none}.category-manage-row .cat-edit{flex:1;min-width:0}.cat-edit input{border:0;padding:6px 2px;font-weight:600;font-size:12px;width:100%}.cat-edit small{font-size:10px;color:var(--muted)}.category-manage-row input[type=color]{width:30px;height:30px;padding:2px;border:1px solid var(--line);border-radius:8px;background:white}.category-manage-row button{border:0;background:#f2f6fa;border-radius:7px;padding:7px 9px;font-size:10px;color:#50677b}.category-manage-row button.danger{color:#a65e51}.add-cat-row{display:flex;gap:8px;margin-top:17px}.add-cat-row input{flex:1;border:1px solid #dfe5df;border-radius:8px;padding:9px;font-size:11px}.detail-category{font-size:11px;color:#718078;display:flex;align-items:center;gap:7px}.detail-number{font:700 24px Manrope,sans-serif;margin:9px 0 16px}.detail-row{padding:10px 0;border-top:1px solid #f0f2ef}.detail-row small{display:block;color:#8a958e;font-size:10px;margin-bottom:4px}.detail-row p{font-size:12px;margin:0;line-height:1.5}.photo-preview{display:flex;gap:7px;flex-wrap:wrap}.photo-preview img{width:64px;height:64px;object-fit:cover;border-radius:8px}.note-list{display:grid;gap:8px}.note-item{background:#f7f8f6;border-radius:8px;padding:9px 10px;font-size:11px}.note-item small{display:block;color:#89938d;margin-bottom:4px}.file-label{display:inline-flex;align-items:center;gap:7px;background:#f1f6fb;padding:9px 11px;border-radius:8px;color:#285d8a;font-size:11px;cursor:pointer}.file-label input{display:none}
@media(max-width:700px){body{height:100dvh}.topbar{height:58px;padding:0 14px}.brand-mark{width:31px;height:31px}.local-badge{font-size:0}.local-badge i{width:8px;height:8px}.layout{height:calc(100dvh - 58px);display:flex;flex-direction:column}.sidebar{order:2;position:absolute;z-index:490;left:10px;right:10px;bottom:10px;padding:12px 14px 10px;border:1px solid var(--line);border-radius:15px;box-shadow:0 4px 20px #1f31251a;max-height:44dvh}.intro{display:none}.side-heading{margin:0 0 7px}.category-list{grid-template-columns:1fr 1fr;gap:0 4px;overflow:auto}.category-row{height:33px;padding:0 5px}.category-icon{width:22px;height:22px}.category-name{font-size:11px}.category-count{display:grid}.side-spacer{display:none}.wide{margin-top:7px;padding:9px}.sidebar-foot{display:none}.map-wrap{flex:1}.map-tools{top:12px;right:12px}.map-hint{bottom:calc(44dvh + 23px);font-size:10px;max-width:calc(100% - 25px);overflow:hidden;text-overflow:ellipsis}.selection-card{bottom:calc(44dvh + 64px)}.modal-backdrop{padding:10px}.modal-header{padding:18px 18px 13px}.modal-body{padding:15px 18px 18px}.form-grid{gap:11px}.field.full.mobile-full{grid-column:1/-1}}
.delete-row{justify-content:flex-start;border-top:1px solid #f0f2ef;margin-top:12px}.danger-button{border:1px solid #f0d7d3;background:#fff7f6;color:#a9463a;border-radius:8px;padding:9px 11px;font-size:11px;font-weight:600}.danger-button:hover{background:#fdebe8}
.search-box{margin-top:16px;flex:none}.search-input-wrap{height:40px;border:1px solid #dfe7ef;border-radius:10px;background:#f9fbfd;display:flex;align-items:center;gap:8px;padding:0 10px;color:#7a8fa2}.search-input-wrap>span{font-size:20px;line-height:1}.search-input-wrap input{border:0;outline:0;min-width:0;flex:1;background:transparent;color:#253849;font-size:12px}.search-input-wrap input::placeholder{color:#94a2ae}.search-input-wrap input::-webkit-search-cancel-button{display:none}.search-input-wrap button{border:0;background:transparent;color:#80909e;font-size:18px;padding:0 2px}.search-results{margin-top:5px;max-height:180px;overflow:auto;border:1px solid #e5ebf0;border-radius:10px;background:#fff;box-shadow:0 5px 16px #1c344211}.search-result{width:100%;display:flex;align-items:center;gap:8px;padding:8px;border:0;border-bottom:1px solid #f0f3f5;background:#fff;text-align:left;color:#304150}.search-result:last-child{border-bottom:0}.search-result:hover{background:#f4f8fb}.search-result .category-icon{width:26px;height:26px}.search-result-text{min-width:0;flex:1}.search-result-text strong,.search-result-text small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.search-result-text strong{font-size:11px}.search-result-text small{font-size:9px;color:#788995;margin-top:3px}.search-result-arrow{color:#7d96aa}.search-empty{padding:12px;color:#87949e;font-size:11px;text-align:center}@media(max-width:700px){.search-box{margin-top:0}.search-input-wrap{height:35px}.search-results{max-height:120px}}

/* Carte de voirie : OSM désaturé pour mieux faire ressortir les objets ajoutés. */
#map .map-street .leaflet-tile{filter:saturate(.52) brightness(1.06)}
