/* QC con mQC: shots · preparación / informe · sesiones */

.qc-host { flex: 1; min-height: 0; display: flex; flex-direction: column; }
.qc {
  flex: 1;
  min-height: 0;
  display: grid;
  grid-template-columns: 230px minmax(0, 1fr) 260px;
  background: var(--pmp-bg);
}
.qc-col { min-height: 0; overflow: auto; }
.qc-shots, .qc-side { background: var(--pmp-panel); padding: 10px; }
.qc-shots { border-right: 1px solid var(--pmp-border); }
.qc-side { border-left: 1px solid var(--pmp-border); }
.qc-main { padding: 14px 18px 28px; }
.qc-msg:empty { display: none; }
.qc-msg { border-top: 1px solid var(--pmp-border); }

.qc-col-head { display: flex; align-items: baseline; gap: 8px; margin: 2px 2px 10px; }
.qc-col-head h3 {
  margin: 0; font-size: 11px; letter-spacing: 0.08em; text-transform: uppercase; color: var(--pmp-dim);
}
.qc-main > .qc-col-head h3 { font-family: var(--pmp-mono); font-size: 13px; color: var(--pmp-text); text-transform: none; letter-spacing: 0; }
.qc-count { font-size: 10px; font-family: var(--pmp-mono); color: var(--pmp-mute); }
.qc-hint { font-size: 11px; color: var(--pmp-mute); }
.qc-mono { font-family: var(--pmp-mono); }

.qc-search, .qc-input {
  width: 100%;
  box-sizing: border-box;
  background: #0d0d0d;
  border: 1px solid var(--pmp-border-2);
  color: var(--pmp-text);
  border-radius: 6px;
  padding: 6px 8px;
  font-size: 12px;
  font-family: inherit;
}
.qc-search { margin-bottom: 8px; }
.qc-input:focus, .qc-search:focus { outline: none; border-color: var(--pmp-accent); }
.qc-input[disabled] { opacity: 0.4; }

/* Shots */
.qc-group {
  margin: 10px 4px 4px; font-size: 9px; letter-spacing: 0.1em; text-transform: uppercase; color: var(--pmp-mute);
}
.qc-shot {
  display: flex; align-items: center; gap: 7px; width: 100%; text-align: left;
  background: none; border: 0; border-radius: 5px; padding: 5px 6px; cursor: pointer;
  color: var(--pmp-dim); font-family: var(--pmp-mono); font-size: 11px;
}
.qc-shot:hover { background: rgba(255, 255, 255, 0.04); color: var(--pmp-text); }
.qc-shot.is-on { background: var(--pmp-accent-soft); color: var(--pmp-accent); }
.qc-shot-code { flex: 1; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.qc-shot-n { font-size: 9px; color: var(--pmp-mute); }
.qc-dot {
  width: 7px; height: 7px; border-radius: 50%; flex: none;
  border: 1px solid var(--pmp-border-2);
}
.qc-dot.is-ok { background: var(--pmp-ok); border-color: var(--pmp-ok); }
.qc-dot.is-bad { background: var(--pmp-err); border-color: var(--pmp-err); }
.qc-dot.is-open, .qc-dot.is-wait { background: var(--pmp-accent); border-color: var(--pmp-accent); }
.qc-dot.is-mute { background: var(--pmp-mute); }

/* Pasos */
.qc-step {
  border: 1px solid var(--pmp-border);
  border-radius: 8px;
  background: var(--pmp-panel);
  padding: 12px 14px;
  margin-bottom: 12px;
}
.qc-step-head { display: flex; align-items: center; gap: 10px; margin-bottom: 10px; }
.qc-step-head h4 { margin: 0; font-size: 12px; font-weight: 600; color: var(--pmp-text); }
.qc-step-head .qc-hint { margin-left: auto; }
.qc-n {
  width: 20px; height: 20px; border-radius: 50%; display: inline-flex; align-items: center; justify-content: center;
  background: var(--pmp-accent); color: #111; font-size: 11px; font-weight: 700;
}
.qc-rows { display: flex; flex-direction: column; gap: 4px; max-height: 330px; overflow: auto; }
.qc-row {
  display: flex; align-items: center; gap: 10px; padding: 6px 8px; border-radius: 6px; cursor: pointer;
  border: 1px solid transparent;
}
.qc-row:hover { background: rgba(255, 255, 255, 0.03); }
.qc-row.is-on { border-color: rgba(255, 122, 0, 0.45); background: var(--pmp-accent-soft); }
.qc-row input[type="radio"] { accent-color: var(--pmp-accent); margin: 0; }
.qc-thumb {
  width: 64px; height: 36px; object-fit: cover; border-radius: 3px; background: #0b0b0b; flex: none;
  border: 1px solid var(--pmp-border);
}
.qc-row-main { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: 2px; }
.qc-row-main b {
  font-family: var(--pmp-mono); font-size: 11px; font-weight: 500; color: var(--pmp-text);
  overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
}
.qc-row-main small, .qc-row-meta small { font-size: 10px; color: var(--pmp-mute); }
.qc-row-meta { font-family: var(--pmp-mono); font-size: 11px; color: var(--pmp-dim); text-align: right; display: flex; flex-direction: column; }
.qc-same { color: var(--pmp-accent); }
.qc-path { margin-top: 5px; font-family: var(--pmp-mono); }

.qc-grid { display: flex; flex-wrap: wrap; gap: 10px 14px; align-items: flex-end; }
.qc-field { display: flex; flex-direction: column; gap: 4px; min-width: 170px; }
.qc-field.qc-sm { min-width: 80px; width: 92px; }
.qc-field > span { font-size: 10px; letter-spacing: 0.05em; text-transform: uppercase; color: var(--pmp-mute); }
.qc-flags { flex-direction: row; gap: 14px; min-width: 0; padding-bottom: 6px; }
.qc-segs { display: flex; }
.qc-seg {
  background: #0d0d0d; border: 1px solid var(--pmp-border-2); color: var(--pmp-dim);
  padding: 6px 10px; font-size: 11px; cursor: pointer; margin-left: -1px;
}
.qc-seg:first-child { border-radius: 6px 0 0 6px; margin-left: 0; }
.qc-seg:last-child { border-radius: 0 6px 6px 0; }
.qc-seg.is-on { color: var(--pmp-accent); border-color: var(--pmp-accent); background: var(--pmp-accent-soft); position: relative; }
.qc-sub { margin: 14px 0 6px; font-size: 10px; letter-spacing: 0.05em; text-transform: uppercase; color: var(--pmp-mute); }
.qc-chks { display: flex; flex-wrap: wrap; gap: 6px 16px; }
.qc-chk { font-size: 12px; color: var(--pmp-dim); display: inline-flex; align-items: center; gap: 6px; cursor: pointer; }
.qc-chk input { accent-color: var(--pmp-accent); margin: 0; }

.qc-go { display: flex; align-items: flex-end; gap: 14px; flex-wrap: wrap; margin: 4px 0 12px; }
.qc-who { width: 200px; }
.qc-start {
  background: var(--pmp-accent); color: #111; border: 0; border-radius: 6px;
  padding: 9px 22px; font-size: 13px; font-weight: 700; cursor: pointer; letter-spacing: 0.02em;
}
.qc-start:hover:not([disabled]) { filter: brightness(1.1); }
.qc-start[disabled] { opacity: 0.45; cursor: default; }
.qc-why { font-size: 11px; color: var(--pmp-mute); padding-bottom: 9px; }

.qc-launch {
  display: flex; align-items: center; gap: 10px; flex-wrap: wrap;
  border: 1px solid var(--pmp-border-2); border-radius: 8px; padding: 10px 12px;
  font-size: 12px; color: var(--pmp-dim); margin-bottom: 10px;
}
.qc-launch.is-warn { border-color: rgba(255, 122, 0, 0.45); color: var(--pmp-text); }
.qc-launch.is-bad { border-color: rgba(217, 97, 79, 0.5); color: var(--pmp-text); }
.qc-launch code { font-family: var(--pmp-mono); font-size: 11px; color: var(--pmp-accent); }
.qc-link summary { cursor: pointer; font-size: 11px; color: var(--pmp-mute); }
.qc-link code {
  display: block; margin-top: 6px; padding: 8px; background: #0b0b0b; border-radius: 6px;
  font-family: var(--pmp-mono); font-size: 10px; color: var(--pmp-dim); word-break: break-all;
}

.qc-empty { max-width: 560px; margin: 60px auto; color: var(--pmp-dim); font-size: 13px; line-height: 1.6; }
.qc-empty h3 { color: var(--pmp-text); font-size: 15px; margin: 0 0 10px; }

/* Badges */
.qc-badge {
  display: inline-block; font-size: 10px; font-family: var(--pmp-mono); padding: 2px 7px; border-radius: 10px;
  border: 1px solid var(--pmp-border-2); color: var(--pmp-dim); white-space: nowrap;
}
.qc-badge.is-ok { color: var(--pmp-ok); border-color: rgba(95, 179, 122, 0.45); }
.qc-badge.is-bad { color: var(--pmp-err); border-color: rgba(217, 97, 79, 0.5); }
.qc-badge.is-warn, .qc-badge.is-open, .qc-badge.is-wait { color: var(--pmp-accent); border-color: rgba(255, 122, 0, 0.45); }
.qc-badge.is-mute { color: var(--pmp-mute); }

/* Sesiones */
.qc-ses {
  display: flex; flex-direction: column; gap: 3px; width: 100%; text-align: left; cursor: pointer;
  background: none; border: 1px solid var(--pmp-border); border-radius: 6px; padding: 8px; margin-bottom: 6px;
  color: var(--pmp-dim);
}
.qc-ses:hover { border-color: var(--pmp-border-2); background: rgba(255, 255, 255, 0.02); }
.qc-ses.is-on { border-color: var(--pmp-accent); }
.qc-ses { box-sizing: border-box; }
.qc-ses.is-junk { opacity: 0.6; }
.qc-ses-top small { margin-left: auto; }
.qc-ses-x {
  background: none; border: 0; padding: 0 2px; cursor: pointer; line-height: 1;
  color: var(--pmp-mute); font-size: 14px; visibility: hidden;
}
.qc-ses:hover .qc-ses-x, .qc-ses.is-on .qc-ses-x { visibility: visible; }
.qc-ses-x:hover { color: var(--pmp-err); }
.qc-clean { margin-left: auto; }
.qc-clean[disabled] { opacity: 0.35; cursor: default; }
.qc-ses-top { display: flex; justify-content: space-between; align-items: center; gap: 6px; }
.qc-ses b { font-family: var(--pmp-mono); font-size: 10px; font-weight: 500; color: var(--pmp-text); word-break: break-all; }
.qc-ses small { font-size: 10px; color: var(--pmp-mute); }

/* Informe */
.qc-rep-bar { display: flex; gap: 8px; align-items: center; margin-bottom: 12px; }
.qc-spacer { flex: 1; }
.qc-sheet {
  max-width: 1040px; border: 1px solid var(--pmp-border); border-radius: 10px;
  background: var(--pmp-panel); padding: 22px 26px;
}
.qc-rep-head {
  display: flex; justify-content: space-between; align-items: flex-start; gap: 20px;
  padding-bottom: 16px; border-bottom: 1px solid var(--pmp-border); margin-bottom: 16px;
}
.qc-rep-kicker { font-size: 10px; letter-spacing: 0.14em; color: var(--pmp-accent); font-weight: 700; }
.qc-rep-head h2 { margin: 6px 0 4px; font-family: var(--pmp-mono); font-size: 16px; font-weight: 500; color: var(--pmp-text); word-break: break-all; }
.qc-rep-sub { font-size: 11px; color: var(--pmp-mute); }
.qc-live { color: var(--pmp-accent); }
.qc-verdict {
  font-size: 15px; font-weight: 800; letter-spacing: 0.08em; padding: 10px 18px; border-radius: 8px;
  border: 2px solid var(--pmp-border-2); color: var(--pmp-dim); white-space: nowrap; text-transform: uppercase;
}
.qc-verdict.is-ok { color: var(--pmp-ok); border-color: var(--pmp-ok); }
.qc-verdict.is-bad { color: var(--pmp-err); border-color: var(--pmp-err); }
.qc-verdict.is-warn, .qc-verdict.is-wait { color: var(--pmp-accent); border-color: var(--pmp-accent); }
.qc-kvs { display: grid; grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); gap: 10px 18px; }
.qc-kv { display: flex; flex-direction: column; gap: 3px; min-width: 0; }
.qc-kv span { font-size: 9px; letter-spacing: 0.08em; text-transform: uppercase; color: var(--pmp-mute); }
.qc-kv b { font-size: 12px; font-weight: 500; color: var(--pmp-text); overflow-wrap: anywhere; }
.qc-kv code { font-family: var(--pmp-mono); font-size: 10px; color: var(--pmp-dim); }
.qc-h {
  display: flex; align-items: center; gap: 10px; margin: 22px 0 10px;
  font-size: 11px; letter-spacing: 0.08em; text-transform: uppercase; color: var(--pmp-dim);
}
.qc-counts { display: inline-flex; gap: 6px; text-transform: none; letter-spacing: 0; }
.qc-table { width: 100%; border-collapse: collapse; font-size: 12px; }
.qc-table th {
  text-align: left; font-size: 9px; letter-spacing: 0.08em; text-transform: uppercase; color: var(--pmp-mute);
  font-weight: 500; padding: 6px 8px; border-bottom: 1px solid var(--pmp-border-2);
}
.qc-table td { padding: 7px 8px; border-bottom: 1px solid var(--pmp-border); color: var(--pmp-text); vertical-align: top; }
.qc-table td.qc-src { font-size: 10px; color: var(--pmp-mute); }
.qc-frames { display: block; font-family: var(--pmp-mono); font-size: 10px; color: var(--pmp-mute); margin-top: 2px; }
.qc-cap { width: 96px; border-radius: 3px; border: 1px solid var(--pmp-border); display: block; }
.qc-comment { margin: 0; font-size: 13px; color: var(--pmp-text); white-space: pre-wrap; }
.qc-events { margin-top: 22px; font-size: 11px; color: var(--pmp-mute); }
.qc-events summary { cursor: pointer; }
.qc-events div { padding: 2px 0; }

/* Log de envío a mQC */
.qc-log { margin: 14px 0 6px; padding: 10px 12px; border: 1px solid var(--pmp-border); border-radius: 6px; }
.qc-log summary { color: var(--pmp-text); font-size: 12px; }
.qc-log summary .qc-badge { margin-left: 4px; }
.qc-log summary small { margin-left: 6px; color: var(--pmp-mute); }
.qc-log-how { margin: 10px 0; padding-left: 18px; line-height: 1.55; }
.qc-log-how code, .qc-log-url { font-family: var(--pmp-mono); font-size: 10px; color: var(--pmp-dim); }
.qc-log-data { display: grid; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); gap: 12px; margin: 8px 0 12px; }
.qc-log-side { display: grid; grid-template-columns: repeat(auto-fill, minmax(110px, 1fr)); gap: 8px 12px;
  padding: 8px 10px; border: 1px solid var(--pmp-border); border-radius: 5px; }
.qc-log-side > b { grid-column: 1 / -1; font-size: 11px; color: var(--pmp-text); }
.qc-log .qc-log-side div { padding: 0; }
.qc-log-table td { font-size: 11px; }
.qc-log-val { max-width: 360px; overflow-wrap: anywhere; }
.qc-log-url { display: block; overflow-wrap: anywhere; padding: 6px 0; }

@media (max-width: 1100px) {
  .qc { grid-template-columns: 190px minmax(0, 1fr); }
  .qc-side { display: none; }
}

@media print {
  .pmp-topbar, #pmp-topbar, .pr-rail, .pr-rail-open, .pr-sub, .pr-tabs, .qc-shots, .qc-side, .qc-rep-bar, .qc-msg { display: none !important; }
  body, .pr-layout, .pr-main, .pr-content, .qc, .qc-main { background: #fff !important; overflow: visible !important; height: auto !important; display: block !important; }
  .qc-sheet { border: 0; background: #fff; color: #111; max-width: none; padding: 0; }
  .qc-sheet * { color: #111 !important; }
  .qc-kv span, .qc-table th, .qc-h { color: #555 !important; }
  .qc-table td { border-color: #ddd; }
  .qc-badge.is-ok, .qc-verdict.is-ok { color: #1a7f3c !important; border-color: #1a7f3c !important; }
  .qc-badge.is-bad, .qc-verdict.is-bad { color: #b3261e !important; border-color: #b3261e !important; }
  .qc-events, .qc-launch { display: none !important; }
}

/* Movie base: otra movie (ruta, explorar servidor, subir, arrastrar) */
.qc-movie-step { position: relative; }
.qc-other {
  margin-top: 8px; padding: 10px; border-radius: 6px;
  border: 1px dashed var(--pmp-border-2);
}
.qc-other.is-on { border-color: rgba(255, 122, 0, 0.55); background: var(--pmp-accent-soft); border-style: solid; }
.qc-other-head { display: flex; align-items: baseline; gap: 8px; cursor: pointer; }
.qc-other-head input { accent-color: var(--pmp-accent); margin: 0; }
.qc-other-head b { font-size: 12px; color: var(--pmp-text); }
.qc-other-head small { font-size: 10px; color: var(--pmp-mute); }
.qc-other .qc-path { margin-top: 8px; }
.qc-other-bar { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; margin-top: 8px; }
.qc-drop-hint { font-size: 11px; color: var(--pmp-mute); }
.qc-drop-veil {
  display: none; position: absolute; inset: 0; border-radius: 8px; z-index: 2;
  border: 2px dashed var(--pmp-accent); background: rgba(16, 16, 16, 0.86);
  color: var(--pmp-accent); font-size: 14px; font-weight: 600;
  align-items: center; justify-content: center; pointer-events: none;
}
.qc-movie-step.is-drag .qc-drop-veil { display: flex; }
.qc-dropmsg { display: flex; align-items: center; gap: 8px; margin-top: 10px; font-size: 11px; color: var(--pmp-dim); }
.qc-dropmsg.is-done { color: var(--pmp-ok); }
.qc-dropmsg.is-err { color: var(--pmp-err); }
.qc-drop-hint code { font-family: var(--pmp-mono); font-size: 10px; color: var(--pmp-dim); }
.qc-drop-pick { margin-top: 6px; border: 1px solid var(--pmp-border); border-radius: 6px; padding: 4px; }
.qc-spin {
  width: 11px; height: 11px; border-radius: 50%; flex: none;
  border: 2px solid var(--pmp-border-2); border-top-color: var(--pmp-accent);
  animation: qc-spin 0.8s linear infinite;
}
@keyframes qc-spin { to { transform: rotate(360deg); } }

/* Explorador del servidor */
.qc-modal {
  position: fixed; inset: 0; z-index: 50; background: rgba(0, 0, 0, 0.6);
  display: flex; align-items: center; justify-content: center; padding: 24px;
}
.qc-browser {
  width: min(860px, 100%); height: min(640px, 100%); display: flex; flex-direction: column;
  background: var(--pmp-panel); border: 1px solid var(--pmp-border-2); border-radius: 10px;
  box-shadow: 0 20px 60px rgba(0, 0, 0, 0.5);
}
.qc-br-head { display: flex; align-items: center; justify-content: space-between; padding: 12px 14px 6px; }
.qc-br-head h3 { margin: 0; font-size: 13px; color: var(--pmp-text); }
.qc-br-bar { display: flex; align-items: center; gap: 8px; padding: 6px 14px 10px; border-bottom: 1px solid var(--pmp-border); }
.qc-br-path {
  flex: 1; min-width: 0; font-family: var(--pmp-mono); font-size: 10px; color: var(--pmp-dim);
  overflow: hidden; text-overflow: ellipsis; white-space: nowrap; direction: rtl; text-align: left;
}
.qc-br-q { width: 180px; }
.qc-br-list { flex: 1; overflow: auto; padding: 6px 8px; }
.qc-br-row {
  display: flex; align-items: center; gap: 8px; width: 100%; text-align: left; cursor: pointer;
  background: none; border: 0; border-radius: 5px; padding: 6px 8px; color: var(--pmp-text); font-size: 12px;
}
.qc-br-row:hover { background: rgba(255, 255, 255, 0.05); }
.qc-br-row.is-file { color: var(--pmp-accent); }
.qc-br-row.is-file:hover { background: var(--pmp-accent-soft); }
.qc-br-ico { width: 14px; color: var(--pmp-mute); font-size: 10px; }
.qc-br-row.is-file .qc-br-ico { color: var(--pmp-accent); }
.qc-br-name { flex: 1; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-family: var(--pmp-mono); font-size: 11px; }
.qc-br-row small { font-size: 10px; color: var(--pmp-mute); white-space: nowrap; }
.qc-br-foot { padding: 8px 14px; border-top: 1px solid var(--pmp-border); font-size: 10px; color: var(--pmp-mute); }
