*{box-sizing:border-box}body{margin:0;background:#0b1423;color:#edf2fa;font:16px/1.45 Arial,sans-serif}a{color:inherit;text-decoration:none}button,.tabs a,.tilemenu a{cursor:pointer;border:0;border-radius:9px;padding:10px 14px;background:#2b70d4;color:#fff;font:inherit}button:hover,.tabs a:hover{filter:brightness(1.18)}.top{display:flex;align-items:center;justify-content:space-between;gap:12px;position:sticky;top:0;z-index:10;background:#121e30;border-bottom:1px solid #2d3d55;padding:10px max(16px,calc((100vw - 1200px)/2));min-height:65px}.brand{font-size:22px;font-weight:800}.top button{font-size:14px}main{max-width:1200px;margin:auto;padding:18px}.banner{border-radius:15px;background-size:cover;background-position:center;display:flex;flex-direction:column;justify-content:center;padding:26px;overflow:hidden}.banner h1{font-size:clamp(28px,4vw,52px);margin:0}.banner p{font-size:18px;margin:4px 0}.tabs{display:flex;flex-wrap:wrap;gap:9px;padding:18px 0}.tabs a{background:#1d2c42}.tabs a.active{background:#367ce2}.heading{display:flex;justify-content:space-between;align-items:center;gap:12px}.heading h2{margin:8px 0 16px}.cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(215px,1fr));gap:18px}.tile{background:#18263b;border:1px solid #33435a;border-radius:13px;overflow:hidden}.thumb{height:190px;position:relative;background:#25354b}.thumb img{width:100%;height:100%;object-fit:contain}.placeholder{display:grid;place-items:center;height:100%;font-size:65px}.hoverdesc{display:none;position:absolute;inset:0;background:#071321e8;padding:16px;overflow:auto;white-space:pre-wrap}.thumb:hover .hoverdesc:not(:empty){display:block}.tilebody{padding:12px}.tilebody h3{font-size:17px;margin:6px 0 12px}.tilebody small{color:#93b7eb}.tilemenu{display:flex;align-items:center;flex-wrap:wrap;gap:9px;margin:8px 0}.tilemenu audio,.tilemenu video{width:100%;max-height:190px}.tilemenu a{font-size:13px}.price{font-weight:700;color:#f6cf77}details{border-top:1px solid #40516b;margin-top:12px;padding-top:8px}summary{cursor:pointer}details input,details textarea{width:100%;margin:5px 0}footer{text-align:center;color:#b1bed1;padding:35px}#side{display:none;position:fixed;top:65px;left:0;z-index:12;background:#192b43;border:1px solid #40536d;min-width:190px;box-shadow:0 12px 35px #0008}#side.shown{display:flex;flex-direction:column}#side a{padding:13px 20px;border-bottom:1px solid #32445d}#side a:hover{background:#2c476b}dialog{border:1px solid #54749e;border-radius:14px;background:#17263b;color:#fff;padding:24px;width:min(95vw,600px);max-height:90vh;overflow:auto;box-shadow:0 30px 90px #000b}dialog::backdrop{background:#000a}dialog h2{margin-top:0}dialog form:not(.close){display:grid;gap:12px}label{display:grid;gap:5px}input,textarea,select{background:#eef3fb;color:#182333;border:1px solid #a9b7cc;border-radius:7px;padding:11px;font:inherit;width:100%}textarea{min-height:90px;resize:vertical}.close{float:right}.close button{background:#42536b}.adminmain{max-width:1100px}.adminmain h1{font-size:24px}.adminmain h1 small{font-size:14px;color:#9eb4d2}.numberbar{display:flex;gap:9px;flex-wrap:wrap;background:#15243a;padding:14px;border-radius:12px}.numberbar button{min-width:48px;min-height:48px}.numberbar .new{background:#26845d}.adminbuttons{display:flex;gap:10px;flex-wrap:wrap;margin-top:18px}.hint{color:#b1c2d9}.panel{background:#192a40;border-radius:14px;padding:25px}.login{max-width:480px;margin:55px auto}.login form{display:grid;gap:15px}.twocol{display:grid;grid-template-columns:1fr 1fr;gap:12px}.danger{background:#963b4a!important;margin-top:12px}.error{background:#5e2731;padding:12px}.success{background:#22523b;padding:12px}.message{padding:12px;border-bottom:1px solid #40516b}@media(max-width:650px){.top{flex-wrap:wrap}.top .brand{font-size:18px}.banner{padding:18px}.twocol{grid-template-columns:1fr}.cards{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.thumb{height:135px}.tilebody{padding:9px}}

/* Formulaire compact et fiches numerotees */
.numberbar{align-items:center;gap:5px;padding:7px;max-height:80px;overflow-y:auto}
.numberbar button{width:20mm;min-width:20mm;height:10mm;min-height:10mm;padding:3px 5px;border-radius:5px;font-size:13px}
.numberbar .new{width:auto;min-width:20mm}
.adminbuttons{margin-top:10px}.adminbuttons button{padding:7px 11px}
.checkline{display:flex;align-items:center;gap:9px}.checkline input{width:18px;height:18px}
.video-gray{background:#737b86;color:#fff}

.language-picker{margin:0}.language-picker select{width:auto;min-width:140px;padding:7px;background:#eef3fb;color:#13243a}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0)}html[dir=rtl] #side{left:auto;right:0}html[dir=rtl] .tilebody,html[dir=rtl] dialog{text-align:right}@media(max-width:650px){.top{gap:6px}.language-picker select{min-width:112px}}

/* Lecture simultanee et documents */
.tilemenu .bb-video,.tilemenu .bb-audio{width:100%}.tilemenu .bb-video{background:#747b85}.tilemenu a{overflow-wrap:anywhere}

.file-inventory{background:#15243a;padding:12px;border-radius:10px;margin-top:12px}.file-inventory h2{font-size:18px;margin:0 0 5px}.inventory-scroll{overflow-x:auto}.file-inventory table{width:100%;border-collapse:collapse;font-size:13px}.file-inventory th,.file-inventory td{padding:7px;border-bottom:1px solid #40516b;text-align:left;vertical-align:middle}.file-inventory td:nth-child(3){overflow-wrap:anywhere;max-width:460px}.file-inventory input[type=checkbox]{width:19px;height:19px}.file-inventory .danger{margin:0;padding:6px 10px}.file-inventory form{display:block!important}#uploadProgress{width:100%;height:22px;accent-color:#36a1f5}#uploadBox{padding:10px;border:1px solid #597caa;border-radius:8px}#uploadBox[hidden]{display:none}

/* Test 6 : video first, external audio always accessible, image as fallback */
.thumb.has-video{height:auto;min-height:190px;background:#555e6d;display:flex;align-items:center}
.thumb .bb-video-main{display:block;width:100%;max-height:340px;min-height:190px;background:#626b78}
.tile:has(.bb-audio) .tilemenu{display:flex;flex-direction:column;align-items:stretch}
.tilemenu .bb-audio{display:block;width:100%;min-height:54px;order:-1}
.tilemenu .price{align-self:flex-start}
.thumb.has-video .hoverdesc{pointer-events:none}
@media(max-width:650px){.thumb.has-video{min-height:135px}.thumb .bb-video-main{min-height:135px}}

/* Test 7 : audio prioritaire sur TOUTES les catégories */
.audio-priority{display:block;padding:12px;background:#17375a;border-bottom:2px solid #66aaff}
.audio-heading{font-size:16px;font-weight:700;color:white;margin-bottom:7px}
.audio-priority audio{display:block;width:100%;min-height:54px;max-width:100%;color-scheme:light}
.tile:has(.audio-priority) .thumb{border-top:0}
.tile .audio-priority+ .thumb{margin-top:0}

.hoverdesc,.thumb:hover .hoverdesc{display:none!important}.explanation-dialog{max-width:410px;max-height:75vh;overflow:auto}.explanation-dialog p{white-space:pre-wrap;overflow-wrap:anywhere}.explain-btn{background:#345d8d;font-size:13px}

/* V9 : champs sombres, texte blanc dans les trois langues */
input:not([type="checkbox"]),textarea,select,
.language-picker select, dialog input:not([type="checkbox"]),dialog textarea,dialog select {
 background:#101827!important;color:#ffffff!important;border:1px solid #61728d!important;
 color-scheme:dark;caret-color:#ffffff;
}
input::placeholder,textarea::placeholder{color:#bbc8d8;opacity:1}
input:focus,textarea:focus,select:focus{outline:2px solid #8cb5f5;outline-offset:1px}
input[type="file"]{background:#101827!important;color:#fff!important}
input[type="file"]::file-selector-button{background:#293c59;color:#fff;border:1px solid #8495af;border-radius:5px;padding:8px;margin-inline-end:10px;cursor:pointer}
option{background:#101827;color:#fff}

/* Administration : champs sombres et liens de gestion */
.admin-extra-link{display:inline-block;padding:9px 14px;margin:4px;border-radius:8px;background:#192638;color:white!important;text-decoration:none;font-weight:bold}
#itemForm select[name^="server_"]{display:block;width:100%;margin-top:6px;background:#121820!important;color:#fff!important;border:1px solid #76839a;padding:8px}
.admin-panel{padding:14px;border:1px solid #536071;border-radius:8px;margin:12px 0;background:#151e2c;color:white}
.admin-panel input{background:#111827!important;color:white!important}

/* BookBost V11 — catégories */
.category-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:18px;margin:18px 0 32px}
.category-card{display:block;overflow:hidden;border-radius:12px;background:#162239;color:#fff;text-decoration:none;border:1px solid #394b64;box-shadow:0 2px 8px #0003}
.category-card:hover,.category-card:focus-visible{outline:2px solid #88b9ff;transform:translateY(-2px)}
.category-preview{height:160px;background:#0c1526;display:flex;align-items:center;justify-content:center;overflow:hidden}
.category-preview img,.category-preview video{width:100%;height:100%;object-fit:cover}
.category-placeholder{font-size:56px}
.category-caption{padding:12px;display:flex;justify-content:space-between;align-items:center;gap:8px;flex-wrap:wrap}
.category-caption strong{font-size:1.1rem}.category-caption span{font-size:.82rem;opacity:.8}

/* BookBost V13: rendre Type et Catégorie impossibles à confondre */
.v13-notice{padding:16px 20px;border:2px solid #66aaff;border-radius:12px;background:#1a3557;color:#fff;font-size:18px;line-height:1.5}
.v13-classification{border:3px solid #70b4ff;background:#112b4c;padding:18px;border-radius:12px;display:grid;gap:9px}
.v13-classification h3{font-size:23px;color:#fff;margin:5px 0 0}
.v13-classification p{margin:0 0 6px;color:#c8e3ff;font-size:16px}
.v13-classification input,.v13-classification select{border:2px solid #a8d5ff!important;font-size:20px!important;min-height:52px}
#itemDialog{width:min(95vw,820px)}
#itemDialog #saveButton{position:sticky;bottom:0;z-index:2;background:#197a46;border:2px solid #c6f7d9;font-size:20px;min-height:52px}
.category-card .category-caption strong{font-size:21px}
.category-card .category-caption:after{content:'Cliquer pour voir toutes les publications';display:block;font-size:13px;color:#c3e1ff;margin-top:6px}

/* V14: vignettes compactes, catégories séparées des types */
.category-grid{grid-template-columns:repeat(auto-fill,minmax(170px,205px));gap:14px}
.category-preview{height:135px}
.category-caption{padding:9px 11px;display:block}
.category-caption strong{display:block;font-size:18px}
.category-caption span{display:block;margin-top:4px;font-size:13px}
.bb-small-cards{grid-template-columns:repeat(auto-fill,minmax(170px,205px))!important;gap:13px!important}
.bb-small-cards .tile{min-width:0}
.bb-small-cards .thumb{height:135px;min-height:135px}
.bb-small-cards .tilebody{padding:10px}
.bb-small-cards .tilebody h3{font-size:16px}
.v13-classification{border:3px solid #ffdb70;background:#142c47}
.v13-classification h3{color:#fff2b4}
@media(max-width:500px){.category-grid,.bb-small-cards{grid-template-columns:repeat(2,minmax(0,1fr))!important}}

/* V16 : une seule vignette par catégorie ; nom et nombre HORS du cadre vidéo. */
.bb-category-unit{min-width:0}
.bb-category-name{display:block;font-size:19px;font-weight:750;color:#e8f2ff;text-decoration:underline;text-underline-offset:3px;margin-bottom:5px;overflow-wrap:anywhere}
.bb-category-name:hover,.bb-category-name:focus-visible{color:#9fcbff}
.bb-category-count{font-size:14px;color:#d4e1f5;margin-bottom:8px}
.bb-category-unit .category-card{display:block}
.bb-category-unit .category-preview{height:135px}

/* V5 : visuels sobres, sans photos imposées. */
.category-preview:empty{background:linear-gradient(135deg,#163454,#315d86);min-height:120px}
.bb-category-unit{min-width:0}
