/* =====================================================================
   V58 — AI Backups dashboard (admin) + tender "ready" chips (public)
   ===================================================================== */

/* ---------- Admin: AI Backups view ---------- */
.ai-backup-actions{display:flex;gap:10px;flex-wrap:wrap}
.btn.btn-warning{background:#fff4e0;color:#9b6500;border:1px solid #f4dcb0}
.btn.btn-warning:hover{background:#ffeccb}
.ai-backup-wrap{margin-top:6px}
.ai-backup-loading{padding:26px;text-align:center;color:#6a7d94;font-size:11px}

.ai-backup-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}
.ai-stat{background:#fff;border:1px solid var(--line,#e6ecf3);border-radius:16px;padding:16px 18px;display:flex;flex-direction:column;gap:6px;
  box-shadow:0 10px 26px rgba(17,52,97,.06)}
.ai-stat span{font-size:9px;font-weight:800;letter-spacing:.04em;text-transform:uppercase;color:#6a7d94}
.ai-stat strong{font:800 24px "Plus Jakarta Sans",sans-serif;color:#0b2f66;line-height:1}
.ai-stat-done strong{color:#08734b}
.ai-stat-remaining strong{color:#1769d2}
.ai-stat-failed strong{color:#b42318}
.ai-stat-total{background:linear-gradient(135deg,#071f48,#0f4a91);border-color:transparent}
.ai-stat-total span{color:#a9c7ef}
.ai-stat-total strong{color:#fff}

.ai-progress-shell{margin-top:16px;background:#fff;border:1px solid var(--line,#e6ecf3);border-radius:16px;padding:16px 18px;box-shadow:0 10px 26px rgba(17,52,97,.06)}
.ai-progress-head{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:9px}
.ai-progress-head span{font-size:10px;font-weight:800;letter-spacing:.04em;text-transform:uppercase;color:#6a7d94}
.ai-progress-head b{font:800 16px "Plus Jakarta Sans",sans-serif;color:#0b2f66}
.ai-progress-bar{height:12px;border-radius:999px;background:#eef3f9;overflow:hidden}
.ai-progress-bar i{display:block;height:100%;border-radius:999px;background:linear-gradient(90deg,#1769d2,#3fa66d);transition:width .5s ease}

.ai-backup-meta{margin-top:14px;display:flex;flex-wrap:wrap;gap:16px;color:#4a617d;font-size:10.5px;font-weight:700}
.ai-backup-meta i{margin-right:6px;color:#1769d2}
.ai-run-state.is-running{color:#9b6500}
.ai-run-state.is-running i{color:#9b6500}

.ai-failed-box{margin-top:14px;background:#fff6f5;border:1px solid #f6d5d1;border-radius:14px;padding:14px 16px}
.ai-failed-head{color:#a12a1e;font-size:10.5px;font-weight:800;margin-bottom:9px}
.ai-failed-head i{margin-right:6px}
.ai-failed-ids{display:flex;flex-wrap:wrap;gap:6px}
.ai-failed-ids code{background:#fff;border:1px solid #f0cfc9;color:#8f2c1f;border-radius:7px;padding:3px 7px;font-size:9px;font-weight:700}
.ai-failed-ids em{color:#a12a1e;font-size:9px;font-weight:800}
.ai-all-good{margin-top:14px;background:#e8f8ef;border:1px solid #bfe9d0;color:#08734b;border-radius:14px;padding:13px 16px;font-size:10.5px;font-weight:800}
.ai-all-good i{margin-right:7px}

@media(max-width:900px){.ai-backup-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:560px){.ai-backup-grid{grid-template-columns:1fr}}

/* ---------- Public: "AI ready" affordances on the tender detail ---------- */
.ai-ready-chip{display:inline-flex;align-items:center;gap:5px;margin-left:8px;padding:3px 8px;border-radius:999px;
  background:#e8f8ef;color:#08734b;border:1px solid #bfe9d0;font-size:8px;font-weight:800;text-decoration:none;vertical-align:middle}
.ai-ready-chip:hover{background:#d7f2e3}
.ai-ready-chip i{font-size:8px}
.analysis-action.ai-ready{position:relative}
.ai-precompute-note{display:inline-flex;align-items:center;gap:6px;font-size:8.5px;font-weight:800;color:#6a7d94;padding:4px 9px;border-radius:999px;background:#eef3f9;border:1px solid #e0e8f1}
.ai-precompute-note.is-ready{color:#08734b;background:#e8f8ef;border-color:#bfe9d0}
.ai-precompute-note i{font-size:8px}
/* V65 — user-facing "files ready" pill (shown only when the analysis is ready) */
.ai-user-ready{display:inline-flex;align-items:center;gap:6px;font-size:8.5px;font-weight:800;color:#08734b;background:#e8f8ef;border:1px solid #bfe9d0;border-radius:999px;padding:5px 11px}
.ai-user-ready i{font-size:9px}

/* V66 — admin top-bar backup chip (styled like "Last synced") + resume switch */
.ai-backup-chip{display:inline-flex;align-items:center;gap:8px;background:#fff;border:1px solid var(--line,#e6ecf3);
  border-radius:999px;padding:5px 10px;font-size:9.5px;font-weight:800;color:#0b3b83;box-shadow:0 6px 16px rgba(17,52,97,.06)}
.ai-backup-chip .pulse-dot{width:8px;height:8px;border-radius:50%;background:#28c840;animation:aiPulse 1.8s infinite}
.ai-backup-chip.is-paused .pulse-dot{background:#f0a020;animation:none}
.ai-backup-chip.is-running .pulse-dot{background:#1769d2}
@keyframes aiPulse{0%{box-shadow:0 0 0 0 rgba(40,200,64,.45)}70%{box-shadow:0 0 0 7px rgba(40,200,64,0)}100%{box-shadow:0 0 0 0 rgba(40,200,64,0)}}
.ai-mini-switch{position:relative;display:inline-flex;align-items:center;cursor:pointer;width:32px;height:18px;flex:0 0 32px}
.ai-mini-switch input{position:absolute;opacity:0;width:100%;height:100%;margin:0;cursor:pointer;z-index:2}
.ai-mini-slider{position:absolute;inset:0;border-radius:999px;background:#c7d2df;transition:.2s}
.ai-mini-slider:before{content:"";position:absolute;left:2px;top:2px;width:14px;height:14px;border-radius:50%;background:#fff;transition:.2s;box-shadow:0 1px 3px rgba(0,0,0,.25)}
.ai-mini-switch input:checked + .ai-mini-slider{background:#28c840}
.ai-mini-switch input:checked + .ai-mini-slider:before{transform:translateX(14px)}
.dark .ai-backup-chip{background:#0f2748;border-color:#22406a;color:#cfe0f6}
.ai-backup-hint{margin:10px 0 4px;font-size:10px;color:#6a7d94;background:#f4f7fb;border:1px solid #e2e9f2;border-radius:10px;padding:9px 12px}
.ai-backup-hint i{color:#1769d2;margin-right:6px}
