  /* ===== PROJETS — CARDS ===== */
  .proj-filter-bar {
    display: flex; align-items: center; gap: 10px; flex-wrap: wrap !important;
    margin-bottom: 20px !important;
  }
  .proj-filter-btn {
    padding: 6px 14px; border-radius: 99px; font-size: .8rem; font-weight: 600 !important;
    border: 1px solid var(--border); background: var(--bg2); color: var(--text2) !important;
    cursor: pointer; transition: var(--transition) !important;
  }
  .proj-filter-btn:hover { border-color: var(--border2); color: var(--text); }
  .proj-filter-btn.active { background: var(--accent); border-color: var(--accent); color: #fff; }

  .projets-grid {
    display: grid !important;
    grid-template-columns: repeat(auto-fill, minmax(320px, 1fr)) !important;
    gap: 18px !important;
  }

  .proj-card {
    background: var(--bg2); border: 1px solid var(--border) !important;
    border-radius: var(--radius); padding: 20px !important;
    cursor: pointer; transition: var(--transition) !important;
    position: relative; overflow: hidden !important;
  }
  .proj-card:hover { border-color: var(--border2); transform: translateY(-2px); box-shadow: var(--shadow); }
  .proj-card::before {
    content: ''; position: absolute; top: 0; left: 0; right: 0; height: 3px !important;
    border-radius: var(--radius) var(--radius) 0 0 !important;
  }
  .proj-card.en_cours::before  { background: linear-gradient(90deg, var(--accent), var(--accent2)); }
  .proj-card.termine::before   { background: linear-gradient(90deg, var(--green), var(--green2)); }
  .proj-card.archive::before   { background: linear-gradient(90deg, var(--text3), #3a4468); }

  .proj-card-head { display: flex; justify-content: space-between; align-items: flex-start; margin-bottom: 10px; gap: 10px; }
  .proj-card-nom { font-weight: 600; font-size: 1rem; color: var(--text); line-height: 1.3; }
  .proj-card-period { font-size: .74rem; color: var(--text3); margin-top: 2px; }

  .proj-stat-row { display: flex; gap: 14px; margin: 12px 0; flex-wrap: wrap; }
  .proj-stat { flex: 1; min-width: 80px; }
  .proj-stat-label { font-size: .68rem; text-transform: uppercase; letter-spacing: .06em; font-weight: 700; color: var(--text3); margin-bottom: 3px; }
  .proj-stat-val { font-family: 'DM Mono', monospace; font-size: .92rem; font-weight: 500; }

  .proj-progress-label { display: flex; justify-content: space-between; font-size: .73rem; color: var(--text3); margin-bottom: 4px; }
  .proj-card-actions { display: flex; gap: 8px; margin-top: 14px; border-top: 1px solid var(--border); padding-top: 12px; }

  /* ===== PROJETS — DETAIL VIEW ===== */
  #projetDetailView { display: none; }
  .proj-detail-back { display: inline-flex; align-items: center; gap: 6px; font-size: .85rem; color: var(--text2); cursor: pointer; margin-bottom: 20px; transition: var(--transition); }
  .proj-detail-back:hover { color: var(--accent); }

  .proj-detail-header {
    background: var(--bg2); border: 1px solid var(--border); border-radius: var(--radius) !important;
    padding: 24px; margin-bottom: 20px; position: relative; overflow: hidden !important;
  }
  .proj-detail-header::before {
    content: ''; position: absolute; top: 0; left: 0; right: 0; height: 4px !important;
    border-radius: var(--radius) var(--radius) 0 0 !important;
    background: linear-gradient(90deg, var(--accent), var(--purple)) !important;
  }
  .proj-detail-title { font-family: 'Fraunces', serif; font-size: 1.6rem; font-weight: 600; margin-bottom: 4px; }
  .proj-detail-desc { color: var(--text3); font-size: .88rem; margin-top: 4px; }
  .proj-detail-meta { display: flex; gap: 20px; flex-wrap: wrap; margin-top: 14px; }
  .proj-detail-meta-item { font-size: .82rem; color: var(--text2); }
  .proj-detail-meta-item strong { color: var(--text); }

  .proj-kpi-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(160px, 1fr)); gap: 14px; margin-bottom: 20px; }
  .proj-kpi {
    background: var(--bg2); border: 1px solid var(--border); border-radius: var(--radius) !important;
    padding: 16px; text-align: center !important;
  }
  .proj-kpi-label { font-size: .68rem; text-transform: uppercase; letter-spacing: .08em; font-weight: 700; color: var(--text3); margin-bottom: 6px; }
  .proj-kpi-val { font-family: 'DM Mono', monospace; font-size: 1.3rem; font-weight: 500; }

  .proj-section-title { font-size: .75rem; letter-spacing: .1em; text-transform: uppercase; font-weight: 700; color: var(--text3); margin-bottom: 14px; border-bottom: 1px solid var(--border); padding-bottom: 10px; }

  /* Budget lines editor (in modal) */
  .budget-line-row { display: flex; gap: 8px; align-items: center; margin-bottom: 8px; }
  .budget-line-row input { flex: 1; }
  .budget-line-row input.montant-input { max-width: 110px; flex: none; }
  .budget-lines-list { margin: 12px 0; }

  /* ===== STOCK PAGE ===== */
.stock-grid {
  display: grid !important;
  grid-template-columns: repeat(auto-fill, minmax(280px, 1fr)) !important;
  gap: 16px !important;
  margin-bottom: 24px !important;
}
.stock-card {
  background: var(--bg2); border: 1px solid var(--border) !important;
  border-radius: var(--radius); padding: 18px !important;
  transition: var(--transition); position: relative; overflow: hidden !important;
}
.stock-card::before {
  content:''; position:absolute; top:0; left:0; right:0; height:3px !important;
  border-radius: var(--radius) var(--radius) 0 0 !important;
  background: linear-gradient(90deg, var(--purple), #7c3aed) !important;
}
.stock-card:hover { border-color: var(--border2); transform: translateY(-2px); box-shadow: var(--shadow); }
.stock-card-name { font-weight: 600; font-size: 1rem; color: var(--text); margin-bottom: 4px; }
.stock-card-desc { font-size: .78rem; color: var(--text3); margin-bottom: 14px; }
.stock-card-stats { display: flex; justify-content: space-between; align-items: flex-end; }
.stock-stat { text-align: center; }
.stock-stat-label { font-size: .64rem; text-transform: uppercase; letter-spacing: .08em; font-weight: 700; color: var(--text3); margin-bottom: 3px; }
.stock-stat-val { font-family: 'DM Mono', monospace; font-size: 1.05rem; font-weight: 600; }
.stock-card-actions { display: flex; gap: 6px; margin-top: 14px; padding-top: 12px; border-top: 1px solid var(--border); }
.stock-low { color: var(--red); }
.stock-ok  { color: var(--green); }

  /* ===== DEVIS & FACTURES ===== */
  #devisEditorView { display: none; }
  .dv-back { display: inline-flex; align-items: center; gap: 6px; font-size: .85rem; color: var(--text2); cursor: pointer; margin-bottom: 20px; transition: var(--transition); }
  .dv-back:hover { color: var(--accent); }

  .dv-editor-grid {
    display: grid !important;
    grid-template-columns: 1fr 320px !important;
    gap: 20px !important;
    align-items: flex-start !important;
  }
  @media (max-width: 1100px) { .dv-editor-grid { grid-template-columns: 1fr; } }

  .dv-section-title {
    font-size: .72rem; letter-spacing: .1em; text-transform: uppercase !important;
    font-weight: 700; color: var(--text3); margin-bottom: 14px !important;
    padding-bottom: 10px; border-bottom: 1px solid var(--border) !important;
  }

  /* Lignes de détail */
  .dv-ligne-row {
    display: grid !important;
    grid-template-columns: 1fr 70px 100px 80px 90px 36px !important;
    gap: 8px !important;
    align-items: center !important;
    margin-bottom: 8px !important;
  }
  .dv-ligne-row input, .dv-ligne-row select {
    background: var(--bg3); border: 1px solid var(--border) !important;
    border-radius: var(--radius-sm); color: var(--text) !important;
    font-family: inherit; font-size: .82rem; padding: 6px 8px; outline: none !important;
    width: 100%; transition: var(--transition) !important;
  }
  .dv-ligne-row input:focus, .dv-ligne-row select:focus { border-color: var(--accent); }
  .dv-ligne-head {
    display: grid !important;
    grid-template-columns: 1fr 70px 100px 80px 90px 36px !important;
    gap: 8px; margin-bottom: 6px !important;
  }
  .dv-ligne-head span {
    font-size: .68rem; text-transform: uppercase; letter-spacing: .08em !important;
    font-weight: 700; color: var(--text3) !important;
  }
  .dv-ligne-total {
    font-family: 'DM Mono', monospace; font-size: .82rem !important;
    color: var(--text); font-weight: 500; text-align: right !important;
  }

  /* Totaux */
  .dv-totals {
    background: var(--bg3); border: 1px solid var(--border) !important;
    border-radius: var(--radius-sm); padding: 16px !important;
    margin-top: 16px !important;
  }
  .dv-total-row {
    display: flex; justify-content: space-between; align-items: center !important;
    padding: 5px 0; font-size: .85rem; color: var(--text2) !important;
  }
  .dv-total-row.total-ttc {
    border-top: 1px solid var(--border); margin-top: 8px; padding-top: 12px !important;
    font-weight: 700; font-size: 1rem; color: var(--text) !important;
  }
  .dv-total-row .dv-total-val {
    font-family: 'DM Mono', monospace; font-size: .88rem; font-weight: 600 !important;
  }
  .dv-total-row.total-ttc .dv-total-val { font-size: 1.1rem; color: var(--accent); }

  /* Statut badge colors in list */
  .badge-brouillon { background: var(--bg3); color: var(--text3); border: 1px solid var(--border); }
  .badge-envoye    { background: rgba(79,124,255,.12); color: var(--accent); border: 1px solid rgba(79,124,255,.25); }
  .badge-accepte   { background: var(--green-bg); color: var(--green); border: 1px solid var(--green2); }
  .badge-paye      { background: var(--green-bg); color: #4ade80; border: 1px solid #166534; }
  .badge-refuse    { background: var(--red-bg); color: var(--red); border: 1px solid var(--red2); }
  .badge-annule    { background: var(--amber-bg); color: var(--amber); border: 1px solid #7a5800; }

  .dv-num { font-family: 'DM Mono', monospace; font-size: .8rem; color: var(--accent); font-weight: 600; }
  .dv-client-name { font-weight: 500; color: var(--text); }
  .dv-client-email { font-size: .75rem; color: var(--text3); margin-top: 1px; }

  /* Devis stats banner */
  .dv-stats { display: grid; grid-template-columns: repeat(auto-fit, minmax(140px, 1fr)); gap: 12px; margin-bottom: 20px; }
  .dv-stat {
    background: var(--bg2); border: 1px solid var(--border); border-radius: var(--radius) !important;
    padding: 16px; text-align: center; transition: var(--transition) !important;
  }
  .dv-stat:hover { border-color: var(--border2); }
  .dv-stat-label { font-size: .68rem; text-transform: uppercase; letter-spacing: .08em; font-weight: 700; color: var(--text3); margin-bottom: 5px; }
  .dv-stat-val { font-family: 'DM Mono', monospace; font-size: 1.2rem; font-weight: 500; color: var(--text); }

  /* Quick action buttons group */
  .btn-group { display: flex; gap: 8px; flex-wrap: wrap; }

  /* ===== MEMBRES & ADHÉSIONS ===== */
  .membres-tabs {
    display: flex; gap: 4px !important;
    background: var(--bg2); border: 1px solid var(--border) !important;
    border-radius: var(--radius); padding: 5px !important;
    margin-bottom: 20px; width: fit-content !important;
  }
  .membres-tab-btn {
    padding: 7px 18px; border-radius: var(--radius-sm) !important;
    font-size: .83rem; font-weight: 600; color: var(--text2) !important;
    background: transparent; border: none; cursor: pointer !important;
    transition: var(--transition) !important;
  }
  .membres-tab-btn.active { background: var(--accent); color: #fff; }
  .membres-tab-btn:not(.active):hover { background: var(--bg3); color: var(--text); }

  .membres-tab-panel { display: none; }
  .membres-tab-panel.active { display: block; animation: fadeIn .18s ease; }

  .renew-card {
    background: var(--bg2); border: 1px solid var(--border) !important;
    border-radius: var(--radius); padding: 14px 18px !important;
    display: flex; align-items: center; justify-content: space-between !important;
    gap: 14px; margin-bottom: 10px; transition: var(--transition) !important;
  }
  .renew-card:hover { border-color: var(--border2); }
  .renew-card-info .renew-name { font-weight: 600; color: var(--text); font-size: .9rem; }
  .renew-card-info .renew-meta { font-size: .75rem; color: var(--text3); margin-top: 2px; }
  .cotis-bar-wrap { flex: 1; max-width: 240px; }
  .cotis-bar-label { display: flex; justify-content: space-between; font-size: .72rem; color: var(--text3); margin-bottom: 4px; }

  /* ===== BILAN & RÉSULTAT ===== */
  .compta-grid {
    display: grid !important;
    grid-template-columns: 1fr 1fr !important;
    gap: 20px !important;
    margin-bottom: 20px !important;
  }
  @media (max-width: 900px) { .compta-grid { grid-template-columns: 1fr; } }

  .compta-block {
    background: var(--bg2) !important;
    border: 1px solid var(--border) !important;
    border-radius: var(--radius) !important;
    overflow: hidden !important;
  }
  .compta-block-header {
    display: flex; align-items: center; justify-content: space-between !important;
    padding: 14px 18px !important;
    border-bottom: 1px solid var(--border) !important;
  }
  .compta-block-title {
    font-size: .72rem; letter-spacing: .1em; text-transform: uppercase !important;
    font-weight: 700; color: var(--text3) !important;
  }
  .compta-block-total {
    font-family: 'DM Mono', monospace; font-size: .95rem; font-weight: 600 !important;
  }
  .compta-row {
    display: flex; align-items: center; justify-content: space-between !important;
    padding: 9px 18px !important;
    border-bottom: 1px solid rgba(42,49,80,.4) !important;
    font-size: .85rem !important;
  }
  .compta-row:last-child { border-bottom: none; }
  .compta-row .cr-label { color: var(--text2); }
  .compta-row .cr-val { font-family: 'DM Mono', monospace; font-size: .82rem; font-weight: 500; }
  .compta-row.subtotal {
    background: rgba(255,255,255,.02) !important;
    font-weight: 600 !important;
  }
  .compta-row.subtotal .cr-label { color: var(--text); }

  .resultat-banner {
    border-radius: var(--radius) !important;
    padding: 22px 28px !important;
    display: flex; align-items: center; justify-content: space-between !important;
    margin-bottom: 24px; flex-wrap: wrap; gap: 14px !important;
    border: 1px solid !important;
  }
  .resultat-banner.positive { background: var(--green-bg); border-color: var(--green2); }
  .resultat-banner.negative { background: var(--red-bg); border-color: var(--red2); }
  .resultat-banner.zero { background: var(--bg2); border-color: var(--border2); }
  .rb-label { font-size: .73rem; text-transform: uppercase; letter-spacing: .1em; font-weight: 700; opacity: .7; }
  .rb-value { font-family: 'DM Mono', monospace; font-size: 2rem; font-weight: 600; line-height: 1; margin-top: 4px; }
  .rb-sub { font-size: .78rem; margin-top: 6px; opacity: .7; }

  .bilan-check {
    background: var(--bg2); border: 1px solid var(--border) !important;
    border-radius: var(--radius); padding: 14px 18px !important;
    display: flex; align-items: center; gap: 12px !important;
    margin-top: 16px; font-size: .85rem !important;
  }
  .bilan-check-icon { font-size: 1.4rem; }

  /* Logo preview */
  .logo-preview {
    width: 120px; height: 80px !important;
    border: 2px dashed var(--border2) !important;
    border-radius: var(--radius-sm) !important;
    display: flex; align-items: center; justify-content: center !important;
    overflow: hidden; cursor: pointer; transition: var(--transition) !important;
  }
  .logo-preview:hover { border-color: var(--accent); }
  .logo-preview img { max-width: 100%; max-height: 100%; object-fit: contain; }
  .logo-preview .logo-placeholder { font-size: .75rem; color: var(--text3); text-align: center; padding: 8px; }

  /* Print styles for bilan/resultat */
  /* ===== BILAN & RÉSULTAT ===== */
  .compta-grid {
    display: grid !important;
    grid-template-columns: 1fr 1fr !important;
    gap: 20px !important;
    margin-bottom: 20px !important;
  }
  @media (max-width: 900px) { .compta-grid { grid-template-columns: 1fr; } }

  .compta-block {
    background: var(--bg2) !important;
    border: 1px solid var(--border) !important;
    border-radius: var(--radius) !important;
    overflow: hidden !important;
  }
  .compta-block-header {
    display: flex; align-items: center; justify-content: space-between !important;
    padding: 14px 18px !important;
    border-bottom: 1px solid var(--border) !important;
  }
  .compta-block-title {
    font-size: .72rem; letter-spacing: .1em; text-transform: uppercase !important;
    font-weight: 700; color: var(--text3) !important;
  }
  .compta-block-total {
    font-family: 'DM Mono', monospace; font-size: .95rem; font-weight: 600 !important;
  }
  .compta-row {
    display: flex; align-items: center; justify-content: space-between !important;
    padding: 9px 18px !important;
    border-bottom: 1px solid rgba(42,49,80,.4) !important;
    font-size: .85rem !important;
  }
  .compta-row:last-child { border-bottom: none; }
  .compta-row .cr-label { color: var(--text2); }
  .compta-row .cr-val { font-family: 'DM Mono', monospace; font-size: .82rem; font-weight: 500; }
  .compta-row.subtotal {
    background: rgba(255,255,255,.02) !important;
    font-weight: 600 !important;
  }
  .compta-row.subtotal .cr-label { color: var(--text); }

  .resultat-banner {
    border-radius: var(--radius) !important;
    padding: 22px 28px !important;
    display: flex; align-items: center; justify-content: space-between !important;
    margin-bottom: 24px; flex-wrap: wrap; gap: 14px !important;
    border: 1px solid !important;
  }
  .resultat-banner.positive { background: var(--green-bg); border-color: var(--green2); }
  .resultat-banner.negative { background: var(--red-bg); border-color: var(--red2); }
  .resultat-banner.zero { background: var(--bg2); border-color: var(--border2); }
  .rb-label { font-size: .73rem; text-transform: uppercase; letter-spacing: .1em; font-weight: 700; opacity: .7; }
  .rb-value { font-family: 'DM Mono', monospace; font-size: 2rem; font-weight: 600; line-height: 1; margin-top: 4px; }
  .rb-sub { font-size: .78rem; margin-top: 6px; opacity: .7; }

  .bilan-check {
    background: var(--bg2); border: 1px solid var(--border) !important;
    border-radius: var(--radius); padding: 14px 18px !important;
    display: flex; align-items: center; gap: 12px !important;
    margin-top: 16px; font-size: .85rem !important;
  }
  .bilan-check-icon { font-size: 1.4rem; }

  /* Logo preview */
  .logo-preview {
    width: 120px; height: 80px !important;
    border: 2px dashed var(--border2) !important;
    border-radius: var(--radius-sm) !important;
    display: flex; align-items: center; justify-content: center !important;
    overflow: hidden; cursor: pointer; transition: var(--transition) !important;
  }
  .logo-preview:hover { border-color: var(--accent); }
  .logo-preview img { max-width: 100%; max-height: 100%; object-fit: contain; }
  .logo-preview .logo-placeholder { font-size: .75rem; color: var(--text3); text-align: center; padding: 8px; }

  /* Print styles for bilan/resultat */