/* M8 lane F · งานดูแลระบบ: สถานะ/ประวัติการสำรองข้อมูลของระบบ (ops/backups.html แท็บ system · settings/hub.html)
   + API key ของ /api/v1 (settings/apikeys.html · apikey.html · once.html)
   สีจาก token เท่านั้น · ตัวอักษร ≥ 12px · ระยะ 4/8 · เป้ากด ≥ 24px (DESIGN-TOKENS.md) · โหลดหลัง screens-reports.css */

/* ── การ์ดสถานะการสำรอง (สำเร็จ = ขอบเขียว · เกิน 26 ชม. = ขอบแดง + ไอคอน · ไม่ใช้สีอย่างเดียว) ── */
.sy-health, .sy-hub { border-inline-start: 4px solid var(--teal-fg); }
.sy-health.sy-stale, .sy-hub.sy-stale { border-inline-start-color: var(--p1-fg); background: var(--p1-bg); }
.sy-health h2, .sy-hub h2 { display: flex; align-items: center; gap: 8px; }
.sy-health h2 .ico, .sy-hub h2 .ico { width: 18px; height: 18px; color: var(--teal-fg); }
.sy-stale h2 .ico { color: var(--p1-fg); }
.sy-state { margin: 4px 0 8px; font-weight: 600; color: var(--ink); }
.sy-stale .sy-state { color: var(--p1-fg); }
.sy-hub { margin: 0 0 16px; }
.sy-kv { margin: 0 0 8px; }
.sy-lede { max-width: 72ch; }

/* ── ตารางประวัติ: SHA-256/ชื่อชุดยาว ไม่ดันความกว้างหน้า ── */
.sy-table code { font-size: 12px; overflow-wrap: anywhere; word-break: break-all; }
.sy-err { overflow-wrap: anywhere; }

/* ── API key ── */
.ak-scopes { display: grid; grid-template-columns: repeat(auto-fill, minmax(16rem, 1fr)); gap: 4px 16px; margin: 4px 0 8px; padding: 0; border: 0; }
.ak-scopes label { display: flex; align-items: center; gap: 8px; min-height: 24px; font-size: 13px; }
.ak-scopes input { inline-size: 18px; block-size: 18px; }
.ak-scopes code { font-size: 12px; color: var(--muted); }
.ak-secret { display: block; padding: 12px; margin: 8px 0; border: 1px dashed var(--line); border-radius: var(--r-md, 10px);
  background: var(--surf2); font-size: 14px; overflow-wrap: anywhere; word-break: break-all; user-select: all; }
.ak-revoked { color: var(--muted); }
.ak-table td, .ak-table th { vertical-align: top; }
.ak-table code { font-size: 12px; overflow-wrap: anywhere; }
.ak-form > *, .ak-form fieldset { min-width: 0; min-inline-size: 0; }

/* ── ไฟล์ที่ถูกกักจากการสแกนไวรัส (M12 · settings/antivirus.html · antivirus_item.html · README ข้อ 394–396) ──
   สถานะเป็นข้อความในป้ายเสมอ (สีเสริม) · ชื่อภัย/ลายนิ้วมือขึ้นบรรทัดได้ (ไม่ดันจอกว้าง) · 375: การ์ดซ้อน · ปุ่มเต็มแถว */
.av-lede { max-width: 60rem; line-height: 1.6; }
.av-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 22rem), 1fr)); gap: 16px; margin-bottom: 16px; }
.av-grid .card { margin: 0; }
.av-scans { margin: 4px 0 0; padding: 0; list-style: none; display: grid; gap: 4px; line-height: 1.5; }
.av-export { margin-top: 12px; border-top: 1px solid var(--line); padding-top: 12px; }
.av-export-row { display: flex; flex-wrap: wrap; align-items: end; gap: 8px 12px; }
.av-export-row label { display: grid; gap: 4px; }
.av-export-row input[type="date"] { min-height: 32px; }
.av-table td { vertical-align: top; line-height: 1.5; }
.av-table code, .av-hash { overflow-wrap: anywhere; word-break: break-word; font-size: 12px; }
.chip.av-st-quarantined, .chip.av-st-delete_requested { background: var(--p2-bg); color: var(--p2-fg); }
.chip.av-st-release_requested { background: var(--vendor-bg); color: var(--vendor-fg); }
.chip.av-st-released { background: var(--teal-bg); color: var(--teal-fg); }
.chip.av-st-deleted { background: var(--surf2); color: var(--ink2); }
.av-actions .av-act { margin: 12px 0 0; padding-top: 12px; border-top: 1px solid var(--line); }
.av-actions .av-act:first-of-type { border-top: 0; padding-top: 0; }
.av-actions label { display: grid; gap: 4px; max-width: 40rem; line-height: 1.45; }
.av-actions textarea, .av-actions input[type="text"], .av-actions input:not([type]) { width: 100%; box-sizing: border-box; line-height: 1.5; }
.av-history { margin: 0; padding: 0; list-style: none; display: grid; gap: 6px; line-height: 1.5; }
@media (max-width: 640px) {
  .av-actions .actions .btn { width: 100%; justify-content: center; }
  .av-export-row .btn { width: 100%; justify-content: center; }
}
