/* The RSJ Agent Console's own rules, loaded AFTER Groundskeeper's style.css (WEB_UI_STANDARD
   Appendix C.1: never edit a copied file; add here, with the family's colour tokens).

   The table, chip, badge and dot rules below are copied unchanged from Groundskeeper's
   frontend/devices.html <style> block (2026-09-28), so the Agents page reads exactly like GK's
   Devices page. */

.device-table{width:100%;border-collapse:collapse;}.device-table th{text-align:left;padding:0.5rem 0.75rem;font-weight:500;font-size:0.8rem;color:var(--text-soft);border-bottom:1px solid var(--border);background:var(--bg);white-space:nowrap;}.device-table td{padding:0.5rem 0.75rem;border-bottom:1px solid var(--border);font-size:0.825rem;vertical-align:middle;}.device-table tr:last-child td{border-bottom:none;}.device-table tbody tr{cursor:pointer;transition:background 0.1s;}.device-table tbody tr:hover{background:var(--bg);}
.summary-chips{display:flex;gap:0.75rem;flex-wrap:wrap;margin-bottom:1rem;align-items:center;}.chip{display:flex;align-items:center;gap:0.4rem;padding:0.4rem 0.875rem;border-radius:8px;border:1px solid var(--border);background:var(--card);font-size:0.8rem;cursor:pointer;user-select:none;}.chip-val{font-weight:700;font-size:1rem;font-family:'IBM Plex Mono',monospace;}.chip-val.green{color:var(--green);}.chip-val.amber{color:var(--amber);}.chip-val.muted{color:var(--text-muted);}.chip.active{background:var(--navy,#1e293b);border-color:var(--navy,#1e293b);}.chip.active .chip-val{color:#fff;}
.mono{font-family:'IBM Plex Mono',monospace;font-size:0.78rem;}.text-muted{color:var(--text-muted);}

/* Console-only. */
.chip.active { color: #fff; }
.chip:focus-visible { outline: 2px solid var(--accent); outline-offset: 2px; }
/* The Coming soon label, copied unchanged from Caretaker's console.html (2026-09-28), so the family
   marks unbuilt features one way. */
.soon { font-size: 9px; text-transform: uppercase; letter-spacing: .05em; font-weight: 700;
  color: var(--text-muted); background: var(--bg); border: 1px solid var(--border); border-radius: 5px; padding: 1px 5px; }
.soon { vertical-align: middle; margin-left: 0.4rem; }
.soon-card p { font-size: 0.85rem; color: var(--text-soft); line-height: 1.6; margin: 0 0 0.6rem; max-width: 760px; }
.soon-card p:last-child { margin-bottom: 0; }
.state-pill { display: inline-flex; align-items: center; gap: 0.35rem; font-size: 0.78rem; white-space: nowrap; }
.state-dot { width: 8px; height: 8px; border-radius: 50%; flex-shrink: 0; background: var(--text-muted); }
.state-dot.talking { background: var(--green); }
.state-dot.talking_to_nothing { background: var(--amber); }
.state-dot.could_not_check { background: var(--red); }
.state-dot.not_running { background: var(--red); }
.chip-val.red { color: var(--red); }
.behind { color: var(--amber); font-weight: 600; }
.reason-short { font-size: 0.72rem; color: var(--text-muted); margin: 2px 0 0 14px; }
.modules-cell { color: var(--text-soft); font-size: 0.8rem; }
.search-input { padding: 0.45rem 0.7rem; border: 1px solid var(--control-border, var(--border)); border-radius: 6px;
  background: var(--input-bg, var(--card)); color: var(--text); font-size: 0.825rem; min-width: 220px; }

/* The live log, copied from Caretaker's Logs tab (its console.html <style>), 2026-09-28. The pane is
   dark in every theme, as a terminal is. */
.log-pane { background:#0b1220; color:#cbd5e1; font-family:'IBM Plex Mono',monospace; font-size:12px;
  line-height:1.5; border:1px solid var(--border); border-radius:6px; padding:8px 10px; height:380px;
  overflow:auto; white-space:pre-wrap; word-break:break-word; }
.log-line { padding:0; }
.log-DEBUG { color:#64748b; }
.log-INFO { color:#cbd5e1; }
.log-WARNING { color:#fbbf24; }
.log-ERROR { color:#f87171; }
.log-toolbar { display:flex; gap:8px; flex-wrap:wrap; align-items:center; margin-bottom:10px; }
.log-toolbar select, .log-toolbar input { padding:6px 8px; border:1px solid var(--border); border-radius:6px;
  background:var(--card); color:var(--text); font:inherit; font-size:12.5px; }
/* GK's settings.css makes a settings card's fields full width; the log toolbar keeps them on one row. */
.settings-card .log-toolbar select, .settings-card .log-toolbar input[type="search"] { width: auto; margin: 0; }
.settings-card .log-toolbar input[type="search"] { flex: 1; }

/* Settings -> Sweep: the account test's lines and the sweep's progress bar (0.4.1). */
.sweep-test-result { margin-top: 0.75rem; font-size: 0.8rem; line-height: 1.6; }
.sweep-test-line.ok { color: var(--ok-text, #16a34a); }
.sweep-test-line.bad { color: var(--danger-text, #dc2626); }
.sweep-test-line.unsure { color: var(--text-muted); }
.sweep-progress { margin-top: 0.9rem; }
.sweep-progress-text { font-size: 0.8rem; color: var(--text-soft); margin-bottom: 0.4rem; }
.sweep-progress-track { height: 6px; border-radius: 3px; background: var(--border); overflow: hidden; }
.sweep-progress-bar { height: 100%; width: 0; background: var(--accent); transition: width 0.4s ease; }
.sweep-progress-bar.indeterminate { width: 30% !important; animation: sweep-slide 1.2s ease-in-out infinite; }
@keyframes sweep-slide { 0% { margin-left: -30%; } 100% { margin-left: 100%; } }
@media (prefers-reduced-motion: reduce) { .sweep-progress-bar.indeterminate { animation: none; width: 100% !important; opacity: 0.5; } }

/* The Agents table fits its card (school trial, 11 Nov 2026): a "Could not check" reason or a long name wraps instead
   of pushing Modules and Checked off the right edge. Overrides the copied Groundskeeper rules above for this table only. */
#table-wrap .device-table td, #table-wrap .device-table th { white-space: normal; overflow-wrap: anywhere; }
#table-wrap .state-pill { white-space: normal; }
#table-wrap .device-table .mono { white-space: nowrap; overflow-wrap: normal; }
