/* KoadBooth · concepteur de cadre — charte « Serpentins » (jetons de koad-serpentins.css, repli en dur) */
.kcf,.kcf-dialogue,.kcf-voile{--kv:var(--vert,#0A6A2C);--kvn:var(--vert-nuit,#06471C);--kb:var(--bordeaux,#8A1538);--ke:var(--encre,#0D1F13);--ke2:var(--encre-2,#4B5A50);
  --kg:var(--gris,#F4F5F3);--kf:var(--filet,#DFE3DE);--ksv:var(--sur-vert,#DDF3E2);--kw:#FFFFFF;--kr:6px;--kc:cubic-bezier(.16,1,.3,1);
  --kcf-h:clamp(560px,calc(100vh - 210px),920px)}
.kcf{position:relative;font-family:var(--f-texte,"Archivo",system-ui,-apple-system,"Segoe UI",sans-serif);font-size:15px;line-height:1.45;color:var(--ke);
  background:var(--kw);border:2px solid var(--kf);border-radius:24px;overflow:hidden;text-align:left}
.kcf *,.kcf *::before,.kcf *::after,.kcf-dialogue *,.kcf-dialogue *::before,.kcf-dialogue *::after{box-sizing:border-box}
.kcf button,.kcf input,.kcf select,.kcf textarea,.kcf-dialogue button,.kcf-dialogue input,.kcf-dialogue textarea{font:inherit;color:inherit}
.kcf [hidden],.kcf-dialogue [hidden],.kcf-voile[hidden]{display:none!important}
.kcf :focus-visible,.kcf-dialogue :focus-visible{outline:3px solid var(--kv);outline-offset:3px}
.kcf-charge,.kcf-panne{margin:0;padding:48px 24px;text-align:center;color:var(--ke2)}

/* ---- icônes et boutons */
.kcf-ico{width:20px;height:20px;flex:none;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.kcf-bt,.kcf-bi{display:inline-flex;align-items:center;justify-content:center;gap:6px;min-height:40px;margin:0;padding:0 14px;border:2px solid var(--kf);
  border-radius:var(--kr);background:var(--kw);font-size:14px;font-weight:600;line-height:1.1;cursor:pointer;text-decoration:none;
  transition:border-color 200ms var(--kc),background-color 200ms var(--kc),color 200ms var(--kc)}
.kcf-bi{width:40px;padding:0}
.kcf-bt:hover,.kcf-bi:hover{border-color:var(--kv)}
.kcf-bt[aria-pressed="true"],.kcf-bi[aria-pressed="true"]{background:var(--kv);border-color:var(--kv);color:var(--kw)}
.kcf-bt:disabled,.kcf-bi:disabled{opacity:.4;cursor:not-allowed;border-color:var(--kf)}
.kcf-bt--petit{min-height:36px;padding:0 11px;font-size:13.5px}
.kcf-bt--petit .kcf-ico{width:17px;height:17px}
.kcf-bt--danger:hover{border-color:var(--kb);color:var(--kb)}
.kcf-lib{display:block;font-size:13px;font-weight:640;letter-spacing:.01em;color:var(--ke2)}
.kcf-mini{display:block;margin:10px 0 4px;font-size:13px;font-weight:640;color:var(--ke2)}
.kcf-h3{margin:0 0 10px;font-family:var(--f-affiche,"Kalnia",Didot,Georgia,serif);font-size:21px;font-weight:620;line-height:1.1;color:var(--kv)}
.kcf-aide{margin:0 0 14px;font-size:14px;line-height:1.5;color:var(--ke2)}
.kcf-ligne{display:flex;flex-wrap:wrap;align-items:center;gap:6px;margin:0 0 12px}
.kcf-ligne--fin{margin-top:6px}
.kcf-ligne--centre{justify-content:center}

/* ---- barre du haut */
.kcf-barre{display:flex;flex-wrap:wrap;align-items:flex-end;gap:12px 20px;padding:14px 18px;border-bottom:2px solid var(--kf);background:var(--kw)}
.kcf-format select{min-height:42px;max-width:100%;padding:0 34px 0 12px;border:2px solid var(--kv);border-radius:var(--kr);background:var(--kw);font-weight:600;cursor:pointer}
.kcf-poses{display:flex;align-items:flex-end;gap:6px}
.kcf-poses .kcf-lib{align-self:center;margin-right:2px}
.kcf-poses button{width:42px;min-height:42px;border:2px solid var(--kf);border-radius:var(--kr);background:var(--kw);font-weight:700;cursor:pointer}
.kcf-poses button:hover{border-color:var(--kv)}
.kcf-poses button[aria-pressed="true"]{background:var(--kv);border-color:var(--kv);color:var(--kw)}
.kcf-outils{display:flex;flex-wrap:wrap;align-items:center;gap:6px;margin-left:auto}
.kcf-sep{width:2px;height:28px;margin:0 4px;background:var(--kf)}

/* ---- trois colonnes */
.kcf-corps{display:grid;grid-template-columns:332px minmax(0,1fr) 304px;height:var(--kcf-h)}
.kcf-gauche{display:grid;grid-template-rows:auto minmax(0,1fr);min-height:0;border-right:2px solid var(--kf)}
.kcf-onglets{display:grid;grid-template-columns:repeat(4,1fr);gap:4px;padding:10px;border-bottom:2px solid var(--kf)}
.kcf-onglets button{display:grid;justify-items:center;gap:3px;padding:8px 2px 7px;border:0;border-radius:var(--kr);background:none;font-size:13px;font-weight:600;cursor:pointer;color:var(--ke)}
.kcf-onglets button:hover{background:var(--kg)}
.kcf-onglets button[aria-selected="true"]{background:var(--kv);color:var(--kw)}
.kcf-panneaux{min-height:0;overflow:auto;padding:16px 16px 28px;overscroll-behavior:contain}
.kcf-centre{display:grid;grid-template-rows:minmax(0,1fr) auto;min-width:0;min-height:0;background:var(--kg)}
.kcf-scene{position:relative;display:grid;place-items:center;min-height:0;overflow:hidden;padding:14px}
.kcf-feuille{position:relative;outline:1px solid var(--kf)}
.kcf-feuille>canvas#kcf-photos{position:absolute;inset:0;display:block}
.kcf-feuille .canvas-container{position:relative;z-index:1}
.kcf-legende{margin:0;padding:8px 16px 12px;font-size:13px;line-height:1.4;text-align:center;color:var(--ke2)}
.kcf-legende b{color:var(--ke);font-weight:640}
/* seule la partie haute défile : l'action reste posée en bas, hors de la barre de défilement */
.kcf-droite{display:flex;flex-direction:column;min-height:0;border-left:2px solid var(--kf)}
.kcf-defile{display:flex;flex-direction:column;flex:1;min-height:0;overflow:auto;padding:16px;overscroll-behavior:contain}
.kcf-props{flex:1 0 auto}
.kcf-controle{margin:18px 0 0;padding-top:16px;border-top:2px solid var(--kf)}
.kcf-controle .kcf-h3{font-size:18px}
.kcf-controle ul{margin:0;padding:0;list-style:none;display:grid;gap:6px}
.kcf-controle li{position:relative;padding-left:20px;font-size:13.5px;line-height:1.45}
.kcf-controle li::before{content:"";position:absolute;left:2px;top:.4em;width:9px;height:9px;background:var(--ke2);transform:rotate(45deg)}
.kcf-controle li.kcf-alerte{color:var(--kb)}
.kcf-controle li.kcf-alerte::before{background:var(--kb)}
.kcf-controle li.kcf-ok{color:var(--kv)}
.kcf-controle li.kcf-ok::before{background:var(--kv)}
.kcf-controle button{padding:0;border:0;background:none;text-align:left;cursor:pointer;color:inherit;text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:3px}
.kcf-action{padding:16px;background:var(--kw);border-top:2px solid var(--kf)}
.kcf .kcf-choisir{width:100%}
.kcf .kcf-choisir .srp-etincelle{width:12px;height:12px;fill:currentColor}
.kcf-note{margin:10px 0 0;font-size:13px;line-height:1.45;color:var(--ke2)}
.kcf-admin{display:flex;flex-wrap:wrap;gap:6px;margin-top:14px;padding-top:12px;border-top:1px dashed var(--kf)}
.kcf-admin .kcf-lib{width:100%}

/* ---- panneau des propriétés */
.kcf-saisie{width:100%;min-height:62px;margin:0 0 10px;padding:10px 12px;border:2px solid var(--kv);border-radius:var(--kr);resize:vertical;font-size:16px}
.kcf-police-courante{flex:1;justify-content:space-between;min-height:44px;font-size:18px;font-weight:400}
.kcf-police-courante::after{content:"";width:8px;height:8px;margin-left:8px;border-right:2px solid currentColor;border-bottom:2px solid currentColor;transform:rotate(45deg) translateY(-3px)}
.kcf-police-courante[aria-expanded="true"]::after{transform:rotate(-135deg) translateY(-3px)}
.kcf-select{min-height:36px;padding:0 8px;border:2px solid var(--kf);border-radius:var(--kr);background:var(--kw);font-size:13.5px}
.kcf-polices{margin:0 0 14px;border:2px solid var(--kf);border-radius:var(--kr)}
.kcf-polices__cherche{width:100%;min-height:40px;padding:0 12px;border:0;border-bottom:2px solid var(--kf);border-radius:var(--kr) var(--kr) 0 0}
.kcf-polices__liste{max-height:290px;overflow:auto;padding:4px 8px 10px}
.kcf-polices__liste button{display:block;width:100%;padding:7px 8px;border:0;border-radius:var(--kr);background:none;font-size:21px;line-height:1.25;text-align:left;cursor:pointer;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.kcf-polices__liste button:hover{background:var(--kg)}
.kcf-polices__liste button[aria-selected="true"]{background:var(--kv);color:var(--kw)}
.kcf-curseur{display:grid;grid-template-columns:1fr auto;gap:2px 8px;margin:0 0 12px}
.kcf-curseur label{font-size:13px;font-weight:640;color:var(--ke2)}
.kcf-curseur output{font-size:13px;font-variant-numeric:tabular-nums;color:var(--ke)}
.kcf-curseur input{grid-column:1/-1;width:100%;margin:2px 0 0;accent-color:var(--kv)}
.kcf-curseur input:disabled{opacity:.35}
.kcf-couleur{margin:0 0 14px}
.kcf-couleur__tete{display:flex;align-items:center;justify-content:space-between;gap:8px;margin:0 0 6px}
.kcf-palette{max-width:56%;min-height:30px;padding:0 6px;border:2px solid var(--kf);border-radius:var(--kr);background:var(--kw);font-size:13px}
.kcf-pastilles{display:flex;flex-wrap:wrap;align-items:center;gap:6px}
.kcf-pastilles--cadre{margin-top:4px}
.kcf-pastilles--cadre .kcf-mini{width:100%;margin:4px 0 0}
.kcf-pastille{position:relative;width:30px;height:30px;padding:0;border:2px solid var(--kf);border-radius:var(--kr);background:var(--c,#fff);cursor:pointer;display:inline-grid;place-items:center}
.kcf-pastille:hover{border-color:var(--ke2)}
.kcf-pastille.est-choisie{border-color:var(--kw);outline:2px solid var(--kv);outline-offset:0}
.kcf-pastille--libre{background:var(--kw)}
.kcf-pastille--libre::before{content:"+";font-size:20px;font-weight:600;line-height:1;color:var(--ke)}
.kcf-pastille--libre input{position:absolute;inset:0;width:100%;height:100%;opacity:0;cursor:pointer}
.kcf-pastille--pipette{background:var(--kw)}
.kcf-pastille--pipette .kcf-ico{width:16px;height:16px}
.kcf-pastille--aucune{background:var(--kw);overflow:hidden}
.kcf-pastille--aucune::before{content:"";width:2px;height:40px;background:var(--kb);transform:rotate(45deg)}
.kcf-segments{margin:0 0 12px}
.kcf-segments>div{display:flex;flex-wrap:wrap;gap:5px;margin-top:5px}
.kcf-segments button{min-height:36px;padding:0 11px;border:2px solid var(--kf);border-radius:var(--kr);background:var(--kw);font-size:13.5px;font-weight:600;cursor:pointer}
.kcf-segments button:hover{border-color:var(--kv)}
.kcf-segments button[aria-pressed="true"]{background:var(--kv);border-color:var(--kv);color:var(--kw)}
.kcf-details{margin:0 0 14px;border-top:2px solid var(--kf);padding-top:10px}
.kcf-details summary{margin:0 0 10px;font-weight:640;cursor:pointer;color:var(--kv)}
.kcf-case{display:flex;align-items:flex-start;gap:9px;margin:0 0 12px;font-size:14px;cursor:pointer}
.kcf-case input{width:18px;height:18px;margin:2px 0 0;accent-color:var(--kv);flex:none}
.kcf-outils-sel{margin-top:10px;padding-top:12px;border-top:2px solid var(--kf)}
.kcf-outils-sel .kcf-lib{margin:0 0 5px}
.kcf-trait{display:inline-block;width:22px;height:0;margin-right:8px;vertical-align:middle;border-top:2px dashed}
.kcf-trait--rognage{border-color:var(--kb)}
.kcf-trait--fenetre{border-color:var(--ke)}
.kcf-aide--legende{padding:12px;border-radius:var(--kr);background:var(--kg)}

/* ---- panneaux de gauche */
.kcf-pile{display:grid;gap:8px;margin:0 0 18px}
.kcf-ajout{min-height:56px;padding:6px 14px;border:2px solid var(--kf);border-radius:var(--kr);background:var(--kw);text-align:left;cursor:pointer;color:var(--ke);font-size:18px}
.kcf-ajout:hover{border-color:var(--kv)}
.kcf-ajout--titre{font-size:30px;line-height:1.1}
.kcf-ajout--sous{font-size:24px}
.kcf-combos{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:0 0 14px}
.kcf-combo{display:grid;align-content:center;justify-items:center;gap:3px;min-height:86px;padding:8px;border:0;border-radius:var(--kr);background:var(--kv);color:var(--kw);cursor:pointer;text-align:center;overflow:hidden}
.kcf-combo:nth-child(4n+2),.kcf-combo:nth-child(4n+3){background:var(--ke)}
.kcf-combo:hover{background:var(--kvn)}
.kcf-combo span{font-size:19px;line-height:1.1;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.kcf-combo small{font-size:13px;opacity:.9;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.kcf-filtres{display:flex;flex-wrap:wrap;gap:5px;margin:0 0 12px}
.kcf-filtres button{min-height:32px;padding:0 10px;border:2px solid var(--kf);border-radius:var(--kr);background:var(--kw);font-size:13px;font-weight:600;cursor:pointer}
.kcf-filtres button[aria-pressed="true"]{background:var(--kv);border-color:var(--kv);color:var(--kw)}
.kcf-grille{display:grid;gap:8px;margin:0 0 14px}
.kcf-grille--decors{grid-template-columns:repeat(3,1fr)}
.kcf-grille--formes{grid-template-columns:repeat(3,1fr)}
.kcf-grille--modeles{grid-template-columns:1fr 1fr;gap:12px}
.kcf-vignette{display:grid;place-items:center;aspect-ratio:1;padding:10px;border:2px solid transparent;border-radius:var(--kr);background:var(--kg);cursor:grab}
.kcf-vignette:hover{border-color:var(--kv);background:var(--kw)}
.kcf-vignette svg{width:100%;height:100%;max-height:72px;object-fit:contain}
.kcf-vignette--forme{aspect-ratio:auto;gap:4px;padding:10px 4px 8px;cursor:pointer;color:var(--kv);font-size:13px;font-weight:600}
.kcf-vignette--forme svg{width:30px;height:30px}
.kcf-vignette--forme span{color:var(--ke);text-align:center;line-height:1.2}
.kcf-modele{display:grid;gap:6px;padding:0;border:0;background:none;cursor:pointer;text-align:center;font-size:13.5px;font-weight:600;color:var(--ke)}
.kcf-modele__img{display:block;width:100%;max-height:220px;border:2px solid var(--kf);border-radius:3px;background:var(--kg) center/cover no-repeat;transition:border-color 200ms var(--kc)}
.kcf-modele:hover .kcf-modele__img{border-color:var(--kv)}
.kcf-depot{display:grid;gap:4px;justify-items:center;margin:0 0 14px;padding:22px 14px;border:2px dashed var(--kv);border-radius:var(--kr);background:var(--kw);text-align:center;cursor:pointer}
.kcf-depot strong{color:var(--kv)}
.kcf-depot span{font-size:13px;color:var(--ke2)}
.kcf-depot.est-survol,.kcf-depot:hover{background:var(--ksv)}
.kcf-liste-aide{margin:0;padding-left:18px;font-size:13.5px;color:var(--ke2)}
.kcf-liste-aide li{margin:0 0 6px}
.kcf-calques{margin:0;padding:0;list-style:none;display:grid;gap:4px}
.kcf-calques li{display:flex;align-items:center;gap:3px;padding:3px;border:2px solid transparent;border-radius:var(--kr);background:var(--kg)}
.kcf-calques li.est-actif{border-color:var(--kv);background:var(--kw)}
.kcf-calques .kcf-bi{width:32px;min-height:32px;border-width:0;background:none}
.kcf-calques .kcf-bi[aria-pressed="true"]{background:none;color:var(--kv)}
.kcf-calques .kcf-bi .kcf-ico{width:17px;height:17px}
.kcf-calque__nom{flex:1;min-width:0;padding:6px 8px;border:0;background:none;text-align:left;cursor:pointer;font-size:13.5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}

/* ---- messages */
.kcf-toast{position:absolute;left:50%;bottom:22px;z-index:5;max-width:min(92%,560px);padding:12px 18px;border-radius:var(--kr);background:var(--ke);color:var(--kw);font-size:14px;line-height:1.45;transform:translateX(-50%)}

/* ---- envoi */
/* non modale, sous le calendrier du site (.kcal, z-index 100001) : voir ouvrirEnvoi() */
.kcf-voile{position:fixed;inset:0;z-index:99999;background:rgba(13,31,19,.6)}
.kcf-dialogue{position:fixed;inset:0;z-index:100000;width:min(720px,calc(100vw - 24px));height:fit-content;max-height:calc(100vh - 24px);margin:auto;padding:0;border:0;border-radius:28px;
  background:var(--kw);color:var(--ke);overflow:auto;font-family:var(--f-texte,"Archivo",system-ui,sans-serif);font-size:15px;line-height:1.45;text-align:left}
html.kcf-verrou{overflow:hidden}
.kcf-dialogue form,.kcf-envoi__merci{position:relative;padding:clamp(22px,4vw,40px)}
.kcf-dialogue .srp-sous-titre{margin:0 40px 10px 0}
.kcf-fermer{position:absolute;top:14px;right:14px;width:42px;height:42px;border:2px solid var(--kf);border-radius:var(--kr);background:var(--kw);font-size:24px;line-height:1;cursor:pointer}
.kcf-fermer:hover{border-color:var(--kv)}
.kcf-envoi__alertes{margin:0 0 14px;font-size:14px;color:var(--kb)}
.kcf-envoi__alertes:empty{display:none}
.kcf-envoi__alertes p{margin:0 0 4px}
.kcf-envoi__alertes ul{margin:0 0 6px;padding-left:18px}
.kcf-champs{display:grid;grid-template-columns:1fr 1fr;gap:14px 16px;margin:0 0 16px}
.kcf-champs .srp-champ--large,.kcf-champs .kcf-evts{grid-column:1/-1}
.kcf-evts .srp-puces{display:flex;flex-wrap:wrap;gap:6px}
.kcf-cache{position:absolute!important;left:-9999px!important;width:1px;height:1px;overflow:hidden}
.kcf-rgpd{font-size:13.5px;color:var(--ke2)}
.kcf-erreur{margin:0 0 12px;padding:10px 14px;border-radius:var(--kr);background:var(--sur-bordeaux,#F7D9E1);color:var(--kb);font-weight:600;font-size:14px}
.kcf-envoi__pied{display:flex;flex-wrap:wrap;align-items:center;gap:12px 18px}
.kcf-envoi__etat{margin:0;font-size:14px;color:var(--ke2)}
.kcf-envoi__merci{text-align:center}
.kcf-envoi__merci .srp-sous-titre{margin:14px 0 8px}
.kcf-merci__rond{display:inline-grid;place-items:center;width:84px;height:84px;border-radius:50%;background:var(--kb);box-shadow:inset 0 0 0 7px var(--kb),inset 0 0 0 9.5px var(--kw)}
.kcf-merci__rond svg{width:38px;height:38px;fill:none;stroke:var(--kw);stroke-width:2.6;stroke-linecap:round;stroke-linejoin:round}
.kcf-merci__txt{max-width:46ch;margin:0 auto 20px;color:var(--ke2)}

/* ---- écrans moyens : la colonne de droite passe dessous */
@media (max-width:1240px){
  .kcf-corps{grid-template-columns:310px minmax(0,1fr);grid-template-rows:var(--kcf-h) auto;height:auto}
  .kcf-droite{grid-column:1/-1;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:0 28px;padding:16px;border-left:0;border-top:2px solid var(--kf)}
  .kcf-defile{display:contents}
  .kcf-controle{margin:0;padding-top:0;border-top:0}
  .kcf-action{position:static;grid-column:2;margin:12px 0 0;padding:0;border:0}
}
/* ---- téléphone et tablette en portrait : la scène d'abord, puis l'élément choisi, puis les outils */
@media (max-width:860px){
  .kcf{border-radius:0;border-left:0;border-right:0;--kcf-h:auto}
  .kcf-barre{padding:12px}
  .kcf-outils{margin-left:0}
  .kcf-corps{display:flex;flex-direction:column;height:auto}
  .kcf-centre{order:1;height:auto}
  .kcf-scene{height:340px}
  .kcf-droite{display:contents}
  .kcf-props{order:2;padding:16px;border-top:2px solid var(--kf)}
  .kcf-props:has(.kcf-aide:only-of-type),.kcf-props:empty{display:none}
  .kcf-gauche{order:3;border-right:0;border-top:2px solid var(--kf)}
  .kcf-onglets{grid-template-columns:repeat(8,minmax(64px,1fr));overflow-x:auto}
  .kcf-panneaux{max-height:none;overflow:visible}
  .kcf-controle{order:4;margin:0;padding:16px;border-top:2px solid var(--kf)}
  .kcf-action{order:5;position:sticky;bottom:0;z-index:4;margin:0;padding:12px 16px;border-top:2px solid var(--kf)}
  .kcf-note{display:none}
  .kcf-champs{grid-template-columns:1fr}
  .kcf-grille--decors{grid-template-columns:repeat(4,1fr)}
  .kcf-grille--modeles{grid-template-columns:repeat(3,1fr)}
}
@media (max-width:520px){
  .kcf-grille--decors,.kcf-grille--formes{grid-template-columns:repeat(3,1fr)}
  .kcf-grille--modeles{grid-template-columns:1fr 1fr}
  .kcf-format{width:100%}
  .kcf-format select{width:100%}
  .kcf-sep{display:none}
}
@media (prefers-reduced-motion:reduce){.kcf *{transition-duration:1ms!important}}
