/* SPDX-License-Identifier: AGPL-3.0-or-later
 * Copyright (C) 2024-2026 Philippe Naveau — contact@perfshop.io
 *
 * inline-fix.css — Brique B1.bis (2026-05-20) + B1.ter utility classes (2026-05-20).
 *
 * Extracts every inline `style="..."` attribute from index.html so
 * the CSP `style-src 'self'` activated in S4 Phase K no longer raises
 * runtime violations (caught by e2e/csp/no-violation.spec.ts).
 *
 * The `jm-inline-*` classes were auto-generated by
 * `scripts/refactor-inline-styles.mjs`. The B1.ter utility classes at the
 * bottom (`.hidden`, `.jm-toast-visible`, modals `.open`, etc.) are
 * maintained by hand — re-running the generator would overwrite only the
 * `jm-inline-*` section and must be followed by a manual merge of the
 * utility-class block. The source-pin `test/no-inline-script-style.test.js`
 * will fail-fast on any new `style=` attribute until it is extracted here.
 */

.jm-inline-11696618 {
  margin:0;
}

.jm-inline-13e0b917 {
  display:flex;
  gap:8px;
}

.jm-inline-1b0f4999 {
  margin-top:16px;
}

.jm-inline-202da04d {
  color:var(--text2);
  font-size:.75rem;
  white-space:nowrap;
}

.jm-inline-24fd2d54 {
  color:var(--text2);
  font-size:.65rem;
}

.jm-inline-27e46985 {
  font-size:1.3rem;
}

.jm-inline-2b583d73 {
  margin-bottom:14px;
}

.jm-inline-2fd9c468 {
  align-items:center;
  display:flex;
  gap:10px;
}

.jm-inline-376f74d1 {
  display:grid;
  gap:12px;
  grid-template-columns:1fr 1fr;
}

.jm-inline-37718300 {
  color:var(--text2);
  font-size:.72rem;
}

.jm-inline-3779c57e {
  accent-color:var(--accent);
}

.jm-inline-3922d326 {
  min-width:0;
}

.jm-inline-39cbc6b4 {
  color:var(--text2);
  font-size:.7rem;
  font-weight:700;
  letter-spacing:.07em;
  text-transform:uppercase;
}

.jm-inline-3ac87806 {
  margin-top:.5rem;
  width:100%;
}

.jm-inline-45230d1d {
  align-items:center;
  display:flex;
  flex-wrap:wrap;
  gap:8px;
  justify-content:space-between;
  margin-bottom:12px;
}

.jm-inline-581be415 {
  width:90px;
}

.jm-inline-59dbc3f9 {
  background:rgba(255,165,2,.12);
  border-radius:5px;
  border:1px solid rgba(255,165,2,.3);
  color:var(--warning);
  font-family:var(--mono);
  font-size:.65rem;
  padding:1px 7px;
}

.jm-inline-5a9005db {
  color:var(--accent);
  font-family:var(--mono);
  font-size:.8rem;
}

.jm-inline-5c9b5481 {
  font-size:.78rem;
  padding:4px 10px;
}

.jm-inline-63202394 {
  align-items:center;
  display:flex;
  font-size:.75rem;
  gap:5px;
  padding:4px 10px;
}

.jm-inline-63cb0635 {
  align-items:center;
  display:flex;
  gap:8px;
}

.jm-inline-66f2d6f6 {
  display:flex;
  justify-content:space-between;
  margin-top:2px;
  padding:0 2px;
}

.jm-inline-6c2cd687 {
  align-items:center;
  cursor:pointer;
  display:flex;
  gap:8px;
  margin-top:10px;
}

.jm-inline-78f08c0b {
  display:flex;
  flex-wrap:wrap;
  gap:8px;
  margin-top:14px;
}

.jm-inline-7a052b06 {
  align-items:center;
  display:flex;
  justify-content:space-between;
  margin-bottom:.4rem;
}

.jm-inline-7b2b72a8 {
  color:var(--accent);
  font-family:var(--mono);
  font-size:.78rem;
  word-break:break-all;
}

.jm-inline-7f3d1049 {
  font-family:var(--mono);
  font-size:.72rem;
}

.jm-inline-80bc1726 {
  color:var(--text2);
  font-family:var(--mono);
  font-size:.72rem;
}

.jm-inline-83488b5b {
  align-items:center;
  color:var(--text2);
  cursor:pointer;
  display:flex;
  font-size:.8rem;
  gap:6px;
}

.jm-inline-86abdab9 {
  white-space:nowrap;
}

.jm-inline-87c136df {
  margin-bottom:16px;
}

.jm-inline-8b4d0ec5 {
  font-family:var(--mono);
  font-size:.7rem;
  opacity:.7;
}

.jm-inline-97445a8d {
  flex:1;
}

.jm-inline-9770bb07 {
  display:flex;
  flex-direction:column;
  gap:4px;
}

.jm-inline-9bcd21d2 {
  font-size:.85rem;
}

.jm-inline-9c379dd4 {
  background:var(--surface2);
  border-radius:5px;
  border:1px solid var(--border);
  color:var(--text2);
  font-family:var(--mono);
  font-size:.72rem;
  padding:2px 8px;
}

.jm-inline-9db3e151 {
  align-items:center;
  display:flex;
  gap:4px;
}

.jm-inline-a71442c6 {
  background:var(--surface2);
  border-radius:8px;
  border:1px solid var(--border);
  color:var(--text);
  font-family:var(--mono);
  font-size:.72rem;
  max-height:300px;
  overflow-y:auto;
  padding:10px 12px;
  white-space:pre-wrap;
  word-break:break-all;
}

.jm-inline-b59d2036 {
  font-size:.7rem;
  height:auto;
  padding:2px 8px;
}

.jm-inline-c6e0fc20 {
  accent-color:var(--accent);
  height:14px;
  width:14px;
}

.jm-inline-c779c4fb {
  font-size:1rem;
  font-weight:700;
}

.jm-inline-c80cad75 {
  color:var(--text2);
  font-size:.82rem;
}

.jm-inline-d462248a {
  margin-top:0;
}

.jm-inline-d8b39d2e {
  align-items:flex-start;
  backdrop-filter:blur(4px);
  background:rgba(10,10,30,.8);
  display:none;
  inset:0;
  justify-content:center;
  overflow-y:auto;
  padding:20px;
  position:fixed;
  z-index:1000;
}

.jm-inline-dd55ab46 {
  margin:auto;
  max-height:none;
  width:min(860px,96vw);
}

.jm-inline-e5517306 {
  align-items:center;
  display:flex;
  justify-content:space-between;
  margin-bottom:4px;
}

.jm-inline-ebf4ff09 {
  align-items:center;
  display:flex;
  flex-wrap:wrap;
  gap:10px;
  margin-bottom:10px;
}

.jm-inline-ed2e4e4a {
  align-items:center;
  display:flex;
  gap:10px;
  min-width:0;
}

.jm-inline-f29d02f3 {
  color:var(--text2);
  font-family:var(--mono);
  font-size:.8rem;
}

.jm-inline-f6ce4d1e {
  gap:16px;
}

.jm-inline-f702965c {
  align-items:center;
  background:var(--surface2);
  border-radius:8px;
  border:1px solid var(--border);
  display:flex;
  gap:8px;
  margin-top:8px;
  padding:8px 12px;
}

.jm-inline-f939d085 {
  align-items:center;
  backdrop-filter:blur(4px);
  background:rgba(10,10,30,.75);
  display:none;
  inset:0;
  justify-content:center;
  padding:20px;
  position:fixed;
  z-index:1000;
}

.jm-inline-fbe5a36a {
  display:flex;
  gap:12px;
  margin-bottom:8px;
}

/* ── B1.ter utility classes (2026-05-20) ──────────────────────────────── */

/* Universal show/hide */
.hidden { display: none !important; }

/* Toast visibility */
.jm-toast-visible { opacity: 1; }

/* Modal open state — specificity 0,2,0 beats 0,1,0 base display:none */
.jm-inline-f939d085.open,
.jm-inline-d8b39d2e.open { display: flex; }

/* Config-form: slider row dimmed when manual mode is active */
.jm-disabled-row { opacity: 0.35; pointer-events: none; }

/* Status: running dim overlay on config inputs */
.jm-status-dim { opacity: 0.45; pointer-events: none; }

/* Target URL preview color states */
.jm-preview-warning { color: var(--warning); }
.jm-preview-ok { color: var(--accent); }

/* Logs: auto-poll button active */
.jm-btn-active { color: var(--accent); }

/* Logs: single-column mode (overrides 1fr 1fr default in .jm-inline-376f74d1) */
.jm-logs-single { grid-template-columns: 1fr; }

/* Progress bar: <progress> element replaces <div> fill */
progress.progress-fill {
  appearance: none;
  -webkit-appearance: none;
  width: 100%;
  border: none;
  display: block;
  height: 100%;
  border-radius: 2px;
}
progress.progress-fill::-webkit-progress-bar {
  background: transparent;
  border-radius: 2px;
}
progress.progress-fill::-webkit-progress-value {
  background: linear-gradient(90deg, var(--accent), #a855f7);
  border-radius: 2px;
}
progress.progress-fill::-moz-progress-bar {
  background: linear-gradient(90deg, var(--accent), #a855f7);
  border-radius: 2px;
}

/* jmx-editor.js: dynamic DOM element classes */
.jmx-vars-hint { font-size: .75rem; color: var(--text2); line-height: 1.4; }
.jmx-warn-span { color: var(--warning); }
.jmx-desc-body {
  padding: 12px 16px;
  font-size: .82rem;
  color: var(--text2);
  font-family: var(--mono);
  white-space: pre-wrap;
  line-height: 1.5;
  max-height: 160px;
  overflow-y: auto;
}
.jmx-tg-name { flex: 1; }
.jmx-field-lbl {
  font-size: .68rem;
  text-transform: uppercase;
  letter-spacing: .06em;
  color: var(--text2);
  font-weight: 600;
}
.jmx-input-flex { flex: 1; min-width: 0; }
.jmx-span2 { grid-column: span 2; }
.jmx-samplers-body { max-height: 220px; overflow-y: auto; }
.jmx-sampler-path { font-family: var(--mono); font-size: .78rem; color: var(--text); flex: 1; }
.jmx-sampler-name { font-size: .72rem; color: var(--text2); }
.jmx-timer-hdr {
  display: grid;
  grid-template-columns: 1fr 110px 110px;
  gap: 8px;
  padding: 0 0 4px;
}
.jmx-timer-hdr-cell { font-size: .65rem; color: var(--text2); text-transform: uppercase; letter-spacing: .06em; }
.jmx-timer-hdr-center { text-align: center; font-size: .65rem; color: var(--text2); text-transform: uppercase; letter-spacing: .06em; }
.jmx-timer-in { text-align: center; flex: 1; }
.jmx-timer-disabled { opacity: .35; }
.jmx-assertions-wrap { padding: 8px 16px 12px; display: flex; gap: 6px; flex-wrap: wrap; }
.jmx-assertion-chip {
  display: flex;
  align-items: center;
  gap: 4px;
  background: rgba(46,213,115,.08);
  border: 1px solid rgba(46,213,115,.2);
  border-radius: 6px;
  padding: 3px 10px;
  font-size: .75rem;
  font-family: var(--mono);
}
.jmx-assertion-name { font-size: .65rem; color: var(--text2); margin-left: 2px; }
.jmx-pacing-wrap { grid-column: span 2; }

/* reports.js: dynamic DOM element classes */
.jmx-report-info { display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.jmx-report-date { font-family: var(--mono); font-size: .78rem; color: var(--text); }
.jmx-report-btns { display: flex; gap: 8px; flex-shrink: 0; }
