/* ── Dev Panel ── */
#dev-panel {
  position: fixed;
  left: 0; top: 0; bottom: 0;
  width: 340px;
  background: #1a1a2e;
  color: #c8c8d4;
  font-family: "DM Sans", "Consolas", monospace;
  font-size: .72rem;
  line-height: 1.4;
  z-index: 300;
  display: flex;
  flex-direction: column;
  transform: translateX(-100%);
  transition: transform .25s ease;
  box-shadow: 4px 0 20px rgba(0,0,0,.4);
}
#dev-panel.dp-open { transform: none; }
#app.dp-shifted { margin-left: 340px; transition: margin-left .25s ease; }

.dp-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: .5rem .8rem;
  background: #16162a;
  border-bottom: 1px solid rgba(255,255,255,.08);
  flex-shrink: 0;
}
.dp-title {
  font-weight: 500;
  font-size: .8rem;
  color: #e0e0f0;
  letter-spacing: .03em;
}
.dp-clear {
  background: rgba(255,255,255,.06);
  border: 1px solid rgba(255,255,255,.1);
  color: #888;
  font-size: .65rem;
  padding: .2rem .5rem;
  border-radius: 3px;
  cursor: pointer;
}
.dp-clear:hover { background: rgba(255,255,255,.12); color: #aaa; }

.dp-log {
  flex: 1;
  overflow-y: auto;
  padding: .4rem 0;
}
.dp-log::-webkit-scrollbar { width: 3px; }
.dp-log::-webkit-scrollbar-thumb { background: rgba(255,255,255,.12); border-radius: 2px; }

.dp-step {
  padding: .35rem .8rem;
  border-bottom: 1px solid rgba(255,255,255,.04);
}
.dp-step:hover { background: rgba(255,255,255,.03); }

.dp-time {
  color: #555;
  font-size: .62rem;
  font-family: "Consolas", monospace;
}
.dp-label { color: #b8b8cc; }
.dp-ms {
  color: #6a9; font-size: .65rem; font-family: "Consolas", monospace;
}
.dp-detail {
  color: #7a7a90;
  font-size: .65rem;
  margin-top: .15rem;
  padding-left: .5rem;
  border-left: 2px solid rgba(255,255,255,.06);
}
.dp-child {
  color: #666;
  font-size: .62rem;
  padding-left: .5rem;
  margin-top: .1rem;
}

/* Step types */
.dp-api .dp-label { color: #7cb3f0; }
.dp-stream .dp-label { color: #c898e8; }
.dp-file .dp-label { color: #888; }
.dp-config .dp-label { color: #777; }
.dp-error .dp-label { color: #e87070; }
.dp-error { background: rgba(232,112,112,.06); }
.dp-action .dp-label { color: #e8c870; }

/* Replay buttons */
.dp-replay-bar {
  padding: .5rem .8rem;
  background: #16162a;
  border-top: 1px solid rgba(255,255,255,.08);
  flex-shrink: 0;
  display: flex;
  flex-direction: column;
  gap: .4rem;
}
.dp-btn-row {
  display: flex;
  flex-wrap: wrap;
  gap: .3rem;
}
.dp-replay-btn {
  background: rgba(122,179,240,.1);
  border: 1px solid rgba(122,179,240,.2);
  color: #7ab3f0;
  font-size: .62rem;
  padding: .25rem .5rem;
  border-radius: 3px;
  cursor: pointer;
  font-family: "DM Sans", sans-serif;
  transition: all .15s;
}
.dp-replay-btn:hover {
  background: rgba(122,179,240,.2);
  border-color: rgba(122,179,240,.4);
}
.dp-replay-btn:disabled {
  opacity: .4;
  cursor: default;
}

/* Step states */
.dp-step-done {
  background: rgba(106,153,106,.15);
  border-color: rgba(106,153,106,.3);
  color: #6a9;
}
.dp-step-done:hover {
  background: rgba(106,153,106,.25);
  border-color: rgba(106,153,106,.5);
}
.dp-step-fail {
  background: rgba(232,112,112,.12);
  border-color: rgba(232,112,112,.3);
  color: #e87070;
}
.dp-step-fail:hover {
  background: rgba(232,112,112,.2);
}
.dp-step-running {
  background: rgba(232,200,112,.12);
  border-color: rgba(232,200,112,.3);
  color: #e8c870;
  cursor: wait;
}

/* Reset button */
.dp-reset-btn {
  background: rgba(232,112,112,.08) !important;
  border-color: rgba(232,112,112,.2) !important;
  color: #c87070 !important;
}
.dp-reset-btn:hover {
  background: rgba(232,112,112,.18) !important;
  border-color: rgba(232,112,112,.4) !important;
}

/* Dev toggle button */
#dev-toggle {
  position: fixed;
  bottom: 1rem;
  left: 1rem;
  z-index: 301;
  width: 32px;
  height: 32px;
  border-radius: 50%;
  background: #1a1a2e;
  border: 1px solid rgba(255,255,255,.15);
  color: #7ab3f0;
  font-size: .75rem;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: all .2s;
  box-shadow: 0 2px 8px rgba(0,0,0,.3);
}
#dev-toggle:hover { background: #222240; border-color: rgba(122,179,240,.4); }

/* Run button */
.dp-run-btn {
  background: rgba(106,153,106,.15) !important;
  border-color: rgba(106,153,106,.3) !important;
  color: #6a9 !important;
  font-size: .72rem !important;
  padding: .35rem .8rem !important;
}
.dp-run-btn:hover {
  background: rgba(106,153,106,.25) !important;
}
