/* ══════════════════ VEILLE ══════════════════ */
.veille-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(270px,1fr));gap:.9rem}
.vc{
  background:var(--bg2);border:1px solid var(--border);
  border-radius:var(--r-lg);padding:1.2rem;
  transition:all .2s;
}
.vc:hover{border-color:var(--border-hi);transform:translateY(-2px);box-shadow:var(--card-shadow)}
.vc-type{font-family:var(--mono);font-size:.6rem;color:var(--accent);text-transform:uppercase;letter-spacing:1px;margin-bottom:.5rem}
.vc-n{font-family:var(--display);font-size:.9rem;font-weight:800;color:var(--white);margin-bottom:.4rem}
.vc-d{font-size:.78rem;color:var(--text);line-height:1.7}

/* ══════════════════ CONTACT ══════════════════ */
.contact-wrap{max-width:600px}
.contact-sub{font-size:.88rem;color:var(--muted);margin-bottom:1.75rem;line-height:1.7}
.c-links{display:flex;flex-wrap:wrap;gap:.5rem}
.cl{
  display:flex;align-items:center;gap:.45rem;
  padding:.58rem 1rem;background:var(--bg2);
  border:1px solid var(--border);border-radius:var(--r);
  font-size:.78rem;font-weight:500;color:var(--text);
  transition:all .2s;
}
.cl:hover{border-color:var(--border-hi);color:var(--white);transform:translateY(-2px);box-shadow:var(--card-shadow)}

/* ══════════════════ FLIP CARD ══════════════════ */
.flip-card{width:100%}
.flip-front,.flip-back{
  border-radius:var(--r-lg);border:1px solid var(--border);
  background:var(--bg2);padding:2.2rem;
  display:flex;flex-direction:column;gap:.8rem;
  overflow:hidden;transition:border-color .2s;position:relative;
}
.flip-front::before{content:"";position:absolute;top:0;left:0;right:0;height:2px;background:linear-gradient(90deg,var(--accent3),var(--accent),transparent)}
.flip-back{background:var(--bg3);border-color:var(--border-hi);display:none}
.flip-card.flipped .flip-front{display:none}
.flip-card.flipped .flip-back{display:flex}
.flip-toggle{
  display:inline-flex;align-items:center;gap:.5rem;
  font-family:var(--mono);font-size:.62rem;color:var(--accent);
  background:var(--glow2);border:1px solid var(--border-hi);
  border-radius:7px;padding:.32rem .8rem;cursor:pointer;
  transition:.2s;align-self:flex-start;
}
.flip-toggle:hover{background:var(--glow);transform:translateY(-1px)}
.schema-img-wrap{
  flex:1;display:flex;align-items:center;justify-content:center;
  border-radius:var(--r);overflow:hidden;
  background:var(--glow2);border:1px solid var(--border);min-height:260px;
}
.schema-img-wrap img{width:100%;height:100%;object-fit:contain;border-radius:var(--r);display:block}
.schema-placeholder{
  flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;
  border:1px dashed var(--border-hi);border-radius:var(--r);
  background:var(--glow2);gap:.8rem;min-height:260px;
}
.schema-placeholder .sp-ico{font-size:2rem;opacity:.35}
.schema-placeholder .sp-lbl{font-family:var(--mono);font-size:.62rem;color:var(--muted);text-align:center;line-height:1.7;opacity:.6}

/* ══ TIMELINE ══ */
.timeline{position:relative;padding-left:1.5rem}
.timeline::before{content:"";position:absolute;left:.35rem;top:.5rem;bottom:.5rem;width:1px;background:linear-gradient(var(--accent3),var(--accent),transparent)}
.tl-item{position:relative;padding-bottom:1.4rem;display:flex;gap:1rem}
.tl-item:last-child{padding-bottom:0}
.tl-dot{width:10px;height:10px;border-radius:50%;background:var(--bg);border:2px solid var(--accent);flex-shrink:0;margin-top:.3rem;position:absolute;left:-1.215rem}
.tl-done .tl-dot{background:var(--accent);box-shadow:0 0 10px var(--glow)}
.tl-content{flex:1}
.tl-week{font-family:var(--mono);font-size:.58rem;color:var(--accent);text-transform:uppercase;letter-spacing:1px;margin-bottom:.2rem}
.tl-title{font-family:var(--display);font-size:.86rem;font-weight:800;color:var(--white);margin-bottom:.3rem}
.tl-desc{font-size:.74rem;color:var(--muted);line-height:1.7}

/* ══ COMP BADGES ══ */
.comp-badge{
  display:inline-flex;align-items:center;gap:.25rem;
  font-family:var(--mono);font-size:.58rem;font-weight:700;
  background:var(--glow2);border:1px solid var(--border-hi);
  border-radius:4px;padding:.12rem .48rem;color:var(--accent);
  cursor:pointer;transition:.2s;
}
.comp-badge:hover{background:var(--glow);transform:translateY(-1px)}
.comp-badge.green{background:rgba(52,211,153,.07);border-color:rgba(52,211,153,.22);color:var(--green)}
.comp-badge.purple{background:rgba(192,132,252,.07);border-color:rgba(192,132,252,.22);color:var(--purple)}
.comp-badges-row{display:flex;flex-wrap:wrap;gap:.3rem;margin-top:.5rem}
.comp-tooltip-wrap{position:relative;display:inline-flex}
.comp-tooltip{
  position:absolute;bottom:calc(100% + 7px);left:50%;transform:translateX(-50%);
  background:var(--bg4);border:1px solid var(--border-hi);
  border-radius:var(--r);padding:.55rem .8rem;
  font-size:.68rem;color:var(--text);white-space:nowrap;
  pointer-events:none;opacity:0;transition:opacity .15s;
  z-index:100;font-family:var(--sans);line-height:1.5;
  box-shadow:0 10px 28px rgba(0,0,0,.35);
}
.comp-tooltip strong{color:var(--white)}
.comp-tooltip-wrap:hover .comp-tooltip{opacity:1}