/* ==========================================================================
   Projets — styles additionnels (n'écrase rien dans style.css)
   ========================================================================== */

.pj-more{ font-size:.8rem; color:var(--cyan-bright); font-family:var(--font-mono); }

/* ---------- Page projet ---------- */
.pj-nav{ display:flex; gap:8px; flex-wrap:wrap; margin:28px 0 8px; }
.pj-section{ margin-top:34px; scroll-margin-top:90px; }
.pj-section > h2{ font-size:1.35rem; margin:0 0 16px; display:flex; align-items:center; gap:10px; }
.pj-section > h2 .tag{ font-family:var(--font-mono); font-size:.7rem; color:var(--copper-bright); letter-spacing:.08em; text-transform:uppercase; }
.pj-text p{ color:var(--silk-dim); line-height:1.75; margin:0 0 14px; }
.pj-text p:last-child{ margin-bottom:0; }

/* Composants */
.pj-comp-toolbar{ display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:12px; margin-bottom:14px; }
.pj-comp-toolbar .pj-total{ font-family:var(--font-mono); font-size:.86rem; color:var(--silk-dim); }
.pj-comp-toolbar .pj-total strong{ color:var(--copper-bright); }
.pj-comp{
  display:grid; grid-template-columns:1fr auto auto auto; gap:14px; align-items:center;
  padding:12px 0; border-bottom:1px solid var(--pcb-line);
}
.pj-comp:last-child{ border-bottom:0; }
.pj-comp-name{ color:var(--silk); font-weight:500; }
.pj-comp-name a{ color:var(--silk); border-bottom:1px dashed var(--cyan-dim); }
.pj-comp-name a:hover{ color:var(--cyan-bright); }
.pj-comp-qty{ font-family:var(--font-mono); color:var(--silver); font-size:.9rem; }
.pj-comp-price{ font-family:var(--font-mono); color:var(--copper-bright); font-size:.9rem; min-width:90px; text-align:right; }
.pj-comp-nolink{ font-size:.76rem; color:var(--silver); }

/* Code */
.pj-code{ border:1px solid var(--pcb-line); border-radius:var(--radius-m); overflow:hidden; margin-bottom:18px; background:var(--pcb-950); }
.pj-code-head{
  display:flex; align-items:center; justify-content:space-between; gap:10px;
  padding:10px 14px; background:var(--pcb-800); border-bottom:1px solid var(--pcb-line);
}
.pj-code-head .fname{ font-family:var(--font-mono); font-size:.84rem; color:var(--silk); }
.pj-code-head .lang{ font-family:var(--font-mono); font-size:.7rem; color:var(--cyan-bright); margin-left:10px; }
.pj-code pre{ margin:0; padding:16px; overflow-x:auto; max-height:520px; }
.pj-code code{ font-family:var(--font-mono); font-size:.84rem; line-height:1.6; color:var(--silk-dim); white-space:pre; }

/* Schémas */
.pj-schemas{ display:grid; grid-template-columns:repeat(2,1fr); gap:20px; }
.pj-schema{ margin:0; border:1px solid var(--pcb-line); border-radius:var(--radius-m); overflow:hidden; background:var(--pcb-900); }
.pj-schema a{ display:block; background:#fff; }
.pj-schema img{ display:block; width:100%; height:auto; }
.pj-schema figcaption{ padding:12px 16px; font-size:.86rem; color:var(--silk-dim); }

/* ---------- Admin ---------- */
.admin-tabs{ display:flex; align-items:center; gap:8px; flex-wrap:wrap; margin-bottom:20px; }
.admin-tabs .spacer{ flex:1; }
.modal.modal-wide{ max-width:780px; }
.field select{ width:100%; min-height:46px; }
.field-check{ display:flex; align-items:center; gap:8px; font-size:.9rem; color:var(--silk-dim); cursor:pointer; margin-bottom:18px; }
.field-check input{ width:16px; height:16px; accent-color:var(--copper-bright); }

.rep-block{ border:1px solid var(--pcb-line); border-radius:var(--radius-m); padding:16px; margin-bottom:20px; background:rgba(7,11,18,.35); }
.rep-block > h4{ margin:0 0 4px; font-size:1rem; }
.rep-block > .hint{ display:block; font-size:.76rem; color:var(--silver); margin-bottom:12px; }
.rep-row{ display:grid; gap:10px; align-items:center; margin-bottom:10px; }
.rep-comp{ grid-template-columns:1.2fr 80px 1.2fr 34px; }
.rep-schema{ grid-template-columns:1.3fr 1fr 34px; }
.rep-code{ grid-template-columns:1fr; padding:12px; border:1px solid var(--pcb-line); border-radius:var(--radius-s); background:var(--pcb-900); }
.rep-code-top{ display:grid; grid-template-columns:1fr 160px 34px; gap:10px; align-items:center; }
.rep-row input, .rep-row select, .rep-row textarea{
  width:100%; background:var(--pcb-900); border:1px solid var(--pcb-line); color:var(--silk);
  border-radius:var(--radius-s); padding:10px 12px; font-family:var(--font-body); font-size:.88rem; min-height:42px;
}
.rep-row textarea{ font-family:var(--font-mono); font-size:.82rem; min-height:160px; resize:vertical; white-space:pre; }
.rep-row input:focus, .rep-row select:focus, .rep-row textarea:focus{ outline:none; border-color:var(--cyan-dim); box-shadow:var(--glow-cyan); }

.status-pill{ font-family:var(--font-mono); font-size:.7rem; padding:3px 9px; border-radius:10px; border:1px solid var(--pcb-line); }
.status-pill.on{ color:var(--ok); }
.status-pill.off{ color:var(--silver); }

@media (max-width:720px){
  .pj-comp{ grid-template-columns:1fr auto; }
  .pj-comp-qty{ justify-self:end; }
  .pj-comp .btn{ grid-column:1 / -1; }
  .pj-schemas{ grid-template-columns:1fr; }
  .rep-comp{ grid-template-columns:1fr 70px 34px; }
  .rep-comp .rc-prod{ grid-column:1 / -1; grid-row:2; }
  .rep-schema{ grid-template-columns:1fr 34px; }
  .rep-schema .rs-caption{ grid-column:1 / -1; grid-row:2; }
  .rep-code-top{ grid-template-columns:1fr 34px; }
  .rep-code-top .rk-lang{ grid-column:1 / -1; grid-row:2; }
}
