.jhs-progress-search{width:100%;box-sizing:border-box;margin:16px 0;padding:10px 12px;border:1px solid #dbe2e8;border-radius:8px;background:var(--card-bg,#f8fafc);color:var(--text,#162b39)}
.jhs-progress-tabs{display:flex;gap:8px;margin:12px 0 0;padding:4px;border-radius:10px;background:var(--card-bg,#f1f5f9)}
.jhs-progress-tabs button{flex:1;min-height:36px;padding:8px 12px;border:1px solid transparent;border-radius:8px;background:transparent;color:var(--text-secondary,#475569);font-family:inherit;font-size:13px;font-weight:600;line-height:1.3;cursor:pointer}
.jhs-progress-tabs button.active{border-color:rgba(124,58,237,.25);background:var(--bg,#fff);color:#6d28d9;box-shadow:0 1px 4px rgba(15,23,42,.08)}
.jhs-progress-tabs button:focus-visible,.jhs-temp-action button:focus-visible{outline:2px solid #7c3aed;outline-offset:2px}
.jhs-temp-snapshot{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px 12px;margin-top:12px;padding:12px;border:1px solid var(--border,#dbe2e8);border-radius:8px;background:var(--card-bg,#f8fafc);font-size:12px}
.jhs-temp-snapshot span{display:flex;flex-direction:column;gap:4px;min-width:0;color:var(--text-secondary,#64748b)}
.jhs-temp-snapshot strong{font-size:15px;color:var(--text,#162b39);white-space:nowrap}
.jhs-temp-action{display:flex;align-items:center;gap:10px;margin-top:10px;font-size:12px}
.jhs-temp-action button{padding:8px 14px;border:1px solid #7c3aed;border-radius:8px;background:#7c3aed;color:#fff;font-family:inherit;font-size:12px;font-weight:600;line-height:1.3;cursor:pointer}
.jhs-temp-action button:hover{background:#6d28d9}
.jhs-temp-action em{color:#dc2626;font-style:normal}
.jhs-temp-sales{margin-top:12px;padding:10px 12px;border:1px solid var(--border,#dbe2e8);border-radius:8px;background:var(--card-bg,#f8fafc)}
.jhs-temp-sales-title{margin-bottom:6px;color:var(--text-secondary,#64748b);font-size:12px;font-weight:700}
.jhs-temp-sale{display:grid;grid-template-columns:64px minmax(80px,1fr) minmax(0,1.5fr);align-items:baseline;gap:8px;padding:6px 0;font-size:12px}
.jhs-temp-sale+.jhs-temp-sale{border-top:1px solid var(--border,#e2e8f0)}
.jhs-temp-sale strong{font-size:15px;color:var(--text,#162b39)}
.jhs-temp-sale time{color:var(--text-secondary,#64748b);text-align:right;overflow-wrap:anywhere}
.jhs-temp-sales-empty{margin-top:10px;color:var(--text-muted,#94a3b8);font-size:12px}
@media(max-width:560px){.jhs-temp-snapshot{grid-template-columns:repeat(2,minmax(0,1fr))}.jhs-temp-snapshot span:last-child{grid-column:1/-1}}
.jhs-progress-card{padding:14px 0;border-bottom:1px solid #dbe2e8}
.jhs-progress-card-link{display:flex;align-items:center;gap:12px;width:100%;border:0;background:transparent;color:inherit;text-align:left;cursor:pointer;padding:0}
.jhs-progress-card-link:disabled{opacity:1;cursor:default}
.jhs-progress-card-link img{width:48px;height:64px;object-fit:contain;border-radius:5px;background:#f1f5f9}
.jhs-progress-card-link span{flex:1;min-width:0}.jhs-progress-card-link strong,.jhs-progress-card-link small{display:block;overflow-wrap:anywhere}.jhs-progress-card-link small{margin-top:5px;color:var(--text-muted,#64748b);font-size:12px}
.jhs-progress-status{font-size:12px;white-space:nowrap;color:#64748b}.jhs-progress-status.done{color:#16845b}.jhs-progress-status.failed{color:#dc2626}.jhs-progress-status.running{color:#2563eb}
.jhs-progress-time{margin:9px 0;color:var(--text-muted,#64748b);font-size:11px;line-height:1.6}.jhs-progress-log{margin:0;white-space:pre-wrap;overflow-wrap:anywhere;font-size:12px;line-height:1.65;font-family:inherit;overflow:visible;background:var(--card-bg,#f8fafc);padding:10px;border-radius:6px}
.jhs-progress-more{display:block;margin:16px auto;padding:9px 16px;border:1px solid #cbd5e1;border-radius:8px;background:var(--card-bg,#f8fafc);color:inherit;cursor:pointer}.jhs-progress-more[hidden]{display:none}

.jhs-progress-modal .jhs-progress-card-link{color:var(--text)}.jhs-progress-modal .jhs-progress-log{background:var(--bg);color:var(--text-secondary)}

/* Keep scrolling inside the overlay. Live backdrop blur repaints the animated
   monitor/iframe behind it and can flicker during composited scrolling. */
.modal-overlay {
  backdrop-filter: none !important;
  -webkit-backdrop-filter: none !important;
  overscroll-behavior: none;
  transition: opacity .25s ease, visibility .25s ease;
}
html:has(.modal-overlay.active), body:has(.modal-overlay.active) {
  overflow: hidden;
}
html { scrollbar-gutter: stable; }
.modal-overlay .modal-body, .jhs-progress-log { overscroll-behavior: contain; }
.jhs-progress-modal, .jhs-nav-modal {
  display: flex;
  flex-direction: column;
  overflow: hidden;
}
.jhs-progress-modal .modal-header, .jhs-nav-modal .modal-header { flex-shrink: 0; }
.jhs-progress-modal .modal-body, .jhs-nav-modal .modal-body {
  flex: 1 1 auto;
  min-height: 0;
  overflow-y: auto;
}
body:has(.modal-overlay.active) > main,
body:has(.modal-overlay.active) > aside { pointer-events: none; }

.jhs-progress-sale{display:flex;align-items:baseline;gap:10px;flex-wrap:wrap;margin-top:12px;padding:10px 12px;background:var(--card-bg,#f8fafc);border:1px solid var(--border,#dbe2e8);border-radius:8px;font-size:12px}
.jhs-progress-sale strong{font-size:19px;color:#16845b}.jhs-progress-sale time{color:var(--text-secondary,#64748b)}.jhs-progress-sale.empty{color:var(--text-muted,#64748b)}

.jhs-progress-details{margin-top:8px;border:1px solid var(--border,#dbe2e8);border-radius:8px;background:var(--card-bg,#f8fafc)}
.jhs-progress-latest{display:flex;align-items:center;gap:8px;padding:10px 12px;cursor:pointer;list-style:none;font-size:12px;min-width:0}
.jhs-progress-latest::-webkit-details-marker{display:none}
.jhs-progress-latest-label{flex:none;padding:3px 7px;border-radius:5px;background:rgba(37,99,235,.12);color:var(--text,#2563eb);font-weight:600}
.jhs-progress-latest-text{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--text-secondary,#475569)}
.jhs-progress-expand{flex:none;color:var(--text-muted,#64748b)}
.jhs-progress-expand::after{content:'展开 ▾'}
.jhs-progress-details[open] .jhs-progress-expand::after{content:'收起 ▴'}
.jhs-progress-details .jhs-progress-log{border-top:1px solid var(--border,#dbe2e8);border-radius:0 0 8px 8px;max-height:none;overflow:visible}
.jhs-progress-latest:focus-visible{outline:2px solid #2563eb;outline-offset:2px;border-radius:8px}

.jhs-progress-retry-row{display:flex;align-items:center;gap:10px;margin-top:10px;font-size:12px}
.jhs-progress-retry{flex:none;padding:6px 12px;border:1px solid #dc2626;border-radius:6px;background:rgba(220,38,38,.08);color:#dc2626;cursor:pointer;font:inherit}
.jhs-progress-retry:disabled{opacity:.6;cursor:default}
.jhs-progress-retry-note{color:var(--text-secondary,#64748b);overflow-wrap:anywhere}

.jhs-command-note{padding:8px 12px;color:var(--text-muted,#64748b);font-size:11px;line-height:1.6}
.jhs-command-details .jhs-command-json{font-family:ui-monospace,SFMono-Regular,Consolas,monospace;white-space:pre-wrap;overflow-wrap:anywhere;line-height:1.7}
