:root { --bg:#0f1115; --card:#1a1d24; --line:#2a2f3a; --txt:#e7eaf0; --muted:#9aa3b2; --accent:#0056d6; --ok:#1f9d55; --warn:#c97a00; }
* { box-sizing:border-box; }
body { margin:0; font-family:-apple-system,Segoe UI,Roboto,Arial,sans-serif; background:var(--bg); color:var(--txt); }
a { color:inherit; text-decoration:none; }
.wrap { max-width:1100px; margin:0 auto; padding:24px; }
.muted { color:var(--muted); }
h1 { margin:0 0 4px; }
h4 { margin:18px 0 8px; }

/* topbar */
.topbar { display:flex; align-items:center; justify-content:space-between; padding:12px 24px; background:var(--card); border-bottom:1px solid var(--line); }
.brand { font-weight:700; }
.topbar nav a { margin-left:18px; color:var(--muted); }
.topbar nav a:hover { color:var(--txt); }

/* buttons */
.btn { display:inline-block; padding:9px 14px; border:1px solid var(--line); border-radius:8px; background:#222632; color:var(--txt); cursor:pointer; font-size:14px; }
.btn:hover { border-color:#3a4250; }
.btn.primary { background:var(--accent); border-color:var(--accent); color:#fff; }
.btn.ghost { background:transparent; }
.btn.block { display:block; text-align:center; margin-top:10px; }

/* login */
.login-card { max-width:360px; margin:12vh auto; background:var(--card); padding:28px; border-radius:14px; border:1px solid var(--line); }
.login-card input { width:100%; padding:11px; margin:14px 0; border-radius:8px; border:1px solid var(--line); background:#11141a; color:var(--txt); }
.err { color:#e0556a; min-height:18px; }
.ok { color:var(--ok); margin-left:10px; }
.warn { color:var(--warn); min-height:18px; font-size:13px; }

/* grille pièces */
.cards-head { margin-bottom:18px; }
.piece-grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(170px,1fr)); gap:18px; }
.piece-card { background:var(--card); border:1px solid var(--line); border-radius:12px; overflow:hidden; transition:transform .1s; }
.piece-card:hover { transform:translateY(-3px); border-color:#3a4250; }
.poster { position:relative; aspect-ratio:2/3; background:#11141a; display:flex; align-items:center; justify-content:center; }
.poster img { width:100%; height:100%; object-fit:cover; }
.noimg { color:var(--muted); font-size:13px; }
.pc-link { display:block; color:inherit; }
.pc-title { padding:10px 12px; font-weight:600; font-size:14px; }
.piece-card.is-inactive { opacity:.42; }
.pc-active { display:flex; align-items:center; gap:6px; padding:0 12px 10px; font-size:12px; color:var(--muted); cursor:pointer; }
.pc-active input { cursor:pointer; }
/* Checklist rapide sous la vignette : ce qui est renseigné vs ce qui manque sur la fiche. */
.pc-checklist { display:flex; flex-wrap:wrap; gap:4px; padding:8px 12px 0; }
.pcc { font-size:10px; padding:2px 6px; border-radius:5px; font-weight:700; letter-spacing:.02em; }
.pcc-ok { background:rgba(31,157,85,.18); color:var(--ok); }
.pcc-missing { background:rgba(255,255,255,.05); color:var(--muted); text-decoration:line-through; opacity:.6; }
.filterbar { display:flex; gap:8px; margin:0 0 16px; }
.filterbar button { padding:6px 14px; border:1px solid var(--line); background:#222632; color:var(--muted); border-radius:20px; cursor:pointer; font-size:13px; }
.filterbar button.on { background:var(--accent); border-color:var(--accent); color:#fff; }
.search-box { padding:9px 12px; border-radius:8px; border:1px solid var(--line); background:#11141a; color:var(--txt); min-width:240px; }
.cards-head { display:flex; align-items:center; justify-content:space-between; gap:16px; flex-wrap:wrap; }
.pc-tags { position:absolute; top:8px; right:8px; display:flex; flex-direction:column; gap:4px; align-items:flex-end; }
.pc-tag { font-size:11px; padding:2px 7px; border-radius:6px; font-weight:600; }
.pc-tag.ext { background:#c97a00; color:#fff; }
.pc-tag.arch { background:#475569; color:#fff; }

/* Rapport de cohérence */
.coh-list { display:flex; flex-direction:column; gap:8px; margin-top:14px; }
.coh-row { padding:10px 12px; border-radius:8px; border:1px solid var(--line); background:var(--card); font-size:14px; }
.coh-row.coh-err { border-left:4px solid #e0556a; }
.coh-row.coh-warn { border-left:4px solid var(--warn); }
.coh-row.coh-info { border-left:4px solid var(--muted); }

/* fiche */
.back { display:inline-block; margin-bottom:14px; color:var(--muted); }
.fiche { display:grid; grid-template-columns:300px 1fr; gap:28px; align-items:start; }
.affiche-box { aspect-ratio:2/3; background:#11141a; border:1px solid var(--line); border-radius:12px; overflow:hidden; display:flex; align-items:center; justify-content:center; }
.affiche-box img { width:100%; height:100%; object-fit:cover; }
.share-box { margin-top:22px; border-top:1px solid var(--line); padding-top:16px; }
.share-box input { width:100%; padding:8px; margin-bottom:8px; border-radius:6px; border:1px solid var(--line); background:#11141a; color:var(--txt); font-size:12px; }
.share-options { display:grid; grid-template-columns:1fr 1fr; gap:7px 10px; margin:8px 0 12px; }
.share-options label { display:flex; align-items:center; gap:7px; color:var(--muted); font-size:12px; }
.share-options input { width:auto; margin:0; padding:0; }
.share-link-list { display:flex; flex-direction:column; gap:10px; margin-top:16px; }
.share-link-card { padding:11px; background:#11141a; border:1px solid var(--line); border-radius:9px; }
.share-link-card > strong { display:block; margin-bottom:7px; font-size:13px; }
.share-link-tags { display:flex; flex-wrap:wrap; gap:4px; margin-bottom:7px; }
.share-link-tags span { padding:2px 6px; border-radius:10px; background:#273044; color:#b9c9e8; font-size:10px; }
.share-link-card input { margin-bottom:7px; }
.link-box { margin-top:22px; border-top:1px solid var(--line); padding-top:16px; }
.link-box select { width:100%; padding:8px; margin-bottom:8px; border-radius:6px; border:1px solid var(--line); background:#11141a; color:var(--txt); font-size:13px; }
.fiche-right label { display:block; margin:10px 0 4px; font-size:13px; color:var(--muted); }
.fiche-right input, .fiche-right textarea, .fiche-right select { width:100%; padding:10px 11px; border-radius:8px; border:1px solid var(--line); background:#11141a; color:var(--txt); font:inherit; }
.fiche-right .row { display:grid; grid-template-columns:1fr 1fr; gap:12px; }
.fiche-right input:focus, .fiche-right textarea:focus, .fiche-right select:focus { outline:1px solid #76a9fa; border-color:#4f8ff0; }
.fiche-section { margin:18px 0; padding:18px; border:1px solid var(--line); border-radius:12px; background:#161a23; }
.fiche-section-head { display:flex; align-items:flex-start; justify-content:space-between; gap:18px; margin-bottom:14px; }
.fiche-section-head h3 { margin:2px 0 4px; font-size:17px; }
.fiche-section-head p { margin:0; color:var(--muted); font-size:12px; line-height:1.45; }
.section-kicker { color:#76a9fa; font-size:10px; font-weight:800; letter-spacing:.1em; text-transform:uppercase; }
.source-badge { flex:0 0 auto; padding:5px 8px; border:1px solid #355d91; border-radius:999px; background:#172945; color:#aecdff; font-size:10px; font-weight:700; }
.field-grid { display:grid; grid-template-columns:1fr 1fr; gap:14px; }
.fiche-section label { margin:0 0 12px; }
.fiche-section label:last-child { margin-bottom:0; }
.fiche-section label > span { display:block; margin-bottom:6px; color:#dce2ec; font-weight:650; }
.fiche-section label > small { display:block; margin-top:6px; color:var(--muted); font-size:11px; line-height:1.4; }
.schedule-fields { border-color:#314764; background:linear-gradient(135deg,#172131,#161a23 62%); }
.ocr-trigger { flex:0 0 auto; border-color:#4f8ff0; color:#c9ddff; }
.ocr-panel { margin:0 0 16px; padding:14px; border:1px solid #3b506d; border-radius:10px; background:#101722; }
.ocr-progress { margin-bottom:10px; }
.ocr-progress > span { display:block; width:0; height:5px; margin-bottom:7px; border-radius:9px; background:#4f8ff0; transition:width .2s; }
.ocr-progress small { color:var(--muted); }
.ocr-suggestions { display:grid; gap:8px; }
.ocr-suggestion { display:flex; align-items:center; justify-content:space-between; gap:12px; padding:9px 10px; border:1px solid var(--line); border-radius:8px; background:#171d27; }
.ocr-suggestion div { min-width:0; }
.ocr-suggestion strong, .ocr-suggestion small { display:block; }
.ocr-suggestion small { margin-top:3px; color:var(--muted); }
.ocr-author-box { margin-top:12px; padding:12px; border:1px solid #3b506d; border-radius:9px; background:#172131; }
.ocr-author-box h4 { margin:0 0 4px; }
.ocr-author-box > p { margin:0 0 10px; color:var(--muted); font-size:12px; }
.ocr-author-row { display:grid; grid-template-columns:auto minmax(0,1fr) 90px; align-items:center; gap:9px; padding:7px 0; }
.ocr-author-row input[type=checkbox] { width:auto; }
.ocr-author-row input[type=number] { padding:7px; }
.ocr-author-actions { display:flex; align-items:center; gap:10px; margin-top:10px; }
.ocr-raw { margin-top:10px; color:var(--muted); font-size:11px; }
.ocr-raw pre { max-height:150px; overflow:auto; padding:9px; white-space:pre-wrap; background:#0b0e13; color:#aeb8c8; }
.rights-source-card { margin:0 0 16px; padding:14px; border:1px solid #3e4c61; border-radius:10px; background:#111722; }
.rights-source-head { display:flex; align-items:flex-start; justify-content:space-between; gap:12px; margin-bottom:10px; }
.rights-source-head h4 { margin:2px 0 0; font-size:15px; }
.source-badge.compta-source { border-color:#765c27; background:#302511; color:#f0ca78; }
.rights-source-list { display:flex; flex-direction:column; }
.rights-source-row { display:flex; align-items:center; justify-content:space-between; gap:14px; padding:9px 0; border-bottom:1px solid var(--line); }
.rights-source-row span { display:flex; flex-direction:column; gap:2px; }
.rights-source-row small { color:var(--muted); font-size:10px; }
.rights-source-row > b { color:#f0ca78; white-space:nowrap; }
.rights-source-total { display:flex; align-items:center; justify-content:space-between; padding:10px 0 2px; font-weight:700; }
.rights-source-total.is-valid b { color:var(--ok); }
.rights-source-total.is-invalid b { color:#e47787; }
.rights-source-empty { padding:11px; border:1px dashed #5a4826; border-radius:8px; color:#d8b56c; font-size:12px; line-height:1.45; }
.rights-source-card > p { margin:11px 0 0; color:var(--muted); font-size:11px; line-height:1.45; }
.credit-autocomplete { position:relative; }
.credit-suggestion-menu { position:absolute; z-index:40; top:calc(100% - 2px); right:0; left:0; overflow:hidden; border:1px solid #40516a; border-radius:8px; background:#1b2230; box-shadow:0 12px 30px rgba(0,0,0,.38); }
.credit-suggestion-menu button { display:block; width:100%; padding:9px 11px; border:0; border-bottom:1px solid var(--line); background:transparent; color:var(--txt); text-align:left; cursor:pointer; }
.credit-suggestion-menu button:last-child { border-bottom:0; }
.credit-suggestion-menu button:hover, .credit-suggestion-menu button.is-active { background:#26344a; color:#fff; }
.distribution-field { margin-top:12px; }
.distribution-label { display:block; margin-bottom:6px; color:#dce2ec; font-size:13px; font-weight:650; }
.distribution-field > small { display:block; margin-top:7px; color:var(--muted); font-size:11px; line-height:1.4; }
.distribution-editor { padding:11px; border:1px solid var(--line); border-radius:10px; background:#10141b; }
.distribution-members { display:flex; flex-direction:column; gap:8px; margin-bottom:9px; }
.distribution-member { padding:10px; border:1px solid #344258; border-radius:9px; background:#19202c; }
.distribution-member-main { display:flex; align-items:center; gap:9px; }
.distribution-member-main strong { flex:1; }
.distribution-public-name-edit, .distribution-link-change { border:0; background:transparent; color:#76a9fa; font-size:10px; cursor:pointer; }
.distribution-order, .distribution-remove, .alternate-remove, .equivalent-remove { border:0; background:transparent; color:var(--muted); cursor:pointer; }
.distribution-order:hover { color:#fff; }
.distribution-remove, .alternate-remove, .equivalent-remove { color:#e47787; }
.distribution-alternates { display:flex; flex-wrap:wrap; align-items:center; gap:6px; margin:8px 0 0 28px; }
.alternate-chip { display:inline-flex; align-items:center; gap:5px; padding:4px 7px; border:1px solid #4b5261; border-radius:999px; color:#c9d1dd; font-size:11px; }
.alternate-prefix { color:var(--muted); font-size:11px; }
.alternate-add { display:flex; align-items:center; gap:5px; flex:1 1 220px; }
.alternate-add input { min-width:140px; padding:6px 8px; font-size:12px; }
.alternate-add button { padding:6px 9px; font-size:11px; }
.distribution-add-row { display:flex; gap:7px; }
.distribution-add-row input { flex:1; }
.distribution-empty { padding:9px; color:var(--muted); font-size:12px; text-align:center; }
.compta-person-link { padding:2px 6px; border-radius:999px; background:#253c2f; color:#8ed0aa; font-size:9px; font-weight:700; }
.compta-person-link.unlinked { background:#3b2e18; color:#d8b56c; }
.distribution-link-help { margin:7px 0 0 28px; color:var(--muted); font-size:10px; line-height:1.4; }
.distribution-link-action { display:flex; align-items:center; flex-wrap:wrap; gap:7px; margin:8px 0 0 28px; color:var(--muted); font-size:10px; }
.distribution-link-action select { min-width:230px; padding:6px 8px; font-size:11px; }
.distribution-link-action .btn { padding:6px 9px; font-size:11px; }
.distribution-related-recap { display:grid; gap:6px; margin:9px 0 0 28px; }
.distribution-related-person { display:grid; grid-template-columns:minmax(150px,1fr) auto minmax(150px,auto) auto; align-items:center; gap:8px; padding:7px 9px; border:1px solid var(--line); border-radius:8px; background:#141b26; }
.distribution-related-person small { color:var(--muted); }
.distribution-related-name-edit { border:0; background:transparent; color:#76a9fa; font-size:10px; cursor:pointer; }
.distribution-cast-type { padding:3px 7px; border-radius:999px; font-size:10px; font-weight:750; }
.distribution-cast-type.is-holder { background:#1d3152; color:#9fc4ff; }
.distribution-cast-type.is-alternate { background:#3b2e18; color:#f0ca78; }
.distribution-cast-type.is-shared { background:#153324; color:#8ed0aa; }
.distribution-casting-options { margin:9px 0 0 28px; padding-top:8px; border-top:1px solid var(--line); }
.distribution-casting-options > summary, .distribution-shared-rare > summary { cursor:pointer; color:var(--muted); font-size:11px; font-weight:650; }
.distribution-shared-rare { width:100%; margin:10px 0 0 28px; }
.casting-reference-card { margin:14px 0; padding:14px; border:1px solid #435064; border-radius:10px; background:#121925; }
.casting-reference-head { display:flex; align-items:flex-start; justify-content:space-between; gap:12px; margin-bottom:10px; }
.casting-reference-content { padding-top:4px; }
.casting-reference-content > p { margin:9px 0; color:var(--muted); font-size:11px; line-height:1.45; }
.casting-reference-head h4 { margin:2px 0 0; }
.source-badge.casting-ok { border-color:#31694b; background:#153324; color:#8ed0aa; }
.source-badge.casting-gap { border-color:#765c27; background:#302511; color:#f0ca78; }
.casting-reference-list { display:grid; gap:9px; margin-bottom:10px; }
.casting-reference-group { display:grid; gap:5px; padding:8px; border:1px solid var(--line); border-radius:9px; background:#141b26; }
.casting-reference-row { display:grid; grid-template-columns:minmax(140px,1fr) auto minmax(90px,auto); align-items:center; gap:10px; padding:6px 7px; border-radius:7px; background:#111721; }
.casting-reference-related { margin-left:20px; }
.casting-reference-row > b { color:#76a9fa; font-size:10px; }
.casting-reference-card > p { margin:9px 0 0; color:var(--muted); font-size:11px; line-height:1.45; }
.casting-reference-actions { margin-top:10px; border-top:1px solid var(--line); padding-top:9px; }
.casting-reference-actions > summary { color:#76a9fa; cursor:pointer; font-size:11px; font-weight:700; }
.radio { display:inline-flex; align-items:center; gap:6px; margin:6px 14px 6px 0; color:var(--txt) !important; }
.radio input { width:auto; }
.chk { display:flex; align-items:center; gap:6px; margin:8px 0 !important; font-size:13px !important; }
.chk input[type=checkbox] { width:auto; }
.chk .mb-input { width:64px !important; padding:5px 6px !important; display:inline-block; }

/* éditeur texte enrichi */
.rt-toolbar { display:flex; gap:6px; margin-bottom:6px; }
.rt-toolbar button { padding:5px 10px; border:1px solid var(--line); background:#222632; color:var(--txt); border-radius:6px; cursor:pointer; }
.rt-editor { min-height:140px; padding:12px; border:1px solid var(--line); border-radius:8px; background:#11141a; line-height:1.5; }
.rt-editor:focus { outline:1px solid var(--accent); }
/* Séparation visuelle nette entre bande-annonce H / V / captation : chacune son bloc,
   avec une bordure de couleur distincte pour repérer le type au premier coup d'œil. */
.media-block { background:#161a23; border:1px solid var(--line); border-left:4px solid var(--line); border-radius:10px; padding:16px; margin:14px 0; }
.media-block h4 { margin-top:0; }
.media-block + .media-block { margin-top:18px; }
.media-h { border-left-color:#4f8ff0; }
.media-v { border-left-color:#b98af0; }
.media-youtube { border-left-color:#e0556a; }
.media-cap { border-left-color:#e0a94f; }
.media-block.is-selected-source { box-shadow:0 0 0 1px rgba(118,169,250,.45); }
.site-publication { display:flex; align-items:center; justify-content:space-between; gap:14px; flex-wrap:wrap; margin:12px 0; padding:11px 12px; border:1px solid var(--line); border-radius:8px; background:#11141a; }
.site-publication > span { color:var(--muted); font-size:12px; }
.site-toggle-list { display:flex; align-items:center; gap:14px; flex-wrap:wrap; }
.site-toggle { display:inline-flex !important; align-items:center; gap:7px; margin:0 !important; color:var(--txt) !important; cursor:pointer; font-size:12px !important; }
.site-toggle input { position:absolute; opacity:0; pointer-events:none; }
.site-toggle .toggle-track { position:relative; display:inline-block; width:34px; height:19px; border-radius:999px; background:#3a4250; transition:background .18s; }
.site-toggle .toggle-track::after { content:""; position:absolute; top:3px; left:3px; width:13px; height:13px; border-radius:50%; background:#fff; transition:transform .18s; }
.site-toggle input:checked + .toggle-track { background:var(--ok); }
.site-toggle input:checked + .toggle-track::after { transform:translateX(15px); }
.site-toggle input:focus-visible + .toggle-track { outline:2px solid #76a9fa; outline-offset:2px; }
.site-toggle b { font-size:12px; white-space:nowrap; }
.trailer-file video { width:100%; max-height:220px; border-radius:8px; margin-bottom:8px; background:#000; }
.upload-limit { margin:9px 0; padding:9px 11px; border:1px solid #5a4826; border-radius:7px; background:#241e13; color:#d8b56c; font-size:12px; line-height:1.45; }
.upload-limit b { color:#f0ca78; }
.video-url { display:flex; gap:6px; margin-bottom:8px; }
.video-url input { flex:1; padding:6px 8px; border-radius:6px; border:1px solid var(--line); background:#11141a; color:var(--muted); font-size:12px; }
.captation-file video { width:100%; max-height:220px; border-radius:8px; margin-bottom:8px; background:#000; }
.cap-progress { margin:10px 0 4px; }
.cap-bar { height:8px; border-radius:6px; background:#11141a; border:1px solid var(--line); overflow:hidden; }
.cap-bar span { display:block; height:100%; width:0; background:var(--accent); transition:width .2s; }
.cap-progress small { display:block; color:var(--muted); font-size:12px; margin-top:4px; }
/* État « indéterminé » : pas de % réel disponible (compression serveur, pas d'upload à
   mesurer) — une barre qui glisse indique qu'un traitement est en cours. */
.cap-bar.indeterminate span { width:35%; animation: cap-indeterminate 1.1s ease-in-out infinite; }
@keyframes cap-indeterminate {
    0%   { margin-left: -35%; }
    100% { margin-left: 100%; }
}
.actions { margin-top:20px; display:flex; align-items:center; }

/* ressources de production */
.production-resources { margin:28px 0; padding-top:10px; border-top:1px solid var(--line); }
.production-resources > h3 { margin:18px 0; font-size:20px; }
.resource-block { margin:14px 0; padding:16px; background:#161a23; border:1px solid var(--line); border-radius:10px; }
.resource-head { display:flex; align-items:flex-start; justify-content:space-between; gap:16px; margin-bottom:14px; }
.resource-head h4 { margin:0 0 4px; }
.resource-head p { margin:0; font-size:12px; }
.resource-head .btn { flex:0 0 auto; }
.resource-head-actions { display:flex; flex-wrap:wrap; justify-content:flex-end; gap:8px; }
.resource-grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(140px,1fr)); gap:12px; }
.resource-card { min-width:0; overflow:hidden; background:#11141a; border:1px solid var(--line); border-radius:9px; }
.resource-preview { display:block; height:115px; background:#0b0d11; }
.resource-preview img { width:100%; height:100%; object-fit:cover; }
.resource-meta { display:flex; min-width:0; flex:1; flex-direction:column; gap:3px; }
.resource-meta strong, .sound-title strong { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; font-size:13px; }
.resource-meta small, .sound-title small { color:var(--muted); font-size:11px; }
.resource-card .resource-meta { padding:9px 9px 5px; }
.resource-delete { padding:5px 9px; border:0; background:transparent; color:#e47787; cursor:pointer; font-size:12px; }
.resource-delete:hover { color:#ff97a6; }
.resource-card .resource-delete { width:100%; text-align:left; }
.resource-row { display:flex; align-items:center; gap:12px; padding:12px; background:#11141a; border:1px solid var(--line); border-radius:9px; }
.resource-icon { font-size:24px; }
.sound-list { display:flex; flex-direction:column; gap:9px; }
.sound-row { display:grid; grid-template-columns:minmax(130px,1fr) auto auto auto; align-items:center; gap:10px; padding:10px 12px; background:#11141a; border:1px solid var(--line); border-radius:9px; }
.sound-title { display:flex; min-width:0; flex-direction:column; gap:3px; }
.sound-row .btn { padding:7px 10px; font-size:12px; }
.audio-preview { min-width:104px; }
.audio-preview.is-playing { border-color:#76a9fa; color:#fff; }
.resource-empty { margin:8px 0; font-size:13px; }
.resource-message { min-height:16px; margin:10px 0 0; color:var(--ok); font-size:13px; }
.resource-collapsible { padding:0; }
.resource-collapsible > summary { display:flex; align-items:center; gap:14px; padding:16px; cursor:pointer; list-style:none; background:#1c2432; border-radius:9px; font-weight:600; transition:background .15s,border-color .15s; }
.resource-collapsible > summary:hover { background:#222d3f; }
.resource-collapsible > summary::-webkit-details-marker { display:none; }
.resource-collapsible[open] > summary { border-radius:9px 9px 0 0; background:#202b3d; }
.collapse-title { font-size:15px; }
.resource-collapsible > summary small { margin-left:auto; color:var(--muted); font-weight:400; }
.resource-collapsible-body { padding:0 16px 16px; border-top:1px solid var(--line); }
.resource-collapsible-body > .resource-head { align-items:center; margin-top:14px; }
.collapse-hint { display:inline-flex; align-items:center; gap:8px; padding:7px 10px; border:1px solid #4f8ff0; border-radius:7px; color:#aecdff; font-size:12px; font-weight:600; white-space:nowrap; }
.collapse-hint b { display:inline-block; color:#76a9fa; font-size:17px; line-height:10px; transition:transform .15s; }
.when-open { display:none; }
details[open] .collapse-hint .when-closed { display:none; }
details[open] .collapse-hint .when-open { display:inline; }
details[open] .collapse-hint b { transform:rotate(180deg); }

/* drive */
.crumbs { color:var(--muted); margin-top:6px; }
.crumbs a { color:var(--accent); }
.drive-actions { display:flex; gap:10px; margin:16px 0; }
.drive-grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(150px,1fr)); gap:14px; }
.tile { background:var(--card); border:1px solid var(--line); border-radius:10px; padding:10px; text-align:center; display:flex; flex-direction:column; gap:6px; align-items:center; }
.tile .thumb { width:100%; height:100px; display:flex; align-items:center; justify-content:center; font-size:32px; background:#11141a; border-radius:8px; overflow:hidden; }
.tile .thumb img { width:100%; height:100%; object-fit:cover; }
.tile span { font-size:12px; word-break:break-all; }
.tile small { color:var(--muted); }
.tile .del { font-size:11px; color:#e0556a; background:none; border:none; cursor:pointer; }
.tile.dir .thumb { font-size:40px; }

/* partage public */
.share-sheet { max-width:1000px; margin:0 auto; padding:12px 0 48px; }
.share-title { margin:20px 0 28px; }
.share-title h1 { max-width:820px; font-size:clamp(32px,5vw,56px); line-height:1.05; letter-spacing:-.035em; }
.share-kicker { margin:0 0 8px; color:#76a9fa; font-size:12px; font-weight:700; letter-spacing:.12em; text-transform:uppercase; }
.share-main { display:grid; grid-template-columns:minmax(280px,380px) minmax(0,1fr); gap:clamp(28px,5vw,64px); align-items:start; }
.share-poster { position:sticky; top:24px; }
.share-aff { display:block; width:100%; max-height:70vh; object-fit:contain; border-radius:16px; background:#11141a; box-shadow:0 18px 50px rgba(0,0,0,.3); }
.share-download { display:block; width:100%; margin-top:14px; padding:12px 16px; text-align:center; }
.share-poster-empty { aspect-ratio:2/3; display:flex; align-items:center; justify-content:center; padding:24px; border:1px dashed var(--line); border-radius:16px; color:var(--muted); text-align:center; }
.share-details { display:flex; flex-direction:column; gap:18px; }
.share-info-card { padding:24px; background:var(--card); border:1px solid var(--line); border-radius:16px; }
.share-section-title { display:flex; align-items:center; justify-content:space-between; gap:16px; margin-bottom:14px; }
.share-section-title h2 { margin:0; font-size:18px; }
.share-section-title .copy-btn { flex:0 0 auto; padding:7px 11px; }
.share-authors { margin:0; font-size:18px; line-height:1.5; }
.share-pitch-text { color:#d9dee8; font-size:17px; line-height:1.72; }
.share-pitch-text strong { color:#fff; }
.share-block-heading { margin-bottom:18px; }
.share-block-heading h2 { margin:0; font-size:24px; }
.share-heading-row { display:flex; align-items:center; justify-content:space-between; gap:16px; }
.share-media { margin-top:42px; padding-top:32px; border-top:1px solid var(--line); }
.share-resource-section { margin-top:42px; padding-top:32px; border-top:1px solid var(--line); }
.share-document { display:flex; align-items:center; gap:14px; padding:18px; background:var(--card); border:1px solid var(--line); border-radius:12px; }
.share-document > div { display:flex; flex:1; flex-direction:column; gap:4px; }
.share-document small, .share-sound small { color:var(--muted); font-size:12px; }
.share-resource-icon { font-size:28px; }
.share-sounds { display:flex; flex-direction:column; gap:10px; }
.share-sounds-section { padding-top:0; }
.share-sounds-section > summary { display:flex; align-items:center; gap:18px; padding:18px; cursor:pointer; list-style:none; background:var(--card); border:1px solid var(--line); border-radius:12px; transition:background .15s,border-color .15s; }
.share-sounds-section > summary:hover { background:#202530; border-color:#3a4250; }
.share-sounds-section > summary::-webkit-details-marker { display:none; }
.share-sounds-section > summary > span:first-child { display:flex; flex-direction:column; gap:5px; }
.share-sounds-section > summary .share-kicker { margin:0; }
.share-sounds-section > summary strong { font-size:24px; }
.share-summary-count { margin-left:auto; color:var(--muted); font-size:13px; }
.share-sounds-body { padding-top:14px; }
.share-download-all { margin-bottom:14px; }
.share-sound { display:grid; grid-template-columns:minmax(160px,1fr) auto auto; align-items:center; gap:14px; padding:12px 14px; background:var(--card); border:1px solid var(--line); border-radius:12px; }
.share-sound > div { display:flex; min-width:0; flex-direction:column; gap:3px; }
.share-sound strong { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.share-grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(180px,1fr)); gap:16px; }
.share-item { background:var(--card); border:1px solid var(--line); border-radius:10px; padding:12px; text-align:center; }
.share-item .thumb { height:160px; display:flex; align-items:center; justify-content:center; font-size:40px; overflow:hidden; margin-bottom:10px; }
.share-item .thumb img { max-width:100%; max-height:100%; object-fit:contain; }
.share-captation { background:var(--card); border:1px solid var(--line); border-radius:16px; padding:24px; margin:42px 0 0; text-align:center; }
.share-captation h2 { margin:0 0 4px; }
.share-captation video { width:100%; border-radius:10px; background:#000; margin:12px 0; }

@media (max-width:720px) {
  .fiche { grid-template-columns:1fr; }
  .field-grid { grid-template-columns:1fr; }
  .fiche-section-head { flex-direction:column; }
  .share-title { margin-top:10px; }
  .share-main { grid-template-columns:1fr; }
  .share-poster { position:static; max-width:420px; width:100%; margin:0 auto; }
  .share-aff { max-height:none; }
  .share-info-card { padding:20px; }
  .share-pitch-text { font-size:16px; }
  .resource-head { flex-direction:column; }
  .sound-row, .share-sound { grid-template-columns:1fr; }
  .resource-row, .share-document { align-items:flex-start; flex-wrap:wrap; }
  .distribution-related-recap { margin-left:0; }
  .distribution-related-person, .casting-reference-row { grid-template-columns:1fr auto; }
  .distribution-related-person small, .distribution-related-name-edit, .casting-reference-row > b { grid-column:1 / -1; }
  .casting-reference-related { margin-left:10px; }
}

/* --- point d'interet des visuels ------------------------------------- */
/* Cliquer place la cible que tous les recadrages garderont au centre. */
.focus-pick { position: relative; display: block; cursor: crosshair; }
.focus-dot {
  position: absolute; width: 16px; height: 16px; margin: -8px 0 0 -8px;
  border: 2px solid #fff; border-radius: 50%;
  box-shadow: 0 0 0 2px rgba(0, 0, 0, .55), 0 1px 4px rgba(0, 0, 0, .5);
  pointer-events: none;
}
.focus-dot::after {
  content: ''; position: absolute; inset: 5px; border-radius: 50%; background: #fff;
}
.focus-state { font-variant: all-small-caps; letter-spacing: .02em; }
