/* Mes catalogues: live activity banner, state filters, one card per catalogue. */
.cat-board{--cat-run:#1f7a5c;--cat-run-bg:#e6f4ee;--cat-wait:#1d5a85;--cat-wait-bg:#e7f0f7;--cat-pause:#91500a;--cat-pause-bg:#fff3e2;--cat-fail:#b42318;--cat-fail-bg:#fdeceb;--cat-stall:#a14a00;--cat-done:#536c7d;--cat-done-bg:#eef2f5}
.cat-board .page-heading{margin-bottom:22px}

/* Live banner: is the program working, right now? */
.cat-pulse{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:6px 18px;align-items:center;background:var(--white);border:1px solid var(--line);border-radius:12px;padding:16px 20px;margin-bottom:16px}
.cat-pulse.is-working{background:#f1faf6;border-color:#bfe3d3}
.cat-pulse-main{display:flex;flex-wrap:wrap;align-items:center;gap:4px 10px;margin:0;font-size:14px;min-width:0}
.cat-pulse-main strong{font-size:15px;color:var(--navy)}
.cat-pulse.is-working .cat-pulse-main strong{color:var(--cat-run)}
.cat-pulse-main span:not(.cat-dot){color:var(--ink);overflow-wrap:anywhere}
.cat-pulse-jobs{grid-column:1/-1;list-style:none;margin:2px 0 0;padding:0;display:grid;gap:4px;font-size:13px}
.cat-pulse-jobs li{padding-left:20px;overflow-wrap:anywhere}
.cat-pulse-jobs li strong{color:var(--navy)}
.cat-pulse-jobs li.is-stalled em{font-style:normal;color:var(--cat-stall);font-weight:600}
.cat-pulse-clock{font-size:11px;color:var(--muted);text-align:right;font-variant-numeric:tabular-nums}
.cat-pulse-pause,.cat-pulse-failed{grid-column:1/-1;margin:4px 0 0;padding:9px 12px;border-radius:8px;font-size:12px;overflow-wrap:anywhere}
.cat-pulse-pause{background:var(--cat-pause-bg);color:var(--cat-pause)}
.cat-pulse-failed{background:var(--cat-fail-bg);color:var(--cat-fail)}
.cat-pulse-pause a{font-weight:650;text-decoration:underline}

.cat-dot{display:inline-block;width:10px;height:10px;border-radius:50%;background:var(--cat-run);box-shadow:0 0 0 0 rgba(31,122,92,.45);animation:cat-pulse 1.8s ease-out infinite;flex:none}
.cat-dot.is-waiting{background:var(--cat-wait);animation:none}
@keyframes cat-pulse{0%{box-shadow:0 0 0 0 rgba(31,122,92,.45)}70%{box-shadow:0 0 0 8px rgba(31,122,92,0)}100%{box-shadow:0 0 0 0 rgba(31,122,92,0)}}

/* State filters */
.cat-filters{display:flex;flex-wrap:wrap;gap:8px;margin:0 0 16px}
.cat-chip{display:inline-flex;align-items:center;gap:8px;min-height:36px;padding:6px 14px;border:1px solid var(--line);border-radius:999px;background:var(--white);font-size:12px;font-weight:600;color:var(--ink)}
.cat-chip span{display:inline-grid;place-items:center;min-width:22px;height:20px;padding:0 6px;border-radius:10px;background:var(--pale);font-size:11px;font-variant-numeric:tabular-nums}
.cat-chip[aria-pressed="true"]{background:var(--navy);border-color:var(--navy);color:var(--white)}
.cat-chip[aria-pressed="true"] span{background:rgba(255,255,255,.18);color:var(--white)}
.cat-chip.is-running span{background:var(--cat-run-bg);color:var(--cat-run)}
.cat-chip.is-failed span{background:var(--cat-fail-bg);color:var(--cat-fail)}
.cat-chip.is-paused span{background:var(--cat-pause-bg);color:var(--cat-pause)}
.cat-chip.is-queued span{background:var(--cat-wait-bg);color:var(--cat-wait)}
.cat-empty{padding:24px;text-align:center;color:var(--muted);background:var(--white);border:1px dashed var(--line);border-radius:12px}
.cat-notes{margin:14px 0 22px}
.cat-notes p{margin:4px 0}

/* Cards. Overrides the former compact list rules of #live-catalogues. */
#live-catalogues.cat-board .catalogue-list.cat-list{display:grid;gap:16px;background:none;border:0;border-radius:0;overflow:visible}
#live-catalogues.cat-board .scan-catalogue.cat-card{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:start;gap:14px 24px;padding:22px 24px!important;margin:0;background:var(--white);border:1px solid var(--line);border-left:5px solid var(--cat-done);border-radius:12px!important}
#live-catalogues.cat-board .cat-card[hidden]{display:none}
#live-catalogues.cat-board .cat-card>*{grid-column:1/-1;min-width:0}
#live-catalogues.cat-board .cat-card>.cat-step{grid-column:1}
#live-catalogues.cat-board .cat-card>.cat-actions{grid-column:2;justify-content:flex-end;margin:0;gap:8px}
.cat-card.is-running{border-left-color:var(--cat-run)!important}
.cat-card.is-stalled{border-left-color:var(--cat-stall)!important}
.cat-card.is-queued{border-left-color:var(--cat-wait)!important}
.cat-card.is-paused{border-left-color:#e0a24f!important}
.cat-card.is-failed{border-left-color:var(--cat-fail)!important}

.cat-card-head{display:flex;align-items:flex-start;gap:14px}
.cat-tile{display:grid;place-items:center;width:48px;height:48px;flex:none;border-radius:11px;background:var(--navy);color:var(--white);font-size:13px;font-weight:800;letter-spacing:.4px}
.cat-card.is-running .cat-tile{background:var(--cat-run-bg)}
.cat-tile .scan-logo{width:26px;height:26px;margin:0}
.cat-title{flex:1;min-width:0}
.cat-title h2{font-size:19px;margin:2px 0}
.cat-pill{flex:none;margin-left:auto;padding:5px 11px;border-radius:999px;background:var(--cat-done-bg);color:var(--cat-done);font-size:12px;font-weight:700;white-space:nowrap}
.cat-card.is-running .cat-pill{background:var(--cat-run-bg);color:var(--cat-run)}
.cat-card.is-stalled .cat-pill{background:#fff1e0;color:var(--cat-stall)}
.cat-card.is-queued .cat-pill{background:var(--cat-wait-bg);color:var(--cat-wait)}
.cat-card.is-paused .cat-pill{background:var(--cat-pause-bg);color:var(--cat-pause)}
.cat-card.is-failed .cat-pill{background:var(--cat-fail-bg);color:var(--cat-fail)}

/* What the program does on this catalogue */
.cat-live{padding:13px 16px;border-radius:9px;background:var(--pale);font-size:13px}
.cat-card.is-running .cat-live{background:#f1faf6;box-shadow:inset 0 0 0 1px #cfe9dd}
.cat-card.is-stalled .cat-live{background:#fff7ee;box-shadow:inset 0 0 0 1px #ffd2a6}
.cat-card.is-failed .cat-live{background:#fff6f5;box-shadow:inset 0 0 0 1px #f5c6c1}
.cat-card.is-paused .cat-live{background:#fffaf2}
.cat-live p{margin:0;overflow-wrap:anywhere}
.cat-live p+p{margin-top:4px}
.cat-live-head{display:flex;flex-wrap:wrap;align-items:center;gap:4px 10px}
.cat-live-head strong{color:var(--navy);font-size:14px}
.cat-card.is-running .cat-live-head strong{color:var(--cat-run)}
.cat-card.is-failed .cat-live-head strong{color:var(--cat-fail)}
.cat-live-head span:not(.cat-dot),.cat-live-head time{color:var(--muted);font-size:12px}
.cat-live-measure{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:6px 12px;margin:10px 0 6px}
.cat-live-measure progress{width:100%;height:10px;accent-color:var(--cat-run)}
.cat-live-count{font-size:12px;font-weight:600;color:var(--ink);font-variant-numeric:tabular-nums}
.cat-live-indeterminate{display:block;height:10px;border-radius:5px;background:repeating-linear-gradient(-45deg,#cfe9dd 0 10px,#e6f4ee 10px 20px);background-size:28px 28px;animation:cat-stripes 1s linear infinite}
@keyframes cat-stripes{to{background-position:28px 0}}
.cat-live-meta{font-size:12px;color:var(--muted)}
.cat-live-note{font-size:12px;color:var(--cat-stall)}
.cat-live-error{font-size:12px;color:var(--cat-fail);font-weight:600}
.cat-live-text{color:var(--ink)}

#live-catalogues.cat-board .catalogue-progress-counts{padding:14px 0 2px}
#live-catalogues.cat-board .cat-step{font-size:13px}
#live-catalogues.cat-board .cat-step p{margin:0 0 4px}
#live-catalogues.cat-board .catalogue-progress-feedback p+p{margin-top:4px}

/* Menu: exports, history, other actions */
#live-catalogues.cat-board .scan-other-actions{border-top:1px solid var(--line);padding-top:12px}
#live-catalogues.cat-board .scan-other-actions summary{font-weight:600;color:var(--navy)}
.cat-exports,.cat-history{margin-top:14px}
.cat-exports h3,.cat-history h3,.cat-more-title{font-size:13px;margin:16px 0 8px;color:var(--navy)}
.cat-exports h3,.cat-history h3{margin-top:0}
.cat-exports ul,.cat-history ol{list-style:none;margin:0;padding:0;display:grid;gap:8px}
.cat-exports li{display:grid;grid-template-columns:230px minmax(0,1fr);align-items:center;gap:6px 14px;padding:10px 12px;border:1px solid var(--line);border-radius:9px;background:#fbfcfd}
.cat-exports li .btn{width:100%}
.cat-exports li span,.cat-exports li [data-export-status]{font-size:12px;color:var(--muted)}
.cat-exports li [data-export-status]{grid-column:1/-1;margin:0}
.cat-history li{display:grid;grid-template-columns:96px minmax(0,1fr);gap:10px;font-size:12px;align-items:baseline}
.cat-history-state{font-weight:700;color:var(--cat-done)}
.cat-history li.is-failed .cat-history-state{color:var(--cat-fail)}
.cat-history li.is-done .cat-history-state{color:var(--cat-run)}
.cat-actions [data-export-status]{flex-basis:100%;margin:0;font-size:12px;color:var(--muted)}

@media(max-width:1100px){
 #live-catalogues.cat-board .cat-card>.cat-step,#live-catalogues.cat-board .cat-card>.cat-actions{grid-column:1/-1}
 #live-catalogues.cat-board .cat-card>.cat-actions{justify-content:flex-start}
}
@media(max-width:650px){
 .cat-pulse{grid-template-columns:minmax(0,1fr);padding:14px 16px}
 .cat-pulse-clock{text-align:left}
 #live-catalogues.cat-board .scan-catalogue.cat-card{padding:16px!important;gap:12px}
 .cat-card-head{flex-wrap:wrap;gap:10px 12px}
 .cat-tile{width:40px;height:40px;font-size:11px}
 .cat-title{flex-basis:calc(100% - 56px)}
 .cat-pill{margin-left:52px}
 .cat-live-measure{grid-template-columns:minmax(0,1fr)}
 #live-catalogues.cat-board .cat-actions .btn{flex:1 1 calc(50% - 8px)}
 .cat-exports li{grid-template-columns:minmax(0,1fr)}
 .cat-history li{grid-template-columns:minmax(0,1fr);gap:2px}
 .cat-chip{min-height:40px}
}
@media(prefers-reduced-motion:reduce){.cat-dot,.cat-live-indeterminate{animation:none}}
