/* Ludothèque : choix explicites et sélection groupée. */
.lib-tools{display:flex;align-items:center;justify-content:space-between;gap:14px;margin-bottom:16px}.lib-tools p{margin:0;max-width:50ch;color:#746757;font-size:13px;line-height:1.5}.lib-primary,.lib-secondary,.lib-later,.lib-close{font:700 14px 'Hanken Grotesk',sans-serif;cursor:pointer}.lib-primary,.lib-secondary{min-height:44px;padding:11px 16px;border-radius:10px;border:1px solid #d7c8b7}.lib-primary{background:#24764c;color:#fff;border-color:#24764c}.lib-secondary{background:#fffdf8;color:#221d16}.lib-later{background:transparent;color:#615548;border:0;min-height:44px;padding:8px}.lib-close{width:44px;height:44px;border-radius:50%;background:#f1eadf;border:0;font-size:24px;flex-shrink:0}.lib-banner{background:#eaf2e8;border:1px solid #bdd7be;border-radius:14px;padding:18px;margin-bottom:18px;display:flex;align-items:center;justify-content:space-between;gap:16px}.lib-banner strong{font-size:16px;color:#194b31}.lib-banner p{font-size:13px;line-height:1.5;margin:6px 0 0;color:#475d45}.lib-banner-actions{display:flex;align-items:center;gap:8px;flex-shrink:0}.lib-dialog{color:#221d16;background:#fffdf8;font-family:'Hanken Grotesk',sans-serif;padding:0;border:1px solid #ded4c4;border-radius:20px;width:min(780px,calc(100% - 28px));max-height:90dvh;box-sizing:border-box;overflow:auto;overscroll-behavior:contain}.lib-dialog::backdrop{background:rgba(28,25,20,.65);backdrop-filter:blur(4px)}.lib-dialog *{box-sizing:border-box}.lib-dialog-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;padding:22px 22px 14px}.lib-dialog h2{font:800 24px 'Schibsted Grotesk',sans-serif;margin:0 0 8px;line-height:1.2}.lib-dialog-head p{color:#746757;font-size:14px;line-height:1.5;margin:0}.lib-controls{padding:0 22px 12px}.lib-controls label{display:block;font-size:13px;font-weight:700;margin:0 0 7px}.lib-controls input{width:100%;border:1px solid #cbbca8;border-radius:10px;padding:12px;font:400 16px Hanken Grotesk,sans-serif;background:#fff;color:#221d16}.lib-selection{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-top:6px}.lib-selection span{margin-left:auto;color:#746757;font-size:12px}.lib-games{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;padding:0 22px 22px}.lib-game{display:flex;align-items:center;gap:9px;border:1px solid #ded4c4;background:#f9f6ee;border-radius:12px;padding:10px;cursor:pointer;min-width:0}.lib-game:has(input:checked){background:#eaf2e8;border-color:#24764c}.lib-game input{width:19px;height:19px;flex-shrink:0;accent-color:#24764c}.lib-game img{width:32px;height:45px;object-fit:contain;flex-shrink:0}.lib-game span{font-size:13px;font-weight:700;overflow-wrap:anywhere;line-height:1.35}.lib-dialog-footer{position:sticky;bottom:0;padding:14px 22px calc(14px + env(safe-area-inset-bottom,0px));background:#fffdf8;border-top:1px solid #ded4c4;display:flex;gap:10px;justify-content:flex-end}.lib-dialog-footer .lib-primary{flex:1;max-width:430px}.lib-empty{grid-column:1/-1;margin:0;padding:24px 8px;color:#746757;font-size:14px;line-height:1.55;text-align:center}.lib-error{color:#a43828;background:#fff0ed;padding:12px;margin:0 22px 12px;font-size:14px}.lib-dialog [hidden]{display:none!important}.lib-dialog button:disabled{opacity:.5;cursor:default}.lib-dialog button:focus-visible,.lib-dialog input:focus-visible,[data-library] button:focus-visible{outline:2px solid #24764c;outline-offset:3px}@media(max-width:600px){.lib-tools{align-items:stretch;flex-direction:column;gap:8px}.lib-banner{align-items:stretch;flex-direction:column;padding:15px}.lib-banner-actions{justify-content:space-between}.lib-games{grid-template-columns:repeat(2,minmax(0,1fr));padding:0 14px 14px}.lib-dialog-head{padding:18px 14px 12px}.lib-dialog h2{font-size:21px}.lib-controls{padding:0 14px 12px}.lib-game{padding:8px;gap:6px}.lib-game img{width:26px;height:39px}.lib-game span{font-size:12px}.lib-dialog-footer{padding-left:14px;padding-right:14px}.lib-dialog-footer .lib-secondary{padding:10px}.lib-dialog-footer .lib-primary{font-size:13px}}

.lib-intro{max-width:520px}.lib-intro-icon{display:flex;align-items:center;justify-content:center;width:52px;height:52px;margin-bottom:16px;border-radius:14px;background:#eaf2e8;color:#24764c}.lib-intro-icon svg{width:30px;height:30px}.lib-intro-copy{padding:0 22px 22px;font-size:15px;line-height:1.6}.lib-intro-copy p{margin:0 0 12px}.lib-intro-copy .lib-intro-hint{color:#746757;font-size:13px;margin:0}@media(max-width:600px){.lib-intro-copy{padding:0 14px 18px}.lib-intro .lib-dialog-footer{flex-wrap:wrap}.lib-intro .lib-dialog-footer .lib-primary{min-width:140px}}

.lib-hub{display:grid;grid-template-columns:56px minmax(0,1fr) auto;align-items:center;gap:20px;padding:22px;margin-bottom:24px;border:1px solid #a8c7aa;border-radius:18px;background:#e7f0e2;color:#194b31;font-family:'Hanken Grotesk',sans-serif}.lib-hub-icon{display:flex;align-items:center;justify-content:center;width:56px;height:56px;background:#fffdf8;border-radius:14px;color:#24764c}.lib-hub-copy>span{font-size:10px;font-weight:800;letter-spacing:.08em;text-transform:uppercase}.lib-hub h2{margin:5px 0 8px;font:800 23px/1.2 'Schibsted Grotesk',sans-serif;color:#194b31}.lib-hub p{margin:0;font-size:14px;line-height:1.5;color:#3d553d}.lib-hub-actions{display:flex;flex-direction:column;align-items:stretch;gap:4px;max-width:275px}.lib-hub .lib-primary{font-size:14px;line-height:1.4;box-shadow:0 4px 12px #194b3118}.lib-hub .lib-later{color:#3d553d}@media(max-width:900px){.lib-hub{grid-template-columns:48px minmax(0,1fr);gap:14px;padding:18px}.lib-hub-icon{width:48px;height:48px}.lib-hub-actions{grid-column:1/-1;max-width:none}.lib-hub h2{font-size:21px}}
