  .hero{background:var(--bleu);color:#fff;padding:26px 0 30px}
  .hero .pres{width:min(640px,100%);margin:0 auto;text-align:center}
  .hero h1{font-weight:800;font-size:29px;line-height:1.1;letter-spacing:-.3px}
  .hero .sub{font-size:13.5px;opacity:.85;margin-top:5px;font-weight:300}
  .sb{position:relative;margin-top:16px}
  .sb input{width:100%;height:50px;border-radius:999px;border:1px solid rgba(255,255,255,.26);background:rgba(255,255,255,.14);color:#fff;padding:0 56px 0 22px;font-size:16px;font-weight:600;outline:none}
  .sb input::placeholder{color:rgba(255,255,255,.72);font-weight:400}
  .sb .go{position:absolute;right:6px;top:6px;width:38px;height:38px;border-radius:999px;border:none;background:#fff;cursor:pointer;display:flex;align-items:center;justify-content:center}
  .sb .go svg{width:17px;height:17px;stroke:var(--bleu);fill:none;stroke-width:2.5}
  .suggest{margin-top:11px;display:flex;flex-wrap:wrap;gap:6px;align-items:center;justify-content:center}
  .suggest .lbl{font-family:var(--mono);font-size:10.5px;letter-spacing:.08em;color:rgba(255,255,255,.7)}
  .suggest a{font-size:12.5px;border:1px solid rgba(255,255,255,.38);color:#fff;border-radius:999px;padding:3px 12px}
  .suggest a:hover{background:#fff;color:var(--bleu)}

  .panel{background:#fff;border-radius:16px;box-shadow:0 2px 10px rgba(20,20,50,.05);position:relative;min-width:0}

  /* barre de filtres horizontale */
  .filterbar{margin-top:20px}
  .filterbar .pad{padding:15px 18px}
  .ffields{display:flex;gap:14px}
  .ffield{flex:1;min-width:0}
  .ffield > label{display:block;font-size:11.5px;color:var(--gris);font-weight:700;margin-bottom:5px;letter-spacing:.01em}
  .fs{position:relative}
  .fs svg{position:absolute;left:11px;top:50%;transform:translateY(-50%);width:15px;height:15px;stroke:var(--gris);fill:none;stroke-width:2}
  .fs input{width:100%;height:40px;border:1px solid var(--ligne);border-radius:10px;padding:0 12px 0 33px;font:inherit;font-size:13.5px;background:#fff;outline:none;color:var(--encre)}
  .fs input::placeholder{color:#9A9AA6}
  .fs input:focus{border-color:var(--bleu)}
  .combo{position:relative}
  .fdrop{position:absolute;top:calc(100% + 6px);left:0;right:0;background:#fff;border:1px solid var(--ligne);border-radius:12px;box-shadow:0 14px 34px rgba(20,20,50,.16);padding:6px;max-height:248px;overflow:auto;z-index:45;display:none}
  .combo.open .fdrop{display:block}
  .fopt{position:relative;display:flex;align-items:center;gap:10px;padding:7px 10px;border-radius:9px;font-size:14px;color:var(--encre);cursor:pointer}
  .fopt:hover{background:var(--bleu-soft)}
  .fopt .chk{width:18px;height:18px;border:1.5px solid #C9C9D6;border-radius:6px;flex:none;display:flex;align-items:center;justify-content:center;transition:background .12s,border-color .12s}
  .fopt.sel .chk{background:var(--bleu);border-color:var(--bleu)}
  .fopt.sel .chk::after{content:'\2713';color:#fff;font-size:11px;font-weight:700;line-height:1}
  .fopt .onm{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
  .fopt.sel .onm{font-weight:600}
  .fopt .oc{flex:none;font-size:11px;color:#8A8A97;font-variant-numeric:tabular-nums;background:var(--bg);border:1px solid var(--ligne);border-radius:999px;padding:1px 8px;line-height:1.6}
  .fnone{padding:9px 10px;font-size:13px;color:var(--gris)}
  .active-filters{display:flex;flex-wrap:wrap;gap:8px;align-items:center;padding:0 24px 8px}
  .aflabel{font-family:var(--mono);font-size:10px;letter-spacing:.1em;text-transform:uppercase;color:var(--gris);margin-right:2px}
  .af-chip{display:inline-flex;align-items:center;gap:7px;background:var(--bleu-soft);color:var(--bleu);border:1px solid transparent;border-radius:999px;padding:4px 6px 4px 12px;font-size:12.5px;text-decoration:none;transition:border-color .15s}
  .af-chip:hover{border-color:var(--bleu)}
  .af-chip .t{font-family:var(--mono);font-size:9px;font-weight:600;letter-spacing:.05em;text-transform:uppercase;color:var(--bleu);opacity:.6}
  .af-chip .v{font-weight:700}
  .af-chip .x{display:flex;align-items:center;justify-content:center;width:18px;height:18px;border-radius:50%;background:rgba(78,71,220,.16);font-size:9px;line-height:1;flex:none}
  .af-chip:hover .x{background:var(--bleu);color:#fff}
  .af-clear{margin-left:4px;font-size:12.5px;font-weight:600;color:var(--gris);text-decoration:none}
  .af-clear:hover{color:var(--encre);text-decoration:underline}

  /* layout liste + colonne */
  .lib{display:grid;grid-template-columns:1fr 300px;gap:26px;margin:16px auto 40px;align-items:start}

  .libbar{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;padding:18px 24px 10px}
  .count{font-size:14px;color:var(--gris)}.count b{color:var(--encre);font-size:17px;font-weight:800}
  .tools{display:flex;align-items:center;gap:8px}
  .tools .lab{font-size:12.5px;color:var(--gris)}
  .selmini{appearance:none;-webkit-appearance:none;border:1px solid var(--ligne);border-radius:999px;padding:8px 32px 8px 14px;font:inherit;font-size:12.5px;font-weight:600;color:var(--encre);background:#fff url("data:image/svg+xml;charset=UTF-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='10' viewBox='0 0 24 24' fill='none' stroke='%236B6B76' stroke-width='3'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E") no-repeat right 12px center;cursor:pointer}
  .filter-btn{display:none;align-items:center;gap:8px;border:1px solid var(--ligne);background:#fff;border-radius:999px;padding:8px 14px;font:inherit;font-size:13px;font-weight:700;color:var(--encre);cursor:pointer}
  .filter-btn svg{width:16px;height:16px;stroke:var(--encre);fill:none;stroke-width:2}

  /* liste de poèmes (neutre) */
  .poems{padding:2px 0 4px}
  .poem{display:flex;align-items:baseline;gap:9px;padding:12px 24px;border-top:1px solid var(--ligne)}
  .poem:hover{background:#FBFBFE}
  .poem .pt{font-weight:700;font-size:15.5px;color:var(--encre);flex:0 0 auto;max-width:58%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .poem:hover .pt{color:var(--bleu)}
  .poem .pm{font-size:13px;color:var(--gris);flex:1 1 auto;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .poem .pm .au{font-weight:600;color:var(--encre)}
  .poem .tag{flex:none;align-self:center;font-family:var(--mono);font-size:10px;letter-spacing:.05em;text-transform:uppercase;color:var(--gris);border:1px solid var(--ligne);border-radius:999px;padding:3px 10px}
  .nores{padding:26px 24px;text-align:center;color:var(--gris);font-size:14px;display:none}

  .pager{display:flex;gap:6px;flex-wrap:wrap;align-items:center;justify-content:center;padding:14px 24px 22px}
  .pager a{min-width:38px;height:38px;display:inline-flex;align-items:center;justify-content:center;padding:0 14px;border-radius:999px;border:1px solid var(--ligne);background:#fff;color:inherit;font-weight:600;font-size:14px}
  .pager a.on{background:var(--bleu);border-color:var(--bleu);color:#fff}
  .pager a:hover:not(.on){border-color:var(--bleu);color:var(--bleu)}

  /* colonne découverte */
  .side{display:flex;flex-direction:column;gap:18px}
  .side .pad{padding:18px}
  .side h3{font-size:15px;font-weight:800;margin-bottom:2px}
  .side h3.mt{margin-top:18px}
  .chips{display:flex;flex-wrap:wrap;gap:6px;margin-top:9px}
  .chip{border:1px solid var(--ligne);background:#fff;border-radius:999px;padding:5px 12px;font-size:12.5px;font-weight:600;color:var(--encre)}
  .chip:hover{border-color:var(--bleu);color:var(--bleu)}
  .morelink{display:inline-block;margin-top:10px;font-size:12.5px;font-weight:700;color:var(--bleu)}
  .browse-card{overflow:hidden}
  .bx{background:var(--bleu);padding:18px;color:#fff}
  .bx-h{font-weight:800;font-size:16px;margin-bottom:11px}
  .browse-card .bnav{display:grid;grid-template-columns:1fr 1fr;gap:8px}
  .browse-card .bn{display:flex;align-items:center;justify-content:center;padding:11px 8px;border-radius:999px;background:rgba(255,255,255,.14);border:1px solid rgba(255,255,255,.22);color:#fff;font-weight:700;font-size:12.5px}
  .browse-card .bn:hover{background:rgba(255,255,255,.26)}
  .btn-jaune{display:flex;align-items:center;justify-content:center;gap:7px;margin-top:9px;width:100%;padding:13px;border-radius:999px;background:var(--jaune);color:var(--encre);font-weight:800;font-size:14px}
  .btn-jaune:hover{filter:brightness(.97)}
  .browse-card .pad>.bl:first-child{margin-top:2px}
  .browse-card .bl{font-size:12.5px;color:var(--gris);font-weight:700;margin-top:16px;margin-bottom:4px}

  /* volet (mobile) */
  .sheet-head{display:none}
  .sheet-title{font-weight:800;font-size:20px}
  .sheet-close{border:none;background:var(--bleu-soft);color:var(--bleu);width:32px;height:32px;border-radius:50%;font-size:15px;cursor:pointer}
  .sheet-overlay{display:none;position:fixed;inset:0;background:rgba(15,15,30,.45);z-index:65}
  .sheet-overlay.show{display:block}

  /* pub */
  .ad{border:1px dashed #C4C4D2;border-radius:14px;padding:24px 12px;text-align:center;color:#A6A6B2;background:repeating-linear-gradient(45deg,#FAFAFE,#FAFAFE 10px,#F3F3F9 10px,#F3F3F9 20px);position:sticky;top:18px}
  .ad .l{font-family:var(--mono);font-size:10.5px;letter-spacing:.14em;text-transform:uppercase}.ad .s{font-size:11px;margin-top:4px}
  .inflow-ad{display:none;position:static;margin:0 24px 6px}

  footer.site{margin-top:10px;background:#0F172A;color:#fff}
  footer.site .wrap{padding:24px 20px;display:flex;gap:18px;flex-wrap:wrap;font-size:13px;font-weight:300}
  footer.site a{color:#fff;opacity:.85}footer .dicos{margin-left:auto;display:flex;gap:14px}

  .toast{position:fixed;bottom:24px;left:50%;transform:translateX(-50%) translateY(20px);background:#15151c;color:#fff;padding:11px 20px;border-radius:999px;font-size:13.5px;font-weight:600;opacity:0;pointer-events:none;transition:.22s;z-index:80}
  .toast.show{opacity:1;transform:translateX(-50%) translateY(0)}

  /* ===== responsive ===== */
  @media(max-width:840px){
    .lib{grid-template-columns:1fr}
    .ad{position:static}
    .side-ad{display:none}
    .inflow-ad{display:block}
    .filter-btn{display:inline-flex}
    .filterbar{position:fixed;left:0;right:0;bottom:0;top:auto;margin:0;max-height:84vh;overflow:auto;border-radius:18px 18px 0 0;transform:translateY(100%);transition:transform .28s;z-index:70;box-shadow:0 -12px 40px rgba(0,0,0,.3)}
    .filterbar.open{transform:translateY(0)}
    .sheet-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px}
    .ffields{flex-direction:column;gap:12px}
    .fdrop{position:static;box-shadow:none;max-height:210px;margin-top:8px}
  }
  @media(max-width:600px){
    .wrap{padding:0 12px}
    .lib{padding:0;margin-top:10px;gap:8px}
    .panel{border-radius:0;box-shadow:none}
    .filterbar{border-radius:18px 18px 0 0}
    .libbar{padding:16px 14px 10px}
    .active-filters{padding:0 14px 8px}
    .poem{padding:13px 14px}
    .pager{padding:12px 14px 22px}
    .side .pad{padding:16px 14px}
    .inflow-ad{margin:0 14px 6px}
    .hero{padding:22px 0 26px}
    .hero h1{font-size:25px}
  }
/* transition douce pendant le rafraîchissement AJAX */
#libResults{transition:opacity .12s}
#libResults.loading{opacity:.5}

/* la vraie case est masquée : la pastille .chk + .sel fait le rendu */
.fopt input{position:absolute;opacity:0;width:0;height:0;margin:0;pointer-events:none}
