/* =========================================================
   La Boîte à Idées — composants spécifiques
   S'appuie sur les tokens de ../../assets/style.css (variables
   --ivory, --gold, --ink, --font-serif, --radius-* etc.)
   ========================================================= */

.lbi-hero{
  padding: 140px 0 56px; text-align:center;
}
.lbi-hero h1{ font-size: clamp(32px,4.4vw,52px); font-weight:600; margin-bottom:16px; }
.lbi-hero p{ font-size:17px; color:var(--ink-soft); max-width:620px; margin:0 auto 28px; line-height:1.7; }

.lbi-filters{ display:flex; gap:8px; flex-wrap:wrap; justify-content:center; margin-bottom:36px; }
.lbi-filters button{
  border:1px solid var(--line); background:#fff; color:var(--ink-soft);
  font-size:13.5px; padding:9px 16px; border-radius:999px; cursor:pointer;
  transition: background .25s, color .25s, border-color .25s;
}
.lbi-filters button.active, .lbi-filters button:hover{
  background:var(--ink); color:#fff; border-color:var(--ink);
}

.lbi-grid{ display:grid; grid-template-columns: repeat(auto-fill, minmax(280px,1fr)); gap:22px; }

.lbi-card{
  display:block; background:#FFFDF9; border:1px solid var(--line); border-left:4px solid var(--line);
  border-radius:var(--radius-lg);
  padding:26px; text-decoration:none; color:inherit; transition: transform .3s var(--ease), box-shadow .3s var(--ease);
}
.lbi-card:hover{ transform:translateY(-4px); box-shadow:var(--shadow-lift); }
.lbi-card[data-status="nouveau"]{ border-left-color:#378ADD; }
.lbi-card[data-status="en_preparation"]{ border-left-color:#BA7517; }
.lbi-card[data-status="lance"]{ border-left-color:#639922; }
.lbi-card[data-status="finalise"]{ border-left-color:#888780; }
.lbi-card .lbi-top{ display:flex; align-items:center; justify-content:space-between; gap:10px; margin-bottom:14px; }
.lbi-zone{ font-size:11px; font-weight:700; letter-spacing:.12em; text-transform:uppercase; color:var(--gold-deep); }
.lbi-card h3{ font-size:19px; font-weight:600; margin-bottom:8px; line-height:1.35; }
.lbi-card p{ font-size:14px; color:var(--ink-mute); line-height:1.6; margin-bottom:18px;
  display:-webkit-box; -webkit-line-clamp:3; -webkit-box-orient:vertical; overflow:hidden; }

.lbi-badge{ font-size:11px; font-weight:700; letter-spacing:.06em; padding:5px 11px; border-radius:999px; white-space:nowrap; }
.lbi-badge.nouveau{ background:rgba(55,138,221,.12); color:#185FA5; }
.lbi-badge.en_preparation{ background:rgba(186,117,23,.14); color:#854F0B; }
.lbi-badge.lance{ background:rgba(99,153,34,.14); color:#3B6D11; }
.lbi-badge.finalise{ background:rgba(90,90,90,.12); color:#5F5E5A; }

.lbi-progress{ height:6px; border-radius:999px; background:var(--parchment); overflow:hidden; margin-bottom:10px; }
.lbi-progress > span{ display:block; height:100%; background:linear-gradient(90deg,var(--gold),var(--gold-light)); border-radius:999px; transition: width .5s var(--ease); }

.lbi-meta{ display:flex; align-items:center; gap:14px; font-size:12.5px; color:var(--ink-mute); flex-wrap:wrap; }
.lbi-meta span{ display:flex; align-items:center; gap:5px; }
.lbi-meta svg{ width:14px; height:14px; flex-shrink:0; }

.lbi-empty{ text-align:center; padding:60px 20px; color:var(--ink-mute); }

/* ---- Formulaire de soumission ---- */
.lbi-form{ max-width:640px; margin:0 auto; }
.lbi-form .field{ margin-bottom:20px; }
.lbi-form label{ display:block; font-size:13.5px; font-weight:600; margin-bottom:7px; color:var(--ink); }
.lbi-form .hint{ font-size:12.5px; color:var(--ink-mute); margin-top:6px; font-weight:400; }
.lbi-form input[type=text], .lbi-form input[type=date], .lbi-form input[type=number],
.lbi-form select, .lbi-form textarea{
  width:100%; padding:12px 14px; border:1px solid var(--line); border-radius:var(--radius-sm);
  font-size:15px; font-family:var(--font-sans); background:#fff; color:var(--ink);
}
.lbi-form textarea{ min-height:120px; resize:vertical; line-height:1.6; }
.lbi-check-row{ display:flex; align-items:flex-start; gap:10px; padding:14px 16px; background:var(--parchment); border-radius:var(--radius-sm); margin-bottom:14px; }
.lbi-check-row input{ margin-top:3px; flex-shrink:0; }
.lbi-check-row label{ font-size:14px; font-weight:400; color:var(--ink-soft); margin:0; }
.lbi-subchecks{ display:grid; grid-template-columns:1fr 1fr; gap:12px; margin:-4px 0 14px; }
.lbi-subchecks[hidden]{ display:none; }
@media (max-width:560px){ .lbi-subchecks{ grid-template-columns:1fr; } }
.lbi-subchecks label{ display:flex; align-items:center; gap:8px; font-size:13.5px; font-weight:500; padding:10px 12px; border:1px solid var(--line); border-radius:var(--radius-sm); cursor:pointer; }
.lbi-subchecks input{ margin:0; }

/* ---- Page projet / fil de discussion ---- */
.lbi-project-head{ display:flex; align-items:flex-start; justify-content:space-between; gap:20px; flex-wrap:wrap; margin-bottom:8px; }
.lbi-project-head h1{ font-size: clamp(26px,3.2vw,38px); font-weight:600; line-height:1.2; margin-bottom:10px; }
.lbi-project-info{ display:grid; grid-template-columns:repeat(auto-fit,minmax(140px,1fr)); gap:16px; background:var(--parchment); border-radius:var(--radius-md); padding:20px 22px; margin:22px 0 30px; }
.lbi-project-info div{ display:flex; flex-direction:column; gap:4px; }
.lbi-project-info b{ font-size:11px; text-transform:uppercase; letter-spacing:.1em; color:var(--gold-deep); }
.lbi-project-info span{ font-size:14.5px; color:var(--ink); }

.lbi-status-select{ display:flex; gap:8px; flex-wrap:wrap; margin-bottom:30px; }
.lbi-status-select button{ font-size:12.5px; font-weight:600; padding:8px 14px; border-radius:999px; border:1px solid var(--line); background:#fff; cursor:pointer; color:var(--ink-mute); }
.lbi-status-select button.active{ background:var(--ink); color:#fff; border-color:var(--ink); }

.lbi-thread{ display:flex; flex-direction:column; gap:16px; margin-bottom:24px; }
.lbi-msg{ display:flex; gap:12px; }
.lbi-msg .avatar{ width:36px; height:36px; border-radius:50%; background:var(--gold); color:#2B1F0C; display:flex; align-items:center; justify-content:center; font-weight:700; font-size:13px; flex-shrink:0; }
.lbi-msg .bubble{ background:#FFFDF9; border:1px solid var(--line); border-radius:var(--radius-md); padding:12px 16px; max-width:min(520px,100%); }
.lbi-msg .who{ font-size:12.5px; font-weight:700; color:var(--gold-deep); margin-bottom:4px; }
.lbi-msg .body{ font-size:14.5px; line-height:1.6; color:var(--ink); white-space:pre-wrap; }
.lbi-msg img.attach{ max-width:260px; width:100%; border-radius:var(--radius-sm); margin-top:8px; display:block; }
.lbi-msg .when{ font-size:11px; color:var(--ink-mute); margin-top:6px; }

.lbi-composer{ border:1px solid var(--line); border-radius:var(--radius-md); padding:14px; background:#fff; }
.lbi-composer textarea{ width:100%; border:none; resize:none; font-size:14.5px; font-family:var(--font-sans); min-height:52px; outline:none; }
.lbi-composer-actions{ display:flex; align-items:center; justify-content:space-between; margin-top:8px; }
.lbi-composer-tools{ display:flex; gap:6px; }
.lbi-composer-tools button{ width:34px; height:34px; border-radius:50%; border:1px solid var(--line); background:#fff; display:flex; align-items:center; justify-content:center; cursor:pointer; color:var(--ink-mute); }
.lbi-composer-tools button:hover{ background:var(--parchment); color:var(--ink); }
.lbi-composer-tools svg{ width:17px; height:17px; }

.lbi-sticker-panel{ display:none; grid-template-columns:repeat(6,1fr); gap:8px; padding:12px; border:1px solid var(--line); border-radius:var(--radius-md); background:#fff; margin-top:8px; }
.lbi-sticker-panel.open{ display:grid; }
.lbi-sticker-panel button{ border:none; background:var(--parchment); border-radius:var(--radius-sm); padding:8px; font-size:22px; cursor:pointer; line-height:1; }
.lbi-sticker-panel button:hover{ background:var(--sand); }

.lbi-gif-panel{ display:none; padding:12px; border:1px solid var(--line); border-radius:var(--radius-md); background:#fff; margin-top:8px; }
.lbi-gif-panel.open{ display:block; }
.lbi-gif-panel input[type=text]{ width:100%; padding:9px 12px; border:1px solid var(--line); border-radius:var(--radius-sm); font-size:13.5px; font-family:var(--font-sans); margin-bottom:10px; }
.lbi-gif-grid{ display:grid; grid-template-columns:repeat(3,1fr); grid-auto-rows:96px; gap:8px; max-height:280px; overflow-y:auto; }
.lbi-gif-grid button{ position:relative; width:100%; height:96px; border:none; background:var(--parchment); border-radius:var(--radius-sm); padding:0; margin:0; cursor:pointer; overflow:hidden; display:block; }
.lbi-gif-grid button:hover{ outline:2px solid var(--gold); }
.lbi-gif-grid img{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; display:block; }
.lbi-gif-loading{ grid-column:1/-1; text-align:center; font-size:13px; color:var(--ink-mute); padding:20px 0; }
.lbi-gif-hint{ font-size:12.5px; color:var(--ink-mute); text-align:center; padding:14px 0 4px; margin:0; }

.lbi-notif-bell{ position:relative; }
.lbi-notif-dot{ position:absolute; top:-2px; right:-2px; width:9px; height:9px; border-radius:50%; background:var(--bordeaux, #7A2E37); border:2px solid #fff; }
