
:root{--g950:#215640;--g900:#346e52;--g800:#3f7e5e;--g700:#4c9470;--g600:#62a986;--g500:#81be9d;--g100:#e9f7ee;--g50:#f5fbf7;--line:#dcebe1;--text:#294537;--sub:#72887a;--white:#fff;--red:#a84d44;--redbg:#fff4f1;--shadow:0 4px 18px rgba(38,92,56,.045)}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:#f3f7f4;color:var(--text);font:14px/1.48 system-ui,-apple-system,"Segoe UI",Roboto,Arial,sans-serif}button,input,textarea,select{font:inherit}button{cursor:pointer}button:disabled{opacity:.45;cursor:not-allowed}input,textarea,select{color:var(--text)}a{color:var(--g700)}
header{background:linear-gradient(116deg,#092f20,#146b3e 80%,#19874a);color:#fff;padding:23px max(20px,calc((100vw - 1180px)/2));position:relative;overflow:hidden}header:after{content:"";position:absolute;width:310px;height:310px;border-radius:100%;border:55px solid rgba(255,255,255,.038);right:-100px;top:-190px;pointer-events:none}.brand{display:flex;gap:10px;align-items:center;font-size:12px;letter-spacing:.12em;text-transform:uppercase;color:#c4ebd2;font-weight:700}.brand-mark{display:grid;place-items:center;width:36px;height:36px;background:#fff;color:var(--g800);border-radius:11px;letter-spacing:0;font-size:13px}.head-line{display:flex;align-items:flex-end;justify-content:space-between;gap:20px;margin-top:12px;flex-wrap:wrap}h1{font-size:clamp(27px,3.7vw,40px);letter-spacing:-1.1px;line-height:1.1;margin:6px 0 7px}header p{margin:0;color:#d2eadd}header .headTag{border:1px solid #ffffff61;border-radius:999px;padding:7px 13px;background:#ffffff12;color:#e9ffed;font-size:12px}
.shell{max-width:1220px;margin:0 auto;padding:20px 20px 60px}.toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;margin:0 0 15px}.groupButtons{display:flex;flex-wrap:wrap;gap:8px}.btn{border:1px solid var(--line);border-radius:10px;background:#fff;padding:10px 13px;display:inline-flex;align-items:center;justify-content:center;gap:7px;font-weight:650;color:var(--g900);box-shadow:0 1px 2px #152b2010;min-height:39px}.btn:hover{background:var(--g50);border-color:#b9d8c1}.btn.primary{background:var(--g700);color:#fff;border-color:var(--g700)}.btn.primary:hover{background:#0a5a32}.btn.danger{color:#9a3939}.btn.small{padding:7px 10px;font-size:12px;min-height:31px}.saveStatus{font-size:12px;color:var(--sub);display:inline-flex;align-items:center;gap:6px}.statusDot{width:7px;height:7px;background:#60b481;border-radius:50%}
.card{background:#fff;border:1px solid var(--line);border-radius:15px;box-shadow:var(--shadow);overflow:hidden}.card+.card{margin-top:15px}.card-head{padding:14px 20px;background:#f3faf5;border-bottom:1px solid var(--line);display:flex;gap:12px;align-items:center;justify-content:space-between}.card-head h2{font-size:16px;margin:0;color:var(--g900);letter-spacing:-.25px}.card-head small{font-size:12px;color:var(--sub)}.card-body{padding:20px}.introNote{color:var(--sub);font-size:12px}
.searchRow{position:relative;display:flex;gap:9px;align-items:stretch;max-width:640px}.searchRow input{flex:1}.oaResult{position:absolute;z-index:20;left:0;top:calc(100% + 4px);width:100%;background:white;border:1px solid #b8d8c2;box-shadow:0 12px 30px #153a2629;max-height:300px;overflow:auto;border-radius:11px}.oaResult[hidden]{display:none}.oaResult button{background:#fff;display:flex;align-items:flex-start;justify-content:space-between;text-align:left;width:100%;padding:10px 13px;border:0;border-bottom:1px solid #e8eee9;gap:10px}.oaResult button:hover{background:var(--g50)}.oaResult b{color:var(--g800)}.oaResult span{font-size:12px;color:var(--sub)}.hint{font-size:12px;color:var(--sub);margin-top:8px}.fieldGrid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:13px 15px}.field{display:block;min-width:0}.field span{display:block;font-size:12px;color:#4d6657;font-weight:700;margin-bottom:5px}.field input,.field textarea,.field select,.searchRow input{width:100%;background:#fff;border:1px solid #cedfd3;border-radius:9px;padding:10px 11px;min-height:41px;outline:none}.field input:focus,.field textarea:focus,.field select:focus,.searchRow input:focus,.taskRemark:focus{border-color:var(--g600);box-shadow:0 0 0 3px #168d4422}.field textarea{min-height:100px;resize:vertical}.field.span2{grid-column:span 2}.field.span4{grid-column:span 4}.infoPill{background:#e7f7ed;color:#19603a;border-radius:8px;font-weight:700;display:inline-block;padding:5px 9px;font-size:12px}
.scorecards{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin-top:17px}.score{background:#fff;border:1px solid var(--line);padding:13px 15px;border-radius:12px}.score .num{font-size:25px;font-weight:800;letter-spacing:-.7px;line-height:1.05;color:var(--g900)}.score .label{color:var(--sub);font-size:12px;margin-top:4px}.score.warn .num{color:var(--red)}.progress{width:100%;height:7px;border-radius:100px;background:#e7efe9;overflow:hidden;margin-top:12px}.progress div{width:0%;height:100%;background:linear-gradient(90deg,var(--g600),#71cc8e);transition:width .2s}
.tabs{position:sticky;top:0;z-index:10;background:#f3f7f4;padding:12px 0;display:flex;gap:7px}.tab{padding:11px 20px;background:#fff;color:#476552;border:1px solid var(--line);font-weight:700;border-radius:9px;min-width:128px}.tab.active{background:var(--g700);border-color:var(--g700);color:#fff;box-shadow:0 4px 10px #136a3b26}.tabpanel[hidden]{display:none!important}
.sectionBar{background:var(--g900);color:#fff;padding:13px 17px;border-radius:11px;margin:19px 0 10px;font-weight:800;letter-spacing:.15px;display:flex;justify-content:space-between;align-items:center}.sectionBar:first-child{margin-top:0}.sectionBar span{font-weight:500;font-size:12px;opacity:.86}
details.group{background:#fff;border:1px solid var(--line);border-radius:13px;margin-bottom:11px;box-shadow:var(--shadow);overflow:hidden}details.group>summary{list-style:none;cursor:pointer;display:flex;gap:14px;justify-content:space-between;align-items:center;padding:15px 16px;background:var(--g50);font-weight:780;color:var(--g800)}details.group>summary::-webkit-details-marker{display:none}.groupNumber{background:#ddefe4;border:1px solid #b9ddc5;color:var(--g800);padding:4px 8px;border-radius:8px;font-size:12px;margin-right:9px}.groupInfo{font-size:11px;color:#61806b;font-weight:650;white-space:nowrap}.chev{display:inline-block;margin-left:10px;transform:rotate(0deg);transition:transform .15s}details[open] .chev{transform:rotate(90deg)}.task{padding:14px 16px;border-top:1px dashed #dce9df;background:#fff}.task:hover{background:#fcfefd}.taskHead{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px 13px;align-items:center}.taskLabel{font-size:14px;font-weight:650;line-height:1.35}.taskSub{display:flex;align-items:center;gap:6px;margin-top:5px;flex-wrap:wrap}.tag{font-size:10px;padding:3px 7px;border:1px solid #cce6d4;border-radius:999px;color:#29774a;background:#f1fbf4;font-weight:650}.tag.neutral{border-color:#e5e9e4;color:#87918a;background:#f8faf9}.choice{display:inline-flex;gap:5px;align-items:center}.choice button{width:68px;padding:8px 0;border:1px solid #e2e9e4;background:#eef2ef;border-radius:8px;color:#85918b;font-weight:800;font-size:12px}.choice button.yes.selected{background:#def4e5;border-color:#2b9c58;color:#115d35}.choice button.no.selected{background:#fee6e1;border-color:#d57165;color:#a6332a}.choice button:not(.selected):hover{background:#e2ebe4}.taskExtra{display:flex;align-items:flex-start;gap:9px;margin-top:10px}.taskRemark{border:1px solid #e1eae3;padding:8px 11px;border-radius:8px;min-height:34px;resize:vertical;flex:1;min-width:0;max-height:140px;background:#fff;font-size:12px}.photoTrigger{min-width:102px;border:1px solid #cddfd4;border-radius:8px;padding:7px 9px;align-self:flex-start;background:#f8fcf9;color:var(--g800);font-size:12px;font-weight:720}.thumbs{display:flex;flex-wrap:wrap;gap:7px;margin:9px 0 0}.thumb{position:relative;width:66px;height:66px;border:1px solid #d8e8dc;border-radius:9px;overflow:hidden;background:#e8ece9}.thumb img{width:100%;height:100%;object-fit:cover}.thumb button{position:absolute;right:0;top:0;width:23px;height:23px;line-height:1;color:#fff;background:#972e2ebd;border:0;border-radius:0 0 0 7px}.groupStats{margin-left:auto;display:flex;gap:5px;align-items:center}.pill{border-radius:999px;padding:4px 8px;font-size:11px;font-weight:800;background:#e6f4e9;color:var(--g800)}.pill.no{background:#fff0ec;color:#ad4540}
.tableWrap{width:100%;overflow-x:auto}.gridTable{border-collapse:collapse;width:100%;min-width:700px;font-size:13px}.gridTable th{background:#e6f4e9;color:var(--g800);text-align:left;padding:12px 10px;border-bottom:1px solid #c7decf;white-space:nowrap}.gridTable td{border-bottom:1px solid #ecf0ec;padding:11px 10px;vertical-align:top}.gridTable tr:nth-child(even){background:#fafcfb}.gridTable td:nth-child(1){font-weight:650}.gridTable .yesVal{color:var(--g700);font-weight:800}.gridTable .noVal{color:#be473e;font-weight:800}.gridTable .emptyVal{color:#a5aea7}.summaryColumns{display:grid;grid-template-columns:1fr 1fr;gap:15px}.summaryBox{border:1px solid var(--line);border-radius:13px;padding:15px 17px}.summaryBox h3{font-size:15px;color:var(--g800);margin:0 0 10px}.summaryBox p{margin:7px 0}.muted{color:var(--sub)}.callout{background:#f2faf4;border:1px solid #d0e7d5;padding:14px 16px;border-radius:12px;color:var(--g800)}.warning{background:#fff6eb;border-color:#efd6ab;color:#73572d}.photosGrid{display:flex;gap:10px;flex-wrap:wrap;margin-top:10px}.finalPhoto{width:125px;height:115px;position:relative;border:1px solid #dae7db;border-radius:12px;overflow:hidden}.finalPhoto img{width:100%;height:100%;object-fit:cover}.finalPhoto button{position:absolute;right:3px;top:3px;border:none;color:#fff;border-radius:6px;background:#912e2edd;padding:3px 6px}.finalPhoto span{position:absolute;left:0;bottom:0;right:0;background:#07251fc2;color:#fff;padding:4px;font-size:10px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.footer{padding:22px 4px 0;text-align:center;color:#75897c;font-size:11px}.toolrow{display:flex;gap:8px;align-items:center;justify-content:space-between;flex-wrap:wrap;margin:10px 0 14px}#printReport{display:none}input[type=checkbox]{accent-color:var(--g700)}.archiveLine{margin-top:13px;display:flex;align-items:center;gap:8px;color:#365942;font-weight:600}
/* Palette claire */
body{background:#f7fbf8}
header{background:linear-gradient(110deg,#e8f6ec,#d7efe0 78%,#c9e7d5);color:#27583d;border-bottom:1px solid #c4e3d0;padding-top:19px;padding-bottom:19px}
header:after{border-color:rgba(87,151,106,.09)}
.brand{color:#48795c}.brand-mark{background:#579d76;color:white}
header p{color:#557d64}header .headTag{border-color:#b9d9c3;background:#f4fbf6;color:#48795c}
.btn.primary,.tab.active{background:#559d77;border-color:#559d77;color:#fff}.btn.primary:hover{background:#448762}
.card-head{background:#eff8f2}.card-head h2{text-transform:uppercase;letter-spacing:.045em;font-size:14px}
.tabs{background:#f7fbf8}.sectionBar{background:#e1f2e6;border:1px solid #cce6d4;color:#2e704c;text-transform:uppercase;letter-spacing:.07em;font-size:13px}
details.group>summary{text-transform:uppercase;background:#f0f9f3;color:#357654;letter-spacing:.018em}
.groupNumber{background:#e2f2e7;border-color:#cae4d2;color:#3e7d59}
.choice button{background:#f2f6f3;border-color:#dbe8de}.choice button.yes.selected{background:#d8f0df;border-color:#69b786;color:#2c744b}.choice button.no.selected{background:#ffece8;border-color:#d7a7a0;color:#a45b4f}
.choice button.na{width:auto;min-width:123px;padding-left:10px;padding-right:10px;display:inline-flex;justify-content:center;align-items:center;gap:8px}
.choice button.na.selected{background:#f0eaf9;border-color:#b5a2d5;color:#675289}
.choice .naCheck{width:15px;height:15px;accent-color:#8772a9;margin:0}
.scorecards{grid-template-columns:repeat(5,1fr)}
.oaPicker{max-width:420px}.oaPicker select{width:100%;min-height:44px;padding:10px 12px;border:1px solid #b9dac5;border-radius:9px;background:#fff;color:#28563b;font-weight:700;font-size:14px}
.oaPicker select:focus{outline:2px solid #a0d4b4;outline-offset:2px}
.field input[readonly]{background:#f8fcf9;border-color:#d8e9dd;color:#3d6650}
.gridTable .naVal{color:#765d9d;font-weight:800}
.planCard{margin-top:16px}.planWrap{display:grid;grid-template-columns:minmax(0,2fr) minmax(280px,1fr);gap:16px;align-items:stretch}.mapCanvas{position:relative;min-height:320px;border:1px solid var(--line);border-radius:14px;overflow:hidden;background:#eef5f1}.mapCanvas iframe{width:100%;height:100%;min-height:320px;border:0;display:block}.mapPlaceholder{position:absolute;inset:0;display:grid;place-items:center;padding:20px;text-align:center;color:#587062;background:linear-gradient(180deg,#f5fbf7,#edf5f0)}.planMeta{display:grid;grid-template-columns:1fr;gap:10px}.coordCard{background:#f8fcf9;border:1px solid var(--line);border-radius:12px;padding:12px 14px}.coordGrid{display:grid;grid-template-columns:1fr;gap:8px}.coordLine{display:flex;justify-content:space-between;gap:12px;border-bottom:1px dashed #d8e6dc;padding-bottom:7px}.coordLine:last-child{border-bottom:0;padding-bottom:0}.coordLine b{color:var(--g900)}.coordLine span{font-variant-numeric:tabular-nums;text-align:right}.mapActions{display:flex;flex-wrap:wrap;gap:8px}.btn.linkBtn{text-decoration:none}.btn.linkBtn[aria-disabled="true"]{pointer-events:none;opacity:.5}.mapHelp{margin:0;color:var(--sub);font-size:12px}.mapMuted{font-size:12px;color:var(--sub)}
@media(max-width:820px){.planWrap{grid-template-columns:1fr}.mapCanvas,.mapCanvas iframe{min-height:280px}}

@media(max-width:820px){.scorecards{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:480px){.scorecards{grid-template-columns:repeat(2,minmax(0,1fr))}.choice{flex-wrap:wrap}.choice button.na{flex-basis:100%}}
@media(max-width:820px){.fieldGrid{grid-template-columns:repeat(2,minmax(0,1fr))}.field.span4{grid-column:span 2}.scorecards{grid-template-columns:repeat(2,1fr)}.summaryColumns{grid-template-columns:1fr}.shell{padding:14px 12px 40px}header{padding:22px 15px}.card-body{padding:14px}.card-head{padding:13px 14px}.btn{padding:9px 11px}.tabs .tab{flex:1;min-width:0;padding:10px 5px}.groupInfo{display:none}}
@media(max-width:480px){.taskHead{grid-template-columns:1fr;gap:11px}.choice{width:100%}.choice button{flex:1;width:auto;min-height:37px}.taskExtra{gap:6px}.photoTrigger{min-width:90px}.field.span2{grid-column:span 2}.searchRow{flex-direction:column}.searchRow .btn{align-self:flex-start}.oaResult{top:44px}.score{padding:11px}.score .num{font-size:23px}.headTag{display:none}.toolbar{align-items:flex-start}.groupButtons{gap:5px}.btn{font-size:12px}.task{padding:12px 13px}}
@page{size:A4;margin:13mm 12mm}@media print{body{background:#fff;font:11px/1.35 Arial,sans-serif;color:#111}header,.shell,.footer,.screenOnly{display:none!important}#printReport{display:block!important;padding:0}#printReport h1{font-size:24px;color:#125c37;margin:5px 0}#printReport .printHeader{border-bottom:3px solid #16733f;margin-bottom:12px;padding-bottom:10px}#printReport h2{font-size:15px;color:#166b3f;background:#eaf6ed;padding:7px 8px;margin:17px 0 5px;page-break-after:avoid}#printReport table{border-collapse:collapse;width:100%;font-size:10px}#printReport th,#printReport td{border:1px solid #b7cabb;padding:5px 6px;text-align:left;vertical-align:top}#printReport th{background:#dcefe2}#printReport tr{break-inside:avoid}#printReport .printMeta{display:grid;grid-template-columns:1fr 1fr;gap:4px}#printReport .printMeta div{border-bottom:1px solid #e1e9e2;padding:5px 2px}#printReport .printPhotos{display:grid;grid-template-columns:1fr 1fr;gap:12px}#printReport .printPhotos img{width:100%;max-height:210px;object-fit:contain}}

/* Plan de situation : aucun affichage des coordonnées, carte sur toute la largeur. */
.planWrap{grid-template-columns:minmax(0,1fr)}
.planMeta{display:flex;align-items:center;gap:10px}
.mapCanvas,.mapCanvas iframe{min-height:355px}
.mapPlaceholder[hidden],.mapCanvas iframe[hidden]{display:none!important}
.toolbarBottom{margin:20px 0 0;gap:16px;align-items:center;padding:14px 15px;border:1px solid var(--line);border-radius:13px;background:#fff}
@media(max-width:600px){.mapCanvas,.mapCanvas iframe{min-height:280px}.toolbarBottom .groupButtons{width:100%}.toolbarBottom .groupButtons .btn{flex:1 1 auto}}

/* Filtres ATCO > STCO > OA */
.oaPickerCascade{max-width:520px;display:grid;grid-template-columns:1fr;gap:12px}
.oaPickerCascade select{width:100%;min-height:44px}
.oaPickerCascade select:disabled{opacity:.65;background:#f5f8f6;cursor:not-allowed}
/* Carte sur fond de tuiles images : pas d'iframe ni d'icône de document cassé. */
.planWrap{display:flex;flex-direction:column;gap:12px}
.mapCanvas{position:relative;width:100%;height:380px;min-height:300px;overflow:hidden;isolation:isolate;background:#edf6ef;border:1px solid #cddfd2;border-radius:14px}
.mapFallback,.mapTiles{position:absolute;inset:0;overflow:hidden}
.mapFallback{z-index:1;background:#ecf5ed}
.mapFallback svg{display:block;width:100%;height:100%}
.mapTiles{z-index:2;pointer-events:none}
.mapTiles img{position:absolute;width:256px;height:256px;max-width:none;visibility:hidden;object-fit:fill}
.mapPin{position:absolute;z-index:4;top:50%;left:50%;transform:translate(-50%,-100%);display:flex;align-items:center;flex-direction:column;pointer-events:none;filter:drop-shadow(0 3px 4px #123a2477)}
.mapPinDot{width:27px;height:27px;background:#19884a;border:4px solid #fff;border-radius:50% 50% 50% 0;transform:rotate(-45deg);box-shadow:0 0 0 2px #236b47}
.mapNoData{position:absolute;inset:0;z-index:5;display:grid;place-items:center;padding:20px;text-align:center;color:#5b7564;background:linear-gradient(150deg,#f5fbf7,#e8f1ea)}
.mapZoom{position:absolute;right:14px;top:14px;z-index:6;display:flex;flex-direction:column;border-radius:9px;overflow:hidden;box-shadow:0 2px 9px #182f2140}
.mapZoom button{background:#fff;border:none;border-bottom:1px solid #e4eee6;min-width:37px;min-height:37px;color:#285a3b;font-size:21px;font-weight:bold}
.mapZoom button:last-child{border-bottom:0}
.mapZoom button:focus-visible{outline:2px solid #2f925b;outline-offset:-2px}
.mapStatus{pointer-events:none;position:absolute;top:14px;left:14px;z-index:6;background:#ffffffed;border:1px solid #d9e6dc;border-radius:7px;padding:7px 10px;color:#496854;font-size:11px;max-width:calc(100% - 85px)}
.mapAttribution{position:absolute;right:8px;bottom:8px;z-index:6;background:#fffffff0;padding:3px 6px;border-radius:5px;font-size:10px}
.mapAttribution a{color:#567d65}
.mapNoData[hidden],.mapZoom[hidden],.mapStatus[hidden],.mapPin[hidden],.mapFallback[hidden]{display:none!important}
.planMeta{display:flex;justify-content:flex-start;align-items:center;gap:10px}
.taskExtra{grid-template-columns:minmax(0,1fr)}
@media(max-width:600px){.mapCanvas{height:290px;min-height:290px}.mapStatus{font-size:10px}}

/* Filtrage hiérarchique des ouvrages */
.oaPickerCascade{max-width:760px}
.oaPickerCascade .rdPrRow{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:12px}
.oaPickerCascade .rdPrRow .field{min-width:0}
.oaPickerCascade #routeSelect,.oaPickerCascade #prSelect,.oaPickerCascade #communeSelect,.oaPickerCascade #oaSelect{font-weight:650}
@media(max-width:480px){.oaPickerCascade .rdPrRow{gap:8px}.oaPickerCascade .rdPrRow select{font-size:13px;padding:9px 5px}}
/* Listes ATCO / STCO centrées */
.oaPickerCascade #atcoSelect,.oaPickerCascade #stcoSelect{width:100%;text-align:center;text-align-last:center;padding-inline:30px}
.oaPickerCascade #atcoSelect option,.oaPickerCascade #stcoSelect option{text-align:center}

/* Chapitres principaux */
.sectionBar{background:#164a35!important;color:#fff!important;font-size:17px;font-weight:850;text-transform:uppercase;letter-spacing:.06em;padding:15px 18px}
.sectionBar *{color:#fff!important}

/* V15 — textes agrandis, lecture confortable sur ordinateur, tablette et mobile */
@media screen {
  body{font-size:17px;line-height:1.55}
  h1{font-size:clamp(30px,4vw,43px)}
  .brand{font-size:14px}
  .card-head h2{font-size:19px;line-height:1.35}
  .card-head small,.field span,.searchRow .hint,.hint,.mapHelp,.mapMuted,.mapStatus,.saveStatus,.introNote{font-size:14px}
  .field input,.field textarea,.field select,.searchRow input,
  .oaPicker select,.oaPickerCascade select,
  .oaPickerCascade .rdPrRow select{font-size:17px;min-height:48px;line-height:1.35}
  .field span{font-weight:750;line-height:1.4}
  .oaPickerCascade #atcoSelect,.oaPickerCascade #stcoSelect{font-size:18px}
  .btn,.btn.small,.tab{font-size:16px;min-height:44px;line-height:1.3}
  .sectionBar{font-size:20px;line-height:1.3}
  details.group>summary{font-size:18px;line-height:1.4;padding:17px 18px}
  .taskLabel{font-size:17px;line-height:1.45}
  .taskRemark,.field textarea{font-size:16px;line-height:1.5;min-height:43px}
  .choice button,.choice .naChoice{font-size:16px;min-height:44px}
  .choice button{min-width:76px;width:auto;padding:10px 12px}
  .choice .naChoice input{width:18px;height:18px}
  .gridTable{font-size:16px}
  .gridTable th,.gridTable td{padding:13px 12px}
  .summaryBox h3{font-size:18px}
  .summaryBox,.callout{font-size:16px}
  .infoPill{font-size:14px}
  .mapAttribution,.mapStatus{font-size:12px}
  .finalPhoto span{font-size:12px}
  .toolrow,.groupButtons{row-gap:9px}
}
@media screen and (max-width:480px){
  body{font-size:16px}
  .field input,.field textarea,.field select,.oaPicker select,
  .oaPickerCascade select,.oaPickerCascade .rdPrRow select{font-size:16px}
  .oaPickerCascade #atcoSelect,.oaPickerCascade #stcoSelect{font-size:17px}
  .card-head h2{font-size:18px}
  .taskLabel{font-size:17px}
  .btn,.btn.small,.tab{font-size:15px}
  .choice button,.choice .naChoice{font-size:15px}
  .sectionBar{font-size:19px}
}

/* Bandeaux harmonisés avec les chapitres SUR / SOUS L’OUVRAGE */
.card-head.chapterTitle{background:var(--g900);color:#fff;border-bottom:0;padding:13px 17px;letter-spacing:.15px}
.card-head.chapterTitle h2{font-size:19px;font-weight:800;color:#fff;letter-spacing:.15px;margin:0}
@media(max-width:820px){.card-head.chapterTitle{padding:13px 17px}.card-head.chapterTitle h2{font-size:19px}}

/* Logo du Département, bandeau officiel recadré sur la version en couleurs */
.cd21Header{display:flex;align-items:center;gap:22px;position:relative;z-index:1;max-width:1180px;margin:0 auto}
.cd21HeaderText{min-width:0;flex:1}
.cd21HeaderText .head-line{margin-top:5px}
.cd21LogoFrame{display:flex;align-items:center;justify-content:flex-start;position:relative;flex:none;width:191px;height:119px;background:white;border-radius:12px;overflow:hidden;box-shadow:0 3px 14px #0c301f35}
.cd21LogoImage{display:block;flex:none;height:113px;width:auto;max-width:none;margin-left:2px}
.cd21LogoImage[hidden]{display:none!important}
.cd21LogoImage.altLogo{height:113px;width:151px;object-fit:contain;object-position:left center;margin-left:13px}
.cd21LogoFallback{display:flex;align-items:center;gap:4px;margin:0 auto;color:#ecac00;font-family:Arial,sans-serif}
.cd21LogoFallback[hidden]{display:none!important}
.cd21LogoWords{line-height:.79}.cd21LogoWords strong{display:block;font-size:39px;letter-spacing:-2px;font-weight:700}.cd21LogoWords small{font-size:9.5px;letter-spacing:-.5px;font-weight:700;display:block;margin-top:11px}
.cd21LogoRibbon{display:flex;flex-direction:column;width:27px;height:84px;gap:2px}.cd21LogoRibbon i{display:block;flex:1;background:#048dce}.cd21LogoRibbon i:nth-child(2){background:#e9a900;clip-path:polygon(0 0,100% 0,100% 100%,0 73%)}.cd21LogoRibbon i:nth-child(3){background:#e30635;clip-path:polygon(0 0,100% 20%,100% 100%,0 100%)}
@media(max-width:600px){.cd21Header{gap:12px}.cd21LogoFrame{width:115px;height:76px;border-radius:8px}.cd21LogoImage{height:70px;margin-left:2px}.cd21LogoImage.altLogo{height:70px;width:90px;margin-left:12px}.cd21LogoWords strong{font-size:24px;letter-spacing:-1.5px}.cd21LogoWords small{font-size:5.8px;margin-top:7px}.cd21LogoRibbon{width:17px;height:51px;gap:1px}.cd21HeaderText .brand{font-size:10px;letter-spacing:.07em}.cd21HeaderText h1{font-size:clamp(23px,5vw,32px);line-height:1.1;margin-bottom:0}}

/* V19 — En-tête élargi : titre plus lisible, logo à droite et sans cartouche blanc */
.cd21Header{display:flex;align-items:center;justify-content:space-between;flex-wrap:nowrap;gap:22px}
.cd21HeaderText{order:0;flex:1;min-width:0}
.cd21HeaderText .brand{font-size:17px;line-height:1.35;letter-spacing:.075em;font-weight:750}
.cd21HeaderText .head-line{margin-top:10px}
.cd21HeaderText h1{font-size:clamp(39px,4.9vw,60px);font-weight:800;letter-spacing:-1.2px;line-height:1.1;margin:0}
.cd21LogoFrame{order:1;flex:0 0 191px;justify-content:center;background:transparent!important;border:0;border-radius:0;box-shadow:none!important;margin:0;height:119px;overflow:hidden}
/* Le mode multiply rend transparent à l'œil le blanc incorporé au JPG existant. */
.cd21LogoImage{mix-blend-mode:multiply;max-width:none}
.cd21LogoImage.altLogo{mix-blend-mode:multiply}
.cd21LogoFallback{background:transparent}
@media(max-width:600px){
 .cd21Header{gap:11px}
 .cd21LogoFrame{flex-basis:114px;width:114px;height:80px}
 .cd21LogoImage{height:74px}
 .cd21LogoImage.altLogo{height:74px;width:92px;margin-left:10px}
 .cd21HeaderText .brand{font-size:13px;line-height:1.25;letter-spacing:.025em}
 .cd21HeaderText .head-line{margin-top:7px}
 .cd21HeaderText h1{font-size:clamp(29px,6.4vw,40px);line-height:1.08;letter-spacing:-.7px}
}

/* Photothèque liée aux dossiers du lecteur réseau, à conserver avec le HTML. */
.archivePhotoCard{margin-top:15px}
.archivePhotoCount{color:#f1fff5;font-weight:700;font-size:15px}
.archivePhotoGrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(155px,1fr));gap:12px}
.archivePhotoItem{min-width:0;display:flex;flex-direction:column;gap:4px;border:1px solid var(--line);border-radius:12px;padding:7px;background:var(--g50);text-decoration:none;color:var(--text)}
.archivePhotoItem:hover{border-color:var(--g500);background:var(--g100)}
.archivePhotoItem img{display:block;width:100%;aspect-ratio:4/3;object-fit:contain;background:white;border-radius:7px}
.archivePhotoItem span{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:13px}
@media(max-width:500px){.archivePhotoGrid{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}}


.archivePhotoModal{max-width:96vw;max-height:95vh;border:0;border-radius:14px;padding:12px;background:#fff;color:#215640;box-shadow:0 20px 85px #0008}
.archivePhotoModal::backdrop{background:#001b129c}
.archivePhotoModalTop{display:flex;gap:15px;align-items:center;justify-content:space-between;min-width:230px;margin-bottom:10px}
.archivePhotoModalTop strong{overflow-wrap:anywhere}
.archivePhotoModal img{display:block;max-width:92vw;max-height:78vh;object-fit:contain;margin:auto}

/* Photographie de l'ouvrage en tête de fiche, avant la cartographie. */
.ouvrageCoverCard{margin-top:16px}
.ouvrageCoverCard[hidden]{display:none!important}
.ouvrageCoverBody{display:flex;align-items:center;justify-content:center;padding:14px}
.ouvrageCoverButton{width:min(100%,780px);display:block;cursor:zoom-in;border:1px solid var(--line);border-radius:12px;background:var(--g50);padding:8px;color:var(--text)}
.ouvrageCoverButton:focus-visible{outline:3px solid var(--g600);outline-offset:2px}
.ouvrageCoverImage{display:block;width:100%;max-height:340px;object-fit:contain;border-radius:7px;background:transparent}
.ouvrageCoverName{font-size:13px;color:var(--sub);text-align:center;padding:7px 6px 2px;overflow-wrap:anywhere}
@media(max-width:600px){.ouvrageCoverBody{padding:10px}.ouvrageCoverImage{max-height:240px}.ouvrageCoverName{font-size:12px}}


/* Ajustements demandés : logo couleur transparent, sans galerie de photos existantes, sans titre de photo principale */
.cd21LogoFrame{background:transparent!important;box-shadow:none!important;overflow:visible!important}
.cd21LogoImage{display:none!important}
.cd21LogoFallback{display:flex!important}
#archivePhotosCard{display:none!important}


/* Consolidation mobile : Safari iOS + Android, avec zones tactiles plus grandes */
#stcoPackLabel{color:#456b55!important;font-weight:700!important;font-size:13px!important;letter-spacing:.01em;line-height:1.3}
.iosMobileHelp{font-size:13px;color:#466653;margin:16px 0 4px;padding:10px 13px;border:1px solid #cce0d2;background:#f1faf4;border-radius:10px}
.iosMobileHelp[hidden]{display:none!important}
html{-webkit-text-size-adjust:100%;text-size-adjust:100%;overflow-x:hidden}
body{width:100%;min-width:0;overflow-x:hidden;overscroll-behavior-y:auto}
button,select,input,textarea{-webkit-tap-highlight-color:rgba(37,117,74,.12)}
button,.tab,summary,.naChoice{touch-action:manipulation}
button:focus-visible,select:focus-visible,input:focus-visible,textarea:focus-visible,summary:focus-visible{outline:2px solid #33865b;outline-offset:2px}
.iosStartWarning{margin:10px auto;padding:13px 16px;max-width:1200px;border:1px solid #dcb66a;background:#fff8e8;color:#60451e;border-radius:10px;font-size:15px;line-height:1.45}
.iosStartWarning p{margin:5px 0 0}
.iosStartWarning[hidden]{display:none!important}
.choice{min-width:0;max-width:100%;flex-wrap:wrap;gap:7px}
.choice .naChoice{display:inline-flex;align-items:center;justify-content:center;gap:6px;min-height:44px;padding:7px 9px;border-radius:8px;border:1px solid #dbe8de;background:#f2f6f3;color:#42654e;font-weight:700;cursor:pointer;white-space:nowrap;flex:1 1 auto}
.choice .naChoice.selected{border-color:#b5a2d5;background:#f0eaf9;color:#675289}
.choice .naCheck{flex:0 0 auto;width:18px;height:18px}
.tabs{max-width:100%;min-width:0;overflow-x:auto;overscroll-behavior-x:contain;-webkit-overflow-scrolling:touch}
.tab{flex-shrink:0}
.taskHead,.taskLabel,.fieldGrid,.oaPickerCascade,.card-body{min-width:0}
.taskLabel,.sectionBar,details.group>summary{overflow-wrap:anywhere}
.taskRemark{width:100%;box-sizing:border-box}
.archivePhotoModal{width:min(96vw,820px);max-width:96vw;max-height:90dvh}
.archivePhotoModal img{max-width:100%;max-height:70dvh}
.toolbarBottom{padding-bottom:calc(14px + env(safe-area-inset-bottom, 0px))}
@media (hover:none) and (pointer:coarse){.btn,.tab,.choice button,.choice .naChoice,.mapZoom button{min-height:44px}}
@media screen and (max-width:600px){
 header{padding-top:calc(15px + env(safe-area-inset-top,0px));padding-left:max(12px, env(safe-area-inset-left,0px));padding-right:max(12px, env(safe-area-inset-right,0px))}
 .shell{padding:12px max(10px,env(safe-area-inset-left,0px)) calc(28px + env(safe-area-inset-bottom,0px)) max(10px,env(safe-area-inset-right,0px))}
 .cd21HeaderText h1{font-size:clamp(27px,7vw,34px)}
 .card-head.chapterTitle h2{font-size:17px}
 .card-body{padding:12px}
 .oaPickerCascade{width:100%;max-width:100%;gap:10px}
 .fieldGrid{gap:10px;grid-template-columns:repeat(2,minmax(0,1fr))}
 .field.span2{grid-column:span 2}
 .oaPickerCascade .rdPrRow{gap:8px;grid-template-columns:repeat(2,minmax(0,1fr))}
 .field input,.field textarea,.field select,.oaPicker select,.oaPickerCascade select,.taskRemark{font-size:16px!important;max-width:100%;min-height:44px}
 .choice{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));width:100%;gap:6px}
 .choice button{width:100%;min-width:0!important;padding:9px 3px;min-height:44px}
 .choice .naChoice{width:100%;min-width:0!important;white-space:normal;text-align:center;font-size:12px;line-height:1.2;padding:7px 3px;flex-wrap:wrap;overflow-wrap:anywhere}
 .choice .naCheck{width:16px;height:16px}
 .taskHead{grid-template-columns:1fr;gap:10px}
 .task{padding:12px 10px}
 details.group>summary{padding:14px 12px;min-height:46px}
 .sectionBar{font-size:18px;padding:12px 14px}
 .tabs{gap:5px;padding:8px 0;top:0}
 .tab{font-size:14px;min-width:0;flex:1 1 0;padding:9px 6px;min-height:44px}
 .toolbarBottom .groupButtons{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));width:100%;gap:8px}
 .toolbarBottom .groupButtons .btn{width:100%;min-width:0;line-height:1.25;min-height:48px;padding:10px 6px;font-size:14px}
 .mapCanvas{height:260px!important;min-height:260px!important}
 .ouvrageCoverBody{padding:9px}.ouvrageCoverImage{max-height:210px}
 .cd21LogoFrame{flex:0 0 94px!important;width:94px!important;height:75px!important}
 .cd21LogoWords strong{font-size:22px}.cd21LogoWords small{font-size:5.5px}.cd21LogoRibbon{height:48px;width:16px}
 .cd21HeaderText .brand{font-size:12px}
}
@media screen and (max-width:355px){
 .toolbarBottom .groupButtons{grid-template-columns:1fr}
 .cd21HeaderText h1{font-size:25px}
 .choice .naChoice{font-size:11px}
}

