/**
 * carnet.php — Carnet d'échange
 */
body.page-carnet {
    --green: #2d7a3a;
    --green2: #4a6741;
    --gold: #d4af37;
    --amber: #b45309;
    --blue: #1f5fa6;
    --purple: #8e44ad;
    --dark: #2c3e50;
    --muted: #7f8c8d;
    --white: #fff;
    --beige: #f5f2e8;
    --bg: #eff7ee;
}

body.page-carnet,
body.page-carnet *,
body.page-carnet *::before,
body.page-carnet *::after {
    box-sizing: border-box;
}

body.page-carnet {
    margin: 0;
    font-family: 'Inter', sans-serif;
    background: linear-gradient(160deg, var(--beige) 0%, #e8f0e8 100%);
    min-height: 100vh;
    padding-top: 80px;
    color: var(--dark);
}

body.page-carnet .main { max-width: 1140px; margin: 0 auto; padding: 2rem 1.25rem 3rem; }

/* Mode embed (iframe / lecteur) : pas de nav */
body.page-carnet.page-carnet-embed {
    padding-top: 1rem;
}

body.page-carnet.page-carnet-embed .main {
    padding-top: 1rem;
}

/* ── Hero ── */
body.page-carnet .hero { text-align:center; margin-bottom:2rem; }
body.page-carnet .hero h1 { font-family:'Playfair Display',serif; font-size:2.3rem; color:var(--green); margin-bottom:.4rem; }
body.page-carnet .hero h1 .carnet-icon-gold { color: var(--gold); }
body.page-carnet .legal-note .carnet-icon-gold { color: var(--gold); }
body.page-carnet .hero-sub { color:var(--muted); font-size:.95rem; max-width:640px; margin:0 auto .9rem; }
body.page-carnet .monnaies-bar { display:flex; flex-wrap:wrap; justify-content:center; gap:.5rem; margin-bottom:1rem; }
body.page-carnet .monnaie-chip { display:inline-flex; align-items:center; gap:.3rem; padding:.3rem .75rem; border-radius:999px; font-size:.75rem; font-weight:700; border:1.5px solid; cursor:default; }
body.page-carnet .legal-note { max-width:660px; margin:.5rem auto 0; font-size:.75rem; color:var(--muted); background:rgba(255,255,255,.7); border:1px solid #e0e8e0; border-radius:8px; padding:.55rem .9rem; }

/* ── Boutons pub ── */
body.page-carnet .pub-actions { display:flex; justify-content:center; gap:.75rem; margin-bottom:2rem; flex-wrap:wrap; }
body.page-carnet .btn-pub { display:inline-flex; align-items:center; gap:.4rem; padding:.65rem 1.4rem; border-radius:999px; font-weight:700; font-size:.9rem; cursor:pointer; border:none; text-decoration:none; transition:opacity .15s; }
body.page-carnet .btn-pub:hover { opacity:.85; }
body.page-carnet .btn-offre   { background:var(--green); color:#fff; }
body.page-carnet .btn-demande { background:var(--amber); color:#fff; }
body.page-carnet .btn-ententes { background:transparent; border:2px solid var(--green); color:var(--green); }

/* ── Flash ── */
body.page-carnet .flash { padding:.9rem 1.2rem; border-radius:10px; margin-bottom:1.5rem; font-size:.88rem; font-weight:500; }
body.page-carnet .flash.success { background:#d4edda; border:1px solid #c3e6cb; color:#155724; }
body.page-carnet .flash.error   { background:#f8d7da; border:1px solid #f5c6cb; color:#721c24; }

/* ── Filtres ── */
body.page-carnet .filters-bar { background:var(--white); border-radius:12px; padding:1rem 1.25rem; margin-bottom:1.5rem; box-shadow:0 3px 12px rgba(0,0,0,.05); display:flex; flex-wrap:wrap; gap:.65rem; align-items:center; }
body.page-carnet .filters-bar form { display:flex; flex-wrap:wrap; gap:.5rem; align-items:center; width:100%; }
body.page-carnet .filter-group { display:flex; align-items:center; gap:.3rem; }
body.page-carnet .filter-group label { font-size:.75rem; font-weight:600; color:var(--muted); }
body.page-carnet .filter-select { padding:.35rem .65rem; border:1.5px solid #dde; border-radius:7px; font-size:.8rem; background:#fff; cursor:pointer; }
body.page-carnet .filter-select:focus { outline:none; border-color:var(--green); }
body.page-carnet .search-input { flex:1; min-width:160px; padding:.38rem .75rem; border:1.5px solid #dde; border-radius:7px; font-size:.82rem; }
body.page-carnet .search-input:focus { outline:none; border-color:var(--green); }
body.page-carnet .btn-filter { padding:.38rem .85rem; background:var(--green); color:#fff; border:none; border-radius:7px; font-size:.8rem; font-weight:600; cursor:pointer; }
body.page-carnet .btn-reset  { padding:.38rem .75rem; background:#f0f0f0; color:var(--dark); border:none; border-radius:7px; font-size:.8rem; cursor:pointer; text-decoration:none; }
body.page-carnet .results-count { margin-left:auto; font-size:.78rem; color:var(--muted); }

/* ── Grille annonces ── */
body.page-carnet .cards-grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(320px,1fr)); gap:1.25rem; }
body.page-carnet .card-item { background:var(--white); border-radius:14px; box-shadow:0 4px 16px rgba(0,0,0,.06); overflow:hidden; display:flex; flex-direction:column; transition:transform .15s,box-shadow .15s; }
body.page-carnet .card-item:hover { transform:translateY(-2px); box-shadow:0 8px 28px rgba(0,0,0,.1); }

body.page-carnet .card-top { padding:1.1rem 1.25rem .75rem; flex:1; }
body.page-carnet .card-badges { display:flex; gap:.4rem; flex-wrap:wrap; margin-bottom:.65rem; }
body.page-carnet .type-badge { font-size:.65rem; font-weight:800; padding:.2rem .55rem; border-radius:999px; letter-spacing:.04em; }
body.page-carnet .categ-badge { font-size:.65rem; font-weight:600; padding:.2rem .55rem; border-radius:999px; background:#f0f0f0; color:var(--dark); display:flex; align-items:center; gap:.25rem; }
body.page-carnet .card-title { font-size:.97rem; font-weight:700; color:var(--dark); margin-bottom:.4rem; line-height:1.35; }
body.page-carnet .card-desc { font-size:.8rem; color:#555; line-height:1.5; }
body.page-carnet .card-meta { padding:.7rem 1.25rem; border-top:1px solid #f5f5f5; display:flex; align-items:center; gap:.75rem; flex-wrap:wrap; }
body.page-carnet .monnaie-tag { display:inline-flex; align-items:center; gap:.3rem; font-size:.78rem; font-weight:700; padding:.2rem .6rem; border-radius:999px; }
body.page-carnet .valeur-txt { font-size:.8rem; color:var(--green); font-weight:700; }
body.page-carnet .author-txt { font-size:.75rem; color:var(--muted); margin-left:auto; display:flex; align-items:center; gap:.25rem; }
body.page-carnet .card-foot {
    padding: .65rem 1.25rem;
    display: flex;
    gap: .5rem;
    flex-wrap: wrap;
}
body.page-carnet .btn-detail { display:block; text-align:center; padding:.5rem; border:1.5px solid var(--green); border-radius:8px; color:var(--green); font-size:.82rem; font-weight:600; text-decoration:none; transition:background .15s,color .15s; }
body.page-carnet .btn-detail:hover { background:var(--green); color:#fff; }

body.page-carnet .btn-detail-lecteur {
    border-color: var(--purple);
    color: var(--purple);
}

body.page-carnet .btn-detail-lecteur:hover {
    background: var(--purple);
    color: #fff;
}

/* ── Statut ouvert/en_cours ── */
body.page-carnet .statut-pill { font-size:.62rem; font-weight:700; padding:.1rem .45rem; border-radius:999px; }
body.page-carnet .statut-ouvert   { background:#d4edda; color:#155724; }
body.page-carnet .statut-en_cours { background:#fff3cd; color:#856404; }

/* ── Table taux ── */
body.page-carnet .taux-section { background:var(--white); border-radius:14px; padding:1.5rem; margin-top:2.5rem; box-shadow:0 4px 16px rgba(0,0,0,.06); }
body.page-carnet .taux-header { display:flex; align-items:center; gap:.5rem; margin-bottom:.75rem; }
body.page-carnet .taux-header h2 { font-size:1rem; font-weight:700; color:var(--green); }
body.page-carnet .taux-legal { font-size:.75rem; color:var(--muted); background:#FFF9ED; border:1px solid rgba(212,175,55,.3); border-radius:7px; padding:.5rem .75rem; margin-bottom:.85rem; }
body.page-carnet .taux-table { width:100%; border-collapse:collapse; font-size:.82rem; }
body.page-carnet .taux-table th { background:#f8fbf8; color:var(--green); padding:.45rem .75rem; text-align:left; font-size:.72rem; text-transform:uppercase; }
body.page-carnet .taux-table td { padding:.45rem .75rem; border-bottom:1px solid #f0f0f0; }
body.page-carnet .taux-table tr:last-child td { border-bottom:none; }

/* ── Empty state ── */
body.page-carnet .empty-state { text-align:center; padding:3rem; color:var(--muted); grid-column:1/-1; }
body.page-carnet .empty-state i { font-size:2.5rem; opacity:.25; display:block; margin-bottom:.75rem; }

/* ── Modals ── */
body.page-carnet .modal-overlay { display:none; position:fixed; inset:0; background:rgba(0,0,0,.55); z-index:1000; align-items:center; justify-content:center; padding:1rem; }
body.page-carnet .modal-overlay.open { display:flex; }
body.page-carnet .modal { background:var(--white); border-radius:18px; padding:1.75rem 2rem; max-width:560px; width:100%; max-height:90vh; overflow-y:auto; box-shadow:0 24px 64px rgba(0,0,0,.22); }
body.page-carnet .modal-head { display:flex; align-items:flex-start; justify-content:space-between; margin-bottom:1.25rem; }
body.page-carnet .modal-head h3 { font-family:'Playfair Display',serif; font-size:1.2rem; color:var(--green); }
body.page-carnet .modal-close { background:none; border:none; font-size:1.3rem; cursor:pointer; color:var(--muted); line-height:1; padding:0 .1rem; }
body.page-carnet .form-group { margin-bottom:.9rem; }
body.page-carnet .form-label { font-size:.8rem; font-weight:600; color:var(--dark); display:block; margin-bottom:.3rem; }
body.page-carnet .form-label .req { color:#c0392b; }
body.page-carnet .form-control { width:100%; padding:.6rem .85rem; border:1.5px solid #dde; border-radius:8px; font-size:.88rem; font-family:inherit; }
body.page-carnet .form-control:focus { outline:none; border-color:var(--green); }
body.page-carnet textarea.form-control { min-height:80px; resize:vertical; }
body.page-carnet .form-row { display:grid; grid-template-columns:1fr 1fr; gap:.65rem; }
body.page-carnet .form-check { display:flex; align-items:flex-start; gap:.5rem; padding:.6rem .75rem; background:#f8fbf8; border-radius:8px; font-size:.82rem; cursor:pointer; }
body.page-carnet .form-check input { margin-top:.15rem; accent-color:var(--green); width:15px; height:15px; flex-shrink:0; }
body.page-carnet .modal-note { font-size:.75rem; color:var(--muted); background:#FFF9ED; border:1px solid rgba(212,175,55,.3); border-radius:7px; padding:.5rem .75rem; margin-bottom:.9rem; line-height:1.5; }
body.page-carnet .modal-actions { display:flex; gap:.5rem; justify-content:flex-end; margin-top:1.1rem; }
body.page-carnet .btn-cancel { background:#f0f0f0; color:var(--dark); padding:.55rem 1.1rem; border-radius:999px; border:none; cursor:pointer; font-weight:600; font-size:.85rem; }
body.page-carnet .btn-submit { background:var(--green); color:#fff; padding:.55rem 1.35rem; border-radius:999px; border:none; cursor:pointer; font-weight:700; font-size:.88rem; display:flex; align-items:center; gap:.4rem; }

/* ── Fiche détail (panel latéral) ── */
body.page-carnet .detail-panel { background:var(--white); border-radius:16px; padding:2rem; box-shadow:0 6px 24px rgba(0,0,0,.1); margin-bottom:2rem; border-left:4px solid var(--green); }
body.page-carnet .detail-panel.demande { border-left-color:var(--amber); }
body.page-carnet .detail-back { display:inline-flex; align-items:center; gap:.35rem; color:var(--green); font-size:.82rem; font-weight:600; text-decoration:none; margin-bottom:1rem; }
body.page-carnet .detail-back + .detail-back { margin-left: 1rem; }
body.page-carnet .detail-badges-row { display:flex; gap:.5rem; flex-wrap:wrap; margin-bottom:.9rem; }
body.page-carnet .own-annonce-note { color:var(--muted); font-size:.83rem; }
body.page-carnet .own-annonce-note a { color:var(--green); }
body.page-carnet .migration-banner { background:#fff3cd; border:1px solid #ffc107; border-radius:12px; padding:1.25rem; margin-bottom:2rem; text-align:center; font-size:.9rem; }
body.page-carnet .migration-banner .db-icon { color:#856404; }
body.page-carnet .btn-pub-cps { border-color:var(--purple); color:var(--purple); }
body.page-carnet .empty-state .btn-pub { margin-top:.75rem; display:inline-flex; }
body.page-carnet .taux-header .taux-icon { color:var(--gold); font-size:1.1rem; }
body.page-carnet .taux-legal .taux-warn-icon { color:var(--gold); }
body.page-carnet .taux-table .taux-note-cell { font-size:.75rem; color:var(--muted); }
body.page-carnet .modal-entente-lead { font-size:.82rem; color:var(--muted); margin-bottom:.9rem; }
body.page-carnet .modal-note .modal-info-icon { color:var(--gold); }
body.page-carnet .form-check .form-check-muted { color:var(--muted); }
body.page-carnet .link-green { color: var(--green); }
body.page-carnet .detail-title { font-family:'Playfair Display',serif; font-size:1.5rem; color:var(--dark); margin-bottom:.65rem; }
body.page-carnet .detail-meta { display:flex; flex-wrap:wrap; gap:1rem; font-size:.82rem; color:var(--muted); margin-bottom:1.25rem; }
body.page-carnet .detail-desc { font-size:.9rem; line-height:1.7; color:#444; margin-bottom:1.25rem; }
body.page-carnet .detail-info-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(160px,1fr)); gap:.75rem; margin-bottom:1.25rem; }
body.page-carnet .detail-info-box { background:#f8fbf8; border:1px solid #e0eee0; border-radius:8px; padding:.65rem .85rem; }
body.page-carnet .detail-info-box label { font-size:.68rem; color:var(--muted); text-transform:uppercase; font-weight:700; display:block; margin-bottom:.2rem; }
body.page-carnet .detail-info-box span { font-size:.9rem; font-weight:600; color:var(--dark); }

@media (max-width: 640px) {
    body.page-carnet .hero h1 { font-size:1.7rem; }
    body.page-carnet .cards-grid { grid-template-columns:1fr; }
    body.page-carnet .form-row { grid-template-columns:1fr; }
    body.page-carnet .pub-actions { flex-direction:column; align-items:center; }
}
