Initial local backup snapshot

This commit is contained in:
Selecta Keke 2026-06-24 00:02:55 -03:00
commit acd9e14ba5
367 changed files with 118038 additions and 0 deletions

View file

@ -0,0 +1,702 @@
<!doctype html>
<html lang="fr">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>Organigramme CCDS - Hiérarchie complète</title>
<style>
:root {
--blue: #000091;
--blue-2: #1726c7;
--ink: #151827;
--muted: #5f6b7a;
--line: #d8deea;
--soft: #f5f7fc;
--gold: #d6a10f;
--teal: #159895;
--green: #1c9a63;
--rose: #ca3b6b;
--orange: #d36b1f;
--paper: #fff;
}
* { box-sizing: border-box; }
body {
margin: 0;
background: #dfe5f0;
color: var(--ink);
font-family: Arial, Helvetica, sans-serif;
}
.toolbar {
position: sticky;
top: 0;
z-index: 10;
display: flex;
justify-content: center;
gap: 12px;
padding: 14px;
background: rgba(255, 255, 255, 0.95);
border-bottom: 1px solid var(--line);
backdrop-filter: blur(8px);
}
button {
border: 0;
border-radius: 4px;
background: var(--blue);
color: white;
padding: 10px 14px;
font: inherit;
font-weight: 800;
cursor: pointer;
}
button.secondary {
background: white;
color: var(--blue);
border: 1px solid var(--line);
}
.preview {
display: grid;
justify-content: center;
gap: 28px;
padding: 28px 24px 42px;
overflow: auto;
}
.sheet {
width: 1600px;
min-height: 1130px;
position: relative;
padding: 44px;
overflow: hidden;
background:
radial-gradient(circle at 88% 8%, rgba(214, 161, 15, 0.22), transparent 23%),
linear-gradient(135deg, #fff 0%, #f7f9ff 100%);
box-shadow: 0 24px 65px rgba(21, 24, 39, 0.18);
}
.sheet::before {
content: "";
position: absolute;
inset: 0;
border: 12px solid var(--blue);
pointer-events: none;
}
.header {
display: grid;
grid-template-columns: 1fr auto;
gap: 28px;
align-items: end;
margin-bottom: 28px;
padding-bottom: 18px;
border-bottom: 4px solid var(--blue);
position: relative;
}
.eyebrow {
display: inline-block;
margin-bottom: 10px;
padding: 7px 11px;
border: 1px solid rgba(0, 0, 145, 0.18);
border-radius: 4px;
background: white;
color: var(--blue);
font-size: 15px;
font-weight: 900;
text-transform: uppercase;
}
h1 {
margin: 0;
color: var(--blue);
font-size: 46px;
line-height: 1.04;
letter-spacing: 0;
}
.subtitle {
margin: 10px 0 0;
max-width: 920px;
color: var(--muted);
font-size: 19px;
line-height: 1.38;
}
.legend {
display: grid;
grid-template-columns: repeat(3, 130px);
gap: 10px;
}
.stat {
min-height: 86px;
padding: 12px;
border: 1px solid rgba(0, 0, 145, 0.15);
border-radius: 6px;
background: white;
}
.stat strong {
display: block;
color: var(--blue);
font-size: 32px;
line-height: 1;
}
.stat span {
display: block;
margin-top: 7px;
color: var(--muted);
font-size: 12px;
font-weight: 800;
line-height: 1.25;
}
.topline {
display: grid;
grid-template-columns: 1fr 1.2fr 1fr;
gap: 18px;
align-items: center;
margin-bottom: 24px;
}
.box {
position: relative;
border: 1px solid var(--line);
border-radius: 8px;
background: white;
box-shadow: 0 10px 24px rgba(21, 24, 39, 0.07);
}
.person {
display: grid;
grid-template-columns: 102px 1fr;
gap: 14px;
align-items: center;
min-height: 134px;
padding: 15px;
}
.person.feature {
border: 2px solid var(--blue);
box-shadow: 0 16px 38px rgba(0, 0, 145, 0.14);
}
.photo {
width: 92px;
height: 92px;
border: 3px solid white;
border-radius: 50%;
background: linear-gradient(135deg, #f4f7ff, white);
box-shadow: inset 0 0 0 1px var(--line), 0 7px 18px rgba(21, 24, 39, 0.13);
overflow: hidden;
padding: 0;
}
.photo img {
width: 100%;
height: 100%;
object-fit: cover;
display: none;
}
.photo.has-image img { display: block; }
.photo span {
display: grid;
place-items: center;
height: 100%;
padding: 12px;
color: var(--blue);
font-size: 11px;
line-height: 1.15;
text-align: center;
}
.photo.has-image span { display: none; }
.role {
color: var(--blue);
font-size: 12px;
font-weight: 900;
text-transform: uppercase;
}
.name {
margin-top: 4px;
font-size: 20px;
font-weight: 900;
line-height: 1.12;
}
.service {
margin-top: 6px;
color: var(--muted);
font-size: 13px;
line-height: 1.32;
}
.connector {
height: 28px;
width: 2px;
margin: -10px auto 0;
background: var(--line);
}
.vp-grid {
position: relative;
display: grid;
grid-template-columns: repeat(3, 1fr);
gap: 14px;
margin-bottom: 22px;
padding-top: 26px;
}
.vp-grid::before {
content: "";
position: absolute;
top: 0;
left: 16%;
right: 16%;
height: 2px;
background: var(--line);
}
.vp-grid .person::before {
content: "";
position: absolute;
top: -26px;
left: 50%;
width: 2px;
height: 26px;
background: var(--line);
}
.vp-grid .person {
min-height: 120px;
grid-template-columns: 82px 1fr;
padding: 13px;
}
.vp-grid .photo {
width: 74px;
height: 74px;
}
.vp-grid .name {
font-size: 17px;
}
.service-tag {
display: inline-block;
margin-top: 8px;
padding: 5px 8px;
border-radius: 999px;
background: #eef2ff;
color: var(--blue);
font-size: 11px;
font-weight: 900;
text-transform: uppercase;
}
.council-grid {
display: grid;
grid-template-columns: 0.9fr 1fr 1.55fr;
gap: 14px;
}
.commune {
padding: 14px;
border-top: 7px solid var(--green);
}
.commune.sinnamary { border-top-color: var(--teal); }
.commune.kourou { border-top-color: var(--gold); }
.commune h2 {
margin: 0 0 10px;
color: var(--blue);
font-size: 20px;
}
.names {
display: grid;
grid-template-columns: repeat(2, minmax(0, 1fr));
gap: 7px;
}
.kourou .names { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.names div {
min-height: 32px;
padding: 7px 8px;
border: 1px solid var(--line);
border-radius: 4px;
background: #fbfcff;
font-size: 12px;
font-weight: 800;
line-height: 1.15;
}
.admin-layout {
display: grid;
grid-template-columns: 1fr 1.15fr 1fr;
gap: 18px;
align-items: start;
}
.admin-top {
display: grid;
grid-template-columns: 1fr 1fr 1fr;
gap: 16px;
margin-bottom: 26px;
}
.admin-card {
min-height: 112px;
padding: 16px;
border-left: 6px solid var(--blue);
}
.admin-card h2,
.direction h2 {
margin: 0;
color: var(--blue);
font-size: 19px;
line-height: 1.16;
text-transform: uppercase;
}
.admin-card p {
margin: 9px 0 0;
color: var(--muted);
font-size: 14px;
line-height: 1.35;
}
.direction {
padding: 16px;
border-top: 8px solid var(--blue);
}
.direction.orange { border-top-color: var(--orange); }
.direction.teal { border-top-color: var(--teal); }
.direction.gold { border-top-color: var(--gold); }
.manager {
margin: 9px 0 12px;
padding: 9px 10px;
border-radius: 5px;
background: var(--soft);
color: var(--ink);
font-size: 13px;
line-height: 1.35;
}
.manager strong {
color: var(--blue);
}
.services {
display: grid;
gap: 8px;
}
.service-box {
padding: 9px 10px;
border: 1px solid var(--line);
border-radius: 5px;
background: #fbfcff;
min-height: 48px;
}
.service-box strong {
display: block;
color: var(--ink);
font-size: 13px;
line-height: 1.18;
text-transform: uppercase;
}
.service-box span {
display: block;
margin-top: 4px;
color: var(--muted);
font-size: 12px;
line-height: 1.25;
}
.source-note {
position: absolute;
left: 44px;
right: 44px;
bottom: 28px;
padding: 12px 14px;
border-left: 6px solid var(--blue);
background: white;
color: var(--muted);
font-size: 12px;
line-height: 1.35;
}
input[type="file"] { display: none; }
@media print {
@page { size: A3 landscape; margin: 0; }
body { background: white; }
.toolbar { display: none; }
.preview { display: block; padding: 0; overflow: visible; }
.sheet {
width: 420mm;
min-height: 297mm;
margin: 0;
box-shadow: none;
page-break-after: always;
zoom: 1 !important;
}
}
</style>
</head>
<body>
<div class="toolbar">
<button onclick="window.print()">Imprimer / Exporter en PDF</button>
<button class="secondary" onclick="clearPhotos()">Effacer les photos</button>
</div>
<div class="preview">
<main class="sheet">
<section class="header">
<div>
<span class="eyebrow">Mandature 2026-2032</span>
<h1>Gouvernance politique et délégations</h1>
<p class="subtitle">Conseil communautaire de la Communauté de Communes des Savanes. Les délégations ci-dessous sont celles publiées par la CCDS après attribution du 9 avril 2026.</p>
</div>
<div class="legend">
<div class="stat"><strong>31</strong><span>Élu.e.s communautaires</span></div>
<div class="stat"><strong>9</strong><span>Vice-présidents</span></div>
<div class="stat"><strong>21</strong><span>Conseillers communautaires</span></div>
</div>
</section>
<section class="topline">
<div class="box admin-card">
<h2>Cabinet</h2>
<p>Appui politique, protocole, relation institutionnelle.</p>
</div>
<article class="box person feature">
<button class="photo" data-photo="michael-rimane"><img alt=""><span>Ajouter<br>photo</span></button>
<div>
<div class="role">Président</div>
<div class="name">Michael RIMANE</div>
<div class="service">Ressources humaines, gestion administrative, gestion des déchets.</div>
<span class="service-tag">Présidence + pilotage transversal</span>
</div>
</article>
<div class="box admin-card">
<h2>Élus communautaires</h2>
<p>31 élu.e.s représentant Iracoubo, Kourou, Saint-Élie et Sinnamary.</p>
</div>
</section>
<div class="connector"></div>
<section class="vp-grid">
<article class="box person">
<button class="photo" data-photo="enrico-william"><img alt=""><span>Ajouter<br>photo</span></button>
<div><div class="role">1er Vice-président</div><div class="name">Enrico WILLIAM</div><div class="service">Action sociale « CIASS »</div><span class="service-tag">CIASS</span></div>
</article>
<article class="box person">
<button class="photo" data-photo="veronique-jacaria"><img alt=""><span>Ajouter<br>photo</span></button>
<div><div class="role">2e Vice-présidente</div><div class="name">Véronique JACARIA</div><div class="service">Fonds Européens - LEADER</div><span class="service-tag">Europe / LEADER</span></div>
</article>
<article class="box person">
<button class="photo" data-photo="michel-ange-jeremie"><img alt=""><span>Ajouter<br>photo</span></button>
<div><div class="role">3e Vice-président</div><div class="name">Michel-Ange JEREMIE</div><div class="service">Affaires financières</div><span class="service-tag">Finances et marchés</span></div>
</article>
<article class="box person">
<button class="photo" data-photo="ruanny-cantao-dias"><img alt=""><span>Ajouter<br>photo</span></button>
<div><div class="role">4e Vice-présidente</div><div class="name">Ruanny CANTAO DIAS</div><div class="service">Tourisme</div><span class="service-tag">OTIS</span></div>
</article>
<article class="box person">
<button class="photo" data-photo="patrick-cosset"><img alt=""><span>Ajouter<br>photo</span></button>
<div><div class="role">5e Vice-président</div><div class="name">Patrick COSSET</div><div class="service">Habitat</div><span class="service-tag">Maison de l'habitat</span></div>
</article>
<article class="box person">
<button class="photo" data-photo="nicsonne-jeanty"><img alt=""><span>Ajouter<br>photo</span></button>
<div><div class="role">6e Vice-président</div><div class="name">Nicsonne JEANTY</div><div class="service">Sport et culture</div><span class="service-tag">Jeunesse / sport / culture</span></div>
</article>
<article class="box person">
<button class="photo" data-photo="gilles-dufail"><img alt=""><span>Ajouter<br>photo</span></button>
<div><div class="role">7e Vice-président</div><div class="name">Gilles DUFAIL</div><div class="service">Aménagement du territoire et développement durable</div><span class="service-tag">Aménagement durable</span></div>
</article>
<article class="box person">
<button class="photo" data-photo="naell-torvic"><img alt=""><span>Ajouter<br>photo</span></button>
<div><div class="role">8e Vice-président</div><div class="name">Naell TORVIC</div><div class="service">Cohésion sociale et services de proximité</div><span class="service-tag">Services aux usagers</span></div>
</article>
<article class="box person">
<button class="photo" data-photo="johanna-horth"><img alt=""><span>Ajouter<br>photo</span></button>
<div><div class="role">9e Vice-présidente</div><div class="name">Johanna HORTH</div><div class="service">Développement économique</div><span class="service-tag">Économie</span></div>
</article>
</section>
<section class="council-grid">
<article class="box commune iracoubo">
<h2>Élus d'Iracoubo</h2>
<div class="names">
<div>Constantin-Richard AMARANTHE</div><div>Albert GOLITIN</div><div>Vanessa BOIS-BLANC</div><div>Axelle BOIS-BLANC</div>
</div>
</article>
<article class="box commune sinnamary">
<h2>Élus de Sinnamary</h2>
<div class="names">
<div>Jocelyn NIAMA</div><div>Fidélia BOCAGE</div><div>Corrine CHATEAU</div><div>Aglaé LETARD</div><div>Lauric SOPHIE</div>
</div>
</article>
<article class="box commune kourou">
<h2>Élus de Kourou</h2>
<div class="names">
<div>Frédéric LLADERES</div><div>Jean-Etienne ANTOINETTE</div><div>Marie-France BANGO</div><div>Enrico BERTHIER</div><div>Françoise FREDOC</div><div>Claudine RINGUET</div><div>Micheline ANTOINETTE</div><div>François RINGUET</div><div>Stelly FERNAND LAURENCIN</div><div>Keila DE PAIVA</div><div>Albert Franck SAMUELS</div><div>Benjamin ZULEMARO</div>
</div>
</article>
</section>
<p class="source-note">Sources : page officielle CCDS « Composition du Conseil Communautaire » et article officiel « Michael Rimane, Président de la CCDS ». La commune de Saint-Élie est membre de la CCDS ; sa maire Véronique JACARIA siège dans l'exécutif comme 2e vice-présidente.</p>
</main>
<main class="sheet">
<section class="header">
<div>
<span class="eyebrow">Services et responsables identifiés</span>
<h1>Hiérarchie administrative et services</h1>
<p class="subtitle">Reconstitution à partir de lorganigramme officiel CCDS publié en 2022, complété par les responsables confirmés dans les publications CCDS 2025-2026.</p>
</div>
<div class="legend">
<div class="stat"><strong>3</strong><span>Directions opérationnelles</span></div>
<div class="stat"><strong>18</strong><span>Services / entités identifiés</span></div>
<div class="stat"><strong>7</strong><span>Responsables nommés trouvés</span></div>
</div>
</section>
<section class="admin-top">
<article class="box admin-card">
<h2>Présidence</h2>
<p>Michael RIMANE - autorité politique, cabinet et élus communautaires.</p>
</article>
<article class="box admin-card">
<h2>Direction générale des services</h2>
<p><strong>Tatiana FALGAYRETTES</strong><br>Directrice générale des services, confirmée par les publications CCDS.</p>
</article>
<article class="box admin-card">
<h2>Pilotage transversal</h2>
<p>Contrôle de gestion, évaluation, performance, secrétariat général, projet de territoire, communication, dialogue citoyen, partenariats.</p>
</article>
</section>
<section class="admin-layout">
<article class="box direction orange">
<h2>Direction Aménagement et Développement Durable</h2>
<div class="manager"><strong>Élu référent :</strong> Gilles DUFAIL<br><strong>Responsables repérés :</strong> Mathieu CATALAYUD pour le pôle économique / fonds européens.</div>
<div class="services">
<div class="service-box"><strong>Déchets</strong><span>Délégation directe : Michael RIMANE. Inclut la déchèterie des Savanes.</span></div>
<div class="service-box"><strong>Bâtiments & énergie</strong><span>Service technique et patrimoine.</span></div>
<div class="service-box"><strong>Infrastructures & réseaux</strong><span>Cellules techniques, logistique, réseaux.</span></div>
<div class="service-box"><strong>GEMAPI</strong><span>Gestion des milieux aquatiques et prévention des inondations.</span></div>
<div class="service-box"><strong>Eau & assainissement</strong><span>Eau, assainissement collectif et non collectif.</span></div>
<div class="service-box"><strong>Fonds européens / LEADER</strong><span>Élue référente : Véronique JACARIA. Rattaché au pôle économique / projets selon les publications.</span></div>
</div>
</article>
<article class="box direction teal">
<h2>Direction des Services aux Usagers</h2>
<div class="manager"><strong>Directrice confirmée :</strong> Juliana RIMANE<br><strong>Élu référent proximité :</strong> Naell TORVIC.</div>
<div class="services">
<div class="service-box"><strong>GIP Jeunesse : sport, éducation, culture</strong><span>Élu référent : Nicsonne JEANTY.</span></div>
<div class="service-box"><strong>Office de Tourisme Intercommunal des Savanes</strong><span>Élue référente : Ruanny CANTAO DIAS. Direction confirmée : Didier BIRONNEAU.</span></div>
<div class="service-box"><strong>Centre Intercommunal d'Action Sociale</strong><span>Élu référent : Enrico WILLIAM. Responsable confirmée : Virginie DIAZ.</span></div>
<div class="service-box"><strong>Plateforme des seniors</strong><span>Action sociale et accompagnement de proximité.</span></div>
<div class="service-box"><strong>Maison de l'Habitat</strong><span>Élu référent : Patrick COSSET. Référent repéré : Jefrado AMALENSI.</span></div>
<div class="service-box"><strong>Hôtel des entreprises</strong><span>Développement économique, accueil et accompagnement.</span></div>
<div class="service-box"><strong>Maison des services au public</strong><span>Services de proximité aux habitants.</span></div>
<div class="service-box"><strong>Station thermale</strong><span>Entité figurant dans lorganigramme officiel 2022.</span></div>
</div>
</article>
<article class="box direction gold">
<h2>Direction Ingénierie et Expertise aux Services</h2>
<div class="manager"><strong>Élus référents :</strong> Michael RIMANE pour RH / administration, Michel-Ange JEREMIE pour finances, Johanna HORTH pour économie.</div>
<div class="services">
<div class="service-box"><strong>Ressources humaines</strong><span>Délégation : Michael RIMANE.</span></div>
<div class="service-box"><strong>Finances et marchés</strong><span>Délégation : Michel-Ange JEREMIE.</span></div>
<div class="service-box"><strong>Économie et fiscalité</strong><span>Délégation économique : Johanna HORTH.</span></div>
<div class="service-box"><strong>Affaires générales et juridiques</strong><span>Gestion administrative, actes, suivi juridique.</span></div>
<div class="service-box"><strong>Moyens généraux</strong><span>Support logistique et ressources internes.</span></div>
<div class="service-box"><strong>Contrat Local de Santé Intercommunal</strong><span>Coordinatrice repérée : Christiane PEDIE. Service identifié dans les rubriques CCDS santé.</span></div>
</div>
</article>
</section>
<p class="source-note">Responsables nominatifs confirmés en ligne : Tatiana FALGAYRETTES, Juliana RIMANE, Virginie DIAZ, Mathieu CATALAYUD, Didier BIRONNEAU, Jefrado AMALENSI, Christiane PEDIE. Les postes non nommés restent indiqués comme services, sans inventer de responsable.</p>
</main>
</div>
<input id="photo-input" type="file" accept="image/*">
<script>
const input = document.getElementById("photo-input");
let currentPhotoButton = null;
function fitSheets() {
if (window.matchMedia("print").matches) {
document.querySelectorAll(".sheet").forEach((sheet) => sheet.style.zoom = "1");
return;
}
const scale = Math.min(1, (window.innerWidth - 48) / 1600);
document.querySelectorAll(".sheet").forEach((sheet) => sheet.style.zoom = scale);
}
window.addEventListener("resize", fitSheets);
fitSheets();
document.querySelectorAll(".photo").forEach((button) => {
const saved = localStorage.getItem("ccds-photo-" + button.dataset.photo);
if (saved) setPhoto(button, saved);
button.addEventListener("click", () => {
currentPhotoButton = button;
input.click();
});
});
input.addEventListener("change", () => {
const file = input.files && input.files[0];
if (!file || !currentPhotoButton) return;
const reader = new FileReader();
reader.onload = () => {
const result = reader.result;
setPhoto(currentPhotoButton, result);
localStorage.setItem("ccds-photo-" + currentPhotoButton.dataset.photo, result);
};
reader.readAsDataURL(file);
input.value = "";
});
function setPhoto(button, src) {
const image = button.querySelector("img");
image.src = src;
button.classList.add("has-image");
}
function clearPhotos() {
document.querySelectorAll(".photo").forEach((button) => {
button.querySelector("img").removeAttribute("src");
button.classList.remove("has-image");
localStorage.removeItem("ccds-photo-" + button.dataset.photo);
});
}
</script>
</body>
</html>