/* ProdMap — feuille de service : carte à gauche, liste à droite, catégories en bouts de gaffer */
:root{
  --bg:#e8eaeb; --surface:#f7f8f8; --ink:#15191c; --muted:#59636a; --line:#c8cdd1;
  --land:#d9dee1; --land-edge:#a9b1b7; --gaffer:#f2c230; --gaffer-ink:#1b1a12;
  --c-prod:#e2ae12; --c-mat:#2b6cd4; --c-vehic:#de5640; --c-studio:#25915c; --c-inst:#7d5bc4; --c-post:#0f8b9a;
  --ok:#25915c; --warn:#b5520f; --focus:#2b6cd4;
  --f-display:"Big Shoulders Display","Arial Narrow","Roboto Condensed",Impact,sans-serif;
  --f-body:"IBM Plex Sans",system-ui,-apple-system,"Segoe UI",sans-serif;
  --f-mono:"IBM Plex Mono",ui-monospace,"SF Mono",Menlo,monospace;
  color-scheme:light;
}
@media (prefers-color-scheme: dark){:root:not([data-theme="light"]){
  --bg:#111416; --surface:#192024; --ink:#e7ebed; --muted:#97a2a9; --line:#2d353a;
  --land:#232b30; --land-edge:#46525a;
  --c-prod:#f0c033; --c-mat:#5b93f0; --c-vehic:#f07a63; --c-studio:#45b47c; --c-inst:#a487e6; --c-post:#3cc0cf;
  --ok:#45b47c; --warn:#f0954f; --focus:#5b93f0; color-scheme:dark }}
:root[data-theme="dark"]{
  --bg:#111416; --surface:#192024; --ink:#e7ebed; --muted:#97a2a9; --line:#2d353a;
  --land:#232b30; --land-edge:#46525a;
  --c-prod:#f0c033; --c-mat:#5b93f0; --c-vehic:#f07a63; --c-studio:#45b47c; --c-inst:#a487e6; --c-post:#3cc0cf;
  --ok:#45b47c; --warn:#f0954f; --focus:#5b93f0; color-scheme:dark }

*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{background:var(--bg);color:var(--ink);font:15px/1.5 var(--f-body);margin:0;min-height:100vh;display:flex;flex-direction:column}
a{color:inherit}
:focus-visible{outline:2px solid var(--focus);outline-offset:2px}
[hidden]{display:none!important}
.wrap{padding-left:max(16px,env(safe-area-inset-left,0px));padding-right:max(16px,env(safe-area-inset-right,0px));max-width:1440px;margin:0 auto;width:100%}
.muted{color:var(--muted)}
.vh{position:absolute;width:1px;height:1px;opacity:0;pointer-events:none}

/* En-tête */
header.site{position:sticky;top:0;z-index:20;background:var(--bg);border-bottom:1px solid var(--line);padding-top:env(safe-area-inset-top,0px)}
.top{display:flex;align-items:center;gap:8px 20px;flex-wrap:wrap;padding-block:10px}
.logo{display:inline-block;background:var(--gaffer);color:var(--gaffer-ink);font:900 28px/1 var(--f-display);text-transform:uppercase;letter-spacing:.02em;padding:7px 16px 5px;text-decoration:none;
  clip-path:polygon(0 8%,4% 0,9% 10%,14% 2%,100% 0,96% 35%,100% 60%,97% 100%,91% 90%,86% 100%,0 100%,3% 60%);transform:rotate(-1.5deg)}
nav.tabs{display:flex;gap:2px;overflow-x:auto;flex:1;min-width:0;scrollbar-width:none}
nav.tabs a{font:700 17px/1 var(--f-display);text-transform:uppercase;letter-spacing:.04em;text-decoration:none;color:var(--muted);padding:10px 12px 8px;border-bottom:3px solid transparent;white-space:nowrap}
nav.tabs a[aria-current="page"]{color:var(--ink);border-bottom-color:var(--gaffer)}
nav.tabs a.acct{margin-left:auto;color:var(--ink)}
nav.tabs .install{margin-left:auto;align-self:center;font:600 13px/1 var(--f-body);background:var(--gaffer);color:var(--gaffer-ink);border:0;border-radius:3px;padding:7px 10px;cursor:pointer;white-space:nowrap}
nav.tabs .install:not([hidden]) + a.acct{margin-left:0}
.offline{background:var(--warn);color:#fff;font:500 13px/1.4 var(--f-body);text-align:center;padding:6px 16px}
.ios-help{position:fixed;left:12px;right:12px;bottom:max(12px,env(safe-area-inset-bottom,0px));z-index:3000;background:var(--surface);color:var(--ink);border:1px solid var(--line);border-radius:8px;box-shadow:0 8px 30px rgba(0,0,0,.25);padding:14px 16px;font-size:14px}
.ios-help button{float:right;background:none;border:0;font-size:20px;line-height:1;color:var(--muted);cursor:pointer}
.badge{display:inline-block;margin-left:6px;font:500 11px/1 var(--f-mono);background:var(--warn);color:#fff;border-radius:9px;padding:3px 6px;vertical-align:2px}

main{padding-block:20px 48px;flex:1}
.intro{display:flex;flex-direction:column;gap:6px;margin-bottom:18px}
h1{font:800 clamp(30px,4.4vw,44px)/1 var(--f-display);text-transform:uppercase;letter-spacing:.01em;margin:0;text-wrap:balance}
h2{font:800 24px/1.1 var(--f-display);text-transform:uppercase;letter-spacing:.01em;margin:28px 0 10px}
.intro p,.lead{margin:0;color:var(--muted);max-width:66ch}
.stats{font:500 12px/1.3 var(--f-mono);color:var(--muted);text-transform:uppercase;letter-spacing:.06em;display:flex;gap:16px}
.stats b{color:var(--ink);font-weight:500;font-variant-numeric:tabular-nums}
.row-gap{display:flex;flex-wrap:wrap;gap:10px;margin-top:6px}

/* Grille carte + liste */
.grid{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(0,1fr);gap:20px;align-items:start}
.grid.people{grid-template-columns:minmax(0,1fr) minmax(0,1.1fr)}
@media (max-width:860px){.grid,.grid.people{grid-template-columns:minmax(0,1fr)}}
.mapbox{position:sticky;top:76px;background:var(--surface);border:1px solid var(--line);border-radius:6px;overflow:hidden;height:clamp(340px,74vh,820px);isolation:isolate}
@media (max-width:860px){.mapbox{position:relative;top:0;height:clamp(320px,92vw,520px)}}
#map{position:absolute;inset:0;background:#1d2a33}
.leaflet-container{font-family:var(--f-body)}
.pm-pin span{display:block;width:100%;height:100%;border-radius:50%;border:2.5px solid #fff;box-shadow:0 1px 4px rgba(0,0,0,.55)}
.pm-pin.sel span{border-color:#111;box-shadow:0 0 0 3px #fff,0 2px 8px rgba(0,0,0,.6)}
.pm-cluster{display:grid;place-items:center;background:rgba(21,25,28,.88);color:#fff;border:2.5px solid #fff;border-radius:50%;font:600 13px var(--f-mono);box-shadow:0 1px 6px rgba(0,0,0,.5)}
.leaflet-tooltip{font:500 13px var(--f-body)}
.mapctl{position:absolute;right:10px;top:10px;display:flex;flex-direction:column;gap:6px;z-index:500}
.mapctl button,.jump button,.basesw button{font:600 13px var(--f-mono);background:var(--surface);color:var(--ink);border:1px solid var(--line);border-radius:4px;min-width:34px;height:34px;cursor:pointer;box-shadow:0 1px 4px rgba(0,0,0,.25)}
.mapctl button:hover,.jump button:hover,.basesw button:hover{border-color:var(--ink)}
.jump{position:absolute;left:10px;bottom:22px;right:56px;display:flex;flex-wrap:wrap;gap:6px;z-index:500}
.jump button{height:30px;padding:0 10px;font-size:12px}
.basesw{position:absolute;left:10px;top:10px;display:flex;z-index:500;box-shadow:0 1px 4px rgba(0,0,0,.25);border-radius:4px}
.basesw button{height:32px;padding:0 12px;font-size:12px;box-shadow:none;border-radius:0}
.basesw button:first-child{border-radius:4px 0 0 4px}.basesw button:last-child{border-radius:0 4px 4px 0;border-left:0}
.basesw button[aria-pressed="true"]{background:var(--gaffer);color:var(--gaffer-ink);border-color:var(--gaffer)}

.side{display:flex;flex-direction:column;gap:14px;min-width:0}
.search{font:15px var(--f-body);padding:11px 12px;border:1px solid var(--line);border-radius:4px;background:var(--surface);color:var(--ink);width:100%}
.chips{display:flex;flex-wrap:wrap;gap:8px}
.tape{--c:var(--muted);display:inline-flex;align-items:center;gap:6px;font:700 15px/1 var(--f-display);text-transform:uppercase;letter-spacing:.04em;padding:7px 12px 6px;border:0;cursor:pointer;
  background:var(--c);color:#fff;clip-path:polygon(0 0,100% 0,97% 25%,100% 50%,97% 75%,100% 100%,0 100%,3% 75%,0 50%,3% 25%)}
.tape[data-cat="prod"]{--c:var(--c-prod);color:var(--gaffer-ink)}
.tape[data-cat="mat"]{--c:var(--c-mat)} .tape[data-cat="vehic"]{--c:var(--c-vehic)} .tape[data-cat="studio"]{--c:var(--c-studio)} .tape[data-cat="inst"]{--c:var(--c-inst)} .tape[data-cat="post"]{--c:var(--c-post)}
.tape[data-cat="audiovisuel"]{--c:var(--c-mat)} .tape[data-cat="evenementiel"]{--c:var(--c-vehic)} .tape[data-cat="les-deux"]{--c:var(--c-studio)}
.tape[aria-pressed="false"]{background:transparent;color:var(--muted);box-shadow:inset 0 0 0 1.5px var(--line);clip-path:none;border-radius:2px}
.tape .n{font:500 11px var(--f-mono);opacity:.85}
.tape.small{font-size:13px;padding:5px 9px 4px;cursor:default}

.detail{background:var(--surface);border:1px solid var(--line);border-radius:6px;padding:16px 18px;display:flex;flex-direction:column;gap:10px;min-width:0}
.detail.sticky{position:sticky;top:76px}
@media (max-width:860px){.detail.sticky{position:static}}
.detail h2{font-size:28px;margin:0;line-height:1.05;text-wrap:balance}
.meta{font:500 12px var(--f-mono);color:var(--muted);text-transform:uppercase;letter-spacing:.05em}
.detail p{margin:0;max-width:62ch;overflow-wrap:anywhere}
.links{display:flex;flex-wrap:wrap;gap:8px}
.gate{border:1.5px dashed var(--line);border-radius:6px;padding:14px;display:flex;flex-direction:column;gap:10px;align-items:flex-start}
.gate p{margin:0}
.kv{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:6px 12px;align-items:center}
.kv dt{font:500 12px var(--f-mono);color:var(--muted);text-transform:uppercase;letter-spacing:.05em}
.kv dd{margin:0;overflow-wrap:anywhere;user-select:text}
.src{font:500 11px var(--f-mono);color:var(--muted)}

.btn{font:600 14px var(--f-body);display:inline-flex;align-items:center;gap:6px;padding:8px 13px;border-radius:4px;border:1px solid var(--line);background:var(--surface);color:var(--ink);text-decoration:none;cursor:pointer}
.btn:hover{border-color:var(--ink)}
.btn:disabled{opacity:.55;cursor:default}
.btn.primary{background:var(--ink);color:var(--surface);border-color:var(--ink)}
.btn.ok{background:var(--ok);border-color:var(--ok);color:#fff}
.btn.danger{color:var(--warn);border-color:currentColor;background:transparent}
.btn.mini{padding:4px 8px;font-size:12.5px}
.linkbtn{all:unset;cursor:pointer;color:var(--muted);text-decoration:underline;font-size:14px}
.linkbtn:focus-visible{outline:2px solid var(--focus)}

.listhead{display:flex;justify-content:space-between;align-items:baseline;gap:8px;font:500 12px var(--f-mono);color:var(--muted);text-transform:uppercase;letter-spacing:.06em}
ul.list{list-style:none;margin:0;padding:0;border-top:1px solid var(--line)}
ul.list li{border-bottom:1px solid var(--line)}
ul.list button{all:unset;box-sizing:border-box;display:grid;grid-template-columns:10px minmax(0,1fr) auto;gap:4px 12px;align-items:baseline;width:100%;padding:11px 6px;cursor:pointer}
ul.list button:hover,ul.list button[aria-selected="true"]{background:var(--surface)}
ul.list button:focus-visible{outline:2px solid var(--focus);outline-offset:-2px}
ul.plain li{padding:10px 4px;display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap}
.dot{width:10px;height:10px;border-radius:50%;align-self:center}
.nm{font-weight:600;min-width:0;overflow-wrap:anywhere}
.ct{font:500 12px var(--f-mono);color:var(--muted);text-align:right}
.ds{grid-column:2/4;color:var(--muted);font-size:13.5px;min-width:0}
.empty{padding:22px 4px;color:var(--muted)}
.status{font:500 11px var(--f-mono);text-transform:uppercase;letter-spacing:.06em;padding:3px 7px;border-radius:3px;border:1px solid currentColor}
.status.pending{color:var(--warn)} .status.published{color:var(--ok)} .status.rejected{color:var(--muted)}

/* Avis */
.reviews{display:flex;flex-direction:column;gap:10px;border-top:1px solid var(--line);padding-top:12px}
.review{display:flex;flex-direction:column;gap:2px}
.stars{color:var(--c-prod);letter-spacing:2px;font-size:15px}
.starpick{display:flex;gap:2px}
.starpick button{all:unset;cursor:pointer;font-size:24px;color:var(--line);padding:0 2px}
.starpick button[aria-pressed="true"]{color:var(--c-prod)}
.starpick button:focus-visible{outline:2px solid var(--focus)}

/* Formulaires */
.panel{max-width:780px;display:flex;flex-direction:column;gap:14px}
.panel.wide{max-width:1100px}
form.f,.f{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px 16px;background:var(--surface);border:1px solid var(--line);border-radius:6px;padding:18px}
@media (max-width:600px){form.f,.f{grid-template-columns:minmax(0,1fr)}}
.f h2{margin:0}
.full{grid-column:1/-1}
.fld{display:flex;flex-direction:column;gap:5px;min-width:0}
.fld label{font:600 12px var(--f-mono);text-transform:uppercase;letter-spacing:.06em;color:var(--muted)}
.fld input,.fld select,.fld textarea{font:15px var(--f-body);padding:10px 11px;border:1px solid var(--line);border-radius:4px;background:var(--bg);color:var(--ink);width:100%}
.fld textarea{min-height:96px;resize:vertical}
.fld small{color:var(--muted);font-size:12.5px}
.check{display:flex;gap:10px;align-items:flex-start;font-size:14.5px}
.check input{margin-top:3px;width:17px;height:17px;flex:none}
fieldset.opts{border:1px solid var(--line);border-radius:4px;padding:10px 14px 12px;display:flex;flex-wrap:wrap;gap:8px 22px}
fieldset.opts legend{font:600 12px var(--f-mono);text-transform:uppercase;letter-spacing:.06em;color:var(--muted);padding:0 6px}
.formrow{grid-column:1/-1;display:flex;flex-wrap:wrap;align-items:center;gap:12px}
.msg{font-size:14px;margin:0}
.msg.ok{color:var(--ok)} .msg.err{color:var(--warn)}
.seg{display:inline-flex;border:1px solid var(--line);border-radius:4px;overflow:hidden;width:max-content;max-width:100%}
.seg button{all:unset;cursor:pointer;padding:9px 14px;font:600 14px var(--f-body);color:var(--muted)}
.seg button[aria-selected="true"]{background:var(--ink);color:var(--surface)}
.seg button:focus-visible{outline:2px solid var(--focus);outline-offset:-2px}
.acct-head{display:flex;flex-wrap:wrap;align-items:baseline;gap:6px 16px}
.cvbox{margin-top:14px}

/* Modération */
.mod{display:flex;flex-direction:column;gap:12px}
.card{background:var(--surface);border:1px solid var(--line);border-radius:6px;padding:14px 16px;display:flex;flex-direction:column;gap:10px}
.card h3{margin:0;font:800 22px/1.1 var(--f-display);text-transform:uppercase}
.card .row{display:flex;flex-wrap:wrap;gap:10px;align-items:end}
.card .row .fld{width:130px}

/* Pages légales */
.legal h2{font-size:22px}
.legal p,.legal li{max-width:72ch}
.todo{background:var(--gaffer);color:var(--gaffer-ink);padding:0 4px;font-weight:600}

.site-foot{display:flex;flex-wrap:wrap;justify-content:space-between;gap:10px 20px;padding-block:18px calc(18px + env(safe-area-inset-bottom,0px));border-top:1px solid var(--line);color:var(--muted);font-size:13.5px}
.site-foot nav{display:flex;flex-wrap:wrap;gap:16px}
.toast{position:fixed;left:50%;bottom:calc(20px + env(safe-area-inset-bottom,0px));transform:translateX(-50%);background:var(--ink);color:var(--surface);padding:10px 16px;border-radius:4px;font-size:14px;z-index:50;max-width:calc(100% - 32px)}
@media (prefers-reduced-motion: reduce){*{transition:none!important;scroll-behavior:auto!important}}

/* Fiche société : formulaire et infos légales */
.cform{display:flex;flex-direction:column;gap:16px}
.grid2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px 16px}
@media (max-width:600px){.grid2{grid-template-columns:minmax(0,1fr)}}
.grid2 .sub{font:700 17px/1.1 var(--f-display);text-transform:uppercase;letter-spacing:.04em;margin:8px 0 -4px;color:var(--ink)}
.grid2 .sub .muted{font:400 12px var(--f-body);text-transform:none;letter-spacing:0}
.lbl{font:600 12px var(--f-mono);text-transform:uppercase;letter-spacing:.06em;color:var(--muted)}
.lookup{display:flex;flex-direction:column;gap:6px;background:var(--bg);border:1.5px dashed var(--line);border-radius:6px;padding:12px}
.lookrow{display:flex;gap:8px}
.lookrow input{flex:1;min-width:0;font:15px var(--f-body);padding:10px 11px;border:1px solid var(--line);border-radius:4px;background:var(--surface);color:var(--ink)}
.lkres{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:6px}
.lkres button{all:unset;box-sizing:border-box;width:100%;display:flex;flex-direction:column;gap:2px;padding:9px 11px;border:1px solid var(--line);border-radius:4px;background:var(--surface);cursor:pointer;font-size:14px}
.lkres button:hover{border-color:var(--ink)}
.lkres button:focus-visible{outline:2px solid var(--focus)}
.lkres .muted{font-size:12.5px}
.phones{display:flex;flex-direction:column;gap:6px}
.phone{display:flex;gap:6px}
.phone input{flex:1;min-width:0;font:15px var(--f-body);padding:10px 11px;border:1px solid var(--line);border-radius:4px;background:var(--bg);color:var(--ink)}
.kv2{display:grid;grid-template-columns:auto minmax(0,1fr);gap:5px 14px;margin:0;font-size:14px;border-top:1px solid var(--line);padding-top:10px}
.kv2 dt{font:500 11.5px var(--f-mono);color:var(--muted);text-transform:uppercase;letter-spacing:.05em;padding-top:2px}
.kv2 dd{margin:0;overflow-wrap:anywhere}

/* Postes multiples */
.hint{font:400 12px var(--f-body);text-transform:none;letter-spacing:0;color:var(--muted)}
.jobpick{display:flex;flex-wrap:wrap;gap:6px;align-items:center;border:1px solid var(--line);border-radius:4px;background:var(--bg);padding:6px}
.jobpick input{flex:1;min-width:180px;border:0!important;background:transparent!important;padding:6px!important}
.jobchips,.jobtags{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:6px}
.jobchips li{display:inline-flex;align-items:center;gap:6px;background:var(--surface);border:1px solid var(--line);border-radius:3px;padding:4px 4px 4px 9px;font-size:14px}
.jobchips li.main,.jobtags li.main{border-color:var(--ink);font-weight:600}
.jobchips button{all:unset;cursor:pointer;padding:0 5px;color:var(--muted)}
.jobchips button:focus-visible{outline:2px solid var(--focus)}
.jobtags li{border:1px solid var(--line);border-radius:3px;padding:3px 8px;font-size:13.5px}
select.search{appearance:auto}

/* --- v1.4 : pros sur la carte, filtres, dispos, missions, filmographies, fiches vérifiées, prépa --- */
.layersw{display:flex;align-items:center;flex-wrap:wrap;gap:6px}
.layersw .lbl{font:600 11.5px var(--f-mono);text-transform:uppercase;letter-spacing:.06em;color:var(--muted);margin-right:4px}
.layersw button{font:600 13px var(--f-body);padding:6px 11px;border-radius:4px;border:1px solid var(--line);background:transparent;color:var(--muted);cursor:pointer}
.layersw button[aria-pressed="true"]{background:var(--ink);color:var(--surface);border-color:var(--ink)}
.pm-pro span{display:block;width:100%;height:100%;border-radius:3px;background:#fff;border:3px solid #15191c;box-shadow:0 1px 4px rgba(0,0,0,.55);transform:rotate(45deg)}
.pm-cluster.pros{background:#fff;color:#15191c;border-color:#15191c;border-radius:8px}
.propop{display:flex;flex-direction:column;gap:2px;font:14px var(--f-body);min-width:160px}
.propop a{margin-top:4px;font-weight:600}
.filt{display:flex;flex-direction:column;gap:8px}
.frow{display:flex;flex-wrap:wrap;align-items:center;gap:8px}
.frow label{font:600 11.5px var(--f-mono);text-transform:uppercase;letter-spacing:.06em;color:var(--muted)}
.frow input,.frow select{font:14px var(--f-body);padding:8px 9px;border:1px solid var(--line);border-radius:4px;background:var(--surface);color:var(--ink);min-width:0}
.frow input[list]{flex:1 1 140px}
.frow input[type="date"]{flex:1 1 130px}
b.dispo{font:600 11px var(--f-mono);text-transform:uppercase;color:var(--ok);letter-spacing:.04em}
.verified{display:inline-block;vertical-align:4px;font:600 11.5px/1 var(--f-mono);text-transform:uppercase;letter-spacing:.05em;color:#fff;background:var(--ok);border-radius:3px;padding:4px 6px}
.pre{white-space:pre-line}
.detail h3.sub,.f h3.sub,.pp h3.sub{font:600 11.5px var(--f-mono);text-transform:uppercase;letter-spacing:.06em;color:var(--muted);margin:6px 0 6px}
.banner{background:var(--ok);color:#fff;font-weight:600;padding:6px 10px;border-radius:4px;align-self:flex-start}
.claim{border-top:1px solid var(--line);padding-top:10px}
.claimform,.creditform{background:var(--bg);border:1px solid var(--line);border-radius:6px;padding:14px}
.creditform{margin-top:12px}

/* calendriers */
.calwrap{display:flex;flex-direction:column;gap:8px}
.calnav{display:flex;gap:6px}
.cals{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:16px}
.cals.small{grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:12px}
.calh{font:800 18px/1 var(--f-display);text-transform:uppercase;margin-bottom:6px}
.calg{display:grid;grid-template-columns:repeat(7,1fr);gap:3px}
.calg .wd{font:500 11px var(--f-mono);color:var(--muted);text-align:center}
.calg button,.calg .d{font:500 13px var(--f-mono);aspect-ratio:1;display:grid;place-items:center;border-radius:4px;border:1px solid var(--line);background:var(--surface);color:var(--ink);padding:0;min-height:30px}
.calg button{cursor:pointer}
.calg button:hover:not(:disabled){border-color:var(--ink)}
.calg button[aria-pressed="true"],.calg .d.on{background:var(--ok);border-color:var(--ok);color:#fff}
.calg button:disabled,.calg .d.past{opacity:.35;cursor:default}
.calg button.today{box-shadow:inset 0 0 0 2px var(--gaffer)}
.cals.small .calg .d{min-height:24px;font-size:11.5px}

/* filmographies */
.posters{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(118px,1fr));gap:14px}
.posters li{display:flex;flex-direction:column;gap:6px;min-width:0}
.poster{aspect-ratio:2/3;border-radius:4px;overflow:hidden;position:relative;display:flex;flex-direction:column;justify-content:space-between;padding:9px;color:#fff;background:#2a3238;box-shadow:0 1px 4px rgba(0,0,0,.25)}
.poster img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.poster .pk{font:600 10px var(--f-mono);text-transform:uppercase;letter-spacing:.06em;opacity:.85}
.poster .pt{font:800 19px/1 var(--f-display);text-transform:uppercase;overflow-wrap:anywhere;display:-webkit-box;-webkit-line-clamp:5;-webkit-box-orient:vertical;overflow:hidden}
.poster .py{font:500 12px var(--f-mono);opacity:.85}
.poster.k-long{background:#1f2a44}.poster.k-court{background:#3b2a4d}.poster.k-serie{background:#5a2330}.poster.k-pub{background:#7a5a00}
.poster.k-clip{background:#6b1f5a}.poster.k-doc{background:#1f4a3a}.poster.k-tv{background:#1f4a66}.poster.k-event{background:#8a3a12}.poster.k-spectacle{background:#4a2a12}
.pc{display:flex;flex-direction:column;gap:1px;font-size:13px;line-height:1.3;min-width:0;overflow-wrap:anywhere}
.pc b{font-weight:600}
.pc .linkbtn{align-self:flex-start;font-size:12.5px}

/* missions */
.mform{margin-bottom:20px}

/* kit de prépa */
.progress{height:8px;border-radius:4px;background:var(--line);overflow:hidden;max-width:520px}
.progress div{height:100%;width:0;background:var(--ok);transition:width .25s}
.pp{border-top:1px solid var(--line);margin-top:18px}
.pp h2 .when{font:500 12px var(--f-mono);color:var(--muted);text-transform:none;letter-spacing:0;margin-left:8px;vertical-align:3px}
.checklist{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:12px}
.checklist .check span{display:flex;flex-direction:column;gap:3px}
.checklist .check b{font-weight:600}
.checklist small{color:var(--muted);font-size:13.5px;line-height:1.45;max-width:80ch}
.checklist input:checked+span b{text-decoration:line-through;text-decoration-color:var(--ok);text-decoration-thickness:2px}
.srcl{white-space:nowrap}
.note-maj{border-left:3px solid var(--ok);padding:8px 12px;background:color-mix(in srgb,var(--ok) 8%,transparent);max-width:80ch;font-size:14px}
.reslist{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:14px}
.res{border:1px solid var(--line);border-radius:8px;padding:12px 14px;max-width:820px}
.res-t b{font-weight:600}
.res p{margin:4px 0 8px;color:var(--muted);font-size:14px;line-height:1.45}
.res-a{display:flex;flex-wrap:wrap;gap:8px 16px;align-items:center;font-size:14px}
.tag-date{display:inline-block;font:500 11.5px var(--f-mono);color:var(--ok);border:1px solid currentColor;border-radius:10px;padding:1px 7px;margin-left:6px;vertical-align:1px}
.insts{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:6px 20px}
.insts ul,.srcs{margin:0;padding-left:18px}
@media print{
  header.site,footer,.row-gap,.progress,#toast{display:none!important}
  body{background:#fff;color:#000}
  .checklist small,.muted{color:#333}
}
.tmdbres{list-style:none;margin:4px 0 0;padding:0;border:1px solid var(--line);border-radius:4px;background:var(--surface);max-height:300px;overflow:auto}
.tmdbres button{all:unset;box-sizing:border-box;display:flex;gap:10px;align-items:center;width:100%;padding:6px 8px;cursor:pointer}
.tmdbres button:hover,.tmdbres button:focus-visible{background:var(--bg)}
.tmdbres img,.tmdbres .noimg{width:34px;height:51px;object-fit:cover;border-radius:2px;background:var(--line);flex:none}
.tmdbres span{display:flex;flex-direction:column;font-size:13.5px;line-height:1.3}
.tmdbpick{display:flex;gap:10px;align-items:center;font-size:13.5px;margin-top:6px}
.tmdbpick img{width:34px;border-radius:2px}

.morecr{align-self:flex-start;margin-top:10px}

/* --- pages publiques par société (référencement) --- */
main.static{padding-top:18px;padding-bottom:30px}
.crumbs{font:500 12.5px var(--f-mono);color:var(--muted);margin-bottom:14px}
.crumbs a{color:var(--muted)}
.sheet{gap:12px}
.sheet h1{display:flex;flex-wrap:wrap;align-items:center;gap:10px}
.sheet .meta{font:500 13px var(--f-mono);color:var(--muted);text-transform:uppercase;letter-spacing:.05em;margin:0}
.sheet h2{margin:18px 0 6px}
.small{font-size:13px}
.colist{list-style:none;margin:0;padding:0;columns:2 280px;column-gap:28px}
.colist li{padding:5px 0;break-inside:avoid;border-bottom:1px solid var(--line)}
.colist.big li{padding:10px 0;font-size:16px}
.regions{line-height:2}
.reg h2{margin-top:24px}

/* téléphone : tous les onglets visibles (2 lignes) */
@media (max-width:760px){
  header.site .top{flex-wrap:wrap;row-gap:4px}
  nav.tabs{flex:1 1 100%;flex-wrap:wrap;overflow:visible;width:100%;gap:0 2px;margin-left:-9px}
  .logo{font-size:24px;padding:6px 13px 4px}
  header.site{position:static}
  nav.tabs a.acct{margin-left:0}
  nav.tabs a{font-size:15px;padding:8px 9px 7px}
}
.frow .pair{display:flex;align-items:center;gap:8px;flex:1 1 210px;min-width:0}
.frow .pair input{flex:1 1 auto}
