.monitor-panel { margin: 24px 0; border: 1px solid var(--line); border-radius: 12px; padding: 20px; min-width: 0; }
.monitor-heading, .monitor-log-heading { display: flex; align-items: center; justify-content: space-between; gap: 16px; flex-wrap: wrap; }
.monitor-heading h3, .monitor-log-heading h4 { margin: 0; }
.monitor-heading p { margin: 6px 0 0; color: var(--muted); font-size: 13px; }
.monitor-connect { white-space: nowrap; }
.monitor-connect::before { content: ''; display: inline-block; width: 8px; height: 8px; border: 2px solid currentColor; border-radius: 50%; margin-right: 8px; }
.monitor-status { display: flex; align-items: center; gap: 8px; font-size: 13px; color: var(--muted); }
.monitor-status::before { content: ''; width: 7px; height: 7px; flex-shrink: 0; border-radius: 50%; background: currentColor; }
.monitor-status.is-live { color: var(--good, #2b9e71); }
.monitor-summary { padding: 12px 14px; background: var(--surface-2); border-radius: 8px; font-weight: 600; }
.monitor-panel h4 { font-size: 13px; margin-bottom: 12px; }
.monitor-puzzles { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 220px), 1fr)); gap: 10px; margin-bottom: 24px; }
.monitor-puzzle { display: flex; flex-direction: column; gap: 6px; min-width: 0; border: 1px solid var(--line); border-left: 3px solid var(--accent); border-radius: 6px; padding: 12px; overflow-wrap: anywhere; }
.monitor-puzzle-type, .monitor-puzzle small, #monitor-count { color: var(--muted); font-size: 11px; }
.monitor-puzzle-type { text-transform: uppercase; letter-spacing: .07em; }
.monitor-filters { display: flex; align-items: flex-end; gap: 10px; flex-wrap: wrap; margin: 10px 0; }
.monitor-filters label { display: flex; flex-direction: column; gap: 5px; color: var(--muted); font-size: 12px; min-width: 0; }
.monitor-filters select, .monitor-filters input { min-height: 38px; }
.monitor-filters .monitor-search { flex: 1 1 180px; }
.monitor-filters .monitor-follow { flex-direction: row; align-items: center; align-self: center; white-space: nowrap; }
.monitor-follow input { width: auto; margin: 0; }
.monitor-logs { background: #121923; color: #dee4ec; border-radius: 8px; height: 360px; overflow: auto; font: 12px/1.65 ui-monospace, SFMono-Regular, Consolas, monospace; padding: 10px; }
.monitor-log-line { display: grid; grid-template-columns: 80px 76px minmax(0, 1fr); gap: 10px; padding: 4px 2px; border-bottom: 1px solid #ffffff09; }
.monitor-log-line time { color: #96a3b4; font-variant-numeric: tabular-nums; }
.monitor-log-body { white-space: pre-wrap; overflow-wrap: anywhere; }
.monitor-log-body strong { font-weight: 500; opacity: .75; }
.monitor-log-line.level-UserInfo { color: #deea17; }
.monitor-log-line.level-ScriptInfo { color: #73b88a; }
.monitor-log-line.level-Warning { color: orange; }
.monitor-log-line.level-Error { color: #ff6c6c; }
.monitor-log-line.operator-action { color: #11b7ff; }
.monitor-log-empty { color: #96a3b4; padding: 12px; }
.monitor-panel > .hint, .monitor-panel .hint { font-size: 12px; line-height: 1.5; }
@media (max-width: 600px) {
  .monitor-panel { padding: 12px; }
  .monitor-log-line { grid-template-columns: 72px minmax(0, 1fr); gap: 4px 8px; }
  .monitor-log-body { grid-column: 1 / -1; }
  .monitor-logs { height: 320px; }
  .monitor-filters .monitor-search { flex-basis: 100%; }
}
