/* =========================================================
   Portfolio BTS SIO SISR — Loïc PIDOLLE
   Thème : console de supervision (sombre)
   ========================================================= */
:root{
  --nuit:#15120E;      /* fond anthracite chaud */
  --baie:#1E1A14;      /* surfaces */
  --baie-2:#2A241B;    /* surfaces survolées */
  --cable:#3A3226;     /* bordures */
  --texte:#F2E8D5;
  --gris:#A8987C;
  --signal:#F5A524;    /* accent ambre */
  --up:#9CCB6B;        /* état OK */
  --wait:#FF7A45;      /* état en cours */
  --f-titre:"JetBrains Mono", Consolas, ui-monospace, monospace;
  --f-texte:"Instrument Sans", "Segoe UI", system-ui, -apple-system, sans-serif;
  --f-mono:"JetBrains Mono", ui-monospace, Consolas, monospace;
  --max:1640px;
  --r-s:0; --r-m:0;
}
*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  margin:0;background:var(--nuit);color:var(--texte);
  font:400 1rem/1.65 var(--f-texte);
  -webkit-font-smoothing:antialiased;
}
#netbg{position:fixed;inset:0;z-index:-1;pointer-events:none}
body::after{content:"";position:fixed;inset:0;z-index:-1;pointer-events:none;background:repeating-linear-gradient(0deg,rgba(245,165,36,.025) 0 1px,transparent 1px 4px)}
.page-head{background:linear-gradient(180deg,transparent,rgba(21,18,14,.6))}
@media print{#netbg{display:none}}
img{max-width:100%;display:block}
a{color:var(--signal);text-decoration-thickness:1px;text-underline-offset:3px}
a:hover{color:#FFC867}
:focus-visible{outline:2px solid var(--signal);outline-offset:3px;border-radius:2px}
.wrap{width:min(100% - clamp(2.5rem,6vw,8rem),var(--max));margin-inline:auto}
.skip{position:absolute;left:-999px;top:0;background:var(--signal);color:var(--nuit);padding:.5rem 1rem;z-index:100}
.skip:focus{left:1rem}

/* ---------- En-tête ---------- */
.site-head{position:sticky;top:0;z-index:50;background:rgba(21,18,14,.92);backdrop-filter:blur(8px);border-bottom:1px solid var(--cable)}
.site-head .wrap{display:flex;align-items:center;justify-content:space-between;gap:1rem;height:64px;width:min(100% - clamp(2.5rem,6vw,8rem),var(--max))}
.brand{display:flex;align-items:center;gap:.6rem;color:var(--texte);text-decoration:none;font-family:var(--f-mono);font-size:.92rem}
.brand .prompt{color:var(--up)}
.brand .host{color:var(--gris)}
.nav{display:flex;gap:.25rem;list-style:none;margin:0;padding:0}
.nav a{display:block;white-space:nowrap;padding:.45rem .6rem;color:var(--gris);text-decoration:none;font-size:.92rem;border-radius:var(--r-s)}
.nav a:hover{color:var(--texte);background:var(--baie)}
.nav a[aria-current="page"]{color:var(--texte);box-shadow:inset 0 -2px 0 var(--signal)}
.burger{display:none;background:none;border:1px solid var(--cable);color:var(--texte);border-radius:var(--r-s);padding:.4rem .6rem;font:inherit;cursor:pointer}
/* Écrans moyens : tout sur une ligne, le menu défile si besoin */
@media (min-width:641px) and (max-width:1180px){
  .site-head .wrap{gap:.75rem}
  .head-actions{order:3}
  .nav{flex:1;min-width:0;overflow-x:auto;scrollbar-width:none;justify-content:flex-end}
  .nav::-webkit-scrollbar{display:none}
  .nav a{padding:.45rem .45rem;font-size:.88rem}
}
/* Téléphones : menu repliable */
@media (max-width:640px){
  .burger{display:block}
  .nav{display:none;position:absolute;left:0;right:0;top:100%;flex-direction:column;background:var(--nuit);border-bottom:1px solid var(--cable);padding:.5rem 1.25rem 1rem}
  .nav.open{display:flex}
  .nav a{padding:.7rem .5rem}
}
}

/* ---------- Typo ---------- */
h1,h2,h3{font-family:var(--f-titre);font-weight:600;line-height:1.15;margin:0 0 .6em;letter-spacing:-.005em}
h1{font-size:clamp(2.2rem,5vw,3.8rem);font-weight:800;letter-spacing:-.02em}
h2{font-size:clamp(1.4rem,3vw,1.9rem);font-weight:700;letter-spacing:-.01em}
h3{font-size:1.2rem}
p{margin:0 0 1em;max-width:70ch}
.lead{font-size:1.15rem;color:#D9CCB4;max-width:62ch}
.muted{color:var(--gris)}
.path{font-family:var(--f-mono);font-size:.85rem;color:var(--gris);margin-bottom:1rem}
.path b{color:var(--signal);font-weight:500}

/* ---------- Sections ---------- */
main{padding-bottom:4rem}
.page-head{padding:4rem 0 2.5rem;border-bottom:1px solid var(--cable);margin-bottom:3rem}
.section{margin-bottom:3.5rem}
.section > h2{padding-bottom:.5rem;border-bottom:1px solid var(--cable)}
.grid-2{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:1.5rem 2rem}
.panel{background:var(--baie);border:1px solid var(--cable);border-radius:var(--r-m);padding:1.5rem}
.tags{display:flex;flex-wrap:wrap;gap:.4rem;list-style:none;padding:0;margin:.75rem 0 0}
.tags li{font-family:var(--f-mono);font-size:.78rem;color:#E8D9BD;border:1px solid var(--cable);border-radius:var(--r-s);padding:.15rem .5rem}
.btn{display:inline-flex;align-items:center;gap:.5rem;padding:.7rem 1.1rem;border-radius:var(--r-s);font-weight:600;text-decoration:none;border:1px solid var(--signal);color:var(--nuit);background:var(--signal);font-size:.95rem;cursor:pointer;font-family:inherit}
.btn:hover{background:#FFC867;color:var(--nuit)}
.btn.ghost{background:var(--nuit);color:var(--texte);border-color:var(--cable)}
.btn.ghost:hover{border-color:var(--signal);background:var(--nuit);color:var(--texte)}
.next{margin-top:3rem;padding-top:1.5rem;border-top:1px solid var(--cable);display:flex;justify-content:flex-end;align-items:center;gap:1rem;flex-wrap:wrap}

/* ---------- Accueil : tableau de supervision ---------- */
.hero{display:grid;grid-template-columns:1.1fr .9fr;gap:clamp(3rem,6vw,7rem);align-items:center;padding:5rem 0 4rem}
@media (max-width:900px){.hero{grid-template-columns:1fr;padding-top:3rem}}
.hero h1 .role{display:block;color:var(--gris);font-weight:500;font-size:.55em;margin-top:.5rem}
.hero .actions{display:flex;gap:.75rem;flex-wrap:wrap;margin-top:1.75rem}
.term{background:#0E0C09;border:1px solid var(--cable);font-family:var(--f-mono);font-size:.9rem;line-height:1.9;padding:1.2rem 1.4rem;color:#D9CCB4;box-shadow:0 30px 60px -30px rgba(0,0,0,.8)}
.term .dots{display:flex;gap:.4rem;margin:-.4rem 0 .8rem}
.term .dots i{display:block;width:10px;height:10px;border:1px solid var(--cable)}
.term p{margin:0;max-width:none}
.term .ps{color:var(--signal)}
.term .k{color:var(--gris)}
.term .ls{display:flex;flex-wrap:wrap;gap:0 1.2rem}
.term .ls a{color:var(--texte);text-decoration:none}
.term .ls a:hover{color:var(--signal);text-decoration:underline}
.term .ls a.wait{color:var(--wait)}
.cursor{display:inline-block;width:.6em;height:1.1em;background:var(--signal);vertical-align:text-bottom}
@media (prefers-reduced-motion:no-preference){
  .term p{animation:type .01s both}
  .term p:nth-of-type(1){animation-delay:0.12s}
  .term p:nth-of-type(2){animation-delay:0.24s}
  .term p:nth-of-type(3){animation-delay:0.36s}
  .term p:nth-of-type(4){animation-delay:0.48s}
  .term p:nth-of-type(5){animation-delay:0.60s}
  .term p:nth-of-type(6){animation-delay:0.72s}
  .term p:nth-of-type(7){animation-delay:0.84s}
  .term p:nth-of-type(8){animation-delay:0.96s}
  .term p:nth-of-type(9){animation-delay:1.08s}
  .term p:nth-of-type(10){animation-delay:1.20s}
  .term p:nth-of-type(11){animation-delay:1.32s}
  @keyframes type{from{visibility:hidden}to{visibility:visible}}
  .cursor{animation:blink 1s steps(1) infinite}
  @keyframes blink{50%{opacity:0}}
}
.facts{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));border:1px solid var(--cable);border-radius:var(--r-m);overflow:hidden;background:var(--baie)}
.facts div{padding:1.1rem 1.3rem;border-right:1px solid var(--cable)}
.facts div:last-child{border-right:0}
.facts dt{font-size:.8rem;color:var(--gris)}
.facts dd{margin:0;font-family:var(--f-titre);font-size:1.1rem;font-weight:600}

/* ---------- Réalisations ---------- */
.reals{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,620px),1fr));gap:1rem;align-items:start}
.real{background:var(--baie);border:1px solid var(--cable);border-radius:var(--r-m)}
.real summary{list-style:none;cursor:pointer;padding:1.3rem 1.5rem;display:grid;grid-template-columns:auto 1fr auto;gap:1rem;align-items:start}
.real summary::-webkit-details-marker{display:none}
.real summary:hover{background:var(--baie-2);border-radius:var(--r-m)}
.real .code{font-family:var(--f-mono);font-size:.8rem;color:var(--signal);border:1px solid var(--cable);border-radius:var(--r-s);padding:.1rem .45rem;margin-top:.2rem}
.real h3{margin:0 0 .3rem}
.real .resume{color:var(--gris);margin:0}
.real .toggle{font-family:var(--f-mono);color:var(--gris);font-size:1.2rem;line-height:1;transition:transform .2s}
.real[open] .toggle{transform:rotate(45deg);color:var(--signal)}
.real .body{padding:0 1.5rem 1.5rem 1.5rem;border-top:1px solid var(--cable);margin-top:0}
.real .body h4{font-family:var(--f-titre);font-size:1rem;margin:1.3rem 0 .4rem;color:#D9CCB4}
.real .body ul,.real .body ol{margin:0 0 1em;padding-left:1.2rem;max-width:70ch}
.real .body li{margin-bottom:.3rem}
.comp-list{display:flex;flex-wrap:wrap;gap:.4rem;list-style:none;padding:0!important}
.comp-list li{font-size:.82rem;background:rgba(245,165,36,.12);color:#FFD48A;border-radius:var(--r-s);padding:.2rem .55rem;margin:0!important}
.proofs{border-left:2px solid var(--wait);padding:.6rem 1rem;background:rgba(255,122,69,.06);font-size:.92rem}
.empty{border:1px dashed var(--cable);border-radius:var(--r-m);padding:1.5rem;color:var(--gris)}
.empty strong{color:var(--wait);font-weight:500}

/* ---------- Compétences ---------- */
.bars{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,460px),1fr));gap:1.1rem 3rem}
.bar-label{display:flex;justify-content:space-between;font-size:.95rem;margin-bottom:.35rem}
.bar-label span:last-child{font-family:var(--f-mono);color:var(--signal)}
.bar{height:6px;background:#0E0C09;border-radius:3px;overflow:hidden}
.bar i{display:block;height:100%;background:linear-gradient(90deg,#B86E0A,var(--signal));border-radius:3px}
.bloc{display:grid;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:1rem}
.bloc .panel h3{font-size:1.05rem}
.bloc ul{margin:.3rem 0 0;padding-left:1.1rem;color:#D9CCB4;font-size:.93rem}
.bloc .used{margin-top:1rem;font-size:.85rem;color:var(--gris)}
.bloc .used a{font-family:var(--f-mono)}

/* ---------- Tableau de synthèse ---------- */
.idcard{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:.8rem 2rem;margin-bottom:2rem}
.idcard div{border-bottom:1px solid var(--cable);padding-bottom:.4rem}
.idcard dt{font-size:.8rem;color:var(--gris)}
.idcard dd{margin:0}
.filters{display:flex;flex-wrap:wrap;gap:.5rem;margin-bottom:1rem}
.filters button{background:var(--baie);border:1px solid var(--cable);color:var(--gris);padding:.45rem .8rem;border-radius:var(--r-s);font:inherit;font-size:.85rem;cursor:pointer}
.filters button[aria-pressed="true"]{border-color:var(--signal);color:var(--texte);background:rgba(245,165,36,.12)}
.table-scroll{overflow-x:auto;border:1px solid var(--cable);border-radius:var(--r-m)}
table.synth{border-collapse:collapse;width:100%;min-width:900px;font-size:.9rem}
.synth th,.synth td{border-bottom:1px solid var(--cable);padding:.75rem .8rem;text-align:left;vertical-align:top}
.synth thead th{background:#0E0C09;font-family:var(--f-titre);font-weight:600;font-size:.82rem;color:#D9CCB4;position:sticky;top:0}
.synth thead th.c{text-align:center;width:9%}
.synth td.c{text-align:center}
.synth .groupe td{background:var(--baie-2);font-family:var(--f-titre);font-weight:600;color:var(--signal)}
.synth .check{display:inline-grid;place-items:center;width:22px;height:22px;border-radius:50%;background:rgba(156,203,107,.15);color:var(--up);font-weight:700}
.synth td a{font-family:var(--f-mono);font-size:.8rem}
.synth tr.dim td{opacity:.25}
.synth tr.hl td.c.on{background:rgba(245,165,36,.1)}

/* ---------- Veille ---------- */
.sources{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:1rem;list-style:none;padding:0;margin:1rem 0 0}
.sources li{background:var(--baie);border:1px solid var(--cable);border-radius:var(--r-m);padding:1rem 1.2rem}
.sources strong{display:block;font-family:var(--f-titre)}
.sources span{color:var(--gris);font-size:.9rem}
.article{background:var(--baie);border:1px solid var(--cable);border-radius:var(--r-m);overflow:hidden}
.articles{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,620px),1fr));gap:1rem;align-items:start}
.article summary{list-style:none;cursor:pointer;display:grid;grid-template-columns:150px 1fr;min-height:130px}
.article summary::-webkit-details-marker{display:none}
.article .vign{display:grid;place-items:center;font-family:var(--f-mono);font-size:1.5rem;color:var(--signal);border-right:1px solid var(--cable);background:
   radial-gradient(circle at 30% 20%,rgba(245,165,36,.18),transparent 60%),#0B121B}
.article .txt{padding:1.2rem 1.4rem}
.article .meta{font-size:.82rem;color:var(--gris);margin-bottom:.3rem}
.article .meta .new{color:var(--wait);margin-left:.5rem}
.article h3{margin:0 0 .4rem}
.article .txt p{margin:0;color:#D9CCB4}
.article .open-hint{display:inline-block;margin-top:.6rem;font-size:.85rem;color:var(--signal)}
.article[open] .open-hint{display:none}
.article .body{padding:0 1.4rem 1.4rem calc(150px + 1.4rem);border-top:1px solid var(--cable)}
.article .body h4{font-family:var(--f-titre);margin:1.2rem 0 .4rem;font-size:1rem}
.article .body ul{padding-left:1.2rem;max-width:70ch}
.article .src{font-size:.85rem;color:var(--gris)}
@media (max-width:640px){
  .article summary{grid-template-columns:1fr}
  .article .vign{min-height:80px;border-right:0;border-bottom:1px solid var(--cable)}
  .article .body{padding-left:1.4rem}
}

/* ---------- Parcours ---------- */
.timeline{list-style:none;padding:0;margin:0;border-left:2px solid var(--cable);margin-left:.4rem}
.timeline > li{position:relative;padding:0 0 2rem 1.8rem}
.timeline > li::before{content:"";position:absolute;left:-7px;top:.45rem;width:12px;height:12px;border-radius:50%;background:var(--nuit);border:2px solid var(--signal)}
.timeline > li.now::before{background:var(--up);border-color:var(--up)}
.timeline .when{font-family:var(--f-mono);font-size:.82rem;color:var(--signal)}
.timeline h3{margin:.2rem 0 .3rem}

/* ---------- Pied de page ---------- */
.site-foot{border-top:1px solid var(--cable);padding:1.5rem 0;color:var(--gris);font-size:.85rem}
.site-foot .wrap{display:flex;justify-content:space-between;gap:1rem;flex-wrap:wrap}

/* ---------- Impression (tableau de synthèse) ---------- */
@media print{
  body{background:#fff;color:#000}
  .site-head,.site-foot,.filters,.no-print,.next{display:none!important}
  .page-head{padding:0;border:0;margin-bottom:1rem}
  .page-head .lead,.path{display:none}
  h1{font-size:18pt}
  .table-scroll{overflow:visible;border:0}
  table.synth{min-width:0;font-size:8.5pt}
  .synth th,.synth td{border:1px solid #444;color:#000;padding:4px}
  .synth thead th,.synth .groupe td{background:#eee!important;color:#000}
  .synth .check{background:none;color:#000}
  .synth td a{color:#000;text-decoration:none}
  .idcard dd,.idcard dt{color:#000}
  @page{size:A4 landscape;margin:12mm}
}
@media (prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important}}
@media (max-width:640px){.facts div{border-right:0;border-bottom:1px solid var(--cable)}.facts div:last-child{border-bottom:0}}

/* ---------- Terminal interactif ---------- */
.head-actions{display:flex;gap:.5rem;align-items:center}
.term-btn{white-space:nowrap;font-family:var(--f-mono);font-weight:700;background:var(--baie);color:var(--signal);border:1px solid var(--cable);padding:.4rem .7rem;cursor:pointer;font-size:.95rem;order:2}
.term-btn:hover{border-color:var(--signal)}
@media (min-width:1181px){.head-actions{order:3}.site-head .wrap{gap:1.5rem}.nav{margin-left:auto}}
.term .run{font:inherit;color:var(--texte);background:none;border:0;padding:0;cursor:pointer;text-decoration:underline;text-decoration-color:var(--signal);text-underline-offset:4px}
.term .run:hover{color:var(--signal)}
.term .hint{font-size:.78rem;margin-top:.4rem}
@media print{.term-btn{white-space:nowrap;display:none!important}}

/* ---------- Mode présentation ---------- */
.pres-btn{white-space:nowrap;font-family:var(--f-mono);font-weight:600;font-size:.85rem;background:var(--baie);color:var(--texte);border:1px solid var(--cable);padding:.45rem .7rem;cursor:pointer}
.pres-btn:hover{border-color:var(--signal)}
.pres-btn[aria-pressed="true"]{background:var(--signal);color:var(--nuit);border-color:var(--signal)}
.pres-bar{position:fixed;left:50%;bottom:calc(1rem + env(safe-area-inset-bottom,0px));transform:translateX(-50%);z-index:60;display:flex;align-items:center;gap:.8rem;
  background:#0E0C09;border:1px solid var(--signal);padding:.35rem .5rem;font-family:var(--f-mono);font-size:.82rem;box-shadow:0 12px 30px -10px rgba(0,0,0,.8)}
.pres-bar[hidden]{display:none}
.pres-bar button{font:inherit;font-size:1.05rem;width:40px;height:34px;background:var(--baie);color:var(--signal);border:1px solid var(--cable);cursor:pointer}
.pres-bar button:hover:not(:disabled){border-color:var(--signal)}
.pres-bar button:disabled{opacity:.3;cursor:default}
.pres-bar span{white-space:nowrap}
.pres-bar .pres-help{color:var(--gris);font-size:.75rem;padding-right:.3rem}
body.pres-on main{padding-bottom:6rem}
@media (max-width:640px){.pres-bar .pres-help{display:none}}
@media print{.pres-btn,.pres-bar{display:none!important}}
@media (min-width:641px) and (max-width:1000px){.nav{justify-content:flex-start}.nav a{font-size:.82rem;padding:.45rem .32rem}}
@media (max-width:640px){.pres-btn{display:none}.head-actions .term-btn{order:1}.head-actions .burger{order:2}}

/* Boutons icônes (présentation, terminal) */
.icon-btn{display:inline-grid;place-items:center;width:38px;height:38px;padding:0;font-family:var(--f-mono);font-weight:700;font-size:.95rem;line-height:1}
.pres-btn.icon-btn{color:var(--signal)}
.pres-btn.icon-btn[aria-pressed="true"]{color:var(--nuit)}

/* Mise en page large */
.split{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,1fr);gap:2rem 4rem;align-items:start}
.stack{display:grid;gap:1.25rem}
@media (max-width:900px){.split{grid-template-columns:1fr}}
.hero .lead{max-width:none}
.linkish{font:inherit;color:var(--signal);background:none;border:0;padding:0;cursor:pointer;text-decoration:underline;text-underline-offset:3px}
.bloc{grid-template-columns:repeat(auto-fill,minmax(min(100%,340px),1fr))}
/* Téléphones : en-têtes de page plus compacts, terminal d'accueil lisible */
@media (max-width:640px){
  .page-head{padding:2.25rem 0 1.75rem;margin-bottom:2rem}
  .hero{padding:2rem 0 2.5rem;gap:2rem}
  .term{font-size:.78rem;padding:1rem}
  .real summary{padding:1.1rem;gap:.75rem}
  .real .body{padding:0 1.1rem 1.2rem}
}
.brief{margin:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:1rem 1.5rem}
.brief dt{font-size:.8rem;color:var(--gris)}
.brief dd{margin:0;font-weight:600}
/* Bloc « Qui suis-je ? » */
.about{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(0,1fr);border:1px solid var(--cable);background:var(--baie)}
.about-text{padding:2rem 2.25rem;border-left:3px solid var(--signal)}
.about-text p{max-width:62ch}
.about-text p:last-child{margin-bottom:0}
.about-lead{font-family:var(--f-titre);font-size:clamp(1.15rem,1.8vw,1.4rem);font-weight:600;line-height:1.45;color:var(--texte)}
.about-side{padding:2rem 2.25rem;border-left:1px solid var(--cable);background:#19160F}
.about-side h3{font-size:.85rem;text-transform:uppercase;letter-spacing:.12em;color:var(--signal);margin-bottom:1rem}
.about-side .tags{margin:0}
@media (max-width:800px){.about{grid-template-columns:1fr}.about-side{border-left:3px solid var(--cable);border-top:1px solid var(--cable)}.about-text,.about-side{padding:1.5rem}}
/* Mairie : chiffres clés et enjeux */
.stats{margin:0;display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));border:1px solid var(--cable);background:var(--baie)}
.stats > div{padding:1.4rem 1.6rem;border-right:1px solid var(--cable);display:flex;flex-direction:column;gap:.15rem}
.stats > div:last-child{border-right:0}
.stats dt{font-size:.78rem;text-transform:uppercase;letter-spacing:.12em;color:var(--signal)}
.stats dd{margin:0;font-family:var(--f-titre);font-size:clamp(1.4rem,2.2vw,1.9rem);font-weight:700}
.stats span{font-size:.85rem;color:var(--gris)}
@media (max-width:900px){.stats > div{border-right:0;border-bottom:1px solid var(--cable)}.stats > div:last-child{border-bottom:0}}
.issues{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:1rem;counter-reset:i}
.issues li{counter-increment:i;background:var(--baie);border:1px solid var(--cable);padding:1.4rem 1.5rem;position:relative}
.issues li::before{content:"0" counter(i);font-family:var(--f-mono);font-size:.85rem;color:var(--signal);display:block;margin-bottom:.6rem}
.issues h3{font-size:1.05rem;margin-bottom:.4rem}
.issues p{margin:0;color:var(--gris);font-size:.95rem}
.tools{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,210px),1fr));gap:1rem}
.tools h3{font-size:.85rem;text-transform:uppercase;letter-spacing:.1em;color:var(--signal)}
.veille-setup{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:2rem 3rem;align-items:start;margin-top:1.5rem}
.src-h{font-size:.8rem;text-transform:uppercase;letter-spacing:.12em;color:var(--signal);margin:1.2rem 0 .2rem}
.veille-setup > div > .src-h:first-child{margin-top:0}
.veille-setup .sources{margin-top:.5rem}
.feedly{margin:0;border:1px solid var(--cable);background:var(--baie);padding:.75rem}
.feedly img{width:282px;height:auto}
.feedly figcaption{font-size:.8rem;color:var(--gris);margin-top:.5rem;text-align:center}
@media (max-width:800px){.veille-setup{grid-template-columns:1fr}.feedly{justify-self:start}}
.veille-setup .sources{grid-template-columns:repeat(auto-fill,minmax(min(100%,240px),1fr))}
/* Dernières actus (flux RSS) */
.live{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,340px),1fr));gap:.75rem}
.live-item{display:flex;flex-direction:column;gap:.35rem;padding:1rem 1.2rem;background:var(--baie);border:1px solid var(--cable);border-left:3px solid var(--signal);text-decoration:none;color:var(--texte)}
.live-item:hover{background:var(--baie-2);color:var(--texte)}
.live-meta{font-family:var(--f-mono);font-size:.75rem;color:var(--signal)}
.live-title{font-weight:600;line-height:1.4}
.contact-list{margin:0;display:grid;gap:.8rem}
.contact-list dt{font-size:.8rem;color:var(--gris)}
.contact-list dd{margin:0;font-weight:600;word-break:break-all}
/* Logo de la commune dans l'en-tête de la page Mairie */
.page-head .wrap{position:relative}
.logo-tile{margin:0;position:absolute;right:0;bottom:0;background:#fff;padding:1.1rem 1.4rem;border:1px solid var(--cable)}
.logo-tile img{width:207px;height:auto;display:block}
@media (max-width:800px){.logo-tile{position:static;display:inline-block;margin-top:1.25rem;padding:.8rem 1rem}.logo-tile img{width:170px}}
