/* v37 CCD camera wall (HMI style) */
main.camwall{display:grid;grid-template-columns:repeat(auto-fit,minmax(480px,1fr));gap:12px;padding:12px 14px 40px;align-items:start}
@media (max-width:520px){main.camwall{grid-template-columns:1fr;padding:8px}}
.camtile{background:var(--surface);border:1px solid var(--border);border-radius:2px;display:flex;flex-direction:column}
.camtile .camh{display:flex;align-items:center;gap:8px;padding:6px 10px;border-bottom:1px solid var(--border)}
.camtile .camh h3{margin:0;font-size:13px;font-weight:600;letter-spacing:.04em;color:#cbd5e1;flex:1}
.camtile .camh .stid{font-family:ui-monospace,monospace;background:var(--accent);color:#fff;border-radius:2px;padding:1px 6px;margin-right:6px;font-size:12px}
.camtile .camfps{font-family:ui-monospace,monospace;font-size:11px;border-radius:999px;padding:1px 8px;background:#222;color:#9a9a9a}
.camtile.live .camfps{color:#7CFC9A} .camtile.slow .camfps{color:#FFD666} .camtile.down .camfps{background:rgba(150,30,30,.75);color:#fff}
.camtile .cammedia{position:relative;aspect-ratio:1224/1024;background:#050505;display:flex;align-items:center;justify-content:center;overflow:hidden}
.camtile .cammedia img{width:100%;height:100%;object-fit:contain;display:block}
.camtile .camdown{color:#f87171;text-align:center;font-size:13px;padding:12px;line-height:1.6}
.camtile .camdown small{display:block;color:var(--muted);font-size:11px}
.camtile .camf{display:flex;gap:10px;padding:4px 10px;font-size:11px;color:var(--muted);font-family:ui-monospace,monospace;flex-wrap:wrap}
.camtile .camf a{color:#93c5fd;text-decoration:none}
a.navlink{color:var(--text);text-decoration:none;background:var(--accent);border-color:var(--accent)}
