/* Statix Dispatch cams page — sits on top of dispatch.css, does not change it. */
.cam-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(320px, 1fr)); gap: 1.2rem; margin: 1rem 0; }
.cam-card { border: 1px solid var(--line, #333); padding: 1rem; background: var(--panel, #111); }
.cam-card h3 { margin-top: 0; }
.cam-provider, .cam-status { font-size: 0.9rem; }
.cam-player { margin: 0.8rem 0; background: #000; min-height: 120px; display: flex; align-items: center; justify-content: center; }
.cam-player iframe { display: block; }
.sr-cam-frame { width: 100%; aspect-ratio: 16 / 9; border: 0; display: block; }
.discord-widget { max-width: 100%; border: 0; background: #111; }
.widgetbot-frame { width: 100%; height: 600px; max-height: calc(100vh - 300px); min-height: 420px; border: 0; background: #111; }
/* Fullscreen Chat page only (chat.html): WidgetBot fills the whole page,
   site header slides down on hover over the top, slides back up when
   the mouse moves away. Keyboard focus inside the header also opens it. */
.chat-fullscreen .page-hero, .chat-fullscreen .block > h2, .chat-fullscreen .block > p, .chat-fullscreen .site-footer, .chat-fullscreen .x-corner { display: none; }
.chat-fullscreen main, .chat-fullscreen .wrap, .chat-fullscreen .block { margin: 0; padding: 0; max-width: none; }
.chat-fullscreen .widgetbot-frame { position: fixed; inset: 0; width: 100vw; height: 100dvh; max-height: none; min-height: 0; z-index: 1; }
.chat-fullscreen .site-header { position: fixed; top: 0; left: 0; right: 0; z-index: 1001; transform: translateY(-100%); transition: transform 0.25s ease; }
.chat-fullscreen:has(.chat-top-trigger:hover, .site-header:hover, .site-header:focus-within) .site-header { transform: translateY(0); }
.chat-top-trigger { position: fixed; top: 0; left: 0; right: 0; height: 36px; z-index: 1002; display: flex; justify-content: center; align-items: flex-start; pointer-events: none; }
.chat-menu-tab { pointer-events: auto; background: #111; color: #b0b0b0; border: 1px solid #262626; border-top: 0; padding: 4px 14px 6px; font-size: 12px; letter-spacing: 1px; border-radius: 0 0 6px 6px; }
@media (prefers-reduced-motion: reduce) { .chat-fullscreen .site-header { transition: none; } }
.cam-load { width: 100%; }
.dot-table { width: 100%; border-collapse: collapse; font-size: 0.9rem; margin: 1rem 0; }
.dot-table th, .dot-table td { border: 1px solid var(--line, #333); padding: 0.45rem 0.6rem; text-align: left; vertical-align: top; }
.dot-table th { background: var(--panel, #111); }
@media (max-width: 760px) { .cam-grid { grid-template-columns: 1fr; } }
