.session-list {
  display: grid;
  gap: 12px;
}

.session-item {
  display: grid;
  gap: 10px;
  grid-template-columns: 1fr auto;
  align-items: center;
  border: 1px solid var(--line);
  border-radius: 8px;
  padding: 14px;
  background: #fff;
}

.session-item h2 {
  margin: 0;
  font-size: 18px;
}

.form-row {
  display: grid;
  gap: 12px;
  grid-template-columns: 1fr 1fr 1fr auto;
  align-items: end;
}

.preview {
  width: 96px;
  height: 96px;
  object-fit: contain;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #f7f9fc;
}

.status-pill {
  display: inline-flex;
  align-items: center;
  width: fit-content;
  min-height: 30px;
  border-radius: 999px;
  padding: 0 10px;
  background: #e9f6f8;
  color: var(--brand-dark);
  font-weight: 800;
}

.color-control {
  display: grid;
  grid-template-columns: 52px minmax(110px, 150px) 42px auto;
  gap: 10px;
  align-items: center;
}

.color-control input[type="color"] {
  width: 52px;
  height: 42px;
  border: 1px solid var(--line);
  border-radius: 8px;
  padding: 3px;
  background: #fff;
}

.color-control input[type="text"] {
  min-height: 42px;
  text-transform: lowercase;
}

.color-preview {
  display: block;
  width: 42px;
  height: 42px;
  border: 1px solid var(--line);
  border-radius: 8px;
  box-shadow: inset 0 0 0 2px rgba(255, 255, 255, 0.55);
}

.color-code {
  color: var(--ink);
  font-size: 18px;
}

.state-line {
  display: flex;
  width: fit-content;
  flex-wrap: wrap;
  gap: 8px;
  align-items: center;
  border: 1px solid var(--line);
  border-radius: 8px;
  padding: 10px 12px;
  background: #fbfcff;
}

.state-line span {
  color: var(--muted);
  font-size: 13px;
  font-weight: 800;
}

.state-line strong {
  color: var(--ink);
  font-size: 18px;
}

.op-button.state-active {
  border: 1px solid #b98700;
  color: #211a00;
  background: #ffd13d;
  box-shadow: inset 0 -2px 0 rgba(0, 0, 0, 0.18);
}

.op-button.state-inactive {
  border: 1px solid #c4ccd7;
  color: #4b5565;
  background: #e7edf5;
  box-shadow: none;
}

.op-button:disabled {
  opacity: 0.58;
}

.op-button:disabled.state-active {
  opacity: 0.75;
}

@media (max-width: 860px) {
  .form-row,
  .session-item {
    grid-template-columns: 1fr;
  }
}
