/* DYNAMIS simulateurs : habillage charte web (Archivo + IBM Plex Mono, teal #5fa8b0, angles droits).
   Scope .dynsim uniquement. Blindage Astra : !important sur inputs/boutons (cf. pieges memoire). */
.dynsim{font-family:'Archivo',sans-serif;color:#1d2526;background:#fff;border:1px solid #4e888f;
  box-shadow:0 0 0 6px rgba(78,136,143,.12);margin:34px 0;padding:0;line-height:1.45;scroll-margin-top:24px}
.dynsim *,.dynsim *:before,.dynsim *:after{box-sizing:border-box}
.dynsim .mono{font-family:'IBM Plex Mono',monospace}
.dynsim .ds-head{background:#16201f;color:#fff;padding:18px 24px;display:flex;flex-wrap:wrap;gap:8px 18px;align-items:baseline;justify-content:space-between}
.dynsim .ds-head h2,.dynsim .ds-head .ds-title{font-family:'Archivo',sans-serif!important;font-size:19px!important;font-weight:800;margin:0!important;color:#fff!important;letter-spacing:-.3px;counter-increment:none!important}
.dynsim .ds-head h2:before{content:none!important;display:none!important}
.dynsim .ds-head .ds-grid{font-family:'IBM Plex Mono',monospace;font-size:12px;color:#8fd0a8;letter-spacing:.6px}
.dynsim .ds-body{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.15fr);gap:0}
.dynsim .ds-form{padding:22px 24px;border-right:1px solid #d5e2e3;background:#f7fafa}
.dynsim .ds-out{padding:22px 24px;min-width:0}
@media (min-width:861px){.dynsim .ds-out{position:sticky;top:12px;align-self:start}}
.dynsim fieldset{border:0;margin:0 0 6px;padding:0;min-width:0}
.dynsim legend{font-family:'IBM Plex Mono',monospace;font-size:11.5px;letter-spacing:1.4px;color:#3e7c83;font-weight:600;margin:0 0 10px;padding:0;text-transform:uppercase}
.dynsim .fld{display:block;margin:0 0 12px}
.dynsim .fld>span{display:block;font-size:13px;font-weight:700;color:#354142;margin-bottom:5px}
.dynsim .fld small{display:block;font-size:12px;color:#6b7a7a;margin-top:4px;line-height:1.35;font-weight:400}
.dynsim .row2{display:grid;grid-template-columns:1fr 1fr;gap:12px;align-items:start}
.dynsim .fld.off{opacity:.55}
.dynsim .ds-sub{font-family:'IBM Plex Mono',ui-monospace,monospace;font-size:11.5px;letter-spacing:.06em;text-transform:uppercase;color:#4e888f;margin:14px 0 8px;padding-top:12px;border-top:1px dashed #cdd9d9}
.dynsim .row3{display:grid;grid-template-columns:1fr 1fr 1fr;gap:10px}
.dynsim .row4{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}
/* lignes a plusieurs champs : libelle, champ et aide alignes rangee par rangee (subgrid), quel que soit le libelle qui passe sur deux lignes */
.dynsim .row2,.dynsim .row3,.dynsim .row4{row-gap:0;align-items:start}
.dynsim .row2>.fld,.dynsim .row3>.fld,.dynsim .row4>.fld{display:grid;grid-template-rows:subgrid;grid-row:span 3;align-content:start}
.dynsim .row2>.fld>span,.dynsim .row3>.fld>span,.dynsim .row4>.fld>span{align-self:end}
.dynsim input[type=number],.dynsim input[type=text],.dynsim input[type=email],.dynsim input[type=tel],.dynsim select{
  width:100%!important;background:#fff!important;border:1px solid #cdd9d9!important;border-radius:2px!important;box-shadow:none!important;
  padding:10px 12px!important;font-size:15px!important;color:#1d2526!important;height:auto!important;min-height:0!important;margin:0!important;
  font-family:'IBM Plex Mono',monospace!important;-webkit-appearance:none;appearance:none;line-height:1.3!important}
.dynsim input:focus,.dynsim select:focus{outline:none;border-color:#4e888f!important;box-shadow:0 0 0 3px rgba(78,136,143,.18)!important}
.dynsim select{background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='12' height='8'><path d='M1 1l5 5 5-5' fill='none' stroke='%234a5455' stroke-width='2'/></svg>")!important;background-repeat:no-repeat!important;background-position:right 12px center!important;padding-right:32px!important;font-family:'Archivo',sans-serif!important}
.dynsim .unit{position:relative}
.dynsim .unit input{padding-right:64px!important}
.dynsim .unit i{position:absolute;right:12px;top:50%;transform:translateY(-50%);font-style:normal;font-family:'IBM Plex Mono',monospace;font-size:12px;color:#6b7a7a;pointer-events:none}
.dynsim .seg{display:flex;flex-wrap:wrap;gap:0;border:1px solid #cdd9d9;background:#fff}
.dynsim .seg label{flex:1 1 auto;text-align:center;cursor:pointer;padding:10px 8px;font-size:13.5px;font-weight:700;color:#354142;border-right:1px solid #cdd9d9;margin:0}
.dynsim .seg label:last-child{border-right:0}
.dynsim .seg input{position:absolute;opacity:0;width:0;height:0}
.dynsim .seg label.on{background:#16201f;color:#fff}
.dynsim .chk{display:flex;align-items:center;gap:8px;font-size:13.5px;color:#354142;margin:0 0 10px;cursor:pointer}
.dynsim .chk input{width:16px!important;height:16px!important;margin:0!important;accent-color:#4e888f}
.dynsim details.adv{border-top:1px solid #d5e2e3;margin-top:8px;padding-top:8px}
.dynsim details.adv summary{cursor:pointer;font-family:'IBM Plex Mono',monospace;font-size:12.5px;color:#3e7c83;font-weight:600;list-style:none;padding:6px 0}
.dynsim details.adv summary::-webkit-details-marker{display:none}
.dynsim details.adv summary:before{content:'+\00a0';}
.dynsim details.adv[open] summary:before{content:'\2212\00a0';}
.dynsim .btn,.dynsim button{text-transform:none!important;letter-spacing:0!important}
.dynsim .btn{display:inline-block;width:100%!important;background:#5fa8b0!important;color:#0e1514!important;border:none!important;border-radius:2px!important;
  box-shadow:none!important;padding:14px 18px!important;height:auto!important;margin:8px 0 0!important;font-weight:800;font-size:15.5px!important;cursor:pointer;
  font-family:'Archivo',sans-serif!important;line-height:1.3!important;text-align:center;text-decoration:none}
.dynsim .btn:hover{background:#7cc3ca!important;color:#0e1514!important}
.dynsim .btn.ghost{background:#fff!important;border:1px solid #4e888f!important;color:#1d2526!important}
.dynsim .err{display:none;margin:10px 0 0;padding:10px 12px;font-size:13.5px;color:#8a2b1c;background:#fdf1ee;border:1px solid #e6b3a8}
.dynsim .err.on{display:block}
/* resultats */
.dynsim .ds-empty{color:#6b7a7a;font-size:14.5px;padding:8px 0}
.dynsim .ds-empty b{color:#1d2526}
.dynsim .big{display:flex;flex-wrap:wrap;gap:12px;margin:0 0 16px}
.dynsim .kpi{flex:1 1 150px;background:#fff;border:1px solid #c1dadd;border-top:3px solid #4e888f;padding:12px 14px;box-shadow:6px 6px 0 #dcebec}
.dynsim .kpi b{display:block;font-family:'IBM Plex Mono',monospace;font-size:22px;font-weight:600;color:#1d2526;line-height:1.1;margin-bottom:4px}
.dynsim .kpi.acc b{color:#2f6b4f}
.dynsim .kpi span{font-size:12.5px;color:#4a5455;line-height:1.3;display:block}
.dynsim .bar{display:flex;height:22px;width:100%;overflow:hidden;border:1px solid #d5e2e3;margin:6px 0 10px;background:#f7fafa}
.dynsim .bar i{display:block;height:100%;min-width:0}
.dynsim .bar .c1{background:#16201f}.dynsim .bar .c2{background:#4e888f}.dynsim .bar .c3{background:#9ec9cd}.dynsim .bar .c4{background:#d4d4d4}
.dynsim .leg{display:flex;flex-wrap:wrap;gap:6px 16px;font-size:12.5px;color:#4a5455;margin:0 0 16px}
.dynsim .leg i{display:inline-block;width:10px;height:10px;margin-right:6px;vertical-align:middle}
.dynsim .tw{overflow-x:auto;margin:0 0 14px;max-width:100%}
.dynsim table.t{width:100%;border-collapse:collapse;margin:0;font-size:14px;background:#fff!important;border:1px solid #d5e2e3!important}
.dynsim table.t th,.dynsim table.t td{padding:8px 8px!important;border:none!important;border-bottom:1px solid #e2ecec!important;text-align:left;color:#2a3435!important;background:transparent!important;vertical-align:top}
.dynsim table.t th{font-family:'IBM Plex Mono',monospace;font-size:11.5px;letter-spacing:.8px;color:#fff!important;background:#16201f!important;font-weight:600;text-transform:uppercase}
.dynsim table.t td.n,.dynsim table.t th.n{text-align:right;font-family:'IBM Plex Mono',monospace;white-space:nowrap}
.dynsim table.t th.n{white-space:normal}
.dynsim table.t td.n.wrap{white-space:normal;overflow-wrap:anywhere;text-align:left}
.dynsim table.t tr.tot td{font-weight:800;border-top:2px solid #16201f!important}
.dynsim table.t tr.sub td{color:#6b7a7a!important;font-size:13px;padding-left:22px!important}
.dynsim table.t tr.best td{background:#eaf5ef!important}
.dynsim .ds-note{font-size:12.5px;color:#6b7a7a;line-height:1.45;margin:8px 0 0}
.dynsim .ds-note b{color:#354142}
.dynsim .warn{font-size:13px;color:#7a5a12;background:#fff8e6;border:1px solid #e9d59a;padding:9px 12px;margin:10px 0}
.dynsim details.det{margin:8px 0 12px;border:1px solid #d5e2e3;background:#fff}
.dynsim details.det summary{cursor:pointer;padding:10px 12px;font-size:13.5px;font-weight:700;color:#354142;list-style:none}
.dynsim details.det summary::-webkit-details-marker{display:none}
.dynsim details.det summary:before{content:'+\00a0';font-family:'IBM Plex Mono',monospace;color:#4e888f}
.dynsim details.det[open] summary:before{content:'\2212\00a0'}
.dynsim details.det>div{padding:0 12px 12px}
/* graphique SVG */
.dynsim svg.chart{width:100%;height:auto;display:block;margin:6px 0 10px}
.dynsim svg.chart text{font-family:'IBM Plex Mono',monospace;font-size:11px;fill:#4a5455}
/* capture */
.dynsim .ds-lead{grid-column:1/-1;border-top:1px solid #d5e2e3;background:#16201f;color:#cdd9da;padding:22px 24px;display:grid;grid-template-columns:1.1fr .9fr;gap:24px;align-items:center}
.dynsim .ds-lead h3{color:#fff!important;font-size:19px!important;margin:0 0 8px!important;font-family:'Archivo',sans-serif!important;font-weight:800}
.dynsim .ds-lead p{margin:0 0 10px;font-size:14.5px;color:#cdd9da!important;line-height:1.5}
.dynsim .ds-lead ul{margin:0;padding:0 0 0 18px;font-size:14px;color:#cdd9da}
.dynsim .ds-lead li{margin:0 0 5px}
.dynsim .ds-lead .dynsim-lead{background:#fff;padding:16px;border:1px solid #4e888f}
.dynsim .ds-lead .hp{position:absolute!important;left:-9999px!important;width:1px;height:1px;opacity:0}
.dynsim .ds-lead .under{font-size:11.5px;color:#6b7a7a;margin:10px 0 0;text-align:center}
.dynsim .ds-lead .ok{display:none;padding:14px 4px;text-align:center}
.dynsim .ds-lead .ok b{display:block;color:#1d6f4a;font-size:17px;margin-bottom:6px}
.dynsim .ds-lead .ok p{color:#4a5455!important;font-size:14px;margin:0}
.dynsim .ds-foot{grid-column:1/-1;padding:10px 24px;font-family:'IBM Plex Mono',monospace;font-size:11.5px;color:#6b7a7a;border-top:1px solid #d5e2e3;background:#f7fafa;line-height:1.5}
.dynsim .ds-foot a{color:#3e7c83}
/* gating (option) */
.dynsim.gated .ds-out .gate{filter:blur(6px);pointer-events:none;user-select:none}
@media (max-width:860px){
  .dynsim .ds-body{grid-template-columns:1fr}
  .dynsim .ds-form{border-right:0;border-bottom:1px solid #d5e2e3}
  .dynsim .ds-lead{grid-template-columns:1fr}
  .dynsim .row3,.dynsim .row4{grid-template-columns:1fr 1fr}
}
@media (max-width:520px){
  .dynsim .ds-form,.dynsim .ds-out,.dynsim .ds-lead,.dynsim .ds-head{padding-left:16px;padding-right:16px}
  .dynsim .row2,.dynsim .row3,.dynsim .row4{grid-template-columns:1fr}
  .dynsim .kpi b{font-size:19px}
}

/* Accordeons : le site applique un style FAQ a tous les <details> (body.page .entry-content details). On le neutralise ici avec une specificite superieure. */
.dynsim .ds-form details.adv,.dynsim .ds-form details.adv[open],.dynsim .ds-form details.adv:hover{border:0;border-top:1px solid #d5e2e3;border-radius:0;box-shadow:none;background:transparent;overflow:visible;margin:8px 0 0;padding:8px 0 0;transition:none}
.dynsim .ds-form details.adv summary,.dynsim .ds-form details.adv[open] summary{display:block;padding:6px 0;margin:0;border:0;background:transparent;font-family:'IBM Plex Mono',monospace;font-size:12.5px;font-weight:600;color:#3e7c83;line-height:1.4}
.dynsim .ds-form details.adv summary::after,.dynsim .ds-form details.adv[open] summary::after{content:none!important}
.dynsim .ds-form details.adv>*:not(summary){padding:0;margin:0;background:transparent}
.dynsim .ds-form details.adv>.row2,.dynsim .ds-form details.adv>.fld{margin-top:6px}
.dynsim .ds-out details.det,.dynsim .ds-out details.det[open],.dynsim .ds-out details.det:hover{margin:8px 0 12px;border:1px solid #d5e2e3;border-radius:0;box-shadow:none;background:#fff;overflow:visible;padding:0;transition:none}
.dynsim .ds-out details.det summary,.dynsim .ds-out details.det[open] summary{display:block;padding:10px 12px;margin:0;border:0;background:transparent;font-family:'Archivo',sans-serif;font-size:13.5px;font-weight:700;color:#354142;line-height:1.4}
.dynsim .ds-out details.det summary::after,.dynsim .ds-out details.det[open] summary::after{content:none!important}
.dynsim .ds-out details.det>*:not(summary){padding:0 12px 12px;margin:0;background:transparent}
.dynsim .ds-out details.det p{font-size:13.5px;line-height:1.5;margin:0 0 8px;color:#354142}
.dynsim .ds-out details.det p:last-child{margin-bottom:0}
