/* Espace client G2 — rubrique « Caméras » (voir cameras-g2.js) */
#cm{display:flex;flex-direction:column;gap:18px}
.cm-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:16px}
.cm-cam{background:var(--g2-tile);border:1px solid var(--g2-line);border-radius:16px;overflow:hidden;box-shadow:var(--g2-shadow)}
.cm-img{position:relative;display:block;width:100%;aspect-ratio:16/9;padding:0;border:0;background:#0d1117;cursor:pointer}
.cm-img img{width:100%;height:100%;object-fit:cover;display:block}
.cm-img img:not([src]){visibility:hidden}
.cm-off{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;color:#8b95a1;font:600 13px 'Sora',sans-serif}
.cm-off i{font-size:28px}
.cm-live{position:absolute;left:10px;top:10px;display:flex;align-items:center;gap:6px;padding:3px 9px;border-radius:6px;background:rgba(0,0,0,.55);color:#fff;font:600 12px 'Sora',sans-serif}
.cm-live i{width:7px;height:7px;border-radius:50%;background:#ef4444}
.cm-meta{display:flex;align-items:center;gap:12px;padding:12px 14px}
.cm-meta>div{flex:1;min-width:0;display:flex;flex-direction:column}
.cm-meta b{font:700 15px 'Sora',sans-serif;color:var(--g2-txt)}
.cm-meta small{font-size:12px;color:var(--g2-mut)}.cm-meta small.ko{color:#d97706}

/* lecteur */
.cm-o{position:fixed;inset:0;z-index:1200;background:rgba(5,8,12,.86);display:flex;align-items:center;justify-content:center;padding:16px}
.cm-pl{width:min(1100px,100%);max-height:100%;overflow:auto;background:#11161d;border:1px solid #232a33;border-radius:16px;color:#e6e9ee}
.cm-pl header{display:flex;align-items:center;gap:12px;padding:12px 14px;border-bottom:1px solid #232a33}
.cm-pl header b{font:700 15px 'Sora',sans-serif;flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.cm-sw{display:flex;border:1px solid #2f3843;border-radius:9px;overflow:hidden}
.cm-sw button{border:0;background:none;color:#aab3be;padding:7px 12px;font:600 13px 'Sora',sans-serif;cursor:pointer}
.cm-sw button.on{background:#E8692A;color:#fff}
.cm-x{border:0;background:none;color:#aab3be;font-size:20px;cursor:pointer;padding:4px}
.cm-vw{position:relative;background:#000;aspect-ratio:16/9}
.cm-vw video{width:100%;height:100%;display:block;background:#000}
.cm-etat{position:absolute;left:0;right:0;bottom:0;display:flex;align-items:center;justify-content:center;gap:8px;padding:10px;font-size:13px;color:#cfd5dc;pointer-events:none}
.cm-etat:empty{display:none}.cm-etat.ko{color:#fbbf24}
.cm-list .cm-etat{position:static}
.cm-spin{width:14px;height:14px;border:2px solid #4b5563;border-top-color:#E8692A;border-radius:50%;animation:cmr .8s linear infinite}
@keyframes cmr{to{transform:rotate(360deg)}}
#cm-rp:empty{display:none}
#cm-rp{padding:14px}
.cm-day{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-bottom:12px}
.cm-day>button{width:34px;height:34px;border:1px solid #2f3843;border-radius:9px;background:none;color:#e6e9ee;cursor:pointer}
.cm-day>button:disabled{opacity:.35;cursor:default}
.cm-day label{position:relative;display:flex;align-items:center;gap:8px;font:600 14px 'Sora',sans-serif;padding:6px 10px;border:1px solid #2f3843;border-radius:9px;cursor:pointer}
.cm-day input{position:absolute;inset:0;opacity:0;cursor:pointer}
.cm-flt{margin-left:auto;display:flex;border:1px solid #2f3843;border-radius:9px;overflow:hidden}
.cm-flt button{border:0;background:none;color:#aab3be;padding:6px 11px;font:600 12.5px 'Sora',sans-serif;cursor:pointer}
.cm-flt button.on{background:#232a33;color:#fff}
.cm-tl{position:relative;height:30px;background:#0b0f14;border:1px solid #232a33;border-radius:6px;overflow:hidden}
.cm-tl i{position:absolute;top:6px;bottom:6px;min-width:2px;background:#4b5563;cursor:pointer}
.cm-tl i.h{background:#E8692A;top:3px;bottom:3px;z-index:1}
.cm-tl-hit{position:absolute;inset:0;cursor:crosshair}
.cm-tl i{z-index:2}
.cm-hrs{display:flex;justify-content:space-between;font-size:11px;color:#7c8591;margin:4px 0 12px}
.cm-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:8px;max-height:260px;overflow:auto}
.cm-it{display:flex;flex-direction:column;align-items:flex-start;gap:2px;padding:9px 11px;border:1px solid #232a33;border-radius:10px;background:#161c24;color:#e6e9ee;cursor:pointer;text-align:left}
.cm-it b{font:700 15px 'Sora',sans-serif}.cm-it span{font-size:12.5px;color:#cfd5dc;display:flex;gap:4px;align-items:center}.cm-it small{font-size:11.5px;color:#7c8591}
.cm-it.on{border-color:#E8692A;background:#2a1d15}
.cm-vide{color:#9aa3ad;font-size:13.5px;margin:6px 0}
@media (max-width:600px){.cm-o{padding:0}.cm-pl{border-radius:0;height:100%}.cm-flt{margin-left:0}}
