*{box-sizing:border-box}body{margin:0;color:#333636;background:#F6FAFC;font:15px/1.5 system-ui,sans-serif}header{padding:23px 28px;background:#626465;color:#fff;display:flex;align-items:center;justify-content:space-between;gap:12px}h1{margin:4px 0 0;font-size:29px;letter-spacing:-1px}.eyebrow{font-size:11px;font-weight:700;letter-spacing:1.6px}header .eyebrow{color:#F3FAFB}.pill{background:#ffffff20;border:1px solid #ffffff40;padding:6px 12px;border-radius:30px;font-size:12px;white-space:nowrap}.notice{padding:10px 28px;background:#fff4dd;color:#745719;font-size:13px}main{display:grid;grid-template-columns:minmax(0,1fr) 350px;gap:22px;padding:24px;max-width:1600px;margin:auto}.mapsection{min-width:0}.toolbar{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:12px}button{padding:10px 13px;border:1px solid #cbd9d0;border-radius:8px;background:#fff;color:#626465;font:inherit;cursor:pointer;min-height:44px}button:hover{background:#e8f5f8}.primary{background:#626465;border-color:#626465;color:white;width:100%;font-weight:600}.primary:hover{background:#47A5B6}button:disabled{opacity:.55;cursor:wait}button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid #e5ac40;outline-offset:2px}#map{height:calc(100vh - 280px);min-height:430px;border-radius:16px;border:1px solid #dce5e8;background:#F6FAFC;box-shadow:0 4px 18px #33363608;z-index:0}.card{border:1px solid #dce5e8;background:#fff;border-radius:14px;padding:22px;margin-bottom:18px;box-shadow:0 4px 15px #1d352507}.card .eyebrow{color:#366c77}h2{font-size:21px;line-height:1.25;margin:8px 0 12px}p{margin:10px 0}label{display:block;font-size:13px;font-weight:650;margin:13px 0 5px}input,select,textarea{width:100%;font:inherit;padding:10px;border:1px solid #b3c6cc;border-radius:7px;background:white;color:#333636}textarea{resize:vertical}form button{margin-top:14px}small,.caption{font-size:12px;color:#6b7d71}.legend{display:flex;gap:8px;flex-wrap:wrap;align-items:center;font-size:12px;padding:12px 2px}.boundary{display:inline-block;width:26px;border-top:3px dashed #694f9f}.sample{display:inline-block;width:26px;border-top:5px solid #ed8936;margin-left:12px}#zoom{margin-left:auto}footer{font-size:11px;color:#607468;padding:8px 26px 24px}a{color:#626465}progress{width:100%;margin-top:12px;accent-color:#626465}#offline,#saved{font-size:13px;font-weight:600}.leaflet-control-attribution{font-size:10px!important}.demo-marker{background:#fff5df;border:2px solid #d77820;color:#7e430f;border-radius:20px;font-size:11px;font-weight:bold;text-align:center;line-height:23px;white-space:nowrap}.leaflet-container{font-family:inherit}.leaflet-tooltip{font-family:inherit} @media(max-width:850px){main{grid-template-columns:1fr;padding:14px;gap:8px}header{padding:18px}h1{font-size:24px}.notice{padding:10px 18px}#map{height:58vh;min-height:330px}aside{display:grid;grid-template-columns:1fr 1fr;gap:14px}.card{padding:18px}}@media(max-width:580px){aside{display:block}.toolbar{gap:6px}.toolbar button{font-size:12px;padding:8px 10px}.pill{font-size:11px}#zoom{width:100%;margin:0}.card{margin-bottom:12px}}

/* Identité visuelle de Séglien : gris, turquoise et bleu clair. */
:root{--commune-gris:#626465;--commune-turquoise:#47A5B6;--commune-bleu:#47D0FE;--commune-texte:#333636}header{background:var(--commune-gris)}.primary{background:var(--commune-bleu);border-color:var(--commune-bleu);color:var(--commune-texte)}.primary:hover{background:#7cdefe;border-color:#47A5B6}.card{border-top:3px solid var(--commune-turquoise)}a{color:#285e69}button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline-color:#225d6a}.pill{color:white}#google-status{font-size:13px;font-weight:600}#google-status[data-state="success"]{color:#17643d}#google-status[data-state="error"]{color:#a32d2d}

[hidden]{display:none!important}.account{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.account #account-name{font-size:13px}.account button{font-size:12px;padding:5px 10px;min-height:34px}.login-panel{padding:40px 18px;min-height:65vh;display:grid;place-items:center}.login-card{width:100%;max-width:440px;border-radius:18px;background:white;border:1px solid #dce5e8;border-top:5px solid #47A5B6;padding:30px;box-shadow:0 10px 35px #33363610}.login-card h2{font-size:30px}.login-card .primary{margin-top:22px}.login-card p{color:#4c6268}.login-card small{display:block;margin-top:15px}#login-status[data-state="error"]{color:#a12b2b}#login-submit[aria-busy="true"]:before{content:"";display:inline-block;vertical-align:middle;width:14px;height:14px;margin-right:10px;border:2px solid #33363650;border-top-color:#333636;border-radius:50%;animation:spin 1s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}@media(max-width:580px){.account{justify-content:flex-end;gap:6px;max-width:170px}.login-panel{padding:25px 14px}.login-card{padding:24px}}

/* Interface des travaux communaux */
main{display:block;max-width:1600px;padding-top:0}.main-nav{display:flex;gap:4px;flex-wrap:wrap;border-bottom:1px solid #d8e3e7;padding:16px 0}.main-nav button{border:0;background:none;border-radius:6px;color:#57666b;font-weight:650;padding:11px 20px}.main-nav button[aria-current=page]{background:#e1f2f6;color:#225d6a;box-shadow:inset 0 -3px #47a5b6}.page-heading,.section-heading{display:flex;justify-content:space-between;align-items:center;gap:16px}.page-heading{padding-top:24px}.page-heading h2{font-size:28px;margin-top:6px}.map-layout{display:grid;grid-template-columns:minmax(0,1fr) 350px;gap:22px}.section-heading .primary{width:auto}.section-heading h2{margin:0}.cards-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:18px;padding-top:16px}.record-card{padding:20px;background:white;border:1px solid #dce5e8;border-radius:12px;border-top:3px solid #47a5b6}.record-card h3{margin:6px 0 10px;font-size:18px}.record-card button{margin-top:10px}.record-meta{font-size:12px;color:#63777d}.list-item{border-bottom:1px solid #e7eef1;padding:12px 0}.list-item button{display:block;text-align:left;width:100%;border:0;padding:5px 0;color:#225d6a;font-weight:600;min-height:36px}.filters{display:flex;gap:4px;flex-direction:column}.filters label{display:flex;align-items:center;gap:9px;font-weight:400;margin:4px 0}.filters input{width:18px;height:18px;accent-color:#47a5b6}.pin-key,.building-key{display:inline-block;width:12px;height:12px;background:#47a5b6;border:2px solid white;box-shadow:0 0 0 1px #47a5b6;border-radius:50%;margin-left:12px}.building-key{background:#626465;box-shadow:0 0 0 1px #626465;border-radius:2px}dialog{max-width:700px;width:calc(100% - 28px);border:1px solid #c6dbe1;border-radius:16px;padding:25px;color:#333636;max-height:92vh}dialog::backdrop{background:#26373f80}dialog fieldset{border:0;padding:0;margin:0}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}.location-card{margin-top:20px;background:#f3fafb;padding:14px;border-radius:8px}.pick-notice{position:fixed;bottom:20px;left:50%;transform:translateX(-50%);background:#225d6a;color:white;z-index:1500;padding:12px 20px;border-radius:12px;width:max-content;max-width:95%;box-shadow:0 8px 30px #0003}.pick-notice button{margin-left:12px}.empty{padding:20px;color:#64767b;background:#f0f7f9;border-radius:8px}#data-status{font-size:13px;min-height:24px;color:#516b72}#record-status{font-size:13px;font-weight:600}.settings-row{display:flex;gap:12px;align-items:center;padding:10px 0;border-bottom:1px solid #edf2f4}.swatch{width:25px;height:8px;border-radius:4px;flex-shrink:0}
@media(max-width:850px){.map-layout{grid-template-columns:1fr}.page-heading h2{font-size:24px}.main-nav{gap:2px}.main-nav button{padding:10px 12px}aside{display:block}.form-grid{grid-template-columns:1fr}.page-heading,.section-heading{align-items:flex-start}.section-heading{flex-wrap:wrap}.page-heading{gap:10px}#map{height:55vh;min-height:330px}dialog{padding:18px}}

/* La marge d’images couvre le cadre aux dimensions mobiles et bureau. */
#map{max-height:1000px}#pause-prepare{margin-left:8px}

.record-actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:16px}.record-actions button{flex:1;min-width:210px}.record-actions .primary{width:auto}#record-form[aria-busy=true] #record-save:before{content:"";display:inline-block;width:12px;height:12px;border:2px solid #33363640;border-top-color:#333636;border-radius:50%;margin-right:8px;animation:spin 1s linear infinite}

.check-label{display:flex;gap:10px;align-items:center;font-weight:500}.check-label input{width:18px;height:18px;accent-color:#47a5b6}#config-color{height:46px;padding:4px}.line-preview{background:#f3f8fa;border:1px solid #dce5e8;border-radius:8px;padding:10px}.line-preview svg{display:block;width:100%;height:50px}.config-item{display:grid;grid-template-columns:130px minmax(0,1fr) auto;gap:15px;align-items:center;border-bottom:1px solid #e3ecef;padding:14px 0}.config-item svg{width:120px;height:34px}.inactive-tag{color:#876b20;font-size:12px}.config-item small{display:block}#config-save-status{font-weight:600}@media(max-width:580px){.config-item{grid-template-columns:85px minmax(0,1fr);gap:10px}.config-item svg{width:80px}.config-item button{grid-column:2;justify-self:start}}

#road-dialog{max-width:780px}.road-state-row{display:grid;grid-template-columns:1fr 1fr;gap:12px;padding:9px 0;border-bottom:1px solid #edf2f4}.road-state-row strong{grid-column:1/-1;font-size:14px}.road-state-row label{margin-top:4px}.road-direction{font-size:17px;color:#225d6a;text-align:center;line-height:20px;text-shadow:0 0 3px #fff,0 0 3px #fff}.road-list-item{border-bottom:1px solid #e6edf0;padding:10px 0}.road-list-item button{width:100%;text-align:left;border:0;color:#225d6a;font-weight:650}.road-list-item small{display:block}#road-draw-notice{min-width:320px}#road-draw-notice .toolbar{margin:8px 0 0}#road-state-fields select{font-size:14px}#road-form[aria-busy=true] #road-save:before{content:"";display:inline-block;width:12px;height:12px;border:2px solid #33363640;border-top-color:#333636;border-radius:50%;margin-right:8px;animation:spin 1s linear infinite}@media(max-width:580px){.road-state-row{gap:8px}#road-draw-notice{font-size:13px}#road-draw-notice button{font-size:12px;padding:8px}}

#road-list{max-height:350px;overflow:auto}@media(max-width:580px){#road-list{max-height:260px}}

.save-confirmation{position:fixed;right:24px;bottom:24px;z-index:2000;display:flex;gap:18px;align-items:center;max-width:min(520px,calc(100vw - 32px));padding:15px 18px;border:1px solid #8ecdb3;border-left:5px solid #22A06B;border-radius:12px;background:#f0fbf5;color:#175b3b;box-shadow:0 8px 30px #223c3226}.save-confirmation button{color:#175b3b;border-color:#b8d9c9;background:white;min-height:36px;font-size:12px;padding:6px 10px}@media(max-width:580px){.save-confirmation{right:16px;left:16px;bottom:16px;max-width:none;font-size:14px}}

.sense-panel{width:min(650px,calc(100vw - 24px));max-height:42vh;overflow:auto;padding:14px 18px}.sense-panel p{font-size:13px;margin:7px 0}.sense-panel .toolbar{margin:10px 0;display:flex;gap:7px;flex-wrap:wrap}.sense-panel button{margin:0;font-size:13px;min-height:42px}.sense-panel label{color:white;font-size:13px}.sense-panel input{flex-shrink:0}.sense-panel small{font-size:12px}.sense-panel summary{cursor:pointer;min-height:32px}.sense-panel .primary{width:auto;background:#e8f5f8;color:#225d6a}#road-sense-summary{font-size:13px;color:#97400e;font-weight:600}#road-sense-list{max-height:140px;overflow:auto}.sense-panel[hidden]{display:none}

@media(max-width:850px){#map.road-selection-map{position:fixed;inset:0 0 auto;width:100%;height:58vh;height:58dvh;min-height:0;max-height:none;z-index:1450;border-radius:0}body:has(#map.road-selection-map) #road-sense-notice{inset:auto 0 0;transform:none;width:100%;max-width:100%;height:42vh;height:42dvh;max-height:42vh;max-height:42dvh;box-sizing:border-box;border-radius:12px 12px 0 0;padding-bottom:max(14px,env(safe-area-inset-bottom))}}

.login-remember{margin-top:18px;font-size:14px;align-items:flex-start}.login-card #login-remember-help{margin-top:6px;color:#62777d;font-size:12px}#login-auto-cancel{width:100%;margin-top:10px;font-size:13px}#login-submit[data-auto=true]{position:relative;overflow:hidden}#login-submit[data-auto=true]:after{content:"";position:absolute;inset:auto 0 0;height:4px;background:#225d6a;transform-origin:left;animation:login-countdown 5s linear forwards}@keyframes login-countdown{from{transform:scaleX(0)}to{transform:scaleX(1)}}@media(prefers-reduced-motion:reduce){#login-submit[data-auto=true]:after{animation:none}#login-submit[aria-busy=true]:before{animation:none;border-top-color:#225d6a}}

.road-linked-works{margin-top:24px;border-top:1px solid #dce5e8;padding-top:18px}.road-linked-works h3{margin:0}.road-linked-works .section-heading{align-items:center}.road-linked-works small{display:block;color:#63777d}.road-linked-works #road-work-status{font-size:13px;color:#516b72}.road-linked-works button{min-height:42px}#road-select-wrap small{display:block;font-size:12px;color:#63777d;margin:6px 0 14px}

.archive-action{display:block;margin:20px 0 0;border-color:#d8b6a1;color:#8b4b26;background:#fff8f3}.record-card details{margin:12px 0}.record-card summary{cursor:pointer;min-height:36px;color:#225d6a;font-weight:600}.record-card details p{white-space:pre-wrap;overflow-wrap:anywhere;font-size:13px}#archives-count,#archives-status{font-size:13px;color:#516b72}#archive-dialog{max-width:560px}#archive-dialog[aria-busy=true] #archive-confirm:before{content:"";display:inline-block;width:12px;height:12px;border:2px solid #33363640;border-top-color:#333636;border-radius:50%;margin-right:8px;animation:spin 1s linear infinite}#archive-status{font-size:13px;font-weight:600}

/* V17 : comptes, affectations et suivi */
.intervention-extra{border-top:1px solid #dce5e8;margin-top:20px;padding-top:10px}.assignment-options{display:grid;gap:8px;margin:10px 0}.assignment-options label{display:flex;gap:10px;align-items:flex-start;margin:0;padding:10px;border:1px solid #dce5e8;border-radius:8px;font-weight:400}.assignment-options input{width:auto;margin-top:4px}.work-observation{border-left:3px solid #47A5B6;padding:8px 12px;margin:10px 0;background:#f3fafc}.work-observation p{white-space:pre-wrap;overflow-wrap:anywhere}.work-observation small{display:block}#work-followup{margin-top:24px;border-top:1px solid #dce5e8;padding-top:12px}#user-dialog{max-width:620px}#user-reset-password{margin-top:20px;width:100%}#user-form[aria-busy=true] #user-save:before,#tech-form[aria-busy=true] #tech-save:before{content:"";display:inline-block;width:12px;height:12px;border:2px solid #ffffff60;border-top-color:#fff;border-radius:50%;margin-right:8px;animation:spin 1s linear infinite}.road-hover,.road-hover .leaflet-interactive,.road-hover canvas{cursor:pointer!important}

/* V18 : photos */
.photo-open{display:block;margin-top:16px;border-color:#47A5B6;color:#225d6a}#photos-dialog{max-width:980px;width:calc(100vw - 32px)}.photo-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(240px,100%),1fr));gap:16px;margin:16px 0}.photo-card{border:1px solid #dce5e8;border-radius:12px;overflow:hidden;padding:14px;background:#fff;min-width:0}.photo-thumb{display:grid;place-items:center;padding:0;width:100%;height:190px;overflow:hidden;background:#edf5f7;border:0;border-radius:8px;color:#225d6a}.photo-thumb img,.photo-pending-preview{display:block;width:100%;height:190px;object-fit:contain;background:#edf5f7;border-radius:8px}.photo-card p{white-space:pre-wrap;overflow-wrap:anywhere}.photo-card small{display:block}.photo-card details{margin-top:12px}.photo-card summary{cursor:pointer;color:#225d6a;font-weight:600}.photo-card button{font-size:13px}.photo-card textarea{margin-top:8px}.photo-card .photo-state{font-size:12px;color:#516b72}.photo-card.archived{border-style:dashed;opacity:.8}.photo-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:12px}#photos-form{border:1px solid #a9d4dd;background:#f3fafc;padding:18px;border-radius:12px;margin:18px 0}#photos-status,#photos-count{font-size:13px}#photo-viewer{max-width:1200px;width:calc(100vw - 24px)}#photo-viewer-image{display:block;max-width:100%;max-height:72vh;max-height:72dvh;object-fit:contain;margin:auto}#photo-viewer-caption{white-space:pre-wrap;overflow-wrap:anywhere}.photo-download{display:inline-block;margin-top:12px;padding:8px 12px;border:1px solid #a9d4dd;border-radius:8px;color:#225d6a}#photos-form[aria-busy=true] #photos-save:before{content:"";display:inline-block;width:12px;height:12px;border:2px solid #ffffff60;border-top-color:#fff;border-radius:50%;margin-right:8px;animation:spin 1s linear infinite}@media(max-width:580px){#photos-dialog,#photo-viewer{width:calc(100vw - 16px);padding:16px}.photo-grid{grid-template-columns:1fr}.photo-thumb,.photo-thumb img,.photo-pending-preview{height:220px}#photos-form{padding:12px}}
/* V19 : suivi et commentaires */
#commentaires-dialog{width:min(760px,calc(100vw - 2rem));max-height:90vh;overflow:auto}#commentaires-form{margin:1.25rem 0;padding:1rem;border:1px solid #d8e1e1;border-radius:12px;background:#f3f8f8}#commentaires-text{width:100%;box-sizing:border-box;resize:vertical}#commentaires-save{margin-top:.5rem}#commentaires-list{display:grid;gap:.85rem}.thread-message{border:1px solid #d8e1e1;border-left:4px solid #47a5b6;border-radius:10px;padding:1rem;background:#fff}.thread-meta{display:flex;justify-content:space-between;gap:.5rem;flex-wrap:wrap}.thread-meta time{font-size:.83rem;color:#626465}.thread-kind{display:inline-block;margin-top:.45rem;color:#225d6a;font-size:.85rem;font-weight:600}.thread-text{white-space:pre-wrap;overflow-wrap:anywhere;margin-bottom:0}#commentaires-more{margin-top:1rem}@media(max-width:600px){#commentaires-dialog{width:calc(100vw - 1rem);padding:1rem}#commentaires-form,.thread-message{padding:.85rem}}
